/* ==========================================================================
   FINMENTOR — EDITORIAL PRIMITIVES
   The page-by-page system. Everything here is opt-in: it applies to pages whose
   <body> carries .fx-page (a page that has been individually designed), and to
   elements that use an fx- class. Pages not yet designed are unaffected.

   Mechanics translated from the reference study (see
   YELLOWTREE_TO_FINMENTOR_PATTERN_MAP.md): depth comes from sticky positioning
   and stacking order, not from scroll listeners. Motion is time-based, runs once
   on entry, and exists only under html.m-js (set pre-paint when motion is
   allowed). Reduced motion and no-JS get the complete page on first paint.

   Type roles: FINMENTOR_TYPE_SCALE.md.
   ========================================================================== */

:root {
  /* --- type roles (390 → 1440, fluid) ----------------------------------- */
  --t-display-xl: clamp(2.5rem, 1.6643rem + 3.4286vw, 4.75rem);
  --t-display-l:  clamp(1.9375rem, 1.4036rem + 2.1905vw, 3.375rem);
  --t-h1:         clamp(2.125rem, 1.5214rem + 2.4762vw, 3.75rem);
  --t-h2:         clamp(1.625rem, 1.3rem + 1.3333vw, 2.5rem);
  --t-h3:         clamp(1.1875rem, 1.0714rem + 0.4762vw, 1.5rem);
  --t-lead:       clamp(1.1875rem, 1.0946rem + 0.381vw, 1.4375rem);
  --t-body-l:     clamp(1.0938rem, 1.0589rem + 0.1429vw, 1.1875rem);
  --t-body:       clamp(1rem, 0.9768rem + 0.0952vw, 1.0625rem);
  --t-small:      0.90625rem;
  --t-eyebrow:    0.78125rem;
  --t-meta:       0.84375rem;
  --t-index:      0.8125rem;
  --t-figure:     clamp(2.5rem, 1.9429rem + 2.2857vw, 4rem);

  /* --- surfaces ----------------------------------------------------------- */
  --fx-navy:   var(--fm-navy-900);   /* = --navy-900, the canonical deep navy */
  --fx-navy-2: var(--fm-navy-800);   /* = --navy-800, inset field on navy */
  --fx-navy-3: var(--fm-navy-700);   /* = --navy-700 */
  --fx-ivory:  var(--fm-ivory);
  --fx-paper:  var(--fm-paper);
  --fx-stone:  #E7E1D5;
  --fx-sand:   #EDE7DB;
  --fx-ink:    var(--fm-navy-900);
  --fx-ink-2:  var(--fm-neutral-700);
  --fx-ink-3:  var(--fm-neutral-600);
  --fx-gold:   var(--fm-gold-text);   /* gold type on light: ≥ 4.5:1 on ivory, paper and stone */
  --fx-gold-l: var(--fm-gold);   /* gold type on navy */
  --fx-gold-f: var(--fm-gold);   /* the gold field / rule */
  --fx-rule:   rgba(11, 22, 39, 0.12);
  --fx-rule-d: rgba(255, 255, 255, 0.12);

  /* --- geometry --------------------------------------------------------------- */
  --fx-r:      clamp(28px, 1.25rem + 1.9vw, 52px);   /* sheet top radius = overlap */
  --fx-pr:     clamp(22px, 1rem + 1.4vw, 40px);      /* large panel radius */
  --fx-cr:     clamp(14px, 0.75rem + 0.5vw, 20px);   /* small card radius */
  --fx-gutter: clamp(16px, 0.5rem + 3.2vw, 56px);
  --fx-wide:   1320px;                               /* architectural modules */
  --fx-text:   1180px;                               /* editorial container */
  --fx-read:   68ch;                                 /* reading measure */
  --fx-space:  clamp(72px, 2.5rem + 6.4vw, 160px);   /* between scenes */
  --fx-space-s: clamp(40px, 1.5rem + 3.4vw, 88px);   /* inside a scene */
  --fx-ease:   cubic-bezier(0.2, 0.7, 0.12, 1);
  --fx-head:   var(--header-h, 76px);
}

/* ==========================================================================
   0. PAGE BASE — the light editorial page under the dark institutional header
   ========================================================================== */
body.fx-page { background: var(--fx-navy); }
.fx-page main { background: var(--fx-ivory); color: var(--fx-ink); display: flow-root; }
:where(.fx-page main) :where(p, li) { font-size: var(--t-body); line-height: 1.65; }   /* zero specificity: never beats a type role */
.fx-container { width: 100%; max-width: calc(var(--fx-text) + 2 * var(--fx-gutter)); margin-inline: auto; padding-inline: var(--fx-gutter); }
.fx-container--wide { max-width: calc(var(--fx-wide) + 2 * var(--fx-gutter)); }
.fx-container--read { max-width: calc(var(--fx-read) + 2 * var(--fx-gutter)); }

/* ==========================================================================
   1. TYPE ROLES
   ========================================================================== */
.fx-eyebrow {
  display: inline-flex; align-items: center; gap: 12px;
  margin: 0 0 22px;
  font-family: var(--font-sans); font-size: var(--t-eyebrow); font-weight: 700;
  line-height: 1.3; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--fx-gold);
}
.fx-eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; opacity: 0.7; }
.fx-eyebrow--plain::before { display: none; }

.fx-statement {
  margin: 0;
  font-family: var(--font-sans); font-size: var(--t-display-l); font-weight: 300;
  line-height: 1.08; letter-spacing: -0.03em; color: inherit; max-width: 20ch;
  text-wrap: balance;
}
.fx-statement--xl { font-size: var(--t-display-xl); line-height: 1.02; letter-spacing: -0.035em; max-width: 15ch; }
.fx-statement--wide { max-width: 26ch; }
.fx-statement strong, .fx-statement b { font-weight: 700; }
.fx-statement:not(.fx-statement--xl) strong, .fx-statement:not(.fx-statement--xl) b { font-weight: 700; }
.fx-gold { font-style: normal; color: var(--fx-gold); }
.fx-on-dark .fx-gold, .fx-dark .fx-gold { color: var(--fx-gold-l); }
@media (max-width: 860px) { .fx-br { display: none; } }

.fx-h1 { margin: 0; font-size: var(--t-h1); font-weight: 700; line-height: 1.06; letter-spacing: -0.03em; max-width: 20ch; text-wrap: balance; }
.fx-h2 { margin: 0; font-size: var(--t-h2); font-weight: 700; line-height: 1.14; letter-spacing: -0.022em; max-width: 26ch; text-wrap: balance; }
.fx-h3 { margin: 0; font-size: var(--t-h3); font-weight: 700; line-height: 1.3; letter-spacing: -0.01em; max-width: 34ch; }
.fx-lead { margin: 0; font-size: var(--t-lead); font-weight: 400; line-height: 1.5; letter-spacing: -0.005em; max-width: 58ch; color: var(--fx-ink-2); text-wrap: pretty; }
.fx-meta { font-size: var(--t-meta); font-weight: 500; letter-spacing: 0.01em; color: var(--fx-ink-3); }
.fx-index { font-family: var(--font-mono); font-size: var(--t-index); font-weight: 500; letter-spacing: 0.08em; color: var(--fx-gold); font-variant-numeric: tabular-nums; }
.fx-figure { font-size: var(--t-figure); font-weight: 300; line-height: 1; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }

/* dark surfaces carry their own ink: every navy primitive is a dark context */
:is(.fx-dark, .fx-on-dark, .fx-stage:not(.fx-stage--light), .fx-sheet--navy, .fx-band--navy, .fx-panel--navy, .fx-panel--navy-2, .fx-card--navy, .fx-split__text--navy, .fx-split__figure, .fx-cta, .fx-callout--risk, .fx-hold) {
  --fx-ctx-ink: #F3F5F8; --fx-ctx-ink-2: var(--fm-neutral-300); --fx-ctx-ink-3: var(--fm-neutral-400);
  color: var(--fx-ctx-ink);
}
:is(.fx-dark, .fx-on-dark, .fx-stage:not(.fx-stage--light), .fx-sheet--navy, .fx-band--navy, .fx-panel--navy, .fx-panel--navy-2, .fx-card--navy, .fx-split__text--navy, .fx-split__figure, .fx-cta, .fx-callout--risk, .fx-hold) :is(.fx-lead, p, li) { color: var(--fx-ctx-ink-2); }
:is(.fx-dark, .fx-on-dark, .fx-stage:not(.fx-stage--light), .fx-sheet--navy, .fx-band--navy, .fx-panel--navy, .fx-panel--navy-2, .fx-card--navy, .fx-split__text--navy, .fx-split__figure, .fx-cta, .fx-callout--risk, .fx-hold) :is(.fx-eyebrow, .fx-index, .fx-gold, .fx-link) { color: var(--fx-gold-l); }
:is(.fx-dark, .fx-on-dark, .fx-stage:not(.fx-stage--light), .fx-sheet--navy, .fx-band--navy, .fx-panel--navy, .fx-panel--navy-2, .fx-card--navy, .fx-split__text--navy, .fx-split__figure, .fx-cta, .fx-callout--risk, .fx-hold) .fx-meta { color: var(--fx-ctx-ink-3); }
:is(.fx-dark, .fx-on-dark, .fx-stage:not(.fx-stage--light), .fx-sheet--navy, .fx-band--navy, .fx-panel--navy, .fx-panel--navy-2, .fx-card--navy, .fx-split__text--navy, .fx-split__figure, .fx-cta, .fx-callout--risk, .fx-hold) :is(h1, h2, h3, h4, strong, .fx-h2, .fx-h3, .fx-statement) { color: var(--fx-ctx-ink); }
:is(.fx-dark, .fx-on-dark, .fx-stage:not(.fx-stage--light), .fx-sheet--navy, .fx-band--navy, .fx-panel--navy, .fx-panel--navy-2, .fx-card--navy, .fx-split__text--navy, .fx-split__figure, .fx-cta, .fx-callout--risk, .fx-hold) .fx-statement .fx-gold { color: var(--fx-gold-l); }

/* ==========================================================================
   2. SCENE · STAGE · SHEET  (P1 — the sheet closes the photo)
   A .fx-scene holds one stage and the sheet that rises over it. The stage is
   sticky inside the scene only, so the pin never outlives its sheet.
   ========================================================================== */
.fx-scene { position: relative; isolation: isolate; }
.fx-stage {
  position: sticky; top: 0; z-index: 0;
  min-height: clamp(560px, 88svh, 920px);
  display: flex; align-items: flex-end;
  overflow: hidden; background: var(--fx-navy); color: #F3F5F8;
}
.fx-stage__media { position: absolute; inset: 0; z-index: -2; }
.fx-stage__media img, .fx-stage__media video { width: 100%; height: 100%; object-fit: cover; display: block; }
.fx-stage__scrim { position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, rgba(8,17,31,0.55) 0%, rgba(8,17,31,0.1) 30%, rgba(8,17,31,0.25) 62%, rgba(8,17,31,0.82) 100%); }
.fx-stage__content { width: 100%; padding-top: calc(var(--fx-head) + clamp(48px, 8vh, 110px)); padding-bottom: calc(var(--fx-r) + clamp(56px, 9vh, 120px)); }
.fx-stage__content .fx-lead { color: #D5DCE6; margin-top: 28px; }

/* thesis stage: no photograph — a navy field with a quiet architectural drawing */
.fx-stage--thesis {
  background:
    radial-gradient(120% 90% at 85% 0%, rgba(31, 56, 100, 0.55) 0%, rgba(8, 17, 31, 0) 60%),
    linear-gradient(180deg, #0B1627 0%, #08111F 100%);
}
.fx-stage--thesis::before {
  /* a restrained grid of hairlines: architecture without a stock photo */
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image:
    linear-gradient(to right, rgba(213, 155, 43, 0.10) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255, 255, 255, 0.045) 1px, transparent 1px);
  background-size: calc(100% / 6) 100%, 100% 25%;
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 35%, #000 70%, transparent 100%);
  mask-image: linear-gradient(180deg, transparent 0%, #000 35%, #000 70%, transparent 100%);
}
.fx-stage--compact { min-height: clamp(460px, 64svh, 700px); }
/* a stage taller than the viewport would hide its own lower part while pinned:
   main.js marks it and it scrolls normally (the sheet still overlaps it) */
.fx-stage.is-tall { position: relative; }
/* light stage: ivory field, navy type (light editorial covers) */
.fx-stage--light { background: var(--fx-stone); color: var(--fx-ink); }
.fx-stage--light .fx-stage__content .fx-lead { color: var(--fx-ink-2); }
.fx-stage--light .fx-eyebrow { color: var(--fx-gold); }

.fx-sheet {
  position: relative; z-index: 1;
  margin-top: calc(var(--fx-r) * -1);
  border-radius: var(--fx-r) var(--fx-r) 0 0;
  background: var(--fx-ivory);
  padding-block: calc(var(--fx-r) + var(--fx-space-s)) var(--fx-space);
}
.fx-sheet--paper { background: var(--fx-paper); }
.fx-sheet--stone { background: var(--fx-stone); }
.fx-sheet--navy { background: var(--fx-navy); color: #F3F5F8; }
.fx-sheet--tight { padding-bottom: var(--fx-space-s); }
/* a sheet whose bottom corners lift off a photo hold that follows */
.fx-sheet--lift { border-radius: var(--fx-r); margin-bottom: calc(var(--fx-r) * -1); padding-bottom: calc(var(--fx-r) + var(--fx-space-s)); z-index: 2; }
.fx-sheet--lift:first-child { border-radius: 0 0 var(--fx-r) var(--fx-r); margin-top: 0; }
/* ordinary scene after the sheet: stays in flow, painted in order */
.fx-band { position: relative; padding-block: var(--fx-space); }
.fx-band--paper { background: var(--fx-paper); }
.fx-band--stone { background: var(--fx-stone); }
.fx-band--navy { background: var(--fx-navy); color: #F3F5F8; }
.fx-band--tight { padding-block: var(--fx-space-s); }

/* ==========================================================================
   3. PHOTO HOLD (P3) — the photograph holds while the page passes over it
   ========================================================================== */
.fx-hold { position: relative; z-index: 0; height: calc(100svh + 36svh); background: var(--fx-navy); }
.fx-hold__media { position: sticky; top: 0; height: 100svh; overflow: hidden; display: grid; place-items: center; }
.fx-hold__media > picture, .fx-hold__media > img { position: absolute; inset: 0; }
.fx-hold__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fx-hold__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,17,31,0.35), rgba(8,17,31,0.55)); }
.fx-hold__statement { position: relative; z-index: 1; text-align: center; color: #F3F5F8; padding-inline: var(--fx-gutter); max-width: 980px; }
.fx-hold__statement .fx-statement { margin-inline: auto; }
.fx-hold + .fx-sheet { margin-top: calc(var(--fx-r) * -1 - 36svh); }

/* ==========================================================================
   4. PANELS (P5), FIELDS (P4), SPLITS (P6), MOSAIC (P10)
   ========================================================================== */
.fx-panel { position: relative; border-radius: var(--fx-pr); padding: clamp(28px, 1rem + 2.6vw, 64px); background: var(--fx-paper); color: var(--fx-ink); }
.fx-panel--navy { background: var(--fx-navy); color: #F3F5F8; }
.fx-panel--navy-2 { background: var(--fx-navy-2); color: #F3F5F8; }
.fx-panel--stone { background: var(--fx-stone); }
.fx-panel--sand { background: var(--fx-sand); }
.fx-panel--gold { background: var(--fx-gold-f); color: var(--fx-ink); }
.fx-panel--gold .fx-eyebrow, .fx-panel--gold .fx-index { color: var(--fx-ink); }
.fx-panel--gold p, .fx-panel--gold li { color: var(--fm-navy-900); }
.fx-panel--line { background: transparent; box-shadow: inset 0 0 0 1px var(--fx-rule); }
.fx-panel__inset { border-radius: calc(var(--fx-pr) - 8px); padding: clamp(22px, 0.9rem + 1.6vw, 44px); background: var(--fx-navy-2); }
.fx-panel--stone .fx-panel__inset, .fx-panel--sand .fx-panel__inset { background: var(--fx-paper); }

.fx-principles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(12px, 0.5rem + 0.8vw, 20px); }
.fx-principles--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fx-principles--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fx-principles > .fx-panel { display: flex; flex-direction: column; gap: 14px; min-height: clamp(260px, 30vw, 440px); }
.fx-principles > .fx-panel .fx-figure { margin-bottom: auto; }
@media (max-width: 1024px) { .fx-principles--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 860px) { .fx-principles, .fx-principles--2, .fx-principles--4 { grid-template-columns: 1fr; } .fx-principles > .fx-panel { min-height: 0; } }

.fx-field { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(28px, 4vw, 72px); align-items: start; }
.fx-field__label { position: sticky; top: calc(var(--fx-head) + 28px); }
.fx-field__body { min-width: 0; }
@media (max-width: 860px) { .fx-field { grid-template-columns: 1fr; } .fx-field__label { position: static; } }

.fx-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); min-height: clamp(480px, 62vw, 760px); }
.fx-split > * { min-width: 0; }
.fx-split__text { display: flex; flex-direction: column; justify-content: center; gap: 20px; padding: clamp(32px, 1rem + 3.6vw, 88px); border-radius: var(--fx-pr) 0 0 0; background: var(--fx-paper); }
.fx-split__media { position: relative; overflow: hidden; border-radius: 0 var(--fx-pr) 0 0; background: var(--fx-navy-2); }
.fx-split__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.fx-split--reverse .fx-split__text { order: 2; border-radius: 0 var(--fx-pr) 0 0; }
.fx-split--reverse .fx-split__media { order: 1; border-radius: var(--fx-pr) 0 0 0; }
.fx-split--round .fx-split__text { border-radius: var(--fx-pr) 0 0 var(--fx-pr); }
.fx-split--round .fx-split__media { border-radius: 0 var(--fx-pr) var(--fx-pr) 0; }
.fx-split--round.fx-split--reverse .fx-split__text { border-radius: 0 var(--fx-pr) var(--fx-pr) 0; }
.fx-split--round.fx-split--reverse .fx-split__media { border-radius: var(--fx-pr) 0 0 var(--fx-pr); }
.fx-split__text--navy { background: var(--fx-navy); color: #F3F5F8; }
.fx-split__text--gold { background: var(--fx-gold-f); color: var(--fx-ink); }
.fx-split__text--stone { background: var(--fx-stone); }
/* a figure half instead of a photograph: a financial drawing, formula or figure */
.fx-split__figure { display: flex; flex-direction: column; justify-content: center; padding: clamp(32px, 1rem + 3.6vw, 88px); border-radius: 0 var(--fx-pr) 0 0; background: var(--fx-navy); color: #F3F5F8; }
.fx-split--reverse .fx-split__figure { order: 1; border-radius: var(--fx-pr) 0 0 0; }
@media (max-width: 860px) {
  .fx-split { grid-template-columns: 1fr; min-height: 0; }
  .fx-split__text, .fx-split__figure { border-radius: var(--fx-pr) var(--fx-pr) 0 0 !important; }
  .fx-split__media { min-height: clamp(260px, 72vw, 420px); border-radius: 0 0 var(--fx-pr) var(--fx-pr) !important; }
  .fx-split--media-first .fx-split__media { order: 0; border-radius: var(--fx-pr) var(--fx-pr) 0 0 !important; }
  .fx-split--media-first .fx-split__text, .fx-split--media-first .fx-split__figure { order: 1; border-radius: 0 0 var(--fx-pr) var(--fx-pr) !important; }
  .fx-split--reverse .fx-split__text { order: 0; }
}

.fx-mosaic { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-radius: var(--fx-pr); overflow: hidden; }
.fx-mosaic > * { min-height: clamp(200px, 20vw, 300px); padding: clamp(24px, 3vw, 44px); display: flex; flex-direction: column; justify-content: flex-end; gap: 10px; }
@media (max-width: 860px) { .fx-mosaic { grid-template-columns: 1fr; } .fx-mosaic > * { min-height: 0; } }

/* ==========================================================================
   5. DECK (P2) — a sequence where each stage covers the previous one.
   Pinning is enabled by main.js only when every card fits the viewport
   (.fx-deck--pin); otherwise the cards simply stack with a rounded overlap.
   ========================================================================== */
.fx-deck { display: grid; gap: 0; }
.fx-deck > * {
  position: relative; border-radius: var(--fx-pr) var(--fx-pr) 0 0;
  padding: clamp(32px, 1rem + 3vw, 72px);
  background: var(--fx-paper);
  box-shadow: 0 -1px 0 var(--fx-rule);
}
.fx-deck > * + * { margin-top: calc(var(--fx-pr) * -0.5); }
.fx-deck > *:last-child { border-radius: var(--fx-pr); }
.fx-deck--pin > * { position: sticky; top: calc(var(--fx-head) + 20px + var(--n, 0) * 14px); }
.fx-deck--pin > * + * { margin-top: clamp(40px, 8vh, 110px); }
.fx-card--navy { background: var(--fx-navy); color: #F3F5F8; }
.fx-card--stone { background: var(--fx-stone); }
.fx-card--sand { background: var(--fx-sand); }
.fx-card--gold { background: var(--fx-gold-f); }
.fx-card__head { display: flex; align-items: baseline; gap: 18px; margin-bottom: 16px; }

/* ==========================================================================
   6. FINANCIAL SEQUENCE — stages on a drawn spine (capital, plan → cash …)
   ========================================================================== */
.fx-sequence { list-style: none; margin: 0; padding: 0; position: relative; display: grid; gap: 0; }
.fx-sequence::before { content: ""; position: absolute; left: clamp(18px, 2vw, 28px); top: 12px; bottom: 12px; width: 1px; background: var(--fx-gold-f); transform-origin: top; }
.fx-sequence > li { position: relative; display: grid; grid-template-columns: clamp(56px, 6vw, 84px) minmax(0, 1fr); gap: 0 clamp(16px, 2vw, 32px); padding-block: clamp(22px, 2.6vw, 36px); border-top: 1px solid var(--fx-rule); }
.fx-sequence > li:first-child { border-top: 0; }
.fx-sequence > li::before { content: ""; position: absolute; left: calc(clamp(18px, 2vw, 28px) - 5px); top: calc(clamp(22px, 2.6vw, 36px) + 6px); width: 11px; height: 11px; border-radius: 50%; background: var(--fx-ivory); box-shadow: inset 0 0 0 2px var(--fx-gold-f); }
.fx-sequence .fx-index { padding-left: clamp(36px, 4vw, 56px); padding-top: 4px; grid-column: 1; }
.fx-sequence__body { grid-column: 2; }
.fx-sequence__body > * + * { margin-top: 8px; }
.fx-dark .fx-sequence > li { border-top-color: var(--fx-rule-d); }
.fx-dark .fx-sequence > li::before { background: var(--fx-navy); }
/* horizontal variant for short chains (desktop only) */
@media (min-width: 1025px) {
  .fx-sequence--row { grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
  .fx-sequence--row::before { left: 0; right: 0; top: 5px; bottom: auto; width: auto; height: 1px; transform-origin: left; }
  .fx-sequence--row > li { grid-template-columns: 1fr; border-top: 0; padding: 36px 20px 0 0; }
  .fx-sequence--row > li::before { left: 0; top: 0; }
  .fx-sequence--row .fx-index { padding: 0 0 12px; }
  .fx-sequence--row .fx-sequence__body { grid-column: 1; }
}

/* ==========================================================================
   7. INDEXED ROWS — editorial lists instead of card grids
   ========================================================================== */
.fx-rows { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--fx-rule); }
.fx-rows > li, .fx-rows > a { display: grid; grid-template-columns: clamp(44px, 5vw, 84px) minmax(0, 1fr) auto; gap: 8px clamp(16px, 2vw, 32px); align-items: baseline; padding-block: clamp(22px, 2.4vw, 34px); border-bottom: 1px solid var(--fx-rule); color: inherit; text-decoration: none; }
.fx-rows > a:hover .fx-h3 { color: var(--fx-gold); }
.fx-rows__arrow { font-size: var(--t-small); font-weight: 600; color: var(--fx-gold); white-space: nowrap; }
.fx-dark .fx-rows, .fx-dark .fx-rows > li, .fx-dark .fx-rows > a { border-color: var(--fx-rule-d); }
@media (max-width: 640px) { .fx-rows > li, .fx-rows > a { grid-template-columns: 36px minmax(0, 1fr); } .fx-rows__arrow { grid-column: 2; } }

/* ==========================================================================
   8. SECTION HEAD — eyebrow · statement/heading · lead, and a two-column head
   ========================================================================== */
.fx-head { display: grid; gap: 22px; margin-bottom: var(--fx-space-s); }
.fx-head--split { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: end; gap: 24px clamp(32px, 5vw, 96px); }
.fx-head--split .fx-lead { justify-self: start; }
@media (max-width: 860px) { .fx-head--split { grid-template-columns: 1fr; } }

/* ==========================================================================
   9. CLOSING STATEMENT (P9) and CTA scene
   ========================================================================== */
.fx-cta { position: relative; z-index: 1; border-radius: var(--fx-r) var(--fx-r) 0 0; margin-top: calc(var(--fx-r) * -1); background: var(--fx-navy); color: #F3F5F8; padding-block: calc(var(--fx-r) + var(--fx-space-s)) var(--fx-space-s); }
.fx-page main:has(> .fx-cta:last-child) + .footer .fx-closing { padding-top: clamp(24px, 3vw, 40px); }
.fx-cta__actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 36px; }
.fx-page .fx-cta + .footer, .fx-page main:has(> .fx-cta:last-child) + .footer { border-top: 1px solid var(--fx-rule-d); }
.fx-closing { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px 48px; align-items: end; padding-block: clamp(48px, 7vw, 96px) clamp(36px, 5vw, 64px); border-bottom: 1px solid var(--fx-rule-d); margin-bottom: clamp(36px, 5vw, 56px); }
.fx-closing__statement { margin: 0; font-size: var(--t-display-l); font-weight: 300; line-height: 1.06; letter-spacing: -0.03em; color: #F3F5F8; }
.fx-closing__statement strong { font-weight: 700; }
.fx-closing__statement .fx-gold { color: var(--fx-gold-l); }
.fx-closing__mark img { height: 29px; width: auto; display: block; }
@media (max-width: 860px) { .fx-closing { grid-template-columns: 1fr; } .fx-closing__mark { order: -1; } .fx-closing__mark img { height: 31px; } }

/* ==========================================================================
   10. ARTICLE SYSTEM — covers, reading column, designed moments
   ========================================================================== */
/* reading column */
.fx-article { padding-block: var(--fx-space-s) var(--fx-space); }
.fx-article .fx-read { max-width: calc(var(--fx-read) + 2 * var(--fx-gutter)); margin-inline: auto; padding-inline: var(--fx-gutter); }
.fx-article .fx-read > :where(p, ul, ol) { font-size: var(--t-body-l); line-height: 1.72; color: var(--fm-navy-900); margin: 0 0 1.1em; }
.fx-article .fx-read > :where(ul, ol) { padding-left: 1.2em; }
.fx-article .fx-read > :where(ul, ol) li { font-size: inherit; line-height: inherit; margin-bottom: 0.5em; }
.fx-article .fx-read > h2 { font-size: var(--t-h2); font-weight: 700; line-height: 1.14; letter-spacing: -0.022em; margin: 2.2em 0 0.6em; max-width: 26ch; text-wrap: balance; color: var(--fx-ink); }
.fx-article .fx-read > h3 { font-size: var(--t-h3); font-weight: 700; line-height: 1.3; margin: 1.8em 0 0.5em; color: var(--fx-ink); }
.fx-article .fx-read > :first-child { margin-top: 0; }
.fx-article .fx-read strong { color: var(--fx-ink); font-weight: 700; }

/* the designed moments break out of the reading column */
.fx-article .fx-wide { max-width: calc(1080px + 2 * var(--fx-gutter)); margin: clamp(40px, 5vw, 72px) auto; padding-inline: var(--fx-gutter); }

.fx-callout { border-radius: var(--fx-cr); padding: clamp(22px, 2.4vw, 36px) clamp(22px, 2.6vw, 40px); background: var(--fx-stone); }
.fx-callout > * + * { margin-top: 10px; }
.fx-callout__label { font-size: var(--t-eyebrow); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--fx-gold); }
.fx-callout--risk { background: var(--fx-navy); color: #F3F5F8; }
.fx-callout--risk .fx-callout__label { color: var(--fx-gold-l); }
.fx-callout--risk p, .fx-callout--risk li { color: #C3CBD7 !important; }
.fx-callout--risk strong { color: #F3F5F8 !important; }

.fx-takeaway { position: relative; border-radius: var(--fx-pr); padding: clamp(28px, 3.4vw, 56px); background: var(--fx-paper); box-shadow: inset 0 3px 0 var(--fx-gold-f), 0 0 0 1px var(--fx-rule); }
.fx-takeaway .fx-callout__label { margin-bottom: 14px; display: block; }
.fx-takeaway :where(p, li) { font-size: var(--t-body-l); line-height: 1.65; }

.fx-calc { border-radius: var(--fx-cr); padding: clamp(22px, 2.6vw, 40px); background: var(--fx-navy); color: #F3F5F8; font-family: var(--font-mono); font-size: clamp(0.9rem, 0.85rem + 0.2vw, 1.02rem); line-height: 1.8; }
.fx-calc b, .fx-calc strong { color: var(--fx-gold-l); font-weight: 500; }
.fx-calc em { display: block; margin-top: 10px; font-family: var(--font-sans); font-style: normal; font-size: var(--t-small); color: #9AA5B5; line-height: 1.55; }

/* premium financial tables: applied to any table inside .fx-table */
.fx-table { overflow-x: auto; border-radius: var(--fx-cr); background: var(--fx-paper); box-shadow: 0 0 0 1px var(--fx-rule); -webkit-overflow-scrolling: touch; }
.fx-table table { width: 100%; border-collapse: collapse; font-size: var(--t-small); font-variant-numeric: tabular-nums; }
.fx-table caption { caption-side: top; text-align: left; padding: 18px 22px 6px; font-size: var(--t-eyebrow); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--fx-gold); }
.fx-table th, .fx-table td { padding: 13px 22px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--fx-rule); color: var(--fm-neutral-700); line-height: 1.45; }
.fx-table thead th { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.04em; color: var(--fx-ink-3); background: transparent; border-bottom: 1px solid rgba(126, 95, 22, 0.45); white-space: nowrap; }
.fx-table tbody tr:last-child td { border-bottom: 0; }
.fx-table td:first-child { font-weight: 600; color: var(--fx-ink); }
.fx-table .num, .fx-table td[data-num] { text-align: right; white-space: nowrap; }

/* article covers */
.fx-cover-meta { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 32px; padding-top: 18px; border-top: 1px solid currentColor; border-top-color: color-mix(in srgb, currentColor 22%, transparent); }
.fx-cover-thesis { margin-top: 28px; max-width: 46ch; padding-left: 20px; border-left: 2px solid var(--fx-gold-f); font-size: var(--t-lead); line-height: 1.5; }

/* related reading */
.fx-related { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(12px, 1.4vw, 20px); }
.fx-related > a { display: flex; flex-direction: column; gap: 12px; min-height: 200px; padding: clamp(22px, 2.4vw, 34px); border-radius: var(--fx-cr); background: var(--fx-paper); box-shadow: 0 0 0 1px var(--fx-rule); color: inherit; text-decoration: none; transition: box-shadow 240ms ease, transform 240ms var(--fx-ease); }
.fx-related > a:hover { box-shadow: 0 0 0 1px rgba(126, 95, 22, 0.5); transform: translateY(-2px); }
.fx-related .fx-rows__arrow { margin-top: auto; }
@media (max-width: 860px) { .fx-related { grid-template-columns: 1fr; } .fx-related > a { min-height: 0; } }

/* ==========================================================================
   11. MOTION — families (P8). Hidden states only under html.m-js.
   ========================================================================== */
.m-js [data-fx]:not(.is-visible) { opacity: 0.01; }
.m-js [data-fx="rise"]:not(.is-visible) { transform: translateY(24px); }
.m-js [data-fx="glide"]:not(.is-visible) { transform: translateX(-32px); }
.m-js [data-fx="glide-r"]:not(.is-visible) { transform: translateX(32px); }
.m-js [data-fx="unveil"]:not(.is-visible) { opacity: 1; clip-path: inset(8% 8% 8% 8% round var(--fx-pr)); }
.m-js [data-fx="unveil"]:not(.is-visible) img { transform: scale(1.06); }
.m-js [data-fx="line"]:not(.is-visible) { opacity: 1; }
.m-js [data-fx="line"]:not(.is-visible)::before { transform: scaleY(0); }
.m-js .fx-sequence--row[data-fx="line"]:not(.is-visible)::before { transform: scaleX(0); }
[data-fx] {
  transition: opacity 820ms var(--fx-ease), transform 820ms var(--fx-ease), clip-path 1150ms var(--fx-ease);
  transition-delay: var(--m-delay, 0ms);
}
[data-fx="unveil"] img { transition: transform 1150ms var(--fx-ease); transition-delay: var(--m-delay, 0ms); }
[data-fx="line"]::before { transition: transform 1400ms cubic-bezier(0.42, 0.08, 0.28, 1); transition-delay: var(--m-delay, 0ms); }
.m-instant[data-fx], .m-instant[data-fx] img, .m-instant[data-fx]::before { transition: none !important; }
/* Mobile motion pass (≤ 860px): statements arrive a little slower and travel less; a framed
   photograph is UNCOVERED top → bottom behind its own rounded frame and settles from 1.03,
   the same language PHOTO 03 uses on the homepage; a photographic cover settles once at
   load (opacity 0.92 → 1, 1.025 → 1) — painted from the first frame, so LCP is unaffected.
   The Real Estate cover keeps its approved, motionless state. Desktop rules are untouched. */
@media (max-width: 860px) {
  /* Pass 2: text stays quiet (640ms, 14px); photographs are the event. A framed photograph is
     uncovered behind its own rounded frame — top → bottom by default, bottom → top for the
     founder portrait, which rises into its frame — while the picture settles from 1.045 and
     20px. Covers settle from 1.05 at load, painted from the first frame. */
  [data-fx] { transition-duration: 640ms, 640ms, 900ms; }
  .m-js [data-fx="rise"]:not(.is-visible) { transform: translateY(14px); }
  .m-js [data-fx="glide"]:not(.is-visible), .m-js [data-fx="glide-r"]:not(.is-visible) { transform: translateY(14px); }
  .m-js [data-fx="unveil"]:not(.is-visible) { clip-path: inset(0 0 100% 0 round var(--fx-pr)); }
  .m-js .pg-about [data-fx="unveil"]:not(.is-visible) { clip-path: inset(100% 0 0 0 round var(--fx-pr)); }
  .m-js [data-fx="unveil"]:not(.is-visible) img { transform: scale(1.045) translateY(20px); }
  /* settled state as an explicit inset(0 … round r): a clip-path only animates between two
     basic shapes of the same kind — towards none it jumps */
  .m-js [data-fx="unveil"].is-visible { clip-path: inset(0 0 0 0 round var(--fx-pr)); }
  [data-fx="unveil"] img { transition-duration: 900ms; }
  @keyframes fxCoverSettle { from { opacity: 0.9; transform: scale(1.05); } to { opacity: 1; transform: none; } }
  .m-js .rd-page:not(.rd-solution) .rd-cover--photo .fx-stage__media img,
  .m-js .pg-capital .cm-stage .fx-stage__media img { animation: fxCoverSettle 1000ms var(--fx-ease) both; }
}

/* ==========================================================================
   12. REDUCED MOTION / PRINT — the complete page, nothing pinned
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  .fx-stage, .fx-hold__media, .fx-field__label, .fx-deck--pin > * { position: relative; top: auto; }
  .fx-hold { height: auto; }
  .fx-hold__media { height: clamp(420px, 70svh, 760px); }
  .fx-hold + .fx-sheet { margin-top: calc(var(--fx-r) * -1); }
  [data-fx], [data-fx] img, [data-fx]::before { transition: none !important; opacity: 1 !important; transform: none !important; clip-path: none !important; }
}
@media print {
  .fx-stage, .fx-hold__media, .fx-field__label, .fx-deck > * { position: static; }
  .fx-sheet, .fx-cta { margin-top: 0; border-radius: 0; }
  .fx-hold { height: auto; }
}

/* ==========================================================================
   13. SHARED DETAILS on designed pages
   ========================================================================== */
.fx-page { --font-display: var(--font-sans); }   /* one family on every designed page */
.fx-link { display: inline-flex; align-items: center; gap: 6px; padding-bottom: 3px; border-bottom: 1px solid currentColor; font-weight: 700; font-size: var(--t-small); color: var(--fx-gold); text-decoration: none; }
.fx-dark .fx-link, .fx-on-dark .fx-link, .fx-split__text--navy .fx-link { color: var(--fx-gold-l); }
.fx-crumbs { margin-bottom: clamp(28px, 5vh, 56px); }
.fx-crumbs ol { display: flex; flex-wrap: wrap; gap: 6px 10px; margin: 0; padding: 0; list-style: none; font-size: var(--t-meta); }
.fx-crumbs li + li::before { content: "/"; margin-right: 10px; opacity: 0.45; }
.fx-crumbs a { color: inherit; opacity: 0.78; text-decoration: none; }
.fx-crumbs a:hover { opacity: 1; }
.fx-crumbs [aria-current] { opacity: 0.95; }
.fx-stage .fx-crumbs { color: #E6EAF0; }

/* ==========================================================================
   14. PAGE — CAPITAL MANAGEMENT (.pg-capital)
   PHOTO 02 stage → ivory question sheet → navy CFO-logic sheet with the map as an
   inset field, the flow on a spine, the principles as a deck and the value rule as
   the page's one gold panel → library rows → split entry → navy CTA sheet.
   ========================================================================== */
.pg-capital .cm-stage .fx-stage__media img { object-position: 62% 50%; }
.pg-capital .cm-stage__scrim {
  background:
    linear-gradient(90deg, rgba(8,17,31,0.9) 0%, rgba(8,17,31,0.74) 42%, rgba(8,17,31,0.3) 68%, rgba(8,17,31,0) 92%),
    linear-gradient(180deg, rgba(8,17,31,0.55) 0%, rgba(8,17,31,0) 26%, rgba(8,17,31,0) 60%, rgba(8,17,31,0.7) 100%);
}
.pg-capital .cm-title { max-width: 14ch; }

.pg-capital .cm-question .fx-head { margin-bottom: clamp(48px, 6vw, 96px); }
.pg-capital .cm-question__aside { display: grid; gap: 24px; }
.pg-capital .cm-routes { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 18px; margin: 0; }
.pg-capital .cm-routes .fx-meta { width: 100%; text-transform: uppercase; letter-spacing: 0.12em; font-size: var(--t-eyebrow); font-weight: 700; color: var(--fx-gold); }
.pg-capital .cm-routes span:not(.fx-meta) { font-size: var(--t-body); font-weight: 600; color: var(--fx-ink); }
.pg-capital .cm-routes span:not(.fx-meta):not(:last-child)::after { content: "·"; margin-left: 18px; color: var(--fx-gold); }
.pg-capital .cm-cycle .fx-sequence__body p { font-size: var(--t-small); line-height: 1.5; color: var(--fx-ink-2); max-width: 24ch; }
.pg-capital .cm-cycle .fx-h3 { font-size: clamp(1.02rem, 0.9rem + 0.35vw, 1.2rem); hyphens: auto; overflow-wrap: anywhere; }

/* the CFO logic: a navy sheet rising over the ivory one */
.pg-capital .capital-logic {
  z-index: 2;
  margin-top: calc(var(--fx-r) * -1);
  border: 0; border-radius: var(--fx-r) var(--fx-r) 0 0;
  background: var(--fx-navy);
  padding-block: calc(var(--fx-r) + var(--fx-space-s)) var(--fx-space);
  overflow: visible;
}
.pg-capital .capital-logic > .container { max-width: calc(var(--fx-text) + 2 * var(--fx-gutter)); padding-inline: var(--fx-gutter); }
.pg-capital .capital-logic__title .overline { font-size: var(--t-eyebrow); letter-spacing: 0.12em; color: var(--fx-gold-l); }
.pg-capital .capital-logic__title .section-title { font-size: var(--t-display-l); font-weight: 300; letter-spacing: -0.03em; line-height: 1.06; color: #F3F5F8; }
.pg-capital .capital-logic__lead { font-size: var(--t-lead); font-weight: 400; line-height: 1.55; color: #C3CBD7; }
.pg-capital .capital-logic__definition { max-width: 60ch; margin-top: clamp(40px, 5vw, 72px); padding-left: 24px; border-left-width: 2px; font-size: var(--t-lead); line-height: 1.55; color: #C3CBD7; }
.pg-capital .capital-logic__definition strong { font-weight: 700; color: #F3F5F8; }

/* the map: a darker inset field inside the navy sheet (panel within a panel) */
.pg-capital .capital-map {
  margin-top: clamp(56px, 7vw, 112px);
  padding: clamp(28px, 1rem + 3.4vw, 80px);
  border: 0; border-radius: var(--fx-pr);
  background: var(--fx-navy-2);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05);
}
.pg-capital .capital-map__eyebrow { font-family: var(--font-sans); font-size: var(--t-eyebrow); font-weight: 700; color: var(--fx-gold-l); }
.pg-capital .capital-map__head h3 { font-size: var(--t-h2); font-weight: 700; letter-spacing: -0.022em; }
.pg-capital .capital-map__head > p { font-size: var(--t-body); color: #C3CBD7; }
.pg-capital .capital-source { border-top-color: rgba(255, 255, 255, 0.08); }
.pg-capital .capital-source__head h4,
.pg-capital .capital-dimension h4 { font-family: var(--font-sans); font-size: var(--t-eyebrow); font-weight: 700; letter-spacing: 0.12em; color: var(--fx-gold-l); }
.pg-capital .capital-source__head p { font-size: var(--t-body); color: #C3CBD7; }
.pg-capital .capital-source__list { gap: clamp(10px, 1vw, 16px); }
.pg-capital .capital-source__list > div { padding: clamp(20px, 2vw, 28px); border: 0; border-radius: var(--fx-cr); background: var(--fx-navy-3); }
.pg-capital .capital-source__list dt { font-size: var(--t-h3); font-weight: 700; margin-bottom: 10px; }
.pg-capital .capital-source__list dd, .pg-capital .capital-source__structure { font-size: var(--t-small); line-height: 1.6; color: #B9C2CF; }
.pg-capital .capital-source__structure { font-size: var(--t-body); color: #C3CBD7; border-left-width: 2px; border-left-color: var(--fx-gold-f); }
.pg-capital .capital-dimension li { grid-template-columns: 34px minmax(0, 1fr); }
.pg-capital .capital-dimension li > span { font-size: var(--t-index); color: var(--fx-gold-l); }
.pg-capital .capital-dimension li strong, .pg-capital .capital-states dt { font-size: 1.02rem; font-weight: 700; }
.pg-capital .capital-dimension li p, .pg-capital .capital-states dd, .pg-capital .capital-risk p { font-size: var(--t-small); color: #B9C2CF; }
/* the five states read as a scale: working → excess. Labels sit above their definitions because
   the longest approved RU label is wider than the label track at every desktop map width. */
.pg-capital .capital-states > div {
  position: relative;
  grid-template-columns: minmax(0, 1fr);
  row-gap: 6px;
  padding-left: 18px;
}
.pg-capital .capital-states > div::before { content: ""; position: absolute; left: 0; top: 18px; width: 7px; height: 7px; border-radius: 50%; background: var(--fx-gold-l); }
.pg-capital .capital-states > div:nth-child(2)::before { opacity: 0.78; }
.pg-capital .capital-states > div:nth-child(3)::before { opacity: 0.56; }
.pg-capital .capital-states > div:nth-child(4)::before { opacity: 0.34; background: #9AA5B5; }
.pg-capital .capital-states > div:nth-child(5)::before { opacity: 0.2; background: #9AA5B5; box-shadow: 0 0 0 1px #9AA5B5; }
.pg-capital .capital-risk { margin-top: 28px; padding: 22px 26px; border: 0; border-radius: var(--fx-cr); background: rgba(213, 155, 43, 0.1); box-shadow: inset 2px 0 0 var(--fx-gold-f); }
.pg-capital .capital-risk > strong { font-family: var(--font-sans); font-size: var(--t-eyebrow); font-weight: 700; color: var(--fx-gold-l); }
.pg-capital .capital-map__question { max-width: 30ch; margin-top: clamp(40px, 5vw, 72px); padding-top: clamp(28px, 3vw, 44px); border-top-color: rgba(255, 255, 255, 0.1); font-size: clamp(1.35rem, 1.1rem + 1vw, 2rem); font-weight: 300; line-height: 1.3; letter-spacing: -0.015em; color: #E6EAF0; }
.pg-capital .capital-map__question strong { font-family: var(--font-sans); font-size: 1em; font-weight: 700; color: var(--fx-gold-l); }
.pg-capital .capital-map__material { font-size: var(--t-small); color: var(--fx-gold-l); border-bottom-color: currentColor; margin-top: 24px; }

/* the flow: seven questions on one gold spine */
.pg-capital .capital-flow {
  position: relative; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 0;
  margin-top: clamp(56px, 7vw, 112px); padding: 38px 0 0; border: 0;
  font-family: var(--font-sans); font-size: var(--t-small); font-weight: 600; letter-spacing: 0; text-transform: none; color: #E6EAF0;
}
.pg-capital .capital-flow::before { content: ""; position: absolute; left: 0; right: 0; top: 5px; height: 1px; background: var(--fx-gold-f); }
.pg-capital .capital-flow span { position: relative; display: block; white-space: normal; padding-right: 16px; line-height: 1.35; }
.pg-capital .capital-flow span::before { content: ""; position: absolute; left: 0; top: -38px; width: 11px; height: 11px; border-radius: 50%; background: var(--fx-navy); box-shadow: inset 0 0 0 2px var(--fx-gold-f); }
.pg-capital .capital-flow span:last-child::before { background: var(--fx-gold-f); }
.pg-capital .capital-flow span:not(:last-child)::after { content: none; }
@media (max-width: 1024px) {
  .pg-capital .capital-flow { grid-template-columns: 1fr; padding: 0 0 0 30px; }
  .pg-capital .capital-flow::before { left: 5px; right: auto; top: 6px; bottom: 6px; width: 1px; height: auto; }
  .pg-capital .capital-flow span { padding: 0 0 18px; }
  .pg-capital .capital-flow span::before { left: -30px; top: 3px; }
}

/* the four principles: a deck of light cards over the navy field */
.pg-capital .capital-principles { display: grid; grid-template-columns: 1fr; gap: 0; margin-top: clamp(56px, 7vw, 112px); }
.pg-capital .capital-principle {
  grid-template-columns: clamp(64px, 8vw, 132px) minmax(0, 1fr); gap: 8px clamp(20px, 3vw, 56px); align-items: start;
  padding: clamp(28px, 3.4vw, 56px); border: 0; border-radius: var(--fx-pr) var(--fx-pr) 0 0;
  background: var(--fx-paper); color: var(--fx-ink);
  box-shadow: 0 -18px 40px -30px rgba(0, 0, 0, 0.6);
}
.pg-capital .capital-principle:nth-child(2) { background: var(--fx-sand); }
.pg-capital .capital-principle:nth-child(3) { background: var(--fx-stone); }
.pg-capital .capital-principle:nth-child(4) { background: #DDD5C6; border-radius: var(--fx-pr); }
.pg-capital .capital-principle__num { padding: 0; font-family: var(--font-sans); font-size: var(--t-figure); font-weight: 300; line-height: 0.9; letter-spacing: -0.04em; color: var(--fx-gold); }
.pg-capital .capital-principle h3 { font-size: clamp(1.375rem, 1.05rem + 1.6vw, 2.5rem); font-weight: 700; letter-spacing: -0.022em; color: var(--fx-ink); margin-bottom: 12px; }
.pg-capital .capital-principle p { font-size: var(--t-lead); line-height: 1.5; color: var(--fx-ink-2); }
.pg-capital .fx-deck > .capital-principle + .capital-principle { margin-top: calc(var(--fx-pr) * -0.6); }
.pg-capital .fx-deck--pin > .capital-principle + .capital-principle { margin-top: clamp(40px, 7vh, 96px); }
/* the value rule: the page's one gold panel */
.pg-capital .capital-logic__mechanisms {
  max-width: none; margin-top: clamp(40px, 5vw, 72px);
  padding: clamp(32px, 4vw, 72px); border-radius: var(--fx-pr);
  background: var(--fx-gold-f); color: var(--fx-ink);
  font-size: clamp(1.4rem, 1.05rem + 1.3vw, 2.2rem); font-weight: 300; line-height: 1.28; letter-spacing: -0.02em;
}

.pg-capital .cm-deep__title { display: block; margin-top: 6px; }
.pg-capital .cm-scan__split { min-height: clamp(420px, 42vw, 560px); }
.pg-capital .cm-scan__figure { gap: 10px; }
.pg-capital .cm-scan__num { font-size: clamp(5rem, 3rem + 8vw, 11rem); color: var(--fx-gold-l); }
.pg-capital .cm-scan .fx-split__text .fx-h2 { max-width: 22ch; }
.pg-capital .cm-scan .fx-split__text > p:not(.fx-eyebrow):not(.fx-h2) { max-width: 56ch; color: var(--fx-ink-2); }
@media (max-width: 860px) {
  .pg-capital .capital-principle { grid-template-columns: 1fr; }
  .pg-capital .cm-scan__split { min-height: 0; }
  .pg-capital .cm-scan__figure { min-height: 220px; }
}

/* ==========================================================================
   15. PAGE — OWNER (.pg-owner)
   Navy thesis stage → ivory question sheet rises → navy contours sheet rises →
   light framework / diagnostic / decision-path bands → library → navy close.
   ========================================================================== */
.pg-owner .ow-title { max-width: 13ch; }
.pg-owner .ow-stage .fx-lead { max-width: 52ch; }

/* the framing question: an ivory sheet over the navy thesis */
.pg-owner .ow-question {
  --text-primary: var(--fx-ink); --text-secondary: var(--fx-ink-2); --text-muted: var(--fx-ink-3);
  background: var(--fx-ivory); color: var(--fx-ink);
  min-height: 0; border: 0;
}
.pg-owner .ow-question::before, .pg-owner .ow-question::after { display: none; }
.pg-owner .ow-question .container { max-width: calc(var(--fx-text) + 2 * var(--fx-gutter)); padding-inline: var(--fx-gutter); }
.pg-owner .ow-question .statement-screen__text { font-size: var(--t-display-l); font-weight: 300; line-height: 1.06; letter-spacing: -0.03em; color: var(--fx-ink); }
.pg-owner .ow-question .statement-screen__keyword { font-weight: 700; color: var(--fx-ink); }
.pg-owner .ow-question .statement-screen__question { color: var(--fx-gold); font-weight: 300; }
.pg-owner .ow-question .statement-screen__note { font-size: var(--t-lead); line-height: 1.55; color: var(--fx-ink-2); max-width: 52ch; }
.pg-owner .ow-question .capital-chain__node { color: var(--fx-ink); }
.pg-owner .ow-question .statement-screen__close { font-size: var(--t-h3); font-weight: 600; color: var(--fx-ink); }

/* three contours: a navy sheet with three large tonal panels */
.pg-owner .ow-contours {
  position: relative; z-index: 2; margin-top: calc(var(--fx-r) * -1);
  border-radius: var(--fx-r) var(--fx-r) 0 0; background: var(--fx-navy);
  padding-block: calc(var(--fx-r) + var(--fx-space-s)) var(--fx-space);
  --text-primary: #F3F5F8; --text-secondary: var(--fm-neutral-300); --text-muted: var(--fm-neutral-400); --accent: var(--fx-gold-l);
}
.pg-owner .ow-contours .overline { color: var(--fx-gold-l); letter-spacing: 0.12em; font-size: var(--t-eyebrow); }
.pg-owner .ow-contours .section-title { font-size: var(--t-display-l); font-weight: 300; letter-spacing: -0.03em; color: #F3F5F8; max-width: 16ch; }
.pg-owner .ow-contours .section-lead { font-size: var(--t-lead); color: #C3CBD7; max-width: 60ch; }
.pg-owner .ow-contours .pillars__grid { gap: clamp(10px, 1vw, 16px); margin-top: clamp(48px, 6vw, 88px); }
.pg-owner .ow-contours .pillar { border-radius: var(--fx-pr); min-height: clamp(360px, 32vw, 460px); display: flex; flex-direction: column; }
.pg-owner .ow-contours .pillar:nth-child(1) { background: var(--fx-navy-2); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06); }
.pg-owner .ow-contours .pillar:nth-child(2) { background: var(--fx-stone); --text-primary: var(--fx-ink); --text-secondary: var(--fx-ink-2); --text-muted: var(--fx-ink-3); --label-muted: var(--fx-ink-3); --accent: var(--fx-gold); --border-gold: rgba(126,95,22,0.45); color: var(--fx-ink-2); }
.pg-owner .ow-contours .pillar:nth-child(3) { background: var(--fx-gold-f); box-shadow: none; --text-primary: var(--fx-ink); --text-secondary: var(--fm-navy-900); --text-muted: var(--fm-navy-900); --label-muted: var(--fm-navy-900); --accent: var(--fx-ink); --border-gold: rgba(11,22,39,0.3); color: var(--fm-navy-900); }
.pg-owner .ow-contours .pillar__index { font-size: var(--t-figure); font-weight: 300; letter-spacing: -0.04em; margin-bottom: auto; padding-bottom: 32px; }
.pg-owner .ow-contours .pillar__title { font-size: var(--t-h2); letter-spacing: -0.02em; text-transform: none; }
.pg-owner .ow-contours .pillar__descriptor { font-size: var(--t-body); }

/* framework: profit vs capital, then who does what */
.pg-owner .ow-compare { background: var(--fx-ivory); padding-block: var(--fx-space) var(--fx-space-s); }
.pg-owner .ow-compare .finmentor-compare { --text-primary: var(--fx-ink); --text-secondary: var(--fx-ink-2); --text-muted: var(--fx-ink-3); color: var(--fx-ink); }
.pg-owner .ow-compare .finmentor-compare__title { font-size: var(--t-display-l); font-weight: 300; letter-spacing: -0.03em; line-height: 1.08; color: var(--fx-ink); }
.pg-owner .ow-compare .finmentor-compare__title span { font-weight: 700; color: var(--fx-gold); }
.pg-owner .ow-compare .finmentor-compare__eyebrow { color: var(--fx-gold); }
.pg-owner .ow-compare .finmentor-compare__panel { border-radius: var(--fx-pr); overflow: hidden; }
.pg-owner .ow-diff { background: var(--fx-ivory); padding-block: 0 var(--fx-space); }
.pg-owner .ow-diff .diff__grid { border-radius: var(--fx-pr); background: var(--fx-paper); padding: clamp(12px, 2vw, 28px) clamp(24px, 3vw, 48px); box-shadow: 0 0 0 1px var(--fx-rule); }
.pg-owner .ow-diff .diff__row { --text-primary: var(--fx-ink); --text-secondary: var(--fx-ink-2); border-color: var(--fx-rule); }
.pg-owner .ow-diff .diff__who { color: var(--fx-ink-3); }
.pg-owner .ow-diff .diff__row--fm .diff__who { color: var(--fx-gold); }
.pg-owner .ow-diff .diff__row p { color: var(--fx-ink-2); font-size: var(--t-body); }
.pg-owner .ow-diff .diff__row--fm p { color: var(--fx-ink); font-weight: 600; }

/* the diagnostic: symptoms on stone, then who this is for */
.pg-owner .ow-chaos { background: var(--fx-stone); padding-block: var(--fx-space); border-radius: var(--fx-r) var(--fx-r) 0 0; }
.pg-owner .ow-chaos .chaos__verdict { font-size: var(--t-display-l); }
.pg-owner .ow-audience { background: var(--fx-stone); padding-block: 0 var(--fx-space); }

/* the decision path */
.pg-owner .ow-steps { background: var(--fx-ivory); padding-block: var(--fx-space); border-radius: var(--fx-r) var(--fx-r) 0 0; margin-top: calc(var(--fx-r) * -1); position: relative; z-index: 1; }
.pg-owner .ow-steps .section-title { font-size: var(--t-display-l); font-weight: 300; letter-spacing: -0.03em; }
.pg-owner .ow-steps .steps-grid { gap: clamp(10px, 1vw, 16px); }
.pg-owner .ow-steps .step-card { border-radius: var(--fx-pr); background: var(--fx-paper); box-shadow: 0 0 0 1px var(--fx-rule); padding: clamp(28px, 3vw, 48px); }
.pg-owner .ow-steps .step-card__num { font-size: var(--t-figure); font-weight: 300; letter-spacing: -0.04em; color: var(--fx-gold); }
.pg-owner .ow-steps .step-card__title { font-size: var(--t-h3); }
.pg-owner .ow-steps .working-contour {
  margin-top: clamp(40px, 5vw, 72px); border: 0; border-radius: var(--fx-pr);
  background: var(--fx-navy); color: #C3CBD7; padding: clamp(32px, 4vw, 72px);
  --text-primary: #F3F5F8; --text-secondary: var(--fm-neutral-300); --text-muted: var(--fm-neutral-400);
}
.pg-owner .ow-steps .working-contour h3 { font-size: var(--t-display-l); font-weight: 300; letter-spacing: -0.03em; color: #F3F5F8; }
.pg-owner .ow-steps .working-contour__accent { color: var(--fx-gold-l); font-size: var(--t-eyebrow); letter-spacing: 0.12em; text-transform: uppercase; font-weight: 700; }
.pg-owner .ow-steps .working-contour p { color: #C3CBD7; font-size: var(--t-body); }
.pg-owner .ow-deliver { background: var(--fx-paper); padding-block: var(--fx-space); }

/* library and AI */
.pg-owner .ow-modules { border-radius: var(--fx-r) var(--fx-r) 0 0; }
.pg-owner .ow-modules .section-title { font-size: var(--t-display-l); font-weight: 300; letter-spacing: -0.03em; }
.pg-owner .ow-ai .ai-teaser { border-radius: var(--fx-pr); }
.pg-owner .ow-after .section-title { font-size: var(--t-h2); }

/* light token set for sections that were written for the dark page */
.fx-page .fx-light-tokens,
.pg-owner :is(.ow-modules, .ow-after, .ow-compare .finmentor-compare__head) {
  --text-primary: var(--fx-ink); --text-secondary: var(--fx-ink-2); --text-muted: var(--fx-ink-3); --label-muted: var(--fx-ink-3);
  --border-hairline: var(--fx-rule); --glass-border: var(--fx-rule); --glass-fill: rgba(255, 255, 255, 0.7);
  --accent: var(--fx-gold); --accent-bright: var(--fx-gold); --micro-label-gold: var(--fx-gold); --gold-400: var(--fx-gold);
  color: var(--fx-ink-2);
}
/* the comparison's inner panel stays a dark exhibit */
.pg-owner .ow-compare .finmentor-compare { --text-primary: inherit; }
.pg-owner .ow-compare .finmentor-compare__panel { --text-primary: #F3F5F8; --text-secondary: var(--fm-neutral-300); --text-muted: var(--fm-neutral-400); --micro-label-gold: var(--fx-gold-l); --accent: var(--fx-gold-f); --accent-bright: var(--fm-gold); color: #F3F5F8; }
.pg-owner .ow-modules { background: var(--fx-ivory); padding-block: var(--fx-space); position: relative; z-index: 1; }
.pg-owner .ow-modules .sysmap__label { color: var(--fx-gold); font-size: var(--t-eyebrow); letter-spacing: 0.12em; }
.pg-owner .ow-modules .sysmap__row { border-color: var(--fx-rule); }
.pg-owner .ow-modules .sysmap__name { font-size: var(--t-h3); font-weight: 700; color: var(--fx-ink); }
.pg-owner .ow-modules .sysmap__row--flag .sysmap__name { color: var(--fx-gold); }
.pg-owner .ow-modules .module-note { background: var(--fx-paper); border-color: var(--fx-rule); border-radius: var(--fx-cr); }
.pg-owner .ow-ai { position: relative; z-index: 2; border-radius: var(--fx-r) var(--fx-r) 0 0; margin-top: calc(var(--fx-r) * -1); background: var(--fx-navy); }
.pg-owner .ow-after { background: var(--fx-stone); padding-block: var(--fx-space) calc(var(--fx-space) + var(--fx-r)); position: relative; z-index: 2; border-radius: var(--fx-r) var(--fx-r) 0 0; margin-top: calc(var(--fx-r) * -1); }
.pg-owner .ow-after .after-step { background: var(--fx-paper); border-color: var(--fx-rule); border-radius: var(--fx-cr); }
.pg-owner .ow-after .after-step__num { color: var(--fx-gold); }
.pg-owner .ow-after .callout { background: var(--fx-navy); border-radius: var(--fx-cr); --text-primary: #F3F5F8; --text-secondary: var(--fm-neutral-300); color: #C3CBD7; }
.pg-owner .ow-after .callout__label { color: var(--fx-gold-l); }
.pg-owner .ow-deliver .subhead { font-size: var(--t-h2); font-weight: 700; letter-spacing: -0.02em; color: var(--fx-ink); }
.pg-owner .ow-deliver .deliv-list li { font-size: var(--t-body); }
.pg-owner .ow-ai { color: #F3F5F8; --text-primary: #F3F5F8; --text-secondary: var(--fm-neutral-300); --text-muted: var(--fm-neutral-400); }
.pg-owner .ow-ai .section-title { font-size: var(--t-display-l); font-weight: 300; letter-spacing: -0.03em; color: #F3F5F8; }
.pg-owner .ow-ai .overline { color: var(--fx-gold-l); }
.pg-owner .ow-question .statement-screen__close { text-transform: none; letter-spacing: -0.01em; font-family: var(--font-sans); }

/* ==========================================================================
   16. PAGE — BUSINESS MODELS (.pg-models)
   Navy thesis stage with PHOTO 03 framed → ivory sheet → six model scenes, each
   its own tone and composition → asset-logic statement → retail flagship → CTA.
   ========================================================================== */
.pg-models .bm-stage { min-height: clamp(620px, 92svh, 960px); align-items: stretch; }
.pg-models .bm-stage__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(28px, 4vw, 80px); align-items: end; }
.pg-models .bm-stage__copy { align-self: end; }
.pg-models .bm-stage h1 { max-width: 13ch; }
.pg-models .bm-figure { margin: 0; align-self: stretch; display: flex; flex-direction: column; justify-content: flex-end; gap: 14px; max-height: min(78svh, 820px); }
.pg-models .bm-figure picture { display: block; flex: 1 1 auto; min-height: 0; border-radius: var(--fx-pr); overflow: hidden; }
.pg-models .bm-figure img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%; display: block; }
.pg-models .bm-figure .industries__caption { margin: 0; max-width: 44ch; font-size: var(--t-small); line-height: 1.55; color: #B9C2CF; }
@media (max-width: 860px) {
  .pg-models .bm-stage__grid { grid-template-columns: 1fr; }
  .pg-models .bm-figure { max-height: none; }
  .pg-models .bm-figure picture { height: clamp(300px, 86vw, 440px); flex: none; }
}

/* the sheet: the one core, then the models */
.pg-models .bm-models { --text-primary: var(--fx-ink); --text-secondary: var(--fx-ink-2); --text-muted: var(--fx-ink-3); --accent: var(--fx-gold); background: var(--fx-ivory); }
.pg-models .bm-models > .container { max-width: calc(var(--fx-wide) + 2 * var(--fx-gutter)); padding-inline: var(--fx-gutter); display: block; }
.pg-models .bm-models .section-head { max-width: 900px; margin-bottom: clamp(56px, 7vw, 112px); }
.pg-models .bm-models .section-title { font-size: var(--t-display-l); font-weight: 300; letter-spacing: -0.03em; line-height: 1.06; max-width: 18ch; color: var(--fx-ink); }
.pg-models .bm-models .section-lead { font-size: var(--t-lead); max-width: 58ch; color: var(--fx-ink-2); }
.pg-models .bm-models .overline { color: var(--fx-gold); letter-spacing: 0.12em; font-size: var(--t-eyebrow); }

/* six scenes */
.pg-models .industries__grid { display: grid; grid-template-columns: 1fr; gap: clamp(12px, 1.2vw, 18px); margin: 0; }
.pg-models .industry-card {
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); grid-template-rows: auto auto 1fr auto; column-gap: clamp(28px, 5vw, 96px);
  min-height: clamp(420px, 38vw, 560px); padding: clamp(32px, 4.2vw, 80px); border: 0; border-radius: var(--fx-pr);
  background: var(--fx-paper); color: var(--fx-ink-2); box-shadow: none;
  --text-primary: var(--fx-ink); --text-secondary: var(--fx-ink-2); --text-muted: var(--fx-ink-3); --accent: var(--fx-gold);
}
.pg-models .industry-card > .industry-card__index { grid-column: 1; grid-row: 1; font-size: clamp(3.5rem, 2rem + 5vw, 7.5rem); font-weight: 300; letter-spacing: -0.05em; line-height: 0.9; color: var(--fx-gold); font-family: var(--font-sans); }
.pg-models .industry-card > .industry-card__top { grid-column: 1; grid-row: 2; margin-top: clamp(20px, 3vw, 44px); display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.pg-models .industry-card h3 { font-size: var(--t-h2); font-weight: 700; letter-spacing: -0.022em; line-height: 1.12; color: var(--fx-ink); margin: 0; }
.pg-models .industry-card__badge { order: -1; padding: 0; border: 0; background: none; font-size: var(--t-eyebrow); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--fx-gold); }
.pg-models .industry-card > .industry-card__object { grid-column: 1; grid-row: 3; align-self: start; margin-top: 16px; font-family: var(--font-mono); font-size: var(--t-index); letter-spacing: 0.04em; line-height: 1.7; color: var(--fx-ink-3); }
.pg-models .industry-card > .industry-card__cta { grid-column: 1; grid-row: 4; align-self: end; justify-self: start; margin-top: 28px; }
.pg-models .industry-card > .industry-card__detail { grid-column: 2; grid-row: 1 / span 4; align-self: center; margin: 0; border: 0; padding: 0; }
.pg-models .industry-card__detail > summary { list-style: none; pointer-events: none; margin-bottom: 18px; font-size: var(--t-eyebrow); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--fx-gold); }
.pg-models .industry-card__detail > summary::-webkit-details-marker { display: none; }
.pg-models .industry-card__detail > summary::after, .pg-models .industry-card__detail > summary::before { display: none; }
.pg-models .industry-card__detail-body { display: grid; gap: 0; border-top: 1px solid var(--fx-rule); }
.pg-models .industry-card__detail-body p { margin: 0; padding: 16px 0; border-bottom: 1px solid var(--fx-rule); font-size: var(--t-body); line-height: 1.6; color: var(--fx-ink-2); }
.pg-models .industry-card__detail-body b { display: block; margin-bottom: 4px; font-size: var(--t-small); font-weight: 700; color: var(--fx-ink); }
.pg-models .industry-card__detail-body .industry-card__sub { font-weight: 600; color: var(--fx-ink); }

/* each model its own tone; odd ones mirror the columns */
.pg-models .industry-card:nth-child(1) { background: var(--fx-navy); --fx-rule: rgba(255,255,255,0.12); --text-primary: #F3F5F8; --text-secondary: var(--fm-neutral-300); --accent: var(--fx-gold-l); color: #C3CBD7; }
.pg-models .industry-card:nth-child(1) h3, .pg-models .industry-card:nth-child(1) .industry-card__detail-body b { color: #F3F5F8; }
.pg-models .industry-card:nth-child(1) .industry-card__detail-body p { color: #C3CBD7; }
.pg-models .industry-card:nth-child(1) :is(.industry-card__index, .industry-card__badge, summary) { color: var(--fx-gold-l); }
.pg-models .industry-card:nth-child(1) .industry-card__object { color: #9AA5B5; }
.pg-models .industry-card:nth-child(2) { background: var(--fx-gold-f); --fx-rule: rgba(11,22,39,0.18); }
.pg-models .industry-card:nth-child(2) :is(.industry-card__index, .industry-card__badge, summary) { color: var(--fx-ink); }
.pg-models .industry-card:nth-child(2) :is(.industry-card__object, .industry-card__detail-body p) { color: var(--fm-navy-900); }
.pg-models .industry-card:nth-child(3) { background: var(--fx-paper); box-shadow: 0 0 0 1px var(--fx-rule); }
.pg-models .industry-card:nth-child(4) { background: var(--fx-stone); }
.pg-models .industry-card:nth-child(5) { background: var(--fx-navy-2); --fx-rule: rgba(255,255,255,0.12); color: #C3CBD7; }
.pg-models .industry-card:nth-child(5) h3, .pg-models .industry-card:nth-child(5) .industry-card__detail-body b { color: #F3F5F8; }
.pg-models .industry-card:nth-child(5) .industry-card__detail-body p { color: #C3CBD7; }
.pg-models .industry-card:nth-child(5) :is(.industry-card__index, .industry-card__badge, summary) { color: var(--fx-gold-l); }
.pg-models .industry-card:nth-child(5) .industry-card__object { color: #9AA5B5; }
.pg-models .industry-card:nth-child(6) { background: var(--fx-sand); }
.pg-models .industry-card:nth-child(even) { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.pg-models .industry-card:nth-child(even) > :is(.industry-card__index, .industry-card__top, .industry-card__object, .industry-card__cta) { grid-column: 2; }
.pg-models .industry-card:nth-child(even) > .industry-card__detail { grid-column: 1; }
.pg-models .industry-card:nth-child(1) .industry-card__cta, .pg-models .industry-card:nth-child(5) .industry-card__cta { color: var(--fx-gold-l); }
.pg-models .industry-card__cta { color: var(--fx-gold); }
.pg-models .industry-card:nth-child(2) .industry-card__cta { color: var(--fx-ink); }
@media (max-width: 900px) {
  .pg-models .industry-card, .pg-models .industry-card:nth-child(even) { grid-template-columns: 1fr; grid-template-rows: none; min-height: 0; }
  .pg-models .industry-card > *, .pg-models .industry-card:nth-child(even) > * { grid-column: 1 !important; grid-row: auto !important; }
  .pg-models .industry-card > .industry-card__detail { margin-top: 28px; }
}

/* one financial logic — different assets: a statement panel */
.pg-models .industries__asset-callout { margin-top: clamp(56px, 7vw, 112px); padding: clamp(32px, 4vw, 72px); border: 0; border-radius: var(--fx-pr); background: var(--fx-navy); color: #C3CBD7; }
.pg-models .industries__asset-label { display: block; margin-bottom: 20px; font-size: var(--t-display-l); font-weight: 300; line-height: 1.08; letter-spacing: -0.03em; text-transform: none; color: #F3F5F8; font-family: var(--font-sans); }
.pg-models .industries__asset-callout p { font-size: var(--t-lead); line-height: 1.55; color: #C3CBD7; max-width: 70ch; }
.pg-models .industries__asset-note { font-size: var(--t-body) !important; color: #9AA5B5 !important; }
.pg-models .industries__final { margin-top: clamp(28px, 3vw, 48px); display: flex; flex-wrap: wrap; align-items: center; gap: 20px 32px; }
.pg-models .industries__final p { font-size: var(--t-h3); font-weight: 600; color: var(--fx-ink); max-width: 46ch; margin: 0; }

/* retail flagship: a paper exhibit on stone */
.pg-models .bm-flagship { background: var(--fx-stone); padding-block: var(--fx-space); --text-primary: var(--fx-ink); --text-secondary: var(--fx-ink-2); --text-muted: var(--fx-ink-3); --accent: var(--fx-gold); --micro-label-gold: var(--fx-gold); color: var(--fx-ink-2); border-radius: var(--fx-r) var(--fx-r) 0 0; }
.pg-models .bm-flagship .section-title { font-size: var(--t-display-l); font-weight: 300; letter-spacing: -0.03em; color: var(--fx-ink); }
.pg-models .bm-flagship .overline { color: var(--fx-gold); }
.pg-models .bm-flagship .flagship__col { background: var(--fx-paper); border-radius: var(--fx-cr); padding: clamp(24px, 2.4vw, 40px); border: 0; }
.pg-models .bm-flagship .flagship__h { color: var(--fx-ink); font-size: var(--t-h3); }
.pg-models .bm-stage__copy { grid-column: 1; grid-row: 1; }
.pg-models .bm-stage .bm-figure { grid-column: 2; grid-row: 1; order: 0; position: relative; top: auto; width: auto; }
@media (max-width: 860px) { .pg-models .bm-stage .bm-figure { grid-column: 1; grid-row: 2; } }
.pg-models .industry-card__detail-body b { text-transform: none; letter-spacing: 0; font-size: 1rem; }

/* ==========================================================================
   17. PAGE — BUDGETING & FORECASTING (.pg-budgeting)
   Navy thesis stage → ivory sheet with the seven-stage chain as a deck of cards
   (pinned on desktop when each fits; the decision is the one gold card) → paper
   library of the eight materials → navy CTA sheet.
   ========================================================================== */
.pg-budgeting .bf-stage-hero h1 { max-width: 17ch; }
.pg-budgeting .bf-chain .fx-head { margin-bottom: clamp(48px, 6vw, 96px); }
.pg-budgeting .bf-deck { list-style: none; margin: 0; padding: 0; }
.pg-budgeting .bf-stage {
  display: grid; grid-template-columns: clamp(64px, 9vw, 150px) minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: auto 1fr; gap: 14px clamp(24px, 3vw, 56px); align-items: start;
  min-height: clamp(220px, 22vw, 300px); padding: clamp(28px, 3.4vw, 60px);
  border-radius: var(--fx-pr) var(--fx-pr) 0 0; background: var(--fx-paper); box-shadow: 0 -1px 0 var(--fx-rule), 0 -24px 40px -34px rgba(8, 17, 31, 0.45);
}
.pg-budgeting .bf-stage:nth-child(3n + 2) { background: var(--fx-sand); }
.pg-budgeting .bf-stage:nth-child(3n) { background: var(--fx-stone); }
.pg-budgeting .bf-stage:last-child { border-radius: var(--fx-pr); }
.pg-budgeting .bf-stage__index { grid-row: 1 / span 2; font-family: var(--font-sans); font-size: var(--t-figure); font-weight: 300; letter-spacing: -0.04em; line-height: 0.9; color: var(--fx-gold); }
.pg-budgeting .bf-stage__name { grid-column: 2; grid-row: 1; }
.pg-budgeting .bf-stage__desc { grid-column: 3; grid-row: 1 / span 2; margin: 0; font-size: var(--t-lead); line-height: 1.5; color: var(--fx-ink-2); }
.pg-budgeting .bf-stage__links { grid-column: 2; grid-row: 2; align-self: end; display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 18px; margin: 0; }
.pg-budgeting .bf-stage__links .fx-meta { width: 100%; }
.pg-budgeting .bf-stage--decision { background: var(--fx-gold-f); box-shadow: none; }
.pg-budgeting .bf-stage--decision :is(.bf-stage__index, .fx-link) { color: var(--fx-ink); }
.pg-budgeting .bf-stage--decision .bf-stage__desc { color: var(--fm-navy-900); }
.pg-budgeting .bf-stage--decision .fx-meta { color: var(--fm-navy-900); }
@media (max-width: 1024px) {
  .pg-budgeting .bf-stage { grid-template-columns: clamp(56px, 10vw, 96px) minmax(0, 1fr); grid-template-rows: auto; }
  .pg-budgeting .bf-stage__index { grid-row: 1 / span 3; }
  .pg-budgeting .bf-stage__name, .pg-budgeting .bf-stage__desc, .pg-budgeting .bf-stage__links { grid-column: 2; grid-row: auto; }
}
@media (max-width: 640px) {
  .pg-budgeting .bf-stage { grid-template-columns: 1fr; min-height: 0; }
  .pg-budgeting .bf-stage__index { grid-row: auto; font-size: 2.6rem; }
  .pg-budgeting .bf-stage__name, .pg-budgeting .bf-stage__desc, .pg-budgeting .bf-stage__links { grid-column: 1; }
}

/* the library: the eight materials as an indexed publication list */
.pg-budgeting .bf-library { background: var(--fx-paper); padding-block: var(--fx-space); --text-primary: var(--fx-ink); --text-secondary: var(--fx-ink-2); --text-muted: var(--fx-ink-3); --accent: var(--fx-gold); --border-hairline: var(--fx-rule); color: var(--fx-ink-2); }
.pg-budgeting .bf-library > .container { max-width: calc(var(--fx-text) + 2 * var(--fx-gutter)); padding-inline: var(--fx-gutter); }
.pg-budgeting .bf-library .overline { color: var(--fx-gold); letter-spacing: 0.12em; font-size: var(--t-eyebrow); }
.pg-budgeting .bf-library .section-title { font-size: var(--t-h2); font-weight: 700; letter-spacing: -0.022em; color: var(--fx-ink); max-width: 26ch; }
.pg-budgeting .bf-library .section-lead { font-size: var(--t-lead); color: var(--fx-ink-2); max-width: 58ch; }
.pg-budgeting .bf-library .topic-row { border-color: var(--fx-rule); padding-block: clamp(22px, 2.4vw, 34px); }
.pg-budgeting .bf-library .topic-row__index { font-family: var(--font-mono); font-size: var(--t-index); color: var(--fx-gold); font-variant-numeric: tabular-nums; }
.pg-budgeting .bf-library .topic-row__title { font-size: var(--t-h3); font-weight: 700; color: var(--fx-ink); }
.pg-budgeting .bf-library .topic-row__title:hover { color: var(--fx-gold); }
.pg-budgeting .bf-library .topic-row__desc { font-size: var(--t-body); color: var(--fx-ink-2); max-width: 70ch; }
.pg-budgeting .bf-library .overline { font-family: var(--font-sans); font-weight: 700; }

/* ==========================================================================
   18. PAGE — ABOUT (.pg-about)
   Navy thesis → ivory thesis sheet → founder split (portrait half / text half)
   → practice mosaic → method on a spine → CTA sheet.
   ========================================================================== */
.pg-about .ab-stage h1 { max-width: 13ch; }
.pg-about .ab-thesis__text { margin: 0; max-width: 34ch; font-size: clamp(1.5rem, 1.1rem + 1.7vw, 2.6rem); font-weight: 300; line-height: 1.25; letter-spacing: -0.02em; color: var(--fx-ink); text-wrap: pretty; }
.pg-about .ab-founder { padding-block: var(--fx-space-s) var(--fx-space); }
.pg-about .ab-founder__split { min-height: clamp(560px, 52vw, 820px); }
.pg-about .ab-founder__media { background: #1B1F26; }
.pg-about .ab-founder__media .portrait { position: absolute; inset: 0; margin: 0; }
.pg-about .ab-founder__media .portrait__picture, .pg-about .ab-founder__media .portrait__img { display: block; width: 100%; height: 100%; }
.pg-about .ab-founder__media .portrait__img { object-fit: cover; object-position: 50% 22%; filter: none; }
.pg-about .ab-founder__text { gap: 16px; background: var(--fx-paper); }
.pg-about .ab-founder__text > p:not(.fx-eyebrow) { font-size: var(--t-body); line-height: 1.7; color: var(--fx-ink-2); max-width: 60ch; margin: 0; }
.pg-about .ab-founder__text .trust-links { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; margin-top: 12px; padding-top: 18px; border-top: 1px solid var(--fx-rule); }
.pg-about .ab-founder__text .trust-links a { font-weight: 700; font-size: var(--t-small); color: var(--fx-gold); border-bottom: 1px solid currentColor; padding-bottom: 2px; text-decoration: none; }
.pg-about .ab-founder__text .trust-links__meet { width: 100%; font-size: var(--t-meta); color: var(--fx-ink-3); }
.pg-about .ab-founder__text .about__cta { align-self: flex-start; margin-top: 8px; }
@media (max-width: 860px) { .pg-about .ab-founder__media { min-height: clamp(360px, 110vw, 520px); } }

.pg-about .ab-practice { padding-top: 0; }
.pg-about .ab-mosaic { list-style: none; margin: 0; padding: 0; }
.pg-about .ab-mosaic__tile { background: var(--fx-paper); color: var(--fx-ink); justify-content: space-between; }
.pg-about .ab-mosaic__tile--1 { background: var(--fx-navy); color: #F3F5F8; }
.pg-about .ab-mosaic__tile--1 .fx-index { color: var(--fx-gold-l); }
.pg-about .ab-mosaic__tile--2 { background: var(--fx-gold-f); }
.pg-about .ab-mosaic__tile--2 .fx-index { color: var(--fx-ink); }
.pg-about .ab-mosaic__tile--3 { background: var(--fx-stone); }
.pg-about .ab-mosaic__tile--4 { background: var(--fx-sand); }
.pg-about .ab-mosaic__tile--5 { background: var(--fx-navy-2); color: #F3F5F8; }
.pg-about .ab-mosaic__tile--5 .fx-index { color: var(--fx-gold-l); }
.pg-about .ab-mosaic__tile--6 { background: var(--fx-paper); }
.pg-about .ab-mosaic__text { font-size: var(--t-h3); font-weight: 600; line-height: 1.3; letter-spacing: -0.01em; max-width: 22ch; }
.pg-about .ab-mosaic__text b { font-weight: 700; }

.pg-about .ab-method { background: var(--fx-ivory); padding-block: var(--fx-space); --text-primary: var(--fx-ink); --text-secondary: var(--fx-ink-2); --text-muted: var(--fx-ink-3); --accent: var(--fx-gold); --border-hairline: var(--fx-rule); color: var(--fx-ink-2); }
.pg-about .ab-method > .container { max-width: calc(var(--fx-text) + 2 * var(--fx-gutter)); padding-inline: var(--fx-gutter); }
.pg-about .ab-method .overline { color: var(--fx-gold); font-family: var(--font-sans); font-weight: 700; letter-spacing: 0.12em; font-size: var(--t-eyebrow); }
.pg-about .ab-method .section-title { font-size: var(--t-display-l); font-weight: 300; letter-spacing: -0.03em; line-height: 1.06; color: var(--fx-ink); max-width: 18ch; }
.pg-about .ab-method .section-lead { font-size: var(--t-lead); color: var(--fx-ink-2); max-width: 60ch; }
.pg-about .about-method__list { position: relative; margin-top: clamp(40px, 5vw, 72px); padding-left: clamp(40px, 4vw, 64px); }
.pg-about .about-method__list::before { content: ""; position: absolute; left: clamp(14px, 1.4vw, 22px); top: 14px; bottom: 14px; width: 1px; background: var(--fx-gold-f); }
.pg-about .about-method__row { position: relative; border-color: var(--fx-rule); padding-block: clamp(18px, 2vw, 28px); }
.pg-about .about-method__row::before { content: ""; position: absolute; left: calc(clamp(14px, 1.4vw, 22px) - clamp(40px, 4vw, 64px) - 5px); top: calc(clamp(18px, 2vw, 28px) + 8px); width: 11px; height: 11px; border-radius: 50%; background: var(--fx-ivory); box-shadow: inset 0 0 0 2px var(--fx-gold-f); }
.pg-about .about-method__index { font-family: var(--font-mono); font-size: var(--t-index); color: var(--fx-gold); font-variant-numeric: tabular-nums; }
.pg-about .about-method__name { font-size: var(--t-h3); font-weight: 700; color: var(--fx-ink); }
/* ghost buttons on light surfaces of designed pages use navy ink */
:is(.fx-page .fx-sheet:not(.fx-sheet--navy), .fx-page .fx-band:not(.fx-band--navy), .fx-page .fx-split__text:not(.fx-split__text--navy)) .btn--ghost { color: var(--fx-ink); border-color: rgba(11, 22, 39, 0.3); background: transparent; }
:is(.fx-page .fx-sheet:not(.fx-sheet--navy), .fx-page .fx-band:not(.fx-band--navy), .fx-page .fx-split__text:not(.fx-split__text--navy)) .btn--ghost:hover { border-color: var(--fx-ink); background: rgba(11, 22, 39, 0.04); }

/* ==========================================================================
   19. READING SYSTEM (.rd-page) — articles, solutions, offers, knowledge base
   Cover stage (variant chosen per page) → the ivory reading sheet rises over it.
   Inside the sheet: a calm reading column; designed moments (tables, callouts,
   formulas, KPI groups, the owner's takeaway, the decision stages) break out of
   the column. Paragraphs never animate.
   ========================================================================== */
.rd-page { --rd-measure: 68ch; }
/* --- cover ---------------------------------------------------------------- */
.rd-page .rd-cover { min-height: clamp(520px, 76svh, 800px); padding: 0; margin: 0; border: 0; }
.rd-page .rd-cover .fx-stage__content { padding-bottom: calc(var(--fx-r) + clamp(48px, 7vh, 96px)); }
.rd-page .rd-cover .crumbs { display: flex; flex-wrap: wrap; gap: 6px 10px; margin: 0 0 clamp(28px, 5vh, 56px); font-size: var(--t-meta); color: #C3CBD7; opacity: 0.9; }
.rd-page .rd-cover .crumbs a { color: inherit; text-decoration: none; opacity: 0.85; }
.rd-page .rd-cover .crumbs a:hover { opacity: 1; }
.rd-page .rd-cover .doc-hero__eyebrow { display: inline-flex; align-items: center; gap: 12px; margin: 0 0 22px; font-family: var(--font-sans); font-size: var(--t-eyebrow); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--fx-gold-l); }
.rd-page .rd-cover .doc-hero__eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; opacity: 0.7; }
.rd-page .rd-cover h1 { margin: 0; max-width: 22ch; font-family: var(--font-sans); font-size: var(--t-h1); font-weight: 300; line-height: 1.06; letter-spacing: -0.03em; color: #F3F5F8; text-wrap: balance; }
.rd-page .rd-cover h1 strong { font-weight: 700; }
.rd-page .rd-cover h1 .fx-gold { color: var(--fx-gold-l); }
.rd-page .rd-cover--short h1 { font-size: var(--t-display-xl); max-width: 14ch; }
.rd-page .rd-cover .doc-hero__lead { max-width: 60ch; margin: 28px 0 0; font-size: var(--t-lead); line-height: 1.55; color: #D0D7E1; }
.rd-page .rd-cover .doc-hero__context { max-width: 70ch; margin: 28px 0 0; padding: 18px 0 0; border-top: 1px solid rgba(255, 255, 255, 0.14); font-size: var(--t-meta); font-weight: 500; line-height: 1.55; color: #9AA5B5; }
/* Cases logic statement: keep the existing outline and radius while allowing
   every wrapped line to determine the frame's block size. */
.rd-page .rd-cover .doc-hero__context.doc-hero__logic-frame {
  display: block;
  box-sizing: border-box;
  inline-size: fit-content;
  max-inline-size: min(70ch, 100%);
  block-size: auto;
  min-block-size: 0;
  padding: 12px 18px;
  white-space: normal;
  overflow: visible;
  overflow-wrap: break-word;
  text-overflow: clip;
}
/* Real-estate decision chain: a content-sized outline whose block geometry follows
   every wrapped line. This class is deliberately local so other hero notes retain
   their established editorial treatment. */
.rd-page .rd-cover .doc-hero__context.doc-hero__flow {
  display: block;
  box-sizing: border-box;
  inline-size: fit-content;
  max-inline-size: min(70ch, 100%);
  block-size: auto;
  min-block-size: 0;
  margin-top: 28px;
  padding: 12px 18px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: var(--fx-cr);
  line-height: 1.6;
  white-space: normal;
  overflow: visible;
  overflow-wrap: break-word;
  text-overflow: clip;
}
@media (max-width: 600px) {
  .rd-page .rd-cover .doc-hero__context.doc-hero__flow {
    inline-size: 100%;
    max-inline-size: 100%;
    padding: 14px 16px;
    border-radius: 14px;
    line-height: 1.65;
  }
}
.rd-page .rd-cover .ai-doc-hero__subtitle { color: var(--fx-gold-l); font-size: var(--t-lead); max-width: 56ch; }
/* light cover: stone field, navy type (knowledge base, methodology, templates) */
.rd-page .rd-cover--light { background: var(--fx-stone); color: var(--fx-ink); }
.rd-page .rd-cover--light::before { display: none; }
.rd-page .rd-cover--light .crumbs { color: var(--fx-ink-3); }
.rd-page .rd-cover--light .doc-hero__eyebrow { color: var(--fx-gold); }
.rd-page .rd-cover--light h1 { color: var(--fx-ink); }
.rd-page .rd-cover--light h1 .fx-gold { color: var(--fx-gold); }
.rd-page .rd-cover--light .doc-hero__lead { color: var(--fx-ink-2); }
.rd-page .rd-cover--light .doc-hero__context { color: var(--fx-ink-3); border-top-color: var(--fx-rule); }
/* split cover: headline left, the page's chain / key thesis as a panel right */
.rd-page .rd-cover--split .fx-stage__content { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 24px clamp(32px, 5vw, 96px); align-items: end; }
.rd-page .rd-cover--split .rd-cover__main { min-width: 0; }
.rd-page .rd-cover--split .doc-hero__context { margin: 0; padding: clamp(24px, 2.6vw, 40px); border: 0; border-radius: var(--fx-pr); background: rgba(255, 255, 255, 0.06); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1), inset 3px 0 0 var(--fx-gold-f); font-size: var(--t-body); line-height: 1.7; color: #E6EAF0; }
@media (max-width: 860px) { .rd-page .rd-cover--split .fx-stage__content { grid-template-columns: 1fr; } }
/* offer cover: the commercial terms become a quiet strip of facts */
.rd-page .rd-cover--offer .doc-hero__context { display: inline-block; padding: 14px 20px; border: 0; border-radius: 999px; background: rgba(213, 155, 43, 0.12); box-shadow: inset 0 0 0 1px rgba(213, 155, 43, 0.4); font-size: var(--t-small); font-weight: 600; color: #F3F5F8; }
/* photo cover */
.rd-page .rd-cover--photo .fx-stage__scrim { background: linear-gradient(90deg, rgba(8,17,31,0.9) 0%, rgba(8,17,31,0.72) 44%, rgba(8,17,31,0.2) 78%, rgba(8,17,31,0.1) 100%), linear-gradient(180deg, rgba(8,17,31,0.5) 0%, rgba(8,17,31,0) 30%, rgba(8,17,31,0) 64%, rgba(8,17,31,0.75) 100%); }

/* --- the reading sheet -------------------------------------------------------- */
.rd-page .rd-sheet { padding-bottom: clamp(24px, 3vw, 48px); --text-primary: var(--fx-ink); --text-secondary: var(--fm-neutral-700); --text-muted: var(--fx-ink-3); --label-muted: var(--fx-ink-3); --accent: var(--fx-gold); --accent-bright: var(--fx-gold); --micro-label-gold: var(--fx-gold); --border-hairline: var(--fx-rule); --glass-border: var(--fx-rule); --glass-border-gold: rgba(126, 95, 22, 0.35); --glass-fill: var(--fx-paper); --border-gold: rgba(126, 95, 22, 0.45); --gold-500: var(--fx-gold-f); --gold-400: var(--fx-gold); --gold-300: var(--fx-gold); }
.rd-page .rd-sheet > .container, .rd-page .rd-sheet > div > .container { max-width: none; padding-inline: 0; }
.rd-page .rd-sheet .container { padding-inline: var(--fx-gutter); }
/* the reading column */
.rd-page .rd-sheet .doc { max-width: var(--rd-measure); margin-inline: auto; padding: 0; }
.rd-page .rd-sheet .doc :where(p, li) { font-size: var(--t-body-l); line-height: 1.72; color: var(--fm-neutral-700); }
.rd-page .rd-sheet .doc :where(p) { margin: 0 0 1.1em; }
.rd-page .rd-sheet .doc :where(ul, ol) { margin: 0 0 1.3em; padding-left: 1.2em; }
.rd-page .rd-sheet .doc :where(li) { margin-bottom: 0.45em; padding-left: 0.2em; }
.rd-page .rd-sheet .doc li::marker { color: var(--fx-gold); }
.rd-page .rd-sheet .doc strong, .rd-page .rd-sheet .doc b { color: var(--fx-ink); font-weight: 700; }
.rd-page .rd-sheet .doc h2 { margin: 2.2em 0 0.65em; font-family: var(--font-sans); font-size: var(--t-h2); font-weight: 700; line-height: 1.14; letter-spacing: -0.022em; color: var(--fx-ink); text-wrap: balance; max-width: 26ch; }
.rd-page .rd-sheet .doc h3 { margin: 1.8em 0 0.5em; font-family: var(--font-sans); font-size: var(--t-h3); font-weight: 700; line-height: 1.3; color: var(--fx-ink); }
.rd-page .rd-sheet .doc > section:first-child > h2:first-child, .rd-page .rd-sheet .doc > :first-child > h2:first-child, .rd-page .rd-sheet .doc > h2:first-child { margin-top: 0; }
.rd-page .rd-sheet .doc a:not(.btn):not(.cta-btn) { color: var(--fx-gold); text-decoration-thickness: 1px; text-underline-offset: 3px; }
/* article sections: numbered editorial rhythm */
.rd-page .rd-sheet .article-section { position: relative; padding-top: clamp(28px, 3vw, 44px); margin-top: clamp(28px, 3vw, 44px); border-top: 1px solid var(--fx-rule); }
.rd-page .rd-sheet .article-section:first-child { border-top: 0; margin-top: 0; padding-top: 0; }
.rd-page .rd-sheet .article-section > h2 { margin-top: 0; }
/* the financial mechanism: a stone field that leaves the column */
.rd-page .rd-sheet .article-section--financial { margin-inline: calc(-1 * clamp(0px, 5vw, 96px)); padding: clamp(28px, 3.4vw, 56px) clamp(22px, 5vw, 96px); border: 0; border-radius: var(--fx-pr); background: var(--fx-stone); }
.rd-page .rd-sheet .article-section--financial + .article-section { border-top: 0; }
/* the owner's takeaway: the conclusion as a gold-ruled paper panel */
.rd-page .rd-sheet .rd-takeaway, .rd-page .rd-sheet .article-conclusion { margin-inline: calc(-1 * clamp(0px, 5vw, 96px)); padding: clamp(28px, 3.4vw, 56px) clamp(22px, 5vw, 96px); border: 0; border-radius: var(--fx-pr); background: var(--fx-paper); box-shadow: inset 0 3px 0 var(--fx-gold-f), 0 0 0 1px var(--fx-rule); }
.rd-page .rd-sheet .rd-takeaway > h2::before, .rd-page .rd-sheet .article-conclusion > h2::before { content: ""; display: block; width: 28px; height: 1px; margin-bottom: 18px; background: var(--fx-gold-f); }
.rd-page .rd-sheet .rd-takeaway :where(p), .rd-page .rd-sheet .article-conclusion :where(p) { font-size: clamp(1.12rem, 1rem + 0.45vw, 1.35rem); line-height: 1.6; color: var(--fx-ink); }
.rd-page .rd-sheet .rd-takeaway + .article-section, .rd-page .rd-sheet .article-section + .rd-takeaway { border-top: 0; }
/* what the owner must see: a navy field */
.rd-page .rd-sheet .rd-owner { margin-inline: calc(-1 * clamp(0px, 5vw, 96px)); padding: clamp(28px, 3.4vw, 56px) clamp(22px, 5vw, 96px); border: 0; border-radius: var(--fx-pr); background: var(--fx-navy); }
.rd-page .rd-sheet .rd-owner :where(h2, h3, strong, b) { color: #F3F5F8; }
.rd-page .rd-sheet .rd-owner :where(p, li) { color: #C3CBD7; }
.rd-page .rd-sheet .rd-owner li::marker { color: var(--fx-gold-l); }
.rd-page .rd-sheet .rd-owner + .article-section { border-top: 0; }
@media (max-width: 860px) {
  .rd-page .rd-sheet :is(.article-section--financial, .rd-takeaway, .article-conclusion, .rd-owner) { margin-inline: calc(-1 * var(--fx-gutter) + 8px); padding-inline: 22px; }
}
/* decision stages (the priority retail article) */
.rd-page .rd-sheet .article-section[data-editorial-step]::before { font-family: var(--font-mono); font-size: var(--t-index); letter-spacing: 0.08em; color: var(--fx-gold); font-variant-numeric: tabular-nums; }

/* --- designed moments: callouts, checks, formulas, tables, KPI groups ----------- */
.rd-page .rd-sheet :is(.callout, .fin-callout) { margin: clamp(28px, 3vw, 44px) 0; padding: clamp(22px, 2.4vw, 34px) clamp(22px, 2.6vw, 40px); border: 0; border-radius: var(--fx-cr); background: var(--fx-stone); }
.rd-page .rd-sheet :is(.callout__label, .fin-callout__label, .fin-check__label, .cb-example__tag, .fcf-audit__label) { display: block; margin-bottom: 10px; font-family: var(--font-sans); font-size: var(--t-eyebrow); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--fx-gold); }
.rd-page .rd-sheet :is(.callout, .fin-callout) :where(p, li) { font-size: var(--t-body); line-height: 1.65; }
.rd-page .rd-sheet :is(.callout, .fin-callout) :where(p):last-child { margin-bottom: 0; }
.rd-page .rd-sheet .fin-check { margin: clamp(28px, 3vw, 44px) 0; padding: clamp(24px, 2.8vw, 44px); border: 0; border-radius: var(--fx-pr); background: var(--fx-navy); color: #C3CBD7; }
.rd-page .rd-sheet .fin-check :where(p, li) { color: #C3CBD7; font-size: var(--t-body); }
.rd-page .rd-sheet .fin-check :where(strong, b, h3) { color: #F3F5F8; }
.rd-page .rd-sheet .fin-check .fin-check__label { color: var(--fx-gold-l); }
.rd-page .rd-sheet .fin-check li::marker { color: var(--fx-gold-l); }
.rd-page .rd-sheet .fin-list { padding-left: 0; list-style: none; border-top: 1px solid var(--fx-rule); }
.rd-page .rd-sheet .fin-list > li { margin: 0; padding: 14px 0 14px 28px; border-bottom: 1px solid var(--fx-rule); position: relative; }
.rd-page .rd-sheet .fin-list > li::before { content: ""; position: absolute; left: 4px; top: 1.35em; width: 9px; height: 1px; background: var(--fx-gold-f); }
/* formulas become calculation fields */
.rd-page .rd-sheet :is(.art-formula, .fcf-formula, .cb-example .f) { margin: clamp(22px, 2.6vw, 36px) 0; padding: clamp(20px, 2.4vw, 32px) clamp(22px, 2.6vw, 36px); border: 0; border-radius: var(--fx-cr); background: var(--fx-navy); color: #F3F5F8; font-family: var(--font-mono); font-size: clamp(0.88rem, 0.84rem + 0.2vw, 1rem); line-height: 1.8; }
.rd-page .rd-sheet :is(.art-formula, .fcf-formula) :is(b, strong) { color: var(--fx-gold-l); font-weight: 500; }
.rd-page .rd-sheet :is(.art-formula, .fcf-formula) em { color: #9AA5B5; }
.rd-page .rd-sheet .cb-example { border: 0; border-radius: var(--fx-cr); background: var(--fx-stone); }
.rd-page .rd-sheet .cb-example .f { display: block; margin: 8px 0; padding: 12px 18px; font-size: 0.92rem; }
/* financial tables: one premium treatment for every table family */
.rd-page .rd-sheet :is(.fin-table-wrap, .art-table-wrap, .fcf-table-wrap, .cb-table-wrap, .retail-table-wrap, .table-scroll) { margin: clamp(28px, 3vw, 44px) 0; border: 0; border-radius: var(--fx-cr); background: var(--fx-paper); box-shadow: 0 0 0 1px var(--fx-rule); overflow-x: auto; -webkit-overflow-scrolling: touch; }
.rd-page .rd-sheet table { width: 100%; border-collapse: collapse; font-size: var(--t-small); font-variant-numeric: tabular-nums; background: transparent; }
.rd-page .rd-sheet table caption { caption-side: top; text-align: left; padding: 18px 20px 8px; font-size: var(--t-eyebrow); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--fx-gold); }
.rd-page .rd-sheet table :is(th, td) { padding: 12px 20px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--fx-rule); color: var(--fm-neutral-700); line-height: 1.45; background: transparent; }
.rd-page .rd-sheet table thead th { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.03em; color: var(--fx-ink-3); border-bottom: 1px solid rgba(126, 95, 22, 0.45); white-space: nowrap; background: transparent; }
.rd-page .rd-sheet table tbody tr:last-child :is(td, th) { border-bottom: 0; }
.rd-page .rd-sheet table tbody th, .rd-page .rd-sheet table td:first-child { font-weight: 600; color: var(--fx-ink); }
.rd-page .rd-sheet table .num, .rd-page .rd-sheet table td.num { text-align: right; white-space: nowrap; }
/* tables and wide exhibits may leave the reading column on desktop */
@media (min-width: 1100px) {
  .rd-page .rd-sheet :is(.art-table-wrap--wide, .fcf-table-wrap) { margin-inline: calc(-1 * min(12vw, 160px)); }
}
/* KPI / level card groups become quiet panels */
.rd-page .rd-sheet :is(.art-kpi__card, .fcf-kpi__card, .retail-kpi__card, .fcf-status__card, .cb-scene, .cb-level, .cb-q, .cb-factor, .retail-feature, .retail-action, .retail-path__step, .ai-kpi, .ai-question-card, .ai-mini-card) { border: 0; border-radius: var(--fx-cr); background: var(--fx-paper); box-shadow: 0 0 0 1px var(--fx-rule); }
.rd-page .rd-sheet :is(.art-kpi__lvl, .fcf-kpi__lvl, .retail-kpi__label) { font-family: var(--font-sans); font-weight: 700; letter-spacing: 0.1em; color: var(--fx-gold); }
.rd-page .rd-sheet :is(.art-kpi__val, .fcf-kpi__val, .retail-proof__num) { font-family: var(--font-sans); font-weight: 300; letter-spacing: -0.03em; color: var(--fx-ink); }

/* --- inline CTA bands, FAQ, related, map link, final CTA -------------------------- */
.rd-page .rd-sheet .doc .cta-band { margin: clamp(36px, 4vw, 56px) 0; padding: clamp(24px, 3vw, 44px); border: 0; border-radius: var(--fx-pr); background: var(--fx-navy); color: #C3CBD7; }
.rd-page .rd-sheet .doc .cta-band .cta-band__title { margin: 0 0 10px; font-size: var(--t-h3); font-weight: 700; color: #F3F5F8; }
.rd-page .rd-sheet .doc .cta-band .cta-band__text { margin: 0 0 20px; font-size: var(--t-body); color: #C3CBD7; }
.rd-page .rd-sheet .doc .cta-band .btn--ghost { color: #F3F5F8; border-color: rgba(255, 255, 255, 0.3); }
.rd-page .rd-sheet .faq { max-width: var(--rd-measure); margin: clamp(56px, 7vw, 112px) auto 0; }
.rd-page .rd-sheet .faq > h2 { font-size: var(--t-h2); font-weight: 700; letter-spacing: -0.022em; color: var(--fx-ink); margin: 0 0 24px; }
.rd-page .rd-sheet .faq__item { border: 0; border-top: 1px solid var(--fx-rule); border-radius: 0; background: transparent; padding: 0; }
.rd-page .rd-sheet .faq__item:last-of-type { border-bottom: 1px solid var(--fx-rule); }
.rd-page .rd-sheet .faq__item > summary { padding: 20px 36px 20px 0; font-size: var(--t-h3); font-weight: 700; color: var(--fx-ink); }
.rd-page .rd-sheet .faq__item__body { padding: 0 0 22px; font-size: var(--t-body); line-height: 1.7; color: var(--fx-ink-2); }
.rd-page .rd-sheet .map-cta { max-width: var(--rd-measure); margin: clamp(40px, 5vw, 72px) auto 0; padding: 22px 0; border: 0; border-top: 1px solid var(--fx-rule); border-bottom: 1px solid var(--fx-rule); background: transparent; }
.rd-page .rd-sheet .related { max-width: calc(1080px + 2 * var(--fx-gutter)); margin: clamp(56px, 7vw, 112px) auto 0; padding-inline: var(--fx-gutter); }
.rd-page .rd-sheet .related__label { display: block; margin-bottom: 18px; font-size: var(--t-eyebrow); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--fx-gold); }
.rd-page .rd-sheet .related__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.rd-page .rd-sheet .related__grid a { display: flex; align-items: flex-end; min-height: 120px; padding: 20px 22px; border: 0; border-radius: var(--fx-cr); background: var(--fx-paper); box-shadow: 0 0 0 1px var(--fx-rule); font-size: var(--t-body); font-weight: 700; line-height: 1.35; color: var(--fx-ink); text-decoration: none; transition: box-shadow 220ms ease, transform 220ms var(--fx-ease); }
.rd-page .rd-sheet .related__grid a:hover { box-shadow: 0 0 0 1px rgba(126, 95, 22, 0.55); transform: translateY(-2px); }
/* the final CTA band of the page becomes the navy closing sheet */
.rd-page .rd-sheet > .container:last-child .cta-band, .rd-page .rd-sheet > section.cta-band:last-child, .rd-page .rd-sheet > .cta-band:last-child { margin-top: clamp(56px, 7vw, 112px); }
.rd-page .rd-sheet section.cta-band, .rd-page .rd-sheet > .container > .cta-band { position: relative; max-width: none; margin-inline: 0; padding: clamp(48px, 6vw, 96px) var(--fx-gutter); border: 0; border-radius: var(--fx-r) var(--fx-r) 0 0; background: var(--fx-navy); color: #C3CBD7; }
.rd-page .rd-sheet section.cta-band :is(.cta-band__title, h2), .rd-page .rd-sheet > .container > .cta-band .cta-band__title { max-width: 22ch; font-size: clamp(1.75rem, 1.4036rem + 2.1905vw, 3.375rem); /* --t-display-l with a lower floor: one long word fits the 236px band at 320 */ font-weight: 300; letter-spacing: -0.03em; line-height: 1.08; color: #F3F5F8; }
.rd-page .rd-sheet section.cta-band .cta-band__text, .rd-page .rd-sheet > .container > .cta-band .cta-band__text { max-width: 58ch; font-size: var(--t-lead); color: #C3CBD7; }
.rd-page .rd-sheet section.cta-band .btn--ghost, .rd-page .rd-sheet > .container > .cta-band .btn--ghost { color: #F3F5F8; border-color: rgba(255, 255, 255, 0.3); }
.rd-page main:has(.rd-sheet section.cta-band:last-child) + .footer .fx-closing { padding-top: clamp(24px, 3vw, 40px); }
/* owner view: specificity above the reading column, nested callouts dissolve into the navy field */
.rd-page .rd-sheet .doc .rd-owner :is(h2, h3, strong, b) { color: #F3F5F8; }
.rd-page .rd-sheet .doc .rd-owner :is(p, li) { color: #C3CBD7; }
.rd-page .rd-sheet .doc .rd-owner :is(.fin-callout, .callout, .fin-check) { margin: 18px 0 0; padding: 0; background: transparent; box-shadow: none; }
.rd-page .rd-sheet .doc .rd-owner :is(.fin-callout__label, .callout__label, .fin-check__label) { color: var(--fx-gold-l); }
.rd-page .rd-sheet .doc .rd-owner li::marker { color: var(--fx-gold-l); }
.rd-page .rd-sheet .doc .rd-owner .fin-list > li { border-color: rgba(255, 255, 255, 0.12); }
.rd-page .rd-sheet .doc .rd-takeaway :is(h2, strong) { color: var(--fx-ink); }
.rd-page .rd-sheet .doc .rd-takeaway :where(p) { color: var(--fx-ink); }
/* light covers: quiet labels at AA on stone */
.rd-page .rd-cover--light .crumbs, .rd-page .rd-cover--light .doc-hero__context { color: var(--fx-ink-2); }
/* dark exhibits inside the reading column keep their own ink */
.rd-page .rd-sheet .doc .finmentor-compare__panel :is(p, li) { color: var(--text-secondary); }
.rd-page .rd-sheet .doc .finmentor-compare__panel .finmentor-flow__node { color: var(--text-primary); }
.rd-page .rd-sheet .cta-btn-secondary { color: #F3F5F8; border-color: rgba(255, 255, 255, 0.35); }
/* light covers: quiet labels at AA on stone */
.rd-page .rd-cover--light .crumbs, .rd-page .rd-cover--light .doc-hero__context { color: var(--fx-ink-2); }
/* dark exhibits inside the reading column keep their own ink */
.rd-page .rd-sheet .doc .finmentor-compare__panel :is(p, li) { color: var(--text-secondary); }
.rd-page .rd-sheet .doc .finmentor-compare__panel .finmentor-flow__node { color: var(--text-primary); }
.rd-page .rd-sheet .cta-btn-secondary { color: #F3F5F8; border-color: rgba(255, 255, 255, 0.35); }
/* every navy surface of the reading system carries the dark ink set */
.rd-page :is(.rd-cover:not(.rd-cover--light), .rd-sheet .doc .cta-band, .rd-sheet section.cta-band, .rd-sheet > .container > .cta-band, .rd-sheet .fin-check, .rd-sheet .rd-owner) { --text-primary: #F3F5F8; --text-secondary: var(--fm-neutral-300); --text-muted: var(--fm-neutral-400); --label-muted: var(--fm-neutral-400); --accent: var(--fx-gold-l); --accent-bright: var(--fm-gold); --micro-label-gold: var(--fx-gold-l); --gold-400: var(--fx-gold-l); --border-hairline: rgba(255, 255, 255, 0.12); --glass-border: rgba(255, 255, 255, 0.14); --glass-border-gold: rgba(213, 155, 43, 0.4); --glass-fill: rgba(255, 255, 255, 0.05); }
.rd-page .rd-sheet :is(.doc .cta-band, section.cta-band) :is(p, .overline) { color: #C3CBD7; }
.rd-page .rd-sheet :is(.doc .cta-band, section.cta-band) :is(h2, h3, .cta-band__title) { color: #F3F5F8; }
.rd-page .rd-sheet :is(.doc .cta-band, section.cta-band) a:not(.btn):not(.cta-btn) { color: var(--fx-gold-l); }
.rd-page .rd-cover:not(.rd-cover--light) .crumbs span { color: #E6EAF0; }
.rd-page .rd-cover--light .crumbs span { color: var(--fx-ink); }
/* quiet metadata stays at AA on stone and sand */
.fx-meta { color: #525D6E; }
.pg-owner .ow-contours .pillar:nth-child(2) { --label-muted: var(--fm-neutral-700); --text-muted: var(--fm-neutral-700); }
.pg-models :is(.industry-card:nth-child(4), .industry-card:nth-child(6), .bm-flagship) { --text-muted: var(--fm-neutral-600); }
.pg-models .industry-card:is(:nth-child(4), :nth-child(6)) .industry-card__object { color: #4A5669; }
.pg-models .bm-flagship .flagship__for { color: #3D4A5F; }

/* --- solution pages without an article column -------------------------------------
   Bare sections (real estate, capacity, P&L vs cash, renewal, client base) get the reading
   typography; prose-only sections become a heading rail + text column, exhibit sections
   a wider column. Article sections without .doc keep the reading measure. */
.rd-page .rd-sheet > .container > :is(section:not([class]), section.article-section) { max-width: var(--rd-measure); margin-inline: auto; }
.rd-page .rd-sheet > .container > section:not([class]) { padding-block: clamp(28px, 3.4vw, 52px); border-top: 1px solid var(--fx-rule); }
.rd-page .rd-sheet > .container:first-child > section:not([class]) { border-top: 0; padding-top: 0; }
.rd-page .rd-sheet > .container > :is(section:not([class]), section.article-section) :where(p, li) { font-size: var(--t-body-l); line-height: 1.72; color: var(--fm-neutral-700); }
.rd-page .rd-sheet > .container > :is(section:not([class]), section.article-section) :where(p) { margin: 0 0 1.1em; }
.rd-page .rd-sheet > .container > :is(section:not([class]), section.article-section) :where(p):last-child { margin-bottom: 0; }
.rd-page .rd-sheet > .container > :is(section:not([class]), section.article-section) :is(strong, b) { color: var(--fx-ink); font-weight: 700; }
.rd-page .rd-sheet > .container > :is(section:not([class]), section.article-section) > h2 { margin: 0 0 0.65em; font-family: var(--font-sans); font-size: var(--t-h2); font-weight: 700; line-height: 1.14; letter-spacing: -0.022em; color: var(--fx-ink); text-wrap: balance; max-width: 26ch; }
.rd-page .rd-sheet > .container > :is(section:not([class]), section.article-section) h3 { margin: 1.6em 0 0.5em; font-size: var(--t-h3); font-weight: 700; line-height: 1.3; color: var(--fx-ink); }
.rd-page .rd-sheet > .container > section:not([class]) :where(ul) { margin: 0 0 1.3em; padding-left: 1.2em; }
.rd-page .rd-sheet > .container > section:not([class]) li::marker { color: var(--fx-gold); }
@media (min-width: 1024px) {
  .rd-page .rd-sheet > .container > section:not([class]):not(:has(table, [class^="cb-"], [class*=" cb-"], ul)) { max-width: 1180px; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: clamp(40px, 5vw, 88px); align-items: start; }
  .rd-page .rd-sheet > .container > section:not([class]):not(:has(table, [class^="cb-"], [class*=" cb-"], ul)) > h2 { grid-column: 1; grid-row: 1 / span 9; position: sticky; top: calc(var(--header-h, 72px) + 32px); margin: 0; font-size: var(--t-h2); }
  .rd-page .rd-sheet > .container > section:not([class]):not(:has(table, [class^="cb-"], [class*=" cb-"], ul)) > :not(h2) { grid-column: 2; max-width: 64ch; }
  .rd-page .rd-sheet > .container > section:not([class]):has(table, [class^="cb-"], [class*=" cb-"]) { max-width: 1080px; }
  .rd-page .rd-sheet > .container > section:not([class]):has(table, [class^="cb-"], [class*=" cb-"]) > :is(p, h2, h3, ul) { max-width: var(--rd-measure); }
}
/* reading headings: a line box tall enough for Cyrillic descenders (no self-clipping) */
.rd-page .rd-sheet :is(.doc, .container > section) h2 { line-height: 1.2; padding-bottom: 0.06em; }
@media (min-width: 1024px) {
  .rd-page .rd-sheet > .container > section.article-section:is(.article-section--financial, .article-conclusion, .rd-takeaway, .rd-owner) { max-width: calc(var(--rd-measure) + 160px); padding-inline: 80px; }
}
/* article sections each wrapped in their own .container: every one is a :first-child, so the
   rhythm is restored from the container order instead */
.rd-page .rd-sheet > .container + .container > section.article-section:first-child { margin-top: clamp(28px, 3vw, 44px); padding-top: clamp(28px, 3vw, 44px); border-top: 1px solid var(--fx-rule); }
.rd-page .rd-sheet > .container + .container > section.article-section:is(.article-section--financial, .article-conclusion, .rd-takeaway, .rd-owner):first-child,
.rd-page .rd-sheet > .container:has(> :is(.article-section--financial, .article-conclusion, .rd-takeaway, .rd-owner)) + .container > section.article-section:first-child { border-top: 0; }
.rd-page .rd-sheet > .container + .container > section.article-section:is(.article-section--financial, .article-conclusion, .rd-takeaway, .rd-owner):first-child { padding-top: clamp(28px, 3.4vw, 56px); }
/* article lists keep their drawn check / counter markers: indent the text past them */
.rd-page .rd-sheet .doc :where(ul, ol) { padding-left: 0; }
.rd-page .rd-sheet .doc :where(ul:not([class]), ol:not([class])) > li { padding-left: 30px; }
.rd-page .rd-sheet .doc ul:not([class]) > li::before { top: 0.62em; }
.rd-page .rd-sheet :is(.rd-owner, .fin-check) ul:not([class]) > li::before { border-color: var(--fx-gold-l); }
/* formula lines inside bare solution sections stay light on their navy field */
.rd-page .rd-sheet > .container > section p.f { color: #F3F5F8; font-size: clamp(0.88rem, 0.84rem + 0.2vw, 1rem); line-height: 1.7; }

/* ==========================================================================
   20. PAGE — MATERIALS (.mt-*) · the research library
   BACKGROUND  a stone library cover: title, the two chains as an instrument panel,
               and a numbered index of the library with real counts
   FOREGROUND  the Financial Map rises over it as a navy sheet; the library then rises
               over the map as an ivory sheet
   OVERLAP     cover pinned while the map sheet climbs (released by .is-tall when taller
               than the viewport); the library sheet overlaps the map by one radius
   REVEAL      eyebrow → title → subtitle → lead, the chain panel glides in, index rises
   MOBILE      single column; the index becomes a two-column list; sheets keep the radius
   ========================================================================== */
body.materials-page { background: var(--fx-navy); }
.materials-page .mt-cover { --text-primary: var(--fx-ink); --text-secondary: var(--fx-ink-2); --text-muted: var(--fx-ink-3); --accent: var(--fx-gold); --accent-bright: var(--fx-gold); --micro-label-gold: var(--fx-gold); --border-hairline: var(--fx-rule); --glass-border: var(--fx-rule); --glass-fill: var(--fx-paper); }
.materials-page .mt-cover .fx-stage__content { padding-top: calc(var(--fx-head) + clamp(36px, 6vh, 80px)); }
.materials-page .mt-cover .crumbs { margin-bottom: clamp(28px, 4vh, 48px); color: var(--fx-ink-2); font-size: var(--t-meta); }
.materials-page .mt-cover .crumbs a { color: var(--fx-ink-2); }
.materials-page .mt-cover__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 32px clamp(40px, 6vw, 112px); align-items: end; }
.materials-page .mt-cover .doc-hero__eyebrow { margin: 0 0 22px; font-size: var(--t-eyebrow); font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fx-gold); }
.materials-page .mt-cover h1 { margin: 0; max-width: 12ch; font-family: var(--font-sans); font-size: var(--t-display-xl); font-weight: 300; line-height: 1.02; letter-spacing: -0.035em; color: var(--fx-ink); }
.materials-page .mt-cover h1 strong { font-weight: 700; }
.materials-page .mt-cover .fmap__subtitle { margin: 22px 0 0; font-size: var(--t-lead); font-weight: 600; color: var(--fx-gold); }
.materials-page .mt-cover .doc-hero__lead { max-width: 56ch; margin: 18px 0 0; font-size: var(--t-body-l); line-height: 1.65; color: var(--fx-ink-2); }
.materials-page .mt-cover .materials-hero__actions { display: flex; flex-wrap: wrap; gap: 12px 28px; margin: 28px 0 0; }
.materials-page .mt-cover .hero__link { color: var(--fx-ink); font-weight: 700; font-size: var(--t-small); border-bottom: 1px solid var(--fx-gold-f); padding-bottom: 3px; text-decoration: none; }
.materials-page .mt-cover .hero__link:hover { color: var(--fx-gold); }
/* the two chains: one paper instrument panel */
.materials-page .mt-cover__panel { min-width: 0; padding: clamp(22px, 2.4vw, 36px); border-radius: var(--fx-pr); background: var(--fx-paper); box-shadow: 0 0 0 1px var(--fx-rule), 0 24px 48px -32px rgba(8, 17, 31, 0.35); }
.materials-page .mt-cover__panel .fmap__chains { display: block; margin: 0; }
.materials-page .mt-cover__panel .fmap-chain { padding: 0; border: 0; border-radius: 0; background: none; }
.materials-page .mt-cover__panel .fmap-chain + .fmap-chain { margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--fx-rule); }
.materials-page .mt-cover__panel .fmap-chain__label { font-family: var(--font-sans); font-size: var(--t-eyebrow); font-weight: 700; letter-spacing: 0.12em; color: var(--fx-gold); }
.materials-page .mt-cover__panel .fmap-chain__primary { margin-top: 12px; gap: 6px 10px; font-size: var(--t-body); font-weight: 700; color: var(--fx-ink); }
.materials-page .mt-cover__panel .fmap-chain__primary li:last-child { color: var(--fx-gold); }
.materials-page .mt-cover__panel :is(.fmap-chain__primary, .fmap-chain__detail) li:not(:last-child)::after { color: #8A93A2; }
.materials-page .mt-cover__panel .fmap-chain__detail { margin-top: 12px; padding-top: 12px; gap: 6px 10px; font-size: 0.7rem; color: var(--fx-ink-3); border-top-color: var(--fx-rule); }
/* the library index */
.materials-page .mt-index { margin-top: clamp(40px, 6vh, 72px); padding-top: 20px; border-top: 1px solid rgba(8, 17, 31, 0.18); }
.materials-page .mt-index__label { margin: 0 0 14px; font-size: var(--t-eyebrow); font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fx-ink-3); }
.materials-page .mt-index ol { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0; margin: 0; padding: 0; list-style: none; }
.materials-page .mt-index li { min-width: 0; }
.materials-page .mt-index li + li a { border-left: 1px solid var(--fx-rule); }
.materials-page .mt-index a { display: grid; grid-template-rows: auto 1fr auto; gap: 8px; height: 100%; padding: 4px 18px 6px; color: var(--fx-ink); text-decoration: none; transition: color 0.2s ease; }
.materials-page .mt-index li:first-child a { padding-left: 0; }
.materials-page .mt-index a:hover { color: var(--fx-gold); }
.materials-page .mt-index__n { font-family: var(--font-mono); font-size: var(--t-index); color: var(--fx-gold); font-variant-numeric: tabular-nums; }
.materials-page .mt-index__t { font-size: var(--t-small); font-weight: 700; line-height: 1.3; }
.materials-page .mt-index__c { font-family: var(--font-mono); font-size: var(--t-index); color: var(--fx-ink-3); font-variant-numeric: tabular-nums; }
@media (max-width: 1023px) {
  .materials-page .mt-cover__grid { grid-template-columns: 1fr; }
  .materials-page .mt-index ol { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 18px; }
  .materials-page .mt-index li:nth-child(3n + 1) a { border-left: 0; padding-left: 0; }
}
@media (max-width: 560px) {
  .materials-page .mt-cover h1 { font-size: var(--t-h1); }
  .materials-page .mt-index ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .materials-page .mt-index li a { border-left: 0 !important; padding-left: 0; padding-right: 12px; }
}
/* the map sheet: the Financial Map as a navy field */
.materials-page .mt-sheet--map { padding-block: calc(var(--fx-r) + var(--fx-space-s)) calc(var(--fx-r) + var(--fx-space)); --text-primary: #F3F5F8; --text-secondary: var(--fm-neutral-300); --text-muted: var(--fm-neutral-400); --label-muted: var(--fm-neutral-400); --accent: var(--fx-gold-l); --accent-bright: var(--fx-gold-l); --micro-label-gold: var(--fx-gold-l); --border-hairline: rgba(255, 255, 255, 0.12); --glass-border: rgba(255, 255, 255, 0.12); --glass-fill: rgba(255, 255, 255, 0.04); --border-gold: rgba(213, 155, 43, 0.4); }
.materials-page .mt-sheet--map .fmap { padding-block: 0; background: none; border: 0; color: #C3CBD7; }
.materials-page .mt-sheet--map :is(.fmap__title, .fmap-principles__title, .fmap-layers__title, .fmap-chapter__title) { font-family: var(--font-sans); color: #F3F5F8; }
.materials-page .mt-sheet--map .fmap__title { font-size: var(--t-display-l); font-weight: 300; letter-spacing: -0.03em; line-height: 1.06; max-width: 18ch; }
.materials-page .mt-sheet--map .fmap__eyebrow { font-family: var(--font-sans); font-size: var(--t-eyebrow); font-weight: 700; letter-spacing: 0.14em; color: var(--fx-gold-l); }
.materials-page .mt-sheet--map .fmap__lead { font-size: var(--t-body-l); color: #C3CBD7; }
/* the library sheet */
.materials-page .mt-sheet--library { z-index: 2; background: var(--fx-ivory); --text-primary: var(--fx-ink); --text-secondary: var(--fm-neutral-700); --text-muted: var(--fx-ink-3); --label-muted: var(--fx-ink-3); --accent: var(--fx-gold); --accent-bright: var(--fx-gold); --micro-label-gold: var(--fx-gold); --border-hairline: var(--fx-rule); --glass-border: var(--fx-rule); --glass-border-gold: rgba(126, 95, 22, 0.35); --glass-fill: var(--fx-paper); --border-gold: rgba(126, 95, 22, 0.45); }
.materials-page .mt-sheet--library .materials-hub { padding-top: 0; background: none; }
.materials-page .mt-sheet--library .materials-hub > .container > .materials-section__head h2 { font-family: var(--font-sans); font-size: var(--t-display-l); font-weight: 300; letter-spacing: -0.03em; line-height: 1.06; }
.materials-page .mt-sheet--library .materials-nav { position: sticky; top: calc(var(--header-h, 72px) + 10px); z-index: 3; display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: clamp(24px, 3vw, 40px); padding: 8px; border-radius: 999px; background: rgba(250, 248, 243, 0.92); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 0 0 1px var(--fx-rule); width: max-content; max-width: 100%; }
.materials-page .mt-sheet--library .materials-nav a { padding: 8px 16px; border-radius: 999px; font-size: var(--t-small); font-weight: 600; color: var(--fx-ink-2); text-decoration: none; }
.materials-page .mt-sheet--library .materials-nav a:hover { background: var(--fx-stone); color: var(--fx-ink); }
/* each section: an index row (number, label, title) then the cards */
.materials-page .mt-sheet--library { counter-reset: mtsec; }
.materials-page .mt-sheet--library .materials-section { counter-increment: mtsec; margin-top: clamp(56px, 7vw, 112px); }
.materials-page .mt-sheet--library .materials-section .materials-section__head { align-items: baseline; justify-content: flex-start; gap: 20px; padding-bottom: 16px; border-bottom: 1px solid rgba(8, 17, 31, 0.2); }
.materials-page .mt-sheet--library .materials-section .materials-section__head::before { content: counter(mtsec, decimal-leading-zero); font-family: var(--font-mono); font-size: var(--t-index); color: var(--fx-gold); }
.materials-page .mt-sheet--library .materials-section h2 { margin-top: 6px; font-family: var(--font-sans); font-size: var(--t-h2); font-weight: 700; letter-spacing: -0.022em; color: var(--fx-ink); }
.materials-page .mt-sheet--library .materials-section__label { font-family: var(--font-sans); font-size: var(--t-eyebrow); font-weight: 700; letter-spacing: 0.12em; color: var(--fx-gold); }
.materials-page .mt-sheet--library .materials-section__note { margin: 0 0 clamp(24px, 3vw, 36px); max-width: 64ch; font-size: var(--t-body); color: var(--fx-ink-2); }
/* index cards */
.materials-page .mt-sheet--library .kb-item { min-height: 0; gap: 12px; border: 0; border-radius: var(--fx-cr); background: var(--fx-paper); box-shadow: 0 0 0 1px var(--fx-rule); }
.materials-page .mt-sheet--library a.kb-item:hover { transform: translateY(-3px); background: #fff; box-shadow: 0 0 0 1px rgba(126, 95, 22, 0.45), 0 18px 36px -24px rgba(8, 17, 31, 0.4); }
.materials-page .mt-sheet--library .kb-item__cat { font-family: var(--font-sans); font-size: var(--t-eyebrow); font-weight: 700; letter-spacing: 0.1em; color: var(--fx-gold); }
.materials-page .mt-sheet--library .kb-item__title { font-family: var(--font-sans); font-size: var(--t-h3); font-weight: 700; line-height: 1.28; letter-spacing: -0.01em; color: var(--fx-ink); }
.materials-page .mt-sheet--library .kb-item__desc { font-size: var(--t-small); line-height: 1.6; color: #3A4659; }
.materials-page .mt-sheet--library .kb-item__status { font-family: var(--font-sans); font-size: var(--t-eyebrow); font-weight: 700; letter-spacing: 0.1em; color: var(--fx-gold); border-top-color: var(--fx-rule); }
.materials-page .mt-sheet--library a.kb-item .kb-item__status::after { content: " \2192"; }
/* the featured pair: a quiet lead, larger titles on stone */
.materials-page .mt-sheet--library #featured .materials-list { max-width: none; }
.materials-page .mt-sheet--library #featured .kb-item { background: var(--fx-stone); box-shadow: none; padding: clamp(24px, 2.8vw, 40px); }
.materials-page .mt-sheet--library #featured .kb-item__title { font-size: clamp(1.3rem, 1.1rem + 0.7vw, 1.7rem); line-height: 1.2; }
.materials-page .mt-sheet--library .materials-section__note--empty { border-color: var(--fx-rule); color: var(--fx-ink-3); }
@media (max-width: 860px) {
  .materials-page .mt-sheet--library .materials-nav { position: static; border-radius: var(--fx-cr); width: auto; }
}
/* the header sits in flow above the library cover: no overlay allowance, a tighter cover */
.materials-page .mt-cover.doc-hero { padding: 0; }
.materials-page .mt-cover .fx-stage__content { padding-top: clamp(36px, 5vh, 64px); padding-bottom: calc(var(--fx-r) + clamp(36px, 5vh, 64px)); }
.materials-page .mt-cover .crumbs { margin-bottom: clamp(24px, 3.5vh, 40px); }
.materials-page .mt-cover h1 { font-size: var(--t-display-l); max-width: 14ch; }
.materials-page .mt-cover__grid { align-items: center; }
.materials-page .mt-cover .materials-hero__actions { margin-top: 22px; }
.materials-page .mt-index { margin-top: clamp(32px, 4.5vh, 56px); }
.materials-page .mt-index :is(.mt-index__label, .mt-index__c) { color: var(--fx-ink-2); }

/* ==========================================================================
   21. PAGE — HOME · mixed-weight scene titles
   Every scene title is set light with one bold concept (the words are the page's own);
   the brand-name titles stay light throughout. Gold stays reserved for the hero.
   ========================================================================== */
.home .section-title { font-weight: 300; letter-spacing: -0.032em; }
.home .section-title strong { font-weight: 700; letter-spacing: -0.03em; }
.home .packages .section-title, .home .materials .section-title { font-weight: 400; }

/* ==========================================================================
   22. PAGE — FINANCIAL X-RAY (.q-entry / .q-sheet)
   BACKGROUND  a dark entry: the thesis field with its hairline drawing, mixed-weight title
   FOREGROUND  the questionnaire as a light working sheet (ivory, paper fields) rising over
               the entry by one radius; the preliminary result stays a navy moment
   OVERLAP     the sheet overlaps the entry by --fx-r; the entry is not pinned (a form must
               never be covered while typing)
   REVEAL      none on the form — inputs are never animated; the entry text is static
   MOBILE      same order; the sheet keeps a smaller radius; fields single column (inline CSS)
   ========================================================================== */
.q-hero.q-entry { position: relative; isolation: isolate; overflow: hidden; padding-block: clamp(64px, 9vw, 128px) calc(var(--fx-r) + clamp(48px, 6vw, 88px));
  background: radial-gradient(120% 90% at 85% 0%, rgba(31, 56, 100, 0.55) 0%, rgba(8, 17, 31, 0) 60%), linear-gradient(180deg, #0B1627 0%, #08111F 100%); }
.q-hero.q-entry::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image: linear-gradient(to right, rgba(213, 155, 43, 0.10) 1px, transparent 1px), linear-gradient(to bottom, rgba(255, 255, 255, 0.045) 1px, transparent 1px);
  background-size: calc(100% / 6) 100%, 100% 25%;
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 35%, #000 70%, transparent 100%); mask-image: linear-gradient(180deg, transparent 0%, #000 35%, #000 70%, transparent 100%); }
.q-hero.q-entry .q-hero__eyebrow { font-family: var(--font-sans); font-size: var(--t-eyebrow); font-weight: 700; letter-spacing: 0.14em; color: var(--fx-gold-l); }
.q-hero.q-entry h1 { max-width: 18ch; font-family: var(--font-sans); font-size: var(--t-display-l); font-weight: 300; line-height: 1.04; letter-spacing: -0.035em; color: #F3F5F8; text-wrap: balance; }
.q-hero.q-entry h1 strong { font-weight: 700; }
.q-hero.q-entry p { max-width: 62ch; font-size: var(--t-body-l); color: #C3CBD7; }
.q-hero.q-entry p:first-of-type + p { color: #9FAABA; }
.q-hero.q-entry .q-hero__eyebrow + h1 + p { font-size: var(--t-lead); color: #D5DCE6; }
.q-hero.q-entry .q-hero__meta { margin-top: 28px; padding: 10px 18px; font-family: var(--font-sans); font-size: var(--t-small); font-weight: 600; color: #F3F5F8; border: 0; background: rgba(213, 155, 43, 0.12); box-shadow: inset 0 0 0 1px rgba(213, 155, 43, 0.4); }

/* the light working sheet */
.q-sheet { position: relative; z-index: 1; margin-top: calc(var(--fx-r) * -1); padding-top: clamp(40px, 5vw, 72px); border-radius: var(--fx-r) var(--fx-r) 0 0; background: var(--fx-ivory); color: var(--fx-ink);
  --text-primary: var(--fx-ink); --text-secondary: var(--fm-neutral-700); --text-muted: var(--fm-neutral-600); --label-muted: var(--fm-neutral-600);
  --accent: var(--fx-gold); --accent-bright: var(--fx-gold); --micro-label-gold: var(--fx-gold);
  --border-hairline: var(--fx-rule); --glass-border: rgba(8, 17, 31, 0.16); --glass-border-gold: rgba(126, 95, 22, 0.45); --glass-fill: var(--fx-paper); --border-gold: rgba(126, 95, 22, 0.45);
  --critical: var(--fm-critical-light); }
.q-sheet .q-block__title, .q-sheet .q-xray__intro h2, .q-sheet .q-faq h2 { font-family: var(--font-sans); color: var(--fx-ink); letter-spacing: -0.02em; }
.q-sheet .q-block__num { color: #08111F; }
/* fields: paper on ivory, never white-on-white */
.q-sheet .q input[type="text"], .q-sheet .q input[type="email"], .q-sheet .q input[type="tel"], .q-sheet .q input[type="number"], .q-sheet .q select, .q-sheet .q textarea, .q-sheet .q-vf input { background: var(--fx-paper); border-color: rgba(8, 17, 31, 0.2); color: var(--fx-ink); }
.q-sheet .q :is(input, textarea)::placeholder, .q-sheet .q-vf input::placeholder { color: #6B7587; }
.q-sheet .q select, .q-sheet .q select option { background-color: var(--fx-paper); color: var(--fx-ink); }
.q-sheet .q__choices label, .q-sheet .q__cards label { background: var(--fx-paper); border-color: rgba(8, 17, 31, 0.16); color: #2F3B52; }
.q-sheet .q__choices label:hover, .q-sheet .q__cards label:hover { border-color: rgba(126, 95, 22, 0.55); color: var(--fx-ink); }
.q-sheet .q__choices label:has(input:checked), .q-sheet .q__cards label:has(input:checked) { border-color: var(--fx-gold); background: #F6EFD9; color: var(--fx-ink); }
.q-sheet .q__cards label::before { border-color: rgba(126, 95, 22, 0.6); }
.q-sheet .q__cards label:has(input:checked)::before { border-color: var(--fx-gold); background: radial-gradient(circle, var(--fx-gold) 42%, transparent 47%); }
.q-sheet .q.is-error .q__choices label, .q-sheet .q.is-error .q__cards label { border-color: rgba(180, 35, 24, 0.55); }
.q-sheet :is(.q-note, .q-ai-notice) { background: var(--fx-stone); color: #3A4659; }
.q-sheet .q-validate { background: #FBF3E4; }
.q-sheet .q-validate__item { background: var(--fx-paper); }
.q-sheet .q-validate__fields { background: var(--fx-paper); }
.q-sheet .q-vf__err { color: #B42318; }
.q-sheet .q-reassure { background: linear-gradient(135deg, rgba(213, 155, 43, 0.12), var(--fx-paper)); }
.q-sheet .q-topic { background: linear-gradient(135deg, rgba(213, 155, 43, 0.12), var(--fx-paper)); }
/* the quick diagnostic: a paper instrument panel on the sheet */
.q-sheet .q-xray { border: 0; background: var(--fx-paper); box-shadow: 0 0 0 1px var(--fx-rule), inset 0 3px 0 var(--fx-gold-f), 0 24px 48px -36px rgba(8, 17, 31, 0.35); }
/* the preliminary result stays a navy moment */
.q-sheet .q-result { border: 0; background: var(--fx-navy); box-shadow: inset 0 0 0 1px rgba(213, 155, 43, 0.3);
  --text-primary: #F3F5F8; --text-secondary: var(--fm-neutral-300); --text-muted: var(--fm-neutral-400); --accent: var(--fx-gold-l); --glass-border: rgba(255, 255, 255, 0.12); --border-gold: rgba(213, 155, 43, 0.4); }
.q-sheet .q-result .q-risk-list li { background: rgba(255, 255, 255, 0.04); }
.q-sheet .q-success { background: #F6EFD9; }
/* FAQ on the sheet */
.q-sheet .q-faq .faq__item { border-color: var(--fx-rule); }
.q-sheet .q-faq summary { color: var(--fx-ink); }
.q-sheet .q-faq .faq__item__body { color: #2F3B52; }
@media (max-width: 860px) { .q-sheet { --fx-r: 22px; } }

/* ==========================================================================
   23. PAGES — THANK-YOU (closing scene) · 404
   THANK-YOU  BACKGROUND the thesis field across the viewport · FOREGROUND eyebrow, mixed-weight
              title, lead, a quiet note and two actions (continue the conversation, read) ·
              OVERLAP none (a terminal scene) · REVEAL eyebrow → title → lead · MOBILE one column
   404        the same field, the wordmark, one light code figure; absolute links only
   ========================================================================== */
.thankyou-hero.fx-stage { position: relative; min-height: calc(100svh - var(--fx-head)); align-items: center; }
.thankyou-hero.fx-stage > .container { position: relative; padding-block: clamp(64px, 10vh, 120px); }
.thankyou-hero .doc-hero__eyebrow { font-family: var(--font-sans); font-size: var(--t-eyebrow); font-weight: 700; letter-spacing: 0.14em; color: var(--fx-gold-l); }
.thankyou-hero h1 { max-width: 16ch; margin-top: 18px; font-family: var(--font-sans); font-size: var(--t-display-l); font-weight: 300; line-height: 1.04; letter-spacing: -0.035em; color: #F3F5F8; text-wrap: balance; }
.thankyou-hero h1 strong { font-weight: 700; }
.thankyou-hero .doc-hero__lead { max-width: 56ch; margin-top: 26px; font-size: var(--t-lead); line-height: 1.55; color: #D0D7E1; }
.thankyou-hero .doc-hero__context { display: block; max-width: 70ch; margin-top: 26px; padding: 16px 0 0; border: 0; border-top: 1px solid rgba(255, 255, 255, 0.14); border-radius: 0; background: none; font-family: var(--font-sans); font-size: var(--t-meta); letter-spacing: 0; line-height: 1.6; color: #9AA5B5; }
.thankyou-hero .doc-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.thankyou-hero .doc-hero__cta .btn--ghost { color: #F3F5F8; border-color: rgba(255, 255, 255, 0.28); background: transparent; }
.thankyou-hero .doc-hero__cta .btn--ghost:hover { border-color: var(--fx-gold-l); color: var(--fx-gold-l); }
@media (max-width: 560px) { .thankyou-hero .doc-hero__cta .btn { width: 100%; justify-content: center; } }

body:has(> main.nf) { min-height: 100svh; background: radial-gradient(120% 90% at 85% 0%, rgba(31, 56, 100, 0.55) 0%, rgba(8, 17, 31, 0) 60%), linear-gradient(180deg, #0B1627 0%, #08111F 100%); background-attachment: fixed; color: #F3F5F8; font-family: var(--font-sans); }
main.nf { padding-top: clamp(56px, 10vh, 112px); }
.nf .nf__mark { display: inline-block; margin-bottom: clamp(40px, 7vh, 72px); }
.nf .nf__mark img { display: block; width: auto; height: 34px; }
.nf .nf__code { font-family: var(--font-sans); font-size: clamp(72px, 14vw, 132px); font-weight: 300; letter-spacing: -0.05em; color: var(--fx-gold-l); }
.nf .nf__title { font-family: var(--font-sans); font-size: var(--t-h2); font-weight: 700; letter-spacing: -0.02em; }
.nf .nf__text { opacity: 1; color: #C3CBD7; font-size: var(--t-body-l); line-height: 1.6; }
.nf .nf__links a { opacity: 1; color: #D0D7E1; text-decoration: none; border-bottom: 1px solid rgba(213, 155, 43, 0.45); padding-bottom: 2px; }
.nf .nf__links a:hover { color: var(--fx-gold-l); }
.nf .nf__lang { opacity: 1; color: #9AA5B5; }
.nf .nf__lang a { color: inherit; }
/* home · formats: legible meta on the light cards (contrast audit, AA) */
.home .packages :is(.package__label, .package__tier, .package__price-from, .package__next) { color: var(--fx-ink-2); }
.home .packages .package__tier--badge { color: #08111F; font-weight: 700; }
.home .packages .package__module strong { color: var(--fx-gold); font-weight: 700; }
/* split cover: explicit placement (crumbs across the top, headline left, thesis panel right) */
.rd-page .rd-cover--split .fx-stage__content > .crumbs { grid-column: 1 / -1; grid-row: 1; }
.rd-page .rd-cover--split .fx-stage__content > .rd-cover__main { grid-column: 1; grid-row: 2; }
.rd-page .rd-cover--split .fx-stage__content > .doc-hero__context { grid-column: 2; grid-row: 2; }
@media (max-width: 860px) {
  .rd-page .rd-cover--split .fx-stage__content > .doc-hero__context { grid-column: 1; grid-row: 3; }
}

/* ==========================================================================
   24. SCALE & CHOREOGRAPHY CORRECTION — one screen, one primary idea
   ========================================================================== */

/* --- reading covers: the title is the primary visual object ------------------------ */
.rd-page .rd-cover h1 { font-size: clamp(2.35rem, 1.1rem + 4.2vw, 5.25rem); line-height: 1.02; letter-spacing: -0.038em; max-width: 17ch; }
.rd-page .rd-cover--short h1 { font-size: clamp(2.6rem, 1.1rem + 5.4vw, 6.5rem); max-width: 12ch; }
.rd-page .rd-cover .doc-hero__lead { max-width: 54ch; font-size: clamp(1.1rem, 0.98rem + 0.5vw, 1.45rem); line-height: 1.5; }
.rd-page .rd-cover--split h1 { font-size: clamp(2.3rem, 1.1rem + 3.6vw, 4.6rem); }
/* photo covers take the whole first screen: the photograph carries the argument */
.rd-page .rd-cover--photo { min-height: calc(100svh - var(--fx-head, 76px)); }
.rd-page .rd-cover--photo .fx-stage__scrim { background: linear-gradient(90deg, rgba(8,17,31,0.88) 0%, rgba(8,17,31,0.62) 40%, rgba(8,17,31,0.12) 72%, rgba(8,17,31,0) 100%), linear-gradient(180deg, rgba(8,17,31,0.35) 0%, rgba(8,17,31,0) 28%, rgba(8,17,31,0) 62%, rgba(8,17,31,0.7) 100%); }

/* --- article scenes ----------------------------------------------------------------
   S: the thesis on a stone band; D: a navy field. The section box stays the reading column
   (body text never leaves it); the band behind it is painted full-bleed, rises with a
   rounded top and is closed by an ivory cap — the next sheet coming over it. Only the
   statement heading leaves the column.                                                  */
.rd-page .rd-sheet { overflow-x: clip; }
html .rd-page .rd-sheet section.rd-scene.rd-scene {
  position: relative; isolation: isolate; z-index: 0;
  margin-top: clamp(64px, 8vw, 128px); margin-bottom: clamp(64px, 8vw, 128px);
  padding: clamp(80px, 9vw, 144px) 0 calc(var(--fx-r) + clamp(64px, 7vw, 112px));
  border: 0; border-radius: 0; box-shadow: none; background: none;
}
html .rd-page .rd-sheet > .container > section.rd-scene.rd-scene { max-width: var(--rd-measure); margin-inline: auto; }
html .rd-page .rd-sheet section.rd-scene.rd-scene::before { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: calc(50% - 50vw); right: calc(50% - 50vw); border-radius: var(--fx-r) var(--fx-r) 0 0; background: var(--fx-stone); pointer-events: none; }
html .rd-page .rd-sheet section.rd-scene.rd-scene::after { content: ""; position: absolute; z-index: -1; bottom: -1px; height: var(--fx-r); left: calc(50% - 50vw); right: calc(50% - 50vw); border-radius: var(--fx-r) var(--fx-r) 0 0; background: var(--fx-ivory); pointer-events: none; }
html .rd-page .rd-sheet section.rd-scene.rd-scene + * { border-top: 0; }
/* numbered decision stages keep their index, now as the scene's label */
html .rd-page .rd-sheet section.rd-scene.rd-scene[data-editorial-step]::before { content: ""; }
/* the statement */
html .rd-page .rd-sheet section.rd-scene.rd-scene > h2 {
  position: static; box-sizing: border-box; width: min(1200px - 2 * var(--fx-gutter), 100vw - 2 * var(--fx-gutter)); max-width: none;
  margin: 0 0 clamp(40px, 4.5vw, 72px) calc((100% - min(1200px - 2 * var(--fx-gutter), 100vw - 2 * var(--fx-gutter))) / 2); padding: 0 0 0 0;
  font-family: var(--font-sans); font-size: clamp(2.1rem, 1.1rem + 3.2vw, 4.4rem); font-weight: 300; line-height: 1.04; letter-spacing: -0.034em; color: var(--fx-ink); text-wrap: balance;
}
html .rd-page .rd-sheet section.rd-scene.rd-scene > h2 strong { font-weight: 700; }
@media (min-width: 1100px) { html .rd-page .rd-sheet section.rd-scene.rd-scene > h2 { padding-right: 22%; } }
/* the reading column inside the scene */
html .rd-page .rd-sheet section.rd-scene.rd-scene > :is(p, ul, ol), html .rd-page .rd-sheet section.rd-scene.rd-scene > :is(ul, ol) > li { font-size: var(--t-body-l); line-height: 1.72; color: var(--fm-neutral-700); }
html .rd-page .rd-sheet section.rd-scene.rd-scene > p:first-of-type { font-size: clamp(1.15rem, 1rem + 0.55vw, 1.5rem); line-height: 1.55; color: var(--fx-ink); }
html .rd-page .rd-sheet section.rd-scene.rd-scene > p { margin: 0 0 1.1em; }
html .rd-page .rd-sheet section.rd-scene.rd-scene > :last-child { margin-bottom: 0; }
html .rd-page .rd-sheet section.rd-scene.rd-scene > :is(p, ul, ol) :is(strong, b) { color: var(--fx-ink); }
html .rd-page .rd-sheet section.rd-scene.rd-scene > h3 { font-size: var(--t-h3); font-weight: 700; color: var(--fx-ink); }

/* D: the navy field */
html .rd-page .rd-sheet section.rd-scene--d.rd-scene--d { color: #C3CBD7;
  --text-primary: #F3F5F8; --text-secondary: var(--fm-neutral-300); --text-muted: var(--fm-neutral-400); --label-muted: var(--fm-neutral-400); --accent: var(--fx-gold-l); --accent-bright: var(--fx-gold-l); --micro-label-gold: var(--fx-gold-l);
  --border-hairline: rgba(255,255,255,0.14); --glass-border: rgba(255,255,255,0.14); --glass-border-gold: rgba(213, 155, 43, 0.4); --glass-fill: rgba(255,255,255,0.05); --border-gold: rgba(213, 155, 43, 0.45); --fx-rule: rgba(255,255,255,0.14); }
html .rd-page .rd-sheet section.rd-scene--d.rd-scene--d::before { background: var(--fx-navy); }
html .rd-page .rd-sheet section.rd-scene--d.rd-scene--d > h2, html .rd-page .rd-sheet section.rd-scene--d.rd-scene--d > h2 strong { color: #F3F5F8; }
html .rd-page .rd-sheet section.rd-scene--d.rd-scene--d :is(p, li, dd, td, figcaption) { color: #C3CBD7; }
html .rd-page .rd-sheet section.rd-scene--d.rd-scene--d > p:first-of-type { color: #E6EAF0; }
html .rd-page .rd-sheet section.rd-scene--d.rd-scene--d :is(h3, h4, strong, b, th, dt, td:first-child) { color: #F3F5F8; }
html .rd-page .rd-sheet section.rd-scene--d.rd-scene--d a:not(.btn) { color: var(--fx-gold-l); }
html .rd-page .rd-sheet section.rd-scene--d.rd-scene--d li::marker { color: var(--fx-gold-l); }
html .rd-page .rd-sheet section.rd-scene--d.rd-scene--d ul li::before { border-color: var(--fx-gold-l); }
html .rd-page .rd-sheet section.rd-scene--d.rd-scene--d :is(.fin-table-wrap, .art-table-wrap, .fcf-table-wrap, .cb-table-wrap, .retail-table-wrap, .table-scroll) { background: rgba(255,255,255,0.04); box-shadow: 0 0 0 1px rgba(255,255,255,0.12); }
html .rd-page .rd-sheet section.rd-scene--d.rd-scene--d table :is(th, td) { border-bottom-color: rgba(255,255,255,0.12); }
html .rd-page .rd-sheet section.rd-scene--d.rd-scene--d table thead th { color: #9AA5B5; border-bottom-color: rgba(213, 155, 43, 0.45); }
html .rd-page .rd-sheet section.rd-scene--d.rd-scene--d :is(.callout, .fin-callout, .cb-example, .fin-check, .art-formula, .fcf-formula, .art-kpi__card, .fcf-kpi__card, .retail-kpi__card, .fcf-status__card, .cb-scene, .cb-level, .cb-q, .cb-factor, .cb-band, .retail-feature, .retail-action, .retail-path__step, .ai-kpi, .ai-question-card, .ai-mini-card, .doc-note) { background: rgba(255,255,255,0.06); box-shadow: 0 0 0 1px rgba(255,255,255,0.1); color: #C3CBD7; }
html .rd-page .rd-sheet section.rd-scene--d.rd-scene--d :is(.callout__label, .fin-callout__label, .fin-check__label, .cb-example__tag, .fcf-audit__label, .art-kpi__lvl, .fcf-kpi__lvl, .retail-kpi__label) { color: var(--fx-gold-l); }

/* the conclusion: same panel and width, statement-scale type */
html .rd-page .rd-sheet :is(.rd-takeaway, .article-conclusion) > h2 { font-size: clamp(1.9rem, 1.1rem + 2.4vw, 3.4rem); font-weight: 300; letter-spacing: -0.03em; line-height: 1.06; }
html .rd-page .rd-sheet :is(.rd-takeaway, .article-conclusion) > p:first-of-type { font-size: clamp(1.25rem, 1.05rem + 0.8vw, 1.85rem); line-height: 1.45; color: var(--fx-ink); }

@media (max-width: 860px) {
  html .rd-page .rd-sheet section.rd-scene.rd-scene { margin-block: 48px; padding: 56px 0 calc(var(--fx-r) + 48px); }
  html .rd-page .rd-sheet section.rd-scene.rd-scene > h2 { width: auto; margin-left: 0; padding-right: 0; font-size: clamp(1.85rem, 1.2rem + 3vw, 2.4rem); margin-bottom: 28px; }
  html .rd-page .rd-sheet section.rd-scene.rd-scene > p:first-of-type { font-size: 1.12rem; }
  html .rd-page .rd-sheet :is(.rd-takeaway, .article-conclusion) > p:first-of-type { font-size: 1.15rem; }
}
html .rd-page .rd-sheet section.rd-scene.rd-scene > h2 { border: 0; padding-top: 0; }
html .rd-page .rd-sheet section.rd-scene.rd-scene > h2::before, html .rd-page .rd-sheet section.rd-scene.rd-scene > h2::after { content: none; display: none; }
/* scene typography reaches only the scene's own prose (direct children), never a component */
html .rd-page .rd-sheet section.rd-scene--s.rd-scene--s > :is(p, ul, ol) , html .rd-page .rd-sheet section.rd-scene--s.rd-scene--s > :is(ul, ol) > li { font-size: var(--t-body-l); line-height: 1.72; color: var(--fm-neutral-700); }
html .rd-page .rd-sheet section.rd-scene--s.rd-scene--s > p:first-of-type { font-size: clamp(1.15rem, 1rem + 0.55vw, 1.5rem); line-height: 1.55; color: var(--fx-ink); }
html .rd-page .rd-sheet section.rd-scene--d.rd-scene--d table caption { color: var(--fx-gold-l); }
html .rd-page .rd-sheet section.rd-scene--d.rd-scene--d :is(.fcf-bar__supplier, .fcf-bar__company, .fcf-bar__seg) { color: #F3F5F8; }
html .rd-page .rd-sheet section.rd-scene--d.rd-scene--d > :is(p, ul, ol), html .rd-page .rd-sheet section.rd-scene--d.rd-scene--d > :is(ul, ol) > li { color: #C3CBD7; }
html .rd-page .rd-sheet section.rd-scene--d.rd-scene--d > p:first-of-type { color: #E6EAF0; }
html .rd-page .rd-sheet section.rd-scene--d.rd-scene--d > :is(p, ul, ol) :is(strong, b), html .rd-page .rd-sheet section.rd-scene--d.rd-scene--d > h3 { color: #F3F5F8; }

/* --- Materials: FEATURED MATERIAL → COLLECTION SCENES → FULL LIBRARY ------------------ */
/* featured: one lead material (large, navy) and the rest of the selection as a compact list */
@media (min-width: 900px) {
  .materials-page .mt-sheet--library #featured .materials-list { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); grid-auto-rows: auto; gap: 0 clamp(32px, 4vw, 72px); }
  .materials-page .mt-sheet--library #featured .kb-item:first-child { grid-column: 1; grid-row: 1 / span 5; }
  .materials-page .mt-sheet--library #featured .kb-item:not(:first-child) { grid-column: 2; }
}
.materials-page .mt-sheet--library #featured .kb-item:first-child { position: relative; overflow: hidden; justify-content: flex-end; min-height: clamp(420px, 48vw, 620px); padding: clamp(32px, 4vw, 64px); border-radius: var(--fx-pr); background: radial-gradient(120% 90% at 85% 0%, rgba(31, 56, 100, 0.6) 0%, rgba(8, 17, 31, 0) 60%), linear-gradient(180deg, #0B1627 0%, #08111F 100%); box-shadow: none; }
.materials-page .mt-sheet--library #featured .kb-item:first-child .kb-item__cat { color: var(--fx-gold-l); }
.materials-page .mt-sheet--library #featured .kb-item:first-child .kb-item__title { font-size: clamp(2rem, 1.1rem + 2.8vw, 3.8rem); font-weight: 300; line-height: 1.04; letter-spacing: -0.034em; color: #F3F5F8; max-width: 16ch; }
.materials-page .mt-sheet--library #featured .kb-item:first-child .kb-item__desc { font-size: clamp(1.05rem, 0.95rem + 0.4vw, 1.3rem); line-height: 1.55; color: #C3CBD7; max-width: 46ch; }
.materials-page .mt-sheet--library #featured .kb-item:first-child .kb-item__status { margin-top: 12px; border-top-color: rgba(255, 255, 255, 0.16); color: var(--fx-gold-l); }
.materials-page .mt-sheet--library #featured a.kb-item:first-child:hover { background: radial-gradient(120% 90% at 85% 0%, rgba(31, 56, 100, 0.75) 0%, rgba(8, 17, 31, 0) 60%), linear-gradient(180deg, #0B1627 0%, #08111F 100%); box-shadow: none; }
.materials-page .mt-sheet--library #featured .kb-item:not(:first-child) { min-height: 0; padding: 18px 0; gap: 6px; border-radius: 0; background: none; box-shadow: none; border-bottom: 1px solid rgba(8, 17, 31, 0.16); }
.materials-page .mt-sheet--library #featured .kb-item:nth-child(2) { border-top: 1px solid rgba(8, 17, 31, 0.16); }
.materials-page .mt-sheet--library #featured .kb-item:not(:first-child) .kb-item__title { font-size: var(--t-h3); }
.materials-page .mt-sheet--library #featured .kb-item:not(:first-child) :is(.kb-item__desc, .kb-item__status) { display: none; }
.materials-page .mt-sheet--library #featured a.kb-item:not(:first-child):hover { transform: none; background: none; box-shadow: none; }
.materials-page .mt-sheet--library #featured a.kb-item:not(:first-child):hover .kb-item__title { color: var(--fx-gold); }

/* collections: each topic is a scene — a large title with its note, then the entries as an
   editorial index (three columns, ruled, no boxes) */
.materials-page .mt-sheet--library .materials-section:not(#featured) { margin-top: clamp(80px, 10vw, 160px); }
@media (min-width: 900px) {
  .materials-page .mt-sheet--library .materials-section:not(#featured) { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: clamp(32px, 5vw, 96px); align-items: end; }
  .materials-page .mt-sheet--library .materials-section:not(#featured) > .materials-section__head { grid-column: 1; }
  .materials-page .mt-sheet--library .materials-section:not(#featured) > .materials-section__note { grid-column: 2; }
  .materials-page .mt-sheet--library .materials-section:not(#featured) > .materials-list { grid-column: 1 / -1; }
}
.materials-page .mt-sheet--library .materials-section:not(#featured) .materials-section__head { margin-bottom: 0; padding-bottom: 0; border-bottom: 0; flex-direction: column; align-items: flex-start; gap: 10px; }
.materials-page .mt-sheet--library .materials-section:not(#featured) h2 { font-size: clamp(2.4rem, 1.2rem + 3.6vw, 5rem); font-weight: 300; line-height: 1; letter-spacing: -0.04em; }
.materials-page .mt-sheet--library .materials-section:not(#featured) > .materials-section__note { margin: 0 0 8px; font-size: var(--t-body-l); line-height: 1.6; }
.materials-page .mt-sheet--library .materials-section:not(#featured) .materials-list { margin-top: clamp(36px, 4vw, 64px); gap: 0 clamp(28px, 3vw, 48px); border-top: 1px solid rgba(8, 17, 31, 0.28); }
.materials-page .mt-sheet--library .materials-section:not(#featured) .kb-item { min-height: 0; padding: 22px 0 26px; border-radius: 0; background: none; box-shadow: none; border-bottom: 1px solid rgba(8, 17, 31, 0.14); }
.materials-page .mt-sheet--library .materials-section:not(#featured) a.kb-item:hover { transform: none; background: none; box-shadow: none; }
.materials-page .mt-sheet--library .materials-section:not(#featured) a.kb-item:hover .kb-item__title { color: var(--fx-gold); }
.materials-page .mt-sheet--library .materials-section:not(#featured) .kb-item__status { border-top: 0; padding-top: 4px; }
/* the full library heading introduces everything below it at the same scale as a collection */
.materials-page .mt-sheet--library .materials-hub > .container > .materials-section__head h2 { font-size: clamp(2.6rem, 1.2rem + 4.2vw, 5.8rem); letter-spacing: -0.045em; }
/* About · the founder scene: the portrait fills its half, the voice is set at statement scale */
.pg-about .ab-thesis__text { max-width: 22ch; font-size: clamp(2.1rem, 1.1rem + 3.3vw, 4.6rem); line-height: 1.06; letter-spacing: -0.035em; }
.pg-about .ab-thesis__text strong { font-weight: 700; }
.pg-about .ab-founder__split { min-height: min(92svh, 980px); }
.pg-about .ab-founder__media .portrait { max-width: none; width: auto; }
.pg-about .ab-founder__media :is(.portrait__picture, .portrait__img) { width: 100%; height: 100%; max-width: none; }
.pg-about .ab-founder__text { justify-content: center; padding: clamp(40px, 5vw, 96px) clamp(32px, 5vw, 96px); }
.pg-about .ab-founder__text .fx-h2 { font-size: clamp(2.2rem, 1.2rem + 3vw, 4.2rem); font-weight: 300; line-height: 1.02; letter-spacing: -0.035em; }
.pg-about .ab-founder__text > .fx-h2 + p { font-size: clamp(1.15rem, 1rem + 0.5vw, 1.45rem); line-height: 1.55; color: var(--fx-ink); }
@media (max-width: 860px) { .pg-about .ab-founder__media { min-height: 118vw; } }
.pg-about .ab-thesis__text { max-width: 30ch; font-size: clamp(1.9rem, 1.1rem + 2.6vw, 3.7rem); line-height: 1.1; }

/* ==========================================================================
   25. STATEMENT SCENE (.fx-word) — one financial word, one question
   BACKGROUND  deep navy, full bleed, rounded top: the scene rises over the page
   FOREGROUND  the word in very large Manrope 800, a restrained gold full stop, the
               question beneath it in light weight; large negative space
   OVERLAP     the next sheet closes it: an ivory cap rises over its lower edge
   REVEAL      the word, then the question (IntersectionObserver, once; static when reduced)
   MOBILE      the word scales with the viewport (never wider than it), the question
               stays two to four lines; the scene keeps a smaller radius
   Used selectively: the opening conceptual transition of eight articles.
   ========================================================================== */
.fx-word { position: relative; isolation: isolate; display: grid; align-content: center; min-height: min(84svh, 880px); padding: clamp(96px, 12vw, 200px) 0 calc(var(--fx-r) + clamp(96px, 11vw, 180px)); color: #F3F5F8; }
.fx-word:not(.rd-word) { background: var(--fx-navy); padding-inline: var(--fx-gutter); border-radius: var(--fx-r) var(--fx-r) 0 0; }
.fx-word__term { margin: 0; font-family: var(--font-sans); font-size: clamp(2rem, 0.2rem + 10vw, 9rem); font-weight: 700; line-height: 0.92; letter-spacing: -0.045em; text-transform: uppercase; color: #F3F5F8; white-space: nowrap; }
.fx-word__dot { color: var(--fx-gold-l); }
.fx-word__q { margin: clamp(28px, 3.4vw, 56px) 0 0; max-width: 24ch; font-family: var(--font-sans); font-size: clamp(1.5rem, 0.95rem + 2.1vw, 3.1rem); font-weight: 300; line-height: 1.14; letter-spacing: -0.025em; color: #C3CBD7; text-wrap: balance; }

/* inside a reading page: the section box stays the reading column; the scene is painted
   full bleed behind the header and the term and question may leave the column */
html .rd-page .rd-sheet section.rd-scene--w.rd-scene--w { padding-top: 0; }
html .rd-page .rd-sheet section.rd-scene--w.rd-scene--w::before, html .rd-page .rd-sheet section.rd-scene--w.rd-scene--w::after { display: none; }
html .rd-page .rd-sheet section.rd-scene--w.rd-scene--w > .rd-word { margin: 0 0 clamp(48px, 5vw, 80px); }
.rd-page .rd-word::before { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: calc(50% - 50vw); right: calc(50% - 50vw); border-radius: var(--fx-r) var(--fx-r) 0 0; background: radial-gradient(90% 70% at 80% 0%, rgba(31, 56, 100, 0.5) 0%, rgba(8, 17, 31, 0) 62%), var(--fx-navy); pointer-events: none; }
.rd-page .rd-word::after { content: ""; position: absolute; z-index: -1; bottom: -1px; height: var(--fx-r); left: calc(50% - 50vw); right: calc(50% - 50vw); border-radius: var(--fx-r) var(--fx-r) 0 0; background: var(--fx-ivory); pointer-events: none; }
@media (min-width: 1100px) {
  .rd-page .rd-word > * { margin-left: calc((100% - min(1200px - 2 * var(--fx-gutter), 100vw - 2 * var(--fx-gutter))) / 2); }
  .rd-page .rd-word > .fx-word__q { max-width: 26ch; }
}
html .rd-page .rd-sheet .rd-word > h2.fx-word__q { border: 0; padding: 0; color: #C3CBD7; font-size: clamp(1.5rem, 0.95rem + 2.1vw, 3.1rem); font-weight: 300; line-height: 1.14; letter-spacing: -0.025em; }
html .rd-page .rd-sheet .rd-word > h2.fx-word__q::before, html .rd-page .rd-sheet .rd-word > h2.fx-word__q::after { content: none; display: none; }
@media (max-width: 860px) {
  .fx-word { min-height: 0; padding: 88px 0 calc(var(--fx-r) + 72px); }
  .fx-word__q { max-width: none; }
}
html .rd-page .rd-sheet .rd-word > p.fx-word__term { margin: 0; font-family: var(--font-sans); font-size: clamp(2rem, 0.2rem + 10vw, 9rem); font-weight: 700; line-height: 0.92; letter-spacing: -0.045em; text-transform: uppercase; color: #F3F5F8; max-width: none; }
@media (min-width: 1100px) {
  html .rd-page .rd-sheet .rd-word > :is(p.fx-word__term, h2.fx-word__q) { margin-left: calc((100% - min(1200px - 2 * var(--fx-gutter), 100vw - 2 * var(--fx-gutter))) / 2); }
}
/* Owner · the framing question at statement-scene scale (light variant: it sits between two navy scenes).
   The copy cell is the sizing authority: viewport-relative type outgrew the left grid track and
   crossed into the capital chain. Container units keep the full word inside its allocated column. */
.pg-owner .ow-question .statement-screen__copy { width: 100%; max-width: none; min-width: 0; container-type: inline-size; }
.pg-owner .ow-question .statement-screen__keyword { display: block; font-size: clamp(2.6rem, 7.4vw, 6.75rem); font-weight: 700; line-height: 0.92; letter-spacing: -0.045em; text-transform: uppercase; }
@supports (font-size: 1cqi) {
  .pg-owner .ow-question .statement-screen__keyword { font-size: clamp(2.6rem, 19cqi, 6.75rem); }
}
.pg-owner .ow-question .statement-screen__question { display: block; margin-top: clamp(24px, 3vw, 48px); font-size: clamp(1.5rem, 0.95rem + 2.1vw, 3.1rem); line-height: 1.14; letter-spacing: -0.025em; }
/* Home · the capital cycle becomes the scene's second primary object; the industries thesis a statement */
.home .capital-cycle { max-width: none; }
.home .capital-cycle__name { font-size: clamp(1.5rem, 0.9rem + 2.1vw, 3rem); font-weight: 300; line-height: 1.1; letter-spacing: -0.03em; }
.home .capital-cycle__stage { padding: clamp(14px, 1.4vw, 22px) 0; }
.home .capital-cycle__stage::after { top: 1.1em; }
.home .industries .section-title { font-size: clamp(2.2rem, 1.1rem + 3.4vw, 4.8rem); line-height: 1.02; letter-spacing: -0.04em; max-width: 18ch; }
/* Business Models · the photograph holds the right half of the first screen, edge to edge */
@media (min-width: 861px) {
  .pg-models .bm-stage .bm-figure { position: absolute; top: 0; right: 0; bottom: 0; width: 45vw; max-height: none; margin: 0; z-index: 0; display: block; }
  .pg-models .bm-stage .bm-figure picture { position: absolute; inset: 0; height: auto; border-radius: 0; }
  .pg-models .bm-stage .bm-figure picture::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,17,31,0.55) 0%, rgba(8,17,31,0) 30%), linear-gradient(180deg, rgba(8,17,31,0) 55%, rgba(8,17,31,0.82) 100%); pointer-events: none; }
  .pg-models .bm-stage .bm-figure .industries__caption { position: absolute; left: clamp(28px, 3vw, 48px); right: clamp(28px, 3vw, 48px); bottom: calc(var(--fx-r) + clamp(28px, 3vw, 48px)); z-index: 1; color: #E6EAF0; max-width: 46ch; }
  .pg-models .bm-stage__copy { position: relative; z-index: 1; }
  .pg-models .bm-stage h1 { font-size: clamp(3rem, 1.2rem + 4.6vw, 6.2rem); }
}
/* narrow phones: the longest single word of a cover title must fit the frame */
@media (max-width: 400px) {
  .rd-page .rd-cover h1 { font-size: clamp(1.8rem, 0.6rem + 6.4vw, 2.35rem); }
  .rd-page .rd-cover--short h1 { font-size: clamp(2rem, 0.6rem + 7.6vw, 2.6rem); }
  .rd-page .rd-cover--split h1 { font-size: clamp(1.8rem, 0.6rem + 6.4vw, 2.3rem); }
}
@media (max-width: 400px) {
  .fx-page .fx-statement--xl { font-size: clamp(1.9rem, 0.5rem + 7vw, 2.6rem); }
}
.rd-page .rd-cover--photo { min-height: min(calc(100svh - var(--fx-head, 76px)), 1000px); }

/* Photo reading covers: the late choreography rule above used a side fade that became
   nearly transparent under mobile copy. Keep the approved image, but give every line a
   stable dark field. The first designed scene also no longer adds a second top margin
   inside the already raised reading sheet. */
.rd-page .rd-cover--photo .fx-stage__scrim {
  --rd-copy-scrim-floor: 0.65;
  background:
    linear-gradient(90deg, rgba(8,17,31,0.94) 0%, rgba(8,17,31,0.86) 46%, rgba(8,17,31,0.5) 74%, rgba(8,17,31,0.18) 100%),
    linear-gradient(180deg, rgba(8,17,31,0.5) 0%, rgba(8,17,31,0.18) 34%, rgba(8,17,31,0.24) 62%, rgba(8,17,31,0.82) 100%);
}
html .rd-page .rd-cover--photo + .rd-sheet > .container:first-child > section.rd-scene.rd-scene:first-child,
html .rd-page .rd-cover--photo + .rd-sheet > .container:first-child > .doc > section.rd-scene.rd-scene:first-child {
  margin-top: 0;
}
@media (max-width: 860px) {
  .rd-page .rd-cover--photo .fx-stage__scrim {
    --rd-copy-scrim-floor: 0.66;
    background:
      linear-gradient(90deg, rgba(8,17,31,0.8), rgba(8,17,31,0.66)),
      linear-gradient(180deg, rgba(8,17,31,0.6) 0%, rgba(8,17,31,0.48) 38%, rgba(8,17,31,0.76) 100%);
  }
}

/* Small financial tables become self-contained records on phones. Their native
   header remains in the accessibility tree; the same labels are repeated visibly
   beside each value. Four-plus-column comparison tables retain horizontal scrolling. */
.rd-page .rd-sheet :is(.fin-table-wrap, .art-table-wrap, .fcf-table-wrap, .cb-table-wrap, .retail-table-wrap, .table-scroll) {
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
  scrollbar-color: var(--fx-gold-f) rgba(11, 22, 39, 0.14);
}
.rd-page .rd-sheet :is(.fin-table-wrap, .art-table-wrap, .fcf-table-wrap, .cb-table-wrap, .retail-table-wrap, .table-scroll)::-webkit-scrollbar { height: 8px; }
.rd-page .rd-sheet :is(.fin-table-wrap, .art-table-wrap, .fcf-table-wrap, .cb-table-wrap, .retail-table-wrap, .table-scroll)::-webkit-scrollbar-track { background: rgba(11, 22, 39, 0.14); }
.rd-page .rd-sheet :is(.fin-table-wrap, .art-table-wrap, .fcf-table-wrap, .cb-table-wrap, .retail-table-wrap, .table-scroll)::-webkit-scrollbar-thumb { background: var(--fx-gold-f); border-radius: 999px; }
.rd-page .rd-sheet :is(.fin-table-wrap, .art-table-wrap, .fcf-table-wrap, .cb-table-wrap, .retail-table-wrap, .table-scroll):focus-visible {
  outline: 2px solid var(--fx-gold);
  outline-offset: 4px;
}
@media (max-width: 760px) {
  .rd-page .rd-sheet .financial-table-wrap--cards {
    overflow-x: visible;
    scroll-snap-type: none;
  }
  .rd-page .rd-sheet table.financial-table--cards {
    display: block;
    width: 100%;
    min-width: 0;
  }
  .rd-page .rd-sheet table.financial-table--cards caption { display: block; }
  .rd-page .rd-sheet table.financial-table--cards thead {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
  }
  .rd-page .rd-sheet table.financial-table--cards tbody { display: block; padding: 0 18px; }
  .rd-page .rd-sheet table.financial-table--cards tbody tr { display: block; padding: 12px 0; border-bottom: 1px solid var(--fx-rule); }
  .rd-page .rd-sheet table.financial-table--cards tbody tr:last-child { border-bottom: 0; }
  .rd-page .rd-sheet table.financial-table--cards tbody :is(th, td) {
    display: block;
    width: 100%;
    padding: 9px 0;
    border: 0;
    white-space: normal;
    text-align: left;
  }
  .rd-page .rd-sheet table.financial-table--cards tbody :is(th, td)::before {
    content: attr(data-table-label);
    display: block;
    margin-bottom: 4px;
    font-family: var(--font-sans);
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--fx-gold);
  }
}

/* Fable final audit: a cover is the first viewport, so none of its copy may wait for
   an IntersectionObserver scroll event. Keep long offer/article titles and the offer
   facts strip inside that opening viewport without changing or removing their copy. */
.m-js .rd-page .rd-cover [data-fx] {
  opacity: 1;
  transform: none;
}
.rd-page .rd-cover:not(.rd-cover--short) h1 {
  max-width: 24ch;
  font-size: clamp(2.1rem, 1.1rem + 2.8vw, 4.25rem);
}
.rd-page .rd-cover--offer .fx-stage__content {
  padding-top: calc(var(--fx-head) + clamp(20px, 3vh, 36px));
  padding-bottom: calc(var(--fx-r) + clamp(24px, 4vh, 48px));
}
.rd-page .rd-cover--offer .crumbs { margin-bottom: clamp(14px, 2vh, 24px); }
.rd-page .rd-cover--offer .doc-hero__eyebrow { margin-bottom: 12px; }
.rd-page .rd-cover--offer h1 {
  max-width: 28ch;
  font-size: clamp(2rem, 1.1rem + 2.5vw, 4rem);
}
.rd-page .rd-cover--offer .doc-hero__lead {
  max-width: 72ch;
  margin-top: 18px;
  font-size: clamp(1rem, 0.96rem + 0.25vw, 1.2rem);
  line-height: 1.45;
}
.rd-page .rd-cover--offer .doc-hero__context { margin-top: 18px; }
@media (max-width: 600px) {
  .rd-page .rd-cover:not(.rd-cover--short) h1,
  .rd-page .rd-cover--offer h1 {
    max-width: none;
    font-size: clamp(1.65rem, 1.25rem + 2vw, 1.95rem);
  }
  .rd-page .rd-cover--offer .fx-stage__content {
    padding-top: calc(var(--fx-head) + 16px);
    padding-bottom: calc(var(--fx-r) + 24px);
  }
  .rd-page .rd-cover--offer .crumbs { margin-bottom: 12px; }
  .rd-page .rd-cover--offer .doc-hero__eyebrow { margin-bottom: 10px; }
  .rd-page .rd-cover--offer .doc-hero__lead {
    margin-top: 14px;
    font-size: 1rem;
    line-height: 1.4;
  }
  .rd-page .rd-cover--offer .doc-hero__context { margin-top: 14px; }
}

/* ==========================================================================
   26. HOME — ENGAGEMENT FORMATS (.fmt) · four advisory mandates
   BACKGROUND  the ivory homepage band
   FOREGROUND  a 2 × 2 of large tonal surfaces — 01 navy · 02 stone · 03 gold · 04 soft light;
               large radius, no gradients, no shadows, almost no chrome
   REVEAL      panels 01 → 04, small opacity / rise, once
   MOBILE      four full-width stacked panels, same order; details stay collapsed
   Detail (lists, results, terms, original CTAs) lives in each panel's «Состав и условия».
   ========================================================================== */
.home .packages[data-formats] { padding-block: clamp(80px, 9vw, 150px); }
.home .packages[data-formats] .fmt-head { max-width: none; margin-bottom: clamp(40px, 5vw, 80px); }
.home .packages[data-formats] .fmt-head .overline { font-family: var(--font-sans); font-size: var(--t-eyebrow); font-weight: 700; letter-spacing: 0.14em; color: var(--fx-gold); }
.home .packages[data-formats] .fmt-head .section-title { max-width: 18ch; margin-top: 18px; font-family: var(--font-sans); font-size: clamp(2.3rem, 1.1rem + 3.8vw, 5.2rem); font-weight: 300; line-height: 1.02; letter-spacing: -0.04em; color: var(--fx-ink); }
.home .packages[data-formats] .fmt-head .section-title strong { font-weight: 700; }
.home .packages[data-formats] .fmt-head .section-lead { max-width: 56ch; margin-top: 24px; font-size: var(--t-body-l); line-height: 1.6; color: var(--fx-ink-2); }

.home .packages[data-formats] .fmt-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(12px, 1.2vw, 20px); }
/* the panel: one surface, no chrome */
.home .packages[data-formats] .fmt-panel.fmt-panel { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 0; min-height: clamp(440px, 36vw, 560px); margin: 0; padding: clamp(32px, 3.6vw, 60px); border: 1px solid transparent; border-radius: clamp(24px, 2.4vw, 40px); background: #EFEBE3; color: var(--fx-ink); box-shadow: none; transform: none; transition: border-color 0.25s ease, background-color 0.25s ease; grid-template-columns: none; }
.home .packages[data-formats] .fmt-panel.fmt-panel::before, .home .packages[data-formats] .fmt-panel.fmt-panel::after { content: none; display: none; }
.home .packages[data-formats] .fmt-panel--1.fmt-panel { background: var(--fx-navy); color: #F3F5F8; }
.home .packages[data-formats] .fmt-panel--2.fmt-panel { background: #E6E0D4; }
.home .packages[data-formats] .fmt-panel--3.fmt-panel { background: var(--fm-gold); }
.home .packages[data-formats] .fmt-panel--4.fmt-panel { background: #F4F1EA; border-color: rgba(8, 17, 31, 0.1); }
.home .packages[data-formats] .fmt-panel.fmt-panel:hover { border-color: rgba(8, 17, 31, 0.28); transform: none; box-shadow: none; }
.home .packages[data-formats] .fmt-panel--1.fmt-panel:hover { border-color: rgba(213, 155, 43, 0.5); }
/* the index is the primary object */
.home .packages[data-formats] .fmt-panel__index { display: block; margin: 0 0 auto; font-family: var(--font-sans); font-size: clamp(3.6rem, 1.6rem + 4.4vw, 6.4rem); font-weight: 200; line-height: 0.9; letter-spacing: -0.05em; color: inherit; opacity: 0.9; }
.home .packages[data-formats] .fmt-panel .package__tier { display: block; margin: clamp(40px, 4vw, 72px) 0 12px; padding: 0; border: 0; background: none; font-family: var(--font-sans); font-size: var(--t-eyebrow); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--fm-gold-text); box-shadow: none; }
.home .packages[data-formats] .fmt-panel--1 .package__tier { color: var(--fx-gold-l); }
.home .packages[data-formats] .fmt-panel--3 .package__tier { color: #3B2C07; }
.home .packages[data-formats] .fmt-panel .package__name { margin: 0; font-family: var(--font-sans); font-size: clamp(1.9rem, 1.1rem + 1.9vw, 3.1rem); font-weight: 700; line-height: 1.02; letter-spacing: -0.03em; color: inherit; white-space: nowrap; }
.home .packages[data-formats] .fmt-panel .package__goal { max-width: 40ch; margin: 18px 0 0; font-size: var(--t-body-l); line-height: 1.5; color: inherit; opacity: 0.86; }
.home .packages[data-formats] .fmt-panel--1 .package__goal { color: #C3CBD7; opacity: 1; }
/* format / duration and price: one quiet line of facts */
.home .packages[data-formats] .fmt-panel__meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 28px; width: 100%; margin-top: clamp(28px, 3vw, 44px); padding-top: 18px; border-top: 1px solid rgba(8, 17, 31, 0.18); }
.home .packages[data-formats] .fmt-panel--1 .fmt-panel__meta { border-top-color: rgba(255, 255, 255, 0.18); }
.home .packages[data-formats] .fmt-panel .package__term { order: 2; margin: 0; padding: 0; border: 0; background: none; gap: 2px; }
.home .packages[data-formats] .fmt-panel .package__term span { font-size: var(--t-meta); color: inherit; opacity: 0.72; letter-spacing: 0; text-transform: none; font-family: var(--font-sans); }
.home .packages[data-formats] .fmt-panel .package__term strong { font-size: var(--t-small); font-weight: 600; color: inherit; }
.home .packages[data-formats] .fmt-panel .package__price { order: 1; margin: 0; font-family: var(--font-sans); font-size: clamp(1.25rem, 1rem + 0.7vw, 1.6rem); font-weight: 700; letter-spacing: -0.01em; color: inherit; }
.home .packages[data-formats] .fmt-panel .package__price .package__price-from, .home .packages[data-formats] .fmt-panel .packages__expert-duration { font-size: var(--t-small); font-weight: 500; color: inherit; opacity: 0.78; }
.home .packages[data-formats] .fmt-panel .package__price--project { max-width: 20ch; line-height: 1.25; }
/* actions: one discreet link, and the disclosure */
.home .packages[data-formats] .fmt-panel__more { display: inline-flex; align-items: center; gap: 6px; margin-top: 22px; padding-bottom: 3px; border-bottom: 1px solid currentColor; font-size: var(--t-small); font-weight: 700; color: inherit; text-decoration: none; transition: gap 0.2s ease; }
.home .packages[data-formats] .fmt-panel__more:hover { gap: 10px; }
.home .packages[data-formats] .fmt-panel--1 .fmt-panel__more { color: var(--fx-gold-l); }
.home .packages[data-formats] .fmt-panel__details { width: 100%; margin-top: 18px; }
.home .packages[data-formats] .fmt-panel__details > summary { display: inline-flex; align-items: center; min-height: 24px; gap: 8px; cursor: pointer; list-style: none; font-size: var(--t-meta); font-weight: 600; color: inherit; opacity: 0.72; }
.home .packages[data-formats] .fmt-panel__details > summary::-webkit-details-marker { display: none; }
.home .packages[data-formats] .fmt-panel__details > summary::after { content: "+"; font-weight: 400; }
.home .packages[data-formats] .fmt-panel__details[open] > summary::after { content: "−"; }
.home .packages[data-formats] .fmt-panel__details > summary:hover, .home .packages[data-formats] .fmt-panel__details > summary:focus-visible { opacity: 1; }
.home .packages[data-formats] .fmt-panel__details[open] { padding-top: 12px; }
.home .packages[data-formats] .fmt-panel__details :is(p, li, span, strong) { color: inherit; }
.home .packages[data-formats] .fmt-panel__details :is(.package__goal-more, .package__result, .package__next, .packages__expert-note, .package__descriptor, .package__module, li) { font-size: var(--t-small); line-height: 1.6; opacity: 0.9; }
.home .packages[data-formats] .fmt-panel__details .package__section { margin: 16px 0 0; padding: 0; border: 0; background: none; }
.home .packages[data-formats] .fmt-panel__details .package__label, .home .packages[data-formats] .fmt-panel__details .package__next-label { display: block; margin-bottom: 6px; font-family: var(--font-sans); font-size: var(--t-eyebrow); font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.75; }
.home .packages[data-formats] .fmt-panel__details .package__list { margin: 0; padding-left: 1.1em; list-style: disc; }
.home .packages[data-formats] .fmt-panel__details .package__list li { padding: 2px 0; }
.home .packages[data-formats] .fmt-panel__details .package__list li::before { content: none; }
.home .packages[data-formats] .fmt-panel__details .package__cta { margin-top: 18px; }
.home .packages[data-formats] .fmt-panel--1 .fmt-panel__details .package__cta { color: #F3F5F8; border-color: rgba(255, 255, 255, 0.35); }
.home .packages[data-formats] .fmt-panel--3 .fmt-panel__details .btn--primary { background: var(--fx-navy); color: #F3F5F8; border-color: var(--fx-navy); }
/* the decision line */
.home .packages[data-formats] .fmt-decide { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 20px 40px; margin-top: clamp(40px, 5vw, 72px); padding-top: clamp(28px, 3vw, 40px); border-top: 1px solid rgba(8, 17, 31, 0.18); }
.home .packages[data-formats] .fmt-decide__line { margin: 0; font-size: clamp(1.4rem, 1rem + 1.2vw, 2.2rem); font-weight: 300; letter-spacing: -0.02em; color: var(--fx-ink); }
.home .packages[data-formats] .fmt-decide__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.home .packages[data-formats] .fmt-decide__link { font-size: var(--t-small); font-weight: 700; color: var(--fx-ink); border-bottom: 1px solid var(--fx-gold-f); padding-bottom: 3px; text-decoration: none; }
.home .packages[data-formats] .fmt-decide__note { grid-column: 1 / -1; max-width: 90ch; margin: 0; padding: 0; border: 0; background: none; font-size: var(--t-meta); line-height: 1.6; color: var(--fx-ink-2); }
/* motion: whole panels, 01 → 04 */
.m-js .home .packages[data-formats] .fmt-panel.reveal { transition: opacity 600ms var(--m-ease, ease), transform 600ms var(--m-ease, ease), border-color 0.25s ease; transition-delay: var(--m-delay, 0ms); }
.m-js .home .packages[data-formats] .fmt-panel.reveal:not(.is-visible) { opacity: 0; transform: translateY(18px); }
.m-js .home .packages[data-formats] .fmt-panel.reveal .m-c { opacity: 1; transform: none; transition: none; }
@media (prefers-reduced-motion: reduce) { .m-js .home .packages[data-formats] .fmt-panel.reveal { opacity: 1 !important; transform: none !important; transition: none !important; } }
/* mobile: four full-width stacked mandates */
@media (max-width: 860px) {
  .home .packages[data-formats] { padding-block: 72px; }
  .home .packages[data-formats] .fmt-grid { grid-template-columns: 1fr; gap: 10px; }
  .home .packages[data-formats] .fmt-panel.fmt-panel { min-height: 0; padding: 28px 24px 26px; border-radius: 24px; }
  .home .packages[data-formats] .fmt-panel__index { margin-bottom: 0; font-size: 3.4rem; }
  .home .packages[data-formats] .fmt-panel .package__tier { margin-top: 26px; }
  .home .packages[data-formats] .fmt-panel .package__name { font-size: clamp(1.6rem, 1.1rem + 2.4vw, 2.1rem); }
  .home .packages[data-formats] .fmt-panel .package__goal { font-size: var(--t-body); }
  .home .packages[data-formats] .fmt-panel__meta { margin-top: 22px; }
  .home .packages[data-formats] .fmt-decide { grid-template-columns: 1fr; }
}
.home .packages[data-formats] .fmt-panel .package__price .package__price-from { font-family: var(--font-sans); text-transform: none; letter-spacing: 0; }
.home .packages[data-formats] .fmt-panel .package__name { font-size: clamp(1.7rem, 0.9rem + 1.55vw, 2.6rem); }
@media (max-width: 860px) { .home .packages[data-formats] .fmt-panel .package__name { font-size: clamp(1.45rem, 0.9rem + 2.4vw, 2rem); } }
@media (max-width: 380px) { .home .packages[data-formats] .fmt-panel.fmt-panel { padding-inline: 20px; } .home .packages[data-formats] .fmt-panel .package__name { font-size: clamp(1.2rem, 0.3rem + 4.6vw, 1.45rem); } }
@media (min-width: 861px) and (max-width: 960px) { .home .packages[data-formats] .fmt-panel .package__name { font-size: clamp(1.5rem, 0.6rem + 1.6vw, 1.7rem); } }
.home .packages[data-formats] .fmt-panel .package__name { line-height: 1.16; padding-bottom: 0.04em; }
.home .packages[data-formats] .fmt-panel .package__name { line-height: 1.3; padding-bottom: 0; }
.home .packages[data-formats] .fmt-panel .package__price { line-height: 1.35; }
/* formats · product titles sized by their panel, not the viewport: the panel caps its width
   while the viewport keeps growing, so a vw-based title outgrew the panel at 1728 (RO card 03).
   One size for all four panels (they are equal), a safe right edge, and a balanced two-line
   fallback instead of a rigid single line. */
.home .packages[data-formats] .fmt-panel.fmt-panel { container-type: inline-size; }
.home .packages[data-formats] .fmt-panel .package__name { max-width: 100%; white-space: normal; overflow-wrap: normal; text-wrap: balance; font-size: clamp(1.25rem, 8.3cqi, 2.6rem); line-height: 1.22; padding-bottom: 0.06em; }

/* ==========================================================================
   27. HOME — PRACTICE (.case-panel) and MATERIALS (research index)
   PRACTICE   three large strategic panels, navy · gold · graphite, one scenario each:
              index → situation → control → decision (the decision is the conclusion)
   MATERIALS  a calm warm-stone reading surface: numbered editorial rows, the title dominant,
              thin rules, quiet outline actions
   Rhythm:    formats (mandates) → practice (strong panels) → materials (stone pause) → CTA (navy)
   ========================================================================== */
.home .proof-cases[data-practice] { background: var(--fx-ivory); padding-block: clamp(80px, 9vw, 150px); }
.home .proof-cases[data-practice] .section-head { max-width: none; margin-bottom: clamp(40px, 5vw, 72px); }
.home .proof-cases[data-practice] .section-head .overline { font-family: var(--font-sans); font-size: var(--t-eyebrow); font-weight: 700; letter-spacing: 0.14em; color: var(--fx-gold); }
.home .proof-cases[data-practice] .section-title { max-width: 16ch; margin-top: 18px; font-family: var(--font-sans); font-size: clamp(2.3rem, 1.1rem + 3.8vw, 5.2rem); font-weight: 300; line-height: 1.02; letter-spacing: -0.04em; color: var(--fx-ink); }
.home .proof-cases[data-practice] .section-title strong { font-weight: 700; }
.home .proof-cases[data-practice] .section-lead { max-width: 56ch; margin-top: 24px; font-size: var(--t-body-l); line-height: 1.6; color: var(--fx-ink-2); }
.home .proof-cases[data-practice] .case-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(12px, 1.2vw, 20px); }
.home .proof-cases[data-practice] .case-panel.case-panel { container-type: inline-size; position: relative; display: flex; flex-direction: column; gap: 0; min-height: clamp(600px, 50vw, 760px); margin: 0; padding: clamp(32px, 3.2vw, 56px); border: 0; border-radius: clamp(24px, 2.4vw, 40px); background: var(--fx-navy); color: #F3F5F8; box-shadow: none; transform: none; }
.home .proof-cases[data-practice] .case-panel.case-panel::before, .home .proof-cases[data-practice] .case-panel.case-panel::after { content: none; display: none; }
.home .proof-cases[data-practice] .case-panel--2.case-panel { background: var(--fm-gold); color: var(--fx-ink); }
.home .proof-cases[data-practice] .case-panel--3.case-panel { background: var(--fm-navy-700); }
.home .proof-cases[data-practice] .case-panel__index { font-family: var(--font-sans); font-size: clamp(3.4rem, 1.6rem + 3.6vw, 6rem); font-weight: 200; line-height: 0.9; letter-spacing: -0.05em; color: inherit; opacity: 0.9; }
.home .proof-cases[data-practice] .case-panel .result-row__label { display: block; margin: 0 0 12px; padding: 0; border: 0; background: none; font-family: var(--font-sans); font-size: var(--t-eyebrow); font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fx-gold-l); }
.home .proof-cases[data-practice] .case-panel--2 .result-row__label { color: #3B2C07; }
/* situation: the scenario itself */
.home .proof-cases[data-practice] .case-panel__situation { margin-top: clamp(40px, 4.4vw, 80px); }
.home .proof-cases[data-practice] .case-panel__head { margin: 0; font-family: var(--font-sans); font-size: clamp(1.65rem, 9.4cqi, 2.9rem); font-weight: 300; line-height: 1.08; letter-spacing: -0.032em; color: inherit; text-wrap: balance; }
.home .proof-cases[data-practice] .case-panel__meaning { margin: 16px 0 0; max-width: 34ch; font-size: var(--t-body); line-height: 1.55; color: inherit; opacity: 0.78; }
/* control: quiet */
.home .proof-cases[data-practice] .case-panel__control { margin-top: clamp(28px, 3vw, 44px); }
.home .proof-cases[data-practice] .case-panel__control p { margin: 0; font-size: var(--t-small); line-height: 1.6; color: inherit; opacity: 0.82; }
/* decision: the conclusion, at the foot of the panel */
.home .proof-cases[data-practice] .case-panel__decision { margin-top: auto; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, 0.2); }
.home .proof-cases[data-practice] .case-panel__control + .case-panel__decision { margin-top: auto; }
.home .proof-cases[data-practice] .case-panel__situation + .case-panel__control { margin-bottom: 36px; }
.home .proof-cases[data-practice] .case-panel--2 .case-panel__decision { border-top-color: rgba(8, 17, 31, 0.24); }
.home .proof-cases[data-practice] .case-panel__decision p { margin: 0; font-size: clamp(1.15rem, 5.4cqi, 1.5rem); font-weight: 600; line-height: 1.35; letter-spacing: -0.012em; color: inherit; }
.home .proof-cases[data-practice] .proof-more { margin-top: clamp(32px, 4vw, 56px); }
.home .proof-cases[data-practice] .proof-more .hero__link { font-weight: 700; color: var(--fx-ink); border-bottom-color: var(--fx-gold-f); }
/* motion: panels 01 → 03; inside, situation → control → decision */
.m-js .home .proof-cases[data-practice] .case-panel.reveal { opacity: 1; transform: none; }
.m-js .home .proof-cases[data-practice] .case-panel.reveal :is(.case-panel__index, .m-c) { transition: opacity 600ms var(--m-ease, ease), transform 600ms var(--m-ease, ease); transition-delay: calc(var(--m-delay, 0ms) + var(--m-k, 0) * 140ms); }
.m-js .home .proof-cases[data-practice] .case-panel.reveal:not(.is-visible) :is(.case-panel__index, .m-c) { opacity: 0; transform: translateY(16px); }
@media (prefers-reduced-motion: reduce) { .m-js .home .proof-cases[data-practice] .case-panel.reveal :is(.case-panel__index, .m-c) { opacity: 1 !important; transform: none !important; transition: none !important; } }
@media (max-width: 960px) {
  .home .proof-cases[data-practice] .case-grid { grid-template-columns: 1fr; gap: 10px; }
  .home .proof-cases[data-practice] .case-panel.case-panel { min-height: 0; padding: 30px 24px 28px; border-radius: 24px; }
  .home .proof-cases[data-practice] .case-panel__index { font-size: 3.2rem; }
  .home .proof-cases[data-practice] .case-panel__situation { margin-top: 28px; }
  .home .proof-cases[data-practice] .case-panel__head { font-size: clamp(1.65rem, 1.1rem + 2.6vw, 2.4rem); }
  .home .proof-cases[data-practice] .case-panel__situation + .case-panel__control { margin-bottom: 0; }
  .home .proof-cases[data-practice] .case-panel__decision { margin-top: 26px; }
  .home .proof-cases[data-practice] .case-panel__decision p { font-size: 1.15rem; }
}

/* --- MATERIALS: the research index ------------------------------------------------ */
.home .materials[data-research] { background: var(--fx-stone); padding-block: clamp(80px, 9vw, 150px); }
.home .materials[data-research] .section-head { max-width: none; display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); column-gap: clamp(32px, 5vw, 96px); align-items: end; margin-bottom: clamp(40px, 5vw, 72px); }
.home .materials[data-research] .section-head .overline { grid-column: 1 / -1; font-family: var(--font-sans); font-size: var(--t-eyebrow); font-weight: 700; letter-spacing: 0.14em; color: var(--fx-gold); }
.home .materials[data-research] .section-title { margin-top: 18px; font-family: var(--font-sans); font-size: clamp(2.3rem, 1.1rem + 3.8vw, 5.2rem); font-weight: 300; line-height: 1.02; letter-spacing: -0.04em; color: var(--fx-ink); }
.home .materials[data-research] .section-lead { margin: 0 0 8px; font-size: var(--t-body-l); line-height: 1.6; color: var(--fx-ink-2); }
.home .materials[data-research] .materials-grid--three { border-top: 1px solid rgba(8, 17, 31, 0.3); }
.home .materials[data-research] .material-card { grid-template-columns: clamp(56px, 7vw, 120px) minmax(0, 1fr) auto; column-gap: clamp(20px, 3vw, 56px); row-gap: 10px; padding: clamp(32px, 3.6vw, 52px) 0; border: 0; border-bottom: 1px solid rgba(8, 17, 31, 0.16); border-radius: 0; background: none; box-shadow: none; transform: none; text-decoration: none; }
.home .materials[data-research] .material-card::before { content: none; display: none; }
.home .materials[data-research] .material-card__index { grid-column: 1; grid-row: 1 / span 3; font-family: var(--font-sans); font-size: clamp(1.6rem, 1rem + 1.6vw, 2.6rem); font-weight: 200; line-height: 1; letter-spacing: -0.04em; color: var(--fx-ink); }
.home .materials[data-research] .material-card__tag { grid-column: 2; font-family: var(--font-sans); font-size: var(--t-eyebrow); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--fm-gold-text); }
.home .materials[data-research] .material-card__title { grid-column: 2; max-width: 30ch; font-family: var(--font-sans); font-size: clamp(1.5rem, 1rem + 1.6vw, 2.5rem); font-weight: 500; line-height: 1.14; letter-spacing: -0.025em; color: var(--fx-ink); text-wrap: balance; }
.home .materials[data-research] .material-card__desc { grid-column: 2; max-width: 60ch; font-size: var(--t-body); line-height: 1.6; color: var(--fx-ink-2); }
.home .materials[data-research] .material-card__arrow { grid-column: 3; grid-row: 1 / span 3; align-self: center; padding-bottom: 3px; border-bottom: 1px solid var(--fx-gold-f); font-size: var(--t-small); font-weight: 700; color: var(--fx-ink); transition: color 0.2s ease; }
.home .materials[data-research] .material-card:hover .material-card__title { color: var(--fx-ink); }
.home .materials[data-research] .material-card:hover .material-card__arrow { color: var(--fm-gold-text); }
.home .materials[data-research] .research-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: clamp(32px, 4vw, 56px); }
.home .materials[data-research] .research-actions .btn { min-height: 48px; padding: 12px 22px; border: 1px solid rgba(8, 17, 31, 0.35); border-radius: 999px; background: transparent; color: var(--fx-ink); box-shadow: none; font-size: var(--t-small); font-weight: 700; }
.home .materials[data-research] .research-actions .btn:hover { border-color: var(--fx-ink); background: rgba(8, 17, 31, 0.04); transform: none; }
@media (max-width: 860px) {
  .home .materials[data-research] .section-head { grid-template-columns: 1fr; }
  .home .materials[data-research] .section-lead { margin-top: 20px; }
  .home .materials[data-research] .material-card { grid-template-columns: 44px minmax(0, 1fr); padding: 28px 0; }
  .home .materials[data-research] .material-card__index { font-size: 1.5rem; grid-row: 1 / span 4; }
  .home .materials[data-research] .material-card__title { font-size: clamp(1.3rem, 1rem + 1.6vw, 1.7rem); }
  .home .materials[data-research] .material-card__arrow { grid-column: 2; grid-row: auto; justify-self: start; margin-top: 6px; }
  .home .materials[data-research] .research-actions .btn { width: 100%; justify-content: center; }
}
.home .proof-cases[data-practice] .case-grid { border: 0; padding-top: 0; }
.home .proof-cases[data-practice] .case-grid::before { content: none; display: none; }
.home .proof-cases[data-practice] .case-panel__head { font-size: clamp(1.8rem, 11.2cqi, 3.3rem); }
.home .proof-cases[data-practice] .case-panel--2 :is(.case-panel__meaning, .case-panel__control p) { opacity: 1; color: #2A2006; }
@media (max-width: 960px) { .home .proof-cases[data-practice] .case-panel__head { font-size: clamp(1.8rem, 1.2rem + 2.8vw, 2.5rem); } }
@media (max-width: 960px) { .home .proof-cases[data-practice] .case-panel__control + .case-panel__decision { margin-top: 28px; } }

/* ============================================================================
   27b. HOME — CLIENT VOICES (.client-voices): the closing beat of Practice.
   One featured quote carries the weight; up to two quieter ruled quotes beside it.
   Same ivory field as Practice, one hairline above, no cards, no stars, no motion of
   its own. Rendered by client-voices.js from data/testimonials.js and hidden until a
   consent-approved, published voice exists for the page language.
   ========================================================================== */
.home .client-voices[data-client-voices] { background: #FCFBF8; padding-block: clamp(40px, 4vw, 64px) clamp(88px, 9vw, 150px); }
.home .client-voices[data-client-voices][hidden] { display: none; }
.home .client-voices[data-client-voices] .client-voices__inner { border-top: 1px solid rgba(8, 17, 31, 0.16); padding-top: clamp(44px, 5vw, 84px); }
.home .client-voices[data-client-voices] .client-voices__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 12px 32px; margin-bottom: clamp(32px, 4vw, 60px); }
.home .client-voices[data-client-voices] .overline { margin: 0; font-family: var(--font-sans); font-size: var(--t-eyebrow); font-weight: 700; letter-spacing: 0.14em; color: var(--fx-gold); }
/* the consent note: a discreet footnote after the voices — no box, no rule, muted */
.home .client-voices[data-client-voices] .client-voices__note { margin: clamp(36px, 4.5vw, 64px) 0 0; max-width: 52ch; font-size: var(--t-meta); line-height: 1.5; color: #525D6E; }
.home .client-voices[data-client-voices] .client-voices__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: clamp(40px, 6vw, 120px); row-gap: 40px; align-items: start; }
.home .client-voices[data-client-voices] .client-voices__grid[data-voice-count="1"] { grid-template-columns: minmax(0, 1fr); }
.home .client-voices[data-client-voices] .client-voices__voice { margin: 0; }
.home .client-voices[data-client-voices] .client-voices__quote { margin: 0; }
.home .client-voices[data-client-voices] .client-voices__quote p { margin: 0; }
/* featured: the main weight, set like a Practice headline */
.home .client-voices[data-client-voices] .client-voices__featured .client-voices__quote p { max-width: 22ch; font-family: var(--font-sans); font-size: clamp(1.6rem, 0.85rem + 2.2vw, 2.9rem); font-weight: 300; line-height: 1.16; letter-spacing: -0.028em; color: var(--fx-ink); text-wrap: balance; }
.home .client-voices[data-client-voices] .client-voices__featured .client-voices__quote p::before { content: "«"; }
.home .client-voices[data-client-voices] .client-voices__featured .client-voices__quote p::after { content: "»"; }
.home .client-voices[data-client-voices] .client-voices__attr { display: flex; flex-direction: column; gap: 4px; margin-top: clamp(20px, 2.4vw, 32px); padding-top: 16px; border-top: 1px solid var(--fx-gold-f); max-width: 36ch; }
.home .client-voices[data-client-voices] .client-voices__who { font-size: var(--t-small); font-weight: 700; letter-spacing: 0.01em; color: var(--fx-ink); }
.home .client-voices[data-client-voices] .client-voices__meta { font-size: var(--t-meta); line-height: 1.45; color: var(--fx-ink-2); }
/* secondary: quiet, ruled, no boxes */
.home .client-voices[data-client-voices] .client-voices__aside { display: grid; gap: 0; }
.home .client-voices[data-client-voices] .client-voices__aside .client-voices__voice { padding: clamp(22px, 2.4vw, 32px) 0; border-top: 1px solid var(--fx-rule); }
.home .client-voices[data-client-voices] .client-voices__aside .client-voices__voice:last-child { border-bottom: 1px solid var(--fx-rule); }
.home .client-voices[data-client-voices] .client-voices__aside .client-voices__quote p { max-width: 40ch; font-size: var(--t-body-l); font-weight: 400; line-height: 1.5; letter-spacing: -0.005em; color: var(--fx-ink); }
.home .client-voices[data-client-voices] .client-voices__aside .client-voices__attr { flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin-top: 14px; padding-top: 0; border-top: 0; max-width: none; }
/* the design-preview marker (only the local mock data can produce it) */
.home .client-voices[data-client-voices] .client-voices__mock { align-self: center; padding: 4px 8px; border: 1px dashed var(--fx-gold-f); border-radius: 6px; font-family: var(--font-mono); font-size: 0.66rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fx-gold); }
@media (max-width: 960px) {
  .home .client-voices[data-client-voices] .client-voices__grid { grid-template-columns: minmax(0, 1fr); row-gap: clamp(28px, 4vw, 40px); }
  .home .client-voices[data-client-voices] .client-voices__featured .client-voices__quote p { max-width: 26ch; }
  .home .client-voices[data-client-voices] .client-voices__aside .client-voices__quote p { max-width: none; }
}
@media (max-width: 480px) {
  .home .client-voices[data-client-voices] .client-voices__head { margin-bottom: 28px; }
  .home .client-voices[data-client-voices] .client-voices__featured .client-voices__quote p { max-width: none; font-size: clamp(1.45rem, 1rem + 2.4vw, 1.7rem); }
  .home .client-voices[data-client-voices] .client-voices__attr { margin-top: 18px; }
  .home .client-voices[data-client-voices] .client-voices__note { margin-top: 32px; }
}

/* ==========================================================================
   MOBILE CARD GRAMMAR (Pass 3, ≤ 860px only) — the editorial surfaces. The engagement-format
   mandates and the practice panels are ONE unit each on a phone: the panel lands (32px, 0.99,
   900ms) and its parts ride with it instead of unfolding separately; editorial decks, related
   cards, mosaics and principle panels land as cards (24 / 28px, 0.99, 760ms).
   ========================================================================== */
@media (max-width: 860px) {
  .m-js .home .packages[data-formats] .fmt-panel.reveal {
    transition: opacity var(--m-panel-dur, 900ms) var(--m-ease, ease), transform var(--m-panel-dur, 900ms) var(--m-ease, ease), border-color 0.25s ease;
    transition-delay: var(--m-delay, 0ms);
  }
  .m-js .home .packages[data-formats] .fmt-panel.reveal:not(.is-visible) {
    opacity: 0;
    transform: translateY(var(--m-panel-rise, 32px)) scale(var(--m-panel-scale, 0.99));
  }
  .m-js .home .proof-cases[data-practice] .case-panel.reveal {
    transition: opacity var(--m-panel-dur, 900ms) var(--m-ease, ease), transform var(--m-panel-dur, 900ms) var(--m-ease, ease);
    transition-delay: var(--m-delay, 0ms);
  }
  .m-js .home .proof-cases[data-practice] .case-panel.reveal:not(.is-visible) {
    opacity: 0;
    transform: translateY(var(--m-panel-rise, 32px)) scale(var(--m-panel-scale, 0.99));
  }
  .m-js .home .proof-cases[data-practice] .case-panel.reveal :is(.case-panel__index, .m-c),
  .m-js .home .proof-cases[data-practice] .case-panel.reveal:not(.is-visible) :is(.case-panel__index, .m-c) {
    opacity: 1;
    transform: none;
    transition: none;
  }
  :is(.fx-deck, .fx-related, .fx-mosaic, .fx-principles) > [data-fx] { transition-duration: 760ms, 760ms, 900ms; }
  .m-js :is(.fx-deck, .fx-related, .fx-mosaic, .fx-principles) > [data-fx]:not(.is-visible) {
    opacity: 0.01;
    transform: translateY(24px) scale(0.99);
  }
  .m-js :is(.fx-deck, .fx-related, .fx-mosaic, .fx-principles) > [data-fx]:nth-child(even):not(.is-visible) {
    transform: translateY(28px) scale(0.99);
  }
}

/* ==========================================================================
   28. COMPONENT FIT — cards and grids inside the longread column (664px)
   The longread body rule (.rd-sheet .doc :where(p, li) → --t-body-l) is for running text. Inside cards it
   outranked the cards' own sizes, so 0.68rem micro-labels rendered at body size (СЕБЕСТОИМОСТЬ, 19px,
   uppercase) and broke out of 211px cards. These rules give each component its own scale from the type
   tokens, with enough weight to win inside the sheet, and size the grids from their content, not the viewport.
   ========================================================================== */
.rd-page .rd-sheet :is(.art-kpi, .fcf-kpi, .retail-kpi) { grid-template-columns: repeat(auto-fit, minmax(min(100%, 13.5rem), 1fr)); }
html .rd-page .rd-sheet :is(.art-kpi, .fcf-kpi, .retail-kpi) > :is(.art-kpi__card, .fcf-kpi__card, .retail-kpi__card) > :is(.art-kpi__lvl, .fcf-kpi__lvl, .retail-kpi__label) { font-size: var(--t-eyebrow); line-height: 1.45; letter-spacing: 0.08em; }
html .rd-page .rd-sheet :is(.art-kpi, .fcf-kpi, .retail-kpi) > :is(.art-kpi__card, .fcf-kpi__card, .retail-kpi__card) > :is(.art-kpi__metric, .fcf-kpi__metric) { font-size: var(--t-meta); line-height: 1.45; }
html .rd-page .rd-sheet :is(.art-kpi, .fcf-kpi, .retail-kpi) > :is(.art-kpi__card, .fcf-kpi__card, .retail-kpi__card) > .retail-kpi__title { font-size: var(--t-body); line-height: 1.35; }
html .rd-page .rd-sheet :is(.art-kpi, .fcf-kpi, .retail-kpi) > :is(.art-kpi__card, .fcf-kpi__card, .retail-kpi__card) > .retail-kpi__text { font-size: var(--t-small); line-height: 1.55; }
html .rd-page .rd-sheet :is(.art-kpi, .fcf-kpi, .retail-kpi) > :is(.art-kpi__card, .fcf-kpi__card, .retail-kpi__card) > :is(.art-kpi__val, .fcf-kpi__val) { font-size: 1.5rem; line-height: 1.2; }
/* three capital checks side by side: running text at body size, a little less inner padding */
html .rd-page .rd-sheet section.capital-preservation .capital-preservation__checks > p { font-size: var(--t-body); padding-inline: var(--sp-4); }
/* the AI management-flow chips are a dark-glass component; on the light sheet their translucent navy read as grey */
.rd-page .rd-sheet .ai-flow--page > span { border: 0; background: var(--fx-paper); box-shadow: 0 0 0 1px var(--fx-rule); color: var(--fx-ink); }
/* contrast on light surfaces: the cover crumbs keep their dimming on navy only; the flagship package label on G3;
   budgeting deck links in ink, like the decision stage (the next card's shadow darkens the stone under bronze) */
.rd-page .rd-cover--light .crumbs, .rd-page .rd-cover--light .crumbs a { opacity: 1; }
.home .packages[data-formats] .package--flagship .fmt-panel__details .package__next-label { opacity: 1; }
.pg-budgeting .bf-stage .fx-link { color: var(--fx-ink); }
