/* L'accueil oriente, chaque métier développe ses preuves sur sa propre page. */
.site-header nav a[aria-current=page]{color:var(--brand-violet)}
.service-doors{display:grid;grid-template-columns:1fr 1.7fr;gap:9%;border-top:1px solid var(--line)}
.door-heading h2{font-size:clamp(34px,3.8vw,60px);margin:24px 0;letter-spacing:-.05em;line-height:1.07}
.door-heading h2 span{color:var(--brand-violet)}
.service-door{display:grid;grid-template-columns:32px 1fr 26px;align-items:center;gap:22px;border-top:1px solid var(--line);padding:27px 0;transition:color .25s,background .25s}
.service-door:last-child{border-bottom:1px solid var(--line)}
.door-number{font-size:10px;color:var(--muted);grid-row:1 / 3}
.service-door h3{font-size:clamp(23px,2.6vw,37px);line-height:1.1;letter-spacing:-.04em}
.door-detail{font-size:10px;color:var(--muted);grid-column:2}
.door-arrow{font-size:29px;grid-column:3;grid-row:1 / 3;transition:transform .35s var(--ease)}
.service-door:hover{color:var(--brand-violet)}.service-door:hover .door-arrow{transform:translate(4px,-4px)}
.atelier-more{margin:0 var(--gutter) 80px;text-align:right}
.short-contact{background:var(--soft);border-top:1px solid var(--line)}
.short-contact h2{font-size:clamp(40px,5.4vw,80px);line-height:1.06;letter-spacing:-.05em;max-width:900px;margin:28px 0 35px}
.short-contact>div{display:flex;align-items:center;flex-wrap:wrap;gap:36px}
.short-contact .phone-link{font-size:25px;margin:0}.short-contact>p:last-child{font-size:12px;margin-top:27px;color:var(--muted)}
.footer-pages{display:flex;flex-wrap:wrap;gap:24px;font-size:12px;margin-top:38px;border-top:1px solid var(--line);padding-top:22px}
.footer-top p{font-size:11px;line-height:1.9}.footer-pages a:hover{color:var(--brand-violet)}
.breadcrumb{display:flex;align-items:center;gap:15px;font-size:11px;margin-bottom:50px;color:var(--muted)}
.breadcrumb a{border-bottom:1px solid var(--line)}
.page-intro{padding-top:50px;padding-bottom:65px;border-bottom:1px solid var(--line)}
.page-intro h1{font-size:clamp(58px,7vw,105px);line-height:1.04;letter-spacing:-.06em;margin:25px 0;max-width:1000px;color:var(--ink)}
.page-lead{font-size:clamp(14px,1.6vw,20px);line-height:1.75;max-width:660px;color:var(--muted)}
.route-body{padding-top:65px}
.service-route-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}
.route-image{position:relative;aspect-ratio:1 / 1.2;overflow:hidden;margin-bottom:24px;background:var(--soft)}
.route-image img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.route-image span{position:absolute;right:18px;bottom:18px;background:var(--paper);width:46px;height:46px;display:grid;place-content:center;font-size:24px}
.service-route-card:hover img{transform:scale(1.04)}
.service-route-card h2{font-size:32px;line-height:1.08;letter-spacing:-.04em;margin:17px 0}
.service-route-card>p:not(.eyebrow){font-size:12px;line-height:1.8;color:var(--muted)}
.service-route-card .text-link{margin-top:18px;font-size:11px}
.other-services{display:grid;grid-template-columns:1fr 1.2fr;gap:30px;margin-top:80px;padding-top:35px;border-top:1px solid var(--line)}
.other-services h2{font-size:36px;line-height:1.15;letter-spacing:-.04em}.other-services p{font-size:13px;line-height:1.9;color:var(--muted)}
.other-services a{grid-column:2;width:max-content}
.service-detail{display:grid;grid-template-columns:1fr 1fr;gap:10%;padding-top:65px;padding-bottom:65px}
.service-detail-image>img{width:100%;height:500px;object-fit:cover;border-radius:2px}
.service-detail-image>a{margin-top:25px}.service-editorial article+article{margin-top:32px;padding-top:28px;border-top:1px solid var(--line)}
.service-editorial h2{font-size:29px;line-height:1.12;letter-spacing:-.03em;margin-bottom:18px}
.service-editorial p{font-size:13px;line-height:1.9;color:var(--muted)}
.service-evidence{background:var(--soft);padding-top:70px;padding-bottom:70px}
.service-evidence .project-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.project-detail{font-size:12px;line-height:1.8;color:var(--muted);margin-top:16px}
.service-faq{display:grid;grid-template-columns:1fr 1.4fr;gap:12%;padding-bottom:65px}
.service-faq h2{font-size:43px;line-height:1.1;letter-spacing:-.04em}
.service-faq details{border-bottom:1px solid var(--line)}
.service-faq summary{display:flex;justify-content:space-between;gap:25px;cursor:pointer;font-family:Bricolage,sans-serif;font-size:23px;line-height:1.3;padding:24px 0;list-style:none}
.service-faq summary::-webkit-details-marker{display:none}.service-faq summary span{color:var(--accent-text);transition:transform .3s}
.service-faq details[open] summary span{transform:rotate(45deg)}.service-faq details p{padding-bottom:28px;font-size:13px;line-height:1.85;color:var(--muted)}
.route-links{display:flex;flex-wrap:wrap;align-items:center;gap:30px;padding-top:0;padding-bottom:65px}
.route-links p{font-size:13px;color:var(--muted);max-width:550px}.route-links a{font-size:12px}
.zone-layout{display:grid;grid-template-columns:1fr 1fr;gap:13%;padding-top:65px}.zone-layout h2{font-size:55px;line-height:1.07;letter-spacing:-.04em;margin:24px 0}
.zone-layout p{font-size:13px;line-height:1.9;color:var(--muted)}.zone-layout .button{margin-top:28px}
.zone-sectors article{padding:28px 0;border-top:1px solid var(--line)}.zone-sectors h3{font-size:30px;margin-bottom:15px}
.zone-existing{padding-top:65px;background:var(--soft)}.zone-existing h2{font-size:40px;letter-spacing:-.04em}.zone-existing>p{font-size:13px;color:var(--muted);margin:24px 0}.zone-existing .route-links{padding:0}
@media(max-width:900px){.site-header nav{gap:22px}.service-doors{gap:6%}.service-detail{gap:5%}.service-detail-image>img{height:400px}.service-route-grid{gap:20px}.service-route-card h2{font-size:26px}}
@media(max-width:700px){
  .hero h1{font-size:clamp(47px,12vw,84px)}
  .service-doors{grid-template-columns:1fr;gap:25px;padding-top:50px;padding-bottom:55px}.door-heading h2{font-size:39px}.door-heading .text-link{font-size:11px}
  .service-door{gap:13px;padding:22px 0;grid-template-columns:23px 1fr 25px}.service-door h3{font-size:25px}.door-detail{font-size:9px}
  .atelier-more{margin:0 24px 55px;text-align:left}.atelier-more .text-link{font-size:11px}
  .short-contact h2{font-size:43px}.short-contact>div{gap:24px}.short-contact .phone-link{font-size:24px}
  .footer-pages{gap:18px;font-size:11px;flex-direction:column}.footer-top p{max-width:190px;font-size:10px}
  .page-intro{padding-top:30px;padding-bottom:45px}.breadcrumb{margin-bottom:35px;font-size:10px}.page-intro h1{font-size:clamp(45px,11.6vw,68px)}.page-lead{font-size:13px}
  .route-body{padding-top:45px}.service-route-grid{grid-template-columns:1fr;gap:40px}.route-image{aspect-ratio:1.3}.service-route-card h2{font-size:34px}
  .other-services{grid-template-columns:1fr;gap:20px;margin-top:50px}.other-services h2{font-size:32px}.other-services a{grid-column:1;font-size:11px}
  .service-detail{grid-template-columns:1fr;gap:40px;padding-top:45px;padding-bottom:50px}.service-detail-image>img{height:330px}.service-editorial h2{font-size:29px}.service-editorial p{font-size:12px}
  .service-evidence{padding-top:50px;padding-bottom:50px}.service-evidence .project-grid{grid-template-columns:1fr}
  .service-faq{grid-template-columns:1fr;gap:25px;padding-top:50px;padding-bottom:40px}.service-faq h2{font-size:36px}.service-faq summary{font-size:21px}
  .route-links{padding-bottom:50px;gap:18px}.route-links p{font-size:12px}
  .zone-layout{grid-template-columns:1fr;gap:40px;padding-top:45px}.zone-layout h2{font-size:44px}.zone-sectors h3{font-size:27px}.zone-existing h2{font-size:35px}
}
@media(prefers-reduced-motion:reduce){.service-door,.door-arrow,.route-image img,.service-faq summary span{transition:none}}

/* Les pages de ville et les informations légales partagent la charte éditoriale. */
.city-editorial{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:start}
.city-visual{margin:0;position:sticky;top:120px}
.city-visual img{width:100%;height:550px;object-fit:cover}
.city-visual figcaption,.city-caption{font-size:11px;line-height:1.8;color:var(--muted);margin-top:17px;max-width:620px}
.city-caption{margin-bottom:32px}.city-heading{font-size:clamp(34px,3.7vw,57px)!important;line-height:1.06!important;margin:24px 0 40px!important;letter-spacing:-.05em!important}
.legal-layout{display:grid;grid-template-columns:minmax(170px,1fr) minmax(0,2.4fr);gap:10%;align-items:start}
.legal-side{position:sticky;top:125px;display:grid;gap:22px;font-size:13px}
.legal-side>a{border-bottom:1px solid var(--line);padding-bottom:15px}.legal-side>a:hover{color:var(--brand-violet)}
.legal-preview-note{font-size:11px;line-height:1.9;color:var(--muted);border-left:3px solid var(--accent);padding-left:17px;margin-top:15px}
.legal-content{min-width:0;max-width:760px;font-size:14px;line-height:1.9;color:var(--muted);overflow-wrap:anywhere}
.legal-content section{padding:30px 0;border-bottom:1px solid var(--line)}.legal-content section:first-child{padding-top:0}
.legal-content h2{font-family:Bricolage,sans-serif;font-size:29px;line-height:1.2;letter-spacing:-.025em;color:var(--ink);margin-bottom:20px}
.legal-content p+p{margin-top:17px}.legal-content strong{font-weight:600;color:var(--ink)}.legal-content a{color:var(--brand-violet);text-decoration:underline;text-underline-offset:3px}
.legal-content ul{padding-left:20px;margin:18px 0}.legal-content li{margin-bottom:9px}.legal-content>.intro{padding-bottom:30px;border-bottom:1px solid var(--line)}
.legal-content .last-update{margin-top:35px;font-size:11px}
@media(max-width:700px){.city-editorial{grid-template-columns:1fr;gap:38px}.city-visual{position:static}.city-visual img{height:350px}.city-heading{font-size:39px!important}.legal-layout{grid-template-columns:1fr;gap:40px}.legal-side{position:static}.legal-content{font-size:13px}.legal-content h2{font-size:26px}}
