/* ==========================================================================
   DEVIS OS — institutional design system (September 2026, v3)
   Visual language taken from the DEVIS OS Institutional Overview:
   warm ivory paper, deep ink, gold hairlines with a short red lead-in,
   serif display headings, a restrained sans for reading, ledgers over cards.
   v3: audited colour roles, one label system, three heading tiers,
   qualification notes vs fine print, line-length caps, calmer breakpoints.
   ========================================================================== */

:root{
  --paper:#F6F2EA;
  --paper-2:#EEE8DC;
  --sheet:#FBF9F4;
  --ink:#16181B;
  --ink-2:#2E3136;
  --muted:#5B5E64;          /* 5.3:1 on paper-2 */
  --faint:#62656A;          /* 4.8:1 on paper-2, 5.25:1 on paper: captions only */
  --rule:#D5CCBA;
  --rule-soft:#E3DCCD;
  --gold:#B08D4A;
  --gold-text:#7B5D26;
  --red:#AE262D;
  --night:#111214;
  --night-2:#1A1C1F;
  --bone:#EEE8DC;
  --bone-dim:#B9B2A4;
  --gold-night:#CDA75E;

  --serif:"Cormorant Garamond", "Iowan Old Style", Georgia, serif;
  --sans:"Hanken Grotesk", "Helvetica Neue", Arial, sans-serif;
  --caps:"Marcellus", "Cormorant Garamond", Georgia, serif;

  --text-sm:.95rem;
  --label:.76rem;           /* section labels and column labels */
  --label-sm:.75rem;        /* every other label: never below 12px */

  --wrap:1220px;
  --gutter:clamp(20px, 5vw, 64px);
  --section:clamp(4.5rem, 9vw, 8.5rem);
  --ease:cubic-bezier(.22, 1, .36, 1);
}

/* ---------- base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ background:var(--night); -webkit-text-size-adjust:100%; text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
body{
  margin:0; background:var(--paper); color:var(--ink-2);
  font-family:var(--sans); font-weight:400;
  font-size:clamp(1rem, .97rem + .16vw, 1.07rem); line-height:1.65;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; }
p{ margin:0 0 1em; }
h1,h2,h3,h4{ margin:0; color:var(--ink); font-weight:500; }
ul,ol{ margin:0; }
:focus-visible{ outline:2px solid var(--ink); outline-offset:3px; }
.hero :focus-visible, .cta :focus-visible, .ftr :focus-visible{ outline-color:var(--gold-night); }
.wrap{ max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gutter); }
.skip-link{ position:absolute; left:-9999px; top:0; }
.skip-link:focus{ left:var(--gutter); top:.75rem; z-index:200; background:var(--ink); color:var(--paper); padding:.6rem 1rem; }
.nowrap{ white-space:nowrap; }
::selection{ background:rgba(176,141,74,.28); }

/* ---------- type ---------- */
.display{ font-family:var(--serif); font-weight:500; letter-spacing:-.012em; line-height:1.04; color:var(--ink); text-wrap:balance; }
.t-hero{ font-size:clamp(2.6rem, 1.5rem + 3.9vw, 4.6rem); line-height:1.05; }
.t-1{ font-size:clamp(2.4rem, 1.5rem + 3.3vw, 4.4rem); }
.t-2{ font-size:clamp(2rem, 1.4rem + 2.2vw, 3.25rem); line-height:1.07; }
.t-3{ font-size:clamp(1.45rem, 1.2rem + .9vw, 1.95rem); line-height:1.18; }
.lede{ font-size:clamp(1.1rem, 1rem + .45vw, 1.34rem); line-height:1.58; color:var(--ink-2); max-width:62ch; }

/* A qualification that belongs to the content above it: readable, in the reading flow. */
.note{ font-size:var(--text-sm); line-height:1.6; color:var(--muted); max-width:68ch; margin:1.25rem 0 0; }
/* True fine print: captions, sources, one-line reassurances. */
.fine{ font-size:.86rem; line-height:1.6; color:var(--faint); max-width:70ch; }

/* ---------- labels (one system) ---------- */
.eyebrow, .col-k, .kicker, .disciplines .k, .principle .k, .siblings .k, .app .kind,
.detail-meta .kind, .conseq-row .m, .sheet-head span, .keyfacts dt{
  font-family:var(--caps); font-weight:400; text-transform:uppercase; letter-spacing:.2em; line-height:1.5;
}
.eyebrow{ font-size:var(--label); letter-spacing:.24em; color:var(--red); margin:0 0 1.5rem; display:flex; align-items:center; gap:.95rem; }
.eyebrow::before{ content:""; width:2.6rem; height:2px; flex:none; background:linear-gradient(90deg, var(--red) 0 32%, var(--gold) 32% 100%); }
.col-k{ font-size:var(--label); color:var(--red); margin:0 0 1rem; }
.kicker{ font-size:var(--label-sm); color:var(--muted); margin:0 0 .45rem; }
.disciplines .k, .principle .k, .siblings .k, .app .kind, .detail-meta .kind,
.conseq-row .m, .sheet-head span, .keyfacts dt{ font-size:var(--label-sm); color:var(--red); }
.rule{ display:block; width:10rem; height:2px; background:linear-gradient(90deg, var(--red) 0 28%, var(--gold) 28% 100%); margin:2.1rem 0; border:0; }
.status-note{ display:flex; align-items:baseline; gap:.65rem; font-size:var(--text-sm); color:var(--muted); line-height:1.6; margin:1.8rem 0 0; max-width:70ch; }
.status-note::before{ content:""; flex:none; width:6px; height:6px; border-radius:50%; background:var(--red); transform:translateY(-.12rem); }

/* ---------- heading tiers ---------- */
.fractures h3, .spine h3, .lens h3, .status h3, .app h3, .triad h3, .col-h{
  font-family:var(--serif); font-weight:500; font-size:clamp(1.45rem, 1.25rem + .6vw, 1.85rem); line-height:1.15; color:var(--ink);
}
.numbers h3, .grid3 h3, .facts h3{ font-family:var(--sans); font-weight:500; font-size:1.06rem; line-height:1.35; color:var(--ink); }

/* ---------- buttons & links ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.65rem; text-decoration:none; cursor:pointer;
  font-family:var(--sans); font-weight:500; font-size:.9rem; letter-spacing:.035em; line-height:1;
  padding:1rem 1.5rem; border:1px solid transparent;
  transition:background-color .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
}
.btn .arr{ transition:transform .35s var(--ease); }
.btn:hover .arr{ transform:translateX(3px); }
.btn-ink{ background:var(--ink); color:var(--paper); }
.btn-ink:hover{ background:#2A2D32; }
.btn-line{ border-color:var(--ink); color:var(--ink); background:transparent; }
.btn-line:hover{ background:var(--ink); color:var(--paper); }
.btn-gold{ background:var(--gold-night); color:var(--night); }
.btn-gold:hover{ background:#DBBA78; }
.btn-night{ border-color:rgba(238,232,220,.42); color:var(--bone); background:transparent; }
.btn-night:hover{ border-color:var(--bone); }
.btn-sm{ padding:.78rem 1.1rem; font-size:.84rem; }
.tlink{
  display:inline-flex; align-items:center; gap:.5rem; text-decoration:none;
  font-weight:500; font-size:.9rem; letter-spacing:.03em; color:var(--ink);
  padding-bottom:.2rem; border-bottom:1px solid var(--gold);
}
.tlink:hover{ border-bottom-color:var(--ink); }
.tlink-row{ margin:1.6rem 0 0; }

/* ---------- launch notice (home) ---------- */
.launch-note{ margin:0; padding:.5rem var(--gutter); background:var(--paper-2); border-bottom:1px solid var(--rule-soft); color:var(--red); text-align:center; font-family:var(--caps); font-size:.84rem; letter-spacing:.12em; line-height:1.5; }

/* ---------- header ---------- */
.hdr{ position:sticky; top:0; z-index:100; background:var(--paper); border-bottom:1px solid var(--rule-soft); }
.hdr > .wrap{ display:flex; align-items:center; gap:2.4rem; height:78px; }
.brand{ flex:none; }
.brand img{ height:21px; width:auto; }
.nav{ display:flex; align-items:center; gap:2rem; margin-left:auto; }
.nav > a, .nav-group > a{ position:relative; text-decoration:none; font-size:.9rem; color:var(--ink-2); padding:.35rem 0; white-space:nowrap; }
.nav > a::after, .nav-group > a::after{ content:""; position:absolute; left:0; right:0; bottom:-.05rem; height:1px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .45s var(--ease); }
.nav > a:hover::after, .nav-group:hover > a::after, .nav-group:focus-within > a::after,
.nav > a[aria-current]::after, .nav-group > a[aria-current]::after{ transform:scaleX(1); }
.nav > a[aria-current], .nav-group > a[aria-current]{ color:var(--ink); }
.caret{ display:inline-block; width:.36rem; height:.36rem; margin-left:.5rem; border-right:1px solid currentColor; border-bottom:1px solid currentColor; transform:translateY(-.2rem) rotate(45deg); }
.nav-group{ position:relative; }
.nav-group::before{ content:""; position:absolute; left:-1rem; right:-1rem; top:100%; height:1.2rem; }
.nav-drop{
  position:absolute; top:calc(100% + 1.1rem); left:-1.4rem; min-width:330px; z-index:10;
  background:var(--sheet); border:1px solid var(--rule); border-top:2px solid var(--ink);
  box-shadow:0 26px 50px -30px rgba(22,24,27,.38); padding:.4rem 0;
  opacity:0; visibility:hidden; transform:translateY(6px);
  transition:opacity .25s var(--ease), transform .25s var(--ease), visibility 0s linear .25s;
}
.nav-group:hover .nav-drop, .nav-group:focus-within .nav-drop{ opacity:1; visibility:visible; transform:none; transition:opacity .25s var(--ease), transform .25s var(--ease), visibility 0s; }
.nav-drop a{ display:block; text-decoration:none; padding:.9rem 1.4rem; border-bottom:1px solid var(--rule-soft); }
.nav-drop a:last-child{ border-bottom:0; }
.nav-drop b{ display:block; font-weight:500; font-size:.93rem; color:var(--ink); }
.nav-drop span{ display:block; font-size:.8rem; color:var(--faint); margin-top:.18rem; }
.nav-drop a:hover{ background:var(--paper); }
.nav-drop a:hover b, .nav-drop a[aria-current="page"] b{ color:var(--gold-text); }
.hdr-actions{ display:flex; align-items:center; gap:1.3rem; }
.login{ text-decoration:none; font-size:.9rem; color:var(--muted); white-space:nowrap; }
.login:hover{ color:var(--ink); }
.menu-btn{ display:none; align-items:center; background:none; border:1px solid var(--rule); padding:.6rem .95rem; font:500 .84rem var(--sans); letter-spacing:.04em; color:var(--ink); cursor:pointer; }
.mnav{ border-top:1px solid var(--rule-soft); background:var(--paper); }
.mnav[hidden]{ display:none; }
.mnav .wrap{ display:grid; padding-block:.6rem 1.6rem; }
.mnav a{ text-decoration:none; color:var(--ink); padding:.85rem 0; border-bottom:1px solid var(--rule-soft); font-size:1.02rem; }
.mnav a.sub{ padding-left:1.2rem; font-size:.96rem; color:var(--ink-2); }
.mnav a[aria-current="page"]{ color:var(--gold-text); }
.mnav .btn{ margin-top:1.2rem; justify-content:center; border-bottom:0; padding:1rem 1.2rem; }
.mnav .btn-ink{ color:var(--paper); }
@media (max-width:1100px){
  .nav, .hdr-actions .login, .hdr-actions .btn{ display:none; }
  .hdr-actions{ margin-left:auto; }
  .menu-btn{ display:inline-flex; }
}
@media (min-width:1101px){ .mnav{ display:none !important; } }

/* ---------- sections ---------- */
.sec{ padding-block:var(--section); }
.sec-compact{ padding-block:clamp(3.2rem, 6vw, 5rem); }
.sec + .sec{ border-top:1px solid var(--rule-soft); }
.sec-alt{ background:var(--paper-2); }
.sec + .sec-alt, .sec-alt + .sec{ border-top:0; }
.sec-head{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,6fr); gap:clamp(2rem, 6vw, 6rem); align-items:end; margin-bottom:clamp(2.8rem, 5.5vw, 4.5rem); }
.sec-head .lede{ margin:0; }
.sec-head--stack{ grid-template-columns:minmax(0,1fr); align-items:start; gap:1.4rem; max-width:62rem; }
.sec-head--end{ margin-bottom:0; }
@media (max-width:880px){ .sec-head{ grid-template-columns:minmax(0,1fr); align-items:start; gap:1.3rem; } }

/* ---------- home hero (night) ---------- */
.hero{ position:relative; background:var(--night); color:var(--bone); overflow:hidden; }
.hero::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:
    linear-gradient(90deg, rgba(238,232,220,.035) 1px, transparent 1px) 0 0 / calc(var(--wrap) / 6) 100%,
    radial-gradient(70% 60% at 88% 0%, rgba(205,167,94,.10), transparent 62%);
}
.hero .wrap{ position:relative; z-index:1; padding-block:clamp(5rem, 11vw, 9rem) clamp(3.2rem, 6vw, 5rem); }
.hero .eyebrow{ color:var(--gold-night); }
.hero h1{ color:var(--bone); max-width:24ch; }
.hero-sub{ font-family:var(--serif); font-size:clamp(1.4rem, 1.2rem + .9vw, 1.95rem); line-height:1.28; color:var(--bone); margin:1.8rem 0 0; max-width:42ch; }
.hero .lede{ color:var(--bone-dim); margin-top:1.4rem; max-width:60ch; }
.hero-cta{ display:flex; flex-wrap:wrap; gap:.9rem; margin-top:2.5rem; }
.pillars{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:clamp(1.6rem, 4vw, 3.6rem); margin-top:clamp(3.6rem, 7vw, 6rem); padding-top:2.2rem; border-top:1px solid rgba(238,232,220,.14); }
.pillar h2{ font-family:var(--serif); font-weight:500; font-size:clamp(1.45rem, 1.25rem + .6vw, 1.85rem); color:var(--bone); line-height:1.15; }
.pillar h2::before{ content:""; display:block; width:2.4rem; height:2px; background:var(--gold-night); margin-bottom:1.1rem; }
.pillar:nth-child(2) h2::before{ background:var(--red); }
.pillar p{ color:var(--bone-dim); font-size:var(--text-sm); line-height:1.55; margin:.7rem 0 0; max-width:38ch; }
@media (prefers-reduced-motion: no-preference){
  .hero .eyebrow, .hero h1, .hero-sub, .hero .lede, .hero-cta{ animation:osRise 1s var(--ease) both; }
  .hero h1{ animation-delay:.06s; } .hero-sub{ animation-delay:.14s; } .hero .lede{ animation-delay:.2s; } .hero-cta{ animation-delay:.28s; }
}
@keyframes osRise{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:none; } }
@media (max-width:780px){ .pillars{ grid-template-columns:minmax(0,1fr); } }

/* ---------- interior hero (paper) ---------- */
.phero .wrap{ padding-block:clamp(4.2rem, 9vw, 7.5rem) clamp(2.6rem, 5vw, 4rem); }
.phero h1{ max-width:19ch; }
.phero .lede{ margin:0; }
.phero-sub{ font-family:var(--serif); font-size:clamp(1.35rem, 1.15rem + .8vw, 1.85rem); line-height:1.3; color:var(--ink); margin:0 0 1.2rem; max-width:40ch; }
.keyfacts{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:1.4rem clamp(1.6rem, 4vw, 3rem); margin:2.4rem 0 0; max-width:64rem; }
.keyfacts > div{ border-top:1px solid var(--ink); padding-top:.9rem; }
.keyfacts dt{ margin:0 0 .35rem; }
.keyfacts dd{ margin:0; color:var(--ink); font-size:1rem; line-height:1.45; }
@media (max-width:760px){ .keyfacts{ grid-template-columns:minmax(0,1fr); gap:1.1rem; } }
.pindex{ list-style:none; padding:0; margin:clamp(2.4rem, 5vw, 3.4rem) 0 0; display:flex; flex-wrap:wrap; border-top:1px solid var(--rule); }
.pindex li{ margin:0; }
.pindex a{ display:block; text-decoration:none; font-size:.86rem; letter-spacing:.02em; color:var(--muted); padding:1rem 1.6rem 0 0; }
.pindex a:hover{ color:var(--ink); }
.pindex .n{ font-family:var(--caps); color:var(--gold-text); margin-right:.5rem; }

/* ---------- the challenge ---------- */
.fractures{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:clamp(1.4rem, 3vw, 2.6rem); }
.fractures li{ position:relative; border-top:1px solid var(--ink); padding-top:1.35rem; }
.fractures li::before{ content:""; position:absolute; top:-2px; left:0; width:2.2rem; height:3px; background:var(--red); }
.fractures h3{ margin:0 0 .6rem; }
.fractures p{ margin:0; color:var(--muted); font-size:var(--text-sm); line-height:1.55; }
@media (max-width:920px){ .fractures{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:560px){ .fractures{ grid-template-columns:minmax(0,1fr); } }

/* ---------- decision spine ---------- */
.spine{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); position:relative; }
.spine::before{ content:""; position:absolute; left:0; right:0; top:8px; height:1px; background:var(--gold); }
.spine li{ position:relative; padding:2.3rem 1.5rem 0 0; }
.spine li::before{ content:""; position:absolute; top:3px; left:0; width:11px; height:11px; border-radius:50%; background:var(--gold); box-shadow:0 0 0 5px var(--paper); }
.sec-alt .spine li::before{ box-shadow:0 0 0 5px var(--paper-2); }
.spine li:first-child::before, .spine li:last-child::before{ background:var(--red); }
.spine .n{ font-family:var(--caps); font-size:var(--label-sm); letter-spacing:.2em; color:var(--gold-text); }
.spine h3{ margin:.45rem 0 .6rem; }
.spine p{ margin:0; color:var(--muted); font-size:var(--text-sm); line-height:1.5; }
@media (max-width:920px){
  .spine{ grid-template-columns:minmax(0,1fr); }
  .spine::before{ left:5px; right:auto; top:6px; bottom:6px; width:1px; height:auto; }
  .spine li{ padding:0 0 2rem 2.4rem; }
  .spine li:last-child{ padding-bottom:0; }
  .spine li::before{ top:.4rem; }
}
.disciplines{ margin-top:clamp(2.8rem, 5vw, 3.8rem); padding-top:1.5rem; border-top:1px solid var(--rule); display:grid; grid-template-columns:minmax(0,3fr) minmax(0,9fr); gap:2rem; align-items:baseline; }
.disciplines p{ margin:0; color:var(--ink-2); max-width:68ch; }
@media (max-width:760px){ .disciplines{ grid-template-columns:minmax(0,1fr); gap:.6rem; } }

/* ---------- applications ledger ---------- */
.apps{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); border-top:1px solid var(--ink); }
.app{ display:flex; flex-direction:column; padding:2.1rem clamp(1.3rem, 2.6vw, 2.4rem) 0 0; border-right:1px solid var(--rule); }
.app + .app{ padding-left:clamp(1.3rem, 2.6vw, 2.4rem); }
.app:last-child{ border-right:0; }
.app h3{ margin:.7rem 0 1.1rem; }
.app p{ color:var(--muted); margin:0 0 1.2rem; }
.app .sides{ list-style:none; padding:0; margin:0 0 1.4rem; border-top:1px solid var(--rule-soft); }
.app .sides li{ padding:.75rem 0; border-bottom:1px solid var(--rule-soft); font-size:var(--text-sm); color:var(--ink-2); }
.app .sides b{ font-weight:500; color:var(--ink); }
.app .tlink{ margin-top:auto; align-self:flex-start; }
@media (max-width:920px){
  .apps{ grid-template-columns:minmax(0,1fr); }
  .app, .app + .app{ padding:2rem 0; border-right:0; border-bottom:1px solid var(--rule); }
}

/* ---------- the output (illustrative sheet) ---------- */
.output{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:clamp(2.4rem, 6vw, 6rem); align-items:center; }
.output-copy .lede{ margin:1.6rem 0 2rem; }
.sheet{ margin:0; background:var(--sheet); border:1px solid var(--rule); border-top:3px solid var(--ink); box-shadow:0 30px 60px -38px rgba(22,24,27,.35); padding:clamp(1.4rem, 3vw, 2.2rem); }
.sheet-head{ display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-bottom:1.1rem; margin-bottom:.4rem; border-bottom:1px solid var(--rule); }
.sheet-head img{ height:15px; width:auto; }
.sheet-table{ width:100%; border-collapse:collapse; font-size:var(--text-sm); }
.sheet-table th{ text-align:left; font-family:var(--caps); font-weight:400; font-size:var(--label-sm); letter-spacing:.16em; text-transform:uppercase; color:var(--muted); padding:.9rem 1rem .7rem 0; border-bottom:1px solid var(--ink); }
.sheet-table td{ padding:1rem 1rem 1rem 0; border-bottom:1px solid var(--rule-soft); vertical-align:top; color:var(--ink-2); line-height:1.45; }
.sheet-table td:first-child{ color:var(--ink); width:40%; }
.sheet-table td:nth-child(2){ width:27%; }
.sheet-table tr:last-child td{ border-bottom:0; }
.st{ display:inline-flex; align-items:center; gap:.45rem; white-space:nowrap; font-size:.88rem; color:var(--ink); }
.st::before{ content:""; width:.55rem; height:.55rem; border-radius:50%; background:var(--gold); flex:none; }
.st-partial::before{ background:var(--gold); }
.st-inconclusive::before{ background:transparent; box-shadow:inset 0 0 0 1.5px var(--muted); }
.st-contradicted::before{ background:var(--red); }
.sheet-cap{ margin-top:1.1rem; padding-top:.9rem; border-top:1px solid var(--rule); }
@media (max-width:1100px){ .output{ grid-template-columns:minmax(0,1fr); } }
@media (max-width:640px){
  .sheet-table thead{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .sheet-table, .sheet-table tbody, .sheet-table tr, .sheet-table td{ display:block; width:auto !important; }
  .sheet-table tr{ padding:.9rem 0; border-bottom:1px solid var(--rule-soft); }
  .sheet-table tr:last-child{ border-bottom:0; }
  .sheet-table td{ border:0; padding:.2rem 0; }
  .sheet-table td::before{ content:attr(data-label); display:block; font-family:var(--caps); font-size:var(--label-sm); letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin:.35rem 0 .15rem; }
}

/* ---------- credibility band ---------- */
.proof{ display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:clamp(2rem, 6vw, 6rem); align-items:end; }
.proof-statement{ font-family:var(--serif); font-size:clamp(1.45rem, 1.2rem + .9vw, 1.95rem); line-height:1.3; color:var(--ink); margin:0 0 1.4rem; max-width:40ch; }
.coverage{ border-top:1px solid var(--ink); padding-top:1rem; }
.coverage .col-k{ margin-bottom:.6rem; }
.coverage ul{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.3rem 1.7rem; }
.coverage li{ font-family:var(--serif); font-size:clamp(1.3rem, 1.15rem + .5vw, 1.6rem); line-height:1.3; color:var(--ink); }
.coverage-line{ font-family:var(--serif); font-size:clamp(1.3rem, 1.15rem + .5vw, 1.6rem); line-height:1.35; color:var(--ink); margin:0; max-width:32ch; }
.coverage-line a{ color:inherit; text-decoration-color:var(--gold); text-underline-offset:4px; }
@media (max-width:880px){ .proof{ grid-template-columns:minmax(0,1fr); align-items:start; } }

/* ---------- numbered ledger ---------- */
.numbers{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); column-gap:clamp(2rem, 6vw, 6.5rem); border-top:1px solid var(--ink); }
.numbers li{ display:grid; grid-template-columns:2.8rem minmax(0,1fr); gap:1rem; padding:1.45rem 0; border-bottom:1px solid var(--rule); }
.numbers .n{ font-family:var(--caps); font-size:.82rem; letter-spacing:.08em; color:var(--gold-text); padding-top:.28rem; }
.numbers h3{ margin:0 0 .3rem; }
.numbers p{ margin:0; color:var(--muted); font-size:var(--text-sm); line-height:1.55; }
.numbers--one{ grid-template-columns:minmax(0,1fr); }
@media (max-width:780px){ .numbers{ grid-template-columns:minmax(0,1fr); } }

/* ---------- comparison ledger ---------- */
.compare-wrap{ overflow-x:auto; }
.compare{ width:100%; border-collapse:collapse; }
.compare thead th{
  text-align:left; vertical-align:bottom; font-weight:400; padding:0 2rem 1.1rem 0;
  font-family:var(--caps); font-size:var(--label); letter-spacing:.2em; text-transform:uppercase; color:var(--muted);
  border-bottom:1px solid var(--ink); width:50%;
}
.compare thead th.devis{ color:var(--red); }
.compare td{ padding:1.2rem 2rem 1.2rem 0; border-bottom:1px solid var(--rule); vertical-align:top; line-height:1.5; }
.compare td:first-child{ color:var(--muted); }
.compare td.devis{ color:var(--ink); padding-left:1.6rem; position:relative; }
.compare td.devis::before{ content:""; position:absolute; left:0; top:1.72rem; width:7px; height:7px; border-radius:50%; background:var(--gold); }
@media (max-width:720px){
  .compare thead{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .compare, .compare tbody, .compare tr, .compare td{ display:block; width:auto; }
  .compare tr{ padding:1.15rem 0; border-bottom:1px solid var(--rule); }
  .compare td{ border:0; padding:0; }
  .compare td::before{ content:attr(data-label); display:block; font-family:var(--caps); font-size:var(--label-sm); letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin-bottom:.25rem; }
  .compare td.devis{ padding:.8rem 0 0; }
  .compare td.devis::before{ content:attr(data-label); position:static; width:auto; height:auto; border-radius:0; background:none; color:var(--red); }
}

/* ---------- intelligence lenses ---------- */
.lenses{ display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); border-top:1px solid var(--ink); }
.lens{ padding:1.8rem 1.3rem 0 0; border-right:1px solid var(--rule); }
.lens + .lens{ padding-left:1.3rem; }
.lens:last-child{ border-right:0; }
.lens h3::after{ content:""; display:block; width:1.9rem; height:2px; background:var(--gold); margin:.85rem 0 1rem; }
.lens p{ margin:0; color:var(--muted); font-size:var(--text-sm); line-height:1.55; }
@media (max-width:1040px){
  .lenses{ grid-template-columns:repeat(3, minmax(0,1fr)); column-gap:1.6rem; }
  .lens, .lens + .lens{ padding:1.6rem 0; border-right:0; border-bottom:1px solid var(--rule); }
}
@media (max-width:700px){ .lenses{ grid-template-columns:minmax(0,1fr); } }

/* ---------- consequence ---------- */
.chips{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.5rem; }
.chips li{ border:1px solid var(--rule); color:var(--ink-2); background:transparent; padding:.4rem .9rem; font-size:.9rem; }
.conseq{ margin-top:clamp(2.4rem, 5vw, 3.4rem); border-top:1px solid var(--ink); }
.conseq-row{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,1.2fr) minmax(0,5.5fr); gap:1.6rem; align-items:baseline; padding:1.35rem 0; border-bottom:1px solid var(--rule); }
.conseq-row .f{ color:var(--ink); }
.conseq-row .m{ white-space:nowrap; }
.conseq-row .c{ color:var(--muted); }
@media (max-width:780px){ .conseq-row{ grid-template-columns:minmax(0,1fr); gap:.3rem; } }
.principle{ margin-top:clamp(2.8rem, 5vw, 4rem); display:grid; grid-template-columns:minmax(0,3fr) minmax(0,9fr); gap:2rem; }
.principle .k{ padding-top:.4rem; }
.principle blockquote{ margin:0; }
.principle blockquote p{ font-family:var(--serif); font-size:clamp(1.25rem, 1.1rem + .5vw, 1.6rem); line-height:1.35; color:var(--ink); margin:0; max-width:52ch; text-wrap:pretty; }
.principle blockquote .note{ font-family:var(--sans); font-size:var(--text-sm); line-height:1.6; color:var(--muted); margin-top:1.1rem; max-width:68ch; }
@media (max-width:760px){ .principle{ grid-template-columns:minmax(0,1fr); gap:.6rem; } }

/* ---------- evidence status ---------- */
.status{ list-style:none; margin:0; padding:0; border-top:1px solid var(--ink); }
.status li{ display:grid; grid-template-columns:minmax(0,4fr) minmax(0,8fr); gap:2rem; align-items:baseline; padding:1.35rem 0; border-bottom:1px solid var(--rule); }
.status h3{ display:flex; align-items:center; gap:.85rem; }
.status h3::before{ content:""; flex:none; width:.62rem; height:.62rem; border-radius:50%; background:var(--gold); }
.status .s-verified h3::before{ background:var(--ink); }
.status .s-partial h3::before{ background:var(--gold); }
.status .s-inconclusive h3::before{ background:transparent; box-shadow:inset 0 0 0 1.5px var(--muted); }
.status .s-contradicted h3::before{ background:var(--red); }
.status p{ margin:0; color:var(--muted); }
@media (max-width:760px){ .status li{ grid-template-columns:minmax(0,1fr); gap:.35rem; } }

/* ---------- two-column lists ---------- */
.two{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:clamp(2rem, 6vw, 6.5rem); }
@media (max-width:780px){ .two{ grid-template-columns:minmax(0,1fr); } }
.col-h{ margin:0 0 1rem; text-wrap:balance; }
.list{ list-style:none; padding:0; margin:0; border-top:1px solid var(--ink); }
.list li{ position:relative; padding:.95rem 0 .95rem 1.5rem; border-bottom:1px solid var(--rule); color:var(--ink-2); line-height:1.5; }
.list li::before{ content:""; position:absolute; left:0; top:1.68em; width:.65rem; height:1px; background:var(--gold); }
.list--neg li::before{ background:var(--red); }
.list--plain{ border-top-color:var(--rule); }
.list--spaced{ margin-top:1.6rem; }

/* ---------- ask devis ---------- */
.asks{ list-style:none; margin:0 0 clamp(3rem, 6vw, 4.5rem); padding:0; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); border-top:1px solid var(--ink); column-gap:2rem; }
.asks li{ padding:1.4rem 0; border-bottom:1px solid var(--rule); font-family:var(--serif); font-size:clamp(1.25rem, 1.12rem + .45vw, 1.5rem); line-height:1.25; color:var(--ink); display:grid; grid-template-columns:2.2rem minmax(0,1fr); }
.asks .n{ font-family:var(--caps); font-size:var(--label); color:var(--gold-text); padding-top:.3rem; }
@media (max-width:920px){ .asks{ grid-template-columns:minmax(0,1fr); } }
.aside-line{ margin-top:2.6rem; font-family:var(--serif); font-size:clamp(1.25rem, 1.1rem + .5vw, 1.55rem); line-height:1.35; color:var(--ink); max-width:48ch; }

/* ---------- application detail ---------- */
.detail{ display:grid; grid-template-columns:minmax(0,4fr) minmax(0,8fr); gap:clamp(2rem, 6vw, 6.5rem); }
.detail-meta h2{ margin:.8rem 0 1.2rem; }
.detail-meta .delivered{ color:var(--muted); border-top:1px solid var(--rule); padding-top:1rem; font-size:var(--text-sm); line-height:1.6; margin:0; max-width:34ch; }
.detail-body > p:not(.col-k):not(.kicker):not(.note){ color:var(--ink-2); }
.detail-body .col-k{ margin-top:2.2rem; }
.detail-body .two{ margin-top:2rem; gap:clamp(1.8rem, 4vw, 3.5rem); }
.side{ border-top:2px solid var(--ink); padding-top:1.3rem; }
.side > p:not(.kicker){ color:var(--muted); margin:0; }
@media (max-width:880px){ .detail{ grid-template-columns:minmax(0,1fr); gap:1.4rem; } }

/* ---------- investment screening ---------- */
.juris{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:1.4rem; }
.jur{ background:var(--sheet); border:1px solid var(--rule); border-top:2px solid var(--ink); padding:clamp(1.6rem, 3.2vw, 2.5rem); }
.jur h3{ font-family:var(--caps); font-weight:400; font-size:1.02rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink); }
.jur h3::after{ content:""; display:block; width:2.3rem; height:2px; background:var(--gold); margin:.9rem 0 1.1rem; }
.jur p{ margin:0; color:var(--ink-2); }
.sources{ margin:1.4rem 0 0; }
@media (max-width:780px){ .juris{ grid-template-columns:minmax(0,1fr); } }
.chain{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:.3rem; }
.chain li:nth-child(1){ --step:#16181B; }
.chain li:nth-child(2){ --step:#2C2E32; }
.chain li:nth-child(3){ --step:#47302C; }
.chain li:nth-child(4){ --step:#7C2D2A; }
.chain li:nth-child(5){ --step:#A8272D; }
.chain h3{
  font-family:var(--serif); font-weight:500; font-size:1.3rem; line-height:1.1; color:var(--bone); background:var(--step);
  padding:1rem 1.7rem 1rem 1.9rem; min-height:4.2rem; display:flex; align-items:center;
  clip-path:polygon(0 0, calc(100% - 16px) 0, 100% 50%, calc(100% - 16px) 100%, 0 100%, 16px 50%);
}
.chain li:first-child h3{ padding-left:1.2rem; clip-path:polygon(0 0, calc(100% - 16px) 0, 100% 50%, calc(100% - 16px) 100%, 0 100%); }
.chain .q{ display:block; font-family:var(--serif); font-size:1.18rem; line-height:1.3; color:var(--ink); margin:1.2rem .6rem .5rem .2rem; }
.chain p{ color:var(--muted); font-size:var(--text-sm); line-height:1.5; margin:0 .6rem 0 .2rem; }
@media (max-width:1100px){
  .chain{ grid-template-columns:minmax(0,1fr); gap:1.8rem; }
  .chain li:nth-child(n) h3{ background:none; color:var(--ink); clip-path:none; min-height:0; padding:0 0 0 1rem; border-left:3px solid var(--step); font-size:1.45rem; }
  .chain .q{ margin:.55rem 0 .35rem 1rem; }
  .chain p{ margin:0 0 0 1rem; max-width:62ch; }
}

/* ---------- source grid ---------- */
.grid3{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); column-gap:clamp(1.6rem, 4vw, 3.5rem); border-top:1px solid var(--ink); }
.grid3 > div{ padding:1.5rem 0 1.6rem; border-bottom:1px solid var(--rule); }
.grid3 h3{ margin:0 0 .45rem; }
.grid3 p{ margin:0; color:var(--muted); font-size:var(--text-sm); line-height:1.55; }
@media (max-width:880px){ .grid3{ grid-template-columns:minmax(0,1fr); } }

/* ---------- audience strip ---------- */
.audience{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); border-top:1px solid var(--ink); }
.audience li{ padding:1.3rem 1rem 0 0; font-family:var(--serif); font-size:clamp(1.15rem, 1.05rem + .35vw, 1.35rem); line-height:1.2; color:var(--ink); border-right:1px solid var(--rule); }
.audience li + li{ padding-left:1rem; }
.audience li:last-child{ border-right:0; }
@media (max-width:980px){
  .audience{ grid-template-columns:repeat(3, minmax(0,1fr)); }
  .audience li, .audience li + li{ padding:1.1rem .8rem 1.1rem 0; border-right:0; border-bottom:1px solid var(--rule); }
  .audience li:last-child:nth-child(3n+1){ grid-column:1 / -1; }
}
@media (max-width:560px){
  .audience{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .audience li:last-child:nth-child(3n+1){ grid-column:auto; }
  .audience li:last-child:nth-child(odd){ grid-column:1 / -1; }
}

/* ---------- sibling applications ---------- */
.siblings{ display:flex; flex-wrap:wrap; align-items:baseline; gap:1rem 2rem; margin-top:clamp(2.4rem, 5vw, 3.4rem); padding-top:1.4rem; border-top:1px solid var(--rule); }

/* ---------- FAQ ---------- */
.qa{ border-top:1px solid var(--ink); max-width:64rem; }
.qa details{ border-bottom:1px solid var(--rule); }
.qa summary{ list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:baseline; gap:1.6rem; padding:1.4rem 0; font-family:var(--serif); font-size:clamp(1.3rem, 1.15rem + .55vw, 1.65rem); line-height:1.25; color:var(--ink); }
.qa summary::-webkit-details-marker{ display:none; }
.qa summary::after{ content:"+"; flex:none; font-family:var(--sans); font-weight:300; font-size:1.5rem; line-height:1; color:var(--gold-text); transition:transform .4s var(--ease); }
.qa details[open] summary::after{ transform:rotate(45deg); }
.qa summary:hover{ color:var(--gold-text); }
.qa details p{ color:var(--muted); max-width:66ch; margin:0 0 1.6rem; }

/* ---------- triad (about) ---------- */
.triad{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); border-top:1px solid var(--ink); }
.triad > div{ padding:2rem clamp(1.3rem, 2.8vw, 2.4rem) 0 0; border-right:1px solid var(--rule); }
.triad > div + div{ padding-left:clamp(1.3rem, 2.8vw, 2.4rem); }
.triad > div:last-child{ border-right:0; }
.triad h3::after{ content:""; display:block; width:2.2rem; height:2px; background:var(--gold); margin:1rem 0 1.1rem; }
.triad > div:nth-child(2) h3::after{ background:var(--red); }
.triad p{ color:var(--muted); margin:0; }
@media (max-width:820px){
  .triad{ grid-template-columns:minmax(0,1fr); }
  .triad > div, .triad > div + div{ padding:1.8rem 0; border-right:0; border-bottom:1px solid var(--rule); }
}
.facts{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:clamp(1.4rem, 3vw, 2.6rem); margin-top:clamp(2.6rem, 5vw, 3.6rem); }
.facts > div{ border-top:1px solid var(--ink); padding-top:1.1rem; }
.facts h3{ margin:0 0 .35rem; }
.facts p{ margin:0; color:var(--muted); font-size:var(--text-sm); }
.facts .tlink{ margin-top:.2rem; }
@media (max-width:760px){ .facts{ grid-template-columns:minmax(0,1fr); } }

/* ---------- founder (about) ---------- */
.founder{ display:grid; grid-template-columns:minmax(0,4fr) minmax(0,8fr); gap:clamp(2rem, 6vw, 6rem); align-items:start; }
.founder figure{ margin:0; }
.founder img{ width:100%; max-width:360px; border-top:2px solid var(--ink); }
.founder-body h2{ margin:0 0 1.4rem; }
.founder-body .lede{ margin:0 0 1.1rem; }
.founder-body > p{ max-width:62ch; }
.founder-body .coverage{ margin-top:2rem; }
@media (max-width:880px){
  .founder{ grid-template-columns:minmax(0,1fr); }
  .founder img{ max-width:260px; }
}

/* ---------- call to action band ---------- */
.cta{ background:var(--night); color:var(--bone); }
.cta .wrap{ padding-block:clamp(4.2rem, 8.5vw, 7rem); display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:clamp(2rem, 6vw, 6rem); align-items:start; }
.cta .eyebrow{ color:var(--gold-night); }
.cta h2{ color:var(--bone); }
.cta p{ color:var(--bone-dim); margin:0 0 1.8rem; max-width:52ch; }
.cta .note{ color:#9A9488; margin:1.2rem 0 0; }
@media (max-width:880px){ .cta .wrap{ grid-template-columns:minmax(0,1fr); } }

/* ---------- background video (home hero and closing bands) ----------
   Stills are darkened and overlaid so every line of text keeps at least 4.5:1
   against the brightest frames (measured on the posters at 99th percentile). */
.has-media{ position:relative; overflow:hidden; isolation:isolate; }
.has-media > .wrap{ position:relative; z-index:1; }
.media{ position:absolute; inset:0; z-index:-1; background:var(--night); }
.media video{ display:block; width:100%; height:100%; object-fit:cover; filter:grayscale(.55) contrast(1.06) brightness(.55); }
.media::after{ content:""; position:absolute; inset:0; background:rgba(17,18,20,.7); }
.has-media .note{ color:var(--bone-dim); }
.media-toggle{
  position:absolute; z-index:2; bottom:1rem; right:max(var(--gutter), calc((100% - var(--wrap)) / 2 + var(--gutter)));
  background:rgba(17,18,20,.55); color:var(--bone-dim); border:1px solid rgba(238,232,220,.28);
  font:500 .75rem/1 var(--sans); letter-spacing:.06em; padding:.55rem .8rem; cursor:pointer;
}
.media-toggle:hover{ color:var(--bone); border-color:rgba(238,232,220,.55); }

/* ---------- booking ---------- */
.call-embed{ position:relative; border:1px solid var(--rule); border-top:2px solid var(--ink); background:var(--sheet); min-height:720px; }
.cal-loading{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; margin:0; color:var(--faint); font-size:.92rem; letter-spacing:.02em; pointer-events:none; }
.call-embed.is-loaded .cal-loading{ display:none; }
.cal-inline{ position:relative; z-index:1; min-width:320px; height:760px; }
.call-alt{ margin-top:1.2rem; }
.call-alt a{ color:var(--gold-text); }

/* ---------- legal documents ---------- */
.doc{ max-width:48rem; }
.doc .eyebrow{ margin-bottom:1.2rem; }
.doc h1{ font-family:var(--serif); font-weight:500; font-size:clamp(2.3rem, 1.6rem + 2.6vw, 3.6rem); line-height:1.05; color:var(--ink); margin:0 0 1rem; }
.doc-meta{ color:var(--faint); font-size:.9rem; margin:0 0 2.6rem; padding-bottom:1.6rem; border-bottom:1px solid var(--rule); }
.doc h2{ font-family:var(--serif); font-weight:500; font-size:clamp(1.45rem, 1.3rem + .5vw, 1.75rem); line-height:1.2; color:var(--ink); margin:2.6rem 0 .8rem; }
.doc p, .doc li{ color:var(--ink-2); }
.doc ul{ list-style:none; padding:0; margin:0 0 1.2rem; }
.doc li{ position:relative; padding-left:1.4rem; margin-bottom:.45rem; }
.doc li::before{ content:""; position:absolute; left:0; top:.85em; width:.65rem; height:1px; background:var(--gold); }
.doc a{ color:var(--gold-text); }
.doc strong{ font-weight:500; color:var(--ink); }

/* ---------- client login ---------- */
.auth{ padding-block:clamp(3.8rem, 9vw, 7.5rem); }
.auth-shell{ max-width:440px; margin-inline:auto; padding-inline:var(--gutter); box-sizing:content-box; }
.auth-card{ background:var(--sheet); border:1px solid var(--rule); border-top:2px solid var(--ink); padding:clamp(1.8rem, 5vw, 2.7rem); }
.auth-brand{ text-align:center; margin-bottom:2rem; }
.auth-wordmark{ height:24px; width:auto; margin:0 auto; }
.auth-title{ font-family:var(--serif); font-weight:500; font-size:1.7rem; line-height:1.15; color:var(--ink); margin:1.3rem 0 0; }
.auth-rule{ display:block; width:5rem; height:2px; margin:1rem auto 0; background:linear-gradient(90deg, var(--red) 0 30%, var(--gold) 30% 100%); }
.auth-form{ display:grid; gap:1.05rem; }
.auth-group{ display:grid; gap:.4rem; }
.auth-label{ font-size:.88rem; font-weight:500; color:var(--ink-2); }
.auth-field{ position:relative; display:flex; align-items:center; border:1px solid var(--rule); background:var(--paper); transition:border-color .25s var(--ease); }
.auth-field:focus-within{ border-color:var(--ink); }
.auth-ico{ display:flex; padding:0 .15rem 0 .95rem; color:var(--muted); }
.auth-field input{ flex:1; min-width:0; border:0; background:transparent; padding:.95rem .9rem; font:inherit; color:var(--ink); outline:none; }
.auth-eye{ display:flex; border:0; background:transparent; padding:0 .95rem; color:var(--muted); cursor:pointer; }
.auth-eye.on{ color:var(--ink); }
.auth-alert{ font-size:.9rem; padding:.75rem .95rem; border:1px solid var(--rule); }
.auth-alert.err{ border-color:var(--red); color:var(--red); background:#FAF0EE; }
.auth-alert.ok{ border-color:#4C7453; color:#34583A; background:#EFF5EF; }
.auth-submit{ margin-top:.3rem; background:var(--ink); color:var(--paper); border:0; padding:1.02rem; font:500 .94rem var(--sans); letter-spacing:.04em; cursor:pointer; transition:background-color .3s var(--ease); }
.auth-submit:hover{ background:#2A2D32; }
.auth-submit:disabled{ opacity:.6; cursor:progress; }
.auth-forgot{ display:block; text-align:center; color:var(--ink-2); font-size:.88rem; margin-top:.2rem; }
.auth-help{ text-align:center; color:var(--muted); font-size:.88rem; margin:0; }
.auth-help a{ color:var(--ink); }
.auth-secure{ margin:1.7rem 0 0; text-align:center; font-size:.84rem; color:var(--faint); }
.auth-secure .dot{ display:inline-block; width:.45rem; height:.45rem; border-radius:50%; background:var(--gold); margin-right:.4rem; vertical-align:middle; }
.auth-secure b{ font-weight:500; color:var(--ink-2); }
.auth-foot{ text-align:center; color:var(--muted); font-size:.92rem; margin-top:1.6rem; }
.auth-foot a{ color:var(--ink); }

/* ---------- footer ---------- */
.ftr{ background:var(--night); color:var(--bone-dim); border-top:1px solid #24262A; }
.ftr .wrap{ padding-block:clamp(3.6rem, 6vw, 5rem) 2.2rem; }
.ftr-top{ display:grid; grid-template-columns:minmax(0,4.5fr) repeat(3, minmax(0,2.5fr)); gap:2rem; }
.ftr-brand img{ height:21px; width:auto; }
.ftr-brand p{ font-size:.88rem; line-height:1.55; color:var(--bone-dim); margin:1.1rem 0 0; max-width:32ch; }
.ftr h2{ font-family:var(--caps); font-weight:400; font-size:var(--label-sm); letter-spacing:.22em; text-transform:uppercase; color:var(--bone); margin:0 0 1rem; }
.ftr-top a{ display:block; text-decoration:none; color:var(--bone-dim); font-size:.9rem; padding:.28rem 0; }
.ftr-top a:hover{ color:var(--bone); }
.ftr-base{ margin-top:3.2rem; padding-top:1.7rem; border-top:1px solid rgba(238,232,220,.12); display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:2.4rem; font-size:.84rem; line-height:1.65; color:#9A9488; }
.ftr-base p{ margin:0; max-width:72ch; }
.ftr-base a{ color:var(--bone-dim); text-decoration:none; }
.ftr-base a:hover{ color:var(--bone); }
.ftr-base .corp{ text-align:right; }
@media (max-width:900px){
  .ftr-top{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .ftr-brand{ grid-column:1 / -1; margin-bottom:.6rem; }
  .ftr-base{ grid-template-columns:minmax(0,1fr); }
  .ftr-base .corp{ text-align:left; }
}

/* ---------- print ---------- */
@media print{
  .hdr, .cta, .ftr, .hero-cta, .menu-btn, .media, .media-toggle{ display:none !important; }
  .hero{ background:none; color:#000; }
  .hero h1, .hero-sub, .hero .lede{ color:#000; }
  html, body{ background:#fff; }
}
