@import url('https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,500;0,6..72,600;0,6..72,700;1,6..72,400&family=Plus+Jakarta+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

/*
 * Business Expert — Citation Hub
 * New design system: FT/Bloomberg editorial aesthetic + civic-statistical rigour.
 * Loaded only on /data/* pages via functions.php enqueue.
 *
 * Design source: data-hub-handoff/data-hub/project/styles.css
 * Class namespace: new design uses unnamespaced classes (.hub-bar, .hero, .kpi-row, etc.)
 * The .be-citation-page wrapper on <main> scopes all inner components.
 */

/* ============================================================
   Design tokens — light (default)
   ============================================================ */
:root {
  --paper:          #FFFFFF;
  --paper-2:        #F4F2EC;
  --lavender:       #F9F5F8;
  --lavender-2:     #F1EAEF;
  --lavender-edge:  #E4D8E0;
  --ink:            #1A1614;
  --ink-2:          #3A332E;
  --ink-3:          #6E665E;
  --ink-4:          #9C948B;
  --rule:           #DCD6CC;
  --rule-2:         #EAE5DB;
  --accent:         #7B2D8E;
  --accent-soft:    #A050B4;
  --positive:       #355E3B;
  --negative:       #8B2D1F;
  --warn:           #B5651D;
  --warn-soft:      #FEF3E2;
  --accent-2:       #A050B4;

  /* Semantic aliases used by page-additions components */
  --panel:          var(--paper);
  --bg:             var(--paper-2);
  --bg-2:           var(--lavender-2);

  /* Type scale */
  --fs-meta:  11px;
  --fs-body:  17px;
  --fs-title: clamp(28px, 3.5vw, 36px);

  --serif: 'Newsreader', Georgia, 'Times New Roman', serif;
  --sans:  'Plus Jakarta Sans', system-ui, sans-serif;
  --mono:  'IBM Plex Mono', ui-monospace, Menlo, monospace;

  --hub-h:     48px;
  --secnav-h:  56px;
  --col-gap:   56px;
  --rail-w:    220px;
  --maxw:      1080px;
  --gutter:    48px;
  --inset:     24px;

  /* Density (standard) */
  --strip-py: 10px;
  --strip-fs: 11px;
}

[data-density="compact"] {
  --strip-py: 6px;
  --strip-fs: 10.5px;
}
[data-density="verbose"] {
  --strip-py: 14px;
  --strip-fs: 12px;
}

[data-theme="sepia"] {
  --paper:         #F5EFE2;
  --paper-2:       #ECE3D1;
  --lavender:      #EFE3DC;
  --lavender-2:    #E4D4C7;
  --lavender-edge: #D4BFAD;
  --ink:           #2A1F12;
  --ink-2:         #4A3A28;
  --ink-3:         #7A6A55;
  --ink-4:         #A89682;
  --rule:          #D4C5AC;
  --rule-2:        #E2D4BC;
  --accent:        #6B3A1E;
  --accent-soft:   #9B6B43;
}

[data-theme="dark"] {
  --paper:         #161412;
  --paper-2:       #1F1B18;
  --lavender:      #221C20;
  --lavender-2:    #2C2329;
  --lavender-edge: #3D2F38;
  --ink:           #F0EBE3;
  --ink-2:         #D4CBBE;
  --ink-3:         #9C9286;
  --ink-4:         #6E665E;
  --rule:          #2F2A24;
  --rule-2:        #261F1A;
  --accent:        #C99CBF;
  --accent-soft:   #A77B9E;
}

/* Nav override — restore white background on citation pages */
.nav { background: #fff !important; }
.nav-dropdown { background: #fff !important; }

/* ============================================================
   Page base — scoped to .be-citation-page
   ============================================================ */
.be-citation-page {
  background: var(--paper);
  color: var(--ink);
  font-family: var(--serif);
  font-size: 17px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: 'ss01', 'kern', 'liga';
}

.be-citation-page *,
.be-citation-page *::before,
.be-citation-page *::after {
  box-sizing: border-box;
}

.be-citation-page a { color: inherit; text-decoration: none; }
.be-citation-page button { font: inherit; cursor: pointer; }
.be-citation-page hr { border: none; border-top: 1px solid var(--rule); margin: 24px 0; }

/* ============================================================
   Hub bar — outside .be-citation-page, unscoped
   (be-citation.css only loads on /data/* pages)
   ============================================================ */
.hub {
  position: sticky; top: 0; z-index: 60;
  background: var(--paper);
  border-bottom: 1px solid var(--rule);
  height: var(--hub-h);
}
/* WP admin bar offset */
.admin-bar .hub { top: 32px; }
@media screen and (max-width: 782px) { .admin-bar .hub { top: 46px; } }

.hub__inner {
  max-width: var(--maxw); height: 100%; margin: 0 auto;
  display: grid; grid-template-columns: auto 1fr auto;
  align-items: center; gap: 24px; padding: 0 24px;
}
.hub__brand { display: flex; align-items: center; gap: 8px; letter-spacing: -0.005em; }
.hub__brand-mark {
  display: flex; align-items: center; gap: 6px;
  font-family: var(--sans); font-size: 14px; font-weight: 700;
  color: var(--ink); letter-spacing: -0.012em;
}
.hub__brand-mark::before {
  content: ""; display: inline-block; width: 16px; height: 16px;
  background-image: linear-gradient(135deg, var(--ink) 0 38%, var(--accent) 38% 62%, var(--ink) 62% 100%);
  flex-shrink: 0;
}
.hub__nav { display: flex; gap: 2px; overflow-x: auto; font-size: 11px; }
.hub__nav a {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 8px; color: var(--ink-2); white-space: nowrap;
  border-radius: 2px; transition: background 120ms; text-decoration: none;
}
.hub__nav a:hover { background: var(--lavender); color: var(--ink); }
.hub__nav a[aria-current="page"] { color: var(--ink); font-weight: 600; box-shadow: inset 0 -2px 0 var(--ink); }
.hub__nav a .num { font-family: var(--mono); font-size: 11px; opacity: 0.6; }
.hub__edition {
  display: flex; align-items: center; gap: 6px;
  font-family: var(--mono); font-size: 11px; color: var(--ink-3);
  letter-spacing: 0.04em; white-space: nowrap;
}
.dot { width: 6px; height: 6px; border-radius: 50%; display: inline-block; }
.dot.is-fresh { background: var(--positive); box-shadow: 0 0 0 3px color-mix(in oklab, var(--positive) 15%, transparent); }

/* ============================================================
   V1 design system — hub bar grid variant (fraud v1.html)
   These unscoped classes co-exist with the legacy .hub__inner
   pattern; the Python emits .hub__grid / .hub__brand etc.
   ============================================================ */
.hub__grid {
  display: grid; grid-template-columns: repeat(12, minmax(0,1fr));
  gap: 32px; max-width: 1180px; margin: 0 auto;
  padding: 0 32px; height: 100%; align-items: center;
}
.hub__brand {
  grid-column: span 3;
  font: 600 12px/1 var(--mono); letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--ink); text-decoration: none;
}
.hub__nav {
  grid-column: span 7;
  display: flex; gap: 32px;
}
.hub__nav a {
  font: 400 14px/1 var(--sans); color: var(--ink-2);
  padding: 4px 0; border-bottom: 2px solid transparent;
  text-decoration: none;
}
.hub__nav a[aria-current="page"] { color: var(--ink); border-bottom-color: var(--ink); font-weight: 500; }
.hub__edition {
  grid-column: span 2; text-align: right;
  font: 500 11px/1 var(--mono); color: var(--ink-3); letter-spacing: 0.06em;
  text-transform: uppercase; display: flex; align-items: center;
  justify-content: flex-end; gap: 8px;
}

/* ============================================================
   V1 — 12-col grid system
   ============================================================ */
.grid {
  display: grid; grid-template-columns: repeat(12, minmax(0,1fr));
  gap: 32px; max-width: 1180px; margin: 0 auto; padding: 0 32px;
}
.col-3 { grid-column: span 3; } .col-4 { grid-column: span 4; }
.col-5 { grid-column: span 5; } .col-6 { grid-column: span 6; }
.col-7 { grid-column: span 7; } .col-8 { grid-column: span 8; }
.col-9 { grid-column: span 9; }
.col-12 { grid-column: 1/-1; }

/* ============================================================
   V1 — Type roles
   ============================================================ */
.t-display { font: 600 64px/1.04 var(--serif); letter-spacing: -0.025em; color: var(--ink); margin: 0; text-wrap: balance; }
.t-h2      { font: 600 36px/1.18 var(--serif); letter-spacing: -0.02em;  color: var(--ink); margin: 0; text-wrap: balance; }
.t-body    { font: 400 19px/1.6  var(--serif); color: var(--ink-2); margin: 0; max-width: 60ch; text-wrap: pretty; }
.t-lead    { font: 400 22px/1.5  var(--serif); color: var(--ink-2); margin: 0; max-width: 60ch; font-style: italic; }
.t-mono    { font: 500 12px/1.4  var(--mono); color: var(--ink-3); letter-spacing: 0.12em; text-transform: uppercase; }

/* ============================================================
   V1 — Section rhythm
   ============================================================ */
section { padding: 96px 0; border-bottom: 1px solid var(--rule); }
section:last-of-type { border-bottom: none; }

.eyebrow { display: flex; align-items: baseline; gap: 16px; margin-bottom: 32px; }
.eyebrow__num   { font: 500 12px/1.4 var(--mono); color: var(--ink-3); letter-spacing: 0.12em; }
.eyebrow__label { font: 500 13px/1.4 var(--sans); color: var(--ink-2); }

/* ============================================================
   V1 — Hero (fraud page)
   ============================================================ */
section.hero { padding: 96px 0; border-bottom: 1px solid var(--rule); }
.hero__kicker {
  display: inline-flex; align-items: center; gap: 8px;
  margin-bottom: 32px;
  font: 500 12px/1.4 var(--mono); color: var(--ink-3); letter-spacing: 0.14em; text-transform: uppercase;
}
.hero__kicker-dot { width: 6px; height: 6px; background: var(--accent); display: inline-block; }
.hero__title { margin-bottom: 32px; max-width: 16ch; }
.hero__lead  { margin-bottom: 0; }

/* ============================================================
   V1 — Big number (bignum + splash)
   ============================================================ */
.bignum { display: flex; flex-direction: column; gap: 16px; }
.bignum__label { font: 500 13px/1.4 var(--sans); color: var(--ink-3); letter-spacing: 0.04em; text-transform: uppercase; }
.bignum__value {
  font: 600 88px/0.96 var(--serif); letter-spacing: -0.03em;
  color: var(--ink); font-variant-numeric: tabular-nums;
}
.bignum__value--md { font-size: 64px; }
.bignum__unit { font-size: 0.45em; color: var(--ink-3); margin-left: 6px; font-weight: 600; }
.bignum__caption { font: 400 16px/1.5 var(--serif); color: var(--ink-2); max-width: 38ch; margin: 0; }

.splash {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 32px; margin: 48px 0;
}
.splash > * { padding-top: 16px; border-top: 2px solid var(--ink); }
.splash > *.is-accent   { border-top-color: var(--accent); }
.splash > *.is-positive { border-top-color: var(--positive); }

/* ============================================================
   V1 — Chart figure (new .chart wrapper; keep legacy .be-chart)
   ============================================================ */
.chart {
  margin-top: 48px;
  background: var(--paper); border: 1px solid var(--rule);
  padding: 32px;
}
.chart__head { margin-bottom: 24px; }
.chart__head .t-mono { display: block; margin-bottom: 8px; }
.chart__title { font: 600 22px/1.3 var(--serif); letter-spacing: -0.012em; color: var(--ink); margin: 0; max-width: 38ch; }
.chart__mount { width: 100%; height: 320px; }
.chart__takeaway {
  font: 500 17px/1.5 var(--serif); color: var(--ink); margin: 24px 0 0;
  padding-left: 16px; border-left: 2px solid var(--accent); max-width: 60ch;
}
.chart__src {
  font: 500 11px/1.4 var(--mono); color: var(--ink-3); letter-spacing: 0.08em;
  margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--rule);
}

/* ============================================================
   V1 — Sources section
   ============================================================ */
section.sources { padding: 96px 0; }
.sources__list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin-top: 48px; }
.source { padding-top: 16px; border-top: 2px solid var(--ink); display: flex; flex-direction: column; gap: 16px; }
.source.is-industry  { border-top-color: var(--accent); }
.source.is-public    { border-top-color: var(--ink); }
.source.is-regulator { border-top-color: var(--positive); }
.source__publisher { font: 500 12px/1.4 var(--mono); color: var(--ink-3); letter-spacing: 0.1em; text-transform: uppercase; }
.source__title { font: 600 22px/1.25 var(--serif); letter-spacing: -0.012em; color: var(--ink); margin: 0; max-width: 22ch; }
.source__meta { font: 400 16px/1.5 var(--serif); color: var(--ink-2); margin: 0; }
.source__foot {
  font: 500 12px/1.4 var(--mono); color: var(--ink-3); margin-top: auto;
  padding-top: 16px; border-top: 1px solid var(--rule);
  display: flex; justify-content: space-between;
}
.source__foot a { color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--rule); }

/* ============================================================
   V1 — Inline citation
   ============================================================ */
.cite {
  border-bottom: 1px dotted var(--accent); cursor: help;
  white-space: nowrap; font-variant-numeric: tabular-nums; color: var(--ink);
}
.cite:hover, .cite:focus { background: rgba(123,45,142,.08); border-bottom-style: solid; outline: none; }

/* ============================================================
   V1 — Responsive breakpoints
   ============================================================ */
@media (max-width: 900px) {
  .col-3, .col-4, .col-5, .col-6, .col-7, .col-8 { grid-column: 1/-1; }
  .splash, .sources__list { grid-template-columns: 1fr; }
  .t-display { font-size: 44px; }
  .bignum__value { font-size: 64px; }
}

/* ============================================================
   Hero — command centre (legacy .be-citation-page .hero)
   ============================================================ */
.be-citation-page .hero {
  background: var(--bg);
  border-bottom: 1px solid var(--rule);
  padding: 64px 24px;
}
.be-citation-page .hero__inner {
  max-width: var(--maxw); margin: 0 auto;
  display: grid; grid-template-columns: minmax(0, 1fr) var(--rail-w);
  gap: calc(var(--gutter) + 32px); align-items: start;
}
.be-citation-page .hero__meta {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--ink-3); font-weight: 500;
  margin-bottom: 24px;
}
.be-citation-page .hero__meta .fresh-badge {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 2px 6px; background: var(--positive-soft); color: var(--positive);
  font-weight: 700; letter-spacing: 0.1em;
}
.be-citation-page .hero__meta .fresh-badge .dot {
  width: 6px; height: 6px; border-radius: 50%; background: var(--positive);
}
.be-citation-page .hero__title {
  font-family: var(--serif); font-weight: 700;
  font-size: clamp(34px, 3.2vw, 48px); line-height: 1.08;
  letter-spacing: -0.022em; margin: 0 0 24px;
  color: var(--ink); text-wrap: balance;
}
.be-citation-page .hero__sum {
  font-family: var(--serif); font-size: 14px; line-height: 1.45;
  color: var(--ink-2); margin: 0 0 32px; text-wrap: pretty;
}
.be-citation-page .hero__keyfind {
  font-family: var(--serif); font-size: 14px; line-height: 1.4;
  font-weight: 500; color: var(--ink);
  margin: 0; padding: 16px 24px;
  background: var(--panel); border: 1.5px solid var(--ink);
  border-left: 5px solid var(--accent);
  display: grid; grid-template-columns: auto 1fr; gap: 24px;
  align-items: baseline; max-width: 64ch;
}
.be-citation-page .hero__keyfind .lab {
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--accent); font-weight: 700;
  border-right: 1px solid var(--rule); padding-right: 24px; align-self: stretch;
}
.be-citation-page .hero__keyfind strong { font-weight: 700; }

/* Cite card (right column of hero — replaces release-card) */
/* be-toc-start is a JS scroll anchor — must not consume a grid cell */
#be-toc-start { display: none; }
/* Place cite-card in right 3 cols, spanning h1 + standfirst rows */
.be-citation-page .hero .grid .cite-card { grid-column: 10 / 13; grid-row: 2 / 4; align-self: start; }
.be-citation-page .cite-card {
  border-top: 1px solid var(--rule); padding: 0;
}
.be-citation-page .cite-card__brand {
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em;
  text-transform: uppercase; font-weight: 600; color: var(--ink-3);
  padding: 16px 0 0;
  display: flex; align-items: center; gap: 6px;
}
.be-citation-page .cite-card__brand::before {
  content: ""; width: 6px; height: 6px; display: inline-block;
  background: var(--ink-3);
}
.be-citation-page .cite-card__label {
  display: flex; align-items: center; gap: 10px;
  font-size: 20px; font-weight: 600; color: var(--ink); line-height: 1.2;
  padding: 8px 0 0;
}
.be-citation-page .cite-card__label .freshness {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 13px; font-weight: 500; color: var(--ink-2);
}
.be-citation-page .cite-card__quote {
  font-family: var(--serif); font-size: 12px; line-height: 1.55;
  color: var(--ink-2); margin: 0; padding: 12px 0 24px;
  overflow-wrap: anywhere; word-break: break-word;
}
.be-citation-page .cite-card__quote em { font-style: italic; }
.be-citation-page .cite-card__cta { display: flex; flex-direction: column; gap: 2px; }
.be-citation-page .btn {
  display: inline-flex; align-items: center; justify-content: space-between;
  padding: 10px 12px; font-size: 11px; font-weight: 500;
  border: 1px solid var(--rule); background: var(--panel);
  color: var(--ink-2); letter-spacing: 0.005em; text-align: left;
  transition: background 120ms, color 120ms;
}
.be-citation-page .btn:hover { background: var(--lavender); color: var(--ink); }
.be-citation-page .btn::after { content: '→'; opacity: 0.5; }
.be-citation-page .btn.is-primary { background: var(--ink); color: #fff; border-color: var(--ink); }
.be-citation-page .btn.is-primary:hover { background: var(--accent); border-color: var(--accent); }

/* ============================================================
   Page layout grid
   ============================================================ */
.be-citation-page .page {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 var(--s-6) var(--s-9);
}
.be-citation-page .page--flagship {
  display: grid;
  grid-template-columns: minmax(0, 1fr) var(--rail-w);
  gap: var(--col-gap);
  align-items: start;
}
/* wpautop injects empty <p> tags as direct grid children; suppress them */
.be-citation-page .page--flagship > p:empty { display: none; }
.be-citation-page .page--flagship > .col  { grid-column: 1; }
.be-citation-page .page--flagship > .rail { grid-column: 2; }
@media (max-width: 860px) {
  .be-citation-page .page--flagship { grid-template-columns: 1fr; }
  .be-citation-page .page--flagship > .col  { grid-column: 1; }
  .be-citation-page .page--flagship > .rail { display: none; }
}
.be-citation-page .col { padding: 48px 0; min-width: 0; }
.be-citation-page .col > section + section { margin-top: 80px; }

.be-citation-page .article {
  min-width: 0;
}

.be-citation-page .article > section {
  padding: 56px 0;
  border-top: 1px solid var(--rule-2);
}

.be-citation-page .article > section:first-of-type {
  border-top: none;
  padding-top: 0;
}

/* ============================================================
   KPI dashboard band
   ============================================================ */
.be-citation-page .kpi-band {
  padding: 0 0 48px; margin: 0;
}
.be-citation-page .kpi-band__inner { max-width: var(--maxw); }
.be-citation-page .kpi-band__head {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-bottom: 32px;
}
.be-citation-page .kpi-band__title {
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em;
  text-transform: uppercase; font-weight: 600; margin: 0; color: var(--ink-3);
}
.be-citation-page .kpi-leads {
  display: grid; grid-template-columns: repeat(2, 1fr);
}
.be-citation-page .kpi-strip {
  display: grid; grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--rule-2); margin-top: 8px; padding-top: 8px;
}
.be-citation-page .kpi-stripcell {
  padding: 16px 24px; border-right: 1px solid var(--rule);
  display: flex; flex-direction: column; gap: 8px;
}
.be-citation-page .kpi-stripcell:last-child { border-right: none; }
.be-citation-page .kpi-stripcell__label {
  font-family: var(--sans); font-size: 11px; color: var(--ink-2);
  font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
}
.be-citation-page .kpi-stripcell__row { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.be-citation-page .kpi-stripcell__value {
  font-family: var(--serif); font-size: 32px; line-height: 0.95;
  font-weight: 700; letter-spacing: -0.03em; color: var(--ink);
}
.be-citation-page .kpi-stripcell__value .unit { font-size: 14px; color: var(--ink-3); margin-left: 3px; font-weight: 500; }
.be-citation-page .kpi-stripcell__delta { font-family: var(--mono); font-size: 11px; font-weight: 600; letter-spacing: 0.04em; }
.be-citation-page .kpi-stripcell__delta.is-up { color: var(--positive); }
.be-citation-page .kpi-stripcell__delta.is-down { color: var(--negative); }
.be-citation-page .kpi-stripcell__src { font-family: var(--mono); font-size: 11px; color: var(--ink-3); letter-spacing: 0.02em; }
.be-citation-page .kpi-cell {
  padding: 28px 24px 20px;
  display: flex; flex-direction: column; gap: 8px;
}
.be-citation-page .kpi-cell.is-lead {}
.be-citation-page .kpi-cell__label {
  font-family: var(--sans); font-size: 14px; color: var(--ink);
  font-weight: 700; letter-spacing: 0.02em; line-height: 1.25;
}
.be-citation-page .kpi-cell__value {
  font-family: var(--serif); font-size: 32px; line-height: 1;
  font-weight: 700; letter-spacing: -0.035em; color: var(--ink);
  font-variant-numeric: tabular-nums; display: flex; align-items: baseline; gap: 6px;
}
.be-citation-page .kpi-cell.is-lead .kpi-cell__value { font-size: clamp(34px, 3.2vw, 48px); }
.be-citation-page .kpi-cell__value .unit { font-size: 20px; color: var(--ink-3); font-weight: 500; }
.be-citation-page .kpi-cell__period {
  display: flex; align-items: center; gap: 6px;
  font-family: var(--mono); font-size: 11px; color: var(--ink-2); letter-spacing: 0.02em;
}
.be-citation-page .kpi-cell__delta {
  font-family: var(--mono); font-weight: 600; font-size: 11px; letter-spacing: 0.02em;
}
.be-citation-page .kpi-cell__delta.is-up { color: var(--positive); }
.be-citation-page .kpi-cell__delta.is-down { color: var(--negative); }
.be-citation-page .kpi-cell__src {
  font-family: var(--mono); font-size: 10px; color: var(--ink-3);
  letter-spacing: 0.04em; padding-top: 12px; margin-top: auto;
}
/* Gate compat: kpi__foot still used by pre-publish-gate */
.be-citation-page .kpi__foot { display: flex; align-items: center; gap: 6px; }

/* ============================================================
   Highlights
   ============================================================ */
.be-citation-page .highlights { padding: 32px 0 0; }

.be-citation-page .highlights__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 20px;
}

.be-citation-page .highlights__title {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 500;
  margin: 0;
  color: var(--ink-3);
}

.be-citation-page .highlights__count {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--ink-4);
  letter-spacing: 0.04em;
}

.be-citation-page .highlights__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
}

.be-citation-page .highlight {
  padding: 24px 28px 22px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.be-citation-page .highlight__claim {
  font-family: var(--serif);
  font-size: 18px;
  line-height: 1.3;
  font-weight: 500;
  color: var(--ink);
  margin: 0;
  text-wrap: pretty;
  max-width: 28ch;
}

.be-citation-page .highlight__figure {
  font-family: var(--serif);
  font-size: 56px;
  line-height: 1;
  font-weight: 600;
  letter-spacing: -0.025em;
  color: var(--ink);
  margin: 8px 0 4px;
  font-variant-numeric: tabular-nums;
}

.be-citation-page .highlight__period {
  font-family: var(--mono);
  font-size: 10.5px;
  color: var(--ink-3);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 6px;
}

.be-citation-page .highlight__source {
  font-family: var(--sans);
  font-size: 12px;
  color: var(--ink-2);
  margin: 0;
  padding-top: 8px;
  border-top: 1px dotted var(--rule);
  margin-top: auto;
}

/* ============================================================
   Fraud page — article hero + Bloomberg metrics panel
   Uses BE design-system tokens from theme.css only.
   ============================================================ */

/* ── Article hero ─────────────────────────────────────────── */
.be-citation-page .article-hero {
  background: var(--surface); border-bottom: 1px solid var(--border); padding: 100px 0 64px;
}
.be-citation-page .article-hero-inner {
  max-width: 1160px; margin: 0 auto; padding: 0 40px;
  display: grid; grid-template-columns: 1fr 300px; gap: 56px; align-items: start;
}
.be-citation-page .article-kicker {
  font-family: var(--sans); font-size: 11px; line-height: 1; letter-spacing: 0.12em;
  text-transform: uppercase; font-weight: 700; color: #3A6B4A;
  margin: 0 0 28px; display: inline-flex; align-items: center; gap: 8px;
  background: #E8F2EB; padding: 6px 12px; border-radius: 20px;
}
.be-citation-page .article-kicker-dot {
  display: inline-block; width: 6px; height: 6px; border-radius: 50%;
  background: var(--green); flex-shrink: 0;
}
.be-citation-page .article-title {
  font-family: var(--sans); font-size: clamp(30px, 3.8vw, 48px);
  line-height: 1.06; letter-spacing: -0.03em; font-weight: 800;
  color: var(--text-dark); margin: 0 0 24px;
}
.be-citation-page .article-dek {
  font-family: var(--sans); font-size: 16px; line-height: 1.65;
  color: var(--text-mid); margin: 0; max-width: 60ch;
}
.be-citation-page .key-finding {
  margin-top: 40px;
  border: 1px solid var(--border); border-left: 3px solid var(--purple-deep);
  display: grid; grid-template-columns: 160px 1fr;
}
.be-citation-page .key-finding-label {
  font-family: var(--sans); font-size: 10px; letter-spacing: 0.18em;
  text-transform: uppercase; font-weight: 800; color: var(--purple-deep);
  padding: 40px 20px; border-right: 1px solid var(--border-light);
  display: flex; align-items: center; margin: 0;
}
.be-citation-page .key-finding-text {
  font-family: var(--serif); font-size: 17px; line-height: 1.55;
  font-weight: 400; color: var(--text-dark); margin: 0; padding: 36px 40px;
}
.be-citation-page .key-finding-text strong {
  font-weight: 700;
  text-decoration: underline wavy;
  text-decoration-color: var(--purple-deep);
  text-decoration-thickness: 1.5px;
  text-underline-offset: 4px;
}
.be-citation-page .source-card {
  border: 1px solid var(--border); background: var(--surface); overflow: hidden;
}
.be-citation-page .source-card__head {
  padding: 12px 16px; border-bottom: 1px solid var(--border-light);
  display: flex; justify-content: space-between; align-items: center; gap: 8px;
}
.be-citation-page .source-card__brand {
  font-family: var(--sans); font-size: 10px; font-weight: 800; color: var(--text-dark);
  text-transform: uppercase; letter-spacing: 0.12em;
  display: flex; align-items: center; gap: 7px;
}
.be-citation-page .source-card__brand::before {
  content: ''; display: inline-block; width: 8px; height: 8px;
  background: var(--ink); flex-shrink: 0;
}
.be-citation-page .source-card__meta {
  font-family: var(--sans); font-size: 11px; color: var(--text-light);
  display: flex; align-items: center; gap: 5px;
}
.be-citation-page .source-card__fresh-dot {
  display: inline-block; width: 5px; height: 5px; border-radius: 50%;
  background: var(--green); flex-shrink: 0;
}
.be-citation-page .source-card__citation {
  font-family: var(--sans); font-size: 12px; line-height: 1.6;
  color: var(--text-mid); padding: 12px 16px; margin: 0; border-bottom: 1px solid var(--border-light);
  overflow-wrap: break-word; word-break: break-all;
}
.be-citation-page .source-card__citation em { font-style: italic; }
.be-citation-page .source-card__actions { display: flex; flex-direction: column; }
.be-citation-page .source-card__action {
  display: block; font-family: var(--sans); font-size: 12px; color: var(--text-mid);
  padding: 9px 16px; text-decoration: none; background: none; border: none;
  border-bottom: 1px solid var(--border-light); cursor: pointer; text-align: left;
  transition: background 0.1s, color 0.1s;
}
.be-citation-page .source-card__action:last-child { border-bottom: none; }
.be-citation-page .source-card__action:hover { background: var(--bg-alt); color: var(--text-dark); }
.be-citation-page .source-card__action::after { content: '→'; float: right; opacity: 0.4; }
.be-citation-page .source-card__action--copy {
  background: var(--ink); color: #fff; font-weight: 600;
}
.be-citation-page .source-card__action--copy::after { opacity: 0.6; }
.be-citation-page .source-card__action--copy:hover { background: var(--ink-2); color: #fff; }
@media (max-width: 768px) {
  .be-citation-page .article-hero-inner { grid-template-columns: 1fr; gap: 32px; }
}
.be-citation-page .article-hero ~ .page .col { padding-top: 0; }
@media (max-width: 480px) {
  .be-citation-page .article-hero { padding: 48px 0 36px; }
  .be-citation-page .article-title { font-size: 30px; }
}

/* ── Research footer card ──────────────────────────────────── */
.be-citation-page .research-footer {
  border: 1px solid var(--border); background: var(--surface);
  margin: 40px 0 0;
}
.be-citation-page .research-footer-head {
  padding: 14px 20px; border-bottom: 1px solid var(--border-light);
  display: flex; justify-content: space-between; align-items: center; gap: 8px;
}
.be-citation-page .research-footer-title {
  font-family: var(--sans); font-size: 13px; font-weight: 700;
  color: var(--text-dark); margin: 0;
}
.be-citation-page .research-footer-meta {
  font-family: var(--sans); font-size: 11px; color: var(--text-light);
  display: flex; align-items: center; gap: 5px;
}
.be-citation-page .research-footer-body {
  padding: 16px 20px; display: flex; gap: 40px; align-items: flex-start;
}
.be-citation-page .research-footer-citation {
  flex: 1; font-family: var(--sans); font-size: 13px; line-height: 1.6;
  color: var(--text-mid); margin: 0;
}
.be-citation-page .research-footer-citation em { font-style: italic; }
.be-citation-page .research-footer-actions {
  display: flex; flex-direction: column; gap: 0; border-left: 1px solid var(--border-light);
  padding-left: 20px; min-width: 160px; flex-shrink: 0;
}
.be-citation-page .research-footer-action {
  font-family: var(--sans); font-size: 12px; color: var(--text-mid);
  padding: 8px 0; text-decoration: none; background: none; border: none;
  cursor: pointer; text-align: left; border-bottom: 1px solid var(--border-light);
  transition: color 0.1s;
}
.be-citation-page .research-footer-action:last-child { border-bottom: none; }
.be-citation-page .research-footer-action:hover { color: var(--text-dark); }
.be-citation-page .research-footer-action--copy { font-weight: 600; color: var(--purple); }
@media (max-width: 600px) {
  .be-citation-page .research-footer-body { flex-direction: column; gap: 16px; }
  .be-citation-page .research-footer-actions {
    border-left: none; padding-left: 0; border-top: 1px solid var(--border-light);
    padding-top: 16px; min-width: unset; flex-direction: row; flex-wrap: wrap; gap: 0 20px;
  }
  .be-citation-page .research-footer-action { border-bottom: none; padding: 4px 0; }
}

/* ── Bloomberg metrics panel ──────────────────────────────── */

/* Section wrapper — white field */
.be-citation-page .fraud-module {
  background: #FFFFFF;
  border-top: 1px solid var(--border);
  padding: 48px 32px 56px;
}

/* Off-white panel */
.be-citation-page .module {
  max-width: 1160px; margin: 0 auto;
  background: #FAF9F5;
  border: 1px solid var(--border);
}

/* Module header strip */
.be-citation-page .module-header {
  display: flex; justify-content: space-between; align-items: center; gap: 24px;
  padding: 14px 28px; border-bottom: 1px solid var(--border-light);
  font-family: var(--sans);
}
.be-citation-page .module-header-left {
  font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase;
  font-weight: 800; color: var(--purple-deep);
}
.be-citation-page .module-header-right {
  font-size: 11px; color: var(--text-light); letter-spacing: 0;
  text-transform: none; font-weight: 400; flex-shrink: 0;
}

/* Module intro (heading + subtitle) */
.be-citation-page .module-intro { padding: 28px 28px 0; }
.be-citation-page .module-title {
  font-family: var(--serif); font-size: clamp(22px, 2.4vw, 30px);
  font-weight: 700; color: var(--text-dark); margin: 0 0 10px; letter-spacing: -0.02em;
}
.be-citation-page .module-subtitle {
  font-family: var(--sans); font-size: 14px; line-height: 1.6;
  color: var(--text-mid); margin: 0;
}

/* Tier containers */
.be-citation-page .tier-one { padding: 24px 28px 0; }
.be-citation-page .tier-two { padding: 24px 28px 0; }

/* Tier headings */
.be-citation-page .tier-heading {
  display: flex; align-items: center; gap: 14px; margin-bottom: 16px;
}
.be-citation-page .tier-heading-label {
  font-family: var(--sans); font-size: 10px; letter-spacing: 0.2em;
  text-transform: uppercase; font-weight: 800; color: var(--purple-deep);
  white-space: nowrap; flex-shrink: 0;
}
.be-citation-page .tier-heading-rule { flex: 1; height: 1px; background: var(--border-light); }

/* Tier 1 — two cards side by side */
.be-citation-page .tier-one-panel {
  display: grid; grid-template-columns: 1fr 1fr;
  border: 1px solid var(--border); margin-bottom: 24px;
}
.be-citation-page .tier-one-metric { padding: 24px 28px 20px; }
.be-citation-page .tier-one-metric + .tier-one-metric {
  border-left: 1px solid var(--border-light);
}
.be-citation-page .tier-one-metric--loss   { border-top: 3px solid var(--purple-deep); }
.be-citation-page .tier-one-metric--prevention { border-top: 3px solid var(--green); }
.be-citation-page .tier-one-metric .metric-value.lead { font-size: 56px; }

/* Tier 2 — three-column supporting cards */
.be-citation-page .tier-two-panel {
  display: grid; grid-template-columns: repeat(3, 1fr);
  border: 1px solid var(--border);
}
.be-citation-page .tier-two-metric { padding: 16px 28px 14px; }
.be-citation-page .tier-two-metric:nth-child(n+2) { border-left: 1px solid var(--border-light); }

/* Sources footer */
.be-citation-page .module-sources {
  font-family: var(--sans); font-size: 11.5px; color: var(--text-light);
  padding: 16px 28px 24px; border-top: 1px solid var(--border-light); margin-top: 24px;
}

/* Metric labels */
.be-citation-page .metric-title { font-family: var(--sans); margin: 0; }
.be-citation-page .metric-title.lead {
  font-size: 14px; line-height: 1.3; font-weight: 700;
  color: var(--text-dark); margin-bottom: 14px;
}
.be-citation-page .metric-title.supporting {
  font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase;
  font-weight: 800; color: var(--purple-deep); margin-bottom: 12px;
}

/* Values */
.be-citation-page .metric-value {
  display: block; font-family: var(--sans);
  font-variant-numeric: tabular-nums; color: var(--text-dark); margin: 0;
}
.be-citation-page .metric-value.lead {
  font-size: 52px; line-height: 0.92; letter-spacing: -0.04em;
  font-weight: 800; margin-bottom: 8px;
}
.be-citation-page .metric-value.supporting {
  font-size: 34px; line-height: 1; letter-spacing: -0.03em; font-weight: 800;
}
.be-citation-page .metric-value-row {
  display: flex; align-items: baseline; gap: 8px; margin-bottom: 8px;
}

/* Change signals */
.be-citation-page .chg {
  font-family: var(--sans); font-size: 12px; font-weight: 600; letter-spacing: 0;
}
.be-citation-page .chg--pos { color: var(--green); }
.be-citation-page .chg--neg { color: var(--text-mid); }
.be-citation-page .metric-change { font-family: var(--sans); font-size: 12px; font-weight: 600; }
.be-citation-page .metric-change--pos { color: var(--green); }
.be-citation-page .metric-change--neg { color: var(--text-mid); }

/* Period */
.be-citation-page .metric-period {
  font-family: var(--sans); font-size: 12px; line-height: 1;
  color: var(--text-light); margin: 0 0 18px;
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}

/* Editorial copy */
.be-citation-page .metric-copy {
  font-family: var(--sans); font-size: 14px; line-height: 1.5;
  color: var(--text-mid); margin: 0 0 18px;
}
.be-citation-page .metric-copy.supporting { font-size: 13px; margin: 10px 0 0; }

/* Source lines */
.be-citation-page .metric-source {
  font-family: var(--sans); font-size: 11px; line-height: 1.4;
  color: var(--text-light); border-top: 1px solid var(--border-light);
  padding-top: 12px; margin: 0; letter-spacing: 0.02em;
}
.be-citation-page .metric-source.supporting {
  border-top: 0; padding-top: 0; margin-top: 14px; letter-spacing: 0;
}

/* Responsive */
@media (max-width: 860px) {
  .be-citation-page .fraud-module { padding: 32px 16px 40px; }
  .be-citation-page .module-header {
    flex-direction: column; align-items: flex-start; gap: 6px; padding: 12px 20px;
  }
  .be-citation-page .tier-one { padding: 14px 20px 0; }
  .be-citation-page .tier-two { padding: 10px 20px 24px; }
}
@media (max-width: 560px) {
  .be-citation-page .tier-two-panel { grid-template-columns: 1fr; }
  .be-citation-page .tier-two-metric:nth-child(2n) { border-left: 0; }
  .be-citation-page .tier-two-metric:nth-child(n+2) { border-top: 1px solid var(--border-light); }
  .be-citation-page .metric-value.lead { font-size: 42px; }
  .be-citation-page .tier-one-metric:first-child .metric-value.lead { font-size: 54px; }
}

/* ============================================================
   Section heads
   ============================================================ */
.be-citation-page .shead { margin-bottom: 48px; max-width: 60ch; }
.be-citation-page .shead__lab {
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.12em;
  color: var(--ink-3); font-weight: 600; text-transform: uppercase;
  margin-bottom: 12px;
}
.be-citation-page .shead__lab .num { color: var(--ink); margin-right: 6px; font-weight: 700; }
.be-citation-page .shead__title {
  font-family: var(--serif); font-weight: 600;
  font-size: 24px; line-height: 1.25;
  letter-spacing: -0.02em; margin: 0 0 12px;
  text-wrap: balance; color: var(--ink);
}
.be-citation-page .shead__find {
  font-family: var(--serif); font-size: 14px; line-height: 1.55;
  color: var(--ink-2); margin: 0; text-wrap: pretty;
}

/* ── Section chapter breaks ── */
.be-citation-page .article > section:not(.fraud-module) + section:not(.fraud-module) {
  padding-top: 64px;
  border-top: 1px solid var(--rule);
}

/* ============================================================
   Insight (copy + chart pairs)
   ============================================================ */
.be-citation-page .insight {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 32px;
}

.be-citation-page .insight__copy {
  font-family: var(--serif);
  font-size: 18px;
  line-height: 1.6;
  color: var(--ink-2);
  max-width: 64ch;
}

.be-citation-page .insight__copy p { margin: 0 0 1em; text-wrap: pretty; }
.be-citation-page .insight__copy p:last-child { margin-bottom: 0; }

.be-citation-page .insight__pullquote {
  font-family: var(--serif);
  font-size: 24px;
  line-height: 1.35;
  font-weight: 500;
  color: var(--ink);
  margin: 28px 0;
  padding-left: 24px;
  border-left: 3px solid var(--accent);
  text-wrap: balance;
  max-width: 40ch;
  font-style: italic;
}

/* ============================================================
   Citation — inline link with dotted underline
   ============================================================ */
.be-citation-page .cite {
  border-bottom: 1px dotted var(--accent);
  cursor: help;
  color: var(--ink);
  font-weight: 500;
  position: relative;
  font-variant-numeric: tabular-nums;
  padding-bottom: 1px;
}

.be-citation-page .cite:hover { color: var(--accent); border-bottom-style: solid; }

.cite-wrap {
  position: relative;
  display: inline;
}

.popover {
  position: fixed;
  z-index: 200;
  width: 320px;
  background: var(--paper);
  border: 1px solid var(--ink);
  padding: 16px 18px;
  font-family: var(--sans);
  font-size: 12px;
  box-shadow: 0 16px 40px -12px rgba(0, 0, 0, 0.18), 0 4px 12px rgba(0, 0, 0, 0.06);
  animation: bec-pop 120ms ease-out;
  pointer-events: none;
}

.popover.is-visible { pointer-events: auto; }

@keyframes bec-pop {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}

.popover__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-3);
  font-weight: 500;
  padding-bottom: 10px;
  margin-bottom: 10px;
  border-bottom: 1px solid var(--rule);
}

.popover__close {
  cursor: pointer;
  opacity: 0.5;
  background: none;
  border: none;
  font-size: 14px;
  line-height: 1;
  padding: 0;
}

.popover__close:hover { opacity: 1; }

.popover__head strong { color: var(--accent); }

.popover__figure {
  font-family: var(--serif);
  font-size: 26px;
  font-weight: 600;
  letter-spacing: -0.015em;
  color: var(--ink);
  margin: 0 0 4px;
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-variant-numeric: tabular-nums;
}

.popover__claim {
  font-family: var(--serif);
  font-size: 14px;
  line-height: 1.45;
  color: var(--ink-2);
  margin: 0 0 14px;
  text-wrap: pretty;
}

.popover__rows {
  display: grid;
  grid-template-columns: 78px 1fr;
  gap: 6px 12px;
  margin: 0 0 14px;
  font-size: 11.5px;
  line-height: 1.4;
}

.popover__rows dt {
  color: var(--ink-3);
  text-transform: uppercase;
  font-size: 10px;
  letter-spacing: 0.06em;
  font-family: var(--mono);
  padding-top: 1px;
}

.popover__rows dd { margin: 0; color: var(--ink); }

.popover__obs {
  font-family: var(--mono);
  font-size: 10px;
  color: var(--ink-3);
  letter-spacing: 0.06em;
  padding-top: 8px;
  border-top: 1px solid var(--rule);
  margin-top: 4px;
}

.popover__body {
  display: flex;
  gap: 6px;
  padding-top: 12px;
  border-top: 1px solid var(--rule);
}

.popover__body button,
.popover__body a {
  flex: 1;
  padding: 8px 10px;
  font-size: 11px;
  border: 1px solid var(--rule);
  background: var(--paper);
  color: var(--ink-2);
  text-align: center;
  font-family: var(--sans);
  letter-spacing: 0.005em;
  cursor: pointer;
  text-decoration: none;
}

.popover__body button:hover,
.popover__body a:hover { background: var(--lavender); color: var(--ink); }

.popover__body .is-primary {
  background: var(--ink);
  color: var(--paper);
  border-color: var(--ink);
}

/* ============================================================
   Method status badge
   ============================================================ */
.be-citation-page .method {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  font-family: var(--mono);
  font-size: 9.5px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1;
  border: 1px solid;
  border-radius: 2px;
  text-transform: uppercase;
  vertical-align: 0.05em;
  flex-shrink: 0;
}

.be-citation-page .method--o { color: var(--positive);    border-color: var(--positive); }
.be-citation-page .method--d { color: var(--accent-soft); border-color: var(--accent-soft); }
.be-citation-page .method--e { color: var(--warn);        border-color: var(--warn); }
.be-citation-page .method--s { color: var(--warn);        border-color: var(--warn); }
.be-citation-page .method--x { color: var(--accent-soft); border-color: var(--accent-soft); }
.be-citation-page .method--f { color: var(--ink-3);       border-color: var(--ink-3); }

/* ============================================================
   Chart wrapper
   ============================================================ */
.be-citation-page .chart {
  margin: 0;
  padding: 24px 28px 22px;
  background: var(--paper);
  border: 1px solid var(--rule);
}

.be-citation-page .chart__head {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: baseline;
  gap: 16px;
  padding-bottom: 14px;
  margin-bottom: 18px;
  border-bottom: 1px solid var(--rule);
}

.be-citation-page .chart__id {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.04em;
  color: var(--ink-3);
  text-transform: uppercase;
}

.be-citation-page .chart__unit {
  font-family: var(--mono);
  font-size: 10.5px;
  color: var(--ink-3);
  letter-spacing: 0.04em;
  text-align: right;
  text-transform: uppercase;
}

.be-citation-page .chart__title {
  grid-column: 1 / -1;
  font-family: var(--serif);
  font-size: 22px;
  line-height: 1.25;
  font-weight: 600;
  letter-spacing: -0.015em;
  margin: 6px 0 0;
}

.be-citation-page .chart__body { padding: 8px 0 12px; }

.be-citation-page .chart__takeaway {
  font-family: var(--serif);
  font-size: 16px;
  line-height: 1.4;
  font-weight: 500;
  color: var(--ink);
  margin: 12px 0 0;
  padding: 14px 16px;
  background: var(--lavender);
  border-left: 2px solid var(--accent);
  text-wrap: pretty;
}

.be-citation-page .chart__footnote {
  font-family: var(--sans);
  font-size: 11.5px;
  line-height: 1.5;
  color: var(--ink-3);
  margin: 14px 0 0;
  padding-top: 12px;
  border-top: 1px dotted var(--rule);
  text-wrap: pretty;
}

/* Suppress inner be-chart chrome when nested inside .chart wrapper */
.be-citation-page .chart .be-chart {
  border: none;
  background: transparent;
  padding: 0;
  margin: 0;
  border-radius: 0;
}
.be-citation-page .chart .be-chart__title { display: none; }
.be-citation-page .chart + .be-chart-footnote { display: none; }

/* ── ECharts integration ─────────────────────────────────── */
.be-citation-page .be-chart-wrap {
  width: 100%;
  min-height: 260px;
}

.be-citation-page .be-chart-wrap .be-chart-canvas {
  width: 100% !important;
  height: 280px !important;
}

/* Fallback semantic table under chart — visually hidden, accessible to
   screen readers and AI scrapers. .be-vh is the standard visually-hidden
   pattern; .be-chart-table-fallback is the legacy name. */
.be-citation-page .be-vh,
.be-citation-page .be-chart-fallback,
.be-citation-page .be-chart-table-fallback {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.be-citation-page .be-chart-footnote {
  font-family: var(--sans);
  font-size: 11.5px;
  line-height: 1.5;
  color: var(--ink-3);
  margin: 12px 0 0;
  padding-top: 10px;
  border-top: 1px dotted var(--rule);
  text-wrap: pretty;
}

/* Pending chart placeholder */
.be-citation-page .be-chart--pending {
  padding: 32px 28px;
  background: var(--paper-2);
  border: 1px dashed var(--rule);
  text-align: center;
}

.be-citation-page .be-chart__pending-note {
  font-family: var(--sans);
  font-size: 13px;
  color: var(--ink-3);
  margin: 0;
}

/* ============================================================
   Source strip — civic, grid layout
   ============================================================ */
.be-citation-page .source-strip {
  display: grid;
  grid-template-columns: 70px repeat(4, 1fr) auto;
  align-items: center;
  border: 1px solid var(--rule);
  border-top: none;
  background: var(--paper-2);
  font-family: var(--mono);
  font-size: var(--strip-fs);
  letter-spacing: 0.02em;
  color: var(--ink-2);
  margin-bottom: 0;
  line-height: 1.3;
}

.be-citation-page .source-strip__lead {
  padding: var(--strip-py) 14px;
  align-self: stretch;
  display: flex;
  align-items: center;
  background: var(--paper-2);
  color: var(--ink-2);
  font-weight: 600;
  letter-spacing: 0.06em;
  border-right: 1px solid var(--border);
  font-size: calc(var(--strip-fs) - 0.5px);
}

.be-citation-page .source-strip__cell {
  padding: var(--strip-py) 14px;
  border-right: 1px solid var(--rule);
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.be-citation-page .source-strip__cell:last-of-type { border-right: none; }

.be-citation-page .source-strip__label {
  font-size: 9px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-3);
  font-weight: 500;
}

.be-citation-page .source-strip__value {
  color: var(--ink);
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.be-citation-page .source-strip__cell:first-of-type .source-strip__value { color: var(--accent); }

.be-citation-page .source-strip__obs {
  font-family: var(--mono);
  font-size: 9px;
  color: var(--ink-3);
  letter-spacing: 0.06em;
}

.be-citation-page .source-strip__cell--type { flex-shrink: 0; }
.be-citation-page .source-strip__cell--checked { flex-shrink: 0; }
.be-citation-page .source-strip__status { flex-shrink: 0; }

.be-citation-page .source-strip__action {
  padding: var(--strip-py) 16px;
  align-self: stretch;
  display: flex;
  align-items: center;
  gap: 6px;
  border-left: 1px solid var(--rule);
  color: var(--ink-2);
  font-weight: 500;
  transition: background 120ms;
  text-decoration: none;
}

.be-citation-page .source-strip__action:hover { background: var(--lavender); color: var(--ink); }
.be-citation-page .source-strip__action::after { content: '↗'; opacity: 0.6; }

/* ============================================================
   Right rail
   ============================================================ */
.be-citation-page .rail {
  position: sticky;
  top: calc(var(--hub-bar-h) + 24px);
  align-self: start;
  padding-top: 56px;
  font-family: var(--sans);
  max-height: calc(100vh - var(--hub-bar-h) - 24px);
  overflow-y: auto;
}

.admin-bar .be-citation-page .rail {
  top: calc(var(--hub-bar-h) + 24px + 32px);
}

.be-citation-page .rail__section { margin-bottom: 28px; }

.be-citation-page .rail__title {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  margin: 0 0 14px;
  color: var(--ink-3);
  padding-bottom: 10px;
  border-bottom: 1px solid var(--ink);
}

.be-citation-page .rail__toc {
  list-style: none;
  padding: 0;
  margin: 0;
}

.be-citation-page .rail__toc li {
  display: grid;
  grid-template-columns: 22px 1fr auto;
  gap: 8px;
  align-items: baseline;
  padding: 8px 0;
  border-bottom: 1px dotted var(--rule);
  font-size: 12.5px;
  transition: color 120ms;
}

.be-citation-page .rail__toc li:last-child { border-bottom: none; }

.be-citation-page .rail__toc-num {
  font-family: var(--mono);
  font-size: 10.5px;
  color: var(--ink-4);
}

.be-citation-page .rail__toc-title {
  color: var(--ink-2);
  line-height: 1.3;
  text-wrap: balance;
}

.be-citation-page .rail__toc-meta {
  font-family: var(--mono);
  font-size: 10px;
  color: var(--ink-4);
  letter-spacing: 0.04em;
}

.be-citation-page .rail__toc li[aria-current="true"] .rail__toc-title {
  color: var(--accent);
  font-weight: 600;
}

.be-citation-page .rail__toc li[aria-current="true"] .rail__toc-num { color: var(--accent); }

.be-citation-page .rail__panel {
  padding: 16px 18px;
  border: 1px solid var(--rule);
  background: var(--lavender);
  font-size: 12.5px;
}

.be-citation-page .rail__panel-label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-3);
  font-weight: 500;
  margin-bottom: 4px;
}

.be-citation-page .rail__panel-section {
  font-family: var(--serif);
  font-size: 16px;
  line-height: 1.3;
  font-weight: 500;
  color: var(--ink);
  margin: 0 0 14px;
  text-wrap: balance;
}

.be-citation-page .rail__panel hr { border-top: 1px solid var(--rule); margin: 14px 0; }

.be-citation-page .rail__panel dl {
  display: grid;
  grid-template-columns: 60px 1fr;
  gap: 6px 10px;
  margin: 0;
  font-size: 11.5px;
}

.be-citation-page .rail__panel dt {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-3);
  padding-top: 1px;
}

.be-citation-page .rail__panel dd { margin: 0; color: var(--ink); }

.be-citation-page .rail__cite-btn {
  width: 100%;
  margin-top: 16px;
  padding: 10px 12px;
  font-size: 12px;
  background: var(--ink);
  color: var(--paper);
  border: 1px solid var(--ink);
  border-radius: 0;
  font-family: var(--sans);
  letter-spacing: 0.005em;
  transition: background 120ms;
  cursor: pointer;
}

.be-citation-page .rail__cite-btn:hover { background: var(--accent); border-color: var(--accent); }

/* ============================================================
   Methods foot
   ============================================================ */
.be-citation-page .methods-foot {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  padding: 48px 0 0;
  border-top: 2px solid var(--ink);
  margin-top: 32px;
  font-family: var(--sans);
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--ink-2);
}

.be-citation-page .methods-foot__title {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  margin: 0 0 14px;
  color: var(--ink-3);
}

.be-citation-page .methods-foot p { margin: 0; max-width: 56ch; text-wrap: pretty; }

/* ============================================================
   Legacy components (methodology accordion, citation box,
   download card, benchmark table) — keep old .be-* names but
   apply new tokens
   ============================================================ */

/* Methodology accordion */
.be-citation-page .be-methodology {
  margin: 48px 0 0;
  border-top: 2px solid var(--ink);
  padding-top: 32px;
}

.be-citation-page .be-methodology__heading {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--ink-3);
  margin: 0 0 20px;
}

.be-citation-page .be-methodology__section {
  border-bottom: 1px solid var(--rule);
}

.be-citation-page .be-methodology__summary {
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 500;
  color: var(--ink);
  padding: 16px 0;
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.be-citation-page .be-methodology__summary::after {
  content: '+';
  font-family: var(--mono);
  font-size: 16px;
  color: var(--ink-3);
  transition: transform 150ms;
}

.be-citation-page .be-methodology__section[open] .be-methodology__summary::after {
  transform: rotate(45deg);
}

.be-citation-page .be-methodology__body {
  font-family: var(--serif);
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink-2);
  padding: 0 0 20px;
}

.be-citation-page .be-methodology__body p { margin: 0 0 1em; }
.be-citation-page .be-methodology__body p:last-child { margin-bottom: 0; }

.be-citation-page .be-methodology__more {
  margin: 20px 0 0;
  font-family: var(--sans);
  font-size: 13px;
}

.be-citation-page .be-methodology__more a {
  color: var(--accent);
  border-bottom: 1px solid var(--lavender-edge);
}

/* Citation box */
.be-citation-page .be-citation-box {
  border: 1px solid var(--rule);
  padding: 28px 32px;
  background: var(--lavender);
  margin: 32px 0;
}

.be-citation-page .be-citation-box__heading {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--ink-3);
  margin: 0 0 16px;
}

.be-citation-page .be-citation-box__suggested {
  font-family: var(--serif);
  font-size: 15px;
  line-height: 1.6;
  color: var(--ink-2);
  border-left: 3px solid var(--accent);
  padding-left: 16px;
  margin: 0 0 16px;
}

.be-citation-page .be-citation-box__copy {
  padding: 10px 16px;
  font-size: 12px;
  font-family: var(--sans);
  background: var(--ink);
  color: var(--paper);
  border: 1px solid var(--ink);
  cursor: pointer;
  transition: background 120ms;
}

.be-citation-page .be-citation-box__copy:hover { background: var(--accent); border-color: var(--accent); }

.be-citation-page .be-citation-box__dates,
.be-citation-page .be-citation-box__version,
.be-citation-page .be-citation-box__publisher,
.be-citation-page .be-citation-box__url {
  font-family: var(--sans);
  font-size: 12px;
  color: var(--ink-3);
  margin: 8px 0 0;
}

/* Data download card */
.be-citation-page .be-data-download-card {
  border: 1px solid var(--rule);
  padding: 24px 28px;
  background: var(--paper-2);
  margin: 32px 0;
}

.be-citation-page .be-data-download-card__heading {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--ink-3);
  margin: 0 0 16px;
}

.be-citation-page .be-data-download-card__pending {
  font-family: var(--sans);
  font-size: 13.5px;
  color: var(--ink-2);
  margin: 0 0 12px;
}

.be-citation-page .be-data-download-card__link {
  display: inline-block;
  padding: 10px 16px;
  font-size: 13px;
  font-family: var(--sans);
  background: var(--ink);
  color: var(--paper);
  border: 1px solid var(--ink);
  margin-right: 8px;
  transition: background 120ms;
  text-decoration: none;
}

.be-citation-page .be-data-download-card__link:hover { background: var(--accent); border-color: var(--accent); }

.be-citation-page .be-data-download-card__secondary {
  list-style: none;
  padding: 0;
  margin: 16px 0 0;
  display: flex;
  gap: 16px;
  font-family: var(--sans);
  font-size: 12.5px;
}

.be-citation-page .be-data-download-card__secondary a {
  color: var(--accent);
  border-bottom: 1px solid var(--lavender-edge);
}

/* Benchmark table */
.be-citation-page .be-benchmark-table-wrap { overflow-x: auto; }

.be-citation-page .be-benchmark-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--sans);
  font-size: 13.5px;
}

.be-citation-page .be-benchmark-table caption {
  text-align: left;
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-3);
  padding: 0 0 12px;
}

.be-citation-page .be-benchmark-table th {
  text-align: left;
  font-weight: 600;
  font-size: 11px;
  font-family: var(--mono);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-3);
  padding: 10px 14px;
  border-bottom: 2px solid var(--ink);
  white-space: nowrap;
}

.be-citation-page .be-benchmark-table td {
  padding: 10px 14px;
  border-bottom: 1px solid var(--rule);
  color: var(--ink);
  vertical-align: top;
}

.be-citation-page .be-benchmark-table tr:last-child td { border-bottom: none; }

.be-citation-page .be-benchmark-table tr:hover td { background: var(--lavender); }

/* Related research */
.be-citation-page .be-related-research {
  margin: 32px 0;
  padding: 24px 0 0;
  border-top: 1px solid var(--rule);
}

.be-citation-page .be-related-research__heading {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--ink-3);
  margin: 0 0 14px;
}

.be-citation-page .be-related-research__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-family: var(--sans);
  font-size: 13.5px;
}

.be-citation-page .be-related-research__list a {
  color: var(--accent);
  border-bottom: 1px solid var(--lavender-edge);
}

/* Revision timeline */
.be-citation-page .be-revision-timeline {
  margin: 24px 0 0;
  font-family: var(--sans);
  font-size: 12.5px;
}

.be-citation-page .be-revision-timeline__heading {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-3);
  font-weight: 500;
  margin: 0 0 12px;
}

.be-citation-page .be-revision-timeline__list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.be-citation-page .be-revision-timeline__event {
  display: grid;
  grid-template-columns: 100px 1fr 1fr;
  gap: 8px 16px;
  padding: 10px 0;
  border-bottom: 1px dotted var(--rule);
  align-items: baseline;
}

.be-citation-page .be-revision-timeline__date {
  font-family: var(--mono);
  font-size: 10.5px;
  color: var(--ink-3);
}

.be-citation-page .be-revision-timeline__to { color: var(--accent); font-weight: 600; }

/* ============================================================
   Old header — visually suppressed (Python emits the hero)
   ============================================================ */
.be-citation-page .be-citation-header {
  display: none;
}

/* ============================================================
   Module footer (evidence) — compact one-liner per figure
   ============================================================ */
.be-citation-page .mod-foot {
  display: flex; flex-wrap: wrap; align-items: baseline;
  gap: 4px 8px; padding: 16px 0 8px; margin-top: 16px;
  border-top: 1px solid var(--rule-2);
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.02em;
}
.be-citation-page .mod-foot__k {
  text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--ink-3); font-weight: 600;
}
.be-citation-page .mod-foot__v { color: var(--ink); font-weight: 500; }
.be-citation-page .mod-foot__v.is-src { color: var(--accent); }
.be-citation-page .mod-foot__sep { color: var(--ink-4); }

/* ============================================================
   Insight strip — quiet accent-bar takeaway below charts
   ============================================================ */
.be-citation-page .insight-strip {
  padding: 12px 0 0 16px;
  margin-top: 16px;
  border-left: 2px solid var(--accent);
  font-family: var(--serif); font-size: 14px; line-height: 1.6;
  color: var(--ink-2); text-wrap: pretty; max-width: 64ch;
}

.be-citation-page .insight__interp {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--rule);
  font-size: 0.875rem; line-height: 1.65;
  color: var(--ink-1); text-wrap: pretty; max-width: 72ch;
}

/* ============================================================
   Page additions (v4 sub-page components)
   From page-additions.css — scoped to .be-citation-page
   ============================================================ */
.be-citation-page .section {
  background: var(--panel);
  border-top: 1px solid var(--rule);
  padding: 56px 0 64px;
}
.be-citation-page .section + .section { border-top: 1px solid var(--rule); }
.be-citation-page .section__head {
  max-width: 1180px;
  margin: 0 auto 36px;
  padding: 0 32px;
  text-align: left;
}
.be-citation-page .section__eyebrow {
  max-width: 1180px; margin: 0 auto 16px; padding: 0 32px;
}
.be-citation-page .col .section { padding: 0; border-top: none; background: transparent; }
.be-citation-page .col .section + .section { border-top: none; }
.be-citation-page .col .section__head,
.be-citation-page .col .section__eyebrow,
.be-citation-page .col .section__body { max-width: none; padding: 0; margin-left: 0; margin-right: 0; }
.be-citation-page .col .section__head { margin-bottom: 44px; }
.be-citation-page .col .section__eyebrow { margin-bottom: 18px; }
.be-citation-page .col .fig + .section,
.be-citation-page .col .section > .fig + * { margin-top: 64px; }
.be-citation-page .section__eyebrow span {
  font-family: var(--mono); font-size: var(--fs-meta); letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--accent); font-weight: 700;
  border-left: 3px solid var(--accent); padding-left: 12px;
}
.be-citation-page .section__kicker {
  font-family: var(--mono); font-size: var(--fs-meta); letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--ink-3); font-weight: 700;
  margin-bottom: 12px;
}
.be-citation-page .section__title {
  font-family: var(--serif); font-size: var(--fs-title); line-height: 1.18;
  font-weight: 600; letter-spacing: -0.02em; margin: 0 0 14px;
  color: var(--ink); text-wrap: balance; max-width: 24ch;
}
.be-citation-page .section__takeaway {
  font-size: 17px; line-height: 1.6; color: var(--ink); margin: 0;
  text-wrap: pretty; max-width: 60ch;
}
.be-citation-page .section__body {
  max-width: 1180px; margin: 0 auto; padding: 0 32px;
}
.be-citation-page .section.is-dark { background: var(--ink); color: #fff; }
.be-citation-page .section.is-dark .section__title,
.be-citation-page .section.is-dark .section__takeaway { color: #fff; }
.be-citation-page .section.is-dark .section__kicker { color: #BFB6A8; }

/* Fig */
.be-citation-page .fig__t {
  font-family: var(--serif); font-size: var(--fs-title); line-height: 1.25;
  font-weight: 600; letter-spacing: -0.015em; margin: 0 0 8px;
  color: var(--ink); text-wrap: balance; max-width: 48ch;
}
.be-citation-page .fig__takeaway {
  font-size: 17px; line-height: 1.6; color: var(--ink);
  margin: 0; text-wrap: pretty; max-width: 56ch;
}
.be-citation-page .fig__foot {
  border-top: 1px solid var(--rule); padding: 14px 24px;
  display: flex; justify-content: space-between; gap: 16px;
  font-family: var(--mono); font-size: var(--fs-meta); color: var(--ink-3);
  letter-spacing: 0.02em;
}
.be-citation-page .fig__note { color: var(--ink-3); }

/* Method card num variant */
.be-citation-page .method-card__num {
  font-family: var(--mono); font-size: var(--fs-meta); letter-spacing: 0.1em;
  color: var(--accent); font-weight: 700; text-transform: uppercase;
}

/* Source register table */
.be-citation-page .reg-table {
  width: 100%; max-width: 1180px; margin: 0 auto;
  border-collapse: collapse; background: var(--panel);
  border: 1px solid var(--rule); font-size: var(--fs-meta);
}
.be-citation-page .reg-table th,
.be-citation-page .reg-table td {
  text-align: left; padding: 14px 16px;
  border-bottom: 1px solid var(--rule); vertical-align: top;
}
.be-citation-page .reg-table th {
  font-family: var(--mono); font-size: var(--fs-meta);
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--ink-3); font-weight: 700; background: var(--bg);
}
.be-citation-page .reg-table tbody tr:hover { background: var(--bg); }
.be-citation-page .reg-table tbody tr:last-child td { border-bottom: 0; }
.be-citation-page .reg-table__pub {
  font-family: var(--mono); font-size: var(--fs-meta); color: var(--ink-3);
  letter-spacing: 0.02em;
}

/* Badges */
.be-citation-page .badge {
  display: inline-block;
  font-family: var(--mono); font-size: var(--fs-meta); letter-spacing: 0.08em;
  text-transform: uppercase; font-weight: 700;
  padding: 3px 8px; border-radius: 2px; border: 1px solid var(--rule);
}
.be-citation-page .badge--regulator { background: #EAF2EF; color: #1F5145; border-color: #C7DDD3; }
.be-citation-page .badge--industry  { background: #F0EBE0; color: #6B5B3E; border-color: #DACAA9; }
.be-citation-page .badge--academic  { background: #ECEDF5; color: #303B6B; border-color: #C8CDDF; }
.be-citation-page .badge--public    { background: #F4ECE8; color: #6F3220; border-color: #DEC0B5; }
.be-citation-page .badge--internal  { background: #E9E5DD; color: #4A4439; border-color: #C7BFB0; }

/* Two-up / Three-up grids */
.be-citation-page .two-up {
  display: grid; grid-template-columns: 1.05fr 0.95fr;
  gap: 1px; background: var(--rule); border: 1px solid var(--rule);
}
.be-citation-page .two-up > * { background: var(--panel); padding: 26px 28px; }
.be-citation-page .three-up {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 1px; background: var(--rule); border: 1px solid var(--rule); margin-bottom: 32px;
}
.be-citation-page .three-up > * { background: var(--panel); padding: 22px 24px; }
.be-citation-page .three-up h4 { margin: 0 0 8px; font-family: var(--serif); font-size: var(--fs-body); font-weight: 600; letter-spacing: -0.01em; }
.be-citation-page .three-up p  { margin: 0; font-size: 14px; line-height: 1.6; color: var(--ink-2); }
.be-citation-page .three-up .lab { font-family: var(--mono); font-size: var(--fs-meta); letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-3); font-weight: 700; margin-bottom: 12px; display: block; }

/* Stat strip */
.be-citation-page .stat-strip {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 1px; background: var(--rule); border: 1px solid var(--rule);
  margin: 0 auto 36px; max-width: 1180px;
}
.be-citation-page .stat-strip__cell { background: var(--panel); padding: 26px 28px; }
.be-citation-page .stat-strip__lab {
  font-family: var(--mono); font-size: var(--fs-meta); letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--ink-3); font-weight: 700; margin-bottom: 14px;
}
.be-citation-page .stat-strip__val {
  font-family: var(--serif); font-size: var(--fs-title); line-height: 1.05;
  font-weight: 700; letter-spacing: -0.025em; color: var(--ink); margin-bottom: 8px;
}
.be-citation-page .stat-strip__cap { font-size: var(--fs-meta); color: var(--ink-2); line-height: 1.5; margin: 0; }
.be-citation-page .stat-strip__src { font-family: var(--mono); font-size: var(--fs-meta); color: var(--ink-3); margin-top: 12px; }

/* Note panel */
.be-citation-page .note-panel {
  background: var(--bg); border-left: 3px solid var(--accent);
  padding: 18px 22px; margin: 24px 0;
}
.be-citation-page .note-panel__lab { font-family: var(--mono); font-size: var(--fs-meta); letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent); font-weight: 700; margin-bottom: 6px; }
.be-citation-page .note-panel p { margin: 0; font-size: 17px; line-height: 1.6; color: var(--ink); }

/* Caveat */
.be-citation-page .caveat {
  display: grid; grid-template-columns: 90px 1fr;
  gap: 16px; align-items: start;
  background: var(--bg-2); padding: 16px 20px;
  margin: 0 0 28px; border-left: 3px solid var(--ink);
}
.be-citation-page .caveat__lab {
  font-family: var(--mono); font-size: var(--fs-meta);
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--ink); font-weight: 700; padding-top: 2px;
}
.be-citation-page .caveat p { margin: 0; font-size: 14px; line-height: 1.55; color: var(--ink); text-wrap: pretty; max-width: 70ch; }

/* Chart caveat */
.be-citation-page .chart-caveat {
  display: grid; grid-template-columns: 24px 1fr;
  gap: 8px; align-items: start;
  font-family: var(--sans); font-size: 13px; line-height: 1.55;
  color: var(--ink-2); margin: 14px 0 28px;
  padding: 12px 16px;
  background: var(--warn-soft); border-left: 3px solid var(--warn);
  text-wrap: pretty; max-width: 80ch;
}
.be-citation-page .chart-caveat__star { font-family: var(--serif); font-weight: 700; color: var(--warn); font-size: 18px; line-height: 1.2; }
.be-citation-page .chart-caveat strong { color: var(--ink); font-weight: 700; }

/* Means strip */
.be-citation-page .means {
  display: grid; grid-template-columns: 160px 1fr;
  gap: 24px; align-items: start;
  background: var(--ink); color: #fff;
  padding: 24px 28px; margin: 0 auto 36px; max-width: 1180px;
  border-left: 5px solid var(--accent);
}
.be-citation-page .means__lab {
  font-family: var(--mono); font-size: var(--fs-meta);
  letter-spacing: 0.16em; text-transform: uppercase;
  color: #BFB6A8; font-weight: 700;
  padding-top: 4px; border-right: 1px solid #3a2f37; padding-right: 18px; align-self: stretch;
}
.be-citation-page .means__t {
  font-family: var(--serif); font-size: 18px; line-height: 1.5;
  font-weight: 500; color: #fff; margin: 0; text-wrap: pretty; max-width: 60ch;
}

/* Before/After comparison */
.be-citation-page .ba {
  display: grid; grid-template-columns: 1fr 56px 1fr;
  align-items: stretch; border: 1px solid var(--rule);
}
.be-citation-page .ba__col { padding: 28px 30px; display: flex; flex-direction: column; gap: 10px; }
.be-citation-page .ba__col--before { background: var(--bg-2); }
.be-citation-page .ba__col--after  { background: var(--ink); color: #fff; box-shadow: inset 5px 0 0 0 var(--accent); }
.be-citation-page .ba__col--after .ba__lab { color: var(--accent-soft); }
.be-citation-page .ba__col--after .ba__t { color: #fff; }
.be-citation-page .ba__col--after .ba__lede { color: #D4CDBE; }
.be-citation-page .ba__col--after .ba__list li { border-color: #3a2f37; }
.be-citation-page .ba__col--after .ba__k { color: #BFB6A8; }
.be-citation-page .ba__col--after .ba__v { color: #fff; }
.be-citation-page .ba__lab { font-family: var(--mono); font-size: var(--fs-meta); letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-3); font-weight: 700; }
.be-citation-page .ba__t { font-family: var(--serif); font-size: 24px; line-height: 1.2; font-weight: 700; letter-spacing: -0.02em; margin: 0; color: var(--ink); text-wrap: balance; }
.be-citation-page .ba__lede { font-size: 14.5px; line-height: 1.55; color: var(--ink-2); margin: 0 0 8px; max-width: 50ch; text-wrap: pretty; }
.be-citation-page .ba__list { list-style: none; padding: 0; margin: 6px 0 0; }
.be-citation-page .ba__list li { display: grid; grid-template-columns: 160px 1fr; gap: 14px; padding: 10px 0; border-top: 1px solid var(--rule); font-family: var(--mono); font-size: var(--fs-meta); align-items: baseline; }
.be-citation-page .ba__k { color: var(--ink-3); letter-spacing: 0.08em; text-transform: uppercase; font-weight: 700; }
.be-citation-page .ba__v { color: var(--ink); font-weight: 600; letter-spacing: 0.02em; }
.be-citation-page .ba__pivot { background: var(--panel); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; border-left: 1px solid var(--rule); border-right: 1px solid var(--rule); }
.be-citation-page .ba__pivot-arrow { font-family: var(--serif); font-size: 32px; font-weight: 700; color: var(--accent); line-height: 1; }
.be-citation-page .ba__pivot-lab { writing-mode: vertical-rl; transform: rotate(180deg); font-family: var(--mono); font-size: var(--fs-meta); letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-3); font-weight: 700; }

/* Data integrity block */
.be-citation-page .integrity { background: var(--panel); border-top: 1px solid var(--rule); padding: 56px 0 64px; }
.be-citation-page .integrity__inner { max-width: 1180px; margin: 0 auto; padding: 0 32px; display: grid; grid-template-columns: 1.3fr 1fr; gap: 56px; align-items: start; }
.be-citation-page .integrity__head { border-left: 4px solid var(--accent); padding-left: 22px; }
.be-citation-page .integrity__lab { font-family: var(--mono); font-size: var(--fs-meta); letter-spacing: 0.16em; text-transform: uppercase; color: var(--accent); font-weight: 700; margin-bottom: 14px; }
.be-citation-page .integrity__t { font-family: var(--serif); font-size: 22px; line-height: 1.35; font-weight: 600; letter-spacing: -0.015em; margin: 0; color: var(--ink); text-wrap: balance; max-width: 44ch; }
.be-citation-page .integrity__proofs { list-style: none; padding: 0; margin: 0; border: 1px solid var(--ink); display: grid; grid-template-rows: repeat(3, 1fr); }
.be-citation-page .integrity__proofs li { padding: 16px 20px; border-bottom: 1px solid var(--rule); display: grid; grid-template-columns: 180px 1fr; gap: 16px; align-items: baseline; }
.be-citation-page .integrity__proofs li:last-child { border-bottom: none; }
.be-citation-page .integrity__proof-k { font-family: var(--mono); font-size: var(--fs-meta); letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-3); font-weight: 700; }
.be-citation-page .integrity__proof-v { font-family: var(--serif); font-size: 16px; font-weight: 600; color: var(--ink); letter-spacing: -0.01em; }

/* Source register section */
.be-citation-page .section--register { background: var(--bg); }
.be-citation-page .reg-wrap { max-width: 1180px; margin: 0 auto; padding: 0 32px; overflow-x: auto; }
.be-citation-page .section--register .reg-table { border: 1px solid var(--ink); background: var(--panel); margin: 0; font-size: 14px; min-width: 760px; }
.be-citation-page .section--register .reg-table th { padding: 16px 18px; font-size: var(--fs-meta); letter-spacing: 0.12em; background: var(--ink); color: #fff; border-bottom: none; }
.be-citation-page .section--register .reg-table td { padding: 18px 18px; vertical-align: top; border-bottom: 1px solid var(--rule); font-family: var(--sans); }
.be-citation-page .section--register .reg-table tbody tr:hover { background: var(--bg-2); }
.be-citation-page .section--register .reg-table td strong { font-family: var(--serif); font-size: 15px; font-weight: 700; color: var(--ink); letter-spacing: -0.005em; }

/* Defs grid */
.be-citation-page .defs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--rule); border: 1px solid var(--rule); }
.be-citation-page .defs__cell { background: var(--panel); padding: 22px 24px; }
.be-citation-page .defs__term { font-family: var(--serif); font-size: var(--fs-body); font-weight: 600; letter-spacing: -0.01em; margin: 0 0 4px; }
.be-citation-page .defs__lab { font-family: var(--mono); font-size: var(--fs-meta); letter-spacing: 0.1em; text-transform: uppercase; color: var(--accent); font-weight: 700; margin-bottom: 8px; }
.be-citation-page .defs__d { font-size: 13.5px; line-height: 1.6; color: var(--ink-2); margin: 0; }

/* Page single (no rail) */
.be-citation-page .page--single { max-width: 1180px; margin: 0 auto; padding: 0; display: block; }

/* ============================================================
   Section nav (sticky under hub bar)
   ============================================================ */
.be-citation-page .secnav {
  position: sticky; top: var(--hub-h); z-index: 50;
  background: var(--bg);
  border-bottom: 1px solid var(--rule);
  height: var(--secnav-h);
}
.be-citation-page .secnav__inner {
  max-width: var(--maxw); margin: 0 auto; height: 100%;
  display: flex; align-items: center; gap: var(--s-1);
  padding: 0 var(--s-6); overflow-x: auto;
  font-size: var(--fs-meta);
}
.be-citation-page .secnav__inner::-webkit-scrollbar { height: 0; }
.be-citation-page .secnav a {
  display: inline-flex; align-items: center; gap: var(--s-2);
  padding: var(--s-3) var(--s-3); color: var(--ink-3); white-space: nowrap;
  border-bottom: 1px solid transparent;
  margin-bottom: -1px;
  transition: color 120ms, border-color 120ms;
}
.be-citation-page .secnav a:hover { color: var(--ink); }
.be-citation-page .secnav a[aria-current="true"] {
  color: var(--ink); border-bottom-color: var(--ink-3); font-weight: 600;
}
.be-citation-page .secnav a .num {
  font-family: var(--mono); font-size: var(--fs-meta); color: var(--ink-4);
}

/* ============================================================
   Fig — chart card (transparent, no inner inset)
   ============================================================ */
.be-citation-page .fig { background: transparent; margin: 0; }
.be-citation-page .fig__head { padding: 0 0 var(--s-4) 0; }
.be-citation-page .fig__lab {
  font-family: var(--mono); font-size: var(--fs-meta); letter-spacing: 0.1em;
  color: var(--ink-3); font-weight: 600; text-transform: uppercase;
  margin-bottom: var(--s-2);
}
.be-citation-page .fig__title {
  font-family: var(--serif); font-size: var(--fs-title); line-height: 1.25;
  font-weight: 600; letter-spacing: -0.015em; margin: 0 0 var(--s-2);
  color: var(--ink); text-wrap: balance; max-width: 48ch;
}
.be-citation-page .fig__sub {
  font-size: var(--fs-meta); color: var(--ink-3); margin: 0;
  font-family: var(--mono); letter-spacing: 0.02em;
}
.be-citation-page .fig__body { padding: 0; }

/* SVG chart primitives */
.be-citation-page .svgc text {
  font-family: var(--mono); font-size: var(--fs-meta);
  fill: var(--ink-3); letter-spacing: 0.02em;
}
.be-citation-page .svgc .axis-lab {
  font-size: var(--fs-meta); letter-spacing: 0.12em;
  fill: var(--ink-4); text-transform: uppercase;
}
.be-citation-page .svgc .grid { stroke: var(--rule-2); stroke-width: 1; }
.be-citation-page .svgc .grid.zero { stroke: var(--ink-3); stroke-width: 1; }
.be-citation-page .svgc .line { fill: none; stroke: var(--ink); stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.be-citation-page .svgc .area { fill: var(--accent-soft); opacity: 0.55; }
.be-citation-page .svgc .pt { fill: var(--ink); }
.be-citation-page .svgc .pt.last { fill: var(--accent); }
.be-citation-page .svgc .end-lab {
  font-family: var(--serif); font-size: var(--fs-body); font-weight: 700;
  fill: var(--accent); letter-spacing: -0.01em;
}
.be-citation-page .svgc .annot {
  font-size: var(--fs-meta); fill: var(--ink); font-weight: 500;
  font-family: var(--mono); letter-spacing: 0.04em; text-transform: uppercase;
}
.be-citation-page .svgc .annot-line { stroke: var(--ink-3); stroke-width: 1; stroke-dasharray: 2 3; }

/* Horizontal bars */
.be-citation-page .hbars {
  display: flex; flex-direction: column; gap: var(--s-3);
  padding: var(--s-2) 0; max-width: 720px;
}
.be-citation-page .hbar {
  display: grid;
  grid-template-columns: 140px 44px 1fr 78px;
  align-items: center; gap: var(--s-4);
}
.be-citation-page .hbar__lab { font-size: var(--fs-body); color: var(--ink); font-weight: 500; line-height: 1.2; }
.be-citation-page .hbar__pct {
  font-family: var(--mono); font-size: var(--fs-meta); font-weight: 700;
  color: var(--ink); letter-spacing: 0.02em; text-align: right;
  font-variant-numeric: tabular-nums;
}
.be-citation-page .hbar__track { height: 14px; background: var(--rule-2); position: relative; }
.be-citation-page .hbar__fill { height: 100%; background: var(--ink); transition: width 400ms ease-out; }
.be-citation-page .hbar__fill.muted { background: var(--ink-3); }
.be-citation-page .hbar__fill.dim   { background: var(--ink-4); }
.be-citation-page .hbar__fill.accent { background: var(--accent); }
.be-citation-page .hbar__val {
  font-family: var(--mono); font-size: var(--fs-meta); color: var(--ink-3);
  font-variant-numeric: tabular-nums; font-weight: 500;
  letter-spacing: 0.02em; text-align: right;
}

/* ============================================================
   Market table (.mtable)
   ============================================================ */
.be-citation-page .mtable-wrap { background: transparent; }
.be-citation-page .mtable-head {
  padding: 0 0 var(--s-4) 0;
  display: grid; grid-template-columns: 1fr auto;
  align-items: end; gap: var(--s-4);
}
.be-citation-page .mtable-head h3 {
  font-family: var(--serif); font-size: var(--fs-title); line-height: 1.2;
  font-weight: 600; letter-spacing: -0.015em; margin: 0 0 var(--s-2);
  text-wrap: balance;
}
.be-citation-page .mtable-head p { font-size: var(--fs-meta); color: var(--ink-3); margin: 0; }
.be-citation-page .mtable-head__act { display: flex; gap: var(--s-1); }
.be-citation-page .mtable-head__act button {
  padding: var(--s-2) var(--s-3); font-size: var(--fs-meta); font-weight: 600;
  border: 1px solid var(--ink); background: var(--panel);
  color: var(--ink); font-family: var(--mono); letter-spacing: 0.06em; text-transform: uppercase;
  transition: background 120ms, color 120ms;
}
.be-citation-page .mtable-head__act button:hover { background: var(--ink); color: #fff; }
.be-citation-page .mtable-head__act button.is-primary { background: var(--ink); color: #fff; }
.be-citation-page .mtable-scroll { overflow-x: auto; }
.be-citation-page .mtable {
  font-size: var(--fs-body); font-variant-numeric: tabular-nums; min-width: 540px;
}
.be-citation-page .mtable thead th {
  text-align: left; padding: 14px var(--s-5);
  font-family: var(--mono); font-size: var(--fs-meta); font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink);
  background: var(--bg-2); border-bottom: 1px solid var(--ink); white-space: nowrap;
}
.be-citation-page .mtable thead th.num { text-align: right; }
.be-citation-page .mtable tbody td {
  padding: var(--s-5) var(--s-5); border-bottom: 1px solid var(--rule-2);
  color: var(--ink); font-size: var(--fs-body); line-height: 1.55; vertical-align: middle;
}
.be-citation-page .mtable tbody td:first-child { background: var(--panel); font-weight: 600; }
.be-citation-page .mtable tbody tr:hover td:first-child { background: var(--bg); }
.be-citation-page .mtable tbody td.num { text-align: right; font-weight: 500; color: var(--ink); }
.be-citation-page .mtable tbody tr:hover td { background: var(--bg); }
.be-citation-page .mtable tbody tr:last-child td { border-bottom: none; }
.be-citation-page .mtable .method-name { color: var(--ink); font-weight: 600; }
.be-citation-page .mtable .delta {
  font-family: var(--mono); font-size: var(--fs-meta); padding: 0; border-radius: 0;
  font-weight: 500; display: inline-flex; align-items: center; gap: 4px;
  letter-spacing: 0.02em; opacity: 0.85;
}
.be-citation-page .mtable .delta::before {
  content: ""; display: inline-block; width: 0; height: 0;
  border-left: 3px solid transparent; border-right: 3px solid transparent;
}
.be-citation-page .mtable .delta.is-up { color: var(--positive); background: transparent; }
.be-citation-page .mtable .delta.is-up::before { border-bottom: 5px solid currentColor; }
.be-citation-page .mtable .delta.is-down { color: var(--negative); background: transparent; }
.be-citation-page .mtable .delta.is-down::before { border-top: 5px solid currentColor; }

.be-citation-page .src-pill {
  display: inline-block; padding: 1px 0;
  font-family: var(--mono); font-size: var(--fs-meta); letter-spacing: 0.04em;
  border: none; background: transparent; color: var(--ink-3); font-weight: 500;
  text-transform: uppercase;
}

/* ============================================================
   Cite-strip — quiet body stat row
   ============================================================ */
.be-citation-page .cite-strip {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 0; background: transparent; border: none;
  border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule);
  margin: 0 0 var(--s-7);
}
.be-citation-page .cite-strip__cell {
  background: transparent; padding: var(--s-5) var(--s-5) var(--s-5) 0;
  display: flex; flex-direction: column; gap: var(--s-2);
  border-left: 1px solid var(--rule);
}
.be-citation-page .cite-strip__cell:first-child { padding-left: 0; border-left: none; }
.be-citation-page .cite-strip__cell:not(:first-child) { padding-left: var(--s-5); }
.be-citation-page .cite-strip__cell.is-emph { background: transparent; box-shadow: none; }
.be-citation-page .cite-strip__cell.is-emph .cite-strip__k { color: var(--accent); }
.be-citation-page .cite-strip__k {
  font-family: var(--mono); font-size: var(--fs-meta);
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--ink-3); font-weight: 600;
}
.be-citation-page .cite-strip__v {
  font-family: var(--serif); font-size: 22px; line-height: 1;
  font-weight: 600; letter-spacing: -0.02em;
  color: var(--ink); font-variant-numeric: tabular-nums;
}
.be-citation-page .cite-strip__cell.is-emph .cite-strip__v { color: var(--accent); }
.be-citation-page .cite-strip__v span {
  font-family: var(--mono); font-size: 11px; font-weight: 600;
  color: var(--ink-3); margin-left: var(--s-1); letter-spacing: 0;
}
.be-citation-page .cite-strip__d {
  font-family: var(--mono); font-size: var(--fs-meta);
  color: var(--ink-3); letter-spacing: 0.04em;
}

/* ============================================================
   Methodology cards
   ============================================================ */
.be-citation-page .method-cards {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 1px; background: var(--rule); border: 1px solid var(--rule);
}
.be-citation-page .method-card {
  background: var(--panel); padding: var(--s-5) var(--inset);
  display: flex; flex-direction: column; gap: var(--s-3);
}
.be-citation-page .method-card__mark {
  font-family: var(--mono); font-size: var(--fs-meta); letter-spacing: 0.1em;
  color: var(--ink-3); font-weight: 600; text-transform: uppercase;
}
.be-citation-page .method-card__t {
  font-family: var(--serif); font-size: var(--fs-body); line-height: 1.3;
  font-weight: 600; color: var(--ink); margin: 0; text-wrap: balance;
}
.be-citation-page .method-card__d {
  font-size: var(--fs-meta); line-height: 1.5; color: var(--ink-2); margin: 0; text-wrap: pretty;
}

/* ============================================================
   Research utility footer (dark band)
   ============================================================ */
.be-citation-page .use-block { background: var(--ink); color: #fff; padding: var(--s-7) var(--inset); }
.be-citation-page .use-block__inner {
  max-width: var(--maxw); margin: 0 auto;
  display: grid; grid-template-columns: 1fr auto;
  gap: var(--s-7); align-items: center;
}
.be-citation-page .use-block h3 {
  font-family: var(--serif); font-size: var(--fs-title); line-height: 1.1;
  letter-spacing: -0.02em; margin: 0 0 var(--s-2); font-weight: 600; color: #fff;
}
.be-citation-page .use-block p { margin: 0; color: #BFB6A8; max-width: 50ch; font-size: var(--fs-body); line-height: 1.5; }
.be-citation-page .use-block__act { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.be-citation-page .use-block__act button {
  padding: var(--s-3) var(--s-4); font-size: var(--fs-meta); font-weight: 500;
  background: transparent; color: #fff; border: 1px solid #4F463D; letter-spacing: 0.005em;
  transition: background 120ms, border-color 120ms;
}
.be-citation-page .use-block__act button:hover { background: rgba(255,255,255,0.08); border-color: #fff; }
.be-citation-page .use-block__act button.is-primary { background: #fff; color: var(--ink); border-color: #fff; }
.be-citation-page .use-block__act button.is-primary:hover { background: var(--accent-soft); }

/* ============================================================
   Rails map
   ============================================================ */
.be-citation-page .railsmap {
  background: var(--panel); border: 1px solid var(--rule); margin-top: var(--s-7);
}
.be-citation-page .railsmap__head {
  padding: var(--s-5) var(--inset); border-bottom: 1px solid var(--rule);
  display: grid; grid-template-columns: 1fr auto; gap: var(--s-4); align-items: end;
  background: var(--bg);
}
.be-citation-page .railsmap__lab {
  font-family: var(--mono); font-size: var(--fs-meta); letter-spacing: 0.12em;
  color: var(--ink-3); font-weight: 700; text-transform: uppercase; margin-bottom: var(--s-2);
}
.be-citation-page .railsmap__t {
  font-family: var(--serif); font-size: var(--fs-title); line-height: 1.18;
  font-weight: 700; letter-spacing: -0.022em; margin: 0 0 var(--s-2);
  text-wrap: balance; max-width: 36ch; color: var(--ink);
}
.be-citation-page .railsmap__sub {
  font-size: var(--fs-meta); color: var(--ink-3); margin: 0;
  font-family: var(--mono); letter-spacing: 0.02em;
}
.be-citation-page .railsmap__caption {
  padding: var(--s-5) var(--inset) var(--s-2);
  font-family: var(--mono); font-size: var(--fs-meta); line-height: 1.5;
  color: var(--ink-3); margin: 0; letter-spacing: 0.04em;
}
.be-citation-page .railsmap__list { list-style: none; padding: var(--s-3) var(--inset) var(--s-5); margin: 0; }
.be-citation-page .rail-row {
  display: grid; grid-template-columns: 160px 1fr 80px 1fr 80px;
  gap: var(--s-5); align-items: center; padding: var(--s-4) 0;
  border-top: 1px solid var(--rule-2);
}
.be-citation-page .rail-row:first-child { border-top: none; }
.be-citation-page .rail-row--head {
  padding: var(--s-2) 0 var(--s-3); border-top: none;
  font-family: var(--mono); font-size: var(--fs-meta); letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--ink-4); font-weight: 700;
}
.be-citation-page .rail-row__name { display: flex; flex-direction: column; gap: var(--s-1); min-width: 0; }
.be-citation-page .rail-row__name-t {
  font-family: var(--serif); font-size: var(--fs-body); font-weight: 700;
  color: var(--ink); letter-spacing: -0.012em; line-height: 1.1;
}
.be-citation-page .rail-row__name-r {
  font-family: var(--mono); font-size: var(--fs-meta); color: var(--ink-3);
  letter-spacing: 0.06em; text-transform: uppercase;
}
.be-citation-page .rail-row__bar { height: 8px; background: var(--rule-2); position: relative; border: none; }
.be-citation-page .rail-row__bar i { position: absolute; left: 0; top: 0; bottom: 0; display: block; }
.be-citation-page .rail-row__bar.is-vol i { background: var(--ink); }
.be-citation-page .rail-row__bar.is-val i { background: var(--accent); }
.be-citation-page .rail-row__num {
  font-family: var(--mono); font-size: var(--fs-meta); color: var(--ink-2);
  font-weight: 500; text-align: right; letter-spacing: 0.02em; font-variant-numeric: tabular-nums;
}
.be-citation-page .railsmap__foot {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: var(--s-5); padding: var(--s-4) var(--inset); border-top: 1px solid var(--rule-2);
  font-family: var(--mono); font-size: var(--fs-meta); color: var(--ink-3); letter-spacing: 0.02em;
}
.be-citation-page .railsmap__foot strong { color: var(--ink-2); font-weight: 600; }

/* ============================================================
   Freshness badges (.fb)
   ============================================================ */
.be-citation-page .fb {
  display: inline-flex; align-items: center; gap: var(--s-2);
  font-family: var(--mono); font-size: var(--fs-meta); font-weight: 600;
  letter-spacing: 0.06em; text-transform: uppercase;
  padding: var(--s-1) var(--s-2); border-radius: 2px; border: 1px solid;
}
.be-citation-page .fb.is-fresh   { color: var(--positive); border-color: var(--positive); background: var(--positive-soft); }
.be-citation-page .fb.is-due     { color: var(--warn); border-color: var(--warn); background: var(--warn-soft); }
.be-citation-page .fb.is-revised { color: var(--accent); border-color: var(--accent); background: var(--accent-soft); }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 1100px) {
  .be-citation-page .rail { display: none; }
  .be-citation-page .hero__inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .be-citation-page .highlights__list { grid-template-columns: 1fr; }
  .be-citation-page .source-strip {
    grid-template-columns: 60px 1fr 1fr;
  }
  .be-citation-page .source-strip__cell:nth-of-type(3),
  .be-citation-page .source-strip__cell:nth-of-type(4) { display: none; }
  .be-citation-page .methods-foot { grid-template-columns: 1fr; gap: 32px; }
  .be-citation-page .hub__edition { display: none; }
  .be-citation-page .kpi-leads { grid-template-columns: 1fr; }
  .be-citation-page .kpi-strip  { grid-template-columns: repeat(2, 1fr); }
  .be-citation-page .two-up { grid-template-columns: 1fr; }
  .be-citation-page .three-up { grid-template-columns: repeat(2, 1fr); }
  .be-citation-page .means { grid-template-columns: 1fr; gap: 10px; }
  .be-citation-page .means__lab { border-right: none; border-bottom: 1px solid #3a2f37; padding: 0 0 8px; }
  .be-citation-page .ba { grid-template-columns: 1fr; }
  .be-citation-page .ba__pivot { padding: 14px; flex-direction: row; }
  .be-citation-page .ba__pivot-lab { writing-mode: horizontal-tb; transform: none; }
  .be-citation-page .ba__list li { grid-template-columns: 1fr; gap: 2px; }
  .be-citation-page .integrity__inner { grid-template-columns: 1fr; gap: 28px; }
  .be-citation-page .integrity__proofs li { grid-template-columns: 1fr; gap: 4px; }
  .be-citation-page .method-cards { grid-template-columns: repeat(2, 1fr); }
  .be-citation-page .cite-strip { grid-template-columns: 1fr; }
  .be-citation-page .cite-strip__cell { border-left: none; border-top: 1px solid var(--rule); padding: var(--s-4) 0; }
  .be-citation-page .cite-strip__cell:first-child { border-top: none; }
  .be-citation-page .rail-row { grid-template-columns: 1fr; gap: var(--s-2); }
  .be-citation-page .rail-row--head { display: none; }
  .be-citation-page .use-block__inner { grid-template-columns: 1fr; gap: var(--s-5); }
}

@media (max-width: 700px) {
  .be-citation-page .kpi-strip { grid-template-columns: 1fr; }
  .be-citation-page .source-strip { grid-template-columns: 60px 1fr; }
  .be-citation-page .source-strip__cell:nth-of-type(2),
  .be-citation-page .source-strip__cell:nth-of-type(3),
  .be-citation-page .source-strip__cell:nth-of-type(4) { display: none; }
  .be-citation-page .hub__inner { grid-template-columns: auto 1fr; gap: 12px; padding: 0 16px; }
  .be-citation-page .hero { padding: 48px 16px 40px; }
  .be-citation-page .page { padding: 0 16px 48px; }
  .be-citation-page .three-up { grid-template-columns: 1fr; }
  .be-citation-page .defs { grid-template-columns: 1fr; }
  .be-citation-page .method-cards { grid-template-columns: 1fr; }
  .be-citation-page .hbar { grid-template-columns: 1fr 36px 1fr; }
  .be-citation-page .hbar__val { display: none; }
}

/* ============================================================
   Phase A.3 — Benchmark template components
   ============================================================ */

/* Show the PHP citation header for benchmark pages; other page classes keep it hidden */
.be-citation-page[data-page-type="benchmark"] .be-citation-header {
  display: block;
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 40px 48px 32px;
}

.be-citation-page[data-page-type="benchmark"] .be-citation-header__title {
  font-family: var(--serif);
  font-size: clamp(26px, 3.5vw, 38px);
  font-weight: 400;
  line-height: 1.15;
  color: var(--ink);
  margin: 0 0 12px;
}

.be-citation-page[data-page-type="benchmark"] .be-citation-header__subhead {
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.55;
  color: var(--ink-2);
  margin: 0 0 20px;
  max-width: 70ch;
}

.be-citation-page[data-page-type="benchmark"] .be-citation-header__trust-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 20px;
  font-family: var(--mono);
  font-size: 10.5px;
  color: var(--ink-3);
  border-top: 1px solid var(--rule-2);
  padding-top: 12px;
}

.be-citation-page[data-page-type="benchmark"] .be-citation-header__trust-label {
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--ink-4);
  margin-right: 3px;
}

.be-citation-page[data-page-type="benchmark"] .be-citation-header__trust-item--methodology a {
  color: var(--accent);
  text-decoration: none;
}
.be-citation-page[data-page-type="benchmark"] .be-citation-header__trust-item--methodology a:hover {
  text-decoration: underline;
}

/* Suppress the duplicate subhead that Python writes into post content */
.be-citation-page[data-page-type="benchmark"] .be-citation-page__subhead {
  display: none;
}

/* Body wrapper */
.be-citation-page__body--benchmark {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 48px 72px;
}

/* ---- be-hero-stats ---- */
.be-citation-page .be-hero-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin: 0 0 40px;
}

/* ---- be-stat-card ---- */
.be-citation-page .be-stat-card {
  background: var(--paper);
  border: 1px solid var(--rule);
  border-radius: 5px;
  padding: 18px 20px 14px;
  display: flex;
  flex-direction: column;
}

.be-citation-page .be-stat-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}

.be-citation-page .be-stat-card__label {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink-3);
  line-height: 1.4;
  flex: 1;
}

.be-citation-page .be-stat-card__value {
  font-family: var(--serif);
  font-size: clamp(24px, 3vw, 34px);
  font-weight: 400;
  line-height: 1;
  color: var(--ink);
  margin: 4px 0 8px;
}

.be-citation-page .be-stat-card__interp {
  font-family: var(--sans);
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--ink-2);
  flex: 1;
}

.be-citation-page .be-stat-card__footer {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 10px;
  border-top: 1px solid var(--rule-2);
  margin-top: 12px;
  padding-top: 8px;
}

.be-citation-page .be-stat-card__period,
.be-citation-page .be-stat-card__source {
  font-family: var(--mono);
  font-size: 9.5px;
  letter-spacing: 0.04em;
  color: var(--ink-4);
}

.be-citation-page .be-stat-card__source {
  color: var(--ink-3);
}

/* ---- be-estimate-badge ---- */
.be-citation-page .be-estimate-badge {
  display: inline-block;
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 2px 6px;
  border-radius: 3px;
  background: var(--lavender-2);
  color: var(--ink-3);
  white-space: nowrap;
  flex-shrink: 0;
  line-height: 1.6;
}

.be-citation-page .be-estimate-badge--experimental {
  background: var(--warn-soft);
  color: var(--warn);
}

/* ---- be-source-strip ---- */
.be-citation-page .be-source-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 28px;
  padding: 12px 0;
  border-top: 1px solid var(--rule-2);
  border-bottom: 1px solid var(--rule-2);
  margin: 32px 0;
  font-family: var(--mono);
  font-size: 10.5px;
  color: var(--ink-3);
}

.be-citation-page .be-source-strip__item {
  display: flex;
  align-items: baseline;
  gap: 5px;
  flex-wrap: wrap;
}

.be-citation-page .be-source-strip__label {
  font-size: 9.5px;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--ink-4);
}

.be-citation-page .be-source-strip__source { color: var(--ink-2); font-weight: 600; }
.be-citation-page .be-source-strip__type   { color: var(--ink-3); }
.be-citation-page .be-source-strip__period { color: var(--ink-3); }
.be-citation-page .be-source-strip__checked { color: var(--ink-3); }
.be-citation-page .be-source-strip__status { color: var(--ink-4); }

/* ---- be-insight-block ---- */
.be-citation-page .be-insight-block {
  border-top: 2px solid var(--accent);
  padding-top: 20px;
  margin-top: 48px;
}

.be-citation-page .be-insight-block__heading {
  font-family: var(--mono);
  font-size: 10.5px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--accent);
  margin: 0 0 20px;
}

.be-citation-page .be-insight-block__body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: start;
}

.be-citation-page .be-insight-block__copy {
  font-family: var(--sans);
  font-size: 15px;
  line-height: 1.7;
  color: var(--ink-2);
}

.be-citation-page .be-insight-block__copy p { margin: 0 0 16px; }
.be-citation-page .be-insight-block__copy p:last-child { margin-bottom: 0; }

.be-citation-page .be-insight-block__visual {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.be-citation-page .be-insight-block__takeaway {
  background: var(--lavender-2);
  border-left: 3px solid var(--accent);
  padding: 16px 20px;
  font-family: var(--sans);
  font-size: 14px;
  line-height: 1.6;
  color: var(--ink-2);
}

.be-citation-page .be-insight-block__interpretation {
  font-family: var(--sans);
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--ink-3);
  padding: 12px 0;
  border-top: 1px solid var(--rule-2);
}

.be-citation-page .be-insight-block__cost-breakdown {
  font-family: var(--mono);
  font-size: 12px;
  line-height: 1.6;
  color: var(--ink-2);
  background: var(--lavender);
  border: 1px solid var(--rule);
  border-radius: 4px;
  padding: 12px 16px;
}

/* ---- Benchmark table section spacing ---- */
.be-citation-page .be-citation-page__benchmark-table-section {
  margin: 40px 0;
}

.be-citation-page .be-benchmark-table__caveat {
  font-family: var(--mono);
  font-size: 10.5px;
  color: var(--ink-3);
  margin-top: 12px;
  line-height: 1.5;
}

/* ---- Responsive: benchmark-specific ---- */
@media (max-width: 900px) {
  .be-citation-page .be-hero-stats { grid-template-columns: repeat(2, 1fr); }
  .be-citation-page .be-insight-block__body { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  .be-citation-page[data-page-type="benchmark"] .be-citation-header { padding: 28px 16px 20px; }
  .be-citation-page__body--benchmark { padding: 0 16px 48px; }
  .be-citation-page .be-hero-stats { grid-template-columns: 1fr; }
}

/* ---- be-faq ---- */
.be-citation-page .be-faq {
  margin: 48px 0 0;
  border-top: 2px solid var(--ink);
  padding-top: 32px;
}

.be-citation-page .be-faq__heading {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--ink-3);
  margin: 0 0 24px;
}

.be-citation-page .be-faq__item {
  border-bottom: 1px solid var(--rule);
  padding: 20px 0;
}

.be-citation-page .be-faq__item:last-child {
  border-bottom: none;
}

.be-citation-page .be-faq__q {
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 500;
  color: var(--ink);
  margin: 0 0 10px;
  line-height: 1.4;
}

.be-citation-page .be-faq__a {
  font-family: var(--serif);
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink-2);
  margin: 0;
}

@media (max-width: 700px) {
  .be-citation-page .be-faq { padding-top: 24px; }
  .be-citation-page .be-faq__q { font-size: 16px; }
}

/* ---- be-related-topics (parent → child cluster links) ---- */
.be-related-topics {
  margin: 40px 0 0;
  padding: 24px 0 0;
  border-top: 1px solid var(--rule);
}

.be-related-topics h2 {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--ink-3);
  margin: 0 0 16px;
}

.be-related-topics ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.be-related-topics li {
  padding: 10px 0;
  border-bottom: 1px solid var(--rule-2);
  font-family: var(--serif);
  font-size: 15px;
  color: var(--ink-2);
  line-height: 1.5;
}

.be-related-topics li:last-child { border-bottom: none; }

.be-related-topics a { color: var(--ink); text-decoration: underline; }

/* ---- be-hub-link (child → parent link) ---- */
.be-hub-link {
  font-family: var(--serif);
  font-size: 15px;
  color: var(--ink-2);
  background: var(--bg-2, #f5f5f0);
  border-left: 3px solid var(--ink-3);
  padding: 12px 16px;
  margin: 32px 0 0;
  border-radius: 2px;
}

.be-hub-link a { color: var(--ink); }
