/* ============================================================
   Calder Flint Group — redesign · one stylesheet, one system
   Navy covers, paper pages, the keyline as the only signature.
   ============================================================ */

/* ---------- Fonts (self-hosted) ---------- */
@font-face{font-family:"Newsreader";src:url("../fonts/newsreader.woff2") format("woff2");font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:"Newsreader";src:url("../fonts/newsreader-italic.woff2") format("woff2");font-weight:200 800;font-style:italic;font-display:swap}
@font-face{font-family:"Gilroy";src:url("../fonts/gilroy-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Gilroy";src:url("../fonts/gilroy-400i.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Gilroy";src:url("../fonts/gilroy-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Gilroy";src:url("../fonts/gilroy-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}

/* ---------- Tokens ---------- */
:root{
  --navy-deep:#08132A; --navy:#0C1B33; --navy-2:#122544; --navy-3:#1B3054;
  --gold:#C4A159; --gold-2:#D9BE7C; --gold-ink:#8F7138; --gold-soft:rgba(196,161,89,.12);
  --paper:#F9F8F5; --paper-2:#F3F0E9; --white:#FFFFFF;
  --line:#E4DFD2; --line-strong:#D2CBB8; --line-dark:rgba(255,255,255,.14);
  --ink:#131720; --ink-2:#3A414B; --muted:#666E79;
  --w-78:rgba(255,255,255,.80); --w-60:rgba(255,255,255,.62);
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"Gilroy","Avenir Next","Segoe UI",-apple-system,Arial,sans-serif;
  --max:1200px; --maxn:880px; --pad:clamp(20px,5vw,56px);
  --sec:clamp(72px,10vw,136px); --sec-sm:clamp(52px,6.5vw,84px);
  --ease:cubic-bezier(.22,.7,.25,1);
  --shadow-doc:0 1px 2px rgba(8,19,42,.08),0 24px 70px -28px rgba(8,19,42,.5);
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
html,body{overflow-x:clip}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.62 var(--sans);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{display:block;max-width:100%}
[hidden]{display:none!important}
a{color:var(--gold-ink);text-decoration:none;transition:color .2s var(--ease)}
a:hover{color:var(--gold)}
button{font:inherit;cursor:pointer}
fieldset{border:0;padding:0;margin:0;min-width:0}
legend{padding:0}
::selection{background:var(--gold);color:var(--navy)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sr:focus-visible{position:fixed;inset:auto auto 16px 16px;width:auto;height:auto;clip:auto;
  background:var(--navy);color:#fff;padding:12px 18px;z-index:200}

/* ---------- Type ---------- */
h1,h2,h3,.serif{font-family:var(--serif);font-weight:400;margin:0;text-wrap:balance;
  letter-spacing:-.015em;font-variation-settings:"opsz" 72}
h1{font-size:clamp(42px,5.6vw + 8px,82px);line-height:1.02}
h2{font-size:clamp(33px,3.5vw + 8px,56px);line-height:1.06}
h3{font-size:clamp(24px,1.7vw + 10px,32px);line-height:1.15;font-variation-settings:"opsz" 44}
h4{font-family:var(--serif);font-weight:500;font-size:21px;line-height:1.3;margin:0;
  letter-spacing:-.008em;font-variation-settings:"opsz" 24}
h5{font:600 11px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;margin:0;color:var(--muted)}
p{margin:0}
em.g{font-style:italic;color:var(--gold-ink)}
.on-dark em.g,.dark em.g,.hero em.g{color:var(--gold)}
.lede{font-size:clamp(17px,.5vw + 14px,20px);line-height:1.6;color:var(--ink-2);max-width:58ch}
.dark .lede,.hero .lede{color:var(--w-78)}
.small{font-size:14px;line-height:1.6;color:var(--muted)}
.dark .small,.hero .small{color:var(--w-60)}
.micro{font-size:13px;line-height:1.6;color:var(--muted)}
.dark .micro,.hero .micro{color:var(--w-60)}
.num,.price,.stat b{font-variant-numeric:tabular-nums lining-nums}
.eyebrow{display:inline-flex;align-items:center;gap:14px;font:600 11px/1 var(--sans);
  letter-spacing:.22em;text-transform:uppercase;color:var(--gold-ink)}
.eyebrow::before{content:"";width:26px;height:1px;background:currentColor}
.dark .eyebrow,.hero .eyebrow{color:var(--gold)}
blockquote{margin:0;font-family:var(--serif);font-size:clamp(20px,1.4vw + 12px,26px);
  line-height:1.42;letter-spacing:-.01em;font-variation-settings:"opsz" 40;text-indent:-.42ch}
cite{display:block;font:500 13px/1.5 var(--sans);font-style:normal;letter-spacing:.04em;
  color:var(--muted);margin-top:18px}
.dark cite{color:var(--w-60)}

.mt-1{margin-top:10px}.mt-2{margin-top:18px}.mt-3{margin-top:30px}.mt-4{margin-top:48px}
.center{text-align:center}

/* ---------- Layout ---------- */
.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--pad)}
.wrap-n{max-width:var(--maxn);margin:0 auto;padding-inline:var(--pad)}
section{position:relative}
.sec{padding-block:var(--sec)}
.sec-sm{padding-block:var(--sec-sm)}
.dark{background:var(--navy);color:#fff}
.dark h1,.dark h2,.dark h3,.dark h4{color:#fff}
.deep{background:var(--navy-deep);color:#fff}
.tint{background:var(--paper-2)}
.sec-head{max-width:780px;margin-bottom:clamp(40px,5vw,68px)}
.sec-head .lede{margin-top:22px}
.sec-head.center{margin-inline:auto}
.sec-head.center .lede{margin-inline:auto}
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,6vw,104px);align-items:start}
.split.rev{grid-template-columns:minmax(0,6fr) minmax(0,5fr)}
.stack>*+*{margin-top:22px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,3.5vw,52px)}

/* ---------- Ruleheads & the keyline ---------- */
.rulehead{border-top:1px solid var(--line);padding-top:16px;display:flex;align-items:baseline;
  justify-content:space-between;gap:20px;margin-bottom:clamp(30px,4vw,52px)}
.dark .rulehead,.deep .rulehead{border-top-color:var(--line-dark)}
.rh-label{font:600 11px/1.4 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--gold-ink)}
.dark .rh-label,.deep .rh-label{color:var(--gold)}
.rh-note{font:400 13px/1.4 var(--sans);color:var(--muted);letter-spacing:.02em;text-align:right}
.dark .rh-note,.deep .rh-note{color:var(--w-60)}

.keyline{display:flex;align-items:center;gap:16px;margin-bottom:clamp(30px,4vw,52px)}
.kl-label{font:600 11px/1.4 var(--sans);letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold-ink);white-space:nowrap}
.dark .keyline .kl-label,.deep .keyline .kl-label,.hero .keyline .kl-label{color:var(--gold)}
.kl-rule{flex:1;height:1px;background:var(--line);transform-origin:left}
.dark .kl-rule,.deep .kl-rule,.hero .kl-rule{background:var(--line-dark)}
.kl-bit{width:11px;flex:none;color:var(--gold)}
.kl-bit svg{width:100%;height:auto}
[data-reveal] .kl-rule{transform:scaleX(0);transition:transform .9s var(--ease) .1s}
[data-reveal] .kl-bit{opacity:0;transform:translateX(-18px);transition:opacity .5s var(--ease) .75s,transform .6s var(--ease) .7s}
[data-reveal].in .kl-rule{transform:scaleX(1)}
[data-reveal].in .kl-bit{opacity:1;transform:none}

/* ---------- Reveal ---------- */
[data-reveal]{opacity:0;transform:translateY(14px);
  transition:opacity .7s var(--ease),transform .7s var(--ease)}
[data-reveal].in{opacity:1;transform:none}
[data-reveal="1"]{transition-delay:.12s}
[data-reveal="2"]{transition-delay:.24s}
[data-reveal="3"]{transition-delay:.36s}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font:600 15px/1.1 var(--sans);letter-spacing:.015em;padding:15px 26px;border-radius:3px;
  border:1px solid transparent;background:var(--gold);color:var(--navy);white-space:nowrap;
  transition:background .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease),transform .25s var(--ease)}
.btn:hover{background:var(--gold-2);color:var(--navy)}
.btn:active{transform:translateY(1px)}
.btn-lg{padding:18px 32px;font-size:16px}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.34)}
.btn-ghost:hover{background:rgba(255,255,255,.06);border-color:#fff;color:#fff}
.btn-line{background:transparent;color:var(--ink);border-color:var(--line-strong)}
.btn-line:hover{border-color:var(--ink);background:transparent;color:var(--ink)}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{background:var(--navy-3);color:#fff}
.btn .arr,.link .arr,.door-cta .arr{transition:transform .25s var(--ease)}
.btn:hover .arr,.link:hover .arr,.door:hover .door-cta .arr{transform:translateX(4px)}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:30px}
.link{display:inline-flex;align-items:center;gap:8px;font:600 15px/1.3 var(--sans);color:var(--gold-ink)}
.link:hover{color:var(--gold)}
.dark .link,.hero .link{color:var(--gold)}
.dark .link:hover,.hero .link:hover{color:var(--gold-2)}
.btn[aria-busy="true"]{opacity:.7;pointer-events:none}

/* ---------- Header ---------- */
.hdr{position:fixed;inset:0 0 auto;z-index:100;transition:background .3s var(--ease),box-shadow .3s var(--ease)}
.hdr.solid{background:rgba(8,19,42,.96);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  box-shadow:inset 0 -1px 0 var(--line-dark)}
.hdr-in{max-width:var(--max);margin:0 auto;padding:0 var(--pad);height:76px;
  display:flex;align-items:center;gap:clamp(18px,3vw,44px)}
.brand{flex:none;display:block}
.brand img{height:38px;width:auto}
.nav{display:flex;gap:clamp(16px,2.2vw,32px);margin-inline:auto}
.nav a{font:500 14px/1 var(--sans);letter-spacing:.05em;color:var(--w-78);padding:8px 2px;position:relative}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:2px;height:1px;background:var(--gold);
  transition:right .3s var(--ease)}
.nav a:hover{color:#fff}
.nav a:hover::after,.nav a[aria-current="page"]::after{right:0}
.nav a[aria-current="page"]{color:#fff}
.hdr-right{display:flex;align-items:center;gap:20px;margin-left:auto}
.tel{display:inline-flex;align-items:center;gap:9px;font:600 14px/1 var(--sans);
  letter-spacing:.03em;color:#fff;font-variant-numeric:tabular-nums}
.tel svg{width:15px;height:15px;color:var(--gold)}
.tel:hover{color:var(--gold-2)}
.hdr-cta{padding:12px 20px;font-size:14px}
.burger{display:none;background:none;border:0;width:44px;height:44px;position:relative;margin-right:-10px}
.burger span,.burger span::before,.burger span::after{content:"";position:absolute;left:11px;right:11px;
  height:2px;background:#fff;border-radius:2px;transition:transform .3s var(--ease),opacity .3s var(--ease)}
.burger span{top:21px}
.burger span::before{left:0;right:0;top:-7px}
.burger span::after{left:0;right:0;top:7px}
.burger[aria-expanded="true"] span{background:transparent}
.burger[aria-expanded="true"] span::before{transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span::after{transform:translateY(-7px) rotate(-45deg)}

/* Drawer */
.drawer{position:fixed;inset:0;z-index:90;background:var(--navy-deep);color:#fff;
  padding:110px var(--pad) 40px;display:flex;flex-direction:column;gap:4px;
  opacity:0;visibility:hidden;transform:translateY(-8px);
  transition:opacity .35s var(--ease),transform .35s var(--ease),visibility 0s .35s;overflow-y:auto}
.drawer.open{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.drawer>a{display:flex;flex-direction:column;gap:3px;padding:16px 0;border-top:1px solid var(--line-dark);
  font-family:var(--serif);font-size:27px;line-height:1.1;color:#fff;letter-spacing:-.01em}
.drawer>a:first-of-type{border-top:0}
.drawer>a small{font:400 13px/1.4 var(--sans);color:var(--w-60);letter-spacing:.02em}
.drawer>a:hover{color:var(--gold-2)}
.drawer-foot{margin-top:auto;padding-top:28px;display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.drawer-foot a:not(.btn){color:var(--w-78);font:500 15px/1.2 var(--sans)}
.no-scroll{overflow:hidden}

/* ---------- Hero ---------- */
.hero{position:relative;background:linear-gradient(160deg,var(--navy-deep) 0%,var(--navy) 70%,var(--navy-2) 100%);
  color:#fff;overflow:clip;padding-top:76px}
.hero-img{position:absolute;inset:0;z-index:0}
.hero-img img{width:100%;height:100%;object-fit:cover;object-position:var(--img-pos,50% 50%);opacity:.34}
.hero-img::after{content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(8,19,42,.94) 0%,rgba(8,19,42,.72) 46%,rgba(8,19,42,.30) 100%),
             linear-gradient(to top,rgba(8,19,42,.9),transparent 40%)}
.key-wm{position:absolute;z-index:1;right:-4%;top:50%;transform:translateY(-50%);height:130%;width:auto;
  opacity:.05;pointer-events:none;user-select:none}
.hero .wrap{position:relative;z-index:2}
.hero-in{padding-block:clamp(64px,9vw,128px);max-width:820px}
.hero-in .eyebrow{margin-bottom:26px}
.hero-in h1{max-width:20ch}
.hero-in .lede{margin-top:26px}
.hero-in .micro{margin-top:22px}
.hero-facts{display:flex;flex-wrap:wrap;gap:10px 36px;margin-top:34px;padding-top:22px;
  border-top:1px solid var(--line-dark);font-size:14px;color:var(--w-60)}
.hero-facts b{display:block;font:400 21px/1.2 var(--serif);color:#fff;letter-spacing:0;
  font-variant-numeric:tabular-nums;margin-bottom:2px}

/* Home hero: the index of doors */
.hero-home .hero-in{max-width:none;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);
  gap:clamp(40px,6vw,110px);align-items:end}
.hero-home h1{max-width:none;font-size:clamp(40px,3.4vw + 12px,64px)}
.index{border-top:1px solid var(--line-dark)}
.index-label{font:600 11px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--gold);
  display:block;padding:16px 0 6px}
.index a{display:flex;align-items:center;gap:14px;padding:15px 2px;border-bottom:1px solid var(--line-dark);
  color:#fff;font-family:var(--serif);font-size:clamp(21px,1.4vw + 10px,26px);line-height:1.1;letter-spacing:-.01em}
.index a .kl-bit{margin-left:auto;opacity:0;transform:translateX(-14px);
  transition:opacity .3s var(--ease),transform .3s var(--ease)}
.index a small{font:400 13px/1 var(--sans);color:var(--w-60);letter-spacing:.03em;margin-left:2px}
.index a:hover{color:var(--gold-2)}
.index a:hover .kl-bit,.index a:focus-visible .kl-bit{opacity:1;transform:none}
.index-foot{margin-top:18px}

/* Hero load orchestration (home) */
.hero-home .eyebrow,.hero-home h1 .hl,.hero-home .lede,.hero-home .micro,
.hero-home .index,.hero-home .index-foot{opacity:0;transform:translateY(22px);
  animation:rise .9s var(--ease) forwards}
.hero-home .eyebrow{animation-delay:.1s}
.hero-home h1 .hl{display:block;animation-delay:.22s}
.hero-home h1 .hl:nth-child(2){animation-delay:.34s}
.hero-home h1 .hl:nth-child(3){animation-delay:.46s}
.hero-home .lede{animation-delay:.62s}
.hero-home .micro{animation-delay:.74s}
.hero-home .index{animation-delay:.55s}
.hero-home .index-foot{animation-delay:.8s}
.hero-home .key-wm{opacity:0;animation:wm 2.2s var(--ease) .5s forwards}
@keyframes rise{to{opacity:1;transform:none}}
@keyframes wm{to{opacity:.05}}

/* Hero chips (finance / digital) */
.chips{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:30px}
.chips .c-lbl{font:600 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--w-60);margin-right:6px}
.chip-btn{font:500 14px/1 var(--sans);color:#fff;padding:11px 16px;border:1px solid rgba(255,255,255,.3);
  border-radius:3px;transition:border-color .25s var(--ease),background .25s var(--ease),color .25s var(--ease);
  font-variant-numeric:tabular-nums}
.chip-btn:hover{border-color:var(--gold);background:var(--gold-soft);color:#fff}

/* ---------- Credibility strip (white credit line under the navy cover) ---------- */
.strip{background:#fff;color:var(--ink);border-bottom:1px solid var(--line);padding-block:24px}
.strip .wrap{display:flex;align-items:center;gap:clamp(20px,3.5vw,52px);flex-wrap:wrap}
.strip .lbl{font:600 11px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--muted);flex:none}
.strip .logos{display:flex;align-items:center;gap:clamp(22px,3vw,44px);flex-wrap:wrap}
.strip .logos img{height:26px;width:auto;opacity:.72;filter:grayscale(1);transition:opacity .3s var(--ease),filter .3s var(--ease)}
.strip .logos img:hover{opacity:1;filter:none}
.strip .logos img.lg-evtec{height:34px}
.strip .logos img.lg-sov{border-radius:2px}
.strip .logos img.lg-lum{height:32px;filter:grayscale(1) brightness(.55)}
.strip .quote{font-size:13.5px;color:var(--muted);margin-left:auto;max-width:36ch;line-height:1.5}
.strip .quote b{color:var(--ink);font-weight:600}
@media (max-width:900px){.strip .quote{display:none}}
/* Phone: the free-wrap rag becomes a set grid — two columns, optically
   balanced heights (the boxed dark marks read heavier, so they run smaller). */
@media (max-width:700px){
  .strip{padding-block:26px 30px}
  .strip .wrap{flex-direction:column;align-items:center;gap:20px}
  .strip .logos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 20px;width:100%;justify-items:center;align-items:center}
  .strip .logos img{height:24px;opacity:.66}
  .strip .logos img.lg-evtec{height:31px}
  .strip .logos img.lg-lum{height:31px}
  .strip .logos img.lg-sov{height:21px}
  .strip .logos img.lg-euro{height:22px}
}

/* ---------- The ledger (home doors) ---------- */
.ledger{border-bottom:1px solid var(--line)}
.door{display:grid;grid-template-columns:210px minmax(0,1fr) auto;gap:clamp(18px,3vw,52px);
  align-items:baseline;padding-block:clamp(26px,3.4vw,44px);border-top:1px solid var(--line);
  margin-inline:calc(50% - 50vw);padding-inline:max(var(--pad),calc(50vw - var(--max)/2 + var(--pad)));
  color:var(--ink);position:relative;transition:background .35s var(--ease),color .35s var(--ease)}
.door-label{font:600 11px/1.6 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-ink);
  transition:color .35s var(--ease)}
.door h3{transition:color .35s var(--ease);max-width:19ch}
.door p{margin-top:12px;max-width:52ch;color:var(--ink-2);transition:color .35s var(--ease)}
.door-cta{font:600 14px/1 var(--sans);letter-spacing:.03em;color:var(--gold-ink);display:inline-flex;
  align-items:center;gap:10px;white-space:nowrap;transition:color .35s var(--ease)}
.door-cta .kl-bit{opacity:0;transform:translateX(-12px);transition:opacity .3s var(--ease),transform .35s var(--ease)}
.door:hover{background:var(--navy);color:#fff}
.door:hover h3{color:#fff}
.door:hover p{color:var(--w-78)}
.door:hover .door-label,.door:hover .door-cta{color:var(--gold)}
.door:hover .door-cta .kl-bit,.door:focus-visible .door-cta .kl-bit{opacity:1;transform:none}
.door:focus-visible{outline-offset:-2px}

/* ---------- Editorial rows ---------- */
.rows{border-bottom:1px solid var(--line)}
.row-item{display:grid;grid-template-columns:210px minmax(0,1fr);gap:clamp(18px,3vw,52px);
  padding-block:clamp(24px,3vw,38px);border-top:1px solid var(--line)}
.row-label{font:600 11px/1.7 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);padding-top:5px}
.row-body h3{max-width:24ch}
.row-body h4{max-width:30ch}
.row-body p{margin-top:10px;max-width:60ch;color:var(--ink-2)}
.dark .rows,.dark .row-item{border-color:var(--line-dark)}
.dark .row-label{color:var(--w-60)}
.dark .row-body p{color:var(--w-78)}

/* ---------- Numbered steps (true sequences only) ---------- */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(24px,3vw,44px)}
.step .n{font-family:var(--serif);font-size:clamp(44px,3.4vw,60px);line-height:1;color:var(--ink);
  font-variant-numeric:tabular-nums;letter-spacing:-.02em;padding-bottom:14px;margin-bottom:18px;
  border-bottom:1px solid var(--line);position:relative}
.step .n::after{content:"";position:absolute;left:0;bottom:-1px;width:26px;height:2px;background:var(--gold)}
.step .t{font:600 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-ink);margin-bottom:10px}
.step h4{margin-bottom:8px}
.step p{color:var(--ink-2);font-size:15px;line-height:1.6}
.dark .step .n{color:#fff;border-color:var(--line-dark)}
.dark .step .t{color:var(--gold)}
.dark .step p{color:var(--w-78)}

/* ---------- The journey (3 stops) ---------- */
.road{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,48px);position:relative}
.stop{position:relative;padding-top:26px}
.stop::before{content:"";position:absolute;top:0;left:0;right:calc(-1 * clamp(24px,3vw,48px));height:1px;background:var(--line)}
.stop:last-child::before{right:0}
.stop .dot{position:absolute;top:-4px;left:0;width:9px;height:9px;background:var(--gold);border-radius:50%}
.stop .lbl{font:600 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.stop h3{font-size:clamp(22px,1.4vw + 10px,27px)}
.stop .price{font-family:var(--serif);font-size:19px;color:var(--gold-ink);margin-top:8px;font-variant-numeric:tabular-nums}
.stop p:not(.lbl):not(.price):not(.foot){margin-top:12px;color:var(--ink-2);font-size:15px;line-height:1.62}
.stop .foot{margin-top:12px;font-size:13px;color:var(--muted)}
.dark .stop::before{background:var(--line-dark)}
.dark .stop .lbl{color:var(--w-60)}
.dark .stop .price{color:var(--gold)}
.dark .stop p:not(.lbl):not(.price):not(.foot){color:var(--w-78)}
.dark .stop .foot{color:var(--w-60)}

/* ---------- Document specimen ---------- */
.doc{background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:2px;
  padding:clamp(26px,3vw,40px);box-shadow:var(--shadow-doc);max-width:520px}
.doc-brand{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}
.doc-brand img{height:20px;width:auto}
.doc-title{font-family:var(--serif);font-size:24px;letter-spacing:-.01em;padding-bottom:16px;
  border-bottom:1px solid var(--line-strong)}
.doc ol{list-style:none;margin:0;padding:0}
.doc ol li{display:flex;gap:16px;align-items:baseline;padding:11px 0;border-bottom:1px solid var(--line);
  font-size:14.5px;color:var(--ink-2);line-height:1.45}
.doc ol li b{font:600 12px/1 var(--sans);color:var(--gold-ink);font-variant-numeric:tabular-nums;flex:none}
.doc-foot{display:flex;justify-content:space-between;margin-top:18px;font-size:13px;color:var(--muted)}
.doc-foot b{font-family:var(--serif);font-size:17px;color:var(--ink);font-variant-numeric:tabular-nums}

/* ---------- Case studies & stats ---------- */
.kicker{font:600 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-ink);margin-bottom:16px}
.case{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(32px,5vw,84px);
  border-top:1px solid var(--line);padding-top:clamp(28px,3.5vw,44px);align-items:start}
.case dl{margin:22px 0 0;display:grid;gap:16px}
.case dt{font:600 11px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.case dd{margin:6px 0 0;color:var(--ink-2);max-width:56ch}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line)}
.stat{background:var(--paper);padding:20px 18px}
.stat b{display:block;font:400 clamp(26px,2vw,34px)/1.05 var(--serif);letter-spacing:-.015em;color:var(--ink)}
.stat span{display:block;margin-top:8px;font-size:12.5px;line-height:1.45;color:var(--muted)}
.dark .stats{background:var(--line-dark);border-color:var(--line-dark)}
.dark .stat{background:var(--navy-2)}
.dark .stat b{color:#fff}
.dark .stat span{color:var(--w-60)}

/* ---------- Notice & quote block ---------- */
.notice{border-left:2px solid var(--gold);background:var(--paper-2);padding:18px 22px;
  font-size:15px;line-height:1.62;color:var(--ink-2)}
.notice b{color:var(--ink)}
.dark .notice{background:rgba(255,255,255,.05);color:var(--w-78)}
.dark .notice b{color:#fff}
.quote-block{border-top:1px solid var(--line);padding-top:26px}
.dark .quote-block{border-color:var(--line-dark)}

/* ---------- Checklist ---------- */
.checks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 clamp(28px,4vw,64px)}
.checks li{display:flex;gap:16px;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--line);
  color:var(--ink-2);line-height:1.55}
.checks .tick{flex:none;width:9px;height:9px;background:var(--gold);border-radius:50%;transform:translateY(-1px)}
.dark .checks li{border-color:var(--line-dark);color:var(--w-78)}

/* ---------- Plain list ---------- */
.list{list-style:none;margin:0;padding:0}
.list li{position:relative;padding:8px 0 8px 24px;color:var(--ink-2);line-height:1.55}
.list li::before{content:"";position:absolute;left:2px;top:17px;width:10px;height:1.5px;background:var(--gold)}
.dark .list li{color:var(--w-78)}
.list.tight li{padding-block:5px;font-size:14.5px}

/* ---------- Lender roll ---------- */
.roll{border-block:1px solid var(--line);padding-block:20px;display:flex;flex-wrap:wrap;
  gap:10px 0;align-items:baseline}
.roll span{font:500 14px/1.7 var(--sans);letter-spacing:.06em;color:var(--ink-2);white-space:nowrap}
.roll span:not(:last-child)::after{content:"·";margin-inline:14px;color:var(--gold)}

/* ---------- Tariff (digital shop) ---------- */
.tariff{border-bottom:1px solid var(--line)}
.sku{display:grid;grid-template-columns:210px minmax(0,1fr) auto;gap:clamp(18px,3vw,52px);
  padding-block:clamp(26px,3.2vw,40px);border-top:1px solid var(--line);align-items:start;position:relative}
.sku-for{font:600 11px/1.7 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);padding-top:6px}
.sku-body h3{font-size:clamp(22px,1.5vw + 9px,28px)}
.sku-body ul{list-style:none;margin:12px 0 0;padding:0}
.sku-body ul li{position:relative;padding:4px 0 4px 22px;color:var(--ink-2);font-size:15px;line-height:1.55}
.sku-body ul li::before{content:"";position:absolute;left:2px;top:14px;width:9px;height:1.5px;background:var(--gold)}
.sku-side{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:12px;min-width:180px}
.sku-price{font-family:var(--serif);font-size:clamp(24px,1.6vw + 10px,30px);line-height:1;letter-spacing:-.01em;
  color:var(--ink);font-variant-numeric:tabular-nums}
.sku-price span{font-size:15px;color:var(--muted);letter-spacing:0}
.sku-price small{display:block;font:400 12.5px/1.5 var(--sans);color:var(--muted);margin-top:6px}
.sku-time{display:inline-flex;align-items:center;gap:7px;font:600 11px/1 var(--sans);
  letter-spacing:.16em;text-transform:uppercase;color:var(--gold-ink)}
.sku-time svg{width:13px;height:13px}
.sku.featured{background:var(--paper-2);margin-inline:calc(-1 * clamp(16px,2vw,28px));
  padding-inline:clamp(16px,2vw,28px);border-top-color:var(--line)}
.sku.featured::before{content:"";position:absolute;left:0;top:-1px;bottom:0;width:2px;background:var(--gold)}

/* ---------- Board table (growth) ---------- */
.btable{max-width:920px;margin-inline:auto}
.bt-head{text-align:center;padding:clamp(20px,2.6vw,30px) 0;border-top:1px solid var(--line-dark);
  border-bottom:1px solid var(--line-dark)}
.bt-seat{font:600 10.5px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:10px}
.bt-head h3{font-size:clamp(25px,2vw + 8px,34px)}
.bt-remit{font-size:13.5px;color:var(--w-60);margin-top:10px;line-height:1.6}
.bt-body{display:grid;grid-template-columns:minmax(0,1fr) 72px minmax(0,1fr);align-items:stretch}
.bt-col{list-style:none;margin:0;padding:0}
.bt-col li{padding:clamp(20px,2.4vw,30px) clamp(4px,1vw,14px);border-bottom:1px solid var(--line-dark)}
.bt-col li:last-child{border-bottom:0}
.bt-col .bt-seat{margin-bottom:8px;color:var(--w-60)}
.bt-col h4{color:#fff}
.bt-col .bt-remit{margin-top:8px}
.bt-col:first-child li{text-align:right}
.bt-spine{position:relative}
.bt-spine::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--line-dark)}
.bt-spine-in{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(180deg);
  writing-mode:vertical-rl;white-space:nowrap;background:var(--navy);padding:16px 0;text-align:center}
.bt-spine-in b{font:600 11px/1.5 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.bt-spine-in span{display:block;font:400 11px/1.5 var(--sans);letter-spacing:.06em;color:var(--w-60)}
.bt-roster{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;justify-content:center;
  margin-top:clamp(26px,3vw,38px)}
.bt-roster .lbl{font:600 10.5px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--w-60)}
.bt-roster .rl{font:500 14px/1 var(--sans);color:var(--w-78);border:1px solid var(--line-dark);
  padding:9px 14px;border-radius:3px}
.bt-foot{text-align:center;margin-top:clamp(30px,4vw,46px)}
.bt-line{font-family:var(--serif);font-size:clamp(22px,1.6vw + 9px,28px);color:#fff;letter-spacing:-.01em}
.bt-foot .small{max-width:60ch;margin:14px auto 22px}

/* ---------- Capital chapters ---------- */
.chap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(36px,5.5vw,96px);align-items:start}
.chap.flip{grid-template-columns:minmax(0,6fr) minmax(0,5fr)}
.chap-no{font-family:var(--serif);font-size:clamp(56px,5vw,84px);line-height:1;color:var(--paper-2);
  -webkit-text-stroke:1px var(--line-strong);letter-spacing:-.02em;display:block;margin-bottom:14px;
  font-variant-numeric:tabular-nums}
.dark .chap-no{color:var(--navy);-webkit-text-stroke:1px var(--navy-3)}
.chap-hd .eyebrow{margin-bottom:18px}
.chap-hd .sticky{position:sticky;top:110px}
.svcs{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.svcs li{padding:20px 0;border-bottom:1px solid var(--line)}
.svcs h4{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.svcs h4 .tag{font:600 11px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--gold-ink)}
.svcs p{margin-top:7px;color:var(--ink-2);font-size:15px;line-height:1.6;max-width:54ch}
.dark .svcs,.dark .svcs li{border-color:var(--line-dark)}
.dark .svcs p{color:var(--w-78)}
.dark .svcs h4 .tag{color:var(--gold)}

/* Deal sizes */
.sizes{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-dark)}
.sizes li{display:flex;justify-content:space-between;align-items:baseline;gap:24px;
  padding:15px 0;border-bottom:1px solid var(--line-dark)}
.sizes li span:first-child{color:var(--w-78)}
.sizes li span:last-child{font-family:var(--serif);font-size:19px;color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap}

/* Proof list */
.proof{list-style:none;margin:0;padding:0;display:grid;gap:0}
.proof li{display:flex;gap:18px;align-items:baseline;padding:14px 0;border-top:1px solid var(--line);color:var(--ink-2)}
.proof b{font:600 12px/1 var(--sans);color:var(--gold-ink);font-variant-numeric:tabular-nums;flex:none}

/* ---------- Work strip (digital photos) ---------- */
.work-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line-dark);
  border-block:1px solid var(--line-dark)}
.work-strip figure{margin:0;position:relative;background:var(--navy-2)}
.work-strip img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.work-strip figcaption{position:absolute;left:0;right:0;bottom:0;padding:36px 20px 16px;
  background:linear-gradient(to top,rgba(8,19,42,.92),transparent);
  font:600 13px/1.3 var(--sans);letter-spacing:.05em;color:#fff}
.work-strip figcaption i{display:block;font:400 12px/1.4 var(--sans);font-style:normal;color:var(--w-60);margin-top:3px}

/* ---------- FAQ ---------- */
.faq{border-bottom:1px solid var(--line)}
.faq details{border-top:1px solid var(--line)}
.faq summary{display:flex;justify-content:space-between;align-items:baseline;gap:24px;cursor:pointer;
  list-style:none;padding:22px 0;font-family:var(--serif);font-size:clamp(18px,1vw + 12px,22px);
  line-height:1.3;letter-spacing:-.008em;font-variation-settings:"opsz" 30;transition:color .2s var(--ease)}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--gold-ink)}
.faq .pm{flex:none;position:relative;width:14px;height:14px;transform:translateY(2px)}
.faq .pm::before,.faq .pm::after{content:"";position:absolute;background:var(--gold-ink);transition:transform .3s var(--ease)}
.faq .pm::before{left:0;right:0;top:6.25px;height:1.5px}
.faq .pm::after{top:0;bottom:0;left:6.25px;width:1.5px}
.faq details[open] .pm::after{transform:scaleY(0)}
.faq details p{padding:0 0 24px;color:var(--ink-2);max-width:64ch;line-height:1.65}

/* ---------- Bands ---------- */
.band{background:linear-gradient(150deg,var(--navy-deep),var(--navy) 85%);color:#fff}
.band .trust{display:flex;flex-wrap:wrap;gap:14px 40px;justify-content:center;margin-top:clamp(32px,4vw,48px)}
.trust span{display:inline-flex;align-items:center;gap:10px;font:500 14px/1.3 var(--sans);color:var(--w-78)}
.trust svg{width:16px;height:16px;color:var(--gold);flex:none}
.trust-v{display:grid;gap:14px}
.trust-v span{display:flex;align-items:baseline;gap:12px;font:500 14.5px/1.5 var(--sans);color:var(--w-78)}
.trust-v svg{width:15px;height:15px;color:var(--gold);flex:none;transform:translateY(2px)}
.fallback{margin-top:clamp(28px,3.5vw,40px);text-align:center;font-size:14.5px;color:var(--w-60);max-width:62ch;margin-inline:auto}
.disc{font-size:12.5px;line-height:1.65;color:var(--muted);max-width:74ch;margin-top:26px}
.dark .disc,.band .disc,.deep .disc{color:rgba(255,255,255,.5)}

/* ---------- Wizard (shared: finance / capital / digital) ---------- */
.fw-split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(36px,4.5vw,80px);align-items:start}
.fw-side{grid-column:1;margin-top:34px}
.fw-col{grid-column:2;grid-row:1 / span 2}
.fw{background:var(--paper);color:var(--ink);border-radius:4px;box-shadow:var(--shadow-doc);
  padding:clamp(22px,3vw,40px);position:relative}
/* The wizard panel is paper even inside dark sections — re-anchor inherited colours */
.fw h2,.fw h3,.fw h4{color:var(--ink)}
.fw .small,.fw .micro{color:var(--muted)}
.fw .eyebrow{color:var(--gold-ink)}
.fw .link{color:var(--gold-ink)}
.fw .link:hover{color:var(--gold)}
.fw .list li{color:var(--ink-2)}
.fw-prog{margin-bottom:26px}
.fw-prog-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}
.fw-stepno{font:600 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ink)}
.fw-time{font:400 12.5px/1 var(--sans);color:var(--muted);font-style:italic;font-family:var(--serif);font-size:14px}
.fw-track{position:relative;height:2px;background:var(--line);border-radius:1px}
.fw-fill{position:absolute;left:0;top:0;bottom:0;background:var(--gold);border-radius:1px;
  transition:width .55s var(--ease)}
.fw-keybit{position:absolute;top:50%;width:13px;color:var(--gold);
  transform:translate(-100%,-50%) rotate(90deg);transition:left .55s var(--ease)}
.fw-keybit svg{width:100%;height:auto}
.fw-q{font-family:var(--serif);font-weight:500;font-size:clamp(19px,1vw + 13px,23px);line-height:1.3;
  letter-spacing:-.008em;display:block;margin:0 0 6px}
.fw-q.sm{font-size:18px}
.fw-hint{font-size:13.5px;color:var(--muted);margin:2px 0 14px;line-height:1.55}
.fw-group{margin-bottom:26px}
.fw-group:last-of-type{margin-bottom:0}
.fw-opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.fw-opts.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.fw-opts.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
.fw-opt{position:relative;display:block}
.fw-opt input{position:absolute;opacity:0;inset:0}
.fw-opt span{display:flex;align-items:center;gap:11px;padding:14px 16px;border:1px solid var(--line-strong);
  border-radius:3px;font:500 14.5px/1.35 var(--sans);color:var(--ink-2);cursor:pointer;
  transition:border-color .2s var(--ease),background .2s var(--ease),color .2s var(--ease);min-height:50px}
.fw-opt span::before{content:"";flex:none;width:12px;height:12px;border:1.5px solid var(--line-strong);
  border-radius:2px;transition:background .2s var(--ease),border-color .2s var(--ease)}
.fw-opt:hover span{border-color:var(--gold)}
.fw-opt input:checked+span{border-color:var(--gold);background:var(--gold-soft);color:var(--ink)}
.fw-opt input:checked+span::before{background:var(--gold);border-color:var(--gold)}
.fw-opt input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.fw-opt.wide{grid-column:1 / -1}
.fw-fields{display:grid;gap:16px;margin-top:14px}
.fw-fields .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fw label,.bk label{display:block;font:600 13px/1.4 var(--sans);letter-spacing:.02em;margin-bottom:7px;color:var(--ink)}
.fw label .opt,.bk .opt-lbl{font-weight:400;color:var(--muted)}
.fw input[type=text],.fw input[type=tel],.fw input[type=email],.fw input[type=date],.fw select,.fw textarea,
.bk input[type=text],.bk input[type=tel],.bk input[type=email],.bk select,.bk textarea{
  width:100%;padding:13px 15px;border:1px solid var(--line-strong);border-radius:3px;background:#fff;
  color:var(--ink);font:400 16px/1.4 var(--sans);transition:border-color .2s var(--ease)}
.fw input:hover,.fw select:hover,.fw textarea:hover,.bk input:hover,.bk select:hover,.bk textarea:hover{border-color:var(--gold)}
.fw input:focus,.fw select:focus,.fw textarea:focus,.bk input:focus,.bk select:focus,.bk textarea:focus{
  outline:2px solid var(--gold);outline-offset:0;border-color:var(--gold)}
.fw input[aria-invalid="true"],.fw .is-bad,.bk .is-bad{border-color:#B4552D;background:#FDF6F2}
.fw-err,.bk-err{display:block;margin-top:16px;font:500 14px/1.5 var(--sans);color:#9C3F1C}
.fw-err[hidden]{display:none}
.fw-nav{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:26px}
.fw-back,.bk-back{background:none;border:0;padding:10px 2px;font:500 14.5px/1 var(--sans);color:var(--muted);
  display:inline-flex;align-items:center;gap:6px}
.fw-back:hover,.bk-back:hover{color:var(--ink)}
.form-note{margin-top:16px;font-size:13px;color:var(--muted);line-height:1.55}
.fw-linkbtn{background:none;border:0;padding:6px 0;font:500 14px/1.3 var(--sans);color:var(--gold-ink);
  text-decoration:underline;text-underline-offset:3px}
.fw-linkbtn:hover{color:var(--gold)}
.fw-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.consent{display:flex;gap:12px;align-items:flex-start;margin-top:22px;cursor:pointer}
.consent input{flex:none;width:17px;height:17px;margin-top:3px;accent-color:var(--gold)}
.consent span{font-size:13px;line-height:1.6;color:var(--ink-2);font-weight:400;letter-spacing:0}
.consent a{text-decoration:underline;text-underline-offset:2px}
.fw-disc{margin-top:18px;font-size:12px;line-height:1.6;color:var(--muted)}
.fw-screen[hidden]{display:none}
.fw-screen{animation:screenIn .32s var(--ease)}
@keyframes screenIn{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}

/* Wizard result */
.fw-result .fw-res-eyebrow{margin-bottom:14px}
.fw-result h3{font-size:clamp(21px,1.3vw + 12px,26px);line-height:1.25}
.fw-types{list-style:none;margin:20px 0 0;padding:0;border-top:1px solid var(--line)}
.fw-types li{padding:12px 0 12px 26px;border-bottom:1px solid var(--line);font-size:14.5px;
  line-height:1.55;color:var(--ink-2);position:relative}
.fw-types li::before{content:"";position:absolute;left:2px;top:21px;width:10px;height:1.5px;background:var(--gold)}
.fw-types b{color:var(--ink)}
.fw-res-basis{margin-top:12px}
.fw-res-note{margin-top:16px;font-size:14px;color:var(--ink-2);border-left:2px solid var(--gold);
  padding:12px 16px;background:var(--paper-2);line-height:1.6}
.fw-res-call{margin-top:22px;background:var(--navy);color:var(--w-78);padding:18px 22px;border-radius:3px;
  font-size:14.5px;line-height:1.65}
.fw-res-call b{color:#fff}
.fw-prewarm{margin-top:22px;border-top:1px solid var(--line);padding-top:6px}
.fw-prewarm summary{cursor:pointer;list-style:none;padding:12px 0;font:600 14px/1.4 var(--sans);color:var(--ink-2)}
.fw-prewarm summary::-webkit-details-marker{display:none}
.fw-prewarm summary::before{content:"+";margin-right:10px;color:var(--gold-ink)}
.fw-prewarm[open] summary::before{content:"–"}
.fw-prewarm .small{margin-top:10px}
.fw-stop h3{font-size:clamp(20px,1.2vw + 12px,24px)}
.fw-stop p{margin-top:14px;color:var(--ink-2);font-size:15px;line-height:1.65}
.fw-xsell{margin-top:16px;border-top:1px solid var(--line);padding-top:14px;font-size:14.5px;line-height:1.6;color:var(--ink-2)}

/* ---------- Book flow ---------- */
.bk-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(36px,5vw,88px);align-items:start}
.bk-trust{list-style:none;margin:26px 0 0;padding:0}
.bk-trust li{position:relative;padding:10px 0 10px 26px;color:var(--w-78);font-size:15px;line-height:1.55;
  border-bottom:1px solid var(--line-dark)}
.bk-trust li::before{content:"";position:absolute;left:2px;top:20px;width:11px;height:1.5px;background:var(--gold)}
.bk-alt{margin-top:22px}
.bk{background:var(--paper);color:var(--ink);border-radius:4px;box-shadow:var(--shadow-doc);
  padding:clamp(22px,3vw,38px)}
.bk-steps{list-style:none;display:flex;gap:4px;margin:0 0 24px;padding:0}
.bk-steps li{flex:1;display:flex;align-items:center;gap:9px;font:600 12px/1 var(--sans);letter-spacing:.06em;
  color:var(--muted);padding-bottom:12px;border-bottom:2px solid var(--line);transition:color .3s,border-color .3s}
.bk-steps li span{display:grid;place-items:center;width:20px;height:20px;border:1px solid var(--line-strong);
  border-radius:50%;font-size:10.5px;transition:all .3s}
.bk-steps li.on{color:var(--ink);border-bottom-color:var(--gold)}
.bk-steps li.on span{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.bk-steps li.done{color:var(--ink-2);border-bottom-color:var(--gold-2)}
.bk-steps li.done span{border-color:var(--gold-2);color:var(--gold-ink)}
.bk-steps li[hidden]{display:none}
.bk-step{display:none}
.bk-step.is-on{display:block;animation:screenIn .32s var(--ease)}
.bk-q{font-family:var(--serif);font-weight:500;font-size:21px;letter-spacing:-.008em;display:block;margin-bottom:16px}
.opts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.opt{position:relative;display:block}
.opt input{position:absolute;opacity:0;inset:0}
.opt>span{display:block;padding:14px 16px;border:1px solid var(--line-strong);border-radius:3px;cursor:pointer;
  transition:border-color .2s var(--ease),background .2s var(--ease);min-height:100%}
.opt b{display:block;font:600 15px/1.35 var(--sans);color:var(--ink)}
.opt small{display:block;font-size:12.5px;color:var(--muted);margin-top:3px;line-height:1.45}
.opt:hover>span{border-color:var(--gold)}
.opt input:checked+span{border-color:var(--gold);background:var(--gold-soft)}
.opt input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.opt-wide{grid-column:1 / -1}
.bk-hint{display:none;margin-top:14px;border-left:2px solid var(--gold);background:var(--paper-2);
  padding:12px 16px;font-size:14px;line-height:1.6;color:var(--ink-2)}
.bk-hint.show{display:block}
.bk-nav{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:24px}
.bk-nav>span{flex:1}
.plans{display:grid;gap:12px}
.plan{position:relative;display:block}
.plan input{position:absolute;opacity:0;inset:0}
.plan-in{display:block;border:1px solid var(--line-strong);border-radius:3px;padding:18px 20px;cursor:pointer;
  transition:border-color .2s var(--ease),background .2s var(--ease)}
.plan:hover .plan-in{border-color:var(--gold)}
.plan input:checked+.plan-in{border-color:var(--gold);background:var(--gold-soft)}
.plan input:focus-visible+.plan-in{outline:2px solid var(--gold);outline-offset:2px}
.plan-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.plan-head b{font-family:var(--serif);font-weight:500;font-size:20px;letter-spacing:-.008em}
.plan-head em{font-family:var(--serif);font-style:normal;font-size:20px;color:var(--gold-ink);
  font-variant-numeric:tabular-nums;white-space:nowrap}
.plan-head em small{font:400 12.5px/1 var(--sans);color:var(--muted)}
.plan-sub{display:block;font-size:13.5px;color:var(--muted);margin-top:4px}
.plan-in ul{list-style:none;margin:12px 0 0;padding:0}
.plan-in ul li{position:relative;padding:4px 0 4px 20px;font-size:13.5px;line-height:1.55;color:var(--ink-2)}
.plan-in ul li::before{content:"";position:absolute;left:1px;top:13px;width:9px;height:1.5px;background:var(--gold)}
.plan-tag{display:inline-block;margin-top:12px;font:600 10.5px/1 var(--sans);letter-spacing:.14em;
  text-transform:uppercase;color:var(--gold-ink);border:1px solid var(--gold);padding:6px 9px;border-radius:2px}
.bk-sum{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-top:22px;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 2px}
.bk-sum-name{font:600 14px/1.3 var(--sans)}
.bk-sum-price{font-family:var(--serif);font-size:19px;font-variant-numeric:tabular-nums}
.bk-sum-price small{font:400 12.5px/1 var(--sans);color:var(--muted)}
.bk-done-h{font-family:var(--serif);font-weight:500;font-size:24px;letter-spacing:-.01em}
.bk-done-p{margin-top:14px;color:var(--ink-2);line-height:1.65}
.bk .row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}
.bk-form>fieldset>div:not(.row):not(.opts):not(.plans):not(.bk-nav){margin-bottom:16px}


/* ---------- Callout (Fast Track) ---------- */
.callout{display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap;
  border-block:1px solid var(--line);padding:clamp(24px,3vw,36px) 0}
.dark .callout{border-color:var(--line-dark)}
.co-tag{display:block;font:600 11px/1.5 var(--sans);letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-ink);margin-bottom:12px}
.dark .co-tag{color:var(--gold)}
.callout .price{font-family:var(--serif);font-size:19px;color:var(--gold-ink);margin-top:8px;
  font-variant-numeric:tabular-nums}
.dark .callout .price{color:var(--gold)}
.co-p{margin-top:10px;color:var(--ink-2);max-width:52ch}
.dark .co-p{color:var(--w-78)}

/* ---------- Booking hero ---------- */
.hero-bk .bk-grid{padding-block:clamp(48px,7vw,96px);position:relative;z-index:2}
.hero-bk h1{font-size:clamp(34px,3vw + 10px,54px)}
.hero-bk .bk-copy{padding-top:clamp(4px,1vw,16px)}

/* ---------- Footer ---------- */
.ftr{background:var(--navy-deep);color:var(--w-78);padding:clamp(56px,7vw,88px) 0 34px}
.ftr-grid{display:grid;grid-template-columns:minmax(0,4fr) repeat(3,minmax(0,3fr));gap:clamp(28px,4vw,64px);
  padding-bottom:clamp(36px,5vw,56px);border-bottom:1px solid var(--line-dark)}
.ftr .brand img{height:40px;width:auto}
.ftr .tag{font-family:var(--serif);font-style:italic;font-size:16px;color:var(--gold);margin-top:16px}
.ftr p{font-size:14px;line-height:1.65;color:var(--w-60)}
.ftr h5{color:var(--gold);margin-bottom:18px}
.ftr ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ftr ul a{color:var(--w-78);font-size:14.5px}
.ftr ul a:hover{color:var(--gold-2)}
.ftr ul li{font-size:14.5px;line-height:1.55}
.ftr .muted{color:var(--w-60);font-size:12.5px}
.legal{padding-block:26px;border-bottom:1px solid var(--line-dark);display:grid;gap:12px}
.legal p{font-size:12px;line-height:1.7;color:rgba(255,255,255,.48);max-width:none}
.bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:22px;
  font-size:12.5px;color:var(--w-60)}
.bottom a{color:var(--w-78)}
.bottom a:hover{color:var(--gold-2)}

/* ---------- Mobile action bar ---------- */
.mbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:80;
  background:rgba(8,19,42,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-top:1px solid var(--line-dark);padding:10px var(--pad) calc(10px + env(safe-area-inset-bottom));
  grid-template-columns:1fr auto;gap:10px;align-items:center}
.mbar .btn{width:100%;padding:14px 18px;font-size:14.5px}
.mbar .call{display:grid;place-items:center;width:48px;height:48px;border:1px solid rgba(255,255,255,.34);
  border-radius:3px;color:#fff}
.mbar .call svg{width:18px;height:18px}
.mbar .call:hover{border-color:var(--gold);color:var(--gold-2)}

/* ---------- Responsive ---------- */
@media (max-width:1023px){
  .split,.split.rev,.chap,.chap.flip,.case,.fw-split,.bk-grid{grid-template-columns:1fr}
  .fw-col{grid-column:1;grid-row:auto}
  .fw-side{grid-column:1;margin-top:0}
  .chap-hd .sticky{position:static}
  .hero-home .hero-in{grid-template-columns:1fr;align-items:start}
  .door{grid-template-columns:minmax(0,1fr)}
  .door-label{margin-bottom:2px}
  .door .door-cta{margin-top:16px}
  .row-item,.sku{grid-template-columns:minmax(0,1fr)}
  .row-label,.sku-for{padding-top:0;margin-bottom:2px}
  .sku-side{text-align:left;align-items:flex-start;flex-direction:row;flex-wrap:wrap;align-items:center;gap:18px;min-width:0}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid3{grid-template-columns:1fr;gap:36px}
  .strip .quote{margin-left:0;max-width:none}
}
@media (max-width:859px){
  .nav,.hdr .tel{display:none}
  .burger{display:block}
  .hdr-cta{display:none}
  .hdr-in{height:66px}
  .mbar{display:grid}
  body{padding-bottom:74px}
  .drawer{padding-top:96px}
  .road{grid-template-columns:1fr;gap:0}
  .stop{padding:22px 0 26px 26px}
  .stop::before{top:0;bottom:0;left:4px;right:auto;width:1px;height:auto}
  .stop:last-child::before{bottom:auto;height:100%}
  .stop .dot{top:28px;left:0}
  .checks{grid-template-columns:1fr}
  .bt-body{grid-template-columns:1fr}
  .bt-col:first-child li{text-align:left}
  .bt-spine{display:none}
  .bt-col li:last-child{border-bottom:1px solid var(--line-dark)}
  .work-strip{grid-template-columns:1fr}
  .work-strip img{aspect-ratio:16/9}
  .stats{grid-template-columns:1fr 1fr}
  .ftr-grid{grid-template-columns:1fr 1fr}
  .hero-facts{gap:10px 26px}
}
@media (max-width:639px){
  .fw-opts,.fw-opts.c3,.fw-opts.c4{grid-template-columns:1fr 1fr}
  .fw-fields .row,.bk .row{grid-template-columns:1fr}
  .opts{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .btn-row .btn{width:100%}
  .btn-row .link{margin-inline:auto}
  .stats{grid-template-columns:1fr}
  .hero-in{padding-block:clamp(48px,10vw,72px)}
  .bk-steps li{font-size:0;gap:0;justify-content:center}
  .bk-steps li span{font-size:10.5px}
  .fw-nav{flex-wrap:wrap}
  .fw-nav .btn{flex:1}
}
@media (max-width:479px){
  .fw-opts,.fw-opts.c3,.fw-opts.c4{grid-template-columns:1fr}
  .chips .chip-btn{padding:10px 13px;font-size:13px}
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-delay:0ms!important;
    transition-duration:.01ms!important;transition-delay:0ms!important}
  [data-reveal]{opacity:1;transform:none}
  [data-reveal] .kl-rule{transform:none}
  [data-reveal] .kl-bit{opacity:1;transform:none}
  .hero-home .eyebrow,.hero-home h1 .hl,.hero-home .lede,.hero-home .micro,
  .hero-home .index,.hero-home .index-foot{opacity:1;transform:none;animation:none}
  .hero-home .key-wm{opacity:.05;animation:none}
}

/* ---- Cookie consent (ported from the legacy stylesheet) --------------
   The banner is injected by /assets/js/consent.js; these styles must live
   here because the redesign pages no longer load the legacy site.css.
   Three legacy tokens are shimmed onto the new system below. */
#cf-cookie{ --off:#F9F8F5; --r-lg:14px; --shadow-lg:0 18px 50px rgba(8,19,42,.35); }


/* ---- Cookie consent ------------------------------------------------
   Anchored bottom-left rather than a full-width bar: it stays out of the
   way of the page on desktop, and a full-width bar over a hero looks like
   an apology. Decline and Accept are the SAME size and weight — a banner
   where refusing is harder than agreeing does not collect valid consent.
-------------------------------------------------------------------- */
.cf-cookie{
  position:fixed; left:var(--pad); bottom:var(--pad); z-index:9000;
  width:min(420px, calc(100vw - (var(--pad) * 2)));
  background:var(--navy); color:var(--off);
  border:1px solid rgba(196,161,89,.28); border-radius:var(--r-lg);
  box-shadow:var(--shadow-lg);
  opacity:0; transform:translateY(14px) scale(.985);
  transition:opacity .34s var(--ease), transform .34s var(--ease);
  will-change:opacity, transform;
}

.cf-cookie.is-in{opacity:1; transform:none}

.cf-cookie-in{padding:22px 24px 20px}

.cf-cookie-h{
  margin:0 0 8px; font-family:var(--serif); font-size:19px; line-height:1.25;
  color:var(--white); letter-spacing:-.01em;
}

.cf-cookie-p{
  margin:0; font-size:14.5px; line-height:1.62; color:rgba(249,248,245,.76);
}

.cf-cookie-p a{color:var(--gold-2); text-decoration:underline; text-underline-offset:3px}

.cf-cookie-p a:hover{color:var(--gold)}


.cf-cookie-btns{display:flex; gap:10px; margin-top:18px}

.cf-cookie-btn{
  flex:1 1 0; padding:12px 16px; border-radius:10px; cursor:pointer;
  font-family:var(--sans); font-size:15px; font-weight:600; letter-spacing:.01em;
  transition:background .22s var(--ease), border-color .22s var(--ease), color .22s var(--ease);
}

.cf-cookie-no{
  background:transparent; color:rgba(249,248,245,.9);
  border:1px solid rgba(255,255,255,.24);
}

.cf-cookie-no:hover{background:rgba(255,255,255,.07); border-color:rgba(255,255,255,.4)}

.cf-cookie-yes{
  background:var(--gold); color:var(--navy); border:1px solid var(--gold);
}

.cf-cookie-yes:hover{background:var(--gold-2); border-color:var(--gold-2)}

.cf-cookie-btn:focus-visible{outline:2px solid var(--gold-2); outline-offset:3px}


@media (max-width:640px){
  .cf-cookie{left:12px; right:12px; bottom:12px; width:auto}

  .cf-cookie-in{padding:18px 18px 16px}

@media (prefers-reduced-motion:reduce){
  .cf-cookie{transition:opacity .2s linear; transform:none}

  .cf-cookie.is-in{transform:none}

/* On phones the redesign has a sticky action bar along the bottom; lift the
   cookie banner clear of it so first-visit ad traffic sees both, overlapping
   neither. */
@media (max-width: 760px){
  #cf-cookie{ bottom: calc(var(--pad, 16px) + 84px); }
}
