/* Une lecture directe, des preuves visibles et un contact accessible. */
.header-call{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:10px 16px;border:1px solid var(--brand-violet);color:var(--brand-violet);border-radius:2px;font-size:13px;white-space:nowrap}
.site-header{gap:24px}.site-header nav{margin-left:auto;gap:clamp(18px,2.2vw,36px)}
.header-call:hover{background:var(--soft)}
.collection-intro{padding-top:35px;padding-bottom:35px;border-bottom:0}
.collection-intro .breadcrumb{margin-bottom:25px}
.collection-intro h1{font-size:clamp(46px,5.5vw,78px);margin:18px 0;line-height:1.03}
.collection-intro h1 span{color:var(--brand-violet)}
.collection-intro .page-lead{max-width:650px;font-size:17px;line-height:1.7}
.collection-direct{padding-top:0;padding-bottom:75px}
.collection-direct .filters{margin:0;gap:10px}
.filters button{font-size:13px;min-height:44px;padding:10px 18px}
.collection-count{font-size:13px;color:var(--muted);margin:18px 0 27px}
.collection-direct .project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 32px}
.card-photo{aspect-ratio:1.45}.card-meta{font-size:13px;letter-spacing:0;gap:15px;margin-top:18px}
.project-card h3{font-size:clamp(26px,2.5vw,37px);max-width:100%;line-height:1.14;margin-top:10px}
.project-detail{font-size:15px;line-height:1.75;max-width:610px;margin-top:14px}
.project-read{display:inline-flex;align-items:center;gap:20px;margin-top:20px;font-size:13px;border-bottom:1px solid var(--line);padding-bottom:8px}
.project-read span{transition:transform .25s var(--ease)}
.project-link:hover .project-read span{transform:translate(3px,-3px)}
.project-link:focus-visible{outline:3px solid var(--brand-violet);outline-offset:8px}
.photo-count{font-size:12px;background:var(--ink);color:var(--paper)}
.project-intro{padding-top:35px;padding-bottom:55px}
.project-intro .breadcrumb{margin-bottom:36px;flex-wrap:wrap}
.project-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:center;gap:7%}
.project-heading h1{font-size:clamp(40px,4.2vw,66px);letter-spacing:-.045em;line-height:1.07;margin:22px 0}
.project-heading .page-lead{font-size:17px;line-height:1.8}
.project-facts{display:flex;flex-wrap:wrap;gap:10px 24px;margin:26px 0;font-size:12px;color:var(--brand-violet)}
.project-facts span{padding-top:10px;border-top:1px solid var(--line)}
.project-cover{position:relative;display:block;overflow:hidden;background:var(--soft)}
.project-cover img{width:100%;height:540px;object-fit:cover;transition:transform .7s var(--ease)}
.project-cover:hover img{transform:scale(1.025)}
.project-cover>span{position:absolute;bottom:20px;right:20px;background:var(--paper);padding:12px 18px;font-size:13px}
.project-story{display:grid;grid-template-columns:.7fr 1fr 1fr;gap:6%;padding-top:40px;padding-bottom:45px;border-top:1px solid var(--line);background:var(--soft)}
.project-story h2{font-size:29px;letter-spacing:-.035em;margin-bottom:15px}
.project-story article>p{font-size:16px;line-height:1.8;color:var(--muted)}
.project-story .text-link{font-size:13px;margin-top:20px}
.project-photos{padding-top:60px;padding-bottom:65px}
.project-photos .section-heading{margin-bottom:30px}
.project-photos h2,.related-projects h2{font-size:clamp(32px,4vw,52px);letter-spacing:-.045em}
.project-photos .section-heading>p{font-size:14px}
.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:35px 28px}
.photo-grid figure{margin:0;min-width:0}
.photo-grid a{--photo-ratio:1.25;display:block;position:relative;aspect-ratio:var(--photo-ratio);overflow:hidden;background:var(--soft)}
.photo-grid img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
/* Inverser le cadre avant le quart de tour conserve un recadrage bord à bord. */
.photo-grid img.photo-quarter-turn{position:absolute;left:50%;top:50%;translate:-50% -50%;width:calc(100% / var(--photo-ratio));height:calc(100% * var(--photo-ratio));max-width:none}
.photo-grid a:hover img{transform:scale(1.025)}
.photo-grid figcaption{display:flex;justify-content:space-between;gap:15px;margin-top:12px;font-size:13px;color:var(--muted)}
.photo-expand{position:absolute;right:15px;bottom:15px;width:44px;height:44px;display:grid;place-items:center;background:var(--paper);font-size:24px}
.related-projects{background:var(--soft);padding-top:60px;padding-bottom:65px}
.related-projects .project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.service-editorial p,.service-route-card>p:not(.eyebrow),.service-faq details p,.zone-layout p,.route-links p{font-size:16px;line-height:1.8}
.city-visual figcaption,.city-caption,.collection-note,.footer-top p{font-size:13px}
.page-lead{font-size:17px}.door-detail,.door-heading .text-link,.route-links a{font-size:13px}
.contact{padding-top:50px;padding-bottom:65px}.contact-copy h2{font-size:clamp(38px,4vw,58px)}
.contact-panel h3{font-size:30px}.form-note,.contact-privacy{font-size:13px;line-height:1.75;color:var(--muted)}
.contact-privacy{margin-top:22px}.contact-privacy a{text-decoration:underline;text-underline-offset:3px}
form label{font-size:14px}input,select,textarea{font-size:16px;min-height:44px}input::placeholder,textarea::placeholder{font-size:14px}
.optional{font-size:12px;color:var(--muted)}
.gallery-controls button{width:44px;height:44px}#gallery-thumbnails button{min-width:44px;min-height:44px}
.gallery-info>p:not(.tiny){font-size:15px}.gallery-info .tiny{font-size:12px}.dialog-close{min-height:44px;font-size:14px}
.gallery-contact{margin-top:24px!important}.gallery-controls span{font-size:13px}
@media(max-width:1000px){
 .site-header{gap:18px}.site-header .brand{margin-right:auto}.header-call{margin-left:auto}
 .menu-toggle{display:flex;align-items:center;gap:16px;border:0;border-bottom:1px solid var(--ink);min-height:44px;padding:8px 0;background:transparent;font-size:14px}.menu-toggle span{font-size:23px}
 .site-header nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--paper);padding:20px 24px 30px;box-shadow:0 25px 40px #2c3e5020;flex-direction:column;align-items:stretch;gap:0;margin:0}
 .site-header nav.open{display:flex}.site-header nav a{font-family:Bricolage,sans-serif;font-size:26px;padding:17px 0;border-bottom:1px solid var(--line)}
 .project-hero{gap:5%}.project-cover img{height:460px}.project-story{grid-template-columns:1fr 1fr;gap:30px}.project-story>.eyebrow{grid-column:1/-1}
}
@media(max-width:700px){
 .site-header,.site-header.scrolled{gap:15px;padding-left:20px;padding-right:20px}.header-call{font-size:13px;padding:8px 11px;gap:8px}
 .brand img{width:80px}.menu-toggle{font-size:13px;gap:10px}.section-pad{padding-left:20px;padding-right:20px}
 .collection-intro{padding-top:23px;padding-bottom:24px}.collection-intro .breadcrumb{margin-bottom:22px;font-size:12px}
 .collection-intro .eyebrow{font-size:10px;letter-spacing:.08em}.collection-intro h1{font-size:43px;margin:16px 0}
 .collection-intro .page-lead{font-size:15px;line-height:1.65}.collection-direct{padding-top:0;padding-bottom:50px}
 .collection-direct .filters{gap:8px}.filters button{font-size:13px;padding:9px 12px}.filters button span{margin-left:6px}
 .collection-count{margin:15px 0 20px}.collection-direct .project-grid{grid-template-columns:1fr;gap:38px}
 .card-photo{aspect-ratio:1.35}.card-meta{font-size:13px}.project-card h3{font-size:29px}.project-detail{font-size:15px}
 .project-intro{padding-top:25px;padding-bottom:35px}.project-intro .breadcrumb{font-size:12px;gap:10px;margin-bottom:28px}
 .project-hero{grid-template-columns:1fr;gap:30px}.project-heading h1{font-size:40px;margin:16px 0}.project-heading .page-lead{font-size:16px}
 .project-cover img{height:330px}.project-facts{margin:18px 0}.project-heading .text-link{font-size:13px}
 .project-story{grid-template-columns:1fr;gap:28px;padding-top:35px;padding-bottom:35px}.project-story>.eyebrow{grid-column:auto}
 .project-photos,.related-projects{padding-top:40px;padding-bottom:45px}.photo-grid,.related-projects .project-grid{grid-template-columns:1fr;gap:26px}
 .project-photos .section-heading>p{font-size:14px;margin-top:15px}.project-photos .section-heading .eyebrow{margin-bottom:15px}
 .service-editorial p,.service-faq details p,.zone-layout p,.route-links p,.page-lead{font-size:16px}
 .contact{padding-top:35px;gap:30px}.contact h2{font-size:40px;margin-top:18px}.contact-panel{padding:26px 20px}
 .contact-copy>p:not(.eyebrow){font-size:16px}.form-note{font-size:13px}.contact-zone span,.contact-zone p,.email-link{font-size:13px}
 .gallery-controls button{width:44px;height:44px}.gallery-info>p:not(.tiny){font-size:15px}.gallery-info .tiny{font-size:12px}
 .footer-top p{font-size:12px}.footer-pages{font-size:13px}.short-contact>p:last-child{font-size:13px}.door-detail{font-size:13px}
}
@media(prefers-reduced-motion:reduce){.project-read span,.project-cover img,.photo-grid img{transition:none}}
