/* ============ HEADER (utility strip + main bar, sticky) ============ */
/* G1 utility strip: 31px tall = 9px pad + 13px line-height (mono 10/1.3) */
.utility{background:var(--footer-base);color:var(--meta);display:flex;justify-content:space-between;align-items:center;gap:24px;padding:9px var(--gutter);font-family:var(--mono);font-size:10px;line-height:1.3;letter-spacing:.02em;}
.utility a{color:var(--hero-sub);}
.site-header{position:sticky;inset-block-start:0;z-index:50;background:var(--white);border-block-end:1px solid var(--rule);transition:box-shadow var(--t-fast) var(--ease);}
.site-header.is-stuck{box-shadow:0 2px 12px rgb(16 64 112/.08);}
.header-bar{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:18px var(--gutter);}
.brand{display:flex;align-items:center;gap:16px;}
.brand__mark{font-family:var(--serif);font-weight:600;font-size:21px;letter-spacing:.005em;color:var(--navy);line-height:1.05;}
.brand__rule{inline-size:34px;block-size:2px;background:var(--gold);margin-block-start:4px;}
.brand__div{inline-size:1px;block-size:30px;background:var(--rule);}
.brand__desc{font-family:var(--mono);font-size:8.5px;letter-spacing:.025em;line-height:1.55;color:var(--ink);text-transform:uppercase;}
.nav-desktop{display:flex;align-items:center;}
.nav-desktop .nav-list{display:flex;gap:34px;align-items:center;list-style:none;margin:0;padding:0;}
.nav-desktop li{position:relative;list-style:none;}
.nav-desktop a{font-weight:500;font-size:14px;letter-spacing:.005em;color:var(--charcoal);transition:color var(--t-fast);}
.nav-desktop a:hover{color:var(--gold-700);}
/* "More ▾" — a structural parent, not a destination. Figma renders it in --ink
   rather than --charcoal to read as secondary against the five real links. */
.nav-desktop .menu-item-has-children>a{color:var(--ink);cursor:pointer;}
/* Invisible bridge across the 18px gap between the trigger and the panel.
   Without it the pointer leaves :hover mid-travel and the menu snaps shut
   before it can be reached. */
.nav-desktop .menu-item-has-children::after{
  content:"";position:absolute;inset-inline:-16px;inset-block-start:100%;
  block-size:20px;
}
.nav-desktop .sub-menu{
  position:absolute;inset-inline-start:50%;inset-block-start:calc(100% + 18px);
  transform:translateX(-50%);min-inline-size:230px;
  background:var(--white);border:1px solid var(--rule);border-radius:var(--radius);
  box-shadow:var(--shadow-card);padding-block:8px;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity var(--t-fast) var(--ease),visibility var(--t-fast);
  z-index:60;
}
.nav-desktop .sub-menu a{display:block;padding:9px 20px;font-weight:400;white-space:nowrap;}
.nav-desktop .sub-menu a:hover{background:var(--paper);color:var(--gold-700);}
.nav-desktop .menu-item-has-children:hover>.sub-menu,
.nav-desktop .menu-item-has-children:focus-within>.sub-menu,
.nav-desktop .menu-item-has-children.is-open>.sub-menu{
  opacity:1;visibility:visible;pointer-events:auto;
}
/* Touch devices have no hover: the trigger toggles .is-open via nav.js */
.nav-desktop .menu-item-has-children>a::after{content:"";}
.btn-cta{background:var(--navy);color:var(--gold);font-weight:500;font-size:14px;letter-spacing:.01em;padding:13px 24px;border-radius:var(--radius);display:inline-block;transition:background var(--t-fast) var(--ease);}
.btn-cta:hover{background:var(--navy-700);}
.hamburger{display:none;flex-direction:column;gap:5px;padding:8px;}
.hamburger span{display:block;inline-size:24px;block-size:2px;background:var(--gold);}
.utility__short{display:none;}
/* ---- M01/M02 mobile chrome: navy header bar, gold hamburger, no desktop CTA ---- */
@media(max-width:900px){
  .nav-desktop{display:none;}
  .hamburger{display:flex;}
  /* M·Utility: 25px tall, mono 8.5, address only */
  .utility{font-size:8.5px;padding:7px 20px;justify-content:flex-start;}
  .utility__full,.utility a{display:none;}
  .utility__short{display:inline;}
  /* M·Header: 54px navy bar, wordmark 18px white, no descriptor, no CTA */
  .site-header{background:var(--navy);border-block-end:0;}
  .header-bar{padding:18px 20px;}
  .brand__mark{font-size:18px;color:var(--white);}
  .brand__rule,.brand__div,.brand__desc{display:none;}
  .header-bar .btn-cta{display:none;}
  .hamburger span{background:var(--gold);}
  /* GDSP labels collapse to the tier code only (M01) */
  .gdsp-strip--labeled em{font-size:9px;padding-block-start:9px;}
  .gdsp-strip--labeled em small{display:none;}
  .gdsp-caption{font-size:10px;padding-block-start:32px;}
  .gdsp-caption__full{display:none;}
  .gdsp-caption__short{display:inline;}
}

/* mobile drawer */
.drawer{position:fixed;inset:0;background:var(--navy);color:#fff;padding:24px 20px;z-index:100;transform:translateX(100%);transition:transform var(--t-med) var(--ease);overflow-y:auto;}
[dir="rtl"] .drawer{transform:translateX(-100%);}
.drawer.is-open{transform:none;}
.drawer__top{display:flex;justify-content:space-between;align-items:center;margin-block-end:16px;}
.drawer__brand{font-family:var(--serif);font-weight:600;font-size:19px;}
.drawer__close{color:var(--gold);font-size:22px;line-height:1;padding:8px;}
.drawer nav a{display:block;font-family:var(--serif);font-size:19px;color:#fff;padding-block:14px;border-block-end:1px solid var(--navy-700);}
.drawer__meta{margin-block-start:20px;font-family:var(--mono);font-size:12px;color:var(--gold);}

/* ============ FOOTER ============ */
.site-footer{background:var(--footer-bedrock);color:#B9C6D4;border-block-start:1px solid var(--footer-hair);}
.footer-main{padding:88px var(--gutter) 0;}
/* G2 · Footer column grid, measured at 1440: brand 280 at x=120, then a 55px
   step to the link columns which are 154 / 152 / 124 / 219 with 72px gutters.
   280 + 55 + 154+72+152+72+124+72+219 = 1200. Letting the columns size to their
   content instead drifted every link 3–5px off the design. */
.footer-top{display:flex;justify-content:flex-start;gap:0;flex-wrap:wrap;}
.f-brand{inline-size:280px;flex:none;}
.f-brand__mark{font-family:var(--serif);font-weight:600;font-size:22px;color:#fff;letter-spacing:.005em;}
.f-brand__rule{inline-size:28px;block-size:2px;background:var(--gold);margin-block:12px;}
.f-brand__tag{font-size:13px;line-height:1.75;color:#6E8096;white-space:pre-line;}
.f-brand__addr{font-family:var(--mono);font-size:10px;letter-spacing:.02em;color:#6E8096;margin-block-start:14px;}
.f-cols{display:flex;gap:72px;flex-wrap:wrap;margin-inline-start:55px;}
.f-col{flex:none;}
.f-col:nth-child(1){inline-size:154px;}
.f-col:nth-child(2){inline-size:152px;}
.f-col:nth-child(3){inline-size:124px;}
.f-col:nth-child(4){inline-size:219px;}
@media(max-width:1200px){
  .f-cols{margin-inline-start:0;gap:48px;}
  .f-col,.f-col:nth-child(n){inline-size:auto;}
  .footer-top{gap:48px;justify-content:space-between;}
}
.f-col h4{font-family:var(--mono);font-weight:500;font-size:10px;line-height:1.5;letter-spacing:.03em;color:#6E8096;margin-block-end:12px;}
/* 22/14 = 1.5714; with padding-block:5px that makes the 32px link pitch in G2 */
.f-col a,.f-col span{display:block;font-size:14px;line-height:1.5714;padding-block:5px;color:#B9C6D4;transition:color var(--t-fast);}
.f-col a:hover{color:var(--gold-light);}
.f-col--mono a,.f-col--mono span{font-family:var(--mono);font-size:13px;}
.footer-legal{margin-block-start:56px;padding-block-start:28px;border-block-start:1px solid var(--footer-hair);font-size:11.5px;line-height:1.8;color:#5E7188;max-inline-size:1200px;}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;padding-block:24px 40px;font-family:var(--mono);font-size:11px;letter-spacing:.005em;color:#6E8096;flex-wrap:wrap;}
.footer-bottom a{color:#6E8096;}
.footer-bottom a:hover{color:var(--gold-light);}
.gdsp-edge{display:flex;block-size:3px;}
.gdsp-edge i{flex:1;}
.gdsp-edge i:nth-child(1){background:var(--d1);}.gdsp-edge i:nth-child(2){background:var(--d2);}
.gdsp-edge i:nth-child(3){background:var(--d3);}.gdsp-edge i:nth-child(4){background:var(--d4);}
.gdsp-edge i:nth-child(5){background:var(--d5);}.gdsp-edge i:nth-child(6){background:var(--d6);}

/* ============ INNER HERO (breadcrumb, eyebrow, H1, intro, meta-rail, ghost folio) ============ */
.hero-inner{position:relative;background:var(--white);border-block-end:1px solid var(--rule);padding:56px var(--gutter) 0;overflow:hidden;}
.crumb{font-family:var(--mono);font-size:12px;letter-spacing:.01em;color:var(--ink);margin-block-end:18px;}
.hero-inner .eyebrow{margin-block-end:14px;}
.hero-inner .h-hero{max-inline-size:880px;margin-block-end:18px;}
.folio{position:absolute;inset-inline-end:110px;inset-block-start:34px;font-family:var(--mono);font-weight:500;font-size:150px;line-height:1;color:var(--folio);user-select:none;pointer-events:none;}
.meta-rail{margin-block-start:22px;padding-block:14px 22px;border-block-start:1px solid var(--rule);display:flex;justify-content:space-between;gap:24px;font-family:var(--mono);font-size:10.5px;letter-spacing:.02em;color:#9AA5B1;flex-wrap:wrap;}
.meta-rail b{font-weight:500;color:var(--gold-700);}
@media(max-width:900px){.folio{font-size:90px;inset-inline-end:20px;}}

/* ============ GDSP STRIP ============ */
.gdsp-strip{display:flex;gap:2px;}
.gdsp-strip i{flex:1;block-size:6px;}
.gdsp-strip i.d1{background:var(--d1);}.gdsp-strip i.d2{background:var(--d2);}
.gdsp-strip i.d3{background:var(--d3);}.gdsp-strip i.d4{background:var(--d4);}
.gdsp-strip i.d5{background:var(--d5);}.gdsp-strip i.d6{background:var(--d6);}
/* Hero variant — G4 · GDSP Scale Strip: 6 segments of 197.5px with 3px gaps
   across 1200px, 6px bar, 10px gap, label start-aligned beneath its own bar. */
.gdsp-caption{
  font-family:var(--mono);font-size:12px;letter-spacing:0;text-transform:uppercase;
  color:var(--meta);padding-block-start:64px;
}
.gdsp-strip--labeled{gap:3px;margin-block-start:14px;}
.gdsp-strip--labeled span{flex:1;display:flex;flex-direction:column;}
.gdsp-strip--labeled i{display:block;block-size:6px;inline-size:100%;}
.gdsp-strip--labeled em{
  font-family:var(--mono);font-style:normal;font-size:11px;letter-spacing:.02em;
  color:var(--meta);padding-block-start:10px;
}
.gdsp-strip--labeled em b{font-weight:400;}
.gdsp-strip--labeled em small{font-size:inherit;}
.gdsp-caption__short{display:none;}

/* ============ DOSSIER CARD ============ */
.dossier{background:var(--white);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-card);display:flex;flex-direction:column;}
.dossier__spine{background:var(--navy);color:var(--gold);display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;font-family:var(--mono);font-size:11px;letter-spacing:.02em;}
.dossier__spine .meta{color:var(--meta);font-weight:400;}
.dossier__body{padding:22px 20px;flex:1;}
.dossier__body .h-card{margin-block-end:11px;}
.dossier__body p{font-size:13.5px;line-height:1.65;}
.dossier__rail{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 20px 15px;border-block-start:1px solid var(--rule);}
.dossier__rail .micro{color:var(--ink);}
.dossier__rail a{font-weight:500;font-size:13px;color:var(--gold-700);}
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.card-grid--2{grid-template-columns:repeat(2,1fr);}
@media(max-width:900px){.card-grid,.card-grid--2{grid-template-columns:1fr;}}

/* ============ SEALS / CHIPS ============ */
.seal{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--d1);background:var(--d1-bg);color:var(--d1);font-family:var(--mono);font-weight:500;font-size:10.5px;letter-spacing:.01em;padding:7px 12px;}
.seal--bad{border-color:var(--d6);background:var(--d6-bg);color:var(--d6);}
.chip-tier{display:inline-block;padding:2px 7px;font-family:var(--mono);font-weight:500;font-size:11px;color:#fff;}

/* ============ CTA BAND ============ */
/* C9 · CTA Strip — 328px tall: 88px padding, 36px serif head, 203x51 gold-outline btn */
.cta-band{background:var(--navy);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:40px;padding:88px var(--gutter);flex-wrap:wrap;}
.cta-band h2{font-family:var(--serif);font-weight:600;font-size:36px;line-height:1.2;color:#fff;max-inline-size:640px;}
.cta-band p{color:var(--hero-sub);font-size:16px;line-height:1.6;margin-block-start:14px;max-inline-size:560px;}
.cta-band .btn-ghost{font-size:15px;padding:18px 32px;}
.btn-ghost{border:1px solid var(--gold);color:var(--gold);font-weight:500;font-size:14px;padding:14px 26px;border-radius:var(--radius);transition:all var(--t-fast);}
.btn-ghost:hover{background:var(--gold);color:var(--navy);}

/* ============ EDITORIAL SECTION ============ */
.editorial__label{font-family:var(--mono);font-weight:500;font-size:11px;letter-spacing:.04em;color:var(--gold-700);margin-block-end:14px;display:block;}
.editorial__body>p{margin-block-end:20px;max-inline-size:680px;font-size:14.5px;line-height:1.7;}
.keyfig{margin-block-start:18px;}
.keyfig .num{font-size:26px;display:block;margin-block:8px 6px;}
.pull{display:flex;gap:20px;margin-block:6px 20px;}
.pull::before{content:"";inline-size:2px;background:var(--gold);flex:none;}
.pull p{font-family:var(--serif);font-weight:500;font-size:20px;line-height:1.52;color:var(--charcoal);max-inline-size:640px;}

/* motion entrance */
.mo{opacity:0;transform:translateY(12px);transition:opacity var(--t-med) var(--ease),transform var(--t-med) var(--ease);}
.mo.in{opacity:1;transform:none;}
html[data-motion="off"] .mo{opacity:1;transform:none;transition:none;}

/* SURVIVAL LINE */
.survival-line{position:absolute;inset-block-start:0;inset-inline-start:0;z-index:1;pointer-events:none;}
@media(max-width:1199px){.survival-line{display:none;}}

/* SEAL STAMP (System pipeline, report seals) */
html[data-motion="full"] .stamp{opacity:0;transform:scale(1.08);transition:opacity 200ms var(--ease),transform 200ms var(--ease);}
html[data-motion="full"] .stamp.in{opacity:1;transform:scale(1);}

/* DIVERGENCE CHIP SLIDES (Who Benefits) */
html[data-motion="full"] .chip-up{opacity:0;transform:translateY(6px);transition:all 300ms var(--ease) 250ms;}
html[data-motion="full"] .chip-down{opacity:0;transform:translateY(-6px);transition:all 300ms var(--ease) 250ms;}
html[data-motion="full"] .chip-up.in{opacity:1;transform:none;}
html[data-motion="full"] .chip-down.in{opacity:1;transform:none;}

/* FOOTER GDSP EDGE DRAW */
html[data-motion="full"] .gdsp-edge{transform-origin:0 50%;transform:scaleX(0);transition:transform 600ms var(--ease);}
html[data-motion="full"] .gdsp-edge.in{transform:scaleX(1);}
[dir="rtl"] .gdsp-edge{transform-origin:100% 50%;}
