/* Modèle Contact validé : coordonnées et formulaire, puis les deux accès. */
.contact-page-hero{padding:calc(var(--header-height) + 36px) 0 50px;background:#f5f1eb}
.contact-page-heading{display:flex;align-items:center;justify-content:space-between;gap:30px}
.contact-page-heading .text-link{flex-shrink:0;font-size:15px}
.contact-page-layout{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(48px,7vw,104px);align-items:start;padding-block:64px 70px}
.contact-page-layout h2,.contact-access h2{font-size:clamp(25px,2.5vw,34px);font-weight:600;line-height:1.4;letter-spacing:-.035em;margin:0 0 30px}
.contact-direct{display:grid;gap:16px;margin:0 0 40px}
.contact-direct-link{display:flex;align-items:center;gap:14px;min-height:44px;font-size:17px;line-height:1.6;text-decoration:none;overflow-wrap:anywhere}
.contact-direct-link:hover span{text-decoration:underline;text-underline-offset:5px}
.contact-icon{width:24px;height:24px;flex-shrink:0;color:#477d85}
.contact-location{padding-left:22px;border-left:3px solid #b5d9dc;margin:0 0 30px}
.contact-location:last-child{border-color:#e3becf;margin-bottom:0}
.contact-location h3{font-size:21px;font-weight:600;line-height:1.5;letter-spacing:-.025em;margin:0 0 10px}
.contact-street{font-size:17px;line-height:1.8;max-width:350px;margin:0 0 8px}
.contact-hours{font-size:14px;line-height:1.7;color:#526166;margin:0}
.contact-message-panel{padding:32px 36px 36px;border:1px solid #e6dfd8;border-radius:16px;background:#f8f5ef;min-width:0;scroll-margin-top:calc(var(--header-height) + 24px)}
.contact-message-panel .preview-note{font-size:13px;line-height:1.7;margin:0 0 28px}
.contact-message-panel .contact-fields{gap:20px 24px}
.contact-message-panel .contact-field label{font-size:14px}
.contact-message-panel textarea{min-height:150px}
.contact-message-panel .button{min-width:180px;min-height:52px}
/* Les blocs en bas des pages reprennent les finitions de la page Contact. */
.contact,.information-contact{background:#fffcf8;padding-block:80px;border-top:1px solid #e6dfd8}
:is(.contact,.information-contact) .contact-layout{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(48px,7vw,104px);align-items:start}
:is(.contact,.information-contact) .contact-intro{min-width:0;padding-top:32px}
:is(.contact,.information-contact) .contact-intro h2{font-size:clamp(30px,3vw,42px);line-height:1.35;margin-bottom:30px}
:is(.contact,.information-contact) .contact-direct{gap:12px;margin-bottom:30px;max-width:100%}
:is(.contact,.information-contact) .contact-direct-link{font-size:17px;line-height:1.6;margin:0;max-width:100%}
.contact-direct-link span{min-width:0}
.contact-message-panel .contact-message-title{font-size:clamp(25px,2.5vw,34px);font-weight:600;line-height:1.4;letter-spacing:-.035em;margin:0 0 30px}
.contact-access{padding-block:0 88px;scroll-margin-top:calc(var(--header-height) + 24px)}
.contact-access-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.contact-map-link{display:flex;align-items:center;gap:22px;padding:32px;border-radius:14px;min-height:142px;background:#e6eff0;text-decoration:none}
.contact-map-link:nth-child(2){background:#f1e6eb}
.contact-map-link:nth-child(2) .contact-icon{color:#975c78}
.contact-map-link h3{font-size:23px;line-height:1.4;letter-spacing:-.03em;font-weight:600;margin:0 0 10px}
.contact-map-link p{font-size:14px;line-height:1.5;margin:0;text-decoration:underline;text-underline-offset:5px}
.contact-map-arrow{font-size:24px;margin-left:auto}
.contact-map-link:hover{box-shadow:inset 0 0 0 1px #738f944d}
.contact-page .desktop-nav a[aria-current="page"]{text-decoration:underline;text-decoration-color:#d8acbf;text-decoration-thickness:3px;text-underline-offset:8px}
/* Version complète des blocs de bas de page, issue de la page Contact validée. */
.contact-complete-heading{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:56px}
.contact-complete-heading h2{font-size:clamp(30px,3vw,42px);line-height:1.35;margin:0}
.contact-complete-heading .text-link{flex-shrink:0;font-size:15px;margin-top:0}
.contact-complete .contact-coordinates{min-width:0}
.contact-complete .contact-coordinates>h3,.contact-complete .contact-access>h3{font-size:clamp(25px,2.5vw,34px);font-weight:600;line-height:1.4;letter-spacing:-.035em;margin:0 0 30px}
.contact-complete .contact-direct{gap:16px;margin-bottom:40px}
.contact-complete .contact-location h4{font-size:21px;font-weight:600;line-height:1.5;letter-spacing:-.025em;margin:0 0 10px}
.contact-complete .contact-street{font-size:17px;line-height:1.8;margin:0 0 8px}
.contact-complete .contact-hours{font-size:14px;line-height:1.7;margin:0;color:#526166}
.contact-complete .contact-access{padding-block:64px 0}
.contact-complete .contact-map-link h4{font-size:23px;font-weight:600;line-height:1.4;letter-spacing:-.03em;margin:0 0 10px}
.contact-complete .contact-map-link p{font-size:14px;line-height:1.5;margin:0}
.contact-complete .contact-map-link>div{min-width:0}
@media(max-width:1100px){
  .contact-page-layout{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:32px}
  :is(.contact,.information-contact) .contact-layout{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:32px}
  .contact-message-panel{padding:28px}.contact-message-panel .contact-fields{grid-template-columns:1fr}
  .contact-direct-link{font-size:16px;gap:10px}.contact-map-link{padding:26px;gap:16px}
}
@media(max-width:760px){
  .contact-complete-heading{display:block;margin-bottom:36px}
  .contact-complete-heading h2{font-size:29px;margin-bottom:16px}
  .contact-complete-heading .text-link{margin-top:0}
  .contact-complete .contact-coordinates>h3,.contact-complete .contact-access>h3{font-size:27px;margin-bottom:24px}
  .contact-complete .contact-direct{margin-bottom:30px}
  .contact-complete .contact-access{padding-top:42px}
  .contact-complete .contact-map-link h4{font-size:21px}
  .contact-page-hero{padding-top:calc(var(--header-height) + 24px);padding-bottom:34px}
  .contact-page-heading{display:block}.contact-page-heading .text-link{margin-top:28px}
  .contact-page-layout{grid-template-columns:1fr;gap:36px;padding-block:36px 42px}
  .contact,.information-contact{padding-block:48px}
  :is(.contact,.information-contact) .contact-layout{grid-template-columns:1fr;gap:36px}
  :is(.contact,.information-contact) .contact-intro{padding-top:0}
  :is(.contact,.information-contact) .contact-intro h2{font-size:29px;margin-bottom:24px}
  :is(.contact,.information-contact) .contact-direct-link{font-size:16px}
  .contact-message-panel .contact-message-title{font-size:27px;margin-bottom:24px}
  .contact-message-panel{padding:26px 22px}.contact-message-panel .button{width:100%}
  .contact-page-layout h2,.contact-access h2{font-size:27px;margin-bottom:24px}
  .contact-direct{margin-bottom:30px}.contact-location{padding-left:18px}
  .contact-access{padding-bottom:52px}.contact-access-grid{grid-template-columns:1fr;gap:18px}
  .contact-map-link{padding:24px;min-height:126px}.contact-map-link h3{font-size:21px}
}
