/* Retained route families: presentation only; approved five-page cascade above. */
body.flat-pages :is(.balance-inner-hero,.entry-hero,.insights-intro) {
  --ink:#15293e; --ink-2:#344e68; --muted:#344e68; --muted-2:#47617a;
  --bg:#fff; --bg-alt:#e6f1f9; --line:#d3dfeb; --line-strong:#b5c8da;
  background:#fff !important; color:#15293e !important;
}
body.flat-pages :is(.balance-inner-hero,.entry-hero,.insights-intro) h1 { color:#15293e !important; font-weight:700 !important; max-width:24ch; }
body.flat-pages :is(.entry-hero,.insights-intro) { padding-block:72px 56px; }
body.flat-pages .entry-hero :is(.entry-kicker,.entry-date,.entry-summary,.entry-hero-meta a) { color:#344e68 !important; }
body.flat-pages .entry-hero :is(.entry-kicker,.entry-hero-details,.entry-hero-meta) { border-color:#d3dfeb !important; }
body.flat-pages .entry-main { max-width:1100px !important; }
body.flat-pages :is(.entry-path,.entry-prose .entry-case-study,.research-chart) { border:0; border-radius:24px; background:#eaf3fa; }
body.flat-pages :is(.entry-prose,.gl-body) { font-size:20px; line-height:1.7; }
body.flat-pages :is(.entry-kicker,.entry-date,.entry-ledger dt,.chart-source) { font-size:15px; }
body.flat-pages .entry-section { padding-block:56px; }
body.flat-pages :is(.tech-crumbs,.tp-crumb,.ind-crumbs) :is(a,span,svg),
body.flat-pages :is(.tech-cat-label,.gl-term-name,.gl-body,.gl-body strong,.gl-eyebrow,.space-title,.space-desc,.space-subtitle) { color:#344e68 !important; }
body.flat-pages .gl-term-name { font-size:22px; }
body.flat-pages .hero-band:not(:has(.hero-inner)) { padding-top:0; min-height:0; }
body.flat-pages .hero-band:not(:has(.hero-inner)) h1 { margin-inline:0; max-width:21ch !important; }
body.flat-pages :is(.tech-hero-inner,.tp-hero-inner,.ind-hero-inner) { padding-block:72px !important; }
body.flat-pages :is(.tech-hero-fig,.tp-hero-fig,.ind-hero-fig) {
  display:flex !important; justify-content:center; align-items:center;
  background:#15293e; padding:32px; border-radius:32px; min-width:0;
}
body.flat-pages :is(.tech-hero-fig,.tp-hero-fig,.ind-hero-fig) [aria-hidden="true"] { display:revert !important; }
body.flat-pages :is(.tech-hero-fig,.tp-hero-fig,.ind-hero-fig) svg { max-width:100%; height:auto; }
body.flat-pages .tech-logo-plate { background:#fff; border-color:#d3dfeb; }
body.flat-pages :is(.wa-col,.wa-row,.ind-cell,.gl-term-row) { border-color:#c7d9e8; }
body.flat-pages :is(.ind-cell,.cap-row) { border-radius:20px; }
body.flat-pages .dark-section :is(.ag-body,.sa-body,.gl-body,.gl-body strong,.price-grid-night li,.price-grid-night span) { color:#344e68 !important; }
body.flat-pages .night-sheet :is(.ol-lede,.ol-tab,.ol-paneh,.ol-colhead,.ol-colnote,.ol-list,.ol-list li,.is-ours li) { color:#344e68 !important; }
/* These panels have authored white diagrams/controls: retain a navy inset. */
body.flat-pages :is(.agd-outer,.aa-outer) { background:#15293e; color:#fff; border-radius:32px; padding:32px; }
body.flat-pages main :is(.agd-outer,.aa-outer) :is(p,h3,.agd-say,.aa-say) { color:#fff !important; }
body.flat-pages :is(.agd-tag,.agd-lbl,.agd-caveat) { color:#c9dcec !important; }
body.flat-pages .agd-inputrow input::placeholder { color:#a9c0d4; }
body.flat-pages .cs-figure:not(:has(img,svg,canvas)) { aspect-ratio:auto !important; min-height:0; padding:24px; }
body.flat-pages .cs-figure:not(:has(img,svg,canvas)) .cs-fig-cap { position:static; }
body.flat-pages .cs-figure:not(:has(img,svg,canvas)) .mark { display:none; }
/* Independent report palette; keep the existing photo and use an opaque text surface. */
body.flat-pages :is(.djr-gate,.djr-root) {
  --bg:#fff; --bg-alt:#eaf3fa; --ink:#15293e; --ink-2:#344e68;
  --muted:#344e68; --muted-2:#47617a; --line:#d3dfeb; --line-strong:#b5c8da;
  --accent:#185bb7; background:#fff;
}
body.flat-pages :is(.djr-gate,.djr-root) .hero { width:100%; margin-left:0; height:auto; display:grid; background:#e6f1f9; }
body.flat-pages :is(.djr-gate,.djr-root) .hero-bg { position:relative; height:320px; }
body.flat-pages :is(.djr-gate,.djr-root) .hero-scrim { display:none; }
body.flat-pages :is(.djr-gate,.djr-root) .hero-content { padding:40px 32px; }
body.flat-pages :is(.djr-gate,.djr-root) .hero .credit { background:#15293e; color:#fff; padding:8px 12px; border-radius:8px; }
body.flat-pages :is(.djr-gate,.djr-root) .hero :is(h1,.hero-sub,.hero-eyebrow) { color:#15293e !important; }
body.flat-pages :is(.djr-gate,.djr-root) select.field-input option { background:#fff; color:#15293e; }
body.flat-pages :is(.dma-table th,.dma-table td,.dma-table td:first-child,.dma-table td.mono) { color:#344e68 !important; }
/* Red keeps its reviewed identity and geometry inside the shared light system. */
body.flat-pages .red-root {
  --bg:#fff; --bg-alt:#eaf3fa; --ink:#15293e; --ink-2:#344e68;
  --muted:#344e68; --muted-2:#47617a; --line:#d3dfeb; --line-strong:#b5c8da;
  background:#fff; color:#15293e;
}
body.flat-pages .red-root :is(.hero-glow,.hero-noise) { background:none !important; }
body.flat-pages .red-root :is(.rubric-name,.piece-title,.feat-title,.team-name,.spec-total-val,.origin-item,.rail-item.active .rail-label) { color:#15293e !important; }
body.flat-pages .red-root :is(.hero-spec,.rubric-card,.piece,.feat) { border-radius:24px; }
body.flat-pages .red-root .hero-grid { min-height:0; }
body.flat-pages input,body.flat-pages select,body.flat-pages textarea { font-size:18px; }
body.flat-pages :is(input,select,textarea):focus-visible { outline:3px solid #2074ef; outline-offset:3px; }
body.flat-pages[data-flat-page="embed"] { padding:20px !important; }
@media(max-width:700px) {
  body.flat-pages :is(.entry-hero,.insights-intro,.tech-hero-inner,.tp-hero-inner,.ind-hero-inner) { padding-block:48px !important; }
  body.flat-pages :is(.tech-hero-fig,.tp-hero-fig,.ind-hero-fig) { padding:24px; border-radius:24px; }
  body.flat-pages .entry-section { padding-block:40px; }
  body.flat-pages :is(.agd-outer,.aa-outer) { padding:24px; }
  body.flat-pages :is(.djr-gate,.djr-root) .hero-bg { height:240px; }
  body.flat-pages :is(.djr-gate,.djr-root) .hero-content { padding:28px 20px; }
}

body.flat-pages .djr-root { --bg-tint:#edf5fa; }
body.flat-pages .djr-root .cta-band { background:#15293e; background-image:none; width:100%; left:auto; transform:none; border-radius:32px; }
body.flat-pages .djr-root .cta-band :is(h2,p,.num,.zone-tag,.rev-tag) { color:#fff !important; }
body.flat-pages .djr-root .prose { font-size:20px; line-height:1.7; }
body.flat-pages .red-root { --bg-elev:#edf5fa; --bg-deep:#e6f1f9; }
/* Assessment states retain the same surface and contrast as their entry form. */
body.flat-pages[data-flat-page="assess"] .dark-block { background:#e6f1f9 !important; border-radius:24px; color:#15293e; }
body.flat-pages[data-flat-page="assess"] main .dark-block :is(h3,p) { color:#15293e !important; }
body.flat-pages[data-flat-page="assess"] #step-lead .border:has(> form#lead-form) { border-radius:24px; }
/* Family review: explicit foreground/surface pairs for legacy component islands. */
body.flat-pages .red-root :is(.h2,h2) { color:#15293e !important; }
body.flat-pages .dossier-wrap { --d-ink:#f3f6fb; --d-muted:#d1deeb; --d-muted-2:#b4c7da; }
body.flat-pages .dossier-wrap :is(.db-h,.db-mark,.db-head h2,.db-head h3) { color:#f3f6fb !important; }
body.flat-pages .dossier-wrap :is(.db-lede,.db-caveat,.db-id,.db-sample,.db-kicker,.db-field label) { color:#c9dcec !important; }
body.flat-pages .dossier-wrap .db-field input::placeholder { color:#b4c7da !important; }
body.flat-pages .ind-cell { background:#e6f1f9 !important; }
body.flat-pages .ind-cell :is(h3,.ind-cell-idx) { color:#15293e !important; }
body.flat-pages .ind-cell p { color:#344e68 !important; }
body.flat-pages .djr-gate .hero-content { position:static !important; inset:auto; background:#e6f1f9; }
body.flat-pages[data-flat-page="assess"] .dark-block :is(h3,p) { color:#15293e !important; }
body.flat-pages .values-section .space-intro h2 { color:#15293e !important; }
body.flat-pages .values-section .space-intro p { color:#344e68 !important; }
/* T-0097: full-route contrast audit, with explicit light/inverse boundaries. */
body.flat-blue { --accent:#185bb7; --accent-hover:#12478f; --accent-ink:#185bb7; --orange-ink:#963b20; }
body.flat-blue :is(.coord,.rev-tag,#tr-yearsub,.space-mark,.svs-hint,.svc-mk) { color:#963b20 !important; }
body.flat-blue .coord { color:#47617a !important; }
body.flat-blue :is(.required,.cs-label-t,.cs-num,.cs-kicker,.os-row-cta) { color:#185bb7 !important; }
body.flat-pages :is(.entry-section a,.entry-row,.article-prose a) { color:#185bb7 !important; }
body.flat-pages :is(.ch-hero,.article-heading) {
  --ink:#15293e; --ink-2:#344e68; --muted:#344e68; --muted-2:#47617a; --accent:#185bb7;
  background:#fff !important; color:#15293e !important; box-shadow:none !important;
}
body.flat-pages :is(.gl-term-line,.ol-col li,.ol-mk) { color:#344e68 !important; }
body.flat-pages .is-ours .ol-mk { color:#963b20 !important; }
body.flat-pages :is(.os-crumbs,.ag-crumbs) :is(a,span) { color:#47617a !important; }
body.flat-pages .os-hero-tag { color:#185bb7 !important; }
body.flat-pages .os-hero-tag:last-child { color:#963b20 !important; }
body.flat-pages .filters button { color:#344e68 !important; border-color:#b5c8da; }
body.flat-pages .filters button[aria-pressed="true"] { color:#fff !important; background:#185bb7 !important; border-color:#185bb7 !important; }
body.flat-pages .svs-figure { --orange-ink:#963b20; }
body.flat-pages .svs-figure i { color:#963b20 !important; }
/* AI feature copy stays light; only the actual console and drawing are inverse. */
body.flat-pages main :is(.agd-outer,.aa-outer) { background:#edf4fb !important; color:#15293e !important; }
body.flat-pages main :is(.agd-outer,.aa-outer) :is(p,h3,dt,dd,b,span,.aa-ext) { color:#344e68 !important; }
body.flat-pages main :is(.agd-outer,.aa-outer) :is(.agd-say,.aa-say,dt) { color:#15293e !important; }
body.flat-pages main .agd-outer .agd-n { color:#963b20 !important; }
body.flat-pages main .agd-outer .agd-console { background:#15293e !important; border-radius:24px; overflow:hidden; }
body.flat-pages main .agd-outer .agd-console :is(label,input,span) { color:#e3edf7 !important; }
body.flat-pages main .agd-outer .agd-console input::placeholder { color:#b7cce0 !important; opacity:1; }
body.flat-pages main .agd-outer .agd-console .agd-go { background:#e3edf7 !important; color:#15293e !important; border-color:#e3edf7; border-radius:999px; }
body.flat-pages main .agd-outer .agd-console .agd-go span { color:#15293e !important; }
body.flat-pages main .agd-outer .agd-console .agd-go:hover { background:#fff !important; }
body.flat-pages .aa-markwrap { background:#15293e; border-radius:24px; padding:20px; }
/* Analytics marketing remains light; the reviewed sample dashboard remains dark. */
body.flat-pages .an-root {
  --bg:#fff; --bg-alt:#edf4fb; --ink:#15293e; --ink-2:#344e68;
  --muted:#344e68; --muted-2:#47617a; --line:#c9d7e5; --line-strong:#b5c8da;
  --accent:#185bb7; --accent-ink:#185bb7; color:#15293e; background:#fff;
}
body.flat-pages .an-root .hero-glow { background:none; }
body.flat-pages .an-root :is(.scr,.an-diagram) {
  --bg:#0c1a2a; --bg-alt:#15293e; --ink:#f2f6ff; --ink-2:#d1dfec;
  --muted:#c3d3e4; --muted-2:#b2c8db; --line:#3d526a; --line-strong:#5b7289;
  --accent:#8cc2ff; --accent-ink:#8cc2ff; background:#15293e; color:#f2f6ff; border-radius:24px;
}
body.flat-pages main .an-root .scr :is(p,b,span,div,dd) { color:#d5e4f2 !important; }
body.flat-pages main .an-root .scr .kpi b { color:#fff !important; }
body.flat-pages main .an-root .scr :is(.an-live-status,.d) { color:#84d6b4 !important; }
body.flat-pages main .an-root .scr .d.down { color:#ffb29d !important; }
/* Dark warm/semantic inks preserve the Red palette on its new pale surfaces. */
body.flat-pages .red-root {
  --orange:#963b20; --accent:#963b20; --accent-hover:#742c16;
  --ok:#216847; --warn:#805016; --info:#385875; --crit:#a02f30;
}
body.flat-pages .red-root :is(.scorer-q,.out-total,.road-phase,.rail-num) { color:#15293e !important; }
body.flat-pages .red-root :is(.scorer,.origin-strip) { background-image:none !important; }
body.flat-pages .red-root :is(.seg-btn.on,.seg-btn[aria-pressed="true"],.status-shipped) { color:#fff !important; }
body.flat-pages .red-root .faq summary:hover { color:#15293e; }
/* Existing navy closing panels need their inverse metadata after global ink fixes. */
body.flat-pages :is(.cs-closer,.djr-root .cta-band) :is(.rev-tag,.cs-label-t,.cs-num,.num) { color:#d1e3f5 !important; }
body.flat-pages .svc-c-us::before { color:#963b20 !important; }
body.flat-pages .agd-console :is(input,button):focus-visible { outline:3px solid #b7d7fa !important; outline-offset:4px; }
/* Existing chart geometry/data stays intact; replace only white-on-light paint. */
body.flat-pages .djr-root svg [stroke="rgba(255,255,255,0.18)"],
body.flat-pages .djr-root svg [stroke="rgba(255,255,255,0.25)"],
body.flat-pages .djr-root svg [stroke="rgba(255,255,255,0.28)"] { stroke:#708aa3; }
body.flat-pages .djr-root svg [stroke="rgba(255,255,255,0.65)"] { stroke:#15293e; }
body.flat-pages .djr-root svg [fill="rgba(255,255,255,0.18)"] { fill:#6f8aa5; }
body.flat-pages .ch-hero :is(a.fam.link,.fam.link .arr) { color:#47617a !important; }
body.flat-pages[data-flat-page="red"] .rail-num { color:#47617a !important; }
body.flat-pages .red-root .hero-spec { background:#eaf3fa !important; }
body.flat-pages :is(.ag-steps,.sa-steps,.ag-outputs) li::marker { color:#344e68 !important; }
@media (max-width:1440px) {
  body.flat-pages[data-flat-page="red"] .rail { display:none; }
  body.flat-pages[data-flat-page="red"] .rail-bar { display:block; }
}
/* Agent Discovery is one continuous navy feature section. */
body.flat-pages main .agd-outer.dark-section {
  --ink:#f2f6ff; --muted:#d1dfec; --muted-2:#b7cce0; --orange:#b7d7fa;
  background:#15293e !important; color:#f2f6ff !important; background-image:none !important;
}
body.flat-pages main .agd-outer.dark-section :is(h2,h3,p,dt,dd,b,span) { color:#d1dfec !important; }
body.flat-pages main .agd-outer.dark-section :is(h2,h3,.agd-say,dt) { color:#f2f6ff !important; }
body.flat-pages main .agd-outer.dark-section :is(.num,.agd-n,.agd-tag,.agd-time,.agd-lbl,.agd-caret) { color:#b7d7fa !important; }
body.flat-pages main .agd-outer.dark-section .agd-console { background:#1d354e !important; border:1px solid #526d87; }
body.flat-pages main .agd-outer.dark-section :is(.agd-bar,.agd-col,.agd-caveat,.agd-inputrow) { border-color:#526d87; }
body.flat-pages main .agd-outer.dark-section .agd-dot { background:#b7d7fa; }
body.flat-pages main .agd-outer.dark-section .agd-inputrow:focus-within { border-color:#b7d7fa; }
body.flat-pages main .agd-outer.dark-section .agd-console .agd-go,
body.flat-pages main .agd-outer.dark-section .agd-console .agd-go span { color:#15293e !important; }
/* Section indices are decorative; headings carry the hierarchy. */
body.flat-blue .section-header .num,
body.flat-blue .cs-label-t .cs-num { display:none !important; }
/* Retired drafting furniture. Actual headings, breadcrumbs, data and numbered
   process steps remain visible. Remove the empty header frame with its stamps. */
body.flat-blue :is(.zone-label,.coord,.rev-tag,.zone-tag,.mark) { display:none !important; }
body.flat-blue .section-header:has(> .zone-tag):not(:has(h1,h2,h3)) { display:none !important; }

/* T-0098: final type layer. Repeated scope wins legacy important selectors
   without changing colour, markup, root font size or chart/metric roles. */
body.flat-blue {
  --type-h1:clamp(2.5rem,calc(1.5rem + 4vw),4.5rem);
  --type-h2:clamp(2rem,calc(1.5rem + 2vw),3rem);
  --type-h3:clamp(1.625rem,calc(1.4375rem + .75vw),2rem);
  --type-h4:clamp(1.375rem,calc(1.25rem + .5vw),1.625rem);
  --type-h5:clamp(1.25rem,calc(1.1875rem + .25vw),1.375rem);
  --type-h6:clamp(1.125rem,calc(1.0625rem + .25vw),1.25rem);
  --type-body:clamp(1.125rem,calc(1.0625rem + .25vw),1.25rem);
  --type-lead:clamp(1.25rem,calc(1.1875rem + .25vw),1.375rem);
  --type-meta:.9375rem; --type-caption:.875rem;
  --type-control:1rem; --type-card-body:1.125rem;
}
html body.flat-blue.flat-blue.flat-blue h1 { font-size:var(--type-h1) !important; font-weight:760 !important; line-height:1.08 !important; letter-spacing:-.035em !important; text-wrap:balance; }
html body.flat-blue.flat-blue.flat-blue h2 { font-size:var(--type-h2) !important; font-weight:720 !important; line-height:1.16 !important; letter-spacing:-.025em !important; text-wrap:balance; }
html body.flat-blue.flat-blue.flat-blue h3 { font-size:var(--type-h3) !important; font-weight:680 !important; line-height:1.25 !important; letter-spacing:-.015em !important; text-wrap:balance; }
html body.flat-blue.flat-blue.flat-blue h4 { font-size:var(--type-h4) !important; font-weight:650 !important; line-height:1.3 !important; letter-spacing:-.01em !important; text-wrap:balance; }
html body.flat-blue.flat-blue.flat-blue h5 { font-size:var(--type-h5) !important; font-weight:650 !important; line-height:1.35 !important; letter-spacing:-.01em !important; text-wrap:balance; }
html body.flat-blue.flat-blue.flat-blue h6 { font-size:var(--type-h6) !important; font-weight:650 !important; line-height:1.4 !important; letter-spacing:0 !important; text-wrap:balance; }
html body.flat-blue.flat-blue.flat-blue :is(p,dd,.step .tx,.cs-row-text,.entry-prose,.gl-body) { font-size:var(--type-body) !important; font-weight:400; line-height:1.6 !important; }
html body.flat-blue.flat-blue.flat-blue :is(.hero-sub,.cat-sub,.ah-sub,.svh-sub,.ch-sub,.cs-lede,.cs-cover-lede,.lead,.lead-para,.entry-summary,.intro,.industry-intro,.cta-sub,.agd-say,.aa-say,.db-lede) { font-size:var(--type-lead) !important; font-weight:450; line-height:1.5 !important; }
html body.flat-blue.flat-blue.flat-blue #cta-band .cta-sub { font-size:var(--type-lead) !important; line-height:1.5 !important; }
html body.flat-blue.flat-blue.flat-blue :is(.step .nm,.svf-row dt,.agd-col dt,.aa-col dt,.cs-row-key,.ol-paneh) { font-size:var(--type-h4) !important; font-weight:650 !important; line-height:1.3 !important; letter-spacing:-.01em !important; }
/* Block titles retain semantic level while sharing the H4 visual role. */
html body.flat-blue.flat-blue.flat-blue :is(.work-body h3,.capability h3,.insight h3,.cs-panel-h,.space-title) { font-size:var(--type-h4) !important; font-weight:650 !important; line-height:1.3 !important; }
/* Compact supporting roles: metadata, sources and attribution, never display. */
html body.flat-blue.flat-blue.flat-blue :is(p.micro,p.eyebrow,p.mono,p.mono-micro,.entry-kicker,.entry-date,.chart-source,.an-eyebrow,.os-footer-eyebrow,.os-why-tag,.cta-kicker,.hero-kicker,.db-kicker,.db-caveat,.agd-caveat,.cs-fig-cap,.hero-eyebrow) { font-size:var(--type-meta) !important; line-height:1.5 !important; }
html body.flat-blue.flat-blue.flat-blue :is(.article-prose h2.mono,.entry-section:has(> .entry-links) > .section-header > h2) { font-size:var(--type-h6) !important; font-weight:650 !important; line-height:1.4 !important; }
body.flat-pages .agd-n { display:none !important; }
/* Homepage chapter labels introduce the adjacent display heading. */
html body.flat-blue.flat-blue.flat-blue:not(.flat-pages) .section-header > h2 { font-size:var(--type-h6) !important; font-weight:650 !important; line-height:1.4 !important; letter-spacing:0 !important; }

/* Complete the role scale: inherited body sizes must not turn metadata,
   form labels or footer copy into display text. */
body.flat-blue { font-size:var(--type-body); line-height:1.6; }
html body.flat-blue.flat-blue.flat-blue :is(.micro,.eyebrow,.mono-micro,.insight-meta,.entry-hero-meta,.entry-ledger dt,.cs-fact-l,.tech-crumbs,.tp-crumb,.ind-crumbs,.os-crumbs,.ag-crumbs,.chart-source,.asic-caption) {
  font-size:var(--type-meta) !important; line-height:1.5 !important; letter-spacing:0 !important;
}
html body.flat-blue.flat-blue.flat-blue :is(.btn,.text-link,.next-step-cta,.field-label,.field-help,.nav-section-label,.filters button) {
  font-size:var(--type-control) !important; line-height:1.4 !important; letter-spacing:0 !important;
}
html body.flat-blue.flat-blue.flat-blue :is(.field-label,legend) { font-weight:600; }
html body.flat-blue.flat-blue.flat-blue :is(.entry-prose,.article-prose,.prose) :is(p,li) {
  font-size:var(--type-body) !important; line-height:1.65 !important; text-wrap:pretty;
}
html body.flat-blue.flat-blue.flat-blue :is(.entry-prose,.article-prose,.prose) > :is(p,ul,ol) { max-width:75ch; }
/* FAQ questions are controls, not display headings. This scope also wins
   the case-study type aliases without changing headings elsewhere. */
html body.flat-blue.flat-blue.flat-blue.flat-blue :is(.faq-list details.faq,.red-root .faq > details) > summary {
  display:flex; align-items:flex-start; justify-content:space-between; gap:24px; padding:24px 2px;
  font:600 1.25rem/1.45 Geist,system-ui,sans-serif !important; letter-spacing:0 !important;
  color:#15293e !important; cursor:pointer; list-style:none;
}
html body.flat-blue.flat-blue.flat-blue.flat-blue .faq-list details.faq > summary > h3 {
  margin:0; min-width:0; font-size:1.25rem !important; font-weight:600 !important;
  line-height:1.45 !important; letter-spacing:0 !important; color:#15293e !important; text-wrap:pretty;
}
html body.flat-blue.flat-blue.flat-blue.flat-blue :is(.faq-list details.faq,.red-root .faq > details) > summary::after {
  content:''; display:block; width:16px; height:16px; margin-top:6px; flex:0 0 16px;
  background:linear-gradient(#15293e,#15293e) center / 16px 2px no-repeat,linear-gradient(#15293e,#15293e) center / 2px 16px no-repeat;
  transform:none; transition:background-size 160ms ease-out;
}
html body.flat-blue.flat-blue.flat-blue.flat-blue :is(.faq-list details.faq,.red-root .faq > details)[open] > summary::after { background-size:16px 2px,2px 0; }
html body.flat-blue.flat-blue.flat-blue.flat-blue :is(.faq-list details.faq,.red-root .faq > details) > summary::-webkit-details-marker { display:none; }
html body.flat-blue.flat-blue.flat-blue.flat-blue :is(.faq-list details.faq,.red-root .faq > details) > summary:hover { background-color:#dfeef9; color:#15293e !important; }
html body.flat-blue.flat-blue.flat-blue.flat-blue :is(.faq-list details.faq,.red-root .faq > details) > summary:focus-visible { outline:3px solid #2074ef; outline-offset:3px; }
html body.flat-blue.flat-blue.flat-blue.flat-blue :is(.faq-list,.red-root .faq) .faq-a {
  margin:0; padding:8px 2px 24px; max-width:70ch; color:#344e68 !important;
  font-size:1.125rem !important; line-height:1.65 !important;
}
html body.flat-blue.flat-blue.flat-blue.flat-blue .faq-list .faq-a p {
  margin:0; font-size:1.125rem !important; line-height:1.65 !important; color:#344e68 !important;
}
html body.flat-blue.flat-blue.flat-blue.flat-blue .faq-list .faq-a p + p { margin-top:12px; }
@media(max-width:639px) {
  html body.flat-blue.flat-blue.flat-blue.flat-blue :is(.faq-list details.faq,.red-root .faq > details) > summary { padding-block:20px; gap:20px; font-size:1.125rem !important; }
  html body.flat-blue.flat-blue.flat-blue.flat-blue .faq-list details.faq > summary > h3 { font-size:1.125rem !important; }
  html body.flat-blue.flat-blue.flat-blue.flat-blue :is(.faq-list,.red-root .faq) .faq-a { padding-bottom:20px; font-size:1rem !important; }
  html body.flat-blue.flat-blue.flat-blue.flat-blue .faq-list .faq-a p { font-size:1rem !important; }
}
html body.flat-blue.flat-blue.flat-blue :is(.card h2,.card h3,.card h4,.idx-row h3,.entry-row h3) {
  font-size:var(--type-h4) !important; font-weight:650 !important; line-height:1.3 !important; letter-spacing:-.01em !important;
}

/* The footer has its own compact information hierarchy, including on pages
   whose closing CTA is rendered inside the same footer element. */
html body.flat-blue.flat-blue.flat-blue .balance-footer > .container :is(p,a) {
  font-size:var(--type-control) !important; line-height:1.6 !important; font-weight:400; letter-spacing:0 !important;
}
html body.flat-blue.flat-blue.flat-blue .balance-footer .footer-columns .nav-section-label {
  font-size:var(--type-control) !important; font-weight:650; line-height:1.4 !important;
}
html body.flat-blue.flat-blue.flat-blue .balance-footer > .container .mono-micro,
html body.flat-blue.flat-blue.flat-blue .balance-footer > .container .mono-micro :is(p,a) {
  font-size:var(--type-caption) !important; line-height:1.5 !important; letter-spacing:0 !important;
}

/* Shared onward paths: separate tonal cards instead of collapsed square cells.
   These are links, so the existing focus and hover affordances remain valid. */
body.flat-blue .grid:has(> .next-step),
body.flat-blue .grid:has(> .peer-case),
body.flat-pages main .grid.gap-px:has(> a) { gap:24px; background:transparent !important; }
body.flat-blue :is(.next-step,.peer-case),
body.flat-pages main .grid.gap-px > a {
  border:0; border-radius:16px; margin:0; padding:28px;
  background:#eaf3fa !important; color:#15293e;
}
body.flat-blue :is(.next-step,.peer-case):hover,
body.flat-pages main .grid.gap-px > a:hover { background:#dfecf6 !important; }
body.flat-blue .next-step > span:first-child,
body.flat-blue .peer-case .dno { display:none; }
body.flat-blue .peer-case :is(.head,.body,.foot) { background:transparent; border:0; padding:0; }
body.flat-blue .peer-case .head { margin-bottom:20px; }
body.flat-blue .peer-case .foot { padding-top:24px; gap:16px; }
html body.flat-blue.flat-blue.flat-blue .next-step > span:nth-child(2),
html body.flat-blue.flat-blue.flat-blue .peer-case .body > span:first-child {
  font-size:var(--type-h4) !important; font-weight:650 !important; line-height:1.3 !important; letter-spacing:-.01em;
}
html body.flat-blue.flat-blue.flat-blue .next-step > span:nth-child(3),
html body.flat-blue.flat-blue.flat-blue .peer-case .body > span:nth-child(2),
html body.flat-blue.flat-blue.flat-blue .grid.gap-px > a > p {
  font-size:var(--type-card-body) !important; line-height:1.6 !important;
}
html body.flat-blue.flat-blue.flat-blue .peer-case .foot :is(.stats,.cta) {
  font-size:var(--type-meta) !important; line-height:1.5 !important; letter-spacing:0 !important; text-transform:none;
}
@media (max-width:700px) {
  body.flat-blue { --type-body:1.125rem; --type-lead:1.25rem; }
  body.flat-blue .grid:has(> .next-step), body.flat-blue .grid:has(> .peer-case),
  body.flat-pages main .grid.gap-px:has(> a) { gap:16px; }
  body.flat-blue :is(.next-step,.peer-case), body.flat-pages main .grid.gap-px > a { padding:24px; }
}

/* Compact-role audit: legacy component-local sizes must not shrink captions
   and controls below the shared scale. Plot geometry and SVG labels stay local. */
html body.flat-blue.flat-blue.flat-blue :is(.agd-tag,.agd-time,.cs-label-t,.cs-stop .cs-kicker,.et-zl,.et-zl > span,.et-when,.et-k,.ol-mk,.pf-offering-label,.offering .zl,.tr-stats .st) {
  font-size:var(--type-meta) !important; line-height:1.5 !important; letter-spacing:0 !important;
}
html body.flat-blue.flat-blue.flat-blue :is(nav[class*="crumb"],nav[aria-label="Breadcrumb"],.cs-cover-wrap nav),
html body.flat-blue.flat-blue.flat-blue :is(nav[class*="crumb"],nav[aria-label="Breadcrumb"],.cs-cover-wrap nav) :is(a,span) {
  font-size:var(--type-meta) !important; line-height:1.5 !important; letter-spacing:0 !important;
}
html body.flat-blue.flat-blue.flat-blue :is(.step .dot,.cwr-stage-sub,.an-root .scr-bar > span,.an-root .kpi > span,.an-root .tl > span) {
  font-size:var(--type-caption) !important; line-height:1.5 !important; letter-spacing:0 !important;
}
html body.flat-blue.flat-blue.flat-blue :is(.agd-lbl,.agd-go,.agd-goarrow,.pf-offering-cta,.offering .go .t,.foot-link,.foot-link > span,.audit-controls button,.audit-controls button > span) {
  font-size:var(--type-control) !important; line-height:1.4 !important; letter-spacing:0 !important;
}
/* Only drafting indices disappear; step numbers and timeline years are data. */
html body.flat-blue.flat-blue.flat-blue :is(.cs-label-t .cs-num,.cs-panel > .cs-kicker,.pf-idx,.offering-no) { display:none !important; }
/* The chart's HTML stage labels need space at the caption size. */
@media (min-width:640px) {
  body.flat-blue .cwr-row { grid-template-columns:112px minmax(0,1fr) 190px; }
}
body.flat-blue .agd-bar { flex-wrap:wrap; gap:12px; }
