/* CHG028 — une même précision typographique, du premier écran au formulaire. */
:root{--paper:#f8f7f3;--ink:#252820;--muted:#64675d;--line:#d7d8ce}
body{font-kerning:normal;text-rendering:optimizeLegibility}
.wrap{max-width:1360px}
main p{text-wrap:pretty}
main h1,main h2{letter-spacing:-.042em}
main h3{letter-spacing:-.025em}
.header{border-bottom:1px solid rgba(63,43,14,.2)}
.desktop-nav a{font-size:14px}
.header-cta,.button,.text-link{font-size:14px;min-height:44px}
.text-link{gap:40px;padding-block:12px;border-bottom-color:#a7ac9d}
.text-link span,.header-cta span,.button span{transition:transform .25s ease}
.text-link:hover span,.header-cta:hover span,.button:hover span{transform:translate(2px,-2px)}
.button{min-height:52px;padding:15px 24px}
.button:active,.header-cta:active{transform:translateY(1px)}
.eyebrow{font-size:12px;letter-spacing:.13em;line-height:1.7}
.arrival-premium{background:var(--paper)}
.arrival-premium .immersive-copy{position:static;display:grid;grid-template-columns:minmax(0,1fr) 300px;align-items:end;gap:60px;padding-block:58px 48px;color:var(--ink)}
.arrival-premium .immersive-copy .eyebrow{color:var(--muted);font-size:12px;letter-spacing:.12em;margin-bottom:28px}
.arrival-premium .immersive-copy h1{font-size:clamp(64px,6.7vw,100px);line-height:1.03;letter-spacing:-.055em;max-width:none;text-wrap:initial}
.arrival-premium .immersive-copy h1 em{color:var(--ink)}
.arrival-introduction{padding-bottom:7px}
.arrival-introduction p{font-size:16px;line-height:1.7;color:var(--muted)}
.arrival-premium .immersive-copy .text-link{color:var(--ink);margin-top:22px;display:flex;max-width:300px}
.arrival-premium .immersive-copy .text-link:focus-visible{outline-color:var(--ink)}
.arrival-premium .immersive-scene{margin-inline:24px;aspect-ratio:1672/941;height:auto;max-height:none;min-height:0}
.arrival-premium .immersive-scene>img{height:100%;object-fit:contain}
.arrival-premium .immersive-scene::after{display:none}
.welcome-line{font-size:12px;letter-spacing:.02em;padding-block:23px}
.signature{padding-block:128px;gap:60px}
.signature h2{max-width:920px}
.signature-columns{gap:56px}
.signature-columns p{font-size:16px;line-height:1.8}
.audiences>a{padding-top:34px;padding-bottom:40px}
.audiences h2{font-size:34px;line-height:1.15;margin-block:29px 14px}
.audiences p{font-size:16px;line-height:1.6}
.audiences>a:hover{background:rgba(209,169,105,.075)}
.audiences>a>span:first-child{font-size:12px}
.selected-projects .project-grid{grid-template-columns:1.12fr .88fr;gap:72px}
.selected-projects .project-card:nth-child(2){padding-top:108px}
.project-card h3{font-family:var(--serif);font-size:30px;line-height:1.2;margin-top:10px}
.project-card .card-meta{margin-top:20px;font-size:12px;line-height:1.6}
.project-card .image-arrow{width:44px;height:44px;transition:background .2s}
.project-card a:hover .image-arrow{background:#e8e4d9}
.universe-list>a{padding-block:30px}
.universe-list h3{font-family:var(--serif);font-size:32px;line-height:1.18}
.universe-list p,.project-story p,.principles p,.service-detail p{font-size:16px;line-height:1.75}
.universe-section{background:#eceee7}
.section-heading{gap:48px}
.page-intro{padding-top:70px;padding-bottom:58px}
.page-intro .intro-copy{font-size:17px;line-height:1.75;margin-top:28px;max-width:650px}
.details-list li{line-height:1.65}
.cta{background:#30372e;padding-block:98px}
.cta h2{line-height:1.16}
.cta .button{margin-top:32px}
.footer-grid{padding-block:68px;gap:40px}
.footer-grid h2{font-size:12px;margin-bottom:21px;letter-spacing:.12em}
.footer-grid>div>a:not(.footer-logo){font-size:14px;line-height:1.6;min-height:32px;margin-bottom:6px;padding-block:5px}
.footer-bottom{font-size:12px;line-height:1.8;padding-block:24px}
.footer-bottom a{display:inline-block;padding-block:6px}
.form-shell input,.form-shell select,.form-shell textarea{font-size:16px;line-height:1.5;min-height:50px;background:#fff;border-color:#bec2b5;transition:border-color .2s,box-shadow .2s}
.form-shell input:focus,.form-shell select:focus,.form-shell textarea:focus{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.form-shell input[type=radio],.form-shell input[type=checkbox]{min-height:0}
.form-shell .choices label{font-size:16px;line-height:1.5;padding:18px;transition:border-color .2s,background .2s}
.form-shell .choices label:hover{border-color:#626953}
.form-shell .field-hint{font-size:14px;line-height:1.65}
.form-shell [aria-invalid=true]{border-color:#99452f}
.form-error{color:#8a392b;font-size:14px;line-height:1.6}
.filters button{min-height:44px;padding:9px 17px;font-size:14px}
.faq-list summary{min-height:60px;line-height:1.45}
.zoom-image>span{min-height:44px;display:flex;align-items:center}
#lightbox{padding:24px;border:0}
#lightbox::backdrop{background:rgba(18,22,17,.9);backdrop-filter:blur(4px)}
.close-lightbox{min-height:44px;min-width:90px;font-size:14px}
@media(min-width:1025px){.section{padding-block:116px}.page-intro h1{max-width:1160px}}
@media(max-width:1100px){
 .arrival-premium .immersive-copy{grid-template-columns:minmax(0,1fr) 240px;gap:32px;padding-block:48px 38px}
 .arrival-premium .immersive-copy h1{font-size:clamp(49px,6.7vw,74px)}
 .arrival-premium .immersive-copy .eyebrow{font-size:11px;letter-spacing:.09em}
 .arrival-premium .immersive-copy .text-link{gap:16px}
 .selected-projects .project-grid{gap:42px}
 .selected-projects .project-card:nth-child(2){padding-top:70px}
 .audiences h2{font-size:29px}
 .audiences>a{padding-inline:25px}
 .signature{gap:35px}
}
@media(max-width:760px){
 .wrap{width:calc(100% - 40px)}
 .arrival-premium .immersive-copy{display:block;padding-block:38px 28px}
 .arrival-premium .immersive-copy .eyebrow{font-size:10px;letter-spacing:.07em;margin-bottom:22px}
 .arrival-premium .immersive-copy h1{font-size:clamp(39px,10vw,66px);line-height:1.08;letter-spacing:-.05em}
 .arrival-introduction{padding:0;margin-top:25px}
 .arrival-introduction p{font-size:16px;line-height:1.65}
 .arrival-introduction p br{display:none}
 .arrival-premium .immersive-copy .text-link{max-width:none;margin-top:14px;font-size:14px}
 .arrival-premium .immersive-scene{margin-inline:0;aspect-ratio:1672/941}
 .welcome-line{display:block;padding-block:18px;font-size:12px;line-height:1.8}
 .welcome-line span{display:block}
 .signature{padding-block:74px;gap:24px}
 .signature-columns{gap:24px}
 .section{padding-block:72px}
 .section-heading{gap:22px;margin-bottom:34px}
 .audiences>a{padding:28px 0}
 .audiences h2{font-size:31px;margin-block:18px 10px}
 .audiences p{font-size:16px}
 .audience-arrow{top:64px}
 .selected-projects .project-grid{grid-template-columns:1fr;gap:42px}
 .selected-projects .project-card:nth-child(2){padding-top:0}
 .project-card h3{font-size:28px}
 .universe-section{padding-block:70px}
 .universe-list h3{font-size:27px}
 .universe-list p{font-size:16px}
 .page-intro{padding-top:43px;padding-bottom:36px}
 .page-intro h1{font-size:clamp(38px,10vw,62px);line-height:1.12}
 .page-intro .intro-copy{font-size:16px;margin-top:24px}
 .cta{padding:70px 20px}
 .cta h2{font-size:36px}
 .footer-grid{padding-block:46px;gap:30px 22px}
 .footer-bottom{gap:16px;padding-block:20px}
 .form-shell .choices label{padding:15px}
 #lightbox{padding:16px;width:calc(100% - 24px)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* Préférences : mêmes dimensions pour accepter et refuser. */
.privacy-settings{padding:6px 0;background:none;color:inherit;font-size:12px;line-height:1.8;text-align:left}
.privacy-settings:hover{text-decoration:underline;text-underline-offset:4px}
.privacy-panel{width:min(600px,calc(100% - 32px));max-height:calc(100svh - 32px);margin:auto;padding:36px;border:1px solid var(--line);background:var(--paper);color:var(--ink);overflow:auto}
.privacy-panel::backdrop{background:rgba(25,29,23,.58);backdrop-filter:blur(3px)}
.privacy-panel h2{font:36px/1.1 var(--serif);letter-spacing:-.035em;margin:18px 0 22px}
.privacy-panel .eyebrow{margin:0;padding-top:14px}
.privacy-panel p{font-size:14px;line-height:1.7}
.privacy-panel .privacy-intro,.privacy-panel .privacy-inactive{font-size:16px}
.privacy-close{display:block;margin-left:auto;min-height:44px;padding:6px 0;background:transparent;color:var(--ink);font-size:14px}
.privacy-options{margin-block:24px;border-top:1px solid var(--line)}
.privacy-options label{display:flex;gap:15px;align-items:flex-start;padding:19px 0;border-bottom:1px solid var(--line);cursor:pointer}
.privacy-options input{width:20px;height:20px;margin:4px 0 0;accent-color:var(--ink);flex-shrink:0}
.privacy-options strong,.privacy-options label span span{display:block}
.privacy-options strong{font-size:16px;font-weight:500;margin-bottom:6px}
.privacy-options label span span{font-size:14px;line-height:1.6;color:var(--muted)}
.privacy-details a{text-decoration:underline;text-underline-offset:3px}
.privacy-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:26px}
.privacy-actions button{min-height:48px;padding:12px;border:1px solid var(--ink);background:var(--paper);color:var(--ink);font-size:14px;line-height:1.5}
.privacy-actions button:hover{background:#e8e8df}
.privacy-actions [data-consent=save]{grid-column:1/-1;border-color:var(--line)}
.measure-diagnostic{position:fixed;bottom:10px;left:10px;z-index:40;max-width:min(460px,calc(100% - 20px));max-height:40svh;overflow:auto;background:white;color:#222;padding:12px;border:1px solid #888;font:13px/1.5 monospace}
.measure-diagnostic summary{cursor:pointer}
.measure-diagnostic pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}
@media(max-width:600px){.privacy-panel{padding:20px}.privacy-panel h2{font-size:30px}.privacy-actions{gap:8px}.privacy-panel .eyebrow{font-size:11px}}

/* Consentement public : décisions accessibles avant le détail des catégories. */
.privacy-categories {margin:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.privacy-categories summary {cursor:pointer;min-height:48px;padding:12px 0;font-size:15px;text-align:left}
.privacy-categories .privacy-options {margin:0}
@media(max-width:760px){.privacy-panel .privacy-intro{font-size:15px;line-height:1.6}.privacy-panel .privacy-details{font-size:12px;line-height:1.6}.privacy-categories{margin:12px 0}}
