/* Contact page and direct contact links. */
html:has(.contact-page){background:var(--ui-bg);color-scheme:light}
html[data-theme=dark]:has(.contact-page){color-scheme:dark}
@media(prefers-color-scheme:dark){html:not([data-theme=light]):has(.contact-page){color-scheme:dark}}
.contact-page{margin:0;font-family:Geist,Arial,sans-serif;font-synthesis:none;background-color:var(--ui-bg);color:var(--ui-text)}
.contact-page *{box-sizing:border-box}
html[data-lang=fr] .contact-page [lang=en],html[data-lang=en] .contact-page [lang=fr]{display:none!important}
.contact-page a{color:inherit;text-underline-offset:4px;touch-action:manipulation}
.contact-page button{font:inherit;touch-action:manipulation}
.contact-page :is(a,button,summary):focus-visible{outline:2px solid var(--ui-focus);outline-offset:4px}
.contact-page>main{padding:0;margin:0;max-width:none;outline:none}
.contact-page main :is(h1,h2,h3,p){margin:0}
.contact-page main h1{font:500 80px/88px 'Bricolage Grotesque',sans-serif;letter-spacing:-.035em;text-wrap:balance}
.contact-page main h2{font:500 40px/44px 'Bricolage Grotesque',sans-serif;letter-spacing:-.025em;text-wrap:balance}
.contact-page main h3{font:500 28px/1.15 'Bricolage Grotesque',sans-serif;letter-spacing:-.015em;text-wrap:balance}
.contact-page main p{font:400 var(--type-reading-size)/var(--type-reading-line) Geist,sans-serif;text-wrap:pretty}
.contact-page main .contact-compact{font-size:var(--type-compact-size);line-height:var(--type-compact-line);color:var(--ui-muted)}
.contact-page main .contact-caption{font:400 var(--type-caption-size)/var(--type-caption-line) Geist,sans-serif;color:var(--ui-muted)}
.contact-wrap{width:min(100% - 60px,1380px);margin-inline:auto}
.contact-section{padding-block:120px;scroll-margin-top:120px}
.contact-skip{position:fixed;top:-80px;left:20px;z-index:100;padding:12px 18px;background:var(--ui-surface);border-radius:8px}
.contact-skip:focus{top:16px}
/* Full-bleed photo, centred title, inset three-column information band. */
.contact-hero{position:relative;isolation:isolate;padding-top:200px;color:var(--ui-feature-text)}
.contact-hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-2}
.contact-hero::before{content:"";position:absolute;inset:0;background-color:rgba(17,17,18,.62);z-index:-1}
.contact-hero-copy{min-height:196px;width:min(100% - 60px,684px);margin-inline:auto;text-align:center}
.contact-page main .contact-hero-copy .contact-lead{max-width:450px;margin:24px auto 0;color:var(--ui-feature-text)}
.contact-info-strip{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:min(100% - 60px,1190px);min-height:132px;margin:128px auto 0;padding:27px 30px;border-radius:12px 12px 0 0;background-color:var(--ui-bg);color:var(--ui-text)}
.contact-info-strip::before,.contact-info-strip::after{content:"";position:absolute;bottom:0;width:20px;height:20px;background-color:var(--ui-bg);pointer-events:none}
.contact-info-strip::before{left:-20px;mask:radial-gradient(circle at 0 0,transparent 19.5px,#000 20px)}
.contact-info-strip::after{right:-20px;mask:radial-gradient(circle at 100% 0,transparent 19.5px,#000 20px)}
.contact-info-item{padding-inline:24px;text-align:center;min-width:0}
.contact-info-item+.contact-info-item{border-left:1px dashed var(--ui-line)}
.contact-page .contact-info-item h2{font-size:22px;line-height:26px;letter-spacing:-.015em}
.contact-info-item a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin-top:8px;color:var(--ui-muted);font:400 var(--type-compact-size)/var(--type-compact-line) Geist,sans-serif;text-decoration:underline;overflow-wrap:anywhere}
.contact-heading-muted{color:var(--ui-muted)}
/* Preparation: introduction left, qualification accordions right; stacked on mobile. */
.contact-prepare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:48px;max-width:1190px}
.contact-prepare-copy{text-align:left;min-width:0}
.contact-prepare .contact-lead{margin-top:24px!important}
.contact-prepare .contact-caption{margin-top:20px!important}
.contact-questions{display:grid;gap:20px}
.contact-questions details{border:1px solid var(--ui-line);border-radius:20px;background-color:var(--ui-surface)}
.contact-questions summary{display:flex;align-items:center;gap:16px;min-height:68px;padding:18px 20px;list-style:none;font:500 18px/26px Geist,sans-serif;cursor:pointer}
.contact-questions summary::-webkit-details-marker{display:none}
.contact-questions summary::marker{content:''}
.contact-step{color:var(--ui-muted);font-size:14px;font-weight:400;flex:none}
.contact-questions summary>span:nth-child(2){flex:1;min-width:0}
.contact-questions summary>svg{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform 160ms ease}
.contact-questions details[open]>summary>svg{transform:rotate(180deg)}
@media(prefers-reduced-motion:reduce){.contact-questions summary>svg{transition:none}}
.contact-questions ul{margin:0;padding:0 36px 24px 60px;font:400 var(--type-compact-size)/var(--type-compact-line) Geist,sans-serif;color:var(--ui-muted)}
.contact-questions li{padding-left:5px;margin-bottom:10px}
.contact-questions li:last-child{margin-bottom:0}
@media(hover:hover) and (pointer:fine){.contact-questions summary:hover{color:var(--ui-muted)}}
@media(max-width:1100px){.contact-info-item{padding-inline:16px}}
@media(max-width:809px){
 .contact-wrap{width:calc(100% - 40px)}
 .contact-section{padding-block:80px;scroll-margin-top:112px}
 .contact-page main h1{font-size:44px;line-height:48px}
 .contact-page main h2{font-size:36px;line-height:40px}
 .contact-page main h3{font-size:26px}
 .contact-hero{padding-top:140px}
 .contact-hero-copy{min-height:0;width:calc(100% - 40px)}
 .contact-info-strip{width:calc(100% - 40px);grid-template-columns:1fr;gap:16px;margin-top:40px;padding:20px;border-radius:12px 12px 0 0}
 .contact-info-item{padding:0}
 .contact-info-item+.contact-info-item{border-left:0;border-top:1px dashed var(--ui-line);padding-top:16px}
 .contact-page .contact-info-item h2{font-size:20px;line-height:24px}
 .contact-info-item a{margin-top:4px}
 .contact-prepare{grid-template-columns:minmax(0,1fr);gap:32px}
}
@media(max-width:360px){.contact-page main h1{font-size:36px;line-height:40px}.contact-page main h2{font-size:32px;line-height:36px}.contact-info-strip{padding:22px}.contact-questions summary{gap:12px}}
