/* ============================================================
   Global OneHealth — v3 · Editorial / Art-directed
   Deep navy · engraved gold · ivory chapters
   ============================================================ */

:root {
  --navy-950: #0C0C0E;
  --navy-900: #131316;
  --navy-850: #17171A;
  --navy-800: #1D1D21;
  --gold: #C22C3B;
  --gold-bright: #DE4B57;
  --gold-deep: #8E1622;
  --gold-dim: rgba(192, 51, 63, 0.30);
  --ivory: #F7F2EA;
  --ivory-2: #F0E9DE;
  --ink: #1A191B;
  --ink-soft: #46444A;
  --muted: #75727A;
  --line: rgba(26, 25, 27, 0.13);
  --line-dark: rgba(247, 242, 234, 0.13);
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Inter", -apple-system, "Segoe UI", sans-serif;
  --maxw: 1360px;
  --gut: clamp(24px, 5vw, 72px);
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
section[id], .hero[id] { scroll-margin-top: 90px; }

body {
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.68;
  color: var(--ivory);
  background: var(--navy-900);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--gut); position: relative; }

::selection { background: var(--gold-dim); }


/* justified body text (non-headline) */
p, .pc ul li {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto; -webkit-hyphens: auto;
}
.statement, .instate .big, .leadin, .logotype, .frhead h3 { text-align: left; hyphens: none; }
.pc p, .pc .t, .pc .tagline, .pc ul li, .vitem p { text-align: left; hyphens: none; }
footer.site .statement { text-align: left; }

/* grain */
.txt { position: relative; }
.txt::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='140' height='140' filter='url(%23n)' opacity='0.5'/></svg>");
  opacity: 0.05;
}
.wrap { z-index: 2; }

/* ---------- type ---------- */

h1, h2, h3, .serif { font-family: var(--serif); font-weight: 500; letter-spacing: -0.012em; }
h1, h2, .instate .big, .leadin { text-wrap: balance; }

.caps {
  font-family: var(--sans); font-size: 0.7rem; font-weight: 600;
  letter-spacing: 0.34em; text-transform: uppercase; color: var(--gold);
}
.caps.mut { color: var(--muted); }

.chapter-mark { display: flex; align-items: baseline; gap: 18px; margin-bottom: clamp(40px, 6vw, 72px); }
.chapter-mark .rule { flex: 1; height: 1px; background: currentColor; opacity: 0.16; }
.chapter-mark .no { font-family: var(--serif); font-style: italic; font-size: 1rem; color: var(--gold); }

.h-XL { font-size: clamp(2.6rem, 5.4vw, 4.6rem); line-height: 1.05; }
.h-L  { font-size: clamp(2.1rem, 3.8vw, 3.3rem); line-height: 1.12; }
.h-M  { font-size: clamp(1.5rem, 2.4vw, 2rem); line-height: 1.25; }

em.gold { font-style: italic; background: linear-gradient(115deg, #C63744, #8E1622); -webkit-background-clip: text; background-clip: text; color: transparent; }

.lede { font-size: 1.15rem; line-height: 1.75; }
.c-4 p, .c-5 p, .c-6 p, .contactgrid p { font-size: 0.95rem; }

.deep em.gold, section.ch.txt em.gold { background: linear-gradient(115deg, #F0868D, #DE4B57); -webkit-background-clip: text; background-clip: text; }

.light { background: var(--ivory); color: var(--ink); }
.light ::selection { background: rgba(192,51,63,0.18); }
.light .lede, .light p { color: var(--ink-soft); }
.light p strong { font-weight: 600; color: var(--ink); }
.light .chapter-mark { color: var(--ink); }
.dark p, .deep p { color: rgba(247,242,234,0.76); }

/* outlined ghost word */
.ghostword {
  position: absolute; z-index: 0; pointer-events: none; user-select: none;
  font-family: var(--serif); font-weight: 500; line-height: 0.8;
  font-size: clamp(7rem, 17vw, 17rem);
  color: transparent;
  -webkit-text-stroke: 1px rgba(222, 75, 87, 0.17);
}
.light .ghostword { -webkit-text-stroke: 1px rgba(26, 25, 27, 0.09); }
.pagehero .ghostword { -webkit-text-stroke: 1px rgba(26, 25, 27, 0.08); }

/* ---------- fixed chrome ---------- */

#progress {
  position: fixed; top: 0; left: 0; height: 2px; width: 0%;
  background: linear-gradient(90deg, var(--gold-deep), var(--gold-bright));
  z-index: 100;
}

#rail {
  position: fixed; right: 26px; top: 50%; transform: translateY(-50%);
  z-index: 90; display: flex; flex-direction: column; gap: 14px;
}
#rail a { display: flex; align-items: center; gap: 10px; justify-content: flex-end; }
#rail .dot { width: 5px; height: 5px; background: rgba(200,200,200,0.35); transform: rotate(45deg); transition: all 0.25s; }
#rail a.on .dot { background: var(--gold-bright); box-shadow: 0 0 8px rgba(224,85,97,0.7); }
#rail .lbl {
  font-size: 0.58rem; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--gold-bright); opacity: 0; transform: translateX(6px); transition: all 0.25s;
}
#rail a:hover .lbl, #rail a.on .lbl { opacity: 0.9; transform: none; }
@media (max-width: 1320px) { #rail { display: none; } }

/* ---------- header ---------- */

header.site {
  position: fixed; top: 0; left: 0; right: 0; z-index: 80;
  transition: background 0.35s, box-shadow 0.35s, border 0.35s;
  border-bottom: 1px solid transparent;
}
header.site.scrolled {
  background: rgba(247, 243, 235, 0.95);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 10px 30px -20px rgba(8,8,10,0.2);
}
header.site .bar {
  display: flex; align-items: center; justify-content: space-between;
  gap: 34px; height: 88px;
  max-width: none; padding: 0 clamp(24px, 3.4vw, 48px);
}
.brand { display: flex; align-items: center; gap: 14px; flex: none; }
.brand svg.marque { width: 44px; height: 44px; flex: none; }
.logotype {
  font-family: var(--serif); font-size: 1.6rem; font-weight: 600;
  color: var(--ink); letter-spacing: 0.012em; white-space: nowrap; line-height: 1;
}
.logotype .g { font-weight: 600; }
.logotype b { color: var(--gold); font-weight: 700; }
.logotype.ft { color: var(--ivory); font-size: 1.4rem; }
.logotype.ft b { color: var(--gold-bright); }

nav.primary { display: flex; align-items: center; gap: 15px; }
nav.primary a {
  white-space: nowrap; color: rgba(26,25,27,0.66);
  font-size: 0.7rem; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase;
  padding: 6px 0; position: relative; transition: color 0.2s;
}
nav.primary a:not(.cta)::after {
  content: ""; position: absolute; left: 0; bottom: 0; height: 1px; width: 0;
  background: var(--gold); transition: width 0.28s;
}
nav.primary a:not(.cta):hover { color: var(--gold); }
nav.primary a:not(.cta):hover::after { width: 100%; }

.cta, .btn {
  display: inline-flex; align-items: center; gap: 12px;
  padding: 15px 30px; font-size: 0.7rem; font-weight: 600;
  letter-spacing: 0.18em; text-transform: uppercase;
  border: 1px solid var(--gold); color: var(--gold-bright);
  background: transparent; cursor: pointer; transition: all 0.3s; font-family: var(--sans);
  position: relative; overflow: hidden;
}
.cta span, .btn span { position: relative; z-index: 1; }
.cta::before, .btn::before {
  content: ""; position: absolute; inset: 0; background: linear-gradient(135deg, #E05561, #8C1B26);
  transform: translateY(101%); transition: transform 0.32s cubic-bezier(.6,.1,.2,1);
}
.cta:hover, .btn:hover { color: var(--ivory); border-color: transparent; }
.cta:hover::before, .btn:hover::before { transform: none; }

.btn.solid { background: linear-gradient(135deg, #E05561, #8C1B26); color: var(--navy-950); border-color: transparent; }
.btn.solid::before { background: #D94853; }
.btn.on-light { color: var(--gold-deep); border-color: var(--gold); }
.btn.on-light:hover { color: var(--ivory); }
.btn.on-light::before { background: var(--navy-900); }

nav.primary .cta { padding: 10px 16px; font-size: 0.7rem; }
header.site .cta { color: var(--gold); }
.navtoggle {
  display: none; background: none; border: 0; color: var(--ink);
  font-size: 1.5rem; cursor: pointer;
  width: 48px; height: 48px; align-items: center; justify-content: center;
  position: relative; z-index: 5; flex: none;
}
@media (max-width: 1280px) {
  .navtoggle { display: flex; }
  nav.primary { display: none; position: absolute; top: 88px; left: 0; right: 0;
    background: var(--ivory); flex-direction: column; padding: 30px 36px; gap: 22px;
    border-bottom: 1px solid var(--line); align-items: flex-start; }
  nav.primary.open { display: flex; }
}



/* landing: trust statement + values row */
.hleft { min-width: 0; }
.herolede { max-width: 620px; margin-top: 0; font-size: 1.12rem; text-align: left; hyphens: none; text-wrap: balance; }
.statline .vrow {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: clamp(20px, 3vw, 40px);
  padding: 22px 0 26px; border-top: 1px solid rgba(247,242,234,0.08);
  scroll-margin-top: 90px;
}
@media (max-width: 900px) { .statline .vrow { grid-template-columns: repeat(2, 1fr); } }
.pc.lt .t { color: var(--ink-soft); }
@media (min-width: 901px) and (max-height: 840px) {
  .herolede { font-size: 0.95rem; margin-top: 0; }
}


.ticker.sectape { width: 100%; margin-top: calc(-1 * clamp(56px, 7vh, 90px)); margin-bottom: clamp(26px, 4vh, 42px); padding: 7px 0; }
.ticker.sectape .item { font-size: 1.08rem; }


/* landing: light stats, dark values band */
.statline.instat { background: transparent; border-top: 0; flex: none; }
.instat .row .n { background: linear-gradient(115deg, #C63744, #8E1622); -webkit-background-clip: text; background-clip: text; }
.instat .row .l { color: var(--muted); }
.instat .cell { border-left-color: var(--line); }
.valband { background: var(--navy-950); position: relative; flex: none; }
.valband .vrow {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: clamp(20px, 3vw, 40px);
  padding: 20px 0 22px; scroll-margin-top: 90px;
}
@media (max-width: 900px) { .valband .vrow { grid-template-columns: repeat(2, 1fr); } }

/* top ticker strip (fixed header) */
.topticker {
  overflow: hidden;
  background: var(--navy-950);
  border-bottom: 1px solid rgba(247,242,234,0.08);
  padding: 7px 0;
}
.topticker .track { display: flex; width: max-content; animation: tick 46s linear infinite; }
.topticker span {
  font-family: var(--serif); font-style: italic; font-size: 0.95rem;
  color: rgba(247,242,234,0.72); white-space: nowrap; display: flex; align-items: center;
}
.topticker span::after { content: "◆"; font-size: 0.45rem; color: var(--gold-bright); margin: 0 26px; font-style: normal; }

/* ---------- hero ---------- */

.hero {
  height: 100vh;
  min-height: 640px;
  position: relative;
  display: flex; flex-direction: column;
  background: linear-gradient(180deg, #FCFAF4 0%, var(--ivory) 100%);
  color: var(--ink);
  overflow: hidden;
  padding-top: 98px;
}
@media (max-width: 900px) { .hero { height: auto; min-height: 100vh; padding-top: 112px; } }

.hero .headwrap { padding: 10px var(--gut) 0; max-width: var(--maxw); margin: 0 auto; width: 100%; position: relative; z-index: 3; flex: 1; display: flex; align-items: center; }
.hero .headrow { width: 100%; }

.hero .kick { display: flex; align-items: center; gap: 16px; margin-bottom: 2.6vh; }
.hero .kick .rule { width: 56px; height: 1px; background: var(--gold); }

.hero h1 {
  font-size: clamp(2.4rem, min(4.15vw, 7.4vh), 4.6rem);
  line-height: 0.98;
  font-weight: 500;
  color: var(--ink);
}
.hero h1 .l2 { display: block; margin-left: clamp(24px, 5.5vw, 110px); }
.hero h1 .l3 { display: block; margin-left: clamp(50px, 11vw, 210px); font-style: italic;
  background: linear-gradient(115deg, #C63744, #8E1622); -webkit-background-clip: text; background-clip: text; color: transparent; }

.hero .sub {
  display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: clamp(30px, 6vw, 100px); align-items: end; margin-top: 3vh;
}
.hero .sub p { color: var(--ink-soft); font-size: 1.08rem; max-width: 520px; }
.hero .sub .actions { display: flex; gap: 16px; flex-wrap: wrap; justify-content: flex-end; }
@media (max-width: 860px) { .hero .sub { grid-template-columns: 1fr; } .hero .sub .actions { justify-content: flex-start; } }


/* landing = firm view */
.hero .ticker.herotape { flex: none; margin-top: 0; margin-bottom: 1.6vh; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 7px 0; }
.hero .ticker.herotape .item { color: rgba(26,25,27,0.6); font-size: 1.08rem; }
.firmwrap { flex: 1; min-height: 0; display: flex; align-items: center; padding-bottom: 18px; }
.firmgrid { display: grid; grid-template-columns: 5fr 6.5fr; gap: clamp(32px, 4.5vw, 80px); align-items: start; width: 100%; }
/* hero: centered headline over tape, then statement + map row */
.hero .headwrap.hw-top { flex: none; display: block; text-align: center; padding-top: 1vh; padding-bottom: 2vh; }
.hero h1.ctr { text-align: center; }
.hero h1.ctr .l1, .hero h1.ctr .l2, .hero h1.ctr .l3 { display: block; margin-left: 0; }
.hero .headwrap.hw-sub { flex: 1; align-items: center; }
.headrow { display: grid; grid-template-columns: minmax(0, 1fr) min(44%, clamp(288px, 42.3vh, 461px)); gap: clamp(32px, 5vw, 90px); align-items: center; width: 100%; }
.headrow .herolede { max-width: 620px; }
.headrow .fmap { justify-self: end; width: 100%; }
@media (min-width: 901px) { .hero h1 .l1, .hero h1 .l2, .hero h1 .l3 { white-space: nowrap; } }
.headrow .mapbox { width: auto; height: clamp(150px, 22vh, 240px); }
.leadin { font-size: clamp(1.35rem, 1.9vw, 1.75rem); color: var(--ink); margin-bottom: 14px; font-weight: 500; line-height: 1.25; }
.fcopy p:not(.leadin) { font-size: 0.95rem; color: var(--ink-soft); margin-bottom: 12px; line-height: 1.6; }
.fcopy p:last-child { margin-bottom: 0; }
.froles .fr { border-top: 1px solid var(--line); padding: 13px 0; }
.froles .fr:first-child { border-top: 2px solid var(--gold); }
.frhead { display: flex; gap: 10px; align-items: center; margin-bottom: 3px; }
.frhead svg { width: 19px; height: 19px; stroke: var(--gold); fill: none; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.frhead h3 { font-size: 1.15rem; font-weight: 700; }
.froles .fr p { font-size: 0.95rem; color: var(--ink-soft); line-height: 1.6; }
.fmap .mapbox { width: 100%; height: auto; }
.fmap .dotmap { display: block; width: 100%; height: 100%; }
@media (max-width: 900px) {
  .firmgrid { grid-template-columns: 1fr; }
  .headrow { grid-template-columns: 1fr; }
  .headrow .fmap { max-width: 480px; margin-top: 20px; }
  .firmwrap { display: block; padding-bottom: 60px; }
}


@media (min-width: 901px) and (max-height: 840px) {
  .fcopy p:not(.leadin) { font-size: 0.9rem; line-height: 1.55; margin-bottom: 10px; }
  .leadin { font-size: 1.3rem; margin-bottom: 10px; }
  .froles .fr p { font-size: 0.9rem; }
  .froles .fr { padding: 9px 0; }
  .hero .scrollcue { display: none !important; }
  .firmwrap { padding-bottom: 22px; }
}

/* map stage */
.mapstage { position: relative; margin-top: 2.5vh; z-index: 2; flex: 1; min-height: 0; display: flex; }
.mapstage .frame { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--gut) 38px; width: 100%; display: flex; justify-content: flex-end; min-height: 0; }
.mapbox { position: relative; margin: 0; height: 100%; aspect-ratio: 1000 / 520; max-width: 100%; }
.dotmap { width: 100%; height: 100%; color: rgba(174, 29, 43, 0.55); }
.mapbox svg.overlay { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
@media (max-width: 900px) { .mapstage { flex: none; display: block; } .mapbox { height: auto; width: 100%; } }

.arc { fill: none; stroke: var(--gold); stroke-width: 1.1; opacity: 0.65;
  stroke-dasharray: 400; stroke-dashoffset: 400; animation: draw 3.2s ease forwards; }
.arc.a2 { animation-delay: 0.5s; }
.arc.a3 { animation-delay: 1s; }
.arc.a4 { animation-delay: 1.5s; }
@keyframes draw { to { stroke-dashoffset: 0; } }

.hub { fill: var(--gold); }
.hub-ring { fill: none; stroke: var(--gold); opacity: 0.5; transform-origin: center; animation: ping 3s ease-out infinite; }
@keyframes ping { 0% { r: 3; opacity: 0.7; } 70% { r: 14; opacity: 0; } 100% { r: 14; opacity: 0; } }

.hero .scrollcue {
  position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: 10px; z-index: 4;
  color: rgba(26,25,27,0.45); font-size: 0.6rem; letter-spacing: 0.3em; text-transform: uppercase;
}
.scrollcue .line { width: 1px; height: 44px; background: linear-gradient(180deg, var(--gold), transparent); animation: sink 2.2s ease infinite; }
@keyframes sink { 0% { transform: scaleY(0); transform-origin: top; } 45% { transform: scaleY(1); transform-origin: top; } 55% { transform: scaleY(1); transform-origin: bottom; } 100% { transform: scaleY(0); transform-origin: bottom; } }

/* stats strip — inline editorial, no boxes */
.statline { background: var(--navy-950); }
.statline .row {
  display: grid; grid-template-columns: repeat(4, auto); justify-content: space-between;
  gap: 32px; padding: 44px 0;
}
.statline .s { display: flex; align-items: baseline; gap: 16px; }
.statline .n { font-family: var(--serif); font-size: clamp(2.2rem, 3.6vw, 3.4rem); line-height: 1;
  background: linear-gradient(115deg, #F0868D, #DE4B57); -webkit-background-clip: text; background-clip: text; color: transparent; }
.statline .l { font-size: 0.7rem; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(247,242,234,0.52); max-width: 150px; line-height: 1.55; }
@media (max-width: 980px) { .statline .row { grid-template-columns: 1fr 1fr; } }
@media (max-width: 700px) {
  .statline .row { grid-template-columns: 1fr; gap: 26px; padding: 38px 0; }
  .statline .l { max-width: none; }
}

/* ---------- chapters ---------- */

section.ch { padding: clamp(90px, 12vh, 150px) 0; position: relative; overflow: hidden; }
section.ch.thin { padding: clamp(60px, 8vh, 90px) 0; }
section.deep { background: var(--navy-950); }

/* editorial offset grid */
.g12 { display: grid; grid-template-columns: repeat(12, 1fr); gap: clamp(20px, 2.4vw, 36px); }
.c-4 { grid-column-end: span 4; } .c-5 { grid-column-end: span 5; } .c-6 { grid-column-end: span 6; } .c-7 { grid-column-end: span 7; } .c-8 { grid-column-end: span 8; } .c-12 { grid-column: 1 / -1; }
.off-1 { grid-column-start: 2; } .off-6 { grid-column-start: 6; } .off-7 { grid-column-start: 7; } .off-8 { grid-column-start: 8; }
@media (max-width: 900px) { .g12 { grid-template-columns: 1fr; } .g12 > * { grid-column: 1 / -1 !important; } }

/* ledger rows (roles, ecosystem…) */
.ledger { border-top: 1px solid currentColor; }
.light .ledger { border-color: var(--line); }
.dark .ledger, .deep .ledger, section.ch:not(.light) .ledger { border-color: var(--line-dark); }
.ledger .lrow {
  display: grid; grid-template-columns: 110px 64px 1fr 1.4fr; gap: clamp(18px, 3vw, 44px);
  padding: clamp(30px, 4vw, 44px) 0; border-bottom: 1px solid var(--line);
  align-items: start;
}
section.ch:not(.light) .ledger .lrow { border-color: var(--line-dark); }
.ledger .no { font-family: var(--serif); font-style: italic; font-size: 1.1rem; color: var(--gold); padding-top: 6px; }
.ledger .ic svg { width: 30px; height: 30px; stroke: var(--gold); fill: none; stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; }
.ledger h3 { font-size: clamp(1.5rem, 2.3vw, 2rem); }
.ledger .desc { font-size: 1rem; }
@media (max-width: 900px) { .ledger .lrow { grid-template-columns: 48px 1fr; } .ledger .no { display: none; } .ledger .desc { grid-column: 2; } }

/* partner list — hover rows */
.partnerlist { border-top: 1px solid var(--line-dark); counter-reset: pr; }
.partnerlist li { border-bottom: 1px solid var(--line-dark); }
.partnerlist a, .partnerlist .row {
  display: flex; align-items: baseline; gap: clamp(20px, 3vw, 40px);
  padding: clamp(22px, 3vw, 32px) 0; transition: padding-left 0.3s ease;
}
.partnerlist .row:hover { padding-left: 18px; }
.partnerlist .ix { font-family: var(--sans); font-size: 0.68rem; letter-spacing: 0.14em; color: var(--gold); min-width: 34px; }
.partnerlist .t { font-family: var(--serif); font-size: clamp(1.5rem, 2.6vw, 2.2rem); color: var(--ivory); font-weight: 500; }

/* ticker */
.ticker { overflow: hidden; border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); padding: 22px 0; position: relative; }
.ticker .track { display: flex; gap: 0; width: max-content; animation: tick 46s linear infinite; }
.ticker:hover .track { animation-play-state: paused; }
.ticker .item {
  font-family: var(--serif); font-size: 1.25rem; font-style: italic; color: rgba(247,242,234,0.66);
  display: flex; align-items: center; white-space: nowrap;
}
.ticker .item::after { content: "◆"; font-size: 0.5rem; color: var(--gold); margin: 0 34px; font-style: normal; }
@keyframes tick { to { transform: translateX(-50%); } }



/* stats inside landing view */
.instat { margin-top: auto; }
.instat .row { padding: 24px 0; }
.instat .n { font-size: clamp(1.8rem, 2.9vw, 2.7rem); }
.instat .l { margin-top: 8px; font-size: 0.7rem; }
@media (min-width: 901px) and (max-height: 840px) {
  section.ch.view { min-height: 0; padding: 42px 0; }
  .pcards.cmp .pc { padding: 14px 16px; }
  .pcards.cmp .pc p { font-size: 0.88rem; }
  .pcards.cmp .pc svg { margin-bottom: 9px; }
  .h-L { font-size: clamp(1.9rem, 3vw, 2.6rem); }
  .chapter-mark { margin-bottom: 28px; }
  .instat .row { padding: 12px 0; }
  .instat .n { font-size: 1.7rem; }
  .instat .l { font-size: 0.66rem; margin-top: 5px; }
  .headrow { grid-template-columns: minmax(0, 1fr) min(40%, clamp(250px, 32.7vh, 327px)); }
  .hero h1 { font-size: min(4.15vw, 7.5vh); }
  .hero .ticker.herotape { padding: 6px 0; }
  .hero .ticker.herotape .item { font-size: 0.98rem; }
}


/* soft full-screen views */
section.ch.view { min-height: 92vh; display: flex; flex-direction: column; justify-content: center; padding: clamp(56px, 7vh, 90px) 0; }
section.ch.view > .wrap { width: 100%; }

/* card variants */
.pc.lt { border-color: var(--line); background: linear-gradient(170deg, #FFFFFF, #F9F6EF); box-shadow: var(--shadow-soft); }
.pc.lt:hover { border-color: rgba(194,44,59,0.45); }
.pc.lt svg { stroke: var(--gold); }
.pc.lt h3 { color: var(--ink); }
.pc.lt p { color: var(--muted); }
.pc .tagline { font-size: 0.9rem; color: var(--muted); margin: 2px 0 10px; line-height: 1.5; }
.pc .no { font-size: 0.7rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--gold); margin-bottom: 14px; font-family: var(--sans); font-weight: 600; }
.pc ul { border-top: 1px solid var(--line); margin-top: 4px; }
.pc ul li { padding: 8px 0; border-bottom: 1px solid var(--line); font-size: 0.9rem; color: var(--ink-soft); }
.pc:not(.lt) ul { border-top-color: var(--line-dark); }
.pc:not(.lt) ul li { color: rgba(247,242,234,0.76); border-bottom-color: var(--line-dark); }
.pc .more { display: inline-block; margin-top: 16px; color: var(--gold-deep); font-size: 0.7rem; letter-spacing: 0.2em; text-transform: uppercase; font-weight: 600; }
.pc .more::after { content: " →"; transition: margin-left 0.2s; }
.pc.sol-card:hover .more::after { margin-left: 5px; }
.pc.ecard .t { font-family: var(--sans); font-size: 0.95rem; line-height: 1.6; color: rgba(247,242,234,0.85); }
.pc.lt.ecard .t { color: var(--ink-soft); }
.pcards.grid2 { grid-template-columns: repeat(2, 1fr); }
.pcards.grid3 { grid-template-columns: repeat(3, 1fr); }
.pcards.grid4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1100px) { .pcards.grid2, .pcards.grid3, .pcards.grid4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .pcards.grid2, .pcards.grid3, .pcards.grid4 { grid-template-columns: 1fr; } }


.pcards.cmp .pc { padding: 20px 20px; }
.pcards.cmp .pc svg { width: 22px; height: 22px; margin-bottom: 12px; }
.pcards.cmp .pc h3 { margin-bottom: 6px; }
.pcards.cmp .pc p { font-size: 0.9rem; }
.pcards.cmp .pc .no { margin-bottom: 10px; }



/* insights single-view */
.pagehero.insview { min-height: 100vh; display: flex; align-items: center; padding: 128px 0 40px; border-bottom: 0; }
.pagehero.insview > .wrap { width: 100%; }
.pagehero.insview h1 { font-size: clamp(2.1rem, min(3.8vw, 7.5vh), 3.3rem); }
.pagehero.insview .lede { margin-top: 16px; }
.insview .pcards { margin-top: clamp(24px, 3.6vh, 38px); }
.inscards .pc { background: rgba(255,255,255,0.82); }
.pagehero.insview .note { margin-top: 26px; color: var(--muted); }
@media (min-width: 901px) and (max-height: 840px) {
  .pagehero.insview { padding: 110px 0 40px; }
  .pagehero.insview .lede { font-size: 1rem; }
  .inscards .pc { padding: 18px 18px; }
  .inscards .pc p { font-size: 0.88rem; }
  .inscards .pc h3 { font-size: 1.05rem; }
}


.pagehero.insview h1 { margin-top: 4px; }
.pagehero.insview .lede { max-width: 820px; }
.insview .pcards .pc ul li { font-size: 0.9rem; padding: 8px 0; line-height: 1.5; }
.insview .pcards.grid4 .pc ul li { font-size: 0.88rem; }

@media (min-width: 901px) and (max-height: 840px) {
  .insview .pcards .pc ul li { font-size: 0.86rem; padding: 6px 0; }
  .insview .pcards .pc .tagline { display: none; }
}



.light .timeline .spine { background: var(--line); }
.light .timeline .ph h3 { color: var(--ink); }
.light .timeline .ph p { color: var(--muted); }
.pc:not(.lt) .more { color: var(--gold-bright); }

/* inline practice links strip */
.plinks {
  display: flex; align-items: baseline; gap: clamp(22px, 3vw, 48px); flex-wrap: wrap;
  border-top: 1px solid var(--line);
  margin-top: clamp(22px, 3.5vh, 38px); padding-top: 16px;
}
.plinks .cap {
  font-family: var(--sans); font-size: 0.7rem; font-weight: 600;
  letter-spacing: 0.3em; text-transform: uppercase; color: var(--gold);
  margin-right: auto; align-self: center;
}
.plinks a { font-family: var(--serif); font-size: 1.15rem; font-weight: 500; color: var(--ink-soft); transition: color 0.2s; }
.plinks a::after { content: " →"; color: var(--gold); transition: margin-left 0.2s; }
.plinks a:hover { color: var(--ink); }
.plinks a:hover::after { margin-left: 5px; }

.pc h3 { font-weight: 700; }

/* partner cards */
.pcards { display: grid; grid-template-columns: repeat(5, 1fr); gap: clamp(16px, 1.8vw, 26px); }
@media (max-width: 1100px) { .pcards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .pcards { grid-template-columns: 1fr; } }
.pc {
  border: 1px solid var(--line-dark);
  background: linear-gradient(165deg, rgba(247,242,234,0.045), rgba(247,242,234,0.005) 60%);
  padding: 28px 24px;
  position: relative;
  transition: border-color 0.3s, transform 0.3s;
}
.pc::before { content: ""; position: absolute; top: -1px; left: -1px; width: 44px; height: 2px; background: linear-gradient(90deg, var(--gold-bright), var(--gold-deep)); }
.pc:hover { border-color: rgba(222,75,87,0.5); transform: translateY(-4px); }
.pc svg { width: 26px; height: 26px; stroke: var(--gold-bright); fill: none; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; margin-bottom: 18px; }
.pc h3 { color: var(--ivory); font-size: 1.15rem; line-height: 1.25; margin-bottom: 8px; }
.pc p { font-size: 0.9rem; color: rgba(247,242,234,0.58); line-height: 1.55; }

/* value columns */
.valcols { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(28px, 4vw, 64px); }
@media (max-width: 900px) { .valcols { grid-template-columns: 1fr; } }
.valcol { border-top: 1px solid var(--line); padding-top: 28px; position: relative; }
.valcol::before { content: ""; position: absolute; top: -1px; left: 0; width: 56px; height: 2px; background: linear-gradient(90deg, var(--gold-bright), var(--gold-deep)); }
.valcol .rn { font-family: var(--serif); font-style: italic; font-size: 1.5rem; color: var(--gold); }
.valcol h3 { font-size: 1.6rem; margin: 10px 0 18px; }
.valcol li { padding: 10px 0; border-top: 1px solid var(--line); color: var(--ink-soft); font-size: 0.98rem; }
.valcol li:first-of-type { border-top: 0; }

/* sticky editorial (why) */
.sticky-split { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(40px, 6vw, 110px); align-items: start; }
.sticky-split .stick { position: sticky; top: 140px; }
@media (max-width: 900px) { .sticky-split { grid-template-columns: 1fr; } .sticky-split .stick { position: static; } }
.whylist .item { padding: clamp(30px, 4vw, 44px) 0; border-top: 1px solid var(--line); display: grid; grid-template-columns: 72px 1fr; gap: 24px; }
.whylist .item:last-child { border-bottom: 1px solid var(--line); }
.whylist .rn { font-family: var(--serif); font-style: italic; font-size: 1.6rem; color: var(--gold); line-height: 1.1; }
.whylist h3 { font-size: clamp(1.4rem, 2.1vw, 1.8rem); margin-bottom: 10px; }
.whylist p { max-width: 560px; }

/* journey — horizontal scroll */
.hscroll {
  display: flex; gap: 0; overflow-x: auto; scroll-snap-type: x mandatory;
  border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark);
  scrollbar-width: none;
}
.hscroll::-webkit-scrollbar { display: none; }
.hpanel {
  flex: 0 0 clamp(280px, 26vw, 380px);
  scroll-snap-align: start;
  border-right: 1px solid var(--line-dark);
  padding: clamp(36px, 4vw, 56px) clamp(26px, 2.6vw, 40px);
  position: relative;
  transition: background 0.3s;
}
.hpanel:hover { background: rgba(247,242,234,0.025); }
.hpanel .big {
  font-family: var(--serif); font-size: clamp(3.4rem, 5vw, 5rem); line-height: 1;
  color: transparent; -webkit-text-stroke: 1px rgba(222,75,87,0.5);
}
.hpanel .ic { margin: 26px 0 18px; }
.hpanel .ic svg { width: 28px; height: 28px; stroke: var(--gold); fill: none; stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; }
.hpanel h3 { color: var(--ivory); font-size: 1.5rem; letter-spacing: 0.05em; margin-bottom: 10px; }
.hpanel p { font-size: 0.93rem; color: rgba(247,242,234,0.68); }
.hint { display: flex; align-items: center; gap: 12px; margin-top: 22px; color: rgba(247,242,234,0.4); font-size: 0.66rem; letter-spacing: 0.26em; text-transform: uppercase; }
.hint .ln { width: 60px; height: 1px; background: rgba(247,242,234,0.25); }

/* framework timeline */
.timeline { position: relative; margin-top: 20px; }
.timeline .spine { position: absolute; top: 7px; left: 0; right: 0; height: 1px; background: var(--line-dark); }
.timeline .cols { display: grid; grid-template-columns: repeat(5, 1fr); gap: clamp(18px, 2.4vw, 40px); }
.timeline .ph { position: relative; padding-top: 34px; }
.timeline .ph::before {
  content: ""; position: absolute; top: 0; left: 0; width: 14px; height: 14px;
  background: linear-gradient(135deg, var(--gold-bright), var(--gold-deep));
  transform: rotate(45deg);
}
.timeline .ph .pn { font-family: var(--sans); font-size: 0.7rem; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: var(--gold); }
.timeline .ph h3 { color: var(--ivory); font-size: 1.45rem; margin: 6px 0 8px; }
.timeline .ph p { font-size: 0.9rem; color: rgba(247,242,234,0.66); text-align: left; hyphens: none; }
@media (max-width: 900px) {
  .timeline .spine { top: 0; bottom: 0; left: 6px; right: auto; width: 1px; height: auto; }
  .timeline .cols { grid-template-columns: 1fr; gap: 34px; }
  .timeline .ph { padding: 0 0 0 36px; }
  .timeline .ph::before { top: 6px; }
}

/* solutions — expanding rows */
.solrows { border-top: 1px solid var(--line); }
.solrows a.row {
  display: grid; grid-template-columns: 90px 1fr 1.1fr 60px;
  gap: clamp(18px, 3vw, 44px); align-items: center;
  padding: clamp(34px, 4.6vw, 54px) 0;
  border-bottom: 1px solid var(--line);
  position: relative; transition: all 0.35s ease;
}
.solrows a.row::before {
  content: ""; position: absolute; inset: 0 -100vw; background: var(--navy-900);
  transform: scaleY(0); transform-origin: bottom; transition: transform 0.38s cubic-bezier(.6,.1,.2,1);
  z-index: 0;
}
.solrows a.row:hover::before { transform: none; }
.solrows a.row > * { position: relative; z-index: 1; }
.solrows .ix { font-family: var(--serif); font-style: italic; font-size: 1.15rem; color: var(--gold); }
.solrows h3 { font-size: clamp(1.8rem, 3.4vw, 2.8rem); font-weight: 500; transition: color 0.3s; }
.solrows .list { font-size: 0.92rem; color: var(--muted); line-height: 1.9; transition: color 0.3s; }
.solrows .arr { font-size: 1.6rem; color: var(--gold); transition: transform 0.3s; justify-self: end; }
.solrows a.row:hover h3 { color: var(--ivory); }
.solrows a.row:hover .list { color: rgba(247,242,234,0.66); }
.solrows a.row:hover .ix { color: var(--gold-bright); }
.solrows a.row:hover .arr { transform: translateX(10px); color: var(--gold-bright); }
@media (max-width: 900px) { .solrows a.row { grid-template-columns: 50px 1fr 40px; } .solrows .list { display: none; } }

/* engagements */
.cases { border-top: 1px solid var(--line-dark); counter-reset: cs; }
.cases li {
  display: grid; grid-template-columns: 90px 1fr; gap: clamp(18px, 3vw, 44px);
  padding: clamp(26px, 3.4vw, 38px) 0; border-bottom: 1px solid var(--line-dark);
}
.cases .ix { font-family: var(--sans); font-size: 0.7rem; letter-spacing: 0.16em; color: var(--gold); padding-top: 10px; }
.cases .t { font-family: var(--serif); font-size: clamp(1.3rem, 2vw, 1.7rem); color: rgba(247,242,234,0.9); font-weight: 500; line-height: 1.45; }
.note { margin-top: 30px; font-size: 0.9rem; color: rgba(247,242,234,0.5); max-width: 720px; border-left: 2px solid var(--gold-dim); padding-left: 18px; font-style: italic; }
.light .note { color: var(--muted); }

/* leadership */
.leadname { font-size: clamp(3rem, 6.6vw, 6rem); line-height: 1; color: var(--ivory); }
.leadname em { font-style: italic; background: linear-gradient(115deg, #F0868D, #DE4B57); -webkit-background-clip: text; background-clip: text; color: transparent; }
.leadgrid { display: grid; grid-template-columns: 1fr 380px; gap: clamp(40px, 6vw, 100px); align-items: start; margin-top: clamp(40px, 5vw, 64px); }
@media (max-width: 980px) { .leadgrid { grid-template-columns: 1fr; } }

.biocols { columns: 2; column-gap: 44px; }
@media (max-width: 700px) { .biocols { columns: 1; } }
.biocols p { margin-bottom: 16px; break-inside: avoid; }

.leadstat { display: flex; gap: clamp(28px, 4vw, 60px); flex-wrap: wrap; margin: 40px 0 36px; }
.leadstat .s .n { font-family: var(--serif); font-size: 2.4rem; background: linear-gradient(115deg, #F0868D, #DE4B57); -webkit-background-clip: text; background-clip: text; color: transparent; line-height: 1.1; }
.leadstat .s .l { font-size: 0.68rem; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(247,242,234,0.5); margin-top: 6px; max-width: 150px; line-height: 1.5; }

.expertise { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line-dark); }
@media (max-width: 700px) { .expertise { grid-template-columns: 1fr; } }
.expertise span { padding: 13px 0; border-bottom: 1px solid var(--line-dark); font-size: 0.95rem; color: rgba(247,242,234,0.8); padding-right: 20px; }

.portraitframe { position: relative; padding: 0 20px 20px 0; }
.portraitframe::after { content: ""; position: absolute; top: 20px; left: 20px; right: 0; bottom: 0; border: 1px solid rgba(194,44,59,0.4); pointer-events: none; }
.portrait {
  aspect-ratio: 4 / 4.9;
  background:
    radial-gradient(420px 320px at 32% 18%, rgba(194,44,59,0.12), transparent 60%),
    linear-gradient(160deg, #232025, var(--navy-950) 75%);
  border: 1px solid rgba(247,242,234,0.14);
  display: flex; align-items: center; justify-content: center;
  position: relative; z-index: 1; overflow: hidden;
  box-shadow: 0 30px 80px -30px rgba(10,2,3,0.65);
}
.portrait svg.wm { position: absolute; width: 135%; opacity: 0.09; }
.portrait img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 22%; filter: grayscale(1) contrast(1.05); }
.portrait .mono { font-family: var(--serif); font-size: 4.6rem; color: var(--gold-bright); }
.portrait .cap { position: absolute; bottom: 20px; left: 0; right: 0; text-align: center; font-size: 0.64rem; letter-spacing: 0.26em; text-transform: uppercase; color: rgba(247,242,234,0.4); }

.edu-line { margin-top: 30px; font-family: var(--serif); font-size: 1.02rem; color: rgba(247,242,234,0.75); line-height: 1.9; }
.edu-line b { color: var(--ivory); font-weight: 480; }
.edu-line .sep { color: var(--gold); padding: 0 10px; }

/* ecosystem columns */
.ecocols { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(24px, 3vw, 48px); }
@media (max-width: 900px) { .ecocols { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .ecocols { grid-template-columns: 1fr; } }
.ecocol { border-top: 1px solid var(--line); padding-top: 24px; position: relative; }
.ecocol::before { content: ""; position: absolute; top: -1px; left: 0; width: 44px; height: 2px; background: linear-gradient(90deg, var(--gold-bright), var(--gold-deep)); }
.ecocol svg { width: 26px; height: 26px; stroke: var(--gold); fill: none; stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; margin-bottom: 16px; }
.ecocol h3 { font-size: 1.35rem; margin-bottom: 8px; }
.ecocol p { font-size: 0.92rem; }

/* insights statement */
.instate { text-align: left; }
.instate .big {
  font-family: var(--serif); font-size: clamp(1.8rem, 3.6vw, 3rem); line-height: 1.3; font-weight: 500;
  color: var(--ink); max-width: 1000px;
}
.instate .big em { font-style: italic; color: #A32433; }
.arrowlink {
  display: inline-flex; align-items: center; gap: 14px; margin-top: 34px;
  font-size: 0.7rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: #A32433;
}
.arrowlink .ln { width: 54px; height: 1px; background: #A32433; transition: width 0.3s; }
.arrowlink:hover .ln { width: 84px; }

/* values strip */
.valstrip { display: grid; grid-template-columns: repeat(5, 1fr); gap: clamp(20px, 3vw, 44px); }
@media (max-width: 900px) { .valstrip { grid-template-columns: repeat(2, 1fr); } }
.vitem svg { width: 22px; height: 22px; stroke: var(--gold); fill: none; stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; margin-bottom: 12px; }
.vitem h4 { font-family: var(--serif); font-weight: 700; font-size: 1.15rem; color: var(--ivory); margin-bottom: 5px; }
.vitem p { font-size: 0.9rem; color: rgba(247,242,234,0.55); line-height: 1.55; text-align: left; hyphens: none; }

/* contact */
.contactgrid { display: grid; grid-template-columns: 5fr 6fr; gap: clamp(40px, 7vw, 120px); }
@media (max-width: 900px) { .contactgrid { grid-template-columns: 1fr; } }
.contact form { display: grid; gap: 34px; }
.contact .frow { display: grid; grid-template-columns: 1fr 1fr; gap: 34px; }
@media (max-width: 700px) { .contact .frow { grid-template-columns: 1fr; } }
.contact .field { position: relative; }
.contact label { display: block; font-size: 0.7rem; letter-spacing: 0.24em; text-transform: uppercase; color: rgba(247,242,234,0.5); margin-bottom: 10px; }
.contact input, .contact textarea, .contact select {
  width: 100%; background: transparent; border: 0; border-bottom: 1px solid rgba(247,242,234,0.22);
  padding: 8px 0 14px; color: var(--ivory); font-family: var(--sans); font-size: 0.95rem;
  transition: border-color 0.25s; border-radius: 0;
}
.contact select { appearance: none; }
.contact select option { background: var(--navy-900); font-family: var(--sans); font-size: 0.95rem; }
.contact input:focus, .contact textarea:focus, .contact select:focus { outline: none; border-color: var(--gold-bright); }
.contact ::placeholder { color: rgba(247,242,234,0.28); }
.contact .side a { display: block; margin-bottom: 10px; font-size: 0.98rem; }
.contact .side a:hover { color: var(--gold-bright); }

/* footer */
footer.site { background: var(--navy-950); position: relative; overflow: hidden; }
footer.site .statement {
  padding: clamp(70px, 9vw, 110px) 0 clamp(50px, 6vw, 70px);
  border-bottom: 1px solid rgba(247,242,234,0.08);
  font-family: var(--serif); font-size: clamp(1.4rem, 2.6vw, 2.1rem); line-height: 1.5;
  color: var(--ivory); max-width: 1000px;
}
footer.site .statement b { color: var(--gold-bright); font-weight: 600; }
footer.site .cols {
  display: grid; grid-template-columns: 2fr 1.7fr 1.1fr 1.1fr; gap: 48px;
  padding: clamp(50px, 6vw, 70px) 0 0;
  color: rgba(247,242,234,0.6);
}
@media (max-width: 900px) { footer.site .cols { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { footer.site .cols { grid-template-columns: 1fr; } }
footer.site .fbrand { display: flex; align-items: center; gap: 13px; margin-bottom: 20px; }
footer.site .fbrand svg { width: 40px; height: 40px; }
footer.site p { font-size: 0.95rem; max-width: 380px; line-height: 1.7; }
footer.site .h { font-size: 0.7rem; letter-spacing: 0.28em; text-transform: uppercase; color: var(--gold); margin-bottom: 18px; }
footer.site li { padding: 6px 0; font-size: 0.9rem; }
footer.site .fsections ul { columns: 2; column-gap: 30px; }
footer.site a:hover { color: var(--gold-bright); }
footer.site .legal {
  margin-top: 56px; padding: 26px 0 40px; border-top: 1px solid rgba(247,242,234,0.08);
  display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap;
  font-size: 0.8rem; color: rgba(247,242,234,0.4);
}

/* ---------- interior pages ---------- */

.pagehero { padding: 190px 0 90px; position: relative; overflow: hidden;
  background: linear-gradient(180deg, #FCFAF4, var(--ivory)); color: var(--ink);
  border-bottom: 1px solid var(--line); }
.pagehero .crumb { font-size: 0.7rem; letter-spacing: 0.26em; text-transform: uppercase; color: rgba(26,25,27,0.5); margin-bottom: 34px; }
.pagehero .crumb a:hover { color: var(--gold-deep); }
.pagehero .crumb span { color: var(--gold); }
.pagehero h1 { font-size: clamp(2.8rem, 6.4vw, 5.4rem); line-height: 1.02; color: var(--ink); max-width: 900px; }
.pagehero .lede { max-width: 720px; margin-top: 28px; color: var(--ink-soft); }
.pagehero .ghostword { right: -30px; top: 30px; }
.pagehero .mapbg { position: absolute; right: -6%; bottom: -12%; width: 62%; opacity: 0.35; color: rgba(194,44,59,0.4); pointer-events: none; }

.svc {
  display: grid; grid-template-columns: 100px 1fr 1fr; gap: clamp(20px, 3.4vw, 54px);
  padding: clamp(40px, 5vw, 60px) 0; border-top: 1px solid var(--line);
}
.svc:last-of-type { border-bottom: 1px solid var(--line); }
@media (max-width: 900px) { .svc { grid-template-columns: 1fr; gap: 14px; } }
.svc .no { font-family: var(--serif); font-style: italic; font-size: 1.5rem; color: var(--gold); }
.svc h3 { font-size: clamp(1.6rem, 2.6vw, 2.2rem); margin-bottom: 12px; }
.svc .tag { font-family: var(--serif); font-style: italic; font-size: 1.05rem; color: var(--ink-soft); }
.svc ul { border-top: 1px solid var(--line); }
.svc li { color: var(--ink-soft); padding: 11px 0; border-bottom: 1px solid var(--line); font-size: 0.96rem; }

.crosslinks { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
@media (max-width: 800px) { .crosslinks { grid-template-columns: 1fr; } }
.crosslinks a.cl {
  padding: 36px 30px; display: block; border-right: 1px solid var(--line-dark);
  transition: background 0.25s;
}
.crosslinks a.cl:first-child { border-left: 1px solid var(--line-dark); }
.crosslinks a.cl:hover { background: rgba(247,242,234,0.03); }
.crosslinks .t { color: var(--ivory); font-family: var(--serif); font-size: 1.3rem; }
.crosslinks .s { color: var(--gold); font-size: 0.64rem; letter-spacing: 0.24em; text-transform: uppercase; margin-top: 10px; }

/* reveal */
.rv { opacity: 0; transform: translateY(26px); transition: opacity 0.85s cubic-bezier(.2,.6,.2,1), transform 0.85s cubic-bezier(.2,.6,.2,1); }
.rv.in { opacity: 1; transform: none; }
.rv.d1 { transition-delay: 0.12s; } .rv.d2 { transition-delay: 0.24s; } .rv.d3 { transition-delay: 0.36s; }
@media (prefers-reduced-motion: reduce) {
  .rv { opacity: 1; transform: none; transition: none; }
  .arc { animation: none; stroke-dashoffset: 0; }
  .ticker .track { animation: none; }
}

/* short-height landing compression — keeps ALL content visible; MUST stay at end of file to win the cascade */
@media (min-width: 901px) and (max-height: 920px) {
  .valband .vrow { padding: 12px 0 14px; }
  .vitem svg { width: 19px; height: 19px; margin-bottom: 6px; }
  .vitem h4 { font-size: 1.05rem; margin-bottom: 2px; }
  .vitem p { font-size: 0.85rem; line-height: 1.42; }
  .instat .row { padding: 13px 0; }
  .instat .l { margin-top: 4px; }
  .instat .n { font-size: clamp(1.7rem, 2.4vw, 2.3rem); }
  .hero .headwrap.hw-top { padding-top: 0.5vh; padding-bottom: 1vh; }
  .hero .ticker.herotape { margin-bottom: 0.8vh; }
  .headrow { grid-template-columns: minmax(0, 1fr) min(42%, clamp(260px, 34.6vh, 356px)); }
}

/* ============ mobile refinements (2026-08-19 audit) — keep at end of file ============ */



/* 2a. mobile menu: comfortable tap targets */
@media (max-width: 1280px) {
  nav.primary { gap: 4px; padding: 18px 36px 26px; }
  nav.primary a { padding: 13px 0; width: 100%; }
  nav.primary a.cta { width: auto; padding: 15px 30px; margin-top: 12px; }
}

@media (max-width: 700px) {
  /* 1. no justified text on phones — left rag everywhere */
  p, .pc ul li, .lede { text-align: left; hyphens: none; }

  /* 3. compact header */
  header.site .bar { height: 64px; }
  .logotype { font-size: 1.3rem; }
  nav.primary { top: 64px; }
  section[id], .hero[id] { scroll-margin-top: 66px; }
  .hero { padding-top: 84px; }

  /* statement block: crimson-rule anchor for the trust statement (Alex chose B) */
  .headrow .herolede { border-left: 2px solid var(--gold); padding-left: 18px; font-size: 1.02rem; color: var(--ink-soft); max-width: 330px; }
  .headrow { gap: 30px; }

  /* 2b. footer links: larger tap area */
  footer.site li { padding: 0; }
  footer.site li a { display: inline-block; padding: 11px 0; }
  footer.site .fsections ul { column-gap: 40px; }
}

/* mobile map: width-driven sizing (Safari failed to render via fit-content + height-derived width) */
@media (max-width: 900px) {
  .headrow { display: block; }
  .headrow .fmap { width: 100%; display: block; margin-top: 26px; }
  .fmap .mapbox { width: min(100%, 460px); height: auto; margin: 0 auto 0 0; }
}
