/* ============================================================================
   ACQUIRY DEAL INTELLIGENCE — ARTICLE, FIGURES, CHARTS
   ========================================================================== */

/* ============================ LAYOUT SHELL ============================ */
/* Two-column grid, prose plus intelligence rail.

   The rail only renders once, in the final segment. Every earlier segment
   carried an empty .rail-spacer purely to hold the 352px column open, which
   cost roughly 390px of usable width across five sixths of the article for a
   panel that was not there.

   Segments containing a spacer now collapse to a single full-width column.
   The structural container widens to the full 1240px; the prose measure stays
   readable by capping text-level children rather than the column itself, so
   tables, charts, figures and callouts get the extra width and body copy does
   not. */
.shell{display:grid;grid-template-columns:minmax(0,1fr) var(--rail);gap:64px;padding:66px 0 40px}
.main{min-width:0;max-width:var(--measure)}

/* Full-width segments: no real rail present. */
.shell:has(> .rail-spacer){grid-template-columns:minmax(0,1fr);gap:0}
.shell:has(> .rail-spacer) > .rail-spacer{display:none}
.shell:has(> .rail-spacer) > .main{max-width:none}

/* Body copy runs the full container width, matching tables, charts and
   figures. Line length is long by editorial convention, so line-height is
   opened up to keep return sweeps trackable at this measure. */
.shell:has(> .rail-spacer) > .main > .sec > p,
.shell:has(> .rail-spacer) > .main > .sec > ul,
.shell:has(> .rail-spacer) > .main > .sec > ol,
.shell:has(> .rail-spacer) > .main > .sec > .dek,
.shell:has(> .rail-spacer) > .main > .sec > h3.sub-t,
.shell:has(> .rail-spacer) > .main > .sec > h4.sub-s,
.shell:has(> .rail-spacer) > .main > .sec > blockquote.pull,
.shell:has(> .rail-spacer) > .main > .sec > .sec-h{
  max-width:none;
}
.shell:has(> .rail-spacer) > .main > .sec > p,
.shell:has(> .rail-spacer) > .main > .sec > li{line-height:1.8}

/* Fallback for engines without :has(). Class is applied by site.js. */
.shell.is-wide{grid-template-columns:minmax(0,1fr);gap:0}
.shell.is-wide > .rail-spacer{display:none}
.shell.is-wide > .main{max-width:none}
.shell.is-wide > .main > .sec > p,
.shell.is-wide > .main > .sec > ul,
.shell.is-wide > .main > .sec > ol,
.shell.is-wide > .main > .sec > .dek,
.shell.is-wide > .main > .sec > h3.sub-t,
.shell.is-wide > .main > .sec > h4.sub-s,
.shell.is-wide > .main > .sec > blockquote.pull,
.shell.is-wide > .main > .sec > .sec-h{
  max-width:none;
}
.shell.is-wide > .main > .sec > p,
.shell.is-wide > .main > .sec > li{line-height:1.8}

/* ---- table of contents (sticky, above the article) ------------------ */
.toc{
  position:sticky;top:var(--hdr);z-index:90;background:rgba(255,255,255,.97);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line);
}
.toc-in{display:flex;align-items:center;gap:18px;height:50px}
.toc-lb{
  flex:0 0 auto;font-family:var(--mono);font-size:8.5px;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted);padding-right:16px;border-right:1px solid var(--line);
}
/* The rail is a horizontal scroller, so chips at either edge get clipped by the
   scroll box. A hard cut slices labels mid-word and reads as a rendering fault
   rather than as scrollable content. A mask fades them instead. A mask is used
   rather than overlay gradients because the rail is translucent over the page
   beneath it, so there is no fixed colour to fade to.
   --tf-l / --tf-r are driven from JS and collapse to 0 at each end, so the
   first and last chips are never dimmed when there is nothing left to scroll. */
.toc-sc{
  flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;
  --tf-l:0px;--tf-r:0px;
  scroll-snap-type:x proximity;scroll-padding-inline:30px;
  -webkit-mask-image:linear-gradient(to right,
    transparent 0,#000 var(--tf-l),
    #000 calc(100% - var(--tf-r)),transparent 100%);
  mask-image:linear-gradient(to right,
    transparent 0,#000 var(--tf-l),
    #000 calc(100% - var(--tf-r)),transparent 100%);
}
.toc-sc::-webkit-scrollbar{display:none}
.toc-ls{display:flex;gap:2px;white-space:nowrap}
.toc-ls a{
  display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:3px;
  font-family:var(--sans);font-size:12.5px;font-weight:500;color:var(--muted);
  text-decoration:none;transition:background .15s,color .15s;
  scroll-snap-align:start;
}
.toc-ls a:hover{background:var(--soft);color:var(--ink);text-decoration:none}
.toc-ls a.on{background:var(--navy);color:#fff}
.toc-ls a .n{font-family:var(--mono);font-size:9px;opacity:.6}
.toc-ls a.on .n{opacity:.75}
.toc-pr{flex:0 0 auto;display:flex;align-items:center;gap:9px;padding-left:16px;border-left:1px solid var(--line)}
.toc-pr .t{font-family:var(--mono);font-size:9px;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}
.toc-pr .bar{width:64px;height:3px;background:var(--line);border-radius:2px;overflow:hidden}
.toc-pr .bar i{display:block;height:100%;background:var(--blue);width:0;transition:width .1s linear}

/* ============================ SECTIONS ============================ */
.sec{margin:0 0 62px;scroll-margin-top:calc(var(--hdr) + 62px)}
.sec-h{margin-bottom:24px}
.sec-n{
  display:flex;align-items:center;gap:11px;font-family:var(--mono);font-size:10px;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--blue);margin-bottom:13px;
}
.sec-n .ln{width:26px;height:1px;background:var(--blue);flex:0 0 26px}
h2.sec-t{
  font-family:var(--display);font-size:33px;line-height:1.2;font-weight:600;color:var(--navy);
  letter-spacing:-.018em;margin:0 0 12px;
}
h3.sub-t{
  font-family:var(--sans);font-size:19px;font-weight:600;color:var(--navy);letter-spacing:-.012em;
  margin:40px 0 14px;
}
h4.sub-s{
  font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);margin:34px 0 12px;padding-bottom:9px;border-bottom:1px solid var(--line);
}
.dek{font-family:var(--body);font-style:italic;font-size:15px;color:var(--muted);margin:0 0 6px}

.main p{margin:0 0 19px;font-size:16.5px;line-height:1.72;color:var(--ink)}
.main p b,.main p strong{font-weight:600;color:var(--navy)}
.main p a{border-bottom:1px solid rgba(8,106,216,.32);text-decoration:none}
.main p a:hover{border-bottom-color:var(--blue);text-decoration:none}
.main .lead{font-size:18px;line-height:1.68}
.main .lead::first-letter{
  float:left;font-family:var(--display);font-size:64px;line-height:.82;font-weight:600;
  color:var(--navy);margin:5px 11px 0 0;
}
.main ul,.main ol{margin:0 0 20px;padding-left:22px}
.main li{font-size:16px;line-height:1.66;margin-bottom:9px;color:var(--ink)}
.main li::marker{color:var(--blue)}
.main li b{font-weight:600;color:var(--navy)}

blockquote.pull{
  margin:34px 0;padding:0 0 0 26px;border-left:3px solid var(--blue);
}
blockquote.pull p{
  font-family:var(--display);font-size:23px;line-height:1.42;font-style:italic;color:var(--navy);
  margin:0 0 11px;
}
blockquote.pull cite{
  display:block;font-family:var(--mono);font-size:9.5px;font-style:normal;letter-spacing:.13em;
  text-transform:uppercase;color:var(--muted);
}

/* ---- analysis / callout blocks -------------------------------------- */
.callout{
  margin:32px 0;border:1px solid var(--line);border-left:3px solid var(--blue);background:var(--soft-2);
  padding:22px 24px;
}
.callout .ch{display:flex;align-items:center;gap:12px;margin-bottom:13px;flex-wrap:wrap}
.callout .ct{font-family:var(--sans);font-size:15.5px;font-weight:600;color:var(--navy)}
.callout p{font-size:15.5px;line-height:1.66;margin:0 0 13px}
.callout p:last-child{margin-bottom:0}
.callout.warn{border-left-color:var(--amber);background:#fefbf4}
.callout.calc{border-left-color:#7a5cc4;background:#faf8fd}

/* ============================ TABLES ============================ */
.tbl{margin:30px 0;border:1px solid var(--line);overflow:hidden}
.tbl-h{
  display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 18px;
  background:var(--soft-2);border-bottom:1px solid var(--line);flex-wrap:wrap;
}
.tbl-h .t{font-family:var(--sans);font-size:14.5px;font-weight:600;color:var(--navy)}
.tbl table{font-size:14.5px}
.tbl th,.tbl td{padding:12px 18px;text-align:left;border-bottom:1px solid var(--line-2);vertical-align:top}
.tbl thead th{
  font-family:var(--mono);font-size:8.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);background:var(--paper);border-bottom:1px solid var(--line);white-space:nowrap;
}
.tbl tbody tr:last-child td{border-bottom:none}
.tbl tbody tr:hover{background:var(--soft-2)}
.tbl td.lbl{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--muted);width:34%;white-space:nowrap;
}
.tbl td.val{color:var(--ink)}
.tbl td.val b{font-weight:600;color:var(--navy)}
.tbl td.num{font-family:var(--mono);font-size:13.5px;text-align:right;white-space:nowrap;color:var(--navy)}
.tbl th.num{text-align:right}
.tbl tr.hl{background:var(--blue-pale)}
.tbl tr.hl:hover{background:#dfebfb}
.tbl tr.hl td{color:var(--navy)}
.tbl tr.hl td.lbl{color:var(--blue-dk)}
.na{
  display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10.5px;
  letter-spacing:.09em;text-transform:uppercase;color:#a8342a;
}
.na::before{content:'';width:14px;height:1.2px;background:#d4a9a3;flex:0 0 14px}
.tbl .sc-cell{white-space:nowrap}

/* ============================ FIGURES ============================ */
.fig{margin:38px 0;border:1px solid var(--line);background:var(--paper)}
.fig-wide{margin-left:calc((var(--rail) + 64px) * -0.5);width:calc(100% + (var(--rail) + 64px) * 0.5)}
/* .fig-wide breaks a figure out of the narrow prose column by pulling it left
   across half the rail gutter. In full-width segments there is no rail to
   recover, so the negative margin would push the figure past the container and
   get clipped by overflow-x. No chart currently opts in, but the guard keeps
   that from becoming a silent crop later. */
.shell.is-wide .fig-wide,
.shell:has(> .rail-spacer) .fig-wide{margin-left:0;width:100%}
.fig-head{
  display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:17px 20px;
  border-bottom:1px solid var(--line);background:var(--soft-2);flex-wrap:wrap;
}
.fig-head-l{min-width:0;flex:1}
.fig-head-r{flex:0 0 auto;display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.fig-title{font-family:var(--sans);font-size:16px;font-weight:600;color:var(--navy);letter-spacing:-.012em;line-height:1.35}
.fig-sub{font-size:13px;line-height:1.5;color:var(--muted);margin-top:6px;max-width:52em}
.fig-body{padding:22px 20px}
.fig-plot{position:relative}
.acq-svg{display:block;width:100%;height:auto;overflow:visible}
.fig-foot{padding:13px 20px 15px;border-top:1px solid var(--line-2);background:var(--soft-2)}
.fig-note{font-size:12px;line-height:1.55;color:var(--muted)}
.fig-note b{color:var(--ink);font-weight:600}
.fig-legend{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.lgi{display:flex;align-items:center;gap:7px}
.lgs{width:11px;height:11px;border-radius:1.5px;display:block;flex:0 0 11px}
.lgs.dash{border:1.4px dashed}
.lgs.as-line{height:2.4px;width:16px;border-radius:2px;flex:0 0 16px}
.lgt{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}

/* dark figure variant */
.fig-dark{background:var(--navy-deep);border-color:rgba(255,255,255,.14)}
.fig-dark .fig-head{background:rgba(0,0,0,.24);border-bottom-color:rgba(255,255,255,.12)}
.fig-dark .fig-title{color:#fff}
.fig-dark .fig-sub{color:rgba(255,255,255,.55)}
.fig-dark .fig-foot{background:rgba(0,0,0,.24);border-top-color:rgba(255,255,255,.1)}
.fig-dark .fig-note{color:rgba(255,255,255,.5)}
.fig-dark .fig-note b{color:rgba(255,255,255,.82)}
.fig-dark .lgt{color:rgba(255,255,255,.5)}

/* ---- figure controls (toggles) -------------------------------------- */
.fc{display:inline-flex;border:1px solid var(--line);border-radius:3px;overflow:hidden;background:var(--paper)}
.fc button{
  padding:6px 12px;font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.11em;
  text-transform:uppercase;color:var(--muted);border-right:1px solid var(--line);transition:.15s;
}
.fc button:last-child{border-right:none}
.fc button.on{background:var(--navy);color:#fff}
.fc button:hover:not(.on){background:var(--soft)}

/* ---- svg text classes ---------------------------------------------- */
.ax-t{font-family:'IBM Plex Mono',monospace;font-size:10px;fill:#7c8798}
.ax-t.dk{fill:rgba(255,255,255,.42)}
.ax-l{font-family:'IBM Plex Mono',monospace;font-size:8.5px;letter-spacing:.13em;fill:#8b96a6}
.ref-t{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.1em;fill:#c98a12;font-weight:600}
.band-t{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.08em;fill:#b08a3a}
.ann-t{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.1em;fill:#c98a12}

.dn-v{font-family:'Newsreader',serif;font-size:32px;font-weight:700;fill:#0d1b2e;letter-spacing:-.03em}
.dn-k{font-family:'IBM Plex Mono',monospace;font-size:8.5px;letter-spacing:.14em;fill:#7c8798}
.fig-dark .dn-v{fill:#fff}.fig-dark .dn-k{fill:rgba(255,255,255,.5)}
.dn-lb{font-family:'Poppins',sans-serif;font-size:13px;font-weight:500;fill:#1a2332}
.dn-lv{font-family:'IBM Plex Mono',monospace;font-size:12.5px;font-weight:600;fill:#0d1b2e}
.dn-lv.off{fill:#a8b3c2;font-weight:400}
/* Long absent-value strings ("Not referenced", "Not disclosed") drop a size so
   they stay inside their own track rather than running into the label. */
.dn-lv.lng{font-size:10.5px;letter-spacing:-.005em}
.fig-dark .dn-lb{fill:rgba(255,255,255,.85)}.fig-dark .dn-lv{fill:#fff}
.dn-seg{transition:opacity .15s}
.dn-seg:hover{opacity:.82}

.pie-lb{font-family:'Poppins',sans-serif;font-size:12px;font-weight:600;fill:#0d1b2e}
.pie-lv{font-family:'IBM Plex Mono',monospace;font-size:10.5px;fill:#5a6577}
.pie-tv{font-family:'Newsreader',serif;font-size:22px;font-weight:700;fill:#0d1b2e;letter-spacing:-.03em}
.pie-tk{font-family:'IBM Plex Mono',monospace;font-size:7.5px;letter-spacing:.15em;fill:#7c8798}
.pie-seg{transition:opacity .15s}
.pie-seg:hover{opacity:.85}

.wf-v{font-family:'Newsreader',serif;font-size:17px;font-weight:700;fill:#0d1b2e;letter-spacing:-.025em}
.wf-k{font-family:'Poppins',sans-serif;font-size:11.5px;font-weight:500;fill:#1a2332}
.wf-src{font-family:'IBM Plex Mono',monospace;font-size:7.5px;letter-spacing:.13em}
.wf-src.src-r{fill:#0757ae}.wf-src.src-c{fill:#8a6413}.wf-src.src-p{fill:#7c8798}.wf-src.src-i{fill:#5c3f9e}
.wf-bar{transition:opacity .15s}.wf-bar:hover{opacity:.85}

.bh-k{font-family:'Poppins',sans-serif;font-size:12.5px;font-weight:500;fill:#1a2332}
.bh-k.hl{font-weight:700;fill:#086ad8}
.bh-s{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.07em;fill:#8b96a6}
.bh-v{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;fill:#0d1b2e}
.bh-v.hl{fill:#086ad8;font-weight:700}
.bh-bar{transition:opacity .15s}.bh-bar:hover{opacity:.85}

.bv-v{font-family:'Newsreader',serif;font-size:19px;font-weight:700;fill:#0d1b2e;letter-spacing:-.028em}
.bv-k{font-family:'Poppins',sans-serif;font-size:11.5px;font-weight:500;fill:#1a2332}
.bv-b{font-family:'Rubik',sans-serif;font-size:10.5px;fill:#7c8798}
.bv-src{font-family:'IBM Plex Mono',monospace;font-size:7.5px;letter-spacing:.13em}
.bv-src.src-r{fill:#0757ae}.bv-src.src-p{fill:#7c8798}.bv-src.src-c{fill:#8a6413}
.bv-bar{transition:opacity .15s}.bv-bar:hover{opacity:.85}

.vp-lb{font-family:'Poppins',sans-serif;font-size:10.5px;font-weight:600;fill:#5a6577}
.vp-lv{font-family:'IBM Plex Mono',monospace;font-size:10px;fill:#8b96a6}
.vp-dl{font-family:'Poppins',sans-serif;font-size:10.5px;font-weight:600;fill:#0d1b2e}
.vp-dv{font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:600;fill:#086ad8}
.vp-gap{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.1em;fill:#8b96a6}
.vp-gap2{font-family:'IBM Plex Mono',monospace;font-size:8px;letter-spacing:.1em;fill:#a8b3c2}

.sc-dot{transition:r .15s}
.sc-dot:hover{r:9}
.sc-lb{font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.06em;fill:#7c8798}
.sc-lb.hl{font-family:'Poppins',sans-serif;font-size:11.5px;font-weight:700;letter-spacing:0;fill:#086ad8}

/* ---- risk quadrant map --------------------------------------------- */
.rq-num{font-family:'IBM Plex Mono',monospace;font-size:10px;font-weight:700;fill:#fff}
.rq-lb{font-family:'Poppins',sans-serif;font-size:10.5px;font-weight:600;fill:#1a2332}
.rq-z{font-family:'IBM Plex Mono',monospace;font-size:8px;letter-spacing:.14em;fill:#a4b0bf}
.rq-z.hot{fill:#c0392b;opacity:.62}
.rq-pt{cursor:crosshair}
.rq-dot{transition:r .12s}
.rq-pt:hover .rq-dot{r:13}

.tm-cell{transition:opacity .15s}
.tm-cell:hover{opacity:.86}
.tm-n{font-family:'Poppins',sans-serif;font-size:14px;font-weight:600;fill:#fff}
.tm-n.sm{font-size:11px}
.tm-n.xs{font-size:9.5px;letter-spacing:.02em}
/* Rotated label for tiles too narrow for horizontal text. */
.tm-n.rot{font-size:10.5px;letter-spacing:.01em}
.tm-y{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.11em;fill:rgba(255,255,255,.72)}
.tm-y.xs{font-size:8px;letter-spacing:.1em}
.tm-c{font-family:'IBM Plex Mono',monospace;font-size:7.5px;letter-spacing:.14em;fill:rgba(255,255,255,.5)}

.pc-last{font-family:'Poppins',sans-serif;font-size:13px;font-weight:700;fill:#fff}
.pc-ann{font-family:'IBM Plex Mono',monospace;font-size:8.5px;letter-spacing:.09em;fill:rgba(255,255,255,.5)}

.ms-d{font-family:'IBM Plex Mono',monospace;font-size:9px;font-weight:600;letter-spacing:.12em;fill:#7c8798}
.ms-d.cur{fill:#086ad8}
.ms-l{font-family:'Poppins',sans-serif;font-size:11.5px;font-weight:500;fill:#1a2332}
.ms-l.cur{font-weight:700;fill:#0d1b2e}
.ms-dot{transition:r .15s}

.gg-v{font-family:'Newsreader',serif;font-size:20px;font-weight:700;fill:#0d1b2e;letter-spacing:-.02em}

/* ---- heatmap -------------------------------------------------------- */
/* The capability matrix cannot compress below 660px and stay readable, so it
   scrolls horizontally on narrow screens. `max-width:100%` and `min-width:0` are
   both required: without them the 660px table propagated its intrinsic width up
   through the flex/grid ancestors and forced the whole document to a 630px
   layout viewport on phones, which silently shrank every other section. */
.hm-wrap{
  overflow-x:auto;max-width:100%;min-width:0;
  -webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;
}
.hm{font-size:13px;min-width:660px}
.hm th,.hm td{border:1px solid var(--line)}
.hm-corner{background:var(--paper);border-top:none!important;border-left:none!important}
.hm-ax{
  height:112px;vertical-align:bottom;padding:0 0 9px;background:var(--paper);width:64px;
}
.hm-ax span{
  display:block;writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;
  font-family:var(--mono);font-size:9px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);margin:0 auto;
}
.hm-row{
  text-align:left;padding:0 14px 0 12px;font-family:var(--sans);font-size:13px;font-weight:500;
  color:var(--ink);white-space:nowrap;background:var(--soft-2);
}
.hm tr.hl .hm-row{background:var(--blue-pale);color:var(--blue-dk);font-weight:700}
.hm-c{padding:0;height:38px;position:relative;cursor:crosshair}
.hm-d{
  position:absolute;inset:3px;border-radius:1px;transform:scale(.2);opacity:0;
  transition:transform .3s cubic-bezier(.2,.9,.3,1),opacity .3s;
}
.hm-d.on{transform:scale(1);opacity:1}
.hm-c.s0 .hm-d{background:var(--soft)}
.hm-c.s1 .hm-d{background:#c2d6f6}
.hm-c.s2 .hm-d{background:#6b9fe8}
.hm-c.s3 .hm-d{background:var(--blue)}
.hm tr.hl .hm-c.s3 .hm-d{background:var(--blue-dk)}
.hm-c:hover .hm-d{outline:2px solid var(--navy);outline-offset:-1px}
.hm-key{display:flex;gap:18px;margin-top:14px;flex-wrap:wrap}
.hm-ki{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.hm-ks{width:11px;height:11px;border-radius:1px;display:block}
.hm-ks.s0{background:var(--soft);border:1px solid var(--line)}
.hm-ks.s1{background:#c2d6f6}.hm-ks.s2{background:#6b9fe8}.hm-ks.s3{background:var(--blue)}

/* ---- gauges --------------------------------------------------------- */
.gg-grid{display:grid;gap:0}
.gg{padding:20px 0;border-bottom:1px solid var(--line)}
.gg:first-child{padding-top:2px}
.gg:last-child{border-bottom:none;padding-bottom:2px}
.gg-top{display:flex;gap:20px;align-items:center}
.gg-arc{flex:0 0 128px;width:128px;cursor:crosshair}
.gg-meta{flex:1;min-width:0}
.gg-n{font-family:var(--sans);font-size:16px;font-weight:600;color:var(--navy);letter-spacing:-.012em}
.gg-c{font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;margin-top:6px}
/* Tier colours match the gauge arc fill exactly: green >=4, amber 3, red <3. */
.gg-c.hi{color:#1e7a4d}
.gg-c.mid{color:#b07d1a}
.gg-c.lo{color:#c0392b}
.gg-c::before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:currentColor;margin-right:7px;vertical-align:1px}
.gg-h{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.gg-b{font-size:14.5px;line-height:1.6;color:var(--muted);margin-top:11px;padding-left:148px}

/* ---- proportion bars ------------------------------------------------ */
.pb-grid{display:grid;gap:0}
.pb-row{padding:18px 0;border-bottom:1px solid var(--line)}
.pb-row:first-child{padding-top:0}
.pb-row:last-child{border-bottom:none;padding-bottom:0}
.pb-top{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:11px}
.pb-k{font-family:var(--sans);font-size:14.5px;font-weight:600;color:var(--navy)}
.pb-v{font-family:var(--mono);white-space:nowrap}
.pb-v .n{font-size:15px;font-weight:600;color:var(--navy)}
.pb-v .d{font-size:11px;color:var(--muted)}
.pb-track{position:relative;height:12px;background:var(--soft);border-radius:2px;overflow:visible;cursor:crosshair}
.pb-fill{height:100%;width:0;background:var(--blue);border-radius:2px}
.pb-fill.acc{background:linear-gradient(90deg,var(--blue),var(--blue-soft))}
/* A bar that breaches parity is coloured as a warning, not as a positive. */
.pb-fill.brk{background:linear-gradient(90deg,var(--blue) 0%,var(--blue) 62%,#c0392b 100%)}
.pb-mk{position:absolute;top:-4px;bottom:-4px;width:1.5px;background:var(--amber)}
.pb-mk::after{
  content:attr(data-l);position:absolute;left:6px;top:-2px;font-family:var(--mono);font-size:8.5px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--amber);white-space:nowrap;
}
/* Parity (100 per cent) line, drawn only when the scale runs past it. */
.pb-par{position:absolute;top:-5px;bottom:-5px;width:1px;background:#94a3b5;z-index:2}
/* Label sits BELOW the track. Above the track it collides with the row value. */
.pb-par::after{
  content:attr(data-l);position:absolute;left:5px;top:100%;margin-top:2px;font-family:var(--mono);
  font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:#8b96a6;white-space:nowrap;
}
/* Deliberately empty track for figures where the value is not in the public
   record. Hatched so it never reads as a zero value or a failed render. */
.pb-absent{
  background-image:repeating-linear-gradient(135deg,#e8edf3 0 5px,#f7f9fb 5px 10px);
  background-color:transparent;border:1px solid var(--line);height:10px;
}
.pb-flag{
  display:inline-flex;align-items:center;gap:7px;margin-top:9px;font-family:var(--mono);
  font-size:9.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:#a8342a;
}
.pb-flag::before{content:'';width:16px;height:1.4px;background:#c0392b;flex:0 0 16px}
.pb-b{font-size:13.5px;line-height:1.55;color:var(--muted);margin-top:11px}

/* ---- editorial figure images --------------------------------------- */
figure.ef{margin:38px 0}
figure.ef .fw{border:1px solid var(--line);overflow:hidden;background:var(--navy-deep)}
figure.ef img{display:block;width:100%;height:auto}
figure.ef figcaption{display:flex;gap:14px;margin-top:11px;font-size:12px;line-height:1.55;color:var(--muted)}
figure.ef figcaption b{
  flex:0 0 auto;font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--blue);padding-top:2px;
}

/* ============================ TOOLTIP ============================ */
.acq-tip{
  position:fixed;z-index:400;pointer-events:none;opacity:0;transition:opacity .12s;
  background:var(--navy-deep);color:#fff;border:1px solid rgba(255,255,255,.15);
  border-radius:3px;padding:11px 13px;max-width:308px;box-shadow:0 14px 38px rgba(7,17,29,.4);
}
.acq-tip.on{opacity:1}
.acq-tip .th{font-family:var(--sans);font-size:13px;font-weight:600;color:#fff;line-height:1.35}
.acq-tip .ts{font-family:var(--mono);font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--blue-soft);margin-top:4px}
.acq-tip .tr{display:flex;justify-content:space-between;gap:16px;margin-top:7px;align-items:baseline}
.acq-tip .tk{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.acq-tip .tv{font-family:var(--mono);font-size:11.5px;color:rgba(255,255,255,.9);text-align:right}
.acq-tip .tv.st{font-family:var(--sans);font-size:14px;font-weight:700;color:#fff}
.acq-tip .tn{
  font-size:11.5px;line-height:1.5;color:rgba(255,255,255,.6);margin-top:9px;padding-top:9px;
  border-top:1px solid rgba(255,255,255,.13);
}
.acq-tip .tsrc{
  display:inline-block;margin-top:9px;font-family:var(--mono);font-size:7.5px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;padding:3px 7px;border-radius:2px;
}
.acq-tip .tsrc.src-r{background:rgba(74,158,255,.2);color:#9ecbff}
.acq-tip .tsrc.src-c{background:rgba(201,138,18,.22);color:#e5bb62}
.acq-tip .tsrc.src-p{background:rgba(255,255,255,.12);color:rgba(255,255,255,.7)}
.acq-tip .tsrc.src-i{background:rgba(140,110,220,.24);color:#c3b0f0}
.acq-tip .tsrc.src-n{background:rgba(192,57,43,.24);color:#f0a79e}
