/* Guides (bearings/guides.py): layout, callouts, checklists, tools.
   Builds on site.css tokens; every class is prefixed gd- or lives inside
   .gd-article so nothing leaks into other pages. */

.gd-body { --gd-side: 16rem; --gd-gap: 3rem; }

/* reading progress under the sticky header */
.gd-progress { position:sticky; top:4.25rem; z-index:39; height:3px; background:transparent; }
.gd-progress i { display:block; height:100%; width:0; background:var(--grad); transition:width .1s linear; }
@media (max-width:52rem) { .gd-progress { top:3.6rem; } }

/* hero */
.gd-hero .kicker a { color:inherit; text-decoration:none; }
.gd-hero .kicker a:hover { text-decoration:underline; }
.gd-hero h1 { max-width:24ch; }
.gd-meta { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:1.1rem; }
.gd-chip { font:600 .76rem/1 var(--body); color:var(--ink2); background:rgba(255,255,255,.8);
  border:1px solid var(--line); border-radius:var(--r-pill); padding:.42rem .7rem; }
.gd-chip.time { color:var(--brand); border-color:var(--purple-100); background:var(--purple-50); }

/* two columns: sticky contents + article */
.gd { display:grid; grid-template-columns:var(--gd-side) minmax(0, 1fr); gap:var(--gd-gap);
  padding-top:2.2rem; padding-bottom:2rem; align-items:start; }
.gd-side { position:sticky; top:5.4rem; display:flex; flex-direction:column; gap:1rem;
  max-height:calc(100vh - 6rem); overflow:auto; scrollbar-width:thin; }
.gd-side-h { font:700 .72rem/1 var(--body); text-transform:uppercase; letter-spacing:.12em;
  color:var(--hint); margin:0 0 .6rem; }
.gd-toc { list-style:none; margin:0; padding:0; font-size:.88rem; }
.gd-toc ol { list-style:none; margin:.15rem 0 .3rem .85rem; padding:0; border-left:1px solid var(--line); }
.gd-toc li { margin:0; }
.gd-toc a { display:block; color:var(--ink2); text-decoration:none; padding:.3rem .6rem;
  border-left:2px solid transparent; margin-left:-1px; border-radius:0 6px 6px 0; line-height:1.3; }
.gd-toc ol a { font-size:.82rem; padding:.22rem .6rem; color:var(--muted); }
.gd-toc a:hover { color:var(--brand); background:var(--purple-50); }
.gd-toc a.here { color:var(--brand); border-left-color:var(--brand); background:var(--purple-50); font-weight:600; }
.gd-toc-mobile { display:none; }
.gd-live { background:var(--grad-soft); border:1px solid var(--purple-100); border-radius:var(--r-md);
  padding:1rem 1.05rem; font-size:.9rem; color:var(--ink2); }
.gd-live p { margin:0 0 .6rem; }
.gd-live-h { font:700 .72rem/1 var(--body); text-transform:uppercase; letter-spacing:.12em; color:var(--brand); }
.gd-live b { font:800 1.5rem/1 var(--display); color:var(--brand); }

@media (max-width:64rem) {
  .gd { grid-template-columns:minmax(0, 1fr); gap:0; }
  .gd-side { position:static; max-height:none; overflow:visible; order:2; margin-top:2rem; }
  .gd-contents { display:none; }
  .gd-toc-mobile { display:block; margin:0 0 1.6rem; border:1px solid var(--line); border-radius:var(--r-md);
    background:var(--paper2); }
  .gd-toc-mobile summary { cursor:pointer; padding:.8rem 1rem; font-weight:700; color:var(--ink); }
  .gd-toc-mobile .gd-toc { padding:0 1rem .8rem; }
}

/* ---------- article typography ---------- */
.gd-article { max-width:46rem; min-width:0; font-size:1.02rem; line-height:1.65; color:var(--ink2); }
.gd-article > p:first-of-type { font-size:1.08rem; color:var(--ink); }
.gd-article h2 { font-size:1.55rem; margin:2.6rem 0 .9rem; color:var(--ink); scroll-margin-top:5.5rem;
  padding-top:.4rem; }
.gd-article h2::before { content:""; display:block; width:2.4rem; height:.28rem; border-radius:3px;
  background:var(--grad); margin-bottom:.7rem; }
.gd-article h3 { font-size:1.15rem; margin:1.9rem 0 .5rem; color:var(--ink); scroll-margin-top:5.5rem; }
.gd-article h4 { font-size:1rem; margin:1.4rem 0 .35rem; color:var(--ink); }
.gd-article p { margin:0 0 1rem; }
.gd-article ul, .gd-article ol { margin:0 0 1.1rem; padding-left:1.35rem; }
.gd-article li { margin:.25rem 0; }
.gd-article li > p { margin:.25rem 0; }
.gd-article strong { color:var(--ink); }
.gd-article a[target="_blank"]::after { content:"\2197"; font-size:.7em; margin-left:.15em; vertical-align:super; opacity:.7; }
.gd-article hr { border:0; border-top:1px solid var(--line); margin:2rem 0; }
.gd-article blockquote { margin:1.2rem 0; padding:.2rem 0 .2rem 1.1rem; border-left:3px solid var(--pink-100);
  color:var(--ink); font-size:1.05rem; }
.gd-article blockquote p { margin:0 0 .4rem; }
.gd-article code { font-family:ui-monospace, Menlo, Consolas, monospace; font-size:.88em; background:var(--paper2);
  border:1px solid var(--line); border-radius:4px; padding:.05em .3em; color:var(--ink); }
.gd-article pre { position:relative; background:var(--paper2); border:1px solid var(--line); border-radius:var(--r-md);
  padding:1rem 1.1rem; margin:0 0 1.2rem; overflow:auto; font-size:.86rem; line-height:1.5; }
.gd-article pre code { background:none; border:0; padding:0; font-size:inherit; white-space:pre-wrap; }
.gd-copy { position:absolute; top:.5rem; right:.5rem; font:600 .72rem/1 var(--body); color:var(--brand);
  background:#fff; border:1px solid var(--purple-100); border-radius:var(--r-pill); padding:.35rem .65rem; cursor:pointer; }
.gd-copy:hover { background:var(--purple-50); }
.gd-article dl { margin:0 0 1.2rem; }
.gd-article dt { font-weight:700; color:var(--ink); margin-top:.7rem; }
.gd-article dd { margin:.1rem 0 0 1rem; }

/* tables: full width, scroll on phones, compact */
.gd-article .scroll { margin:0 0 1.3rem; border-radius:var(--r-md); }
.gd-article table { font-size:.88rem; }
.gd-article th { position:sticky; top:0; }
.gd-article td { color:var(--ink2); }
.gd-article td:first-child { color:var(--ink); font-weight:600; }
.gd-article tr:last-child td { border-bottom:0; }

/* sources (footnotes) */
.gd-article .sources { margin-top:2.5rem; font-size:.86rem; color:var(--muted); }
.gd-article .sources ol { padding-left:1.4rem; }
.gd-article .sources li { margin:.35rem 0; overflow-wrap:anywhere; }
.gd-article .sources li p { margin:0; display:inline; }
.gd-article .sources a.footnote-backref { text-decoration:none; margin-left:.3rem; }
.gd-article sup { line-height:0; }
.gd-article a.footnote-ref { text-decoration:none; font-weight:700; font-size:.78em; padding:0 .15em; color:var(--brand); }

/* ---------- callouts (markdown "!!! type" -> .callout.co-type) ---------- */
.gd-article .callout { position:relative; margin:1.4rem 0; padding:1rem 1.15rem .3rem; border-radius:var(--r-md);
  border:1px solid var(--line); border-left-width:4px; background:var(--paper2); font-size:.97rem; }
.gd-article .callout::before { content:attr(data-label); display:block; font:700 .7rem/1 var(--body);
  text-transform:uppercase; letter-spacing:.12em; color:var(--hint); margin-bottom:.5rem; }
.gd-article .admonition-title { font-family:var(--display); font-weight:700; color:var(--ink); margin:0 0 .5rem; font-size:1.02rem; }
.gd-article .callout p, .gd-article .callout li { margin-bottom:.7rem; }
.gd-article .callout > :last-child { margin-bottom:.7rem; }
.gd-article .callout .scroll { margin-bottom:.9rem; }
.gd-article .callout.co-tip, .gd-article .callout.co-do, .gd-article .callout.co-strong
  { border-left-color:var(--ok); background:var(--ok-soft); }
.gd-article .callout.co-tip::before, .gd-article .callout.co-do::before, .gd-article .callout.co-strong::before { color:var(--ok); }
.gd-article .callout.co-warning, .gd-article .callout.co-weak { border-left-color:var(--soon); background:var(--soon-soft); }
.gd-article .callout.co-warning::before, .gd-article .callout.co-weak::before { color:var(--soon); }
.gd-article .callout.co-reality { border-left-color:var(--brand-deep); background:var(--pink-50); }
.gd-article .callout.co-reality::before { color:var(--brand-deep); }
.gd-article .callout.co-assessor, .gd-article .callout.co-investor, .gd-article .callout.co-buyer, .gd-article .callout.co-nw
  { border-left-color:var(--local); background:var(--local-soft); }
.gd-article .callout.co-assessor::before, .gd-article .callout.co-investor::before, .gd-article .callout.co-buyer::before,
.gd-article .callout.co-nw::before { color:var(--local); }
.gd-article .callout.co-quote { border-left-color:var(--brand); background:#fff; }
.gd-article .callout.co-quote::before { color:var(--brand); }
.gd-article .callout.co-quote p { color:var(--ink); font-size:1.02rem; }
.gd-article .callout.co-hypothetical { border-style:dashed; border-left-style:solid; border-left-color:var(--warn); background:var(--warn-soft); }
.gd-article .callout.co-hypothetical::before { color:var(--warn); }
.gd-article .callout.co-example { border-left-color:var(--brand); background:var(--purple-50); }
.gd-article .callout.co-example::before { color:var(--brand); }
.gd-article .callout.co-glance { border:0; background:var(--grad-ink); color:#fff; padding:1.2rem 1.35rem .6rem;
  box-shadow:var(--shadow-sm); }
.gd-article .callout.co-glance::before, .gd-article .callout.co-glance .admonition-title { color:#fff; }
.gd-article .callout.co-glance p, .gd-article .callout.co-glance li, .gd-article .callout.co-glance strong { color:#fff; }
.gd-article .callout.co-glance a { color:#fff; }
.gd-article .callout.co-glance ul { padding-left:1.2rem; }
.gd-article .callout.co-glance li { margin:.4rem 0; }
.gd-article .callout.co-stats, .gd-article .callout.co-numbers { background:#fff; }
.gd-article .callout.co-stats ul, .gd-article .callout.co-numbers ul { list-style:none; padding:0; margin:0 0 .6rem; display:grid;
  grid-template-columns:repeat(auto-fit, minmax(10rem, 1fr)); gap:.6rem; }
.gd-article .callout.co-stats li, .gd-article .callout.co-numbers li { margin:0; background:var(--paper2); border:1px solid var(--line); border-radius:var(--r-sm);
  padding:.75rem .85rem; font-size:.84rem; color:var(--hint); line-height:1.35; }
.gd-article .callout.co-stats li strong, .gd-article .callout.co-numbers li strong { display:block; font:800 1.45rem/1.1 var(--display); color:var(--brand);
  margin-bottom:.25rem; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.gd-article .callout.co-try { border-left-color:var(--brand); background:#fff; }

/* weak/strong side by side */
.gd-article .rewrite { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; margin:1.4rem 0; }
.gd-article .rewrite .callout { margin:0; }
@media (max-width:40rem) { .gd-article .rewrite { grid-template-columns:1fr; } }

/* checklists that remember */
.gd-article li.task { list-style:none; margin-left:-1.35rem; }
.gd-article li.task label { display:flex; gap:.65rem; align-items:flex-start; cursor:pointer; padding:.35rem .5rem;
  border-radius:8px; }
.gd-article li.task label:hover { background:var(--purple-50); }
.gd-article li.task input { width:1.15rem; height:1.15rem; margin:.2rem 0 0; accent-color:var(--brand); flex:none; }
.gd-article li.task input:checked + .task-text { color:var(--hint); text-decoration:line-through; text-decoration-color:var(--line2); }
.gd-checklist-bar { display:flex; align-items:center; gap:.8rem; font-size:.84rem; color:var(--hint); margin:-.4rem 0 1rem; }
.gd-checklist-bar .bar { flex:1; height:6px; background:var(--line); border-radius:3px; overflow:hidden; max-width:14rem; }
.gd-checklist-bar .bar i { display:block; height:100%; background:var(--grad); width:0; transition:width .2s; }
.gd-checklist-bar button { font:600 .78rem/1 var(--body); color:var(--brand); background:none; border:0; cursor:pointer; padding:.2rem .3rem; }

/* ---------- small tools (guides.js data-tool) ---------- */
.gd-tool { background:#fff; border:1px solid var(--purple-100); border-radius:var(--r-lg); padding:1.1rem 1.2rem 1rem;
  margin:1.4rem 0 1.6rem; box-shadow:var(--shadow-sm); font-size:.92rem; }
.gd-tool h4 { margin:0 0 .25rem; font-size:1.05rem; }
.gd-tool .gd-tool-lede { color:var(--muted); margin:0 0 .9rem; font-size:.88rem; }
.gd-tool .f { display:grid; grid-template-columns:repeat(auto-fit, minmax(11rem, 1fr)); gap:.7rem .9rem; margin-bottom:.9rem; }
.gd-tool label { display:flex; flex-direction:column; gap:.25rem; font-size:.8rem; font-weight:600; color:var(--ink2); }
.gd-tool input, .gd-tool select { font:inherit; font-size:.95rem; padding:.45rem .55rem; border:1px solid var(--line2);
  border-radius:8px; background:#fff; color:var(--ink); min-width:0; width:100%; box-sizing:border-box; }
.gd-tool input[type=range] { padding:0; }
.gd-tool .out { background:var(--paper2); border-radius:var(--r-sm); padding:.8rem .95rem; color:var(--ink); }
.gd-tool .out b { font:800 1.35rem/1.1 var(--display); color:var(--brand); font-variant-numeric:tabular-nums; }
.gd-tool .out .row { display:flex; justify-content:space-between; gap:1rem; padding:.3rem 0; border-bottom:1px solid var(--line); }
.gd-tool .out .row:last-child { border-bottom:0; }
.gd-tool .out .row span:last-child { font-weight:700; font-variant-numeric:tabular-nums; color:var(--ink); }
.gd-tool .out .big { font:800 1.6rem/1.1 var(--display); color:var(--brand); display:block; margin:.1rem 0 .4rem; }
.gd-tool .out .good { color:var(--ok); } .gd-tool .out .warn { color:var(--warn); } .gd-tool .out .bad { color:var(--bad); }
.gd-tool table { font-size:.84rem; margin:.5rem 0 0; }
.gd-tool .note { font-size:.8rem; color:var(--hint); margin:.6rem 0 0; }
.gd-tool button.add { font:600 .78rem/1 var(--body); color:var(--brand); background:var(--purple-50); border:1px solid var(--purple-100);
  border-radius:var(--r-pill); padding:.4rem .7rem; cursor:pointer; }

/* footer of the article */
.gd-fine { font-size:.85rem; color:var(--hint); border-top:1px solid var(--line); padding-top:1rem; margin-top:2.4rem; }
.gd-pager { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; margin:1.6rem 0; }
.gd-pager a { display:block; text-decoration:none; color:var(--ink); border:1px solid var(--line); border-radius:var(--r-md);
  padding:.85rem 1rem; font-weight:700; line-height:1.3; background:var(--paper); }
.gd-pager a:hover { border-color:var(--brand); color:var(--brand); }
.gd-pager a small { display:block; font:600 .7rem/1 var(--body); text-transform:uppercase; letter-spacing:.1em; color:var(--hint); margin-bottom:.35rem; }
.gd-pager a.next { text-align:right; }
@media (max-width:40rem) { .gd-pager { grid-template-columns:1fr; } .gd-pager a.next { text-align:left; } }
.gd-related h2, .gd-cta h2 { font-size:1.25rem; margin:0 0 .9rem; }
.gd-article .gd-related h2::before, .gd-article .gd-cta h2::before { display:none; }
.gd-related, .gd-cta { margin-top:2.2rem; }
.gd-cta-row { display:flex; flex-wrap:wrap; gap:.6rem; }

/* ---------- index ---------- */
.gd-index { padding-top:1.8rem; padding-bottom:2rem; }
.gd-intro { max-width:48rem; font-size:1.05rem; color:var(--ink2); line-height:1.65; }
.gd-intro .callout { margin:1.2rem 0; padding:1rem 1.15rem .3rem; border-radius:var(--r-md); border:1px solid var(--line);
  border-left:4px solid var(--brand-deep); background:var(--pink-50); }
.gd-intro .admonition-title { font-weight:700; color:var(--ink); margin:0 0 .4rem; }
.gd-intro .callout p { margin-bottom:.7rem; }
.gd-intro .callout.co-stats, .gd-intro .callout.co-numbers { background:#fff; border-left-color:var(--brand); }
.gd-intro .callout.co-stats ul, .gd-intro .callout.co-numbers ul { list-style:none; padding:0; margin:0 0 .6rem; display:grid;
  grid-template-columns:repeat(auto-fit, minmax(10rem, 1fr)); gap:.6rem; }
.gd-intro .callout.co-stats li, .gd-intro .callout.co-numbers li { margin:0; background:var(--paper2); border:1px solid var(--line); border-radius:var(--r-sm);
  padding:.75rem .85rem; font-size:.84rem; color:var(--hint); line-height:1.35; }
.gd-intro .callout.co-stats li strong, .gd-intro .callout.co-numbers li strong { display:block; font:800 1.45rem/1.1 var(--display); color:var(--brand); margin-bottom:.25rem; }
.gd-intro .scroll { margin:0 0 1.2rem; }
.gd-group { margin-top:2.2rem; }
.gd-index .gd-cta { margin-top:3rem; }
.gd-index h2 { color:var(--ink); }
.gd-group h2 { font-size:1.3rem; margin-bottom:.9rem; }
.gd-cards { display:grid; grid-template-columns:repeat(auto-fill, minmax(17rem, 1fr)); gap:.9rem; }
.gd-card { display:flex; flex-direction:column; gap:.35rem; text-decoration:none; color:var(--ink); background:var(--paper);
  border:1px solid var(--line); border-radius:var(--r-lg); padding:1.1rem 1.15rem 1rem; box-shadow:var(--shadow-xs);
  transition:transform .15s var(--ease), box-shadow .15s, border-color .15s; }
.gd-card:hover { transform:translateY(-2px); box-shadow:var(--shadow-sm); border-color:var(--purple-100); color:var(--ink); }
.gd-card-k { font:700 .68rem/1 var(--body); text-transform:uppercase; letter-spacing:.12em; color:var(--brand); }
.gd-card b { font:700 1.08rem/1.25 var(--display); color:var(--ink); }
.gd-card-d { font-size:.88rem; color:var(--muted); line-height:1.45; flex:1; }
.gd-card-m { font-size:.76rem; color:var(--hint); margin-top:.3rem; }

@media print {
  .gd-side, .gd-toc-mobile, .gd-progress, .gd-pager, .gd-related, .gd-cta, .gd-copy, .gd-checklist-bar button { display:none !important; }
  .gd { display:block; }
  .gd-article { max-width:none; font-size:11pt; }
  .gd-article .callout { break-inside:avoid; }
  .gd-article a[target="_blank"]::after { content:""; }
}

/* ---------- visuals (guides_viz.py: ```viz blocks) ---------- */
.gd-article .vz { margin:1.6rem 0; padding:1.1rem 1.2rem 1rem; background:#fff; border:1px solid var(--line);
  border-radius:var(--r-lg); box-shadow:var(--shadow-xs); }
.gd-article .vz figcaption { font:700 .95rem/1.3 var(--display); color:var(--ink); margin:0 0 .9rem; }
.vz-bar { display:grid; grid-template-columns:minmax(8rem, 15rem) 1fr auto; gap:.25rem .8rem; align-items:center;
  padding:.32rem 0; font-size:.86rem; }
.vz-bar .vz-l { color:var(--ink2); line-height:1.3; }
.vz-bar .vz-track { height:.75rem; background:var(--paper2); border-radius:99px; overflow:hidden; }
.vz-bar .vz-track i { display:block; height:100%; background:var(--line2); border-radius:99px; }
.vz-bar .vz-v { font-weight:800; color:var(--ink); font-variant-numeric:tabular-nums; min-width:3.5rem; text-align:right; }
.vz-bar .vz-n { grid-column:1 / -1; font-size:.76rem; color:var(--hint); margin-top:-.15rem; }
.vz-k-bars .vz-bar .vz-track i { background:#93c5fd; }
.vz-k-bars .vz-bar.hi .vz-track i { background:var(--grad); }
.vz-split { display:flex; height:1.6rem; border-radius:8px; overflow:hidden; gap:2px; }
.vz-split i { display:block; height:100%; }
.gd-article .vz-legend { list-style:none; padding:0; margin:.8rem 0 0; display:flex; flex-wrap:wrap; gap:.4rem 1.1rem; font-size:.84rem; color:var(--ink2); }
.vz-legend li { display:flex; align-items:center; gap:.4rem; }
.vz-legend b { width:.8rem; height:.8rem; border-radius:3px; display:inline-block; }
.vz-legend span { font-weight:800; color:var(--ink); }
.vz-k-funnel .vz-body { display:flex; flex-direction:column; align-items:center; gap:.35rem; }
.vz-stage { background:var(--purple-50); border:1px solid var(--purple-100); border-radius:10px; padding:.55rem .9rem;
  text-align:center; box-sizing:border-box; min-width:11rem; }
.vz-stage b { display:block; font:800 1.15rem/1.1 var(--display); color:var(--brand); }
.vz-stage span { display:block; font-size:.84rem; color:var(--ink2); }
.vz-stage small { display:block; font-size:.74rem; color:var(--hint); }
.vz-stage.hi { background:var(--grad-ink); border-color:transparent; }
.vz-stage.hi b, .vz-stage.hi span, .vz-stage.hi small { color:#fff; }
.gd-article .vz-steps { list-style:none; counter-reset:vz; margin:0; padding:0; display:grid;
  grid-template-columns:repeat(auto-fit, minmax(9.5rem, 1fr)); gap:.6rem; }
.vz-steps li { counter-increment:vz; position:relative; background:var(--paper2); border:1px solid var(--line);
  border-radius:12px; padding:2.3rem .8rem .75rem; font-size:.84rem; margin:0 !important; }
.vz-steps li::before { content:counter(vz); position:absolute; top:.6rem; left:.75rem; width:1.35rem; height:1.35rem;
  border-radius:50%; background:var(--grad); color:#fff; font:800 .78rem/1.35rem var(--body); text-align:center; }
.vz-steps li b { display:block; color:var(--ink); font-size:.9rem; margin-bottom:.2rem; line-height:1.25; }
.vz-steps li span { color:var(--muted); line-height:1.4; display:block; }
.vz-steps li.hi { background:var(--purple-50); border-color:var(--purple-100); }
.gd-article .vz-ladder { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.35rem; }
.vz-ladder li { display:grid; grid-template-columns:2rem 1fr; gap:0 .6rem; align-items:baseline; margin:0 !important;
  background:var(--paper2); border:1px solid var(--line); border-left:4px solid var(--line2); border-radius:10px;
  padding:.5rem .75rem; font-size:.85rem; box-sizing:border-box; min-width:15rem; max-width:100%; }
.vz-ladder li:first-child { border-left-color:var(--brand); background:var(--purple-50); }
.vz-ladder li em { font:800 1rem/1 var(--display); font-style:normal; color:var(--brand); grid-row:span 2; }
.vz-ladder li b { color:var(--ink); }
.vz-ladder li span { color:var(--muted); grid-column:2; }
.vz-ladder li.hi { border-left-color:var(--ok); }
.gd-article .vz-timeline { list-style:none; margin:0; padding:0 0 0 1.1rem; border-left:3px solid var(--purple-100); }
.vz-timeline li { position:relative; margin:0 0 .9rem !important; padding-left:.7rem; font-size:.88rem; }
.vz-timeline li::before { content:""; position:absolute; left:-1.62rem; top:.3rem; width:.8rem; height:.8rem; border-radius:50%;
  background:#fff; border:3px solid var(--brand); }
.vz-timeline li.hi::before { background:var(--brand); }
.vz-timeline time { display:block; font:700 .74rem/1.2 var(--body); text-transform:uppercase; letter-spacing:.08em; color:var(--brand); }
.vz-timeline b { display:block; color:var(--ink); }
.vz-timeline span { color:var(--muted); display:block; }
@media (max-width:40rem) {
  .vz-bar { grid-template-columns:1fr auto; }
  .vz-bar .vz-l { grid-column:1 / -1; }
  .vz-ladder li { width:100% !important; }
}
@media print { .gd-article .vz { break-inside:avoid; box-shadow:none; } }

/* ---------- section illustrations ---------- */
.gd-hero .wrap { position:relative; }
.gd-hero-art { position:absolute; right:1.25rem; top:50%; transform:translateY(-50%); width:9rem; height:9rem;
  color:var(--brand); opacity:.9; padding:1.4rem; border-radius:2rem; background:rgba(255,255,255,.75);
  border:1px solid var(--line); box-shadow:var(--shadow-sm); }
@media (max-width:64rem) { .gd-hero-art { display:none; } }
.gd-card { position:relative; padding-top:3.6rem; }
.gd-card-art { position:absolute; top:1rem; left:1.1rem; width:2.2rem; height:2.2rem; color:var(--brand);
  background:var(--purple-50); border-radius:.7rem; padding:.35rem; }
.gd-s-contracts .gd-card-art, .gd-s-contracts .gd-hero-art { color:var(--local); }
.gd-s-investment .gd-card-art, .gd-s-investment .gd-hero-art { color:var(--accent); }
.gd-s-research .gd-card-art, .gd-s-research .gd-hero-art { color:var(--brand-deep); }
.gd-s-more .gd-card-art, .gd-s-more .gd-hero-art { color:var(--ok); }
.gd-article figure.vz { display:block; }
.gd-article figure.vz > figcaption { display:block; width:auto; }
.gd-article figure.vz > .vz-body { display:block; width:100%; }
.gd-article figure.vz-k-funnel > .vz-body { display:flex; }
