/* ================================================================
   REVER-CITY — design system
   Identité reprise de la plaquette institutionnelle :
   ivoire · marine · rouge, display serif, numérotation mono.
   ================================================================ */

:root{
  --ivory:#F2EFE7;
  --ivory-deep:#E9E4D6;
  --paper:#FBFAF5;
  --navy:#1B2A6B;
  --navy-deep:#121E4E;
  --red:#C8202F;
  --red-soft:#F08A93;
  --ink:#23283A;
  --muted:#6F7387;
  --hairline:rgba(35,40,58,.16);
  --hairline-strong:rgba(35,40,58,.5);
  --hairline-light:rgba(242,239,231,.22);
  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:"Inter",-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono","SF Mono",Menlo,monospace;
  --header-h:78px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{max-width:1240px;margin:0 auto;padding-left:clamp(20px,4vw,52px);padding-right:clamp(20px,4vw,52px)}
:focus-visible{outline:2px solid var(--red);outline-offset:3px}
::selection{background:var(--navy);color:var(--ivory)}

/* ---------------- typography system ---------------- */
.chapter{font-family:var(--mono);color:var(--red);font-size:clamp(13px,1.5vw,17px);letter-spacing:.42em;text-transform:uppercase;font-weight:500;display:block}
.lede{font-family:var(--serif);font-weight:500;color:var(--navy);font-size:clamp(32px,4.4vw,54px);line-height:1.12;margin-top:20px;max-width:24ch}
.lede em,.display em{font-style:italic;color:var(--red)}
.on-dark .lede{color:#fff}
.on-dark .lede em{color:var(--red-soft)}
.mono-tag{font-family:var(--mono);font-size:11px;letter-spacing:.22em;color:var(--muted);text-transform:uppercase}
.body-copy{max-width:52ch;font-size:16.5px}
.body-copy strong{color:var(--navy)}
section{padding:clamp(72px,9vw,136px) 0}
.rule{border:0;border-top:1px solid var(--hairline)}

/* ---------------- buttons ---------------- */
.btn{display:inline-block;font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;padding:16px 30px;border:1px solid var(--navy);color:var(--navy);background:transparent;cursor:pointer;transition:background .25s,color .25s,border-color .25s}
.btn:hover,.btn:focus-visible{background:var(--navy);color:var(--ivory)}
.btn.solid{background:var(--red);border-color:var(--red);color:#fff}
.btn.solid:hover,.btn.solid:focus-visible{background:var(--navy);border-color:var(--navy)}
.btn.ghost-light{border-color:var(--ivory);color:var(--ivory)}
.btn.ghost-light:hover,.btn.ghost-light:focus-visible{background:var(--ivory);color:var(--navy)}

/* ---------------- header ---------------- */
header.site{position:fixed;top:0;left:0;right:0;z-index:90;background:color-mix(in srgb,var(--ivory) 90%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--hairline);transition:transform .35s ease}
header.site.hidden{transform:translateY(-100%)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:24px;height:var(--header-h)}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.brand img{width:46px;height:46px;object-fit:contain}
.brand .wm{font-weight:600;letter-spacing:.3em;font-size:14px;white-space:nowrap}
.brand .wm .b{color:var(--navy)}.brand .wm .r{color:var(--red)}
.brand small{display:block;font-family:var(--mono);font-weight:400;font-size:8px;letter-spacing:.2em;color:var(--muted);margin-top:2px}
nav.main{display:flex;gap:clamp(16px,2.4vw,36px);align-items:center}
nav.main a{font-family:var(--mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;text-decoration:none;color:var(--ink);padding:4px 0;border-bottom:1px solid transparent}
nav.main a:hover,nav.main a:focus-visible{color:var(--red)}
nav.main a[aria-current="page"]{color:var(--red);border-bottom-color:var(--red)}
nav.main .btn{padding:11px 20px;font-size:10.5px}
.burger{display:none;background:none;border:1px solid var(--navy);width:46px;height:46px;cursor:pointer;position:relative;z-index:120}
.burger span{display:block;width:20px;height:2px;background:var(--navy);margin:4px auto;transition:transform .3s,opacity .3s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.burger[aria-expanded="true"]{border-color:var(--ivory)}
.burger[aria-expanded="true"] span{background:var(--ivory)}

/* full-screen menu */
.menu-overlay{position:fixed;inset:0;background:var(--navy-deep);z-index:100;display:flex;flex-direction:column;justify-content:center;padding:0 clamp(24px,8vw,120px);opacity:0;visibility:hidden;transition:opacity .4s ease,visibility .4s}
.menu-overlay.open{opacity:1;visibility:visible}
.menu-overlay a{font-family:var(--serif);font-size:clamp(34px,6vw,58px);color:var(--ivory);text-decoration:none;padding:10px 0;border-bottom:1px solid var(--hairline-light);display:flex;align-items:baseline;gap:22px;transition:color .2s,padding-left .3s}
.menu-overlay a:hover,.menu-overlay a:focus-visible{color:var(--red-soft);padding-left:14px}
.menu-overlay a .n{font-family:var(--mono);font-size:13px;color:var(--red-soft);letter-spacing:.2em}
.menu-overlay .menu-foot{margin-top:40px;font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:#8f9ac9;text-transform:uppercase}
@media(max-width:920px){nav.main{display:none}.burger{display:block}}
@media(min-width:921px){.menu-overlay{display:none}}

main{padding-top:var(--header-h)}

/* ---------------- hero (home) ---------------- */
.hero{display:grid;grid-template-columns:minmax(0,11fr) minmax(0,9fr);min-height:calc(100vh - var(--header-h))}
.hero-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(56px,7vw,110px) clamp(28px,4.5vw,72px) clamp(56px,7vw,110px) max(clamp(20px,4vw,52px),calc((100vw - 1240px)/2 + 52px))}
.hero .display{font-family:var(--serif);font-weight:500;color:var(--navy);font-size:clamp(46px,6.4vw,86px);line-height:1.04;margin:24px 0 28px;max-width:14ch}
.hero .promise{max-width:47ch;font-size:clamp(16px,1.4vw,18px)}
.cta-row{margin-top:44px;display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.hero-visual{position:relative;overflow:hidden;background:var(--navy)}
.hero-visual img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.hero-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(27,42,107,.12),rgba(18,30,78,.4))}
.hero-visual .caption{position:absolute;left:24px;bottom:20px;z-index:2;font-family:var(--mono);font-size:10px;letter-spacing:.24em;color:rgba(242,239,231,.85);text-transform:uppercase}
.scroll-cue{position:absolute;right:26px;bottom:20px;z-index:2;color:var(--ivory);font-family:var(--mono);font-size:10px;letter-spacing:.3em;writing-mode:vertical-rl;text-transform:uppercase}
@media(max-width:900px){.hero{grid-template-columns:1fr}.hero-visual{min-height:52vw}.hero-visual img{position:relative}}

/* ---------------- marquee ---------------- */
.marquee{background:var(--navy);color:var(--ivory);overflow:hidden;padding:16px 0;border-top:1px solid var(--navy-deep)}
.marquee .track{display:flex;gap:0;width:max-content;animation:marquee 36s linear infinite}
.marquee span{font-family:var(--mono);font-size:12px;letter-spacing:.34em;text-transform:uppercase;white-space:nowrap;padding-right:64px}
.marquee span i{font-style:normal;color:var(--red-soft);padding-right:64px}
@keyframes marquee{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.marquee .track{animation:none}}

/* ---------------- stats ---------------- */
.stats-band{background:var(--paper);border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline)}
.stats{display:grid;grid-template-columns:repeat(3,1fr)}
.stat{padding:clamp(36px,4vw,60px) clamp(20px,3vw,48px)}
.stat + .stat{border-left:1px solid var(--hairline)}
.stat .num{font-family:var(--serif);font-size:clamp(44px,4.6vw,68px);line-height:1;color:var(--navy);margin:14px 0 10px;font-weight:500}
.stat .num sup{font-size:.45em;color:var(--red)}
.stat .num .unit{font-size:.5em;font-style:italic;color:var(--red)}
.stat p{font-size:14px;color:var(--ink);max-width:34ch}
@media(max-width:820px){.stats{grid-template-columns:1fr}.stat + .stat{border-left:0;border-top:1px solid var(--hairline)}}

/* ---------------- editorial split ---------------- */
.ed-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(36px,6vw,96px);align-items:center}
.ed-split.rev > .media{order:2}
.ed-split .media{position:relative}
.ed-split .media img{width:100%;height:auto;object-fit:cover}
.frame{position:relative}
.frame::before{content:"";position:absolute;inset:0;transform:translate(18px,18px);border:1px solid var(--red);z-index:-1}
.frame::after{content:attr(data-label);position:absolute;top:14px;left:14px;font-family:var(--mono);font-size:9.5px;letter-spacing:.26em;text-transform:uppercase;color:#fff;background:rgba(18,30,78,.82);padding:7px 12px}
.ed-split .copy .body-copy{margin-top:22px}
.ed-split .copy .btn{margin-top:34px}
@media(max-width:860px){.ed-split{grid-template-columns:1fr}.ed-split.rev > .media{order:0}}

/* ---------------- flow (proposition) ---------------- */
.prop-flow{max-width:820px}
.prop-flow .step-line{font-family:var(--serif);font-size:clamp(26px,3vw,38px);color:var(--navy);line-height:1.28;font-weight:500}
.prop-flow .step-line em{font-style:italic;color:var(--red)}
.prop-flow .arrow{color:var(--red);font-size:30px;margin:20px 0 20px 4px;font-family:var(--serif)}
.prop-final{margin-top:36px;font-size:17px;max-width:56ch}
.prop-final strong{color:var(--navy)}

/* ---------------- services ---------------- */
.svc-grid{margin-top:clamp(44px,5vw,72px);display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--hairline-strong)}
.svc{display:flex;gap:24px;align-items:flex-start;padding:30px clamp(8px,2vw,32px) 30px 0;border-bottom:1px solid var(--hairline);transition:background .25s}
.svc:hover{background:var(--paper)}
.svc:nth-child(odd){border-right:1px solid var(--hairline);padding-right:clamp(20px,3vw,52px)}
.svc:nth-child(even){padding-left:clamp(20px,3vw,52px)}
.svc .code{font-family:var(--mono);font-size:13px;color:var(--navy);border:1px solid var(--navy);padding:8px 11px;flex-shrink:0;margin-top:2px}
.svc:hover .code{background:var(--navy);color:var(--ivory)}
.svc h3{font-size:17px;font-weight:600;color:var(--navy);margin-bottom:5px}
.svc p{font-size:14.5px}
@media(max-width:760px){.svc-grid{grid-template-columns:1fr}.svc:nth-child(odd){border-right:0;padding-right:0}.svc:nth-child(even){padding-left:0}.svc{padding-left:0}}

/* service détaillé (page expertises) */
.svc-detail{display:grid;grid-template-columns:120px minmax(0,5fr) minmax(0,7fr);gap:clamp(20px,3vw,56px);padding:clamp(30px,3.6vw,48px) 0;border-bottom:1px solid var(--hairline-strong);align-items:baseline}
.svc-detail .code{font-family:var(--mono);font-size:15px;color:var(--red);letter-spacing:.14em}
.svc-detail h3{font-family:var(--serif);font-size:clamp(24px,2.4vw,32px);font-weight:500;color:var(--navy);line-height:1.2}
.svc-detail p{font-size:15.5px;max-width:56ch}
@media(max-width:820px){.svc-detail{grid-template-columns:1fr;gap:8px}}

/* ---------------- intelligence list ---------------- */
.intel-list{border-top:1px solid var(--hairline-strong);margin-top:clamp(36px,4vw,56px)}
.intel{display:grid;grid-template-columns:64px minmax(0,4fr) minmax(0,6fr);gap:clamp(16px,2.6vw,40px);padding:20px 0;border-bottom:1px solid var(--hairline);align-items:baseline}
.intel .n{font-family:var(--mono);font-size:14px;color:var(--red)}
.intel h3{font-family:var(--serif);font-style:italic;font-weight:500;font-size:20px;color:var(--navy)}
.intel p{font-size:14.5px}
@media(max-width:720px){.intel{grid-template-columns:48px 1fr}.intel p{grid-column:2}}

/* ---------------- avant/après slider ---------------- */
.ba-set{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.6vw,40px);margin-top:clamp(44px,5vw,72px)}
.ba-card .mono-tag{color:var(--red);display:block}
.ba-card h3{font-family:var(--serif);font-weight:500;font-size:22px;color:var(--navy);margin:6px 0 16px}
.ba{position:relative;aspect-ratio:4/3;overflow:hidden;user-select:none;background:var(--navy)}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.ba .after-img{clip-path:inset(0 0 0 var(--cut,50%))}
.ba .handle{position:absolute;top:0;bottom:0;left:var(--cut,50%);width:2px;background:var(--ivory);pointer-events:none;z-index:3}
.ba .handle::after{content:"◂ ▸";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--red);color:#fff;font-size:11px;letter-spacing:2px;padding:8px 9px;border-radius:999px;white-space:nowrap}
.ba .tag{position:absolute;bottom:10px;z-index:2;font-family:var(--mono);font-size:9.5px;letter-spacing:.22em;color:#fff;background:rgba(18,30,78,.85);padding:6px 10px;text-transform:uppercase}
.ba .tag.avant{left:10px}
.ba .tag.apres{right:10px;background:var(--red)}
.ba input[type=range]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;z-index:4;margin:0}
.ba-card p{font-size:14px;margin-top:14px}
.ba-card p strong{color:var(--navy)}
@media(max-width:900px){.ba-set{grid-template-columns:1fr;max-width:560px}}

/* ---------------- value panels ---------------- */
.value-panels{display:grid;grid-template-columns:1fr 1fr;margin-top:clamp(44px,5vw,72px)}
.vpanel{padding:clamp(34px,4vw,60px)}
.vpanel.light{background:var(--paper);border:1px solid var(--hairline)}
.vpanel.dark{background:var(--navy);color:var(--ivory)}
.vpanel h3{font-family:var(--mono);font-size:14px;letter-spacing:.32em;text-transform:uppercase;color:var(--red);font-weight:500}
.vpanel.dark h3{color:var(--red-soft)}
.vpanel .vsub{font-family:var(--serif);font-style:italic;font-size:20px;margin:12px 0 26px;color:var(--navy)}
.vpanel.dark .vsub{color:#CBD2EC}
.vpanel ol{list-style:none}
.vpanel li{display:flex;gap:14px;padding:13px 0;border-bottom:1px solid var(--hairline);font-size:15px;align-items:baseline}
.vpanel.dark li{border-bottom-color:var(--hairline-light)}
.vpanel li .n{font-family:var(--mono);font-size:13px;color:var(--red);flex-shrink:0}
.vpanel.dark li .n{color:var(--red-soft)}
.vpanel li .up{margin-left:auto;color:var(--red);font-size:13px}
.vpanel.dark li .up{color:var(--red-soft)}
@media(max-width:760px){.value-panels{grid-template-columns:1fr}}

/* ---------------- méthode steps ---------------- */
.steps{margin-top:clamp(44px,5vw,72px);display:grid;grid-template-columns:repeat(6,1fr);border-top:2px solid var(--navy)}
.step{padding:28px clamp(10px,1.4vw,24px) 22px 0;position:relative}
.step + .step{padding-left:clamp(10px,1.4vw,24px);border-left:1px solid var(--hairline)}
.step .dot{width:11px;height:11px;border-radius:50%;background:var(--navy);margin:-34px 0 24px;border:2px solid var(--ivory)}
.step:last-child .dot{background:var(--red)}
.step .sn{font-family:var(--mono);font-size:14px;color:var(--red);letter-spacing:.18em;font-weight:500}
.step h3{font-family:var(--serif);font-weight:500;font-size:19px;color:var(--navy);margin:8px 0;line-height:1.2}
.step:last-child h3{color:var(--red)}
.step p{font-size:13px;line-height:1.55}
.step .dur{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;color:var(--muted);margin-top:16px;padding-bottom:8px;border-bottom:1px solid var(--hairline-strong)}
.step:last-child .dur{color:var(--red)}
@media(max-width:1020px){.steps{grid-template-columns:repeat(3,1fr);border-top:0}.step{border-top:2px solid var(--navy)}.step + .step{border-left:0}}
@media(max-width:620px){.steps{grid-template-columns:1fr}}

/* méthode page : version verticale détaillée */
.steps-v{margin-top:clamp(44px,5vw,72px);border-top:1px solid var(--hairline-strong)}
.step-v{display:grid;grid-template-columns:150px minmax(0,5fr) minmax(0,7fr);gap:clamp(20px,3vw,56px);padding:clamp(30px,3.4vw,46px) 0;border-bottom:1px solid var(--hairline-strong);align-items:baseline}
.step-v .sn{font-family:var(--mono);font-size:16px;color:var(--red);letter-spacing:.16em}
.step-v .sn small{display:block;font-size:10px;color:var(--muted);margin-top:8px;letter-spacing:.2em}
.step-v h3{font-family:var(--serif);font-weight:500;font-size:clamp(24px,2.4vw,32px);color:var(--navy);line-height:1.2}
.step-v p{font-size:15.5px;max-width:58ch}
.step-v.last .sn,.step-v.last h3{color:var(--red)}
@media(max-width:820px){.step-v{grid-template-columns:1fr;gap:8px}}

/* ---------------- clients ---------------- */
.clients{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,88px);margin-top:clamp(44px,5vw,72px)}
.cl-group h3{font-family:var(--mono);font-size:13px;letter-spacing:.2em;color:var(--ink);text-transform:uppercase}
.cl-group h3 .a{color:var(--red)}
.cl-group h3 .lbl{font-family:var(--serif);font-size:20px;font-style:italic;letter-spacing:0;color:var(--navy);text-transform:none;margin-left:12px;font-weight:500}
.cl-group ul{list-style:none;margin-top:16px;border-top:1px solid var(--navy)}
.cl-group li{display:flex;gap:14px;align-items:baseline;padding:15px 0;border-bottom:1px solid var(--hairline-strong);font-size:16.5px;color:var(--navy);font-weight:500}
.cl-group li .n{font-family:var(--mono);font-size:12px;color:var(--muted);font-weight:400}
.cl-group li .up{margin-left:auto;color:var(--red)}
.cl-note{margin-top:22px;font-size:14.5px;max-width:44ch}
@media(max-width:760px){.clients{grid-template-columns:1fr}}

/* ---------------- territoires ---------------- */
.terr-list{margin-top:clamp(44px,5vw,72px);border-top:1px solid var(--navy)}
.terr{display:grid;grid-template-columns:110px minmax(0,4fr) minmax(0,7fr) 130px;gap:clamp(16px,2.6vw,44px);padding:clamp(26px,3vw,40px) 0;border-bottom:1px solid var(--hairline-strong);align-items:baseline;transition:background .25s;position:relative}
.terr:hover{background:var(--paper)}
.terr .rank{font-family:var(--serif);font-size:clamp(34px,3.4vw,52px);color:var(--ivory-deep);-webkit-text-stroke:1px var(--navy);font-weight:500;line-height:1}
.terr:hover .rank{color:var(--navy);-webkit-text-stroke:0}
.terr h3{font-family:var(--serif);font-weight:500;font-size:clamp(24px,2.4vw,32px);color:var(--navy);line-height:1.15}
.terr h3 small{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;color:var(--muted);margin-top:8px;text-transform:uppercase}
.terr p{font-size:15px;max-width:58ch}
.terr .top-badge{font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:#fff;background:var(--red);padding:6px 10px;justify-self:end;text-transform:uppercase;white-space:nowrap}
@media(max-width:860px){.terr{grid-template-columns:70px 1fr;grid-template-rows:auto auto}.terr p{grid-column:2}.terr .top-badge{position:absolute;top:26px;right:0}}

/* ---------------- quote / manifesto ---------------- */
.quote-band{background:var(--navy);color:var(--ivory)}
.quote-band .chapter{color:var(--red-soft)}
.quote-band blockquote{font-family:var(--serif);font-weight:500;font-size:clamp(28px,3.6vw,46px);line-height:1.25;max-width:26ch;margin-top:24px}
.quote-band blockquote em{font-style:italic;color:var(--red-soft)}
.quote-band .attr{margin-top:28px;font-family:var(--mono);font-size:11px;letter-spacing:.24em;color:#8f9ac9;text-transform:uppercase}
.law-quote{margin-top:44px;padding-left:22px;border-left:2px solid var(--red);font-family:var(--serif);font-style:italic;font-size:20px;color:var(--navy);max-width:52ch}

/* ---------------- contact ---------------- */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(36px,6vw,110px);margin-top:clamp(44px,5vw,72px)}
.c-item{padding:22px 0;border-bottom:1px solid var(--hairline-strong)}
.c-item .mono-tag{color:var(--red)}
.c-item .val{font-family:var(--serif);font-size:clamp(22px,2.2vw,30px);color:var(--navy);margin-top:6px;font-weight:500}
.c-item .val a{text-decoration:none}
.c-item .val a:hover{color:var(--red)}
.c-item .note{font-size:13.5px;color:var(--muted);margin-top:4px}
form.contact-form{display:grid;gap:22px}
.field label{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.field input,.field textarea,.field select{width:100%;background:var(--paper);border:1px solid var(--hairline-strong);padding:14px 16px;font-family:var(--sans);font-size:15px;color:var(--ink);border-radius:0;-webkit-appearance:none}
.field textarea{min-height:140px;resize:vertical}
.field input:focus,.field textarea:focus,.field select:focus{outline:2px solid var(--navy);outline-offset:0;border-color:var(--navy)}
@media(max-width:820px){.contact-grid{grid-template-columns:1fr}}

/* ---------------- mega CTA + footer ---------------- */
.mega-cta{background:var(--navy);color:var(--ivory);padding:clamp(80px,10vw,150px) 0;position:relative;overflow:hidden}
.mega-cta .chapter{color:var(--red-soft)}
.mega-cta h2{font-family:var(--serif);font-weight:500;font-size:clamp(40px,6vw,80px);line-height:1.06;margin:22px 0 34px;max-width:16ch;color:#fff}
.mega-cta h2 em{font-style:italic;color:var(--red-soft)}
.mega-cta .sub{color:#CBD2EC;max-width:50ch;margin-bottom:40px}
.mega-cta .bg-mark{position:absolute;right:-4%;bottom:-18%;width:clamp(280px,34vw,520px);opacity:.07;pointer-events:none;filter:grayscale(1) brightness(3)}
footer.site{background:var(--navy-deep);color:#8f9ac9;padding:clamp(40px,5vw,64px) 0 32px}
.foot-grid{display:grid;grid-template-columns:minmax(0,2fr) repeat(2,minmax(0,1fr));gap:clamp(28px,4vw,72px);padding-bottom:40px;border-bottom:1px solid var(--hairline-light)}
.foot-grid .brand img{width:52px;height:52px}
.foot-grid .brand .wm .b{color:#fff}
.foot-grid .brand .wm .r{color:var(--red-soft)}
.foot-grid p.tag{font-family:var(--serif);font-style:italic;font-size:18px;color:#CBD2EC;margin-top:16px;max-width:30ch}
.foot-grid h4{font-family:var(--mono);font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--red-soft);margin-bottom:16px;font-weight:500}
.foot-grid ul{list-style:none}
.foot-grid li{padding:5px 0;font-size:14px}
.foot-grid a{color:#CBD2EC;text-decoration:none}
.foot-grid a:hover{color:#fff}
.foot-base{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:26px;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase}
@media(max-width:760px){.foot-grid{grid-template-columns:1fr}}

/* ---------------- page hero (inner pages) ---------------- */
.page-hero{padding:clamp(72px,9vw,130px) 0 clamp(48px,6vw,80px)}
.page-hero .display{font-family:var(--serif);font-weight:500;color:var(--navy);font-size:clamp(40px,5.6vw,72px);line-height:1.06;margin-top:22px;max-width:18ch}
.page-hero .intro{margin-top:26px;max-width:54ch;font-size:17px}

/* ---------------- reveal ---------------- */
@media(prefers-reduced-motion:no-preference){
  /* gated on .js so content stays visible without JavaScript */
  .js .reveal{opacity:0;transform:translateY(22px);transition:opacity .8s cubic-bezier(.22,.61,.36,1),transform .8s cubic-bezier(.22,.61,.36,1)}
  .js .reveal.in{opacity:1;transform:none}
  .js .reveal.d1{transition-delay:.08s}.js .reveal.d2{transition-delay:.16s}.js .reveal.d3{transition-delay:.24s}
}
