/* ============================================================
   The Grey Cardinal Group — Elevated Design System (gcg.css)
   Single source of truth for every page. Brass-on-charcoal, Cormorant + Inter.
   ============================================================ */
:root{
  --void:#141414; --ink:#1c1c1c; --ink-soft:#2a2a2a; --ivory:#f5f1ea; --paper:#fbf8f3;
  --brass:#b08a4a; --brass-bright:#c79a52; --brass-deep:#8e6d36; --oxblood:#6e1f2a;
  --rule:#d8cfbf; --rule-dk:#33312c; --muted:#6b6354; --muted-dk:#9a917e;
  --wrap:1180px; --gut:clamp(1.25rem,5vw,3rem); color-scheme:light;
  --section:clamp(4.5rem,9vw,8rem);
}
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{ margin:0; background:var(--paper); color:var(--ink); font-family:"Inter",-apple-system,BlinkMacSystemFont,sans-serif; font-weight:400; line-height:1.6; font-size:clamp(1.0625rem,1.4vw,1.1875rem); -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; overflow-x:hidden; }
h1,h2,h3,h4{ font-family:"Cormorant Garamond",Georgia,serif; font-weight:500; color:var(--ink); letter-spacing:-0.015em; margin:0; text-wrap:balance; }
h1{ font-size:clamp(2.5rem,5vw,4rem); line-height:1.12; font-weight:400; }
h2{ font-size:clamp(1.9rem,4vw,3.05rem); line-height:1.16; font-weight:400; }
h3{ font-size:clamp(1.3rem,2.1vw,1.8rem); line-height:1.2; }
h4{ font-size:1.05rem; font-family:"Inter",sans-serif; font-weight:600; letter-spacing:0.04em; color:var(--ink); }
p{ margin:0 0 1em; }
a{ color:inherit; text-decoration:none; }
.wrap{ max-width:var(--wrap); margin:0 auto; padding:0 var(--gut); }
.narrow{ max-width:880px; margin:0 auto; }
.measure{ max-width:70ch; }
/* non-hero page head (legal / access / utility) — clears the fixed header */
.page-head{ padding-top:calc(var(--section) + 78px); }
.page-head .seclabel{ color:var(--brass-deep); }
/* long-form prose (legal, sitemap, content pages) */
.prose{ max-width:78ch; }
.prose h2{ font-size:clamp(1.45rem,3vw,2.05rem); margin:1.7em 0 .5em; }
.prose h3{ font-size:clamp(1.15rem,2vw,1.5rem); margin:1.4em 0 .35em; }
.prose p, .prose li{ color:var(--ink-soft); }
.prose ul, .prose ol{ padding-left:1.2em; margin:0 0 1.1em; }
.prose li{ margin:.4em 0; }
.prose a{ color:var(--brass-deep); text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px; }
.prose a:hover{ color:var(--brass); }
/* ===== Single post (Dispatch) — normalize Divi builder content to gcg prose ===== */
.gcg-post{ max-width:74ch; }
.gcg-post .et_pb_section, .gcg-post .et_pb_row, .gcg-post .et_pb_column, .gcg-post .et_pb_with_border, .gcg-post .et_pb_module{ padding:0 !important; margin:0 !important; width:100% !important; max-width:100% !important; background:transparent !important; float:none !important; box-shadow:none !important; }
.gcg-post .et_pb_row{ display:block !important; }
.gcg-post .et_pb_text, .gcg-post .et_pb_text_inner, .gcg-post .et_pb_blurb_description{ font-family:"Inter",sans-serif !important; color:var(--ink-soft) !important; line-height:1.7 !important; }
.gcg-post p{ font-family:"Inter",sans-serif !important; font-size:1.0625rem !important; line-height:1.7 !important; color:var(--ink-soft) !important; margin:0 0 1.15em !important; }
.gcg-post h1,.gcg-post h2,.gcg-post h3,.gcg-post h4{ font-family:"Cormorant Garamond",serif !important; color:var(--ink) !important; font-weight:500 !important; letter-spacing:-0.01em; }
.gcg-post h2{ font-size:clamp(1.6rem,3vw,2.3rem) !important; line-height:1.16 !important; margin:1.7em 0 .5em !important; }
.gcg-post h3{ font-size:clamp(1.25rem,2.2vw,1.7rem) !important; line-height:1.2 !important; margin:1.5em 0 .4em !important; }
.gcg-post ul, .gcg-post ol{ padding-left:1.25em !important; margin:0 0 1.2em !important; }
.gcg-post li{ font-family:"Inter",sans-serif !important; font-size:1.0625rem !important; line-height:1.7 !important; color:var(--ink-soft) !important; margin:.45em 0 !important; }
.gcg-post a{ color:var(--brass-deep) !important; text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px; }
.gcg-post a:hover{ color:var(--brass) !important; }
.gcg-post strong,.gcg-post b{ color:var(--ink); font-weight:600; }
.gcg-post blockquote{ border-left:2px solid var(--brass); margin:1.6em 0; padding:4px 0 4px 26px; font-family:"Cormorant Garamond",serif; font-style:italic; font-size:clamp(1.3rem,2.4vw,1.7rem); color:var(--ink); line-height:1.35; }
.gcg-post img{ max-width:100% !important; height:auto !important; margin:1.4em 0; }
.gcg-post hr{ border:0; border-top:1px solid var(--rule); margin:2.4em 0; }
.gcg-post .et_pb_button{ display:inline-flex; align-items:center; padding:13px 28px !important; background:var(--ink) !important; color:var(--paper) !important; border:1px solid var(--ink) !important; font-family:"Inter",sans-serif !important; font-size:0.8rem !important; letter-spacing:0.12em; text-transform:uppercase; border-radius:0 !important; }
.gcg-post .et_pb_button:hover{ background:var(--brass-deep) !important; border-color:var(--brass-deep) !important; padding:13px 28px !important; }
.gcg-post .et_pb_button:after{ display:none !important; }
/* Dispatch post — full-screen overlaid hero, image fills, clickable categories */
.post-hero .hero-media{ inset:0; height:100%; }
.post-hero .hero-media img{ object-position:center center; opacity:.82; }
.post-hero .hero-media::after{ background:linear-gradient(180deg, rgba(20,20,20,.55) 0%, rgba(20,20,20,.28) 38%, rgba(20,20,20,.55) 72%, rgba(20,20,20,.92) 100%); }
.hero .eyebrow a{ color:inherit; text-decoration:none; border-bottom:1px solid rgba(199,154,82,.45); transition:border-color .2s,color .2s; }
.hero .eyebrow a:hover{ color:#dcb877; border-bottom-color:#dcb877; }
.post-body{ padding-top:clamp(56px,7vw,104px) !important; }
/* form (alignment review) */
.gform{ max-width:680px; margin-top:18px; }
.gform .frow{ margin:0 0 22px; }
.gform label{ display:block; font-family:"Inter",sans-serif; font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--brass-deep); margin:0 0 9px; }
.gform input, .gform select, .gform textarea{ width:100%; padding:14px 16px; background:#fff; border:1px solid var(--rule); color:var(--ink); font-family:"Inter",sans-serif; font-size:1rem; transition:border-color .25s,box-shadow .25s; }
.gform input:focus, .gform select:focus, .gform textarea:focus{ outline:none; border-color:var(--brass); box-shadow:0 0 0 3px rgba(176,138,74,.14); }
.gform textarea{ min-height:140px; resize:vertical; }
.gform .frow.two{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
@media(max-width:600px){ .gform .frow.two{ grid-template-columns:1fr; } }
.gform .hint{ font-size:0.85rem; color:var(--muted); margin-top:7px; }
.gform button[type=submit]{ margin-top:8px; }

/* ===== Header ===== */
header.bar{ position:fixed; top:0; left:0; right:0; z-index:100; transition:background .4s ease,border-color .4s ease; border-bottom:1px solid transparent; }
header.bar.solid{ background:rgba(251,248,243,0.9); backdrop-filter:saturate(150%) blur(10px); border-bottom-color:var(--rule); }
.bar-inner{ display:flex; justify-content:space-between; align-items:center; padding:20px var(--gut); max-width:var(--wrap); margin:0 auto; transition:padding .4s ease; }
header.bar.solid .bar-inner{ padding:13px var(--gut); }
.logo{ font-family:"Cormorant Garamond",serif; font-size:1.3rem; letter-spacing:0.04em; color:var(--ivory); transition:color .4s; }
.logo span{ color:var(--brass); }
header.bar.solid .logo{ color:var(--ink); }
/* header over light hero (content pages without dark hero can add .lighthero to header) */
header.bar.onlight .logo{ color:var(--ink); }
header.bar.onlight nav.bar-nav>a, header.bar.onlight .nav-trigger, header.bar.onlight .menu-toggle{ color:var(--ink-soft); }
nav.bar-nav{ display:flex; align-items:center; gap:32px; margin:0 auto 0 52px; }
nav.bar-nav>a, .nav-trigger{ font-size:0.78rem; letter-spacing:0.12em; text-transform:uppercase; color:rgba(245,241,234,.82); background:none; border:0; cursor:pointer; font-family:"Inter",sans-serif; padding:8px 0; position:relative; transition:color .25s; }
header.bar.solid nav.bar-nav>a, header.bar.solid .nav-trigger{ color:var(--ink-soft); }
nav.bar-nav>a::after, .nav-trigger::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--brass); transform:scaleX(0); transform-origin:left; transition:transform .3s cubic-bezier(.2,.7,.2,1); }
nav.bar-nav>a:hover::after, .has-drop:hover .nav-trigger::after{ transform:scaleX(1); }
nav.bar-nav>a:hover, .nav-trigger:hover{ color:var(--brass-bright); }
.nav-trigger .chev{ display:inline-block; margin-left:6px; border:solid currentColor; border-width:0 1px 1px 0; padding:2.5px; transform:rotate(45deg); position:relative; top:-1px; opacity:.6; transition:transform .25s; }
.has-drop:hover .nav-trigger .chev{ transform:rotate(225deg); top:1px; }
.has-drop{ position:relative; }
.drop{ position:absolute; top:calc(100% + 16px); left:50%; transform:translateX(-50%) translateY(8px); background:rgba(20,20,20,.97); backdrop-filter:blur(8px); border:1px solid var(--rule-dk); box-shadow:0 30px 70px -30px rgba(0,0,0,.7); padding:26px 30px; display:grid; grid-template-columns:1fr 1fr; gap:24px 44px; min-width:580px; opacity:0; visibility:hidden; transition:opacity .25s,transform .25s; }
.has-drop:hover .drop{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.drop-col h4{ font-family:"Inter"; font-size:0.62rem; letter-spacing:0.24em; text-transform:uppercase; color:var(--brass); font-weight:600; margin:0 0 14px; }
.drop-col a{ display:block; font-size:0.98rem; color:var(--ivory); padding:7px 0; font-family:"Cormorant Garamond",serif; letter-spacing:.01em; transition:color .2s,padding-left .2s; }
.drop-col a:hover{ color:var(--brass-bright); padding-left:6px; }

.cta-btn{ display:inline-flex; align-items:center; gap:9px; padding:13px 28px; background:var(--brass); color:var(--ink); border:1px solid var(--brass); font-family:"Inter",sans-serif; font-size:0.8rem; letter-spacing:0.12em; text-transform:uppercase; font-weight:500; transition:background .25s,color .25s,transform .25s; }
.cta-btn:hover{ background:var(--brass-bright); transform:translateY(-2px); }
.cta-btn.ghost{ background:transparent; color:var(--ivory); border-color:rgba(245,241,234,.35); }
.cta-btn.ghost:hover{ background:var(--ivory); color:var(--ink); border-color:var(--ivory); }
.cta-btn.dark{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.cta-btn.dark:hover{ background:var(--brass-deep); border-color:var(--brass-deep); color:var(--paper); }
.cta-btn.line{ background:transparent; color:var(--ink); border-color:var(--ink); }
.cta-btn.line:hover{ background:var(--ink); color:var(--paper); }
.band.dark .cta-btn.line{ color:var(--ivory); border-color:rgba(245,241,234,.4); }
.band.dark .cta-btn.line:hover{ background:var(--ivory); color:var(--ink); }

.menu-toggle{ display:none; align-items:center; gap:10px; background:none; border:0; cursor:pointer; font-family:"Inter"; font-size:0.76rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--ivory); transition:color .4s; }
header.bar.solid .menu-toggle{ color:var(--ink); }
.menu-toggle .bars{ display:inline-flex; flex-direction:column; gap:5px; width:22px; }
.menu-toggle .bars i{ height:1.5px; background:currentColor; }
.menu-toggle .bars i:nth-child(1){ width:22px; } .menu-toggle .bars i:nth-child(2){ width:14px; margin-left:auto; }
.panel{ position:fixed; inset:0; z-index:200; background:var(--void); transform:translateY(-100%); transition:transform .5s cubic-bezier(.7,0,.2,1); overflow-y:auto; -webkit-overflow-scrolling:touch; display:none; }
.panel.open{ transform:translateY(0); }
.panel-inner{ min-height:100%; padding:96px 28px 48px; max-width:560px; margin:0 auto; }
.panel a, .panel .pgroup-label{ display:block; color:var(--ivory); font-family:"Cormorant Garamond",serif; }
.panel>.panel-inner>a{ font-size:1.7rem; padding:15px 0; border-bottom:1px solid var(--rule-dk); }
.panel .pgroup-label{ font-family:"Inter"; font-size:0.6rem; letter-spacing:0.24em; text-transform:uppercase; color:var(--brass); padding:24px 0 6px; }
.panel .sub a{ font-size:1.1rem; color:var(--muted-dk); padding:9px 0; }
.panel .cta-btn{ display:flex; justify-content:center; margin-top:28px; width:100%; }
.panel-close{ position:absolute; top:26px; right:24px; background:none; border:0; color:var(--ivory); font-size:0.76rem; letter-spacing:0.18em; text-transform:uppercase; cursor:pointer; font-family:"Inter"; }

/* ===== Hero ===== */
.hero{ position:relative; min-height:100svh; display:flex; align-items:center; overflow:hidden; background:var(--void); }
.hero.short{ min-height:86svh; }
.hero-media{ position:absolute; inset:-8% 0 0 0; height:116%; z-index:0; will-change:transform; }
.hero-media img{ width:100%; height:100%; object-fit:cover; object-position:center 40%; opacity:.74; }
.hero-media::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,20,20,.6) 0%, rgba(20,20,20,.22) 35%, rgba(20,20,20,.55) 70%, rgba(20,20,20,.96) 100%); }
.hero-inner{ position:relative; z-index:2; width:100%; max-width:var(--wrap); margin:0 auto; padding:clamp(150px,21vh,250px) var(--gut) clamp(100px,15vh,180px); }
.hero .eyebrow{ font-family:"Inter"; font-size:0.74rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--brass-bright); margin-bottom:30px; }
.hero h1{ color:var(--ivory); max-width:20ch; }
.hero h1 em{ font-style:italic; color:var(--brass); }
.hero-lede{ font-family:"Cormorant Garamond",serif; font-style:italic; font-size:clamp(1.25rem,2.1vw,1.7rem); color:rgba(245,241,234,.86); max-width:54ch; margin:30px 0 40px; line-height:1.45; }
.hero-sub{ color:rgba(245,241,234,.7); max-width:60ch; margin:24px 0 0; }
.hero-cta{ display:flex; gap:16px; flex-wrap:wrap; }
.scrollcue{ position:absolute; left:50%; bottom:clamp(38px,6.5vh,74px); transform:translateX(-50%); z-index:3; color:rgba(245,241,234,.55); font-size:0.6rem; letter-spacing:0.34em; text-transform:uppercase; display:flex; flex-direction:column; align-items:center; gap:16px; }
.scrollcue .lbl{ animation:cueText 2.6s ease-in-out infinite; }
.scrollcue .track{ width:1px; height:60px; background:rgba(245,241,234,.16); position:relative; overflow:hidden; }
.scrollcue .bead{ position:absolute; top:0; left:-1px; width:3px; height:16px; background:var(--brass); border-radius:2px; animation:bead 2.4s cubic-bezier(.66,0,.34,1) infinite; }
@keyframes bead{ 0%{transform:translateY(-18px);opacity:0;} 22%{opacity:1;} 70%{opacity:1;} 100%{transform:translateY(60px);opacity:0;} }
@keyframes cueText{ 0%,100%{opacity:.45;} 50%{opacity:.95;} }

/* ===== Bands / sections ===== */
section{ position:relative; }
.band{ padding:var(--section) 0; }
.band.tan{ background:var(--ivory); }
.band.dark{ background:var(--void); color:var(--ivory); }
.band.dark h1,.band.dark h2,.band.dark h3{ color:var(--ivory); }
.band.deep{ background:linear-gradient(180deg,#141414,#191712); color:var(--ivory); }
.band.deep h2,.band.deep h3{ color:var(--ivory); }
.seclabel{ font-family:"Inter"; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--brass-deep); margin-bottom:22px; display:flex; align-items:center; gap:14px; }
.seclabel::before{ content:""; width:34px; height:1px; background:var(--brass); display:inline-block; }
.band.dark .seclabel, .band.deep .seclabel{ color:var(--brass); }
.kicker{ font-size:0.74rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--brass-deep); font-weight:500; margin-bottom:14px; }
.band.dark .kicker{ color:var(--brass); }
.lead{ font-family:"Cormorant Garamond",serif; font-size:clamp(1.3rem,2.1vw,1.7rem); line-height:1.4; color:var(--ink); font-weight:400; max-width:62ch; }
.band.dark .lead, .band.deep .lead{ color:var(--ivory); }
.body-col{ color:var(--ink-soft); }
.band.dark .body-col, .band.deep .body-col{ color:rgba(245,241,234,.72); }
.statement{ font-family:"Cormorant Garamond",serif; font-size:clamp(1.35rem,2.5vw,2rem); line-height:1.26; color:var(--ink); font-weight:400; margin:0.5em 0; max-width:54ch; }
.band.dark .statement{ color:var(--ivory); }
.statement em{ color:var(--brass); font-style:italic; }
.signoff{ font-family:"Cormorant Garamond",serif; font-style:italic; color:var(--brass-deep); font-size:1.15rem; margin-top:1.4em; }
.band.dark .signoff{ color:var(--brass); }
.deliver{ font-size:0.95rem; color:var(--brass-deep); font-style:italic; margin-top:10px; }
.band.dark .deliver{ color:var(--brass); }
.ksub{ color:var(--brass-deep); font-weight:600; font-family:"Inter",sans-serif; font-size:0.78rem; letter-spacing:0.16em; text-transform:uppercase; margin:0 0 6px; }
.band.dark .ksub, .band.deep .ksub{ color:var(--brass); }
.block{ margin:0 0 38px; } .block:last-child{ margin-bottom:0; }
.btn-row{ display:flex; gap:14px; flex-wrap:wrap; margin-top:32px; }

/* split: heading left (non-sticky) + content right */
.split{ display:grid; grid-template-columns:minmax(0,0.9fr) minmax(0,1.3fr); gap:clamp(40px,7vw,110px); align-items:start; }
@media (max-width:900px){ .split{ grid-template-columns:1fr; gap:30px; } }

/* lists */
.lead-list{ list-style:none; padding:0; margin:10px 0 0; }
.lead-list li{ padding:12px 0; border-bottom:1px solid var(--rule); font-size:1.02rem; color:var(--ink-soft); font-family:"Cormorant Garamond",serif; }
.lead-list li:last-child{ border-bottom:0; }
.band.dark .lead-list li, .band.deep .lead-list li{ border-bottom-color:var(--rule-dk); color:rgba(245,241,234,.78); }

/* cards (separated, hover) */
.cards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(264px,1fr)); gap:22px; margin-top:50px; }
.card{ background:var(--paper); border:1px solid var(--rule); padding:38px 32px 34px; transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s,border-color .4s; position:relative; overflow:hidden; }
.band.tan .card{ background:#fff; }
.band.dark .card, .band.deep .card{ background:rgba(245,241,234,.03); border-color:var(--rule-dk); }
.card:hover{ transform:translateY(-6px); box-shadow:0 30px 60px -34px rgba(28,28,28,.45); border-color:var(--brass); }
.card .idx{ font-family:"Cormorant Garamond",serif; font-size:2.4rem; color:var(--brass); line-height:1; opacity:.55; margin-bottom:22px; }
.card h3{ margin-bottom:12px; } .band.dark .card h3{ color:var(--ivory); }
.card p{ font-size:0.96rem; color:var(--muted); margin:0; line-height:1.6; }
.band.dark .card p, .band.deep .card p{ color:rgba(245,241,234,.62); }
.card::before{ content:""; position:absolute; left:0; top:0; height:2px; width:0; background:var(--brass); transition:width .5s cubic-bezier(.2,.7,.2,1); }
.card:hover::before{ width:100%; }

/* division / capability node grid (linked cards) */
.divgrid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:20px; margin-top:46px; }
.dnode{ display:block; border:1px solid var(--rule-dk); background:rgba(245,241,234,.03); padding:32px 28px; transition:transform .4s,border-color .4s,background .4s; }
.band:not(.dark):not(.deep) .dnode{ border-color:var(--rule); background:#fff; }
.dnode:hover{ transform:translateY(-6px); border-color:var(--brass); background:rgba(176,138,74,.08); }
.dnode .rn{ font-family:"Cormorant Garamond",serif; color:var(--brass); font-size:1.3rem; }
.dnode h3{ font-size:1.3rem; margin:10px 0 12px; }
.band.dark .dnode h3{ color:var(--ivory); }
.dnode p{ color:var(--muted); font-size:0.92rem; margin:0 0 18px; }
.band.dark .dnode p{ color:rgba(245,241,234,.65); }
.dnode .more{ font-family:"Inter"; font-size:0.7rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--brass-deep); }
.band.dark .dnode .more{ color:var(--brass); }
.dnode:hover .more{ color:var(--brass-bright); }

/* divisions diagram connectors (home) */
.divwrap{ margin-top:60px; }
.divcore{ text-align:center; margin-bottom:6px; }
.divcore .node{ display:inline-flex; flex-direction:column; gap:4px; padding:22px 40px; border:1px solid var(--brass); color:var(--ivory); background:rgba(176,138,74,.08); }
.divcore .node .k{ font-family:"Inter"; font-size:0.62rem; letter-spacing:0.24em; text-transform:uppercase; color:var(--brass); }
.divcore .node .t{ font-family:"Cormorant Garamond",serif; font-size:1.5rem; }
.divconnect{ width:100%; height:60px; display:block; }
.divconnect path{ fill:none; stroke:var(--brass); stroke-width:1; opacity:.5; }
@media (max-width:900px){ .divconnect{ display:none; } }

/* methodology phases / deliverable blocks reuse .block + .ksub + .deliver + .lead-list */

/* badges */
.badge-row{ display:flex; gap:12px; flex-wrap:wrap; margin-top:24px; }
.badge{ font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--brass-deep); border:1px solid var(--rule); padding:9px 16px; }
.band.dark .badge{ color:var(--brass); border-color:var(--rule-dk); }

/* receive grid (blueprint) */
.recv{ list-style:none; padding:0; margin:30px 0 0; display:grid; grid-template-columns:1fr 1fr; gap:0; border-top:1px solid var(--rule-dk); }
@media (max-width:680px){ .recv{ grid-template-columns:1fr; } }
.recv li{ display:flex; gap:18px; align-items:baseline; padding:22px 8px; border-bottom:1px solid var(--rule-dk); }
.recv li .n{ font-family:"Cormorant Garamond",serif; color:var(--brass); font-size:1.1rem; min-width:1.6em; }
.recv li span.t{ color:rgba(245,241,234,.85); font-size:1.02rem; }

/* timeline */
.timeline{ position:relative; margin-top:56px; }
.tl-line{ position:absolute; left:11px; top:8px; bottom:8px; width:1px; background:var(--rule); }
.band.dark .tl-line{ background:var(--rule-dk); }
.tl-line .fill{ position:absolute; left:0; top:0; width:1px; height:0; background:var(--brass); }
.tstep{ position:relative; padding:0 0 46px 56px; } .tstep:last-child{ padding-bottom:0; }
.tstep .dot{ position:absolute; left:4px; top:4px; width:15px; height:15px; border-radius:50%; background:var(--paper); border:1px solid var(--brass); transition:background .4s,box-shadow .4s; }
.band.tan .tstep .dot{ background:var(--ivory); } .band.dark .tstep .dot{ background:var(--void); }
.tstep.on .dot{ background:var(--brass); box-shadow:0 0 0 5px rgba(176,138,74,.18); }
.tstep .st{ font-family:"Cormorant Garamond",serif; font-size:clamp(1.3rem,2.1vw,1.7rem); color:var(--muted); line-height:1.3; transition:color .6s ease, transform .6s cubic-bezier(.2,.7,.2,1); }
.tstep.on .st{ color:var(--ink); transform:translateX(7px); }
.band.dark .tstep .st{ color:var(--muted-dk); } .band.dark .tstep.on .st{ color:var(--ivory); }

/* manifesto progressive reveal */
.manifesto .stack p{ font-family:"Cormorant Garamond",serif; font-size:clamp(1.6rem,3.4vw,2.6rem); line-height:1.24; color:var(--ivory); max-width:24ch; margin:0 0 clamp(32px,6vh,72px); font-weight:400; will-change:opacity,transform; }
.manifesto .stack p:last-child{ margin-bottom:0; }
.manifesto .stack p em{ color:var(--brass); font-style:italic; }
.manifesto .head h2{ max-width:14ch; }

/* doctrine reveal */
.doctrine-pin{ min-height:86vh; display:flex; align-items:center; justify-content:center; text-align:center; background:var(--void); color:var(--ivory); position:relative; overflow:hidden; }
.doctrine-pin .glow{ position:absolute; width:70vw; height:70vw; max-width:900px; max-height:900px; border-radius:50%; background:radial-gradient(circle, rgba(176,138,74,.16), transparent 62%); top:50%; left:50%; transform:translate(-50%,-50%); }
.doctrine-pin .inner{ position:relative; z-index:2; max-width:1000px; padding:0 var(--gut); }
.doctrine-pin .k{ font-family:"Inter"; font-size:0.72rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--brass); margin-bottom:30px; }
.doctrine-pin h2{ font-size:clamp(2.2rem,5.4vw,4.4rem); line-height:1.08; color:var(--ivory); }
.doctrine-pin h2 em{ color:var(--brass); font-style:italic; }
.doctrine-pin .last{ display:block; margin-top:.3em; }

/* fit profile */
/* Standard-of-Fit — framed two-column row lists (site-wide standard) */
.fit{ margin-top:50px; display:grid; grid-template-columns:1fr 1fr; border:1px solid var(--rule); }
.band.dark .fit{ border-color:var(--rule-dk); }
.fit-row{ padding:clamp(28px,3vw,46px) clamp(22px,3vw,48px); min-width:0; }
.fit-row.for{ border-right:1px solid var(--rule); }
.band.dark .fit-row.for{ border-right-color:var(--rule-dk); }
.fit-label{ font-family:"Inter",sans-serif; font-size:0.72rem; letter-spacing:0.2em; text-transform:uppercase; font-weight:600; margin-bottom:8px; }
.fit-row.for .fit-label{ color:var(--brass-deep); } .band.dark .fit-row.for .fit-label{ color:var(--brass); }
.fit-row.not .fit-label{ color:var(--muted); } .band.dark .fit-row.not .fit-label{ color:var(--muted-dk); }
.fit-label .mk{ display:none; }
.fit-tags{ display:flex; flex-direction:column; }
.fit-tags span{ display:flex; align-items:baseline; gap:14px; padding:17px 2px; border-bottom:1px solid var(--rule); font-family:"Inter",sans-serif; font-size:1.0rem; line-height:1.45; color:var(--ink-soft); }
.band.dark .fit-tags span{ border-bottom-color:var(--rule-dk); color:rgba(245,241,234,.82); }
.fit-tags span:last-child{ border-bottom:0; }
.fit-tags span::before{ flex-shrink:0; font-family:"Cormorant Garamond",serif; font-size:1.15rem; line-height:1; position:relative; top:1px; }
.fit-row.for .fit-tags span::before{ content:"\2014"; color:var(--brass); }
.fit-row.not .fit-tags span{ color:var(--muted); }
.fit-row.not .fit-tags span::before{ content:"\00D7"; color:var(--muted-dk); font-family:"Inter",sans-serif; font-size:1rem; }
@media (max-width:760px){ .fit{ grid-template-columns:1fr; } .fit-row.for{ border-right:0; border-bottom:1px solid var(--rule); } .band.dark .fit-row.for{ border-bottom-color:var(--rule-dk); } }

/* FAQ accordion */
details.faq{ border-bottom:1px solid var(--rule); }
details.faq:first-of-type{ border-top:1px solid var(--rule); }
details.faq summary{ cursor:pointer; list-style:none; padding:24px 0; font-family:"Cormorant Garamond",serif; font-size:clamp(1.2rem,2vw,1.45rem); line-height:1.3; color:var(--ink); display:flex; justify-content:space-between; gap:24px; align-items:baseline; }
details.faq summary::-webkit-details-marker{ display:none; }
details.faq summary::after{ content:"+"; color:var(--brass-deep); font-size:1.5rem; flex-shrink:0; line-height:1; transition:transform .3s; }
details.faq[open] summary::after{ content:"\2013"; }
details.faq summary:hover{ color:var(--brass-deep); }
details.faq .ans{ padding:0 0 26px; max-width:72ch; }
details.faq .ans p{ color:var(--ink-soft); font-size:1rem; margin:0 0 0.8em; }
details.faq .ans p:last-child{ margin-bottom:0; }

/* closing */
.closing{ text-align:center; padding:clamp(110px,16vh,200px) 0; background:var(--void); color:var(--ivory); }
.closing h2{ font-size:clamp(2.4rem,5.6vw,4.4rem); color:var(--ivory); }
.closing h2 em{ color:var(--brass); font-style:italic; }
.closing p{ color:rgba(245,241,234,.6); max-width:52ch; margin:22px auto 42px; }
.closing .btn-row, .closing .hero-cta{ justify-content:center; }

/* footer */
footer.foot{ background:#101010; color:var(--muted-dk); padding:84px 0 40px; border-top:1px solid var(--rule-dk); }
.foot-grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1.2fr; gap:48px; max-width:var(--wrap); margin:0 auto; padding:0 var(--gut); }
@media (max-width:860px){ .foot-grid{ grid-template-columns:1fr 1fr; gap:40px 32px; } }
@media (max-width:520px){ .foot-grid{ grid-template-columns:1fr; } }
.foot-brand .fl{ font-family:"Cormorant Garamond",serif; font-size:1.5rem; color:var(--ivory); }
.foot-brand .fl span{ color:var(--brass); }
.foot-brand .ft{ font-family:"Cormorant Garamond",serif; font-style:italic; color:var(--brass); margin-top:10px; font-size:1.05rem; }
.foot-brand p{ margin-top:22px; font-size:0.88rem; color:var(--muted-dk); max-width:34ch; }
.foot-col h5{ font-family:"Inter"; font-size:0.62rem; letter-spacing:0.24em; text-transform:uppercase; color:var(--muted-dk); margin:0 0 18px; font-weight:600; }
.foot-col a{ display:block; color:rgba(245,241,234,.78); font-size:0.95rem; padding:6px 0; transition:color .2s,padding-left .2s; }
.foot-col a:hover{ color:var(--brass-bright); padding-left:5px; }
.foot-bottom{ max-width:var(--wrap); margin:60px auto 0; padding:26px var(--gut) 0; border-top:1px solid var(--rule-dk); display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px; font-size:0.8rem; color:var(--muted-dk); }
.foot-bottom a{ color:var(--muted-dk); } .foot-bottom a:hover{ color:var(--brass-bright); }

/* responsive nav */
@media (max-width:900px){
  nav.bar-nav{ display:none; }
  .bar-inner>.cta-btn{ display:none; }
  .menu-toggle{ display:inline-flex; }
  .panel{ display:block; }
}
@media (max-width:880px){
  .hero-inner{ padding-top:clamp(118px,20vh,160px); padding-bottom:clamp(72px,12vh,120px); }
  .hero h1{ max-width:18ch; }
}
@media (max-width:520px){
  .scrollcue .track{ height:42px; }
  .scrollcue{ bottom:clamp(20px,4vh,40px); }
}
/* tap targets — mobile */
@media (max-width:900px){
  nav.bar-nav>a, .panel a, .foot-col a, .foot-links a{ min-height:44px; display:flex; align-items:center; }
  .panel .sub a{ min-height:40px; }
}

/* reduced motion */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  .hero-media{ position:absolute; inset:0; height:100%; }
  .manifesto .stack p{ opacity:1 !important; transform:none !important; }
  .reveal, [data-rise]{ opacity:1 !important; transform:none !important; }
}

/* ============================================================
   Nav refinements — 2026-06-30 (Stream A quality pass)
   1) Desktop Capabilities dropdown: hover bridge so the menu stays
      open across the 16px gap and its links stay clickable; opens on
      keyboard focus too (a11y).
   2) Mobile menu panel: top-most overlay above the consent banner and
      all content, navigable at any scroll position.
   ============================================================ */
.drop::before{ content:""; position:absolute; top:-18px; left:0; right:0; height:20px; }
.has-drop .drop{ transition:opacity .22s ease, transform .22s ease, visibility .22s; }
.has-drop:hover .drop, .has-drop:focus-within .drop, .drop:hover{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.has-drop:focus-within .nav-trigger .chev{ transform:rotate(225deg); top:1px; }
.panel{ z-index:100000; }
/* Mobile menu stacking fix (2026-06-30b): the .panel lives inside header.bar, so the
   header's stacking context must sit above body-level fixed elements (e.g. the consent
   banner) for the open full-screen panel to cover all content. */
header.bar{ z-index:100001; }


/* ============================================================
   Mobile menu fixes — 2026-07-01
   1) CRITICAL: scrolled header used backdrop-filter, which made header.bar
      the containing block for the nested fixed .panel, clipping the full-screen
      menu to the header box (menu would not open once scrolled). Move the frosted
      background to a ::before pseudo so header.bar itself carries no filter.
   2) Wordmark never wraps; any header CTA is hidden on mobile (it lives at the
      bottom of the menu instead).
   3) Divisions / Blueprints are collapsible accordions (collapsed by default).
   ============================================================ */
header.bar.solid{ background:transparent; -webkit-backdrop-filter:none; backdrop-filter:none; }
header.bar.solid::before{ content:""; position:absolute; inset:0; z-index:-1; background:rgba(251,248,243,0.9); -webkit-backdrop-filter:saturate(150%) blur(10px); backdrop-filter:saturate(150%) blur(10px); pointer-events:none; }
.logo{ white-space:nowrap; }
@media (max-width:900px){ .bar-inner .cta-btn{ display:none; } }
@media (max-width:520px){ .logo{ font-size:1.12rem; } }
.panel .pgroup-label{ cursor:pointer; display:flex; align-items:center; justify-content:space-between; -webkit-user-select:none; user-select:none; }
.panel .pgroup-label::after{ content:""; width:8px; height:8px; border-right:1.5px solid var(--brass); border-bottom:1.5px solid var(--brass); transform:rotate(45deg); transition:transform .3s ease; margin-left:14px; position:relative; top:-2px; opacity:.85; }
.panel .pgroup-label.open::after{ transform:rotate(-135deg); top:2px; }
.panel .sub{ display:none; }
.panel .sub.open{ display:block; }


/* ===== Hero scroll cue spacing — 2026-07-01 =====
   Reserve a bottom band so the scroll cue always sits well below the hero CTA(s)
   with UHNW breathing room, on every hero page. Content position is unchanged;
   the hero simply grows to give the bottom-pinned cue clearance. */
.hero-inner{ padding-bottom: clamp(220px,23vh,270px); }
.scrollcue{ bottom: clamp(34px,5vh,56px); }
@media (max-width:880px){ .hero-inner{ padding-bottom: clamp(160px,20vh,210px); } }
@media (max-width:520px){ .scrollcue{ bottom: clamp(28px,4.5vh,44px); } }


/* ============================================================
   Hero reveal parallax — 2026-07-01
   The hero stays pinned (sticky) while the content below scrolls up
   and over it — as if the hero image sits fixed underneath. Pure CSS.
   ============================================================ */
.hero{ position:sticky; top:0; z-index:0; }
.band{ background:var(--paper); }
body > section.band, body > section.closing, body > footer.foot, body > .page-head, body > .prose{ position:relative; z-index:1; }
/* posts: post body scrolls over the post hero too */
.post-body, .gcg-post, article.post, main{ position:relative; z-index:1; background:var(--paper); }


/* ============================================================
   Readability & typographic consistency — 2026-07-01
   Larger, higher-contrast, unified type for a 40+ UHNW audience.
   Measured adjustments — no structural change.
   ============================================================ */
/* Comfortable reading size (mobile min 17→18px; desktop unchanged) */
body{ font-size: clamp(1.125rem, 1.35vw, 1.1875rem); }
.prose p, .prose li{ font-size: 1.125rem; line-height: 1.7; }
.gcg-post p, .gcg-post li{ font-size: 1.15rem !important; line-height: 1.7 !important; }
.prose{ max-width: 72ch; }
.prose p, .prose li, .gcg-post p, .gcg-post li, .body-col, .lead-list li{ text-wrap: pretty; }
/* Complete the heading scale (H5/H6 were undefined) */
h5, h6{ font-family:"Inter",sans-serif; font-weight:600; color:var(--ink); margin:0; }
h5{ font-size:1rem; letter-spacing:0.02em; }
h6{ font-size:0.85rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--brass-deep); }
.band.dark h5,.band.dark h6,.band.deep h5,.band.deep h6{ color:var(--ivory); }
/* One consistent, legible spec for the small uppercase labels (were 0.6–0.78rem, tracking up to 0.24em) */
.hero .eyebrow, .seclabel, .kicker, .ksub, .badge, .fit-label, .menu-toggle,
.dnode .more, .drop-col h4, .foot-col h5, .divcore .node .k, .gform label{
  font-size: 0.8rem; letter-spacing: 0.14em; font-weight: 600;
}
/* Mobile menu — the explicitly hard-to-read labels */
.panel .pgroup-label{ font-size: 0.86rem; letter-spacing: 0.13em; font-weight: 600; color: var(--brass-bright); }
.panel .sub a{ font-size: 1.2rem; color: rgba(245,241,234,.85); }
.panel > .panel-inner > a{ font-size: 1.8rem; }
/* Lift the dimmest secondary copy toward legible */
.closing p{ color: rgba(245,241,234,.72); }
