/* ==========================================================================
   steffenbilger.com — components.css (generated by _build/build.rb)
   Shared components first; page-scoped compositions follow (body.p-<slug>).
   ========================================================================== */

/* ---------- Figures: images always whole, never cropped ---------- */
.fig { margin: 0; }
.fig__frame { background: var(--limestone); padding: 10px; border: 1px solid var(--rule); }
.fig__frame img { width: 100%; height: auto; object-fit: contain; margin-inline: auto; }
.fig--natural .fig__frame img { width: auto; max-width: 100%; }
.fig figcaption { font-size: .82rem; color: var(--ink-soft); margin-top: 10px; display: grid; grid-template-columns: auto 1fr; gap: 10px; line-height: 1.5; }
.fig figcaption::before { content: "FIG"; font-family: var(--f-mono); font-size: .66rem; letter-spacing: .12em; color: var(--terra-deep); padding-top: 2px; }
.fig figcaption > .fig__credit { grid-column: 2; }
.fig__credit { display: block; font-family: var(--f-mono); font-size: .68rem; letter-spacing: .04em; color: var(--slate-ink); margin-top: 3px; }
.fig--offset .fig__frame { box-shadow: 14px 14px 0 var(--clay); }
.fig--line .fig__frame { border-left: 3px solid var(--terra); }

/* ---------- Long-form prose ---------- */
.prose { max-width: var(--wrap-text); }
.prose > p:first-of-type.lead, .lead { font-size: clamp(1.12rem, 1.6vw, 1.3rem); line-height: 1.6; color: var(--ink); }
.prose h2 { margin-top: 1.6em; }
.prose h3 { margin-top: 1.5em; }
.prose ul, .prose ol { padding-left: 1.2em; margin: 0 0 1.2em; }
.prose li { margin-bottom: .45em; }
.prose li::marker { color: var(--terra); }
.prose blockquote { margin: 1.6em 0; padding: 4px 0 4px 24px; border-left: 3px solid var(--terra); font-family: var(--f-display); font-size: 1.35rem; line-height: 1.35; }
.prose blockquote p { margin-bottom: .4em; }
.prose blockquote cite, .quote cite { display: block; font: 400 .78rem/1.5 var(--f-mono); letter-spacing: .04em; font-style: normal; color: var(--slate-ink); margin-top: 8px; }
.dropcap::first-letter { font-family: var(--f-display); float: left; font-size: 4.4em; line-height: .82; padding: 6px 12px 0 0; color: var(--terra-deep); }

/* Two-column article: text + sticky side rail (chronology, facts) */
.article { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: clamp(32px, 5vw, 80px); align-items: start; }
.article--left { grid-template-columns: 280px minmax(0, 1fr); }
.rail { position: sticky; top: calc(var(--header-h) + 24px); }
.rail h2, .rail h3 { font-family: var(--f-mono); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--slate-ink); font-weight: 500; margin-bottom: 14px; }

/* ---------- Pull quote (verified quotations only) ---------- */
.quote { margin: 0; padding: clamp(24px, 4vw, 48px) 0; border-top: 1px solid var(--graphite); border-bottom: 1px solid var(--rule); }
.quote p { font-family: var(--f-display); font-size: clamp(1.5rem, 3vw, 2.4rem); line-height: 1.2; margin: 0 0 .4em; }
.quote p::before { content: "\201E"; color: var(--terra); margin-right: .05em; }
.quote p::after { content: "\201C"; color: var(--terra); }
.quote .quote__en { font-family: var(--f-body); font-size: 1rem; line-height: 1.6; color: var(--ink-soft); }
.quote .quote__en::before, .quote .quote__en::after { content: none; }

/* ---------- Key–value fact list ---------- */
.kv { margin: 0; display: grid; grid-template-columns: max-content 1fr; border-top: 1px solid var(--graphite); }
.kv dt, .kv dd { padding: 11px 0; border-bottom: 1px solid var(--rule); margin: 0; }
.kv dt { font-family: var(--f-mono); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--slate-ink); padding-right: 22px; padding-top: 14px; }
.kv dd { font-size: .96rem; }

/* ---------- Big numbers ---------- */
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 0; border-top: 1px solid var(--graphite); }
.stat { padding: 24px 20px 24px 0; border-bottom: 1px solid var(--rule); }
.stat__num { font-family: var(--f-display); font-size: clamp(2.4rem, 4.6vw, 3.8rem); line-height: 1; color: var(--terra-deep); display: block; }
.stat__label { display: block; margin-top: 10px; font-size: .92rem; color: var(--ink-soft); }
.stat__src { display: block; margin-top: 6px; font-family: var(--f-mono); font-size: .66rem; letter-spacing: .04em; color: var(--slate-ink); }
.section--slate .stat__num { color: #F2D9CF; }
.section--slate .stat__label, .section--slate .stat__src { color: #E6EBEE; }
.section--slate .stats, .section--slate .stat { border-color: rgba(248,246,241,.3); }

/* ---------- Horizontal route (stations on a line) ---------- */
.route-h { position: relative; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(150px, 1fr); gap: 0; list-style: none; margin: 0; padding: 0; overflow-x: auto; scrollbar-width: thin; }
.route-h::before { content: ""; position: absolute; left: 0; right: 0; top: 33px; height: 3px; background: var(--terra); }
.route-h li { position: relative; padding: 0 18px 8px 0; }
.route-h .stop-year { display: block; font-family: var(--f-mono); font-size: .8rem; letter-spacing: .06em; color: var(--slate-ink); height: 24px; }
.route-h .stop-dot { display: block; width: 19px; height: 19px; border-radius: 50%; background: var(--warm); border: 3px solid var(--terra); position: relative; z-index: 1; margin: 0 0 16px; }
.route-h li.is-now .stop-dot { background: var(--terra); box-shadow: 0 0 0 5px rgba(184,92,69,.18); }
.route-h .stop-title { display: block; font-family: var(--f-display); font-size: 1.18rem; line-height: 1.15; margin-bottom: 6px; }
.route-h .stop-text { display: block; font-size: .88rem; color: var(--ink-soft); line-height: 1.5; }

/* ---------- Vertical route (chronology) ---------- */
.route-v { list-style: none; margin: 0; padding: 0; position: relative; }
.route-v::before { content: ""; position: absolute; left: 6px; top: 8px; bottom: 8px; width: 2px; background: var(--terra); }
.route-v li { position: relative; padding: 0 0 22px 32px; }
.route-v li::before { content: ""; position: absolute; left: 0; top: 6px; width: 14px; height: 14px; border-radius: 50%; background: var(--warm); border: 2px solid var(--terra); }
.route-v li.is-now::before { background: var(--terra); }
.route-v .rv-year { display: block; font-family: var(--f-mono); font-size: .74rem; letter-spacing: .08em; color: var(--terra-deep); }
.route-v .rv-text { display: block; font-size: .94rem; line-height: 1.5; }

/* ---------- Process / flow diagram ---------- */
.flow { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(var(--steps, 5), minmax(0, 1fr)); counter-reset: flow; }
.flow li { counter-increment: flow; position: relative; padding: 56px 18px 0 0; }
.flow li::before { content: counter(flow, decimal-leading-zero); position: absolute; top: 0; left: 0; width: 40px; height: 40px; border: 2px solid var(--graphite); display: grid; place-items: center; font: 500 .8rem var(--f-mono); background: var(--warm); z-index: 1; }
.flow li::after { content: ""; position: absolute; top: 19px; left: 40px; right: 0; height: 2px; background: repeating-linear-gradient(90deg, var(--terra) 0 8px, transparent 8px 13px); }
.flow li:last-child::after { display: none; }
.flow li:last-child::before { background: var(--terra); border-color: var(--terra); color: #fff; }
.flow h3, .flow h4 { font-family: var(--f-display); font-weight: 400; font-size: 1.25rem; margin: 0 0 6px; }
.flow p { font-size: .9rem; color: var(--ink-soft); margin: 0; }

/* ---------- Matrix (argument / priority grid) ---------- */
.matrix { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); border-top: 1px solid var(--graphite); border-left: 1px solid var(--rule); }
.matrix > * { padding: 26px 24px 28px; border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); margin: 0; }
.matrix h3 { font-size: 1.35rem; }
.matrix .meta { display: block; margin-bottom: 10px; }
.matrix p { font-size: .95rem; color: var(--ink-soft); }
.matrix p:last-child { margin-bottom: 0; }

/* ---------- Documented vs context (evidence) ---------- */
.evidence { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--rule-strong); margin: 0 0 28px; background: var(--warm); }
.evidence > div { padding: 22px 24px; }
.evidence > div + div { border-left: 1px solid var(--rule-strong); background: rgba(216,224,228,.45); }
.evidence h3, .evidence h4 { font-family: var(--f-mono); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--slate-ink); font-weight: 500; margin: 0 0 10px; }
.evidence__title { grid-column: 1 / -1; border-bottom: 1px solid var(--rule-strong); background: var(--limestone); }
.evidence__title h3 { font-family: var(--f-display); font-size: 1.45rem; letter-spacing: 0; text-transform: none; color: var(--ink); margin: 0; }
.evidence p:last-child, .evidence ul:last-child { margin-bottom: 0; }
.evidence ul { padding-left: 1.1em; }

/* ---------- Ledger table ---------- */
.table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border-top: 2px solid var(--graphite); }
.ledger { width: 100%; border-collapse: collapse; font-size: .94rem; min-width: 560px; }
.ledger caption { text-align: left; font-family: var(--f-mono); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--slate-ink); padding: 0 0 10px; caption-side: top; }
.ledger th, .ledger td { text-align: left; padding: 12px 14px 12px 0; border-bottom: 1px solid var(--rule); vertical-align: top; }
.ledger thead th { font-family: var(--f-mono); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--slate-ink); font-weight: 500; }
.ledger td.num, .ledger th.num { text-align: right; font-variant-numeric: tabular-nums; }
.bar { display: block; height: 10px; background: var(--terra); min-width: 2px; }
.bar--slate { background: var(--slate); }

/* ---------- Cards that read as plan modules ---------- */
.modules { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; }
.module { position: relative; display: block; padding: 26px 24px 24px; background: var(--warm); border: 1px solid var(--rule-strong); text-decoration: none; color: var(--ink); transition: border-color .2s, transform .2s var(--ease); }
a.module:hover { border-color: var(--terra); color: var(--ink); transform: translateY(-2px); }
.module .meta { display: block; margin-bottom: 18px; }
.module h3 { margin-bottom: 8px; }
.module p { font-size: .93rem; color: var(--ink-soft); margin: 0; }
.module__go { display: inline-block; margin-top: 16px; font-family: var(--f-mono); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--terra-deep); }

/* ---------- Notes ---------- */
.note { border-left: 3px solid var(--slate); background: rgba(216,224,228,.55); padding: 16px 20px; font-size: .92rem; margin: 0 0 24px; }
.note strong:first-child { font-family: var(--f-mono); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: var(--slate-ink); display: block; margin-bottom: 4px; font-weight: 500; }
.note--terra { border-left-color: var(--terra); background: rgba(217,197,184,.4); }
.tag { display: inline-block; font-family: var(--f-mono); font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; padding: 4px 8px; border: 1px solid currentColor; color: var(--slate-ink); line-height: 1.2; }
.tag--terra { color: var(--terra-deep); }
.tag--fill { background: var(--graphite); color: var(--warm); border-color: var(--graphite); }

/* ---------- Sources ---------- */
.sources { border-top: 1px solid var(--graphite); padding-top: 22px; margin-top: 16px; }
.sources h2 { font-family: var(--f-mono); font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; color: var(--slate-ink); font-weight: 500; margin-bottom: 14px; }
.sources ol { margin: 0; padding-left: 1.4em; font-size: .86rem; color: var(--ink-soft); columns: 2 360px; column-gap: 40px; }
.sources li { margin-bottom: 8px; break-inside: avoid; overflow-wrap: anywhere; }

/* ---------- Continue the route (related pages) ---------- */
.continue { background: var(--limestone); padding: clamp(40px, 6vw, 72px) 0; border-top: 1px solid var(--rule); }
.continue__head { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin-bottom: 26px; flex-wrap: wrap; }
.continue__head h2 { margin: 0; font-size: clamp(1.6rem, 2.6vw, 2.2rem); }
.continue__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); border-top: 3px solid var(--terra); }
.continue__list li { border-right: 1px solid var(--rule); }
.continue__list li:last-child { border-right: 0; }
.continue__list a { display: block; padding: 22px 22px 22px 0; text-decoration: none; color: var(--ink); position: relative; }
.continue__list li + li a { padding-left: 22px; }
.continue__list a::before { content: ""; position: absolute; top: -11px; left: 0; width: 13px; height: 13px; border-radius: 50%; background: var(--limestone); border: 3px solid var(--terra); }
.continue__list li + li a::before { left: 22px; }
.continue__list .meta { display: block; margin: 6px 0 6px; }
.continue__list strong { font-family: var(--f-display); font-weight: 400; font-size: 1.3rem; line-height: 1.15; display: block; }
.continue__list a:hover strong { color: var(--terra-deep); }

/* ---------- Buttons ---------- */
.btn { display: inline-flex; align-items: center; gap: 12px; padding: 14px 22px; background: var(--graphite); color: var(--warm); border: 1px solid var(--graphite); text-decoration: none; font: 500 .8rem/1 var(--f-mono); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; transition: background .2s, color .2s; }
.btn:hover { background: var(--terra-deep); border-color: var(--terra-deep); color: #fff; }
.btn--ghost { background: transparent; color: var(--ink); }
.btn--ghost:hover { background: var(--graphite); color: var(--warm); border-color: var(--graphite); }
.btn svg { width: 16px; height: 9px; }

/* ---------- Archive filter ---------- */
.filter { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 24px; }
.filter input[type="search"] { flex: 1 1 260px; min-width: 0; padding: 12px 14px; border: 1px solid var(--rule-strong); background: #fff; font: inherit; font-size: .95rem; color: var(--ink); }
.filter button { appearance: none; padding: 10px 14px; border: 1px solid var(--rule-strong); background: transparent; font: 500 .72rem/1 var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink); cursor: pointer; }
.filter button[aria-pressed="true"] { background: var(--graphite); color: var(--warm); border-color: var(--graphite); }
.filter__count { font-family: var(--f-mono); font-size: .74rem; color: var(--slate-ink); }
.archive-list { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--graphite); }
.archive-item { display: grid; grid-template-columns: 130px minmax(0, 1fr) 180px; gap: 24px; padding: 22px 0; border-bottom: 1px solid var(--rule); }
.archive-item[hidden] { display: none; }
.archive-item time { font-family: var(--f-mono); font-size: .8rem; color: var(--terra-deep); }
.archive-item h3 { font-size: 1.3rem; margin-bottom: 6px; }
.archive-item p { font-size: .93rem; color: var(--ink-soft); margin-bottom: 6px; }
.archive-item__meta { font-size: .82rem; color: var(--ink-soft); display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }

/* ---------- SVG diagram helpers ---------- */
.diagram { width: 100%; height: auto; display: block; }
.diagram text { font-family: var(--f-mono); }
.diagram .d-label { font-size: 12px; fill: var(--graphite); letter-spacing: .06em; }
.diagram .d-small { font-size: 10px; fill: var(--slate-ink); letter-spacing: .08em; }
.diagram .d-serif { font-family: var(--f-display); font-size: 22px; fill: var(--graphite); }
.draw-line { stroke-dasharray: var(--len, 1200); stroke-dashoffset: 0; }
.js-anim .draw-line.is-pending { stroke-dashoffset: var(--len, 1200); }
.js-anim .draw-line.is-drawn { transition: stroke-dashoffset 1.8s var(--ease); stroke-dashoffset: 0; }

/* ---------- Forms ---------- */
.form { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 24px; }
.field { display: flex; flex-direction: column; gap: 8px; }
.field--full { grid-column: 1 / -1; }
.field label, .field legend { font-family: var(--f-mono); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--graphite); font-weight: 500; }
.field .req { color: var(--terra-deep); }
.field input, .field select, .field textarea {
  width: 100%; font: inherit; font-size: 1rem; color: var(--ink); background: #fff;
  border: 0; border-bottom: 2px solid var(--rule-strong); padding: 12px 12px; border-radius: 0; transition: border-color .2s, background .2s;
}
.field textarea { min-height: 170px; resize: vertical; border: 1px solid var(--rule-strong); border-bottom-width: 2px; }
.field input::placeholder, .field textarea::placeholder { color: #6E7273; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-bottom-color: var(--terra); background: #FFFDF9; box-shadow: 0 2px 0 0 var(--terra); }
.field.has-error input, .field.has-error select, .field.has-error textarea { border-bottom-color: #A3261B; background: #FFF7F5; }
.field__error { font-size: .84rem; color: #A3261B; min-height: 0; font-weight: 500; }
.field__error:empty { display: none; }
.check { display: grid; grid-template-columns: 22px 1fr; gap: 12px; align-items: start; font-size: .92rem; }
.check input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--terra-deep); }
.form__status { grid-column: 1 / -1; padding: 16px 18px; border-left: 3px solid var(--slate); background: rgba(216,224,228,.6); font-size: .95rem; }
.form__status[hidden] { display: none; }
.form__status.is-error { border-left-color: #A3261B; background: #FFF1EE; }
.form__status.is-ok { border-left-color: #3F6B4A; background: #EEF4EE; }


/* ==== Page compositions ==== */
/* ---- home ---- */
.p-home .hero { padding: clamp(32px, 5vw, 72px) 0 0; background:
  linear-gradient(90deg, transparent calc(100% - 1px), rgba(96,120,138,.1) 0) 0 0 / 80px 100%, var(--paper); }
.p-home .hero__grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(28px, 4vw, 64px); align-items: center; }
.p-home .hero__name { font-size: clamp(3.6rem, 10.5vw, 9.6rem); line-height: .86; letter-spacing: -.02em; margin: 0 0 .22em; }
.p-home .hero__name span { display: block; }
.p-home .hero__name span + span { color: var(--terra-deep); padding-left: .42em; }
.p-home .hero__role { font-family: var(--f-display); font-size: clamp(1.4rem, 2.6vw, 2.1rem); line-height: 1.1; margin: 0 0 10px; }
.p-home .hero__meta { margin: 0 0 22px; }
.p-home .hero__lede { max-width: 54ch; color: var(--ink-soft); font-size: 1.04rem; }
.p-home .hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.p-home .hero__visual { position: relative; padding: 28px 0 40px 28px; }
.p-home .hero__route { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; }
.p-home .hero__km { font-size: 11px; fill: var(--slate-ink); letter-spacing: .1em; font-family: var(--f-mono); }
.p-home .hero__fig { position: relative; z-index: 1; }
.p-home .hero__fig .fig__frame { background: var(--warm); box-shadow: 18px 18px 0 var(--limestone); }
.p-home .hero__rail { margin: clamp(30px, 4vw, 56px) 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 2px solid var(--graphite); }
.p-home .hero__rail > div { padding: 20px 24px 26px 0; border-right: 1px solid var(--rule); }
.p-home .hero__rail > div + div { padding-left: 24px; }
.p-home .hero__rail > div:last-child { border-right: 0; }
.p-home .hero__rail dt { font-family: var(--f-display); font-size: clamp(1.45rem, 2.4vw, 2rem); line-height: 1.05; color: var(--terra-deep); margin-bottom: 6px; }
.p-home .hero__rail dd { margin: 0; font-size: .92rem; color: var(--ink-soft); }

.p-home .statement__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 0 clamp(28px, 5vw, 88px); }
.p-home .statement .chainage { grid-column: 1 / -1; }
.p-home .statement__title { font-size: clamp(2.6rem, 6vw, 5.2rem); line-height: .98; margin: 0; }

.p-home .network__map { background: var(--warm); border: 1px solid var(--rule-strong); padding: clamp(10px, 2vw, 28px); }
.p-home .network__svg { width: 100%; height: auto; display: block; }
.p-home .nl { stroke: var(--slate); stroke-dasharray: 4 7; animation: sb-flow 16s linear infinite; }
.p-home .nl:nth-child(3n) { stroke: var(--terra); stroke-dasharray: none; animation: none; }
@keyframes sb-flow { to { stroke-dashoffset: -220; } }
.p-home .node circle { fill: var(--warm); stroke: var(--graphite); stroke-width: 2.5; transition: fill .2s, r .2s; }
.p-home .node--core circle { fill: var(--terra); stroke: var(--terra-deep); }
.p-home .node text { font-family: var(--f-display); font-size: 28px; fill: var(--graphite); text-anchor: middle; }
.p-home .node:hover circle, .p-home .node:focus circle { fill: var(--signal); }
.p-home .node:hover text, .p-home .node:focus text { fill: var(--terra-deep); text-decoration: underline; }
.p-home .node:focus { outline: none; }
.p-home .node:focus-visible circle { stroke: var(--terra-deep); stroke-width: 4; }
.p-home .network__list { display: none; list-style: none; margin: 18px 0 0; padding: 0; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--graphite); }
.p-home .network__list a { display: flex; gap: 12px; align-items: baseline; padding: 14px 0; border-bottom: 1px solid var(--rule); text-decoration: none; color: var(--ink); font-family: var(--f-display); font-size: 1.3rem; }

.p-home .current__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(28px, 5vw, 80px); margin-bottom: clamp(32px, 5vw, 56px); }
.p-home .current__head h2 { font-size: clamp(2.2rem, 4.6vw, 3.8rem); }
.p-home .current__body .btn { margin-top: 8px; }
.p-home .current__fig { max-width: 1023px; margin-inline: auto; }

.p-home .snapshot__route { padding-bottom: 8px; }

.p-home .prio { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 2px solid var(--graphite); border-left: 1px solid var(--rule); }
.p-home .prio__card { display: block; padding: 28px 26px 30px; border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); text-decoration: none; color: var(--ink); position: relative; transition: background .25s; }
.p-home .prio__card svg { width: 120px; height: 60px; display: block; margin-bottom: 22px; }
.p-home .prio__card .meta { display: block; margin-bottom: 8px; }
.p-home .prio__card h3 { font-size: 1.9rem; margin-bottom: 8px; }
.p-home .prio__card p { margin: 0; font-size: .95rem; color: var(--ink-soft); }
.p-home .prio__card:hover { background: var(--limestone); color: var(--ink); }
.p-home .prio__card--rail { background: var(--mist); }
.p-home .prio__card--rail:hover { background: #CBD6DB; }
.p-home .prio__card--log { background: #EFE4DC; }
.p-home .prio__card--dig h3 { font-family: var(--f-mono); font-size: 1.5rem; letter-spacing: -.02em; }
.p-home .prio__card--safe { background: var(--slate-ink); color: var(--warm); }
.p-home .prio__card--safe h3 { color: var(--warm); }
.p-home .prio__card--safe p, .p-home .prio__card--safe .meta { color: #E6EBEE; }
.p-home .prio__card--safe svg path:first-child { stroke: var(--warm); }
.p-home .prio__card--safe:hover { background: #33475A; color: var(--warm); }
.p-home .prio__card--infra h3 { font-style: italic; }

.p-home .lbg__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 80px); align-items: center; }
.p-home .lbg__figure { position: relative; }
.p-home .lbg__num { position: absolute; top: -8px; left: 0; font-family: var(--f-display); font-size: clamp(5rem, 13vw, 11rem); line-height: .8; color: rgba(143, 64, 52, .16); z-index: 0; }
.p-home .lbg__map { position: relative; z-index: 1; width: 100%; max-width: 480px; height: auto; margin: 40px 0 0 auto; display: block; }
.p-home .lbg__lbl { font-family: var(--f-mono); font-size: 13px; letter-spacing: .12em; fill: var(--graphite); }
.p-home .lbg__lbl--s { font-size: 11px; fill: var(--slate-ink); }

.p-home .news__strip { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); border-top: 2px solid var(--graphite); }
.p-home .news__strip li { padding: 22px 22px 26px 0; border-bottom: 1px solid var(--rule); border-right: 1px solid var(--rule); }
.p-home .news__strip li + li { padding-left: 22px; }
.p-home .news__strip time { display: block; font-family: var(--f-mono); font-size: .76rem; letter-spacing: .08em; color: var(--terra-deep); margin-bottom: 10px; }
.p-home .news__strip .tag { margin-bottom: 12px; }
.p-home .news__strip h3 { font-size: 1.3rem; margin-bottom: 8px; }
.p-home .news__strip p { font-size: .92rem; color: var(--ink-soft); margin-bottom: 10px; }
.p-home .news__strip a.more { font-family: var(--f-mono); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }

@media (max-width: 1024px) {
  .p-home .hero__grid { grid-template-columns: minmax(0, 1fr); }
  .p-home .hero__visual { padding: 18px 0 28px 18px; max-width: 760px; }
  .p-home .prio { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  .p-home .statement__grid, .p-home .current__grid, .p-home .lbg__grid { grid-template-columns: minmax(0, 1fr); }
  .p-home .statement__title { margin-bottom: 24px; }
  .p-home .lbg__map { margin: 30px auto 0; }
}
@media (max-width: 640px) {
  .p-home .hero__rail { grid-template-columns: minmax(0, 1fr); }
  .p-home .hero__rail > div, .p-home .hero__rail > div + div { padding: 16px 0; border-right: 0; border-bottom: 1px solid var(--rule); }
  .p-home .hero__fig .fig__frame { box-shadow: 10px 10px 0 var(--limestone); }
  .p-home .network__map { display: none; }
  .p-home .network__list { display: grid; }
  .p-home .prio { grid-template-columns: minmax(0, 1fr); }
  .p-home .news__strip li, .p-home .news__strip li + li { padding: 18px 0; border-right: 0; }
}
@media (prefers-reduced-motion: reduce) { .p-home .nl { animation: none; } }

/* ---- biography ---- */
.p-biography .bio-head { background:
  linear-gradient(180deg, transparent calc(100% - 1px), var(--rule) 0) 0 0 / 100% 40px, var(--paper); }
.p-biography .bio-head h1 { font-size: clamp(3rem, 8vw, 6.4rem); line-height: .92; margin-bottom: .2em; }
.p-biography .bio-head__role { font-family: var(--f-display); font-size: clamp(1.15rem, 2vw, 1.55rem); color: var(--terra-deep); line-height: 1.25; margin-bottom: 1em; }
.p-biography .bio-head__meta { margin-top: 1.4em; }

.p-biography .bio-facts { background: var(--graphite); color: var(--warm); padding-top: 0; padding-bottom: 0; }
.p-biography .bio-facts__grid { margin: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); }
.p-biography .bio-facts__grid > div { padding: 22px 18px 24px; border-left: 1px solid rgba(248,246,241,.18); }
.p-biography .bio-facts__grid > div:first-child { border-left: 0; padding-left: 0; }
.p-biography .bio-facts dt { font-family: var(--f-mono); font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; color: var(--clay); margin-bottom: 6px; }
.p-biography .bio-facts dd { margin: 0; font-size: .92rem; line-height: 1.4; color: var(--warm); }

.p-biography .bio-rail { max-height: calc(100vh - var(--header-h) - 48px); overflow-y: auto; padding: 4px 8px 8px 0; scrollbar-width: thin; }
.p-biography .bio-rail .route-v li { padding-bottom: 16px; }
.p-biography .bio-rail .rv-text { font-size: .88rem; color: var(--ink-soft); }
.p-biography .bio-rail .is-now .rv-text { color: var(--ink); font-weight: 600; }
.p-biography .bio-rail__more { margin: 10px 0 0 32px; font-family: var(--f-mono); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }

.p-biography .bio-prose { counter-reset: biosec; max-width: 760px; }
.p-biography .bio-prose h2 { counter-increment: biosec; position: relative; padding-top: 28px; border-top: 1px solid var(--rule); font-size: clamp(1.7rem, 3vw, 2.4rem); }
.p-biography .bio-prose h2:first-child { margin-top: 0; }
.p-biography .bio-prose h2::before { content: "§ " counter(biosec, decimal-leading-zero); position: absolute; top: 6px; left: 0; font-family: var(--f-mono); font-size: .7rem; letter-spacing: .14em; color: var(--terra-deep); }
.p-biography .bio-prose h2::after { content: ""; position: absolute; top: -2px; left: 0; width: 56px; height: 3px; background: var(--terra); }
.p-biography .bio-prose ul { list-style: none; padding-left: 0; border-top: 1px solid var(--graphite); }
.p-biography .bio-prose ul li { padding: 12px 0 12px 22px; border-bottom: 1px solid var(--rule); margin: 0; position: relative; }
.p-biography .bio-prose ul li::before { content: ""; position: absolute; left: 0; top: 21px; width: 10px; height: 10px; border: 2px solid var(--terra); border-radius: 50%; }
.p-biography .bio-quote { margin: 1.8em 0; }
.p-biography .bio-results { margin: 1.4em 0 2em; }
.p-biography .bio-results .ledger { min-width: 0; }
.p-biography .bio-results td:last-child { width: 55%; }

@media (max-width: 1100px) {
  .p-biography .bio-facts__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .p-biography .bio-facts__grid > div:nth-child(4) { border-left: 0; padding-left: 0; }
  .p-biography .bio-facts__grid > div:nth-child(n+4) { border-top: 1px solid rgba(248,246,241,.18); }
}
@media (max-width: 1024px) {
  .p-biography .bio-rail { max-height: none; overflow: visible; border: 1px solid var(--rule-strong); background: var(--warm); padding: 22px 20px 12px; }
  .p-biography .bio-rail .route-v { columns: 2 220px; column-gap: 32px; }
  .p-biography .bio-rail .route-v::before { display: none; }
  .p-biography .bio-rail .route-v li { break-inside: avoid; }
}
@media (max-width: 640px) {
  .p-biography .bio-facts__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .p-biography .bio-facts__grid > div { border-left: 0; padding-left: 0; border-top: 1px solid rgba(248,246,241,.18); }
  .p-biography .bio-facts__grid > div:nth-child(-n+2) { border-top: 0; }
  .p-biography .bio-facts__grid > div:nth-child(2n) { padding-left: 14px; border-left: 1px solid rgba(248,246,241,.18); }
  .p-biography .bio-results td:last-child { width: 40%; }
}

/* ---- early-life ---- */
.p-early-life .el-head h1 { max-width: 11ch; }
.p-early-life .el-head .ph-statement__lede { position: relative; z-index: 1; }

.p-early-life .el-record__grid { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: clamp(24px, 5vw, 72px); align-items: start; }
.p-early-life .el-record__grid h2 { font-size: clamp(1.8rem, 3.4vw, 2.8rem); }
.p-early-life .el-ledger { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--graphite); }
.p-early-life .el-ledger li { display: grid; grid-template-columns: 112px minmax(0, 1fr) minmax(0, 190px); gap: 18px; padding: 14px 0; border-bottom: 1px solid var(--rule); align-items: baseline; }
.p-early-life .el-ledger__year { font-family: var(--f-mono); font-size: .8rem; color: var(--terra-deep); letter-spacing: .04em; }
.p-early-life .el-ledger__fact { font-size: .98rem; }
.p-early-life .el-ledger__src { font-family: var(--f-mono); font-size: .66rem; letter-spacing: .08em; text-transform: uppercase; color: var(--slate-ink); text-align: right; }

.p-early-life .el-map__fig { margin: 0 0 28px; border: 1px solid var(--rule-strong); background: var(--warm); padding: clamp(6px, 1.4vw, 16px); }
.p-early-life .el-map__lbl { font-family: var(--f-display); font-size: 30px; fill: var(--graphite); }
.p-early-life .el-map__sub { font-family: var(--f-mono); font-size: 26px; fill: var(--slate-ink); }
.p-early-life .el-map__state { font-family: var(--f-mono); font-size: 26px; fill: var(--slate); letter-spacing: .08em; }
.p-early-life .el-map__note { font-family: var(--f-mono); font-size: 26px; fill: var(--terra-deep); letter-spacing: .12em; }
.p-early-life .el-map__legend { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 3px solid var(--terra); }
.p-early-life .el-map__legend li { padding: 18px 20px 6px 0; display: flex; flex-direction: column; gap: 4px; }
.p-early-life .el-map__legend li + li { padding-left: 20px; border-left: 1px solid var(--rule-strong); }
.p-early-life .el-map__legend strong { font-family: var(--f-display); font-weight: 400; font-size: 1.5rem; line-height: 1.1; }
.p-early-life .el-map__legend span:last-child { font-size: .9rem; color: var(--ink-soft); }

.p-early-life .el-rail .el-gloss { margin: 0 0 24px; border-top: 1px solid var(--graphite); }
.p-early-life .el-gloss dt { font-family: var(--f-display); font-size: 1.2rem; padding-top: 12px; }
.p-early-life .el-gloss dd { margin: 2px 0 0; padding-bottom: 12px; border-bottom: 1px solid var(--rule); font-size: .88rem; color: var(--ink-soft); }
.p-early-life .el-body .prose h2 { font-size: clamp(1.6rem, 2.8vw, 2.2rem); }
.p-early-life .el-body .prose h2:first-child { margin-top: 0; }
.p-early-life .el-next .route-h a { color: var(--ink); text-decoration-color: var(--terra); }

@media (max-width: 1024px) {
  .p-early-life .el-map__legend { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p-early-life .el-map__legend li:nth-child(3) { padding-left: 0; border-left: 0; }
}
@media (max-width: 860px) {
  .p-early-life .el-record__grid { grid-template-columns: minmax(0, 1fr); }
  .p-early-life .el-ledger li { grid-template-columns: 96px minmax(0, 1fr); }
  .p-early-life .el-ledger__src { grid-column: 2; text-align: left; }
}
@media (max-width: 520px) {
  .p-early-life .el-map__legend { grid-template-columns: minmax(0, 1fr); }
  .p-early-life .el-map__legend li, .p-early-life .el-map__legend li + li { padding-left: 0; border-left: 0; border-bottom: 1px solid var(--rule); padding-bottom: 14px; }
  .p-early-life .el-ledger li { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .p-early-life .el-ledger__src { grid-column: 1; }
}

/* ---- education ---- */
.p-education .ed-head { background:
  linear-gradient(90deg, rgba(96,120,138,.12) 1px, transparent 1px) 0 0 / 24px 24px,
  linear-gradient(180deg, rgba(96,120,138,.12) 1px, transparent 1px) 0 0 / 24px 24px, var(--paper); }
.p-education .ed-head .ph-sheet__frame { background: var(--warm); }

.p-education .ed-flow { margin-top: 8px; }
.p-education .ed-flow li { display: flex; flex-direction: column; }
.p-education .ed-flow h3 { font-size: clamp(1.15rem, 1.6vw, 1.4rem); }
.p-education .ed-flow__date { margin-top: 14px; padding-top: 10px; border-top: 2px solid var(--terra); font-family: var(--f-mono); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--terra-deep); align-self: flex-start; }

.p-education .ed-body .prose { max-width: 740px; }
.p-education .ed-body .prose h2 { margin-top: .2em; font-size: clamp(1.7rem, 3vw, 2.3rem); }
.p-education .ed-body .chainage { margin-top: 2.4em; }
.p-education .ed-body .prose > .chainage:first-child { margin-top: 0; }
.p-education .ed-body .note { margin-top: 1.4em; background: rgba(248,246,241,.7); }
.p-education .ed-rail { background: var(--warm); border: 1px solid var(--rule-strong); padding: 22px 20px 18px; }
.p-education .ed-kv { grid-template-columns: minmax(0, 104px) minmax(0, 1fr); }
.p-education .ed-kv dd { font-size: .9rem; }
.p-education .ed-rail__note { margin: 14px 0 0; font-size: .64rem; line-height: 1.6; }

.p-education .ed-sources .table-wrap { margin-bottom: 36px; }
.p-education .ed-sources .ledger th[scope="row"] { font-family: var(--f-display); font-weight: 400; font-size: 1.05rem; }

/* ---- legal-career ---- */
.p-legal-career .lc-head h1 { max-width: 13ch; }

.p-legal-career .lc-gantt { border-top: 2px solid var(--graphite); border-bottom: 1px solid var(--rule-strong); padding: 6px 0 14px; background:
  repeating-linear-gradient(90deg, transparent 0, transparent calc(100% / 21 - 1px), var(--rule) calc(100% / 21 - 1px), var(--rule) calc(100% / 21)) right 0 top 0 / calc(100% - 260px) 100% no-repeat; }
.p-legal-career .lc-gantt__axis, .p-legal-career .lc-gantt__row { display: grid; grid-template-columns: 260px repeat(21, minmax(0, 1fr)); align-items: center; }
.p-legal-career .lc-gantt__axis { font-family: var(--f-mono); font-size: .7rem; color: var(--slate-ink); letter-spacing: .06em; padding: 6px 0 10px; }
.p-legal-career .lc-gantt__axis span { grid-row: 1; }
.p-legal-career .lc-gantt__axis span:nth-child(1) { grid-column: 2; }
.p-legal-career .lc-gantt__axis span:nth-child(2) { grid-column: 6; }
.p-legal-career .lc-gantt__axis span:nth-child(3) { grid-column: 10; }
.p-legal-career .lc-gantt__axis span:nth-child(4) { grid-column: 14; }
.p-legal-career .lc-gantt__axis span:nth-child(5) { grid-column: 18; }
.p-legal-career .lc-gantt__axis span:nth-child(6) { grid-column: 22; }
.p-legal-career .lc-gantt__row { min-height: 46px; border-top: 1px dashed var(--rule); }
.p-legal-career .lc-gantt__label { grid-column: 1; grid-row: 1; font-size: .88rem; padding-right: 16px; line-height: 1.3; }
.p-legal-career .lc-gantt__bar { grid-row: 1; grid-column: calc(var(--s) + 1) / calc(var(--e) + 1); height: 16px; background: var(--slate); }
.p-legal-career .lc-gantt__row--law .lc-gantt__bar { background: var(--terra); }
.p-legal-career .lc-gantt__row--law .lc-gantt__label { font-weight: 600; }
.p-legal-career .lc-gantt__bar--dormant, .p-legal-career .lc-gantt__row--law .lc-gantt__bar--dormant { background: repeating-linear-gradient(135deg, var(--terra) 0 3px, transparent 3px 7px); border: 1px solid var(--terra); }
.p-legal-career .lc-gantt__key { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 14px; }
.p-legal-career .lc-key { display: inline-block; width: 22px; height: 10px; vertical-align: middle; }
.p-legal-career .lc-key--law { background: var(--terra); }
.p-legal-career .lc-key--pol { background: var(--slate); }
.p-legal-career .lc-key--dorm { background: repeating-linear-gradient(135deg, var(--terra) 0 3px, transparent 3px 7px); border: 1px solid var(--terra); }

.p-legal-career .lc-body .prose h2 { font-size: clamp(1.7rem, 3vw, 2.3rem); padding-top: .6em; border-top: 1px solid var(--rule-strong); }
.p-legal-career .lc-body .prose h2:first-child { margin-top: 0; border-top: 0; padding-top: 0; }
.p-legal-career .lc-record { margin: 1.4em 0; padding: 22px 24px; background: var(--warm); border: 1px solid var(--rule-strong); border-left: 4px solid var(--graphite); font-family: var(--f-mono); font-size: 1rem; line-height: 1.5; }
.p-legal-career .lc-record p { margin: 0 0 10px; overflow-wrap: anywhere; }
.p-legal-career .lc-record footer { font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--slate-ink); }
.p-legal-career .lc-conflict-table { min-width: 520px; background: var(--warm); }
.p-legal-career .lc-conflict-table td:first-child { font-weight: 600; }
.p-legal-career .lc-conflict-table td:last-child { font-family: var(--f-mono); font-size: .82rem; color: var(--terra-deep); }
.p-legal-career .table-wrap { margin: 1.2em 0 1.6em; }
.p-legal-career .lc-evidence { margin-top: clamp(16px, 3vw, 32px); }
.p-legal-career .lc-evidence ul { margin-bottom: 0; }
.p-legal-career .lc-evidence li { margin-bottom: .5em; font-size: .95rem; }

@media (max-width: 760px) {
  .p-legal-career .lc-gantt { background: none; }
  .p-legal-career .lc-gantt__axis, .p-legal-career .lc-gantt__row { grid-template-columns: repeat(21, minmax(0, 1fr)); }
  .p-legal-career .lc-gantt__axis span:nth-child(1) { grid-column: 1 / span 4; }
  .p-legal-career .lc-gantt__axis span:nth-child(2) { grid-column: 5 / span 4; }
  .p-legal-career .lc-gantt__axis span:nth-child(3) { grid-column: 9 / span 4; }
  .p-legal-career .lc-gantt__axis span:nth-child(4) { grid-column: 13 / span 4; }
  .p-legal-career .lc-gantt__axis span:nth-child(5) { grid-column: 17 / span 4; }
  .p-legal-career .lc-gantt__axis span:nth-child(6) { display: none; }
  .p-legal-career .lc-gantt__row { row-gap: 6px; padding: 10px 0; }
  .p-legal-career .lc-gantt__label { grid-column: 1 / -1; grid-row: 1; padding: 0; }
  .p-legal-career .lc-gantt__bar { grid-row: 2; grid-column: var(--s) / var(--e); }
}

/* ---- political-beginnings ---- */
.p-political-beginnings .pb-head { padding-bottom: clamp(32px, 5vw, 64px); }
.p-political-beginnings .pb-head .lead { max-width: 64ch; }

.p-political-beginnings .pb-stairs { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; counter-reset: stair; }
.p-political-beginnings .pb-stairs li { counter-increment: stair; position: relative; display: grid; grid-template-columns: 110px 130px minmax(0, 1fr); gap: 16px; align-items: baseline;
  margin-left: calc((var(--lvl, 1) - 1) * clamp(14px, 6vw, 92px)); padding: 12px 18px 12px 20px; background: var(--warm); border: 1px solid var(--rule-strong); border-left: 4px solid var(--terra); }
.p-political-beginnings .pb-stairs li::after { content: ""; position: absolute; left: -4px; bottom: -7px; width: 2px; height: 8px; background: var(--terra); }
.p-political-beginnings .pb-stairs li:last-child::after { display: none; }
.p-political-beginnings .pb-stairs li:nth-last-child(-n+3) { background: var(--limestone); }
.p-political-beginnings .pb-stairs li:last-child { background: var(--graphite); color: var(--warm); border-color: var(--graphite); border-left-color: var(--terra); }
.p-political-beginnings .pb-stairs li:last-child .meta { color: var(--clay); }
.p-political-beginnings .pb-stairs__yr { font-family: var(--f-mono); font-size: .8rem; color: var(--terra-deep); }
.p-political-beginnings .pb-stairs li:last-child .pb-stairs__yr { color: #F2D9CF; }
.p-political-beginnings .pb-stairs__lvl { font-size: .64rem; }
.p-political-beginnings .pb-stairs strong { font-family: var(--f-display); font-weight: 400; font-size: 1.15rem; line-height: 1.25; }

.p-political-beginnings .pb-chapter { display: grid; grid-template-columns: minmax(0, 260px) minmax(0, 1fr); gap: clamp(20px, 4vw, 64px); padding: clamp(28px, 4vw, 44px) 0; border-top: 1px solid var(--rule-strong); }
.p-political-beginnings .pb-chapter:first-child { border-top: 2px solid var(--graphite); }
.p-political-beginnings .pb-chapter__yr { margin: 0; font-family: var(--f-display); font-size: clamp(3.4rem, 8vw, 6.6rem); line-height: .85; color: rgba(143, 64, 52, .85); position: sticky; top: calc(var(--header-h) + 24px); align-self: start; }
.p-political-beginnings .pb-chapter__body { max-width: 720px; }
.p-political-beginnings .pb-chapter__body h2 { font-size: clamp(1.6rem, 2.8vw, 2.2rem); }
.p-political-beginnings .pb-chapter__body p:last-child { margin-bottom: 0; }

.p-political-beginnings .pb-junge__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(28px, 5vw, 80px); }
.p-political-beginnings .pb-junge .lead { color: var(--warm); }
.p-political-beginnings .pb-junge__text p { color: #E6EBEE; }
.p-political-beginnings .pb-quote { border-top-color: var(--clay); border-bottom-color: rgba(248,246,241,.3); margin: 1.4em 0; }
.p-political-beginnings .pb-quote p { color: var(--warm); }
.p-political-beginnings .pb-quote .quote__en { color: #E6EBEE; }
.p-political-beginnings .pb-quote cite { color: var(--clay); }

@media (max-width: 860px) {
  .p-political-beginnings .pb-chapter { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .p-political-beginnings .pb-chapter__yr { position: static; font-size: 3rem; }
  .p-political-beginnings .pb-junge__grid { grid-template-columns: minmax(0, 1fr); }
  .p-political-beginnings .pb-stairs li { grid-template-columns: minmax(0, 1fr) auto; gap: 2px 12px; margin-left: calc((var(--lvl, 1) - 1) * 10px); }
  .p-political-beginnings .pb-stairs strong { grid-column: 1 / -1; }
  .p-political-beginnings .pb-stairs__lvl { text-align: right; }
}

/* ---- bundestag-career ---- */
.p-bundestag-career .ph-data h1 { font-size: clamp(2.6rem, 6.4vw, 5.6rem); line-height: .98; max-width: 16ch; }
.p-bundestag-career .ph-data .lead { max-width: 64ch; }
.p-bundestag-career .prose .eyebrow + h2 { margin-top: .2em; }

/* Electoral chart */
.p-bundestag-career .bc-chart { border-top: 2px solid var(--graphite); padding-top: 8px; }
.p-bundestag-career .bc-row { display: grid; grid-template-columns: 96px minmax(0, 1fr) 130px; gap: 0 clamp(14px, 2vw, 28px); align-items: center; padding: 18px 0; border-bottom: 1px solid var(--rule); }
.p-bundestag-career .bc-chart__scale { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); margin: 0 calc(130px + clamp(14px, 2vw, 28px)) 0 calc(96px + clamp(14px, 2vw, 28px)); padding: 6px 0 10px; font-family: var(--f-mono); font-size: .68rem; color: var(--slate-ink); }
.p-bundestag-career .bc-chart__scale span { border-left: 1px solid var(--rule-strong); padding-left: 4px; }
.p-bundestag-career .bc-chart__scale span:last-child { display: none; }
.p-bundestag-career .bc-row__year { font-family: var(--f-display); font-size: clamp(1.7rem, 3vw, 2.4rem); line-height: 1; margin: 0; }
.p-bundestag-career .bc-row__year small { display: block; font-family: var(--f-mono); font-size: .68rem; letter-spacing: .08em; color: var(--slate-ink); margin-top: 6px; }
.p-bundestag-career .bc-row__bars { position: relative; display: grid; gap: 6px; }
.p-bundestag-career .bc-row__bars::after { content: ""; position: absolute; top: -10px; bottom: -10px; left: 83.333%; border-left: 2px dashed var(--terra-deep); opacity: .55; pointer-events: none; }
.p-bundestag-career .bc-bar { position: relative; min-height: 30px; background: rgba(41, 43, 45, .05); }
.p-bundestag-career .bc-bar--run { min-height: 20px; }
.p-bundestag-career .bc-bar__fill { position: absolute; left: 0; top: 0; bottom: 0; width: var(--w, 0); background: var(--terra-deep); transform-origin: left; animation: bc-grow 1.1s var(--ease) both; }
.p-bundestag-career .bc-bar--run .bc-bar__fill { background: var(--slate); }
.p-bundestag-career .bc-bar__val { position: relative; z-index: 1; display: block; padding: 5px 10px; line-height: 20px; font-size: .86rem; color: var(--warm); font-weight: 600; }
.p-bundestag-career .bc-bar--run .bc-bar__val { padding: 1px 0 1px calc(var(--w, 0%) + 10px); line-height: 18px; font-size: .78rem; font-weight: 500; color: var(--slate-ink); }
.p-bundestag-career .bc-row__gap { margin: 0; font-family: var(--f-mono); font-size: .74rem; letter-spacing: .06em; color: var(--terra-deep); text-transform: uppercase; }
.p-bundestag-career .bc-row--best .bc-row__year { color: var(--terra-deep); }
.p-bundestag-career .bc-row--now { background: linear-gradient(90deg, rgba(233, 226, 213, .8), transparent); }
.p-bundestag-career .bc-chart__note { margin: 14px 0 0; }
@keyframes bc-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }

.p-bundestag-career .bc-read { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(24px, 4vw, 64px); margin-top: clamp(32px, 5vw, 56px); }
.p-bundestag-career .bc-read h3 { font-size: 1.5rem; }

/* Electoral system */
.p-bundestag-career .bc-system { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.p-bundestag-career .bc-system h2 { font-size: clamp(2.2rem, 4.4vw, 3.6rem); }
.p-bundestag-career .bc-ballot { margin: 0; position: sticky; top: calc(var(--header-h) + 24px); }
.p-bundestag-career .bc-ballot svg { width: 100%; height: auto; display: block; }
.p-bundestag-career .bc-ballot figcaption { font-size: .84rem; color: var(--ink-soft); margin-top: 10px; }

/* Article rail photo */
.p-bundestag-career .bc-photo { max-width: 272px; margin-bottom: 28px; }

/* Phases */
.p-bundestag-career .bc-phases { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid rgba(248, 246, 241, .4); }
.p-bundestag-career .bc-phases article { padding: 26px 24px 8px 0; border-right: 1px solid rgba(248, 246, 241, .25); }
.p-bundestag-career .bc-phases article + article { padding-left: 24px; }
.p-bundestag-career .bc-phases article:last-child { border-right: 0; }
.p-bundestag-career .bc-phases .meta { color: #F2D9CF; display: block; margin-bottom: 10px; }
.p-bundestag-career .bc-phases h3 { color: var(--warm); font-size: 1.6rem; }
.p-bundestag-career .bc-phases p { color: #E6EBEE; font-size: .95rem; }

@media (max-width: 1024px) {
  .p-bundestag-career .bc-system { grid-template-columns: minmax(0, 1fr); }
  .p-bundestag-career .bc-ballot { position: static; max-width: 420px; }
  .p-bundestag-career .bc-photo { max-width: 250px; }
}
@media (max-width: 760px) {
  .p-bundestag-career .bc-row { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .p-bundestag-career .bc-chart__scale { display: none; }
  .p-bundestag-career .bc-read, .p-bundestag-career .bc-phases { grid-template-columns: minmax(0, 1fr); }
  .p-bundestag-career .bc-phases article, .p-bundestag-career .bc-phases article + article { padding: 22px 0 6px; border-right: 0; border-bottom: 1px solid rgba(248, 246, 241, .25); }
}
@media (prefers-reduced-motion: reduce) { .p-bundestag-career .bc-bar__fill { animation: none; } }

/* ---- ludwigsburg ---- */
.p-ludwigsburg .ph-split h1 { font-size: clamp(2.4rem, 5.4vw, 4.6rem); line-height: 1; }
.p-ludwigsburg .lb-kv { margin-top: 26px; max-width: 460px; }

.p-ludwigsburg .lb-place { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.p-ludwigsburg .lb-place h2 { font-size: clamp(2rem, 4vw, 3.2rem); }
.p-ludwigsburg .lb-place__stats .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 22px; }
.p-ludwigsburg .lb-place__stats .stat__num { font-size: clamp(2rem, 3.6vw, 3rem); }

.p-ludwigsburg .lb-industry { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border-top: 2px solid var(--graphite); }
.p-ludwigsburg .lb-firm { padding: 0 22px 26px 0; border-right: 1px solid var(--rule); position: relative; }
.p-ludwigsburg .lb-firm + .lb-firm { padding-left: 22px; }
.p-ludwigsburg .lb-firm:last-child { border-right: 0; }
.p-ludwigsburg .lb-firm__place { display: inline-block; font-family: var(--f-mono); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: var(--warm); background: var(--terra-deep); padding: 4px 9px; margin: 0 0 18px; transform: translateY(-1px); }
.p-ludwigsburg .lb-firm h3 { font-size: 1.7rem; }
.p-ludwigsburg .lb-firm p { font-size: .94rem; color: var(--ink-soft); margin: 0; }
.p-ludwigsburg .lb-firm--dark { background: var(--slate-ink); color: var(--warm); padding-top: 0; }
.p-ludwigsburg .lb-firm--dark h3 { color: var(--warm); }
.p-ludwigsburg .lb-firm--dark p { color: #E6EBEE; }
.p-ludwigsburg .lb-firm--dark .lb-firm__place { background: var(--signal); color: var(--graphite); }
.p-ludwigsburg .lb-firm--dark, .p-ludwigsburg .lb-firm--dark + .lb-firm { padding-left: 22px; }
.p-ludwigsburg .lb-aside { max-width: 78ch; margin: clamp(28px, 4vw, 44px) 0 0; padding-left: 20px; border-left: 3px solid var(--terra); color: var(--ink-soft); }

.p-ludwigsburg .lb-net { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.p-ludwigsburg .lb-net__map { background: var(--warm); border: 1px solid var(--rule-strong); padding: 10px; box-shadow: 14px 14px 0 rgba(96, 120, 138, .25); }
.p-ludwigsburg .lb-net__map svg { width: 100%; height: auto; display: block; }
.p-ludwigsburg .lb-net h2 { font-size: clamp(2rem, 3.8vw, 3rem); }
.p-ludwigsburg .lb-legend { list-style: none; margin: 22px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 22px; font-size: .88rem; }
.p-ludwigsburg .lb-legend li { display: flex; align-items: center; gap: 10px; }
.p-ludwigsburg .lb-key { flex: 0 0 34px; height: 5px; background: var(--graphite); }
.p-ludwigsburg .lb-key--road { height: 7px; }
.p-ludwigsburg .lb-key--b27 { background: var(--slate); }
.p-ludwigsburg .lb-key--s4 { background: var(--terra); }
.p-ludwigsburg .lb-key--s5 { background: var(--terra-deep); }
.p-ludwigsburg .lb-key--s6 { background: var(--signal); }
.p-ludwigsburg .lb-key--nbs { background: repeating-linear-gradient(90deg, var(--olive) 0 10px, transparent 10px 15px); height: 3px; }

.p-ludwigsburg .lb-rail-note { font-size: .86rem; color: var(--ink-soft); margin-top: 14px; }

.p-ludwigsburg .lb-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border-top: 2px solid var(--graphite); }
.p-ludwigsburg .lb-links > div { padding: 26px 28px 28px 0; border-bottom: 1px solid var(--rule-strong); }
.p-ludwigsburg .lb-links > div:nth-child(even) { padding-left: 28px; border-left: 1px solid var(--rule-strong); }
.p-ludwigsburg .lb-links__n { font-family: var(--f-display); font-size: 2.6rem; line-height: 1; color: var(--terra-deep); display: block; margin-bottom: 8px; }
.p-ludwigsburg .lb-links h3 { font-size: 1.45rem; }
.p-ludwigsburg .lb-links p { margin: 0; font-size: .96rem; }

@media (max-width: 1024px) {
  .p-ludwigsburg .lb-industry { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p-ludwigsburg .lb-firm, .p-ludwigsburg .lb-firm + .lb-firm { padding: 0 22px 26px; border-right: 0; border-bottom: 1px solid var(--rule); }
  .p-ludwigsburg .lb-firm--dark { padding-top: 0; }
}
@media (max-width: 860px) {
  .p-ludwigsburg .lb-place, .p-ludwigsburg .lb-net, .p-ludwigsburg .lb-links { grid-template-columns: minmax(0, 1fr); }
  .p-ludwigsburg .lb-net__map { max-width: 520px; }
  .p-ludwigsburg .lb-links > div, .p-ludwigsburg .lb-links > div:nth-child(even) { padding: 22px 0; border-left: 0; }
}
@media (max-width: 560px) {
  .p-ludwigsburg .lb-industry, .p-ludwigsburg .lb-legend, .p-ludwigsburg .lb-place__stats .stats { grid-template-columns: minmax(0, 1fr); }
  .p-ludwigsburg .lb-firm, .p-ludwigsburg .lb-firm + .lb-firm { padding: 0 0 24px; }
  .p-ludwigsburg .lb-firm.lb-firm--dark { padding: 0 16px 24px; }
  .p-ludwigsburg .lb-net__map { box-shadow: 8px 8px 0 rgba(96, 120, 138, .25); }
}
.p-ludwigsburg .prose .eyebrow + h2 { margin-top: .2em; }

/* ---- cdu-career ---- */
.p-cdu-career .cdu-head__fig { max-width: 600px; justify-self: end; width: 100%; }
.p-cdu-career .cdu-head h1 { max-width: 12ch; }

.p-cdu-career .cdu-org__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(20px, 4vw, 56px); }
.p-cdu-career .cdu-org__h { font-family: var(--f-mono); font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; color: var(--slate-ink); font-weight: 500; padding-bottom: 10px; border-bottom: 2px solid var(--graphite); margin-bottom: 18px; }
.p-cdu-career .cdu-tree { list-style: none; margin: 0; padding: 0 0 0 26px; position: relative; }
.p-cdu-career .cdu-tree::before { content: ""; position: absolute; left: 8px; top: 18px; bottom: 30px; width: 2px; background: var(--slate); }
.p-cdu-career .cdu-tree li { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); padding: 14px 18px; margin-bottom: 12px; background: var(--warm); border: 1px solid rgba(41,43,45,.25); }
.p-cdu-career .cdu-tree li::before { content: ""; position: absolute; left: -18px; top: 24px; width: 18px; height: 2px; background: var(--slate); }
.p-cdu-career .cdu-tree li::after { content: ""; position: absolute; left: -24px; top: 19px; width: 8px; height: 8px; border-radius: 50%; background: var(--mist); border: 2px solid var(--slate); }
.p-cdu-career .cdu-tree li.is-held { border-color: var(--terra); box-shadow: inset 4px 0 0 var(--terra); }
.p-cdu-career .cdu-tree li.is-held::before { background: var(--terra); }
.p-cdu-career .cdu-tree li.is-held::after { background: var(--terra); border-color: var(--terra-deep); }
.p-cdu-career .cdu-tree .meta { font-size: .62rem; }
.p-cdu-career .cdu-tree strong { font-family: var(--f-display); font-weight: 400; font-size: 1.25rem; line-height: 1.2; }
.p-cdu-career .cdu-tree__who { font-size: .86rem; color: var(--ink-soft); }
.p-cdu-career .cdu-tree li.is-held .cdu-tree__who { color: var(--terra-deep); font-weight: 600; }

.p-cdu-career .cdu-body .prose h2 { font-size: clamp(1.6rem, 2.8vw, 2.2rem); }
.p-cdu-career .cdu-body .prose h2:first-child { margin-top: 0; }
.p-cdu-career .cdu-body .prose h2::before { content: ""; display: block; width: 40px; height: 3px; background: var(--slate); margin-bottom: 14px; }
.p-cdu-career .cdu-quote { margin: 1.6em 0; }
.p-cdu-career .cdu-rail .note { margin-top: 18px; }

@media (max-width: 860px) {
  .p-cdu-career .cdu-org__cols { grid-template-columns: minmax(0, 1fr); }
  .p-cdu-career .cdu-head__fig { justify-self: start; }
}

/* ---- parliamentary-leadership ---- */
.p-parliamentary-leadership .ph-sheet h1 { font-size: clamp(2.3rem, 5vw, 4.2rem); line-height: 1.02; }

/* Org chart */
.p-parliamentary-leadership .pl-org { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.p-parliamentary-leadership .pl-org__chart { background: var(--warm); border: 1px solid var(--rule-strong); padding: clamp(18px, 3vw, 32px); }
.p-parliamentary-leadership .pl-node { border: 2px solid var(--graphite); background: var(--warm); padding: 12px 14px; position: relative; }
.p-parliamentary-leadership .pl-node .meta { display: block; margin-bottom: 4px; }
.p-parliamentary-leadership .pl-node strong { display: block; font-family: var(--f-display); font-weight: 400; font-size: 1.25rem; line-height: 1.15; }
.p-parliamentary-leadership .pl-node em { display: block; font-style: normal; font-size: .84rem; color: var(--ink-soft); margin-top: 4px; }
.p-parliamentary-leadership .pl-node--top { max-width: 260px; margin: 0 auto; text-align: center; background: var(--graphite); color: var(--warm); }
.p-parliamentary-leadership .pl-node--top .meta { color: #E6EBEE; }
.p-parliamentary-leadership .pl-node--terra { border-color: var(--terra-deep); background: #F3E5DE; }
.p-parliamentary-leadership .pl-node--sub { border-width: 1px; border-style: dashed; margin-top: 22px; }
.p-parliamentary-leadership .pl-node--sub::before { content: ""; position: absolute; left: 50%; top: -24px; height: 22px; border-left: 2px solid var(--slate); }
.p-parliamentary-leadership .pl-branch { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 30px; position: relative; padding-top: 22px; }
.p-parliamentary-leadership .pl-branch::before { content: ""; position: absolute; top: -30px; left: 50%; height: 30px; border-left: 2px solid var(--graphite); }
.p-parliamentary-leadership .pl-branch::after { content: ""; position: absolute; top: 0; left: 25%; right: 25%; border-top: 2px solid var(--graphite); }
.p-parliamentary-leadership .pl-col { position: relative; }
.p-parliamentary-leadership .pl-col::before { content: ""; position: absolute; top: -22px; left: 50%; height: 22px; border-left: 2px solid var(--graphite); }
.p-parliamentary-leadership .pl-mark { margin: 16px 0 0; padding: 10px 12px; font-size: .82rem; line-height: 1.45; background: var(--terra); color: #fff; }

/* Opposition */
.p-parliamentary-leadership .pl-opp { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: center; margin-bottom: clamp(36px, 5vw, 60px); }
.p-parliamentary-leadership .pl-opp h2 { font-size: clamp(2rem, 4vw, 3.2rem); }
.p-parliamentary-leadership .pl-opp__fig { max-width: 739px; }
.p-parliamentary-leadership .pl-records .evidence { background: var(--warm); }
.p-parliamentary-leadership .pl-coal { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(24px, 4vw, 64px); align-items: center; margin-top: clamp(32px, 5vw, 56px); }
.p-parliamentary-leadership .pl-coal h3 { font-size: 1.6rem; }

/* Compare */
.p-parliamentary-leadership .pl-compare { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border-top: 1px solid rgba(248, 246, 241, .4); }
.p-parliamentary-leadership .pl-compare__col { padding: 26px 32px 10px 0; }
.p-parliamentary-leadership .pl-compare__col + .pl-compare__col { padding: 26px 0 10px 32px; border-left: 1px solid rgba(248, 246, 241, .3); }
.p-parliamentary-leadership .pl-compare .meta { color: #F2D9CF; display: block; margin-bottom: 10px; }
.p-parliamentary-leadership .pl-compare h3 { color: var(--warm); font-size: clamp(1.8rem, 3vw, 2.4rem); }
.p-parliamentary-leadership .pl-compare ul { list-style: none; margin: 0; padding: 0; }
.p-parliamentary-leadership .pl-compare li { padding: 10px 0 10px 22px; border-bottom: 1px solid rgba(248, 246, 241, .18); color: #E6EBEE; position: relative; font-size: .95rem; }
.p-parliamentary-leadership .pl-compare li::before { content: ""; position: absolute; left: 0; top: 18px; width: 10px; height: 2px; background: var(--terra); }

@media (max-width: 960px) {
  .p-parliamentary-leadership .pl-org, .p-parliamentary-leadership .pl-opp, .p-parliamentary-leadership .pl-coal { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .p-parliamentary-leadership .pl-compare { grid-template-columns: minmax(0, 1fr); }
  .p-parliamentary-leadership .pl-compare__col, .p-parliamentary-leadership .pl-compare__col + .pl-compare__col { padding: 22px 0 8px; border-left: 0; }
}
@media (max-width: 440px) {
  .p-parliamentary-leadership .pl-branch { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .p-parliamentary-leadership .pl-branch::after { display: none; }
  .p-parliamentary-leadership .pl-col::before { display: none; }
}
.p-parliamentary-leadership .prose .eyebrow + h2 { margin-top: .2em; }

/* ---- parliamentary-state-secretary ---- */
.p-parliamentary-state-secretary .ph-split h1 { font-size: clamp(2.3rem, 5vw, 4.2rem); line-height: 1.02; }

/* Two kinds of state secretary */
.p-parliamentary-state-secretary .pss-twin { display: grid; grid-template-columns: minmax(0, 1fr) 90px minmax(0, 1fr); align-items: stretch; border-top: 2px solid var(--graphite); border-bottom: 1px solid var(--rule-strong); }
.p-parliamentary-state-secretary .pss-twin__col { padding: 26px 0 22px; }
.p-parliamentary-state-secretary .pss-twin__col .meta { display: block; margin-bottom: 8px; }
.p-parliamentary-state-secretary .pss-twin__col h3 { font-size: clamp(1.6rem, 3vw, 2.2rem); }
.p-parliamentary-state-secretary .pss-twin__col ul { list-style: none; margin: 0; padding: 0; }
.p-parliamentary-state-secretary .pss-twin__col li { padding: 9px 0 9px 20px; border-top: 1px solid var(--rule); position: relative; font-size: .95rem; }
.p-parliamentary-state-secretary .pss-twin__col li::before { content: ""; position: absolute; left: 0; top: 17px; width: 9px; height: 9px; border: 2px solid var(--slate); border-radius: 50%; }
.p-parliamentary-state-secretary .pss-twin__col--pol h3 { color: var(--terra-deep); }
.p-parliamentary-state-secretary .pss-twin__col--pol li::before { border-color: var(--terra); background: var(--terra); }
.p-parliamentary-state-secretary .pss-twin__axis { position: relative; display: flex; align-items: flex-start; justify-content: center; padding-top: 30px; }
.p-parliamentary-state-secretary .pss-twin__axis::before { content: ""; position: absolute; top: 0; bottom: 0; left: 50%; border-left: 2px dashed var(--rule-strong); }
.p-parliamentary-state-secretary .pss-twin__axis span { position: relative; background: var(--graphite); color: var(--warm); font-family: var(--f-mono); font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; padding: 8px 6px; writing-mode: vertical-rl; transform: rotate(180deg); }
.p-parliamentary-state-secretary .pss-role-text { margin-top: clamp(28px, 4vw, 44px); }

/* Portfolio */
.p-parliamentary-state-secretary .pss-port { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 80px); align-items: center; }
.p-parliamentary-state-secretary .pss-port .eyebrow { color: #F2D9CF; }
.p-parliamentary-state-secretary .pss-port h2 { color: var(--warm); font-size: clamp(2.2rem, 4.6vw, 3.8rem); }
.p-parliamentary-state-secretary .pss-quote { border-color: rgba(248, 246, 241, .45); }
.p-parliamentary-state-secretary .pss-quote p { color: var(--warm); }
.p-parliamentary-state-secretary .pss-quote .quote__en, .p-parliamentary-state-secretary .pss-quote cite { color: #E6EBEE; }
.p-parliamentary-state-secretary .pss-wheel { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; counter-reset: none; }
.p-parliamentary-state-secretary .pss-wheel li { border: 1px solid rgba(248, 246, 241, .35); padding: 16px 16px 18px; color: var(--warm); position: relative; }
.p-parliamentary-state-secretary .pss-wheel__n { font-family: var(--f-mono); font-size: .7rem; color: #F2D9CF; display: block; margin-bottom: 8px; }
.p-parliamentary-state-secretary .pss-wheel strong { display: block; font-family: var(--f-display); font-weight: 400; font-size: 1.35rem; line-height: 1.15; }
.p-parliamentary-state-secretary .pss-wheel em { display: block; font-style: normal; font-size: .84rem; color: #E6EBEE; margin-top: 4px; }
.p-parliamentary-state-secretary .pss-wheel li:nth-child(3) { background: rgba(184, 92, 69, .35); }
.p-parliamentary-state-secretary .pss-wheel li.pss-wheel__extra { grid-column: 1 / -1; background: var(--terra-deep); border-color: var(--terra-deep); }
.p-parliamentary-state-secretary .pss-wheel__extra .pss-wheel__n { color: var(--warm); }

@media (max-width: 860px) {
  .p-parliamentary-state-secretary .pss-port { grid-template-columns: minmax(0, 1fr); }
  .p-parliamentary-state-secretary .pss-twin { grid-template-columns: minmax(0, 1fr); }
  .p-parliamentary-state-secretary .pss-twin__axis { padding: 0; height: 40px; }
  .p-parliamentary-state-secretary .pss-twin__axis::before { display: none; }
  .p-parliamentary-state-secretary .pss-twin__axis span { writing-mode: horizontal-tb; transform: none; padding: 6px 12px; }
}
@media (max-width: 420px) {
  .p-parliamentary-state-secretary .pss-wheel { grid-template-columns: minmax(0, 1fr); }
}
.p-parliamentary-state-secretary .prose .eyebrow + h2 { margin-top: .2em; }

/* ---- first-parliamentary-secretary ---- */
.p-first-parliamentary-secretary .ph-statement h1 { max-width: 11ch; }

/* Full-house ruler */
.p-first-parliamentary-secretary .fps-ruler { margin: 8px 0 34px; padding-top: 34px; }
.p-first-parliamentary-secretary .fps-ruler__track { position: relative; height: 34px; background: repeating-linear-gradient(90deg, rgba(41, 43, 45, .12) 0 1px, transparent 1px 10%), var(--warm); border: 1px solid var(--rule-strong); }
.p-first-parliamentary-secretary .fps-ruler__coal { position: absolute; left: 0; top: 0; bottom: 0; width: 52.06%; background: var(--terra); opacity: .85; }
.p-first-parliamentary-secretary .fps-mark { position: absolute; left: var(--x); top: -6px; bottom: -6px; width: 2px; background: var(--graphite); }
.p-first-parliamentary-secretary .fps-mark b, .p-first-parliamentary-secretary .fps-mark i { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.p-first-parliamentary-secretary .fps-mark--line { width: 3px; background: var(--graphite); top: -30px; }
.p-first-parliamentary-secretary .fps-mark--line b { position: absolute; width: auto; height: auto; clip: auto; overflow: visible; left: 8px; top: -2px; font-family: var(--f-mono); font-size: .78rem; font-weight: 500; color: var(--graphite); }
.p-first-parliamentary-secretary .fps-ruler__ends { display: flex; justify-content: space-between; font-family: var(--f-mono); font-size: .7rem; color: var(--slate-ink); margin-top: 8px; }

/* Close-up */
.p-first-parliamentary-secretary .fps-zoom { border-top: 2px solid var(--graphite); }
.p-first-parliamentary-secretary .fps-zoom__row { display: grid; grid-template-columns: 70px minmax(0, 1fr); grid-template-areas: "n bar" "n l"; gap: 4px 16px; padding: 14px 0; border-bottom: 1px solid var(--rule-strong); }
.p-first-parliamentary-secretary .fps-zoom__n { grid-area: n; font-family: var(--f-display); font-size: clamp(1.8rem, 3.4vw, 2.6rem); line-height: 1; color: var(--terra-deep); }
.p-first-parliamentary-secretary .fps-zoom__bar { grid-area: bar; display: block; height: 16px; width: var(--w); background: var(--slate); transform-origin: left; animation: fps-grow 1s var(--ease) both; }
.p-first-parliamentary-secretary .fps-zoom__row--line .fps-zoom__bar { background: var(--graphite); }
.p-first-parliamentary-secretary .fps-zoom__row--coal .fps-zoom__bar { background: var(--terra); }
.p-first-parliamentary-secretary .fps-zoom__l { grid-area: l; font-size: .92rem; color: var(--ink-soft); }
.p-first-parliamentary-secretary .fps-zoom__note { margin-top: 16px; font-size: .9rem; color: var(--ink-soft); max-width: 80ch; }
@keyframes fps-grow { from { transform: scaleX(.85); } to { transform: scaleX(1); } }

/* Log */
.p-first-parliamentary-secretary .fps-log__title { font-size: clamp(2.2rem, 5vw, 4rem); margin-bottom: clamp(24px, 4vw, 44px); }
.p-first-parliamentary-secretary .fps-log { border-top: 2px solid var(--graphite); }
.p-first-parliamentary-secretary .fps-entry { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: clamp(20px, 4vw, 56px); padding: clamp(24px, 4vw, 40px) 0; border-bottom: 1px solid var(--rule-strong); }
.p-first-parliamentary-secretary .fps-entry__date { position: relative; }
.p-first-parliamentary-secretary .fps-entry__date time { display: block; font-family: var(--f-display); font-size: clamp(1.5rem, 2.6vw, 2rem); line-height: 1.1; margin-bottom: 12px; }
.p-first-parliamentary-secretary .fps-entry__body { max-width: 760px; }
.p-first-parliamentary-secretary .fps-entry__body h3 { font-size: clamp(1.4rem, 2.4vw, 1.9rem); }
.p-first-parliamentary-secretary .fps-entry .quote { margin: 26px 0; }
.p-first-parliamentary-secretary .fps-entry .quote p { font-size: clamp(1.25rem, 2.4vw, 1.8rem); }
.p-first-parliamentary-secretary .fps-flag { padding: 12px 16px; border-left: 3px solid var(--slate); background: rgba(248, 246, 241, .7); font-size: .92rem; }

/* Reputation */
.p-first-parliamentary-secretary .fps-rep { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(28px, 5vw, 80px); align-items: center; }
.p-first-parliamentary-secretary .fps-rep h2 { font-size: clamp(2rem, 4vw, 3.2rem); }

@media (max-width: 860px) {
  .p-first-parliamentary-secretary .fps-entry, .p-first-parliamentary-secretary .fps-rep { grid-template-columns: minmax(0, 1fr); }
  .p-first-parliamentary-secretary .fps-entry { gap: 12px; }
}
@media (max-width: 480px) {
  .p-first-parliamentary-secretary .fps-zoom__row { grid-template-columns: 54px minmax(0, 1fr); gap: 4px 12px; }
  .p-first-parliamentary-secretary .fps-rep .fig--offset .fig__frame { box-shadow: 8px 8px 0 var(--clay); }
}
@media (prefers-reduced-motion: reduce) { .p-first-parliamentary-secretary .fps-zoom__bar { animation: none; } }
.p-first-parliamentary-secretary .prose .eyebrow + h2 { margin-top: .2em; }
.p-first-parliamentary-secretary .ph-statement__lede { max-width: 50ch; }

/* ---- federal-transport-minister ---- */
.p-federal-transport-minister .ftm-head { background:
  linear-gradient(90deg, transparent calc(100% - 1px), rgba(96,120,138,.1) 0) 0 0 / 80px 100%, var(--paper); overflow: clip; }
.p-federal-transport-minister .ftm-head .wrap { position: relative; z-index: 1; }
.p-federal-transport-minister .ftm-head h1 { font-size: clamp(2.7rem, 9vw, 8.4rem); max-width: 11ch; line-height: .92; letter-spacing: -.02em; margin-bottom: .25em; }
.p-federal-transport-minister .ftm-head__since { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 18px; font-family: var(--f-display); font-size: clamp(1.6rem, 3.6vw, 2.9rem); line-height: 1.05; color: var(--terra-deep); margin: 0 0 28px; padding-bottom: 22px; border-bottom: 2px solid var(--graphite); max-width: 760px; }
.p-federal-transport-minister .ftm-head__since .meta { font-size: .72rem; }

.p-federal-transport-minister .ftm-band { padding: 0 0 clamp(48px, 7vw, 96px); background: linear-gradient(var(--paper) 0 30%, var(--graphite) 30% 100%); }
.p-federal-transport-minister .ftm-band__fig { max-width: 1240px; margin-inline: auto; }
.p-federal-transport-minister .ftm-band__fig .fig__frame { background: var(--warm); box-shadow: 0 30px 60px -30px rgba(0,0,0,.6); }
.p-federal-transport-minister .ftm-band__fig figcaption { color: #E6EBEE; }
.p-federal-transport-minister .ftm-band__fig figcaption::before { color: var(--clay); }
.p-federal-transport-minister .ftm-band__rail { max-width: 1240px; margin: clamp(28px, 4vw, 48px) auto 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 3px solid var(--terra); }
.p-federal-transport-minister .ftm-band__rail > div { padding: 18px 20px 4px 0; position: relative; }
.p-federal-transport-minister .ftm-band__rail > div + div { padding-left: 20px; border-left: 1px solid rgba(248,246,241,.25); }
.p-federal-transport-minister .ftm-band__rail > div::before { content: ""; position: absolute; top: -11px; left: 0; width: 13px; height: 13px; border-radius: 50%; background: var(--graphite); border: 3px solid var(--terra); }
.p-federal-transport-minister .ftm-band__rail > div + div::before { left: 20px; }
.p-federal-transport-minister .ftm-band__rail dt { font-family: var(--f-mono); font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: var(--clay); margin-bottom: 6px; }
.p-federal-transport-minister .ftm-band__rail dd { margin: 0; font-family: var(--f-display); font-size: clamp(1.15rem, 1.8vw, 1.5rem); line-height: 1.15; color: var(--warm); }

.p-federal-transport-minister .ftm-handover__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.p-federal-transport-minister .ftm-handover__fig { max-width: 750px; }
.p-federal-transport-minister .ftm-handover .quote { margin-top: 24px; }
.p-federal-transport-minister .ftm-handover h2 { font-style: italic; }

.p-federal-transport-minister .ftm-oath__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: clamp(28px, 5vw, 64px); align-items: start; }
.p-federal-transport-minister .ftm-oath__fig .fig__frame { box-shadow: -16px 16px 0 var(--mist); }
.p-federal-transport-minister .ftm-oath__text h2 { font-size: clamp(2rem, 3.6vw, 3rem); }

.p-federal-transport-minister .org { border: 1px solid var(--rule-strong); background: var(--warm); padding: clamp(18px, 3vw, 36px); }
.p-federal-transport-minister .org__top { max-width: 420px; margin: 0 auto; text-align: center; padding: 18px 20px; border: 2px solid var(--graphite); background: var(--paper); position: relative; }
.p-federal-transport-minister .org__top strong { display: block; font-family: var(--f-display); font-weight: 400; font-size: clamp(1.5rem, 2.6vw, 2.1rem); line-height: 1.1; margin: 4px 0; }
.p-federal-transport-minister .org__top::after { content: ""; position: absolute; left: 50%; bottom: -30px; width: 3px; height: 28px; background: var(--terra); transform: translateX(-50%); }
.p-federal-transport-minister .org__sub { display: block; font-size: .84rem; color: var(--ink-soft); }
.p-federal-transport-minister .org__lines { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 30px; padding-top: 26px; border-top: 3px solid var(--terra); }
.p-federal-transport-minister .org__heads { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--graphite); border-bottom: 1px solid var(--graphite); }
.p-federal-transport-minister .org__heads > div { padding: 12px 12px 12px 0; }
.p-federal-transport-minister .org__heads > div + div { padding-left: 12px; border-left: 1px solid var(--rule); }
.p-federal-transport-minister .org__heads .meta { display: block; font-size: .64rem; }
.p-federal-transport-minister .org__heads strong { font-family: var(--f-display); font-weight: 400; font-size: 1.2rem; line-height: 1.15; display: block; margin-top: 4px; }
.p-federal-transport-minister .org__deps { list-style: none; margin: 0; padding: 0; }
.p-federal-transport-minister .org__deps li { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--rule); font-size: .92rem; }
.p-federal-transport-minister .org__deps b { font-family: var(--f-mono); font-weight: 500; font-size: .8rem; color: var(--warm); background: var(--slate-ink); text-align: center; padding: 3px 0; align-self: start; }
.p-federal-transport-minister .ftm-note-small { max-width: 820px; margin: 22px 0 0; font-size: .92rem; color: var(--ink-soft); }
.p-federal-transport-minister .ftm-agencies { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(24px, 4vw, 56px); margin-top: clamp(32px, 5vw, 56px); padding-top: 28px; border-top: 1px solid var(--graphite); }
.p-federal-transport-minister .ftm-agencies p { font-size: .96rem; }

.p-federal-transport-minister .prio-table { border-top: 2px solid var(--graphite); margin-bottom: 28px; }
.p-federal-transport-minister .prio-table__row { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.1fr) minmax(0, 1.1fr); gap: 0 28px; padding: 22px 0; border-bottom: 1px solid var(--rule); margin: 0; }
.p-federal-transport-minister .prio-table__row h3 { font-size: clamp(1.25rem, 1.8vw, 1.5rem); margin: 0; }
.p-federal-transport-minister .prio-table__row p { margin: 0; font-size: .93rem; color: var(--ink-soft); }
.p-federal-transport-minister .prio-table__row p:last-child { border-left: 3px solid var(--terra); padding-left: 16px; }
.p-federal-transport-minister .prio-table__row .tag { margin-right: 6px; vertical-align: 1px; }
.p-federal-transport-minister .prio-table__row--head { padding: 10px 0; font-family: var(--f-mono); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: var(--slate-ink); }

@media (max-width: 1024px) {
  .p-federal-transport-minister .ftm-band__rail { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 22px; }
  .p-federal-transport-minister .ftm-band__rail > div:nth-child(3) { padding-left: 0; border-left: 0; }
  .p-federal-transport-minister .ftm-band__rail > div:nth-child(3)::before { left: 0; }
  .p-federal-transport-minister .ftm-oath__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 860px) {
  .p-federal-transport-minister .ftm-handover__grid, .p-federal-transport-minister .org__lines, .p-federal-transport-minister .ftm-agencies { grid-template-columns: minmax(0, 1fr); }
  .p-federal-transport-minister .prio-table__row { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .p-federal-transport-minister .prio-table__row--head { display: none; }
}
@media (max-width: 520px) {
  .p-federal-transport-minister .ftm-band__rail { grid-template-columns: minmax(0, 1fr); }
  .p-federal-transport-minister .ftm-band__rail > div, .p-federal-transport-minister .ftm-band__rail > div + div { padding-left: 0; border-left: 0; }
  .p-federal-transport-minister .ftm-band__rail > div + div::before { left: 0; }
  .p-federal-transport-minister .org__heads { grid-template-columns: minmax(0, 1fr); }
  .p-federal-transport-minister .org__heads > div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--rule); }
  .p-federal-transport-minister .ftm-oath__fig .fig__frame { box-shadow: -8px 8px 0 var(--mist); }
}

/* ---- transport-policy ---- */
.p-transport-policy .tp-frame { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 520px); gap: clamp(28px, 5vw, 72px); align-items: start; }
.p-transport-policy .tp-frame .prose { max-width: 680px; }
.p-transport-policy .tp-frame__fig { position: sticky; top: calc(var(--header-h) + 24px); max-width: 542px; }
.p-transport-policy .tp-frame__fig .fig__frame { box-shadow: 14px 14px 0 var(--mist); }

.p-transport-policy .tp-matrix { min-width: 760px; background: var(--warm); }
.p-transport-policy .tp-matrix th[scope="row"] { font-family: var(--f-display); font-weight: 400; font-size: 1.08rem; line-height: 1.2; width: 20%; padding-left: 12px; }
.p-transport-policy .tp-matrix td { font-size: .88rem; color: var(--ink-soft); width: 26.6%; }
.p-transport-policy .tp-matrix thead th:first-child { padding-left: 12px; }
.p-transport-policy .tp-matrix tbody tr:nth-child(odd) { background: rgba(233,226,213,.45); }
.p-transport-policy .mk { display: block; width: max-content; margin-bottom: 4px; font-family: var(--f-mono); font-size: .64rem; letter-spacing: .1em; text-transform: uppercase; padding: 2px 7px; border: 1px solid var(--rule-strong); color: var(--slate-ink); }
.p-transport-policy .mk--lead { background: var(--terra-deep); border-color: var(--terra-deep); color: #fff; }
.p-transport-policy .mk--share { background: var(--mist); border-color: var(--slate); color: var(--graphite); }
.p-transport-policy .mk--fund { background: var(--clay); border-color: var(--terra); color: var(--graphite); }

.p-transport-policy .tp-areas { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 2px solid var(--graphite); }
.p-transport-policy .tp-areas article { position: relative; padding: 24px 22px 26px 0; border-bottom: 1px solid var(--rule); }
.p-transport-policy .tp-areas article:not(:nth-child(4n)) { border-right: 1px solid var(--rule); }
.p-transport-policy .tp-areas article:not(:nth-child(4n+1)) { padding-left: 22px; }
.p-transport-policy .tp-areas__n { display: block; font-family: var(--f-mono); font-size: .74rem; color: var(--terra-deep); letter-spacing: .1em; margin-bottom: 10px; }
.p-transport-policy .tp-areas h3 { font-size: 1.45rem; margin-bottom: 8px; }
.p-transport-policy .tp-areas h3 a { color: var(--ink); text-decoration-color: var(--terra); }
.p-transport-policy .tp-areas h3 a:hover { color: var(--terra-deep); }
.p-transport-policy .tp-areas p { font-size: .9rem; color: var(--ink-soft); margin: 0; }
.p-transport-policy .tp-areas article:nth-child(3) { background: linear-gradient(var(--terra), var(--terra)) 0 0 / 100% 4px no-repeat; }

.p-transport-policy .tp-pos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.p-transport-policy .tp-pos .evidence { margin: 0; grid-template-columns: minmax(0, 1fr); }
.p-transport-policy .tp-pos .evidence > div + div { border-left: 0; border-top: 1px solid var(--rule-strong); }
.p-transport-policy .tp-pos .evidence > div:nth-child(2) { background: var(--warm); border-left: 4px solid var(--terra); }
.p-transport-policy .tp-pos .evidence p { font-size: .94rem; }

@media (max-width: 1024px) {
  .p-transport-policy .tp-frame { grid-template-columns: minmax(0, 1fr); }
  .p-transport-policy .tp-frame__fig { position: static; }
  .p-transport-policy .tp-areas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p-transport-policy .tp-areas article { padding: 22px 18px 24px 0 !important; border-right: 0 !important; }
  .p-transport-policy .tp-areas article:nth-child(odd) { border-right: 1px solid var(--rule) !important; }
  .p-transport-policy .tp-areas article:nth-child(even) { padding-left: 18px !important; }
}
@media (max-width: 860px) {
  .p-transport-policy .tp-pos { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .p-transport-policy .tp-areas { grid-template-columns: minmax(0, 1fr); }
  .p-transport-policy .tp-areas article:nth-child(n) { padding: 20px 0 !important; border-right: 0 !important; }
}

/* ---- road-infrastructure ---- */
.p-road-infrastructure .p-road__schematic { background: var(--warm); border: 1px solid var(--rule-strong); padding: clamp(10px, 2vw, 24px); margin-bottom: clamp(24px, 3vw, 40px); }
.p-road-infrastructure .p-road__flow li { padding-right: 22px; }
.p-road-infrastructure .p-road__split { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(24px, 5vw, 80px); align-items: start; }
.p-road-infrastructure .p-road__split h2 { font-size: clamp(2rem, 4.2vw, 3.4rem); position: sticky; top: calc(var(--header-h) + 24px); }
.p-road-infrastructure .p-road__pillars { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 3px solid var(--graphite); margin-bottom: 28px; }
.p-road-infrastructure .p-road__pillars > div { padding: 24px 24px 26px 0; border-right: 1px solid var(--rule-strong); position: relative; }
.p-road-infrastructure .p-road__pillars > div + div { padding-left: 24px; }
.p-road-infrastructure .p-road__pillars > div:last-child { border-right: 0; }
.p-road-infrastructure .p-road__pillars > div::before { content: ""; position: absolute; top: -9px; left: 0; width: 15px; height: 15px; background: var(--terra); }
.p-road-infrastructure .p-road__pillars > div + div::before { left: 24px; }
.p-road-infrastructure .p-road__pillars .meta { display: block; margin-bottom: 8px; }
.p-road-infrastructure .p-road__pillars p { font-size: .95rem; color: var(--ink-soft); margin: 0; }
.p-road-infrastructure .p-road__fine { max-width: 72ch; margin-bottom: 32px; }
.p-road-infrastructure .p-road__q2 { border-top: 0; }
.p-road-infrastructure .p-road__q2 p:first-child { font-size: clamp(1.25rem, 2.2vw, 1.8rem); }
@media (max-width: 860px) {
  .p-road-infrastructure .p-road__split { grid-template-columns: minmax(0, 1fr); }
  .p-road-infrastructure .p-road__split h2 { position: static; }
  .p-road-infrastructure .p-road__pillars { grid-template-columns: minmax(0, 1fr); }
  .p-road-infrastructure .p-road__pillars > div, .p-road-infrastructure .p-road__pillars > div + div { padding: 22px 0; border-right: 0; border-bottom: 1px solid var(--rule); }
  .p-road-infrastructure .p-road__pillars > div + div::before { left: 0; }
  .p-road-infrastructure .p-road__pillars > div::before { top: -8px; }
}

/* ---- bridges ---- */
.p-bridges .p-br__sheet { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 0; border: 1px solid var(--rule-strong); background: var(--warm); }
.p-bridges .p-br__draw { padding: clamp(14px, 2.5vw, 32px); border-right: 1px solid var(--rule-strong); display: flex; align-items: center; background:
  repeating-linear-gradient(0deg, rgba(96,120,138,.07) 0 1px, transparent 1px 24px),
  repeating-linear-gradient(90deg, rgba(96,120,138,.07) 0 1px, transparent 1px 24px); }
.p-bridges .p-br__lbl text { font-family: var(--f-mono); }
.p-bridges .p-br__legend { margin: 0; padding: 0; }
.p-bridges .p-br__legend > div { display: grid; grid-template-columns: 44px minmax(0, 1fr); border-bottom: 1px solid var(--rule); }
.p-bridges .p-br__legend > div:last-child { border-bottom: 0; }
.p-bridges .p-br__legend dt { font-family: var(--f-mono); font-weight: 500; font-size: .9rem; color: var(--warm); background: var(--graphite); display: grid; place-items: center; }
.p-bridges .p-br__legend > div:nth-child(2) dt { background: var(--terra-deep); }
.p-bridges .p-br__legend dd { margin: 0; padding: 12px 16px; font-size: .88rem; line-height: 1.5; color: var(--ink-soft); }
.p-bridges .p-br__legend strong { color: var(--ink); }
.p-bridges .p-br__data { margin-top: clamp(28px, 4vw, 48px); max-width: 920px; }
.p-bridges .p-br__data h3 { font-family: var(--f-mono); font-size: .76rem; letter-spacing: .12em; text-transform: uppercase; color: var(--slate-ink); font-weight: 500; }
.p-bridges .p-br__mini { min-width: 0; }
.p-bridges .p-br__bars { display: grid; gap: 8px; margin: 16px 0 10px; }
.p-bridges .p-br__h { margin-bottom: clamp(24px, 3vw, 40px); }
.p-bridges .p-br__cases { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border-top: 2px solid var(--graphite); }
.p-bridges .p-br__case { padding: 28px 28px 30px 0; border-bottom: 1px solid var(--rule-strong); display: flex; flex-direction: column; }
.p-bridges .p-br__case:nth-child(2n) { padding: 28px 0 30px 28px; border-left: 1px solid var(--rule-strong); }
.p-bridges .p-br__case header .tag { margin-bottom: 12px; }
.p-bridges .p-br__case h3 { font-size: clamp(1.5rem, 2.4vw, 2rem); }
.p-bridges .p-br__case p { font-size: .95rem; }
.p-bridges .p-br__status { margin: auto 0 0; padding-top: 12px; border-top: 1px dashed var(--rule-strong); font-size: .88rem !important; color: var(--ink-soft); }
.p-bridges .p-br__status .meta { color: var(--terra-deep); margin-right: 8px; }
.p-bridges .p-br__case--wide { grid-column: 1 / -1; padding-right: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 clamp(24px, 4vw, 56px); background: linear-gradient(90deg, transparent, rgba(217,197,184,.25)); }
.p-bridges .p-br__case--wide header, .p-bridges .p-br__case--wide > p { grid-column: 1; }
.p-bridges .p-br__case--wide .quote { grid-column: 2; grid-row: 1 / span 2; align-self: center; border-top-color: var(--terra); }
.p-bridges .p-br__case--wide .quote p:first-child { font-size: clamp(1.3rem, 2.4vw, 1.9rem); }
@media (max-width: 1024px) {
  .p-bridges .p-br__sheet { grid-template-columns: minmax(0, 1fr); }
  .p-bridges .p-br__draw { border-right: 0; border-bottom: 1px solid var(--rule-strong); }
}
@media (max-width: 760px) {
  .p-bridges .p-br__cases { grid-template-columns: minmax(0, 1fr); }
  .p-bridges .p-br__case, .p-bridges .p-br__case:nth-child(2n) { padding: 24px 0; border-left: 0; }
  .p-bridges .p-br__case--wide { grid-template-columns: minmax(0, 1fr); background: none; }
  .p-bridges .p-br__case--wide .quote { grid-column: 1; grid-row: auto; }
}

/* ---- rail ---- */
.p-rail .ph-split { background:
  repeating-linear-gradient(0deg, transparent 0 46px, rgba(96,120,138,.12) 46px 47px), var(--paper); border-bottom: 3px solid var(--graphite); }
.p-rail .ph-split h1 { font-size: clamp(4rem, 13vw, 10rem); line-height: .85; letter-spacing: -.03em; }
.p-rail .rl-head__fig { max-width: 618px; }
.p-rail .rl-head-kv { margin: 26px 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 2px solid var(--graphite); }
.p-rail .rl-head-kv > div { padding: 14px 14px 0 0; }
.p-rail .rl-head-kv > div + div { padding-left: 14px; border-left: 1px solid var(--rule); }
.p-rail .rl-head-kv dt { font-family: var(--f-mono); font-size: .64rem; letter-spacing: .1em; text-transform: uppercase; color: var(--slate-ink); line-height: 1.4; }
.p-rail .rl-head-kv dd { margin: 4px 0 0; font-family: var(--f-display); font-size: clamp(1.8rem, 3.4vw, 2.6rem); line-height: 1; color: var(--terra-deep); }
.p-rail .rl-head-kv > div:last-child dd { color: var(--slate-ink); }

/* Line map navigation */
.p-rail .rl-line { list-style: none; margin: 0; padding: 0; position: relative; }
.p-rail .rl-line::before { content: ""; position: absolute; left: 9px; top: 12px; bottom: 12px; width: 6px; background: var(--terra); border-radius: 3px; }
.p-rail .rl-line li { position: relative; }
.p-rail .rl-line a { display: block; padding: 8px 0 8px 36px; text-decoration: none; color: var(--ink); font-size: .95rem; line-height: 1.3; }
.p-rail .rl-line a::before { content: ""; position: absolute; left: 4px; top: 50%; width: 16px; height: 16px; margin-top: -8px; border-radius: 50%; background: var(--warm); border: 3px solid var(--graphite); }
.p-rail .rl-line a:hover { color: var(--terra-deep); }
.p-rail .rl-line a:hover::before { background: var(--signal); }
.p-rail .rl-line li:nth-child(4) a::before { width: 22px; height: 22px; margin-top: -11px; left: 1px; background: var(--graphite); border-color: var(--graphite); }

.p-rail .rl-main { min-width: 0; }
.p-rail .rl-stop { position: relative; padding: 0 0 clamp(36px, 5vw, 60px) clamp(22px, 3vw, 40px); border-left: 3px solid var(--slate); margin-left: 6px; }
.p-rail .rl-stop::before { content: ""; position: absolute; left: -12px; top: 2px; width: 21px; height: 21px; border-radius: 50%; background: var(--warm); border: 3px solid var(--graphite); }
.p-rail .rl-stop:last-child { border-left-color: transparent; padding-bottom: 0; }
.p-rail .rl-stop__km { display: block; margin-bottom: 8px; color: var(--terra-deep); }
.p-rail .rl-stop h2 { font-size: clamp(1.8rem, 3.2vw, 2.6rem); }
.p-rail .rl-stop--feature { background: var(--mist); padding-top: 28px; padding-right: clamp(18px, 3vw, 36px); padding-bottom: 28px; margin-bottom: clamp(36px, 5vw, 60px); }
.p-rail .rl-stop--feature::before { top: 30px; background: var(--terra); border-color: var(--terra-deep); }
.p-rail .rl-stop--feature .quote { margin: 8px 0 24px; }

.p-rail .rl-chart { margin: 26px 0 28px; padding: 22px clamp(14px, 2.4vw, 26px); background: var(--warm); border: 1px solid var(--rule-strong); }
.p-rail .rl-chart__scale { display: flex; justify-content: space-between; margin-left: calc(150px + 14px); margin-right: calc(64px + 14px); font-family: var(--f-mono); font-size: .66rem; color: var(--slate-ink); border-bottom: 1px solid var(--rule-strong); padding-bottom: 4px; margin-bottom: 10px; }
.p-rail .rl-chart__row { display: grid; grid-template-columns: 150px minmax(0, 1fr) 64px; gap: 14px; align-items: center; padding: 7px 0; }
.p-rail .rl-chart__lbl { font-size: .84rem; color: var(--ink-soft); line-height: 1.25; }
.p-rail .rl-chart__track { display: block; background: repeating-linear-gradient(90deg, rgba(41,43,45,.08) 0 1px, transparent 1px 25%); height: 18px; }
.p-rail .rl-chart__track .bar { height: 18px; }
.p-rail .rl-chart__val { font-family: var(--f-mono); font-size: .88rem; text-align: right; }
.p-rail .rl-chart__row--target .bar { background: repeating-linear-gradient(90deg, var(--terra) 0 6px, transparent 6px 10px); border: 2px solid var(--terra); }
.p-rail .rl-chart__row--target .rl-chart__val { color: var(--terra-deep); font-weight: 500; }
.p-rail .rl-chart figcaption { margin-top: 14px; font-size: .8rem; color: var(--slate-ink); }

.p-rail .rl-ruler { margin: 0 0 24px; padding: 18px 18px 14px; background: var(--warm); border: 1px solid var(--rule-strong); }
.p-rail .rl-ruler .meta { margin-bottom: 6px; }
.p-rail .rl-ruler .diagram .d-small { font-size: 17px; }
.p-rail .rl-ruler .diagram .d-label { font-size: 18px; fill: var(--slate-ink); }
.p-rail .rl-ruler__key { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 22px; font-size: .86rem; color: var(--ink-soft); }
.p-rail .rl-ruler__key b { font-family: var(--f-mono); font-weight: 500; color: var(--terra-deep); margin-right: 4px; }

.p-rail .rl-stats { margin: 6px 0 24px; }

@media (max-width: 1024px) {
  .p-rail .rl-body .rail { border: 1px solid var(--rule-strong); background: var(--warm); padding: 18px 18px 8px; margin-bottom: 28px; }
  .p-rail .rl-line { columns: 2 200px; column-gap: 24px; }
  .p-rail .rl-line::before { display: none; }
  .p-rail .rl-line li { break-inside: avoid; }
}
@media (max-width: 640px) {
  .p-rail .rl-head-kv { grid-template-columns: minmax(0, 1fr); }
  .p-rail .rl-head-kv > div, .p-rail .rl-head-kv > div + div { padding: 12px 0; border-left: 0; border-bottom: 1px solid var(--rule); display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
  .p-rail .rl-chart__scale { display: none; }
  .p-rail .rl-chart__row { grid-template-columns: minmax(0, 1fr) 58px; gap: 4px 10px; }
  .p-rail .rl-chart__lbl { grid-column: 1 / -1; }
  .p-rail .rl-stop { padding-left: 20px; }
}

/* ---- rail-infrastructure ---- */
.p-rail-infrastructure .ri-diagram { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: clamp(20px, 3vw, 40px); align-items: center; padding: clamp(16px, 3vw, 32px); background: var(--warm); border: 1px solid var(--rule-strong); margin-bottom: clamp(40px, 6vw, 72px);
  background-image: linear-gradient(rgba(96,120,138,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(96,120,138,.08) 1px, transparent 1px); background-size: 24px 24px; }
.p-rail-infrastructure .ri-legend { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--graphite); }
.p-rail-infrastructure .ri-legend li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--rule); font-size: .88rem; line-height: 1.45; color: var(--ink-soft); }
.p-rail-infrastructure .ri-legend b { width: 26px; height: 26px; border-radius: 50%; background: var(--terra); color: #fff; display: grid; place-items: center; font: 500 .78rem var(--f-mono); }
.p-rail-infrastructure .ri-legend strong { color: var(--ink); font-weight: 600; }

.p-rail-infrastructure .ri-two { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(28px, 5vw, 72px); align-items: start; }
.p-rail-infrastructure .ri-aside { border: 1px solid var(--rule-strong); padding: 20px 20px 6px; background: var(--paper); position: relative; }
.p-rail-infrastructure .ri-aside::before { content: ""; position: absolute; top: -7px; left: -7px; width: 14px; height: 14px; border: 2px solid var(--terra); border-right: 0; border-bottom: 0; }
.p-rail-infrastructure .ri-aside h3 { font-family: var(--f-mono); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--slate-ink); font-weight: 500; }
.p-rail-infrastructure .ri-aside .kv { grid-template-columns: minmax(0, 1fr); }
.p-rail-infrastructure .ri-aside .kv dt { padding-bottom: 0; border-bottom: 0; }
.p-rail-infrastructure .ri-aside .kv dd { font-size: .9rem; }

.p-rail-infrastructure .ri-cases { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin-top: clamp(36px, 5vw, 56px); border-top: 3px solid var(--graphite); }
.p-rail-infrastructure .ri-case { padding: 26px clamp(18px, 3vw, 36px) 28px 0; }
.p-rail-infrastructure .ri-case + .ri-case { padding-left: clamp(18px, 3vw, 36px); padding-right: 0; border-left: 1px dashed var(--rule-strong); }
.p-rail-infrastructure .ri-case h3 { font-size: clamp(1.5rem, 2.4vw, 2rem); }
.p-rail-infrastructure .ri-case__figs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--rule-strong); }
.p-rail-infrastructure .ri-case__figs li { padding: 12px 12px 12px 0; border-bottom: 1px solid var(--rule); font-size: .86rem; color: var(--ink-soft); line-height: 1.4; }
.p-rail-infrastructure .ri-case__figs b { display: block; font-family: var(--f-display); font-weight: 400; font-size: 1.7rem; line-height: 1.05; color: var(--terra-deep); margin-bottom: 2px; }

.p-rail-infrastructure .ri-instr { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1px solid rgba(248,246,241,.4); }
.p-rail-infrastructure .ri-instr article { padding: 26px 24px 8px 0; }
.p-rail-infrastructure .ri-instr article + article { padding-left: 24px; border-left: 1px solid rgba(248,246,241,.25); }
.p-rail-infrastructure .ri-instr .tag { color: var(--warm); border-color: rgba(248,246,241,.6); margin-bottom: 14px; }
.p-rail-infrastructure .ri-instr .tag--fill { background: var(--warm); color: var(--graphite); }
.p-rail-infrastructure .ri-instr .tag--terra { background: var(--terra-deep); border-color: var(--terra-deep); }
.p-rail-infrastructure .ri-instr p { font-size: .94rem; color: #E6EBEE; }
.p-rail-infrastructure .ri-instr strong { color: #F2D9CF; }

.p-rail-infrastructure .ri-demands { list-style: none; counter-reset: dm; margin: 24px 0 28px; padding: 0; border-top: 2px solid var(--graphite); }
.p-rail-infrastructure .ri-demands li { counter-increment: dm; position: relative; padding: 14px 0 14px 56px; border-bottom: 1px solid var(--rule); }
.p-rail-infrastructure .ri-demands li::before { content: counter(dm, decimal-leading-zero); position: absolute; left: 0; top: 12px; font-family: var(--f-display); font-size: 1.8rem; line-height: 1; color: var(--terra); }

@media (max-width: 1024px) {
  .p-rail-infrastructure .ri-diagram, .p-rail-infrastructure .ri-two { grid-template-columns: minmax(0, 1fr); }
  .p-rail-infrastructure .ri-instr { grid-template-columns: minmax(0, 1fr); }
  .p-rail-infrastructure .ri-instr article, .p-rail-infrastructure .ri-instr article + article { padding: 22px 0 6px; border-left: 0; border-bottom: 1px solid rgba(248,246,241,.25); }
}
@media (max-width: 760px) {
  .p-rail-infrastructure .ri-cases { grid-template-columns: minmax(0, 1fr); }
  .p-rail-infrastructure .ri-case, .p-rail-infrastructure .ri-case + .ri-case { padding: 22px 0; border-left: 0; }
  .p-rail-infrastructure .ri-case + .ri-case { border-top: 1px dashed var(--rule-strong); }
}
@media (max-width: 420px) {
  .p-rail-infrastructure .ri-case__figs { grid-template-columns: minmax(0, 1fr); }
}

/* ---- public-transport ---- */
.p-public-transport .pt-head { overflow: clip; }
.p-public-transport .pt-head .wrap { position: relative; z-index: 1; }
.p-public-transport .pt-head__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 14px; margin: clamp(20px, 4vw, 40px) 0 0; font-family: var(--f-display); font-size: clamp(3.6rem, 12vw, 9rem); line-height: .9; color: var(--terra-deep); letter-spacing: -.02em; }
.p-public-transport .pt-head__cur { font-size: .5em; align-self: flex-start; margin-top: .2em; }
.p-public-transport .pt-head__per { flex-basis: 100%; font-family: var(--f-mono); font-size: .76rem; letter-spacing: .12em; text-transform: uppercase; color: var(--slate-ink); margin-top: 12px; padding-top: 12px; border-top: 2px solid var(--graphite); max-width: 520px; }

.p-public-transport .pt-stack { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.p-public-transport .pt-stack__lvl { display: grid; grid-template-columns: 110px minmax(0, 220px) minmax(0, 1fr); gap: 4px 28px; align-items: baseline; padding: 22px 26px; background: var(--warm); border: 1px solid var(--rule-strong); border-top: 0; position: relative; }
.p-public-transport .pt-stack__lvl:first-child { border-top: 1px solid var(--rule-strong); }
.p-public-transport .pt-stack__lvl h3 { margin: 0; font-size: 1.4rem; }
.p-public-transport .pt-stack__lvl p { margin: 0; font-size: .93rem; color: var(--ink-soft); }
.p-public-transport .pt-stack__lvl--fed { margin-right: 0; border-left: 6px solid var(--graphite); }
.p-public-transport .pt-stack__lvl--land { margin-left: clamp(0px, 3vw, 40px); border-left: 6px solid var(--slate); }
.p-public-transport .pt-stack__lvl--mun { margin-left: clamp(0px, 6vw, 80px); border-left: 6px solid var(--terra); }
.p-public-transport .pt-stack__lvl--op { margin-left: clamp(0px, 9vw, 120px); border-left: 6px solid var(--signal); background: var(--paper); }
.p-public-transport .pt-stack__lvl + .pt-stack__lvl::before { content: ""; position: absolute; top: -12px; left: 34px; width: 0; height: 0; border-left: 8px solid transparent; border-right: 8px solid transparent; border-top: 12px solid var(--terra); }
.p-public-transport .pt-foot { max-width: 820px; margin: 26px 0 0; font-size: .95rem; color: var(--ink-soft); }

.p-public-transport .pt-ticket { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: center; margin-bottom: clamp(36px, 5vw, 56px); }
.p-public-transport .pt-steps { margin: 0; padding: 18px; background: var(--warm); border: 1px solid var(--rule-strong); }
.p-public-transport .pt-axis text { font-size: 14px; fill: var(--slate-ink); }
.p-public-transport .pt-steps__labels { list-style: none; margin: 10px 0 0; padding: 10px 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--rule); font-family: var(--f-mono); font-size: .72rem; letter-spacing: .06em; color: var(--slate-ink); }
.p-public-transport .pt-steps__labels b { display: block; font-family: var(--f-display); font-weight: 400; font-size: clamp(1.25rem, 2.4vw, 1.7rem); color: var(--graphite); letter-spacing: 0; }
.p-public-transport .pt-steps__labels .is-now b { color: var(--terra-deep); }
.p-public-transport .pt-steps figcaption { margin-top: 10px; font-size: .78rem; color: var(--slate-ink); }

.p-public-transport .pt-decision { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 0; margin-bottom: 28px; background: var(--graphite); color: var(--warm); }
.p-public-transport .pt-decision__head { padding: 24px 26px; border-right: 1px dashed rgba(248,246,241,.4); }
.p-public-transport .pt-decision__head .meta { color: var(--clay); display: block; margin-bottom: 8px; }
.p-public-transport .pt-decision__head h3 { color: var(--warm); margin: 0; font-size: clamp(1.35rem, 2.2vw, 1.8rem); }
.p-public-transport .pt-decision__kv { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.p-public-transport .pt-decision__kv > div { padding: 16px 22px; border-bottom: 1px solid rgba(248,246,241,.18); }
.p-public-transport .pt-decision__kv > div:nth-child(odd) { border-right: 1px solid rgba(248,246,241,.18); }
.p-public-transport .pt-decision__kv dt { font-family: var(--f-mono); font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; color: #E6EBEE; }
.p-public-transport .pt-decision__kv dd { margin: 4px 0 0; font-family: var(--f-display); font-size: 1.35rem; line-height: 1.15; }

.p-public-transport .pt-voices__h { margin-top: clamp(28px, 4vw, 44px); }
.p-public-transport .pt-voices { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.p-public-transport .pt-voices blockquote { margin: 0; padding: 20px 18px; background: #EFE4DC; border-top: 3px solid var(--terra); }
.p-public-transport .pt-voices p { font-size: .95rem; margin: 0 0 12px; }
.p-public-transport .pt-voices cite { font: 400 .74rem/1.45 var(--f-mono); font-style: normal; color: var(--slate-ink); }
.p-public-transport .pt-src-note { margin: 14px 0 0; font-size: .82rem; color: var(--slate-ink); }

.p-public-transport .pt-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.p-public-transport .pt-card { padding: 26px 26px 22px; background: var(--warm); border: 1px solid var(--rule-strong); position: relative; }
.p-public-transport .pt-card::after { content: ""; position: absolute; right: 18px; top: 22px; width: 34px; height: 34px; border-radius: 50%; border: 3px solid var(--slate); }
.p-public-transport .pt-card:nth-child(2)::after { border-color: var(--terra); background: var(--terra); }
.p-public-transport .pt-card .tag { margin-bottom: 14px; }
.p-public-transport .pt-card h3 { padding-right: 46px; }
.p-public-transport .pt-card p { font-size: .94rem; color: var(--ink-soft); margin: 0; }

@media (max-width: 1024px) {
  .p-public-transport .pt-voices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p-public-transport .pt-stack__lvl { grid-template-columns: 90px minmax(0, 1fr); }
  .p-public-transport .pt-stack__lvl p { grid-column: 1 / -1; margin-top: 8px; }
}
@media (max-width: 860px) {
  .p-public-transport .pt-ticket, .p-public-transport .pt-decision, .p-public-transport .pt-cards { grid-template-columns: minmax(0, 1fr); }
  .p-public-transport .pt-decision__head { border-right: 0; border-bottom: 1px dashed rgba(248,246,241,.4); }
}
@media (max-width: 560px) {
  .p-public-transport .pt-voices, .p-public-transport .pt-decision__kv { grid-template-columns: minmax(0, 1fr); }
  .p-public-transport .pt-decision__kv > div:nth-child(odd) { border-right: 0; }
  .p-public-transport .pt-stack__lvl { grid-template-columns: minmax(0, 1fr); padding: 18px; margin-left: 0 !important; }
  .p-public-transport .pt-steps__labels { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 8px; }
}

/* ---- logistics ---- */
.p-logistics .p-log__mini { min-width: 0; }
.p-logistics .p-log__mini th { font-family: var(--f-body); font-weight: 600; }
.p-logistics .p-log__chain { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)) minmax(0, 1.6fr) repeat(2, minmax(0, 1fr)); gap: 0; border-top: 2px solid var(--graphite); border-bottom: 2px solid var(--graphite); position: relative; background: var(--warm); }
.p-logistics .p-log__chain > li { padding: 24px 20px 26px; border-right: 1px solid var(--rule-strong); position: relative; }
.p-logistics .p-log__chain > li:last-child { border-right: 0; }
.p-logistics .p-log__chain > li:not(:last-child)::after { content: ""; position: absolute; right: -8px; top: 50%; width: 14px; height: 14px; background: var(--terra); transform: translateY(-50%) rotate(45deg); z-index: 1; }
.p-logistics .p-log__node svg { width: 64px; height: 48px; display: block; margin-bottom: 18px; }
.p-logistics .p-log__chain .meta { display: block; margin-bottom: 6px; }
.p-logistics .p-log__chain h3 { font-size: 1.35rem; margin-bottom: 6px; }
.p-logistics .p-log__chain p { font-size: .88rem; color: var(--ink-soft); margin: 0; line-height: 1.5; }
.p-logistics .p-log__modes { background: var(--mist); display: grid; gap: 10px; align-content: start; }
.p-logistics .p-log__lane { display: grid; grid-template-columns: 96px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 14px; align-items: center; padding: 10px 12px; background: var(--warm); border-left: 4px solid var(--slate); }
.p-logistics .p-log__lane--road { border-left-color: var(--terra); }
.p-logistics .p-log__lane svg { grid-row: 1 / span 2; width: 96px; height: 18px; }
.p-logistics .p-log__lane h3 { font-size: 1.1rem; margin: 0; }
.p-logistics .p-log__node--end { background: var(--slate-ink); color: var(--warm); }
.p-logistics .p-log__node--end h3 { color: var(--warm); }
.p-logistics .p-log__node--end p, .p-logistics .p-log__node--end .meta { color: #E6EBEE; }
.p-logistics .p-log__caption { margin: 18px 0 0; max-width: 78ch; font-size: .95rem; color: var(--ink-soft); }
.p-logistics .p-log__coord { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.p-logistics .p-log__quotes .quote { padding: 22px 0; }
.p-logistics .p-log__quotes .quote + .quote { border-top: 0; }
.p-logistics .p-log__quotes .quote p:first-child { font-size: clamp(1.15rem, 1.8vw, 1.45rem); }
.p-logistics .p-log__lw { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); }
.p-logistics .p-log__lw ul { padding-left: 1.2em; }
.p-logistics .p-log__lw li { margin-bottom: .4em; }
.p-logistics .p-log__lw li::marker { color: var(--clay); }
.p-logistics .section--slate .quote { border-top-color: var(--clay); border-bottom-color: rgba(248,246,241,.3); }
.p-logistics .section--slate .quote .quote__en, .p-logistics .section--slate .quote cite { color: #E6EBEE; }
.p-logistics .p-log__aside { font-size: .92rem; color: #E6EBEE; margin-top: 20px; }
.p-logistics .p-log__pair { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); margin-top: clamp(28px, 4vw, 48px); }
.p-logistics .p-log__pair .quote p:first-child { font-size: clamp(1.2rem, 2vw, 1.6rem); }
.p-logistics .p-log__note { max-width: 78ch; margin-top: 24px; color: var(--ink-soft); }
@media (max-width: 1100px) {
  .p-logistics .p-log__chain { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p-logistics .p-log__modes { grid-column: 1 / -1; grid-row: 2; border-top: 1px solid var(--rule-strong); border-bottom: 1px solid var(--rule-strong); border-right: 0 !important; }
  .p-logistics .p-log__chain > li:nth-child(2) { border-right: 0; }
  .p-logistics .p-log__chain > li::after { display: none; }
}
@media (max-width: 860px) {
  .p-logistics .p-log__coord, .p-logistics .p-log__lw, .p-logistics .p-log__pair { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 520px) {
  .p-logistics .p-log__chain { grid-template-columns: minmax(0, 1fr); }
  .p-logistics .p-log__chain > li { border-right: 0; border-bottom: 1px solid var(--rule-strong); }
  .p-logistics .p-log__modes { grid-row: auto; }
  .p-logistics .p-log__lane { grid-template-columns: 64px minmax(0, 1fr); }
  .p-logistics .p-log__lane svg { width: 64px; }
}

/* ---- freight-transport ---- */
.p-freight-transport .p-fr__split { margin: 0 0 clamp(32px, 4vw, 48px); }
.p-freight-transport .p-fr__split figcaption { display: block; margin-bottom: 12px; }
.p-freight-transport .p-fr__stack { display: flex; height: clamp(64px, 9vw, 96px); border: 2px solid var(--graphite); background: var(--warm); }
.p-freight-transport .p-fr__seg { flex: 0 0 var(--w); display: flex; align-items: flex-end; padding: 10px 12px; font-family: var(--f-mono); font-size: clamp(.72rem, 1.3vw, .9rem); letter-spacing: .04em; color: var(--warm); white-space: nowrap; overflow: hidden; border-right: 2px solid var(--warm); }
.p-freight-transport .p-fr__seg b { font-family: var(--f-display); font-weight: 400; font-size: 1.3em; margin-right: 8px; letter-spacing: 0; }
.p-freight-transport .p-fr__seg--road { background: var(--terra-deep); }
.p-freight-transport .p-fr__seg--rail { background: var(--slate-ink); }
.p-freight-transport .p-fr__seg--water { background: var(--slate-ink); padding: 10px 6px; }
.p-freight-transport .p-fr__seg--pipe { background: var(--olive); padding: 0; border-right: 0; }
.p-freight-transport .p-fr__key { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 26px; font-size: .88rem; color: var(--ink-soft); }
.p-freight-transport .p-fr__key li { display: flex; align-items: center; gap: 8px; }
.p-freight-transport .p-fr__sw { width: 14px; height: 14px; display: inline-block; flex: none; }
.p-freight-transport .p-fr__sw--road { background: var(--terra-deep); }
.p-freight-transport .p-fr__sw--rail { background: var(--slate-ink); }
.p-freight-transport .p-fr__sw--water { background: var(--slate); }
.p-freight-transport .p-fr__sw--pipe { background: var(--olive); }
.p-freight-transport .p-fr__table td:last-child { width: 26%; min-width: 120px; }
.p-freight-transport .p-fr__na { font-family: var(--f-mono); font-size: .7rem; color: var(--slate-ink); }
.p-freight-transport .p-fr__fine { font-size: .86rem; color: var(--ink-soft); margin-top: 16px; max-width: 86ch; }
.p-freight-transport .p-fr__charge { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, .8fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.p-freight-transport .p-fr__site { background: var(--limestone); border: 1px solid var(--rule-strong); padding: 20px; }
.p-freight-transport .p-fr__site svg { max-width: 320px; margin: 0 auto 10px; }
.p-freight-transport .p-fr__figs { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 2px solid var(--graphite); }
.p-freight-transport .p-fr__figs > div { padding: 12px 8px 4px 0; }
.p-freight-transport .p-fr__figs dt { font-family: var(--f-display); font-size: clamp(1.4rem, 2.4vw, 1.9rem); color: var(--terra-deep); line-height: 1; }
.p-freight-transport .p-fr__figs dd { margin: 4px 0 0; font-family: var(--f-mono); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; color: var(--slate-ink); }
@media (max-width: 860px) {
  .p-freight-transport .p-fr__charge { grid-template-columns: minmax(0, 1fr); }
  .p-freight-transport .p-fr__site { max-width: 420px; }
}
@media (max-width: 520px) {
  .p-freight-transport .p-fr__seg--rail { font-size: 0; }
  .p-freight-transport .p-fr__seg--rail b { font-size: .8rem; }
  .p-freight-transport .p-fr__seg--water b { display: none; }
}

/* ---- mobility ---- */
.p-mobility .p-mob__fig { margin: 0; background: var(--warm); border: 1px solid var(--rule-strong); box-shadow: 14px 14px 0 var(--mist); padding: clamp(18px, 3vw, 32px); }
.p-mobility .p-mob__fig figcaption { display: block; margin-bottom: 18px; }
.p-mobility .p-mob__bars { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.p-mobility .p-mob__bars li { display: grid; grid-template-columns: 4.2em minmax(0, 1fr); grid-template-rows: auto 14px; column-gap: 12px; align-items: end; }
.p-mobility .p-mob__bars li::after { content: ""; grid-column: 2; grid-row: 2; height: 14px; width: calc(var(--v) * 1%); background: var(--slate); }
.p-mobility .p-mob__bars li:first-child::after { background: var(--terra-deep); }
.p-mobility .p-mob__n { grid-row: 1 / span 2; font-family: var(--f-display); font-size: clamp(1.6rem, 3vw, 2.3rem); line-height: 1; color: var(--ink); }
.p-mobility .p-mob__bars li:first-child .p-mob__n { color: var(--terra-deep); }
.p-mobility .p-mob__l { grid-column: 2; font-size: .9rem; color: var(--ink-soft); }
.p-mobility .p-mob__src { font-family: var(--f-mono); font-size: .66rem; letter-spacing: .04em; color: var(--slate-ink); margin: 18px 0 0; }
.p-mobility .p-mob__dist { display: flex; border: 2px solid var(--graphite); margin: clamp(18px, 3vw, 32px) 0 10px; background: var(--warm); }
.p-mobility .p-mob__dist span { flex: 0 0 calc(var(--v) * 1%); padding: 14px 10px; border-right: 1px solid var(--rule-strong); font-size: .82rem; color: var(--ink-soft); line-height: 1.3; overflow: hidden; }
.p-mobility .p-mob__dist span:nth-child(odd) { background: rgba(216,224,228,.6); }
.p-mobility .p-mob__dist span:last-child { border-right: 0; background: var(--terra-deep); }
.p-mobility .p-mob__dist b { display: block; font-family: var(--f-display); font-weight: 400; font-size: clamp(1.2rem, 2.4vw, 1.8rem); color: var(--ink); }
.p-mobility .p-mob__dist span:last-child b { color: var(--warm); font-size: .9rem; font-family: var(--f-mono); }
.p-mobility .p-mob__distkey { margin-bottom: clamp(24px, 4vw, 40px); }
.p-mobility .p-mob__cols { max-width: none; columns: 2 320px; column-gap: clamp(28px, 5vw, 64px); }
.p-mobility .p-mob__places { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 2px solid var(--graphite); margin-bottom: 28px; }
.p-mobility .p-mob__places article { padding: 26px 26px 28px 0; border-right: 1px solid var(--rule); }
.p-mobility .p-mob__places article + article { padding-left: 26px; }
.p-mobility .p-mob__places article:last-child { border-right: 0; }
.p-mobility .p-mob__places svg { width: 120px; height: 60px; display: block; margin-bottom: 16px; }
.p-mobility .p-mob__places p { font-size: .95rem; color: var(--ink-soft); margin: 0; }
.p-mobility .p-mob__principle { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 80px); align-items: center; }
.p-mobility .p-mob__principle h2 { font-size: clamp(2rem, 4vw, 3.2rem); }
.p-mobility .p-mob__principle .quote p:first-child { font-size: clamp(1.6rem, 3.2vw, 2.6rem); }
.p-mobility .p-mob__price { list-style: none; margin: 0 0 12px; padding: 0; border-top: 2px solid var(--graphite); }
.p-mobility .p-mob__price li { display: grid; grid-template-columns: 3.4em minmax(0, 1fr); align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--rule); position: relative; }
.p-mobility .p-mob__price span { font-family: var(--f-mono); font-size: .76rem; color: var(--slate-ink); }
.p-mobility .p-mob__price b { font-family: var(--f-display); font-weight: 400; font-size: 1.3rem; display: block; width: calc(var(--p) / 66.8 * 100%); background: var(--mist); padding: 2px 8px; }
.p-mobility .p-mob__price li.is-now b { background: var(--terra-deep); color: var(--warm); }
@media (max-width: 860px) {
  .p-mobility .p-mob__principle { grid-template-columns: minmax(0, 1fr); }
  .p-mobility .p-mob__places { grid-template-columns: minmax(0, 1fr); }
  .p-mobility .p-mob__places article, .p-mobility .p-mob__places article + article { padding: 22px 0; border-right: 0; border-bottom: 1px solid var(--rule); }
  .p-mobility .p-mob__fig { box-shadow: 8px 8px 0 var(--mist); }
}
@media (max-width: 640px) {
  .p-mobility .p-mob__dist { flex-direction: column; }
  .p-mobility .p-mob__dist span { flex: none; border-right: 0; border-bottom: 1px solid var(--rule-strong); display: flex; gap: 10px; align-items: baseline; padding: 8px 10px; }
  .p-mobility .p-mob__dist b { display: inline; }
  .p-mobility .p-mob__dist span:last-child::after { content: "over 50 km"; color: var(--warm); }
}

/* ---- digital-mobility ---- */
.p-digital-mobility .p-dig__layers { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.p-digital-mobility .p-dig__layers li { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 2px 12px; padding: 12px 14px; border: 1px solid var(--rule-strong); background: var(--warm); position: relative; }
.p-digital-mobility .p-dig__layers li:nth-child(1) { margin-left: 0; background: var(--slate-ink); color: var(--warm); border-color: var(--slate-ink); }
.p-digital-mobility .p-dig__layers li:nth-child(1) .meta, .p-digital-mobility .p-dig__layers li:nth-child(1) span:last-child { color: #E6EBEE; }
.p-digital-mobility .p-dig__layers li:nth-child(2) { margin-left: 10px; background: var(--mist); }
.p-digital-mobility .p-dig__layers li:nth-child(3) { margin-left: 20px; background: var(--limestone); }
.p-digital-mobility .p-dig__layers li:nth-child(4) { margin-left: 30px; border-left: 4px solid var(--terra); }
.p-digital-mobility .p-dig__layers .meta { grid-row: 1 / span 2; color: var(--terra-deep); padding-top: 3px; }
.p-digital-mobility .p-dig__layers b { font-family: var(--f-display); font-weight: 400; font-size: 1.2rem; line-height: 1.1; }
.p-digital-mobility .p-dig__layers span:last-child { font-size: .82rem; color: var(--ink-soft); line-height: 1.4; }
.p-digital-mobility .p-dig__tabs [role="tablist"] { display: flex; flex-wrap: wrap; gap: 0; border-bottom: 1px solid rgba(248,246,241,.35); margin-bottom: clamp(24px, 3vw, 36px); }
.p-digital-mobility .p-dig__tabs [role="tab"] { appearance: none; background: transparent; border: 0; border-bottom: 3px solid transparent; padding: 14px 18px 12px; margin-bottom: -1px; font: 500 .76rem/1.2 var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: #E6EBEE; cursor: pointer; }
.p-digital-mobility .p-dig__tabs [role="tab"]:hover { color: var(--warm); background: rgba(248,246,241,.06); }
.p-digital-mobility .p-dig__tabs [role="tab"][aria-selected="true"] { color: var(--warm); border-bottom-color: var(--terra); background: rgba(248,246,241,.08); }
.p-digital-mobility .p-dig__tabs [role="tab"]:focus-visible { outline: 2px solid var(--clay); outline-offset: -2px; }
.p-digital-mobility .p-dig__panel { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(24px, 4vw, 64px); }
.p-digital-mobility .p-dig__panel h3 { font-size: clamp(1.6rem, 2.8vw, 2.3rem); }
.p-digital-mobility .p-dig__panel p { color: #EEF1F3; }
.p-digital-mobility .p-dig__doc { background: var(--warm); color: var(--ink); padding: clamp(20px, 3vw, 30px); border-top: 4px solid var(--terra); align-self: start; }
.p-digital-mobility .p-dig__doc .meta { display: block; color: var(--terra-deep); margin-bottom: 10px; }
.p-digital-mobility .p-dig__doc p { color: var(--ink); font-size: .95rem; margin: 0; }
.p-digital-mobility .p-dig__doc q { color: var(--ink); }
@media (max-width: 860px) {
  .p-digital-mobility .p-dig__panel { grid-template-columns: minmax(0, 1fr); }
  .p-digital-mobility .p-dig__tabs [role="tab"] { padding: 12px 12px 10px; flex: 1 1 auto; }
}
@media (max-width: 1024px) {
  .p-digital-mobility .p-dig__layers li { margin-left: 0 !important; }
}

/* ---- transport-safety ---- */
.p-transport-safety .ts-head { background: linear-gradient(180deg, var(--paper) 0 70%, var(--mist) 70% 100%); }
.p-transport-safety .ts-head h1 { font-size: clamp(2.6rem, 7vw, 6rem); }
.p-transport-safety .ts-head__figwrap { max-width: 561px; justify-self: end; width: 100%; }
.p-transport-safety .ts-head__figwrap .fig__frame { background: var(--warm); border-top: 4px solid var(--signal); }

.p-transport-safety .ts-board { background: var(--mist); padding-top: 0; }
.p-transport-safety .ts-board__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.p-transport-safety .ts-board__list a { display: block; height: 100%; padding: 20px 20px 18px; background: var(--warm); border: 1px solid var(--rule-strong); border-left: 5px solid var(--terra); text-decoration: none; color: var(--ink); transition: transform .2s var(--ease), border-color .2s; }
.p-transport-safety .ts-board__list li:nth-child(2) a { border-left-color: var(--terra-deep); }
.p-transport-safety .ts-board__list li:nth-child(3) a { border-left-color: var(--slate); }
.p-transport-safety .ts-board__list li:nth-child(4) a { border-left-color: var(--olive); }
.p-transport-safety .ts-board__list a:hover { transform: translateY(-2px); color: var(--ink); }
.p-transport-safety .ts-board__n { display: block; font-family: var(--f-display); font-size: clamp(2rem, 3.6vw, 3rem); line-height: 1; color: var(--terra-deep); }
.p-transport-safety .ts-board__l { display: block; margin-top: 8px; font-size: .86rem; color: var(--ink-soft); line-height: 1.4; }

.p-transport-safety .ts-road { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.p-transport-safety .ts-dots { margin: 0; padding: 24px; background: var(--graphite); color: var(--warm); position: sticky; top: calc(var(--header-h) + 24px); }
.p-transport-safety .ts-dots__row { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 6px 14px; align-items: center; margin-bottom: 18px; }
.p-transport-safety .ts-dots__yr { font-family: var(--f-mono); font-size: .8rem; color: var(--clay); }
.p-transport-safety .ts-dots__bar { display: block; background: rgba(248,246,241,.08); }
.p-transport-safety .ts-dots__bar .bar { height: 30px; }
.p-transport-safety .ts-dots__bar .bar--slate { background: #8FA3B2; }
.p-transport-safety .ts-dots__v { grid-column: 2; font-family: var(--f-display); font-size: clamp(2.2rem, 4vw, 3.2rem); line-height: 1; }
.p-transport-safety .ts-dots figcaption { font-family: var(--f-mono); font-size: .7rem; color: #E6EBEE; letter-spacing: .04em; }

.p-transport-safety .ts-staff { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.p-transport-safety .ts-staff__data { background: var(--warm); border: 1px solid var(--rule-strong); padding: clamp(18px, 3vw, 28px); }
.p-transport-safety .ts-split { display: flex; height: 54px; margin: 12px 0 16px; border: 2px solid var(--graphite); }
.p-transport-safety .ts-split span { display: block; flex: 0 0 calc(var(--w) * 1%); min-width: 4px; }
.p-transport-safety .ts-split__a, .p-transport-safety .k-a { background: var(--terra); }
.p-transport-safety .ts-split__b, .p-transport-safety .k-b { background: var(--clay); }
.p-transport-safety .ts-split__c, .p-transport-safety .k-c { background: var(--graphite); }
.p-transport-safety .ts-split__key { list-style: none; margin: 0; padding: 0; }
.p-transport-safety .ts-split__key li { display: grid; grid-template-columns: 14px 48px minmax(0, 1fr); gap: 10px; align-items: baseline; padding: 8px 0; border-bottom: 1px solid var(--rule); font-size: .88rem; color: var(--ink-soft); }
.p-transport-safety .ts-split__key i { display: block; width: 14px; height: 14px; }
.p-transport-safety .ts-split__key b { font-family: var(--f-mono); font-weight: 500; color: var(--ink); }
.p-transport-safety .ts-staff__total { margin: 16px 0 0; font-size: .82rem; color: var(--slate-ink); }
.p-transport-safety .ts-staff__total b { font-family: var(--f-display); font-weight: 400; font-size: 2.6rem; color: var(--terra-deep); margin-right: 8px; vertical-align: -6px; }
.p-transport-safety .ts-staff .quote { margin: 18px 0 26px; }

.p-transport-safety .ts-fids { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 64px); align-items: start; }
.p-transport-safety .ts-fids .table-wrap { border-top-color: var(--signal); }
.p-transport-safety .ts-fids .ledger { min-width: 0; font-family: var(--f-mono); font-size: .86rem; background: #2F3E4A; }
.p-transport-safety .ts-fids .ledger caption { color: #E6EBEE; padding-top: 10px; }
.p-transport-safety .ts-fids .ledger th, .p-transport-safety .ts-fids .ledger td { color: var(--warm); border-bottom-color: rgba(248,246,241,.15); padding-left: 14px; }
.p-transport-safety .ts-fids .ledger thead th { color: var(--clay); }
.p-transport-safety .ts-on { display: inline-block; padding: 1px 7px; margin-right: 6px; background: var(--signal); color: var(--graphite); font-size: .74rem; letter-spacing: .06em; text-transform: uppercase; }
.p-transport-safety .ts-due { display: inline-block; padding: 1px 7px; border: 1px solid var(--signal); color: var(--signal); font-size: .74rem; letter-spacing: .06em; text-transform: uppercase; }
.p-transport-safety .ts-fids .quote { border-top-color: rgba(248,246,241,.6); border-bottom-color: rgba(248,246,241,.2); padding-top: 0; border-top: 0; }
.p-transport-safety .ts-fids .quote .quote__en { color: #E6EBEE; }
.p-transport-safety .ts-fids .quote cite { color: var(--clay); }
.p-transport-safety .ts-fids__text > p { color: #E6EBEE; margin-top: 20px; }

@media (max-width: 1024px) {
  .p-transport-safety .ts-board__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p-transport-safety .ts-staff, .p-transport-safety .ts-fids { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 860px) {
  .p-transport-safety .ts-road { grid-template-columns: minmax(0, 1fr); }
  .p-transport-safety .ts-dots { position: static; }
  .p-transport-safety .ts-head__figwrap { justify-self: start; }
}
@media (max-width: 420px) {
  .p-transport-safety .ts-board__list { grid-template-columns: minmax(0, 1fr); }
}

/* ---- infrastructure-investment ---- */
.p-infrastructure-investment .ii-head { background:
  linear-gradient(rgba(96,120,138,.1) 1px, transparent 1px) 0 0 / 100% 32px, var(--paper); }
.p-infrastructure-investment .ii-head h1 { max-width: 12ch; }
.p-infrastructure-investment .ii-head .ph-data__rail { background: var(--warm); }
.p-infrastructure-investment .ii-head .ph-data__rail > div:first-child .ph-data__num { color: var(--graphite); }

.p-infrastructure-investment .ii-ledger { min-width: 720px; }
.p-infrastructure-investment .ii-ledger th[scope="row"] { font-weight: 500; font-size: .92rem; }
.p-infrastructure-investment .ii-ledger td.num { font-family: var(--f-mono); font-size: .86rem; }
.p-infrastructure-investment .ii-ledger td:last-child { width: 30%; min-width: 200px; }
.p-infrastructure-investment .ii-cmp { display: block; width: 100%; max-width: 220px; }
.p-infrastructure-investment .ii-cmp .bar { height: 7px; margin: 2px 0; }
.p-infrastructure-investment .ii-d { display: inline-block; margin-top: 4px; font-family: var(--f-mono); font-size: .76rem; }
.p-infrastructure-investment .ii-d--down { color: var(--terra-deep); }
.p-infrastructure-investment .ii-d--up { color: #3F6B4A; }
.p-infrastructure-investment .ii-na { font-size: .8rem; color: var(--slate-ink); font-style: italic; }
.p-infrastructure-investment .ii-income th, .p-infrastructure-investment .ii-income td { border-top: 2px solid var(--graphite); background: rgba(216,224,228,.4); }
.p-infrastructure-investment .ii-notes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 28px; }
.p-infrastructure-investment .ii-notes .note { margin: 0; }

.p-infrastructure-investment .ii-fund { margin: 0; padding: clamp(18px, 3vw, 32px); background: var(--warm); border: 1px solid var(--rule-strong); }
.p-infrastructure-investment .ii-fund__bar { display: flex; min-height: 110px; border: 2px solid var(--graphite); }
.p-infrastructure-investment .ii-fund__seg { flex: 0 0 calc(var(--w) * 1%); padding: 14px; font-size: .84rem; line-height: 1.35; min-width: 0; overflow-wrap: anywhere; }
.p-infrastructure-investment .ii-fund__seg b { display: block; font-family: var(--f-display); font-weight: 400; font-size: clamp(1.2rem, 2.4vw, 1.9rem); line-height: 1.05; margin-bottom: 4px; }
.p-infrastructure-investment .ii-fund__seg--ktf { background: #A5ADA2; color: var(--graphite); }
.p-infrastructure-investment .ii-fund__seg--land { background: var(--slate); color: #fff; border-left: 2px solid var(--graphite); }
.p-infrastructure-investment .ii-fund__seg--fed { background: repeating-linear-gradient(135deg, var(--clay) 0 10px, #E3D3C8 10px 20px); color: var(--graphite); border-left: 2px solid var(--graphite); }
.p-infrastructure-investment .ii-fund__years { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin-left: 40%; border-left: 3px solid var(--terra); position: relative; }
.p-infrastructure-investment .ii-fund__years::before { content: ""; position: absolute; left: -3px; top: 0; width: 3px; height: 18px; background: var(--terra); transform: translateY(-100%); }
.p-infrastructure-investment .ii-fund__years > div { padding: 16px 18px; font-size: .9rem; color: var(--ink-soft); border-bottom: 1px solid var(--rule); }
.p-infrastructure-investment .ii-fund__years > div + div { border-left: 1px solid var(--rule); }
.p-infrastructure-investment .ii-fund__years .meta { display: block; margin-bottom: 6px; }
.p-infrastructure-investment .ii-fund__years strong { color: var(--terra-deep); font-weight: 600; }
.p-infrastructure-investment .ii-fund figcaption { margin-top: 14px; font-size: .78rem; color: var(--slate-ink); }
.p-infrastructure-investment .ii-after { max-width: 820px; margin: 26px 0 0; }

.p-infrastructure-investment .ii-pillars { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: clamp(32px, 5vw, 52px) 0 clamp(28px, 4vw, 44px); border-top: 10px solid var(--graphite); position: relative; }
.p-infrastructure-investment .ii-pillars > div { padding: 22px 22px 20px; background: var(--warm); border-left: 1px solid var(--rule-strong); border-bottom: 3px solid var(--terra); position: relative; }
.p-infrastructure-investment .ii-pillars > div:last-child { border-right: 1px solid var(--rule-strong); }
.p-infrastructure-investment .ii-pillars > div::before { content: ""; position: absolute; top: 0; left: 50%; width: 14px; height: 14px; background: var(--graphite); transform: translate(-50%, -50%) rotate(45deg); }
.p-infrastructure-investment .ii-pillars h3 { font-size: 1.35rem; margin: 6px 0; }
.p-infrastructure-investment .ii-pillars p { margin: 0; font-size: .9rem; color: var(--ink-soft); }

.p-infrastructure-investment .ii-debate { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 0; margin-bottom: 26px; border: 1px solid var(--rule-strong); }
.p-infrastructure-investment .ii-debate__col { padding: 24px 26px; }
.p-infrastructure-investment .ii-debate__col h3 { font-family: var(--f-mono); font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; color: var(--slate-ink); }
.p-infrastructure-investment .ii-debate__col ul { list-style: none; margin: 0; padding: 0; }
.p-infrastructure-investment .ii-debate__col li { padding: 12px 0; border-top: 1px solid var(--rule); font-size: .94rem; }
.p-infrastructure-investment .ii-debate__col--opp { background: #EFE4DC; border-left: 1px solid var(--rule-strong); }

@media (max-width: 860px) {
  .p-infrastructure-investment .ii-notes, .p-infrastructure-investment .ii-debate { grid-template-columns: minmax(0, 1fr); }
  .p-infrastructure-investment .ii-debate__col--opp { border-left: 0; border-top: 1px solid var(--rule-strong); }
  .p-infrastructure-investment .ii-fund__years { margin-left: 0; grid-template-columns: minmax(0, 1fr); }
  .p-infrastructure-investment .ii-fund__years > div + div { border-left: 0; }
  .p-infrastructure-investment .ii-pillars { grid-template-columns: minmax(0, 1fr); border-top: 0; }
  .p-infrastructure-investment .ii-pillars > div { border-right: 1px solid var(--rule-strong); border-top: 1px solid var(--rule-strong); }
  .p-infrastructure-investment .ii-pillars > div::before { display: none; }
}
@media (max-width: 600px) {
  .p-infrastructure-investment .ii-fund__bar { flex-direction: column; }
  .p-infrastructure-investment .ii-fund__seg { flex: none; }
  .p-infrastructure-investment .ii-fund__seg + .ii-fund__seg { border-left: 0; border-top: 2px solid var(--graphite); }
  .p-infrastructure-investment .ii-fund__years::before { display: none; }
}

/* ---- future-mobility ---- */
.p-future-mobility .p-fut__wrap { background: var(--warm); border-top-width: 3px; }
.p-future-mobility .p-fut__map { min-width: 760px; table-layout: fixed; }
.p-future-mobility .p-fut__map th[scope="row"] { font-family: var(--f-display); font-weight: 400; font-size: 1.15rem; padding-left: 14px; width: 15%; }
.p-future-mobility .p-fut__map thead th { padding-left: 4px; }
.p-future-mobility .p-fut__map td { padding: 8px 6px; }
.p-future-mobility .p-fut__c { display: block; padding: 8px 10px; border: 1px dashed var(--rule-strong); font-size: .8rem; line-height: 1.35; color: var(--ink-soft); min-height: 100%; }
.p-future-mobility .p-fut__c--on { background: var(--terra-deep); border: 1px solid var(--terra-deep); color: var(--warm); }
.p-future-mobility .p-fut__key { margin: 14px 0 0; font-size: .82rem; color: var(--ink-soft); display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.p-future-mobility .p-fut__key .p-fut__c { display: inline-block; padding: 2px 8px; font-family: var(--f-mono); font-size: .66rem; letter-spacing: .08em; text-transform: uppercase; }
.p-future-mobility .p-fut__auto { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(28px, 5vw, 80px); align-items: center; }
.p-future-mobility .p-fut__auto .quote p:first-child { font-size: clamp(1.3rem, 2.4vw, 1.9rem); }
.p-future-mobility .p-fut__route { margin-bottom: clamp(28px, 4vw, 48px); }
.p-future-mobility .p-fut__quotes { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); }
.p-future-mobility .p-fut__quotes .quote p:first-child { font-size: clamp(1.25rem, 2.2vw, 1.75rem); }
.p-future-mobility .p-fut__fine { max-width: 80ch; margin-top: 24px; color: var(--ink-soft); }
.p-future-mobility .p-fut__debate { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0; border: 1px solid var(--rule-strong); background: var(--warm); margin-bottom: 28px; }
.p-future-mobility .p-fut__debate article { padding: clamp(22px, 3vw, 36px); }
.p-future-mobility .p-fut__debate article + article { border-left: 1px solid var(--rule-strong); background: rgba(216,224,228,.45); }
.p-future-mobility .p-fut__debate .meta { display: block; margin-bottom: 10px; }
.p-future-mobility .p-fut__debate ul { margin: 0; padding-left: 1.1em; }
.p-future-mobility .p-fut__debate li { margin-bottom: .6em; font-size: .95rem; }
.p-future-mobility .p-fut__debate li::marker { color: var(--terra); }
@media (max-width: 860px) {
  .p-future-mobility .p-fut__auto, .p-future-mobility .p-fut__quotes, .p-future-mobility .p-fut__debate { grid-template-columns: minmax(0, 1fr); }
  .p-future-mobility .p-fut__debate article + article { border-left: 0; border-top: 1px solid var(--rule-strong); }
}

/* ---- transport-and-economy ---- */
.p-transport-and-economy .p-eco__intro { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: clamp(24px, 5vw, 80px); align-items: start; }
.p-transport-and-economy .p-eco__intro h2 { font-size: clamp(2rem, 4.2vw, 3.4rem); }
.p-transport-and-economy .p-eco__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; background: var(--warm); border: 1px solid var(--rule-strong); padding: clamp(14px, 3vw, 36px); }
.p-transport-and-economy .p-eco__sankey { min-width: 600px; }
.p-transport-and-economy .p-eco__t { font-family: var(--f-mono); font-size: 22px; fill: var(--graphite); letter-spacing: .02em; }
.p-transport-and-economy .p-eco__t--s { font-size: 19px; fill: var(--slate-ink); }
.p-transport-and-economy .p-eco__big { font-family: var(--f-display); font-size: 64px; fill: var(--terra-deep); }
.p-transport-and-economy .p-eco__big--s { font-size: 40px; fill: var(--slate-ink); }
.p-transport-and-economy .p-eco__readout { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 2px solid var(--graphite); margin-top: clamp(24px, 3vw, 36px); }
.p-transport-and-economy .p-eco__readout > div { padding: 18px 22px 0 0; }
.p-transport-and-economy .p-eco__readout > div + div { padding-left: 22px; border-left: 1px solid var(--rule-strong); }
.p-transport-and-economy .p-eco__readout .meta { display: block; margin-bottom: 6px; color: var(--terra-deep); }
.p-transport-and-economy .p-eco__readout p { font-size: .93rem; color: var(--ink-soft); margin: 0; }
.p-transport-and-economy .p-eco__region { display: grid; grid-template-columns: minmax(0, 360px) minmax(0, 1fr); gap: clamp(24px, 5vw, 72px); align-items: start; }
.p-transport-and-economy .p-eco__map { width: 100%; height: auto; display: block; box-shadow: 12px 12px 0 var(--limestone); }
.p-transport-and-economy .p-eco__m { font-family: var(--f-mono); font-size: 14px; letter-spacing: .1em; fill: var(--graphite); }
.p-transport-and-economy .p-eco__kv dd { font-size: .94rem; }
.p-transport-and-economy .p-eco__fine { max-width: 82ch; margin-top: 24px; color: var(--ink-soft); }
.p-transport-and-economy .p-eco__quotes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(24px, 4vw, 56px); }
.p-transport-and-economy .p-eco__quotes .quote p:first-child { font-size: clamp(1.2rem, 2vw, 1.6rem); }
.p-transport-and-economy .p-eco__quotes .quote:nth-child(1) { border-top-color: var(--terra); }
@media (max-width: 860px) {
  .p-transport-and-economy .p-eco__intro, .p-transport-and-economy .p-eco__region, .p-transport-and-economy .p-eco__quotes { grid-template-columns: minmax(0, 1fr); }
  .p-transport-and-economy .p-eco__readout { grid-template-columns: minmax(0, 1fr); }
  .p-transport-and-economy .p-eco__readout > div, .p-transport-and-economy .p-eco__readout > div + div { padding: 16px 0; border-left: 0; border-bottom: 1px solid var(--rule); }
  .p-transport-and-economy .p-eco__map { max-width: 360px; box-shadow: 8px 8px 0 var(--limestone); }
}

/* ---- sustainable-transport ---- */
.p-sustainable-transport .p-sus__em { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.p-sustainable-transport .p-sus__gauge { background: var(--graphite); color: var(--warm); padding: clamp(24px, 4vw, 44px); position: relative; }
.p-sustainable-transport .p-sus__gauge::before { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 6px; background: var(--terra); }
.p-sustainable-transport .p-sus__num { display: block; font-family: var(--f-display); font-size: clamp(4rem, 11vw, 8rem); line-height: .9; color: var(--warm); }
.p-sustainable-transport .p-sus__unit { display: block; font-family: var(--f-mono); font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; color: #E6EBEE; margin-top: 10px; }
.p-sustainable-transport .p-sus__delta { display: inline-block; margin-top: 18px; padding: 6px 10px; background: var(--terra); font-family: var(--f-mono); font-size: .78rem; letter-spacing: .06em; color: #fff; }
.p-sustainable-transport .p-sus__share { margin-top: 28px; height: 18px; border: 1px solid rgba(248,246,241,.6); background: repeating-linear-gradient(90deg, rgba(248,246,241,.12) 0 1px, transparent 1px 10%); }
.p-sustainable-transport .p-sus__share-t { display: block; height: 100%; width: var(--s); background: var(--clay); }
.p-sustainable-transport .p-sus__cap { font-size: .8rem; color: #E6EBEE; margin: 10px 0 0; }
.p-sustainable-transport .p-sus__levers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; counter-reset: lev; }
.p-sustainable-transport .p-sus__levers article { background: var(--warm); border: 1px solid var(--rule-strong); padding: 24px 22px; display: flex; flex-direction: column; }
.p-sustainable-transport .p-sus__no { font-family: var(--f-mono); font-size: .76rem; color: var(--terra-deep); letter-spacing: .1em; border-bottom: 2px solid var(--terra); align-self: flex-start; margin-bottom: 14px; padding-bottom: 2px; }
.p-sustainable-transport .p-sus__levers h3 { font-size: 1.45rem; }
.p-sustainable-transport .p-sus__levers p { font-size: .93rem; color: var(--ink-soft); }
.p-sustainable-transport .p-sus__doc { margin: auto 0 0; padding-top: 14px; border-top: 1px dashed var(--rule-strong); }
.p-sustainable-transport .p-sus__doc .tag { margin-right: 6px; margin-bottom: 6px; }
.p-sustainable-transport .p-sus__res { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 80px); align-items: center; }
.p-sustainable-transport .p-sus__res p { color: #EEF1F3; }
.p-sustainable-transport .section--slate .quote { border-top-color: var(--clay); border-bottom-color: rgba(248,246,241,.3); }
.p-sustainable-transport .section--slate .quote .quote__en, .p-sustainable-transport .section--slate .quote cite { color: #E6EBEE; }
.p-sustainable-transport .section--slate .quote p:first-child { color: var(--warm); font-size: clamp(1.35rem, 2.6vw, 2.1rem); }
@media (max-width: 1024px) {
  .p-sustainable-transport .p-sus__levers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  .p-sustainable-transport .p-sus__em, .p-sustainable-transport .p-sus__res { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .p-sustainable-transport .p-sus__levers { grid-template-columns: minmax(0, 1fr); }
}

/* ---- regional-connectivity ---- */
.p-regional-connectivity .p-reg__figwrap { max-width: 280px; margin-inline: auto; width: 100%; }
.p-regional-connectivity .p-reg__figwrap .fig__frame { box-shadow: 12px 12px 0 var(--mist); }
.p-regional-connectivity .p-reg__levels { list-style: none; margin: 0 0 28px; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 2px solid var(--graphite); }
.p-regional-connectivity .p-reg__levels li { padding: 26px 22px 26px 0; border-right: 1px solid var(--rule-strong); position: relative; }
.p-regional-connectivity .p-reg__levels li + li { padding-left: 22px; }
.p-regional-connectivity .p-reg__levels li:last-child { border-right: 0; }
.p-regional-connectivity .p-reg__levels li::before { content: ""; position: absolute; top: -2px; left: 0; height: 6px; background: var(--terra); width: calc(100% - 22px); }
.p-regional-connectivity .p-reg__levels li + li::before { left: 22px; width: calc(100% - 44px); }
.p-regional-connectivity .p-reg__levels li:nth-child(1)::before { background: var(--slate); }
.p-regional-connectivity .p-reg__levels li:nth-child(2)::before { background: var(--terra-deep); }
.p-regional-connectivity .p-reg__levels li:nth-child(4)::before { background: var(--olive); }
.p-regional-connectivity .p-reg__levels .meta { display: block; margin: 8px 0; }
.p-regional-connectivity .p-reg__levels p { font-size: .92rem; color: var(--ink-soft); margin: 0; }
.p-regional-connectivity .p-reg__mapgrid { display: grid; grid-template-columns: minmax(0, 420px) minmax(0, 1fr); gap: clamp(24px, 5vw, 72px); align-items: center; }
.p-regional-connectivity .p-reg__map { max-width: 420px; background: var(--warm); }
.p-regional-connectivity .p-reg__pin text { font-family: var(--f-mono); font-size: 26px; font-weight: 500; }
.p-regional-connectivity .p-reg__legend { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--graphite); }
.p-regional-connectivity .p-reg__legend li { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 14px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--rule); font-size: .95rem; }
.p-regional-connectivity .p-reg__legend b { width: 36px; height: 36px; border-radius: 50%; background: var(--graphite); color: var(--warm); display: grid; place-items: center; font-family: var(--f-mono); font-weight: 500; }
.p-regional-connectivity .p-reg__legend b.is-x { background: var(--terra-deep); }
.p-regional-connectivity .p-reg__h { margin-bottom: clamp(24px, 3vw, 40px); }
.p-regional-connectivity .p-reg__cases { display: grid; gap: 0; border-top: 2px solid var(--graphite); }
.p-regional-connectivity .p-reg__case { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: clamp(16px, 3vw, 40px); padding: clamp(24px, 3vw, 36px) 0; border-bottom: 1px solid var(--rule-strong); }
.p-regional-connectivity .p-reg__case > div { max-width: 820px; }
.p-regional-connectivity .p-reg__no { font-family: var(--f-display); font-size: clamp(3rem, 6vw, 4.6rem); line-height: .9; color: var(--slate-ink); }
.p-regional-connectivity .p-reg__no--x { color: var(--terra-deep); }
.p-regional-connectivity .p-reg__case .quote { margin: 8px 0 18px; padding: 18px 0; }
.p-regional-connectivity .p-reg__case .quote p:first-child { font-size: clamp(1.2rem, 2vw, 1.6rem); }
@media (max-width: 1024px) {
  .p-regional-connectivity .p-reg__levels { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p-regional-connectivity .p-reg__levels li:nth-child(2) { border-right: 0; }
  .p-regional-connectivity .p-reg__levels li:nth-child(3) { padding-left: 0; }
  .p-regional-connectivity .p-reg__levels li:nth-child(3)::before { left: 0; width: calc(100% - 22px); }
  .p-regional-connectivity .p-reg__levels li:nth-child(n+3) { border-top: 1px solid var(--rule-strong); }
}
@media (max-width: 860px) {
  .p-regional-connectivity .p-reg__mapgrid { grid-template-columns: minmax(0, 1fr); }
  .p-regional-connectivity .p-reg__map { margin-inline: auto; }
}
@media (max-width: 600px) {
  .p-regional-connectivity .p-reg__levels { grid-template-columns: minmax(0, 1fr); }
  .p-regional-connectivity .p-reg__levels li, .p-regional-connectivity .p-reg__levels li + li { padding: 22px 0; border-right: 0; border-top: 0; border-bottom: 1px solid var(--rule); }
  .p-regional-connectivity .p-reg__levels li::before, .p-regional-connectivity .p-reg__levels li + li::before { left: 0; width: 40px; top: 0; }
  .p-regional-connectivity .p-reg__case { grid-template-columns: minmax(0, 1fr); gap: 6px; }
}

/* ---- political-positions ---- */
.p-political-positions .pp-eras__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.p-political-positions .pp-eras__band { list-style: none; margin: 0; padding: 0; border-left: 3px solid var(--graphite); }
.p-political-positions .pp-era { position: relative; padding: 18px 0 20px 26px; border-bottom: 1px solid var(--rule); }
.p-political-positions .pp-era::before { content: ""; position: absolute; left: -10px; top: 24px; width: 17px; height: 17px; border-radius: 50%; background: var(--warm); border: 3px solid var(--slate); }
.p-political-positions .pp-era--2::before { border-color: var(--olive); }
.p-political-positions .pp-era--3::before { border-color: var(--terra); }
.p-political-positions .pp-era--4::before { background: var(--terra-deep); border-color: var(--terra-deep); }
.p-political-positions .pp-era strong { display: block; font-family: var(--f-display); font-weight: 400; font-size: 1.35rem; line-height: 1.15; margin: 4px 0 4px; }
.p-political-positions .pp-era span:last-child { font-size: .88rem; color: var(--ink-soft); }

.p-political-positions .pp-table th[scope="row"] { font-family: var(--f-display); font-weight: 400; font-size: 1.08rem; min-width: 150px; }
.p-political-positions .pp-table th[scope="row"] a { color: var(--ink); text-decoration-color: var(--terra); text-underline-offset: 3px; }
.p-political-positions .pp-table th[scope="row"] a:hover { color: var(--terra-deep); }
.p-political-positions .pp-table td:last-child { font-family: var(--f-mono); font-size: .76rem; color: var(--slate-ink); min-width: 150px; }
.p-political-positions .pp-chip { display: inline-grid; place-items: center; min-width: 34px; height: 26px; padding: 0 6px; font: 500 .76rem/1 var(--f-mono); border: 1.5px solid var(--slate); color: var(--slate-ink); background: var(--warm); }
.p-political-positions .pp-chip--2 { border-color: var(--olive); color: #4D554B; }
.p-political-positions .pp-chip--3 { border-color: var(--terra); color: var(--terra-deep); }
.p-political-positions .pp-chip--4 { background: var(--terra-deep); border-color: var(--terra-deep); color: #fff; }

.p-political-positions .pp-era-head { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: clamp(16px, 3vw, 36px); align-items: end; border-bottom: 2px solid var(--graphite); padding-bottom: 18px; margin-bottom: 22px; }
.p-political-positions .pp-era-head h2 { margin: 0; font-size: clamp(1.9rem, 4vw, 3.2rem); }
.p-political-positions .pp-era-head__num { font-family: var(--f-display); font-size: clamp(4rem, 11vw, 8.5rem); line-height: .78; color: var(--slate); }
.p-political-positions .pp-era-head--2 .pp-era-head__num { color: var(--slate-ink); }
.p-political-positions .pp-era-head--3 .pp-era-head__num { color: var(--terra); }
.p-political-positions .pp-era-head--4 .pp-era-head__num { color: var(--terra-deep); }
.p-political-positions .pp-intro { max-width: 72ch; color: var(--ink-soft); margin-bottom: 28px; }
.p-political-positions .pp-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
.p-political-positions .pp-split .evidence { grid-template-columns: minmax(0, 1fr); }
.p-political-positions .pp-split .evidence > div + div { border-left: 0; border-top: 1px solid var(--rule-strong); }
.p-political-positions .evidence { scroll-margin-top: calc(var(--header-h) + 20px); }
.p-political-positions .evidence q { quotes: "\201E" "\201C"; font-style: italic; }
.p-political-positions .pp-quote { margin-bottom: 32px; }

.p-political-positions .pp-read__grid { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: clamp(28px, 5vw, 80px); }
.p-political-positions .pp-read h2 { font-size: clamp(2rem, 4vw, 3rem); }
.p-political-positions .pp-read .prose p strong { font-family: var(--f-display); font-weight: 400; font-size: 1.15rem; color: var(--terra-deep); }

@media (max-width: 860px) {
  .p-political-positions .pp-eras__grid, .p-political-positions .pp-read__grid, .p-political-positions .pp-split { grid-template-columns: minmax(0, 1fr); }
}

/* ---- key-priorities ---- */
.p-key-priorities .kp-key__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(24px, 5vw, 80px); }
.p-key-priorities .kp-key h2 { font-size: clamp(2rem, 4vw, 3.1rem); }
.p-key-priorities .kp-legend { list-style: none; padding: 0; margin: 0 0 1.4em; border-top: 1px solid var(--graphite); }
.p-key-priorities .kp-legend li { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--rule); margin: 0; font-size: .95rem; }
.p-key-priorities .kp-legend__k { font: 500 .7rem/1.4 var(--f-mono); letter-spacing: .12em; text-transform: uppercase; padding-top: 3px; }
.p-key-priorities .kp-legend__k--stated { color: var(--terra-deep); }
.p-key-priorities .kp-legend__k--basis { color: var(--graphite); }
.p-key-priorities .kp-legend__k--context { color: var(--slate-ink); }

.p-key-priorities .kp-board { margin-top: clamp(32px, 5vw, 56px); display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 3px solid var(--graphite); border-left: 1px solid var(--rule); }
.p-key-priorities .kp-board a { display: flex; flex-direction: column; gap: 8px; padding: 18px 16px 20px; border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); text-decoration: none; color: var(--ink); font-family: var(--f-mono); font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; transition: background .2s; overflow-wrap: anywhere; }
.p-key-priorities .kp-board a span { font-family: var(--f-display); font-size: clamp(2rem, 3.4vw, 2.8rem); letter-spacing: 0; line-height: 1; color: var(--terra); }
.p-key-priorities .kp-board a:hover { background: var(--limestone); color: var(--terra-deep); }

.p-key-priorities .kp-item { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.35fr) minmax(0, .95fr); gap: 0; background: var(--warm); border: 1px solid var(--rule-strong); margin-bottom: 18px; scroll-margin-top: calc(var(--header-h) + 20px); }
.p-key-priorities .kp-item > div { padding: clamp(20px, 2.6vw, 30px); }
.p-key-priorities .kp-item__head { border-right: 1px solid var(--rule-strong); }
.p-key-priorities .kp-item__num { display: block; font-family: var(--f-display); font-size: clamp(3.4rem, 7vw, 5.6rem); line-height: .85; color: var(--terra); margin-bottom: 10px; }
.p-key-priorities .kp-item__head h3 { font-size: clamp(1.5rem, 2.4vw, 2rem); margin-bottom: 14px; text-transform: uppercase; letter-spacing: .02em; }
.p-key-priorities .kp-item__head .tag { margin: 0 4px 6px 0; }
.p-key-priorities .kp-item__stated p:last-child, .p-key-priorities .kp-item__context p:last-child { margin-bottom: 0; }
.p-key-priorities .kp-item__context { background: rgba(216, 224, 228, .5); border-left: 1px solid var(--rule-strong); font-size: .93rem; color: var(--ink-soft); }
.p-key-priorities .kp-lbl { font: 500 .7rem/1 var(--f-mono); letter-spacing: .14em; text-transform: uppercase; margin-bottom: 12px; color: var(--slate-ink); }
.p-key-priorities .kp-item__stated .kp-lbl { color: var(--terra-deep); }
.p-key-priorities .kp-item q { quotes: "\201E" "\201C"; font-style: italic; }
.p-key-priorities .kp-item:nth-child(even of .kp-item) .kp-item__num { color: var(--slate); }
.p-key-priorities .kp-item--dark { background: var(--slate-ink); color: var(--warm); border-color: var(--slate-ink); }
.p-key-priorities .kp-item--dark h3, .p-key-priorities .kp-item--dark .kp-item__stated .kp-lbl { color: #F2D9CF; }
.p-key-priorities .kp-item--dark .tag { color: #E6EBEE; }
.p-key-priorities .kp-item.kp-item--dark.kp-item .kp-item__num { color: #F2D9CF; }
.p-key-priorities .kp-item--dark .kp-item__head { border-color: rgba(248, 246, 241, .3); }
.p-key-priorities .kp-item--dark .kp-item__context { background: #33475A; color: #E6EBEE; border-color: rgba(248, 246, 241, .3); }
.p-key-priorities .kp-item--dark .kp-item__context .kp-lbl { color: #E6EBEE; }
.p-key-priorities .kp-item--dark a { color: #F2D9CF; }

@media (max-width: 1024px) {
  .p-key-priorities .kp-item { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); }
  .p-key-priorities .kp-item__head { grid-row: span 2; }
  .p-key-priorities .kp-item__context { border-left: 0; border-top: 1px solid var(--rule-strong); }
  .p-key-priorities .kp-board { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .p-key-priorities .kp-key__grid, .p-key-priorities .kp-item { grid-template-columns: minmax(0, 1fr); }
  .p-key-priorities .kp-item__head { grid-row: auto; border-right: 0; border-bottom: 1px solid var(--rule-strong); }
  .p-key-priorities .kp-board { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p-key-priorities .kp-legend li { grid-template-columns: minmax(0, 1fr); gap: 4px; }
}

/* ---- infrastructure-policy ---- */
.p-infrastructure-policy .ip-argmap { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "a1 a2" "core core" "a3 a4"; gap: 18px clamp(18px, 4vw, 60px); padding: 10px 0; }
.p-infrastructure-policy .ip-argmap::before { content: ""; position: absolute; left: 50%; top: 0; bottom: 0; width: 2px; background: repeating-linear-gradient(180deg, var(--terra) 0 8px, transparent 8px 14px); transform: translateX(-1px); }
.p-infrastructure-policy .ip-argmap__core { grid-area: core; position: relative; z-index: 1; justify-self: center; max-width: 640px; margin: 0; text-align: center; background: var(--graphite); color: var(--warm); padding: clamp(20px, 3vw, 32px) clamp(20px, 4vw, 44px); font-family: var(--f-display); font-size: clamp(1.4rem, 2.8vw, 2.1rem); line-height: 1.2; }
.p-infrastructure-policy .ip-argmap__core .meta { display: block; color: #E6EBEE; margin-bottom: 8px; }
.p-infrastructure-policy .ip-argmap__arm { position: relative; z-index: 1; background: var(--warm); border: 1px solid var(--rule-strong); border-top: 4px solid var(--slate); padding: 22px 22px 20px; }
.p-infrastructure-policy .ip-argmap__arm--1 { grid-area: a1; }
.p-infrastructure-policy .ip-argmap__arm--2 { grid-area: a2; border-top-color: var(--terra); }
.p-infrastructure-policy .ip-argmap__arm--3 { grid-area: a3; border-top-color: var(--terra-deep); }
.p-infrastructure-policy .ip-argmap__arm--4 { grid-area: a4; border-top-color: var(--olive); }
.p-infrastructure-policy .ip-argmap__arm h3 { font-size: 1.45rem; margin: 8px 0; }
.p-infrastructure-policy .ip-argmap__arm p { font-size: .93rem; color: var(--ink-soft); }
.p-infrastructure-policy .ip-argmap__arm a { font: 500 .72rem/1 var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--terra-deep); }

.p-infrastructure-policy q, .p-infrastructure-policy .ip-voice q { quotes: "\201E" "\201C"; font-style: italic; }
.p-infrastructure-policy .ip-table { margin-top: clamp(36px, 5vw, 56px); }
.p-infrastructure-policy .ip-table td:last-child { min-width: 180px; }
.p-infrastructure-policy .ip-table .bar { margin: 2px 0; height: 8px; }
.p-infrastructure-policy .ip-tablenote { margin-top: 10px; text-transform: none; letter-spacing: .02em; }
.p-infrastructure-policy .ip-voices { margin-top: clamp(32px, 5vw, 56px); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 2px solid var(--graphite); }
.p-infrastructure-policy .ip-voice { padding: 20px 20px 22px 0; border-right: 1px solid var(--rule); }
.p-infrastructure-policy .ip-voice + .ip-voice { padding-left: 20px; }
.p-infrastructure-policy .ip-voice:last-child { border-right: 0; }
.p-infrastructure-policy .ip-voice .meta { display: block; margin-bottom: 10px; }
.p-infrastructure-policy .ip-voice p { font-size: .93rem; margin: 0; }
.p-infrastructure-policy .ip-voice--gov { background: var(--limestone); padding-left: 18px; }
.p-infrastructure-policy .ip-after { max-width: 80ch; margin-top: 24px; font-size: .95rem; color: var(--ink-soft); }

.p-infrastructure-policy .ip-paradigm { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(28px, 5vw, 72px); margin-bottom: 36px; align-items: start; }
.p-infrastructure-policy .ip-paradigm h2 { font-size: clamp(2rem, 4vw, 3rem); }
.p-infrastructure-policy .ip-pillars { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-top: 3px solid var(--terra); }
.p-infrastructure-policy .ip-pillars li { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 4px 16px; padding: 18px 0; border-bottom: 1px solid var(--rule-strong); }
.p-infrastructure-policy .ip-pillars__n { grid-row: span 2; font-family: var(--f-display); font-size: 3rem; line-height: .9; color: var(--terra-deep); }
.p-infrastructure-policy .ip-pillars strong { font-family: var(--f-display); font-weight: 400; font-size: 1.3rem; }
.p-infrastructure-policy .ip-pillars span:last-child { font-size: .92rem; color: var(--ink-soft); }

.p-infrastructure-policy .ip-speed { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.p-infrastructure-policy .ip-objections { background: #EFE4DC; padding: clamp(22px, 3vw, 34px); border-left: 4px solid var(--olive); }
.p-infrastructure-policy .ip-objections h3 { font-size: 1.4rem; margin-bottom: 4px; }
.p-infrastructure-policy .ip-objections blockquote { margin: 20px 0; padding: 0 0 18px; border-bottom: 1px solid var(--rule); }
.p-infrastructure-policy .ip-objections blockquote p[lang] { font-family: var(--f-display); font-size: 1.2rem; line-height: 1.3; margin-bottom: 6px; }
.p-infrastructure-policy .ip-objections .ip-en { font-size: .9rem; color: var(--ink-soft); margin-bottom: 6px; }
.p-infrastructure-policy .ip-objections cite { font: 400 .74rem/1.4 var(--f-mono); font-style: normal; color: var(--slate-ink); }
.p-infrastructure-policy .ip-objections > p:last-child { font-size: .9rem; margin: 0; }
.p-infrastructure-policy .ip-assoc { border-color: rgba(248, 246, 241, .3); }
.p-infrastructure-policy .ip-assoc > * { border-color: rgba(248, 246, 241, .3); }
.p-infrastructure-policy .ip-assoc p { color: #E6EBEE; }

@media (max-width: 1024px) {
  .p-infrastructure-policy .ip-voices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p-infrastructure-policy .ip-voice { border-bottom: 1px solid var(--rule); }
  .p-infrastructure-policy .ip-voice:nth-child(3) { padding-left: 0; }
  .p-infrastructure-policy .ip-voice:nth-child(2n) { border-right: 0; }
}
@media (max-width: 860px) {
  .p-infrastructure-policy .ip-paradigm, .p-infrastructure-policy .ip-speed { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .p-infrastructure-policy .ip-argmap { grid-template-columns: minmax(0, 1fr); grid-template-areas: "core" "a1" "a2" "a3" "a4"; }
  .p-infrastructure-policy .ip-argmap::before { left: 24px; }
  .p-infrastructure-policy .ip-voices { grid-template-columns: minmax(0, 1fr); }
  .p-infrastructure-policy .ip-voice, .p-infrastructure-policy .ip-voice + .ip-voice { padding-left: 0; border-right: 0; }
  .p-infrastructure-policy .ip-voice--gov, .p-infrastructure-policy .ip-voice--gov + .ip-voice { padding-left: 14px; }
  .p-infrastructure-policy .ip-voice + .ip-voice { padding-left: 0; }
  .p-infrastructure-policy .ip-voice--gov { padding-left: 14px; }
}

/* ---- economic-policy ---- */
.p-economic-policy .ep-fig .fig__frame { background: var(--warm); padding: clamp(10px, 2vw, 22px); }
.p-economic-policy .ep-fig .d-label { font-size: 19px; letter-spacing: .08em; }
.p-economic-policy q { quotes: "\201E" "\201C"; font-style: italic; }

.p-economic-policy .ep-auto { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(28px, 5vw, 80px); margin-bottom: clamp(32px, 5vw, 56px); }
.p-economic-policy .ep-auto__head h2 { font-size: clamp(1.9rem, 3.8vw, 3rem); line-height: 1.08; }
.p-economic-policy .ep-steps { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--graphite); }
.p-economic-policy .ep-steps li { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 18px; padding: 18px 0; border-bottom: 1px solid var(--rule); }
.p-economic-policy .ep-steps__y { font-family: var(--f-display); font-size: 1.9rem; line-height: 1; color: var(--terra-deep); }
.p-economic-policy .ep-steps p { margin: 0; font-size: .96rem; }

.p-economic-policy .ep-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(28px, 5vw, 72px); margin-top: clamp(36px, 5vw, 60px); }
.p-economic-policy .ep-two > div + div { border-left: 1px solid var(--rule-strong); padding-left: clamp(24px, 4vw, 56px); }
.p-economic-policy .ep-two h2 { font-size: clamp(1.7rem, 3vw, 2.3rem); }

.p-economic-policy .ep-scale { display: grid; grid-template-columns: minmax(0, 1fr) 70px minmax(0, 1fr); gap: 0; margin-bottom: 28px; align-items: stretch; }
.p-economic-policy .ep-scale__side { background: var(--warm); border: 1px solid var(--rule-strong); padding: clamp(20px, 3vw, 32px); }
.p-economic-policy .ep-scale__side:first-child { border-top: 5px solid var(--terra); }
.p-economic-policy .ep-scale__side:last-child { border-top: 5px solid var(--slate); }
.p-economic-policy .ep-scale__side .meta { display: block; margin-bottom: 14px; }
.p-economic-policy .ep-scale__side ul { margin: 0; padding-left: 1.1em; }
.p-economic-policy .ep-scale__side li { margin-bottom: .7em; font-size: .95rem; }
.p-economic-policy .ep-scale__side li::marker { color: var(--terra); }
.p-economic-policy .ep-scale__beam { position: relative; }
.p-economic-policy .ep-scale__beam::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 3px; background: var(--graphite); }
.p-economic-policy .ep-scale__beam span { position: absolute; left: 50%; top: 50%; width: 22px; height: 22px; transform: translate(-50%, -50%) rotate(45deg); background: var(--terra-deep); }

@media (max-width: 860px) {
  .p-economic-policy .ep-auto, .p-economic-policy .ep-two { grid-template-columns: minmax(0, 1fr); }
  .p-economic-policy .ep-two > div + div { border-left: 0; padding-left: 0; border-top: 1px solid var(--rule-strong); padding-top: 28px; }
  .p-economic-policy .ep-scale { grid-template-columns: minmax(0, 1fr); }
  .p-economic-policy .ep-scale__beam { height: 44px; }
  .p-economic-policy .ep-scale__beam::before { left: 50%; right: auto; top: 0; bottom: 0; width: 3px; height: auto; }
}
@media (max-width: 480px) {
  .p-economic-policy .ep-steps li { grid-template-columns: minmax(0, 1fr); gap: 6px; }
}

/* ---- mobility-and-society ---- */
.p-mobility-and-society q { quotes: "\201E" "\201C"; font-style: italic; }
.p-mobility-and-society .ms-intro h2 { font-size: clamp(2.2rem, 5vw, 4rem); max-width: 16ch; }
.p-mobility-and-society .ms-intro__cols { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(24px, 5vw, 72px); }

.p-mobility-and-society .ms-groups { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border-top: 3px solid var(--graphite); margin-bottom: 36px; }
.p-mobility-and-society .ms-group { display: flex; flex-direction: column; padding: 24px 22px 26px; background: var(--warm); border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.p-mobility-and-society .ms-group:last-child { border-right: 0; }
.p-mobility-and-society .ms-group__icon { display: inline-grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; border: 2px solid var(--terra); font: 500 .8rem/1 var(--f-mono); color: var(--terra-deep); margin-bottom: 16px; }
.p-mobility-and-society .ms-group h3 { font-size: 1.6rem; margin-bottom: 10px; }
.p-mobility-and-society .ms-group__stake { font-size: .93rem; color: var(--ink-soft); }
.p-mobility-and-society .ms-group__said { margin-top: auto; padding-top: 16px; border-top: 1px dashed var(--rule-strong); }
.p-mobility-and-society .ms-group__said .meta { display: block; color: var(--terra-deep); margin-bottom: 8px; }
.p-mobility-and-society .ms-group__said p { font-size: .9rem; margin: 0; }
.p-mobility-and-society .ms-group--dark { background: var(--slate-ink); color: var(--warm); }
.p-mobility-and-society .ms-group--dark h3 { color: var(--warm); }
.p-mobility-and-society .ms-group--dark .ms-group__stake { color: #E6EBEE; }
.p-mobility-and-society .ms-group--dark .ms-group__icon { border-color: #F2D9CF; color: #F2D9CF; }
.p-mobility-and-society .ms-group--dark .ms-group__said { border-color: rgba(248, 246, 241, .4); }
.p-mobility-and-society .ms-group--dark .ms-group__said .meta { color: #F2D9CF; }
.p-mobility-and-society .ms-group--dark a { color: #F2D9CF; }

.p-mobility-and-society .ms-price { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(10px, 2vw, 24px); align-items: end; height: clamp(200px, 26vw, 300px); border-bottom: 2px solid var(--graphite); }
.p-mobility-and-society .ms-price__step { position: relative; height: var(--h); background: var(--clay); display: flex; flex-direction: column; justify-content: flex-start; padding: 12px 12px 0; }
.p-mobility-and-society .ms-price__step--now { background: var(--terra); color: #fff; }
.p-mobility-and-society .ms-price__val { font-family: var(--f-display); font-size: clamp(1rem, 3.2vw, 2.6rem); line-height: 1; overflow-wrap: anywhere; }
.p-mobility-and-society .ms-price__yr { font: 500 .74rem/1 var(--f-mono); letter-spacing: .1em; margin-top: 6px; }
.p-mobility-and-society .ms-price__note { margin: 12px 0 36px; text-transform: none; letter-spacing: .02em; }
.p-mobility-and-society .ms-debate { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--rule-strong); }
.p-mobility-and-society .ms-debate__side { padding: clamp(20px, 3vw, 34px); }
.p-mobility-and-society .ms-debate__side + .ms-debate__side { border-left: 1px solid var(--rule-strong); background: rgba(216, 224, 228, .45); }
.p-mobility-and-society .ms-debate__side--min { background: var(--limestone); }
.p-mobility-and-society .ms-debate h3 { font-size: 1.45rem; }
.p-mobility-and-society .ms-debate ul { margin: 0; padding-left: 1.1em; }
.p-mobility-and-society .ms-debate li { margin-bottom: .7em; font-size: .95rem; }
.p-mobility-and-society .ms-debate li::marker { color: var(--terra); }
.p-mobility-and-society .ms-after { max-width: 78ch; margin-top: 24px; color: var(--ink-soft); }

.p-mobility-and-society .ms-speed__title { font-size: clamp(2rem, 4.6vw, 3.6rem); max-width: 22ch; }
.p-mobility-and-society .ms-speed__lede { max-width: 72ch; color: var(--ink-soft); margin-bottom: 32px; }
.p-mobility-and-society .ms-args { list-style: none; margin: 0; padding: 0; counter-reset: arg; border-top: 2px solid var(--graphite); }
.p-mobility-and-society .ms-args li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); border-bottom: 1px solid var(--rule-strong); }
.p-mobility-and-society .ms-args__claim, .p-mobility-and-society .ms-args__counter { padding: 20px 24px 22px 0; }
.p-mobility-and-society .ms-args__counter { padding-left: 24px; border-left: 3px solid var(--slate); background: rgba(248, 246, 241, .55); }
.p-mobility-and-society .ms-args__claim .meta { color: var(--terra-deep); }
.p-mobility-and-society .ms-args .meta { display: block; margin-bottom: 8px; }
.p-mobility-and-society .ms-args p { margin: 0; font-size: .95rem; }

.p-mobility-and-society .ms-second { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: clamp(20px, 5vw, 72px); align-items: center; max-width: 980px; }
.p-mobility-and-society .ms-second__big { font-family: var(--f-display); font-size: clamp(8rem, 22vw, 15rem); line-height: .8; color: var(--terra); margin: 0; }

@media (max-width: 1024px) {
  .p-mobility-and-society .ms-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p-mobility-and-society .ms-group:nth-child(2n) { border-right: 0; }
  .p-mobility-and-society .ms-group:nth-child(odd) { border-right: 1px solid var(--rule); }
}
@media (max-width: 760px) {
  .p-mobility-and-society .ms-intro__cols, .p-mobility-and-society .ms-debate, .p-mobility-and-society .ms-args li { grid-template-columns: minmax(0, 1fr); }
  .p-mobility-and-society .ms-debate__side + .ms-debate__side { border-left: 0; border-top: 1px solid var(--rule-strong); }
  .p-mobility-and-society .ms-args__claim { padding-right: 0; }
  .p-mobility-and-society .ms-args__counter { border-left: 0; border-top: 3px solid var(--slate); padding: 16px; margin-bottom: 16px; }
}
@media (max-width: 560px) {
  .p-mobility-and-society .ms-groups { grid-template-columns: minmax(0, 1fr); }
  .p-mobility-and-society .ms-group, .p-mobility-and-society .ms-group:nth-child(odd) { border-right: 0; }
  .p-mobility-and-society .ms-second { grid-template-columns: minmax(0, 1fr); }
  .p-mobility-and-society .ms-price__step { padding: 8px 6px 0; }
}

/* ---- regional-development ---- */
.p-regional-development q { quotes: "\201E" "\201C"; font-style: italic; }
.p-regional-development .rd-kv { grid-template-columns: minmax(0, 1fr); }
.p-regional-development .rd-kv dt { padding-bottom: 2px; border-bottom: 0; color: var(--terra-deep); }
.p-regional-development .rd-kv dd { font-size: .9rem; }

.p-regional-development .rd-register { display: grid; grid-template-columns: minmax(220px, 320px) minmax(0, 1fr); gap: clamp(24px, 5vw, 72px); align-items: start; }
.p-regional-development .rd-map { margin: 0; position: sticky; top: calc(var(--header-h) + 24px); }
.p-regional-development .rd-map figcaption { font-family: var(--f-mono); font-size: .7rem; letter-spacing: .04em; color: var(--slate-ink); margin-top: 8px; }
.p-regional-development .rd-pin circle { fill: var(--warm); stroke: var(--graphite); stroke-width: 2.5; }
.p-regional-development .rd-pin text { font-family: var(--f-mono); font-size: 17px; font-weight: 500; fill: var(--graphite); }
.p-regional-development .rd-pin--home circle { fill: var(--terra); stroke: var(--terra-deep); }
.p-regional-development .rd-pin--home text { fill: #fff; }

.p-regional-development .rd-places { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--graphite); }
.p-regional-development .rd-places li { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 18px; padding: 22px 0; border-bottom: 1px solid var(--rule-strong); scroll-margin-top: calc(var(--header-h) + 20px); }
.p-regional-development .rd-places__n { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; border: 2.5px solid var(--graphite); background: var(--warm); font: 500 1rem/1 var(--f-mono); }
.p-regional-development #rd-lb .rd-places__n { background: var(--terra); border-color: var(--terra-deep); color: #fff; }
.p-regional-development .rd-places h3 { font-size: 1.5rem; margin: 6px 0 8px; }
.p-regional-development .rd-places p { font-size: .95rem; margin: 0; }

.p-regional-development .rd-vmk { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: clamp(24px, 5vw, 80px); }
.p-regional-development .rd-vmk h2 { font-size: clamp(2.2rem, 4.6vw, 3.6rem); line-height: 1; }

@media (max-width: 860px) {
  .p-regional-development .rd-register, .p-regional-development .rd-vmk { grid-template-columns: minmax(0, 1fr); }
  .p-regional-development .rd-map { position: static; max-width: 260px; margin-inline: auto; }
}
@media (max-width: 420px) {
  .p-regional-development .rd-places li { grid-template-columns: minmax(0, 1fr); gap: 8px; }
}

/* ---- digitalisation ---- */
.p-digitalisation q { quotes: "\201E" "\201C"; font-style: italic; }
.p-digitalisation .dg-stack { display: flex; flex-direction: column; gap: 8px; perspective: 900px; }
.p-digitalisation .dg-stack__layer { display: grid; grid-template-columns: 70px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 16px; padding: 16px 20px; border: 1.5px solid var(--graphite); background: var(--warm); font-family: var(--f-mono); }
.p-digitalisation .dg-stack__layer .meta { grid-row: span 2; align-self: center; font-size: .66rem; }
.p-digitalisation .dg-stack__layer strong { font-family: var(--f-display); font-weight: 400; font-size: 1.45rem; line-height: 1.1; }
.p-digitalisation .dg-stack__layer span:last-child { font-size: .76rem; color: var(--ink-soft); letter-spacing: .02em; }
.p-digitalisation .dg-stack__layer--4 { margin-left: 18%; }
.p-digitalisation .dg-stack__layer--3 { margin-left: 12%; }
.p-digitalisation .dg-stack__layer--2 { margin-left: 6%; }
.p-digitalisation .dg-stack__layer--1 { background: var(--graphite); color: var(--warm); }
.p-digitalisation .dg-stack__layer--1 span:last-child, .p-digitalisation .dg-stack__layer--1 .meta { color: #E6EBEE; }
.p-digitalisation .dg-stack__layer--1 { box-shadow: 0 8px 0 var(--terra); }
.p-digitalisation .dg-fig figcaption { margin-top: 22px; }

.p-digitalisation .dg-names { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.p-digitalisation .dg-route { padding-top: 12px; border-top: 2px solid var(--graphite); }

.p-digitalisation .dg-layerhead { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 20px; align-items: center; margin-bottom: 26px; }
.p-digitalisation .dg-layerhead h2 { margin: 0; font-size: clamp(1.8rem, 3.6vw, 2.8rem); }
.p-digitalisation .dg-layerhead__n { display: grid; place-items: center; width: clamp(56px, 7vw, 76px); height: clamp(56px, 7vw, 76px); border: 2px solid currentColor; font: 500 clamp(1.2rem, 2.4vw, 1.7rem)/1 var(--f-mono); color: var(--terra-deep); }
.p-digitalisation .section--slate .dg-layerhead__n { color: #F2D9CF; }
.p-digitalisation .dg-cols { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(24px, 5vw, 64px); }
.p-digitalisation .section--slate .dg-ev { color: var(--ink); grid-template-columns: minmax(0, 1fr); }
.p-digitalisation .section--slate .dg-ev h3 { color: var(--ink); }
.p-digitalisation .section--slate .dg-ev a { color: var(--terra-deep); }
.p-digitalisation .dg-ev > div + div { border-left: 0; border-top: 1px solid var(--rule-strong); }
.p-digitalisation .dg-matrix article p + p { margin-top: 10px; }
.p-digitalisation .dg-after { margin-top: 22px; max-width: 76ch; color: var(--ink-soft); }
.p-digitalisation .dg-twin { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(28px, 5vw, 72px); }
.p-digitalisation .dg-twin > div + div { border-left: 1px solid var(--rule-strong); padding-left: clamp(24px, 4vw, 56px); }
.p-digitalisation .dg-limits { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border-top: 2px solid var(--graphite); }
.p-digitalisation .dg-limits li { padding: 20px 24px 22px 0; border-bottom: 1px solid var(--rule); font-size: .95rem; }
.p-digitalisation .dg-limits li:nth-child(2n) { padding-left: 24px; border-left: 1px solid var(--rule); }
.p-digitalisation .dg-limits strong { display: block; font-family: var(--f-display); font-weight: 400; font-size: 1.25rem; color: var(--terra-deep); margin-bottom: 4px; }

@media (max-width: 860px) {
  .p-digitalisation .dg-names, .p-digitalisation .dg-cols, .p-digitalisation .dg-twin, .p-digitalisation .dg-limits { grid-template-columns: minmax(0, 1fr); }
  .p-digitalisation .dg-twin > div + div { border-left: 0; padding-left: 0; border-top: 1px solid var(--rule-strong); padding-top: 28px; }
  .p-digitalisation .dg-limits li:nth-child(2n) { padding-left: 0; border-left: 0; }
}
@media (max-width: 420px) {
  .p-digitalisation .dg-stack__layer { grid-template-columns: minmax(0, 1fr); }
  .p-digitalisation .dg-stack__layer .meta { grid-row: auto; }
  .p-digitalisation .dg-stack__layer--4, .p-digitalisation .dg-stack__layer--3, .p-digitalisation .dg-stack__layer--2 { margin-left: 0; }
}

/* ---- climate-and-transport ---- */
.p-climate-and-transport q { quotes: "\201E" "\201C"; font-style: italic; }
.p-climate-and-transport .ct-traj { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.p-climate-and-transport .ct-chart { margin: 0; position: sticky; top: calc(var(--header-h) + 24px); background: var(--warm); border: 1px solid var(--rule-strong); padding: clamp(18px, 3vw, 30px); }
.p-climate-and-transport .ct-chart__bars { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-items: end; height: 300px; border-bottom: 2px solid var(--graphite); }
.p-climate-and-transport .ct-bar { position: relative; height: var(--h); background: var(--slate); display: flex; flex-direction: column; justify-content: space-between; padding: 10px 8px 8px; color: #fff; }
.p-climate-and-transport .ct-bar--now { background: var(--terra-deep); }
.p-climate-and-transport .ct-bar--flag { background: repeating-linear-gradient(135deg, var(--clay) 0 8px, var(--warm) 8px 14px); color: var(--ink); border: 1.5px dashed var(--terra-deep); }
.p-climate-and-transport .ct-bar__v { font-family: var(--f-display); font-size: clamp(1.05rem, 2vw, 1.6rem); line-height: 1; }
.p-climate-and-transport .ct-bar__l { font: 500 .66rem/1.2 var(--f-mono); letter-spacing: .08em; text-transform: uppercase; overflow-wrap: anywhere; }
.p-climate-and-transport .ct-chart figcaption { font-size: .8rem; color: var(--ink-soft); margin-top: 12px; }

.p-climate-and-transport .ct-tug { border-top: 3px solid var(--graphite); margin-bottom: clamp(32px, 5vw, 56px); }
.p-climate-and-transport .ct-tug__head { display: grid; grid-template-columns: 200px minmax(0, 1fr) minmax(0, 1fr); font: 500 .72rem/1 var(--f-mono); letter-spacing: .12em; text-transform: uppercase; padding: 14px 0; border-bottom: 1px solid var(--rule-strong); }
.p-climate-and-transport .ct-tug__head span:first-child { grid-column: 2; color: var(--terra-deep); padding-left: 20px; }
.p-climate-and-transport .ct-tug__head span:last-child { color: var(--slate-ink); padding-left: 20px; }
.p-climate-and-transport .ct-row { display: grid; grid-template-columns: 200px minmax(0, 1fr) minmax(0, 1fr); border-bottom: 1px solid var(--rule-strong); }
.p-climate-and-transport .ct-row__topic { font-size: 1.25rem; margin: 0; padding: 18px 16px 18px 0; }
.p-climate-and-transport .ct-row__a, .p-climate-and-transport .ct-row__b { padding: 18px 20px; }
.p-climate-and-transport .ct-row__a { background: var(--warm); border-left: 4px solid var(--terra); }
.p-climate-and-transport .ct-row__b { background: rgba(216, 224, 228, .6); border-left: 4px solid var(--slate); }
.p-climate-and-transport .ct-row p { margin: 0; font-size: .94rem; }

.p-climate-and-transport .ct-ledger th[scope="row"] { font-weight: 500; max-width: 340px; }
.p-climate-and-transport .ct-ledger td:nth-child(4) { min-width: 140px; }
.p-climate-and-transport .ct-ledger td:last-child { font-size: .86rem; color: var(--ink-soft); }
.p-climate-and-transport .ct-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: clamp(32px, 5vw, 52px); }
.p-climate-and-transport .ct-pair .evidence { grid-template-columns: minmax(0, 1fr); margin: 0; }
.p-climate-and-transport .ct-pair .evidence > div + div { border-left: 0; border-top: 1px solid var(--rule-strong); }

.p-climate-and-transport .ct-critics { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(28px, 5vw, 80px); }
.p-climate-and-transport .ct-critics h2 { font-size: clamp(2.1rem, 4.6vw, 3.6rem); line-height: 1.02; }
.p-climate-and-transport .ct-critics .lead { color: var(--warm); }
.p-climate-and-transport .ct-critics p { color: #E6EBEE; }

@media (max-width: 1024px) {
  .p-climate-and-transport .ct-tug__head { display: none; }
  .p-climate-and-transport .ct-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .p-climate-and-transport .ct-row__topic { grid-column: 1 / -1; padding-bottom: 8px; }
  .p-climate-and-transport .ct-row__a::before { content: "Bilger"; }
  .p-climate-and-transport .ct-row__b::before { content: "Critics"; }
  .p-climate-and-transport .ct-row__a::before, .p-climate-and-transport .ct-row__b::before { display: block; font: 500 .68rem/1 var(--f-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--slate-ink); margin-bottom: 8px; }
}
@media (max-width: 860px) {
  .p-climate-and-transport .ct-traj, .p-climate-and-transport .ct-critics, .p-climate-and-transport .ct-pair { grid-template-columns: minmax(0, 1fr); }
  .p-climate-and-transport .ct-chart { position: static; }
}
@media (max-width: 600px) {
  .p-climate-and-transport .ct-row { grid-template-columns: minmax(0, 1fr); }
  .p-climate-and-transport .ct-chart__bars { height: 240px; }
}

/* ---- innovation ---- */
.p-innovation q { quotes: "\201E" "\201C"; font-style: italic; }
.p-innovation .in-board { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border-top: 3px solid var(--graphite); position: relative; }
.p-innovation .in-col { padding: 22px 18px 26px; border-right: 1px solid var(--rule); background: linear-gradient(180deg, rgba(233, 226, 213, .0), rgba(233, 226, 213, .55)); }
.p-innovation .in-col:last-child { border-right: 0; }
.p-innovation .in-col--live { background: rgba(184, 92, 69, .08); }
.p-innovation .in-col__h { display: flex; align-items: center; gap: 12px; font-size: 1.3rem; margin-bottom: 6px; }
.p-innovation .in-col__h span { display: inline-grid; place-items: center; width: 34px; height: 34px; flex: none; border: 2px solid var(--graphite); font: 500 .8rem/1 var(--f-mono); background: var(--warm); }
.p-innovation .in-col--live .in-col__h span { background: var(--terra); border-color: var(--terra); color: #fff; }
.p-innovation .in-col__d { font-size: .84rem; color: var(--ink-soft); min-height: 3.2em; }
.p-innovation .in-card { display: block; margin-top: 10px; padding: 12px 14px; background: var(--warm); border: 1px solid var(--rule-strong); border-left: 4px solid var(--slate); text-decoration: none; color: var(--ink); font-family: var(--f-display); font-size: 1.08rem; line-height: 1.2; transition: border-color .2s, transform .2s var(--ease); }
.p-innovation .in-card .meta { display: block; font-size: .64rem; margin-bottom: 4px; }
.p-innovation .in-col--live .in-card { border-left-color: var(--terra); }
.p-innovation .in-card:hover { border-color: var(--terra); transform: translateX(3px); color: var(--terra-deep); }
.p-innovation .in-note { margin-top: 20px; font-size: .92rem; color: var(--ink-soft); max-width: 78ch; }

.p-innovation .in-hist { display: grid; grid-template-columns: minmax(0, .6fr) minmax(0, 1.4fr); gap: clamp(24px, 5vw, 72px); align-items: start; }
.p-innovation .in-hist__year { font-family: var(--f-display); font-size: clamp(5rem, 14vw, 11rem); line-height: .8; color: var(--clay); -webkit-text-stroke: 1.5px var(--terra-deep); }

.p-innovation .in-prog { border-top: 1px solid var(--graphite); padding: 22px 0 26px; scroll-margin-top: calc(var(--header-h) + 20px); }
.p-innovation .in-prog header .meta { display: block; margin-bottom: 6px; }
.p-innovation .in-prog h3 { font-size: clamp(1.4rem, 2.4vw, 1.8rem); margin-bottom: 14px; }
.p-innovation .in-prog__cols { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 0; }
.p-innovation .in-prog__cols > div { padding: 0 24px 0 0; }
.p-innovation .in-prog__cols > div + div { padding: 14px 18px; background: var(--mist); border-left: 3px solid var(--slate); }
.p-innovation .in-prog h4 { font: 500 .7rem/1 var(--f-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--slate-ink); margin-bottom: 8px; }
.p-innovation .in-prog p { margin: 0; font-size: .95rem; }
.p-innovation .in-prog--live .in-prog__cols > div + div { background: #F2D9CF; border-left-color: var(--terra-deep); }

.p-innovation .in-read h2 { font-size: clamp(2rem, 4vw, 3rem); margin-bottom: 24px; }

@media (max-width: 1024px) {
  .p-innovation .in-board { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p-innovation .in-col { border-bottom: 1px solid var(--rule); }
  .p-innovation .in-col:nth-child(2n) { border-right: 0; }
}
@media (max-width: 760px) {
  .p-innovation .in-hist, .p-innovation .in-prog__cols { grid-template-columns: minmax(0, 1fr); }
  .p-innovation .in-prog__cols > div { padding-right: 0; }
  .p-innovation .in-prog__cols > div + div { margin-top: 14px; }
}
@media (max-width: 520px) {
  .p-innovation .in-board { grid-template-columns: minmax(0, 1fr); }
  .p-innovation .in-col { border-right: 0; }
  .p-innovation .in-col__d { min-height: 0; }
}

/* ---- major-initiatives ---- */
.p-major-initiatives .mi-track { display: inline-flex; align-items: center; gap: 0; margin-right: 10px; vertical-align: middle; }
.p-major-initiatives .mi-track i { display: block; width: 12px; height: 12px; border-radius: 50%; border: 2px solid var(--terra); background: var(--warm); position: relative; }
.p-major-initiatives .mi-track i + i { margin-left: 10px; }
.p-major-initiatives .mi-track i + i::before { content: ""; position: absolute; right: 100%; top: 3px; width: 10px; height: 2px; background: var(--rule-strong); margin-right: 2px; }
.p-major-initiatives .mi-track--1 i:nth-child(-n+1),
.p-major-initiatives .mi-track--2 i:nth-child(-n+2),
.p-major-initiatives .mi-track--3 i:nth-child(-n+3),
.p-major-initiatives .mi-track--4 i:nth-child(-n+4) { background: var(--terra); }
.p-major-initiatives .mi-track--2 i:nth-child(2)::before, .p-major-initiatives .mi-track--3 i:nth-child(-n+3)::before, .p-major-initiatives .mi-track--4 i::before { background: var(--terra); }

.p-major-initiatives .mi-legend__title { font-size: clamp(1.5rem, 2.6vw, 2rem); margin-bottom: 18px; }
.p-major-initiatives .mi-legend { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 2px solid var(--graphite); }
.p-major-initiatives .mi-legend li { padding: 18px 18px 20px 0; border-right: 1px solid var(--rule); }
.p-major-initiatives .mi-legend li + li { padding-left: 18px; }
.p-major-initiatives .mi-legend li:last-child { border-right: 0; }
.p-major-initiatives .mi-legend .mi-track { margin-bottom: 12px; }
.p-major-initiatives .mi-legend strong { display: block; font-family: var(--f-display); font-weight: 400; font-size: 1.3rem; margin-bottom: 4px; }
.p-major-initiatives .mi-legend li > span:last-child { font-size: .88rem; color: var(--ink-soft); }
.p-major-initiatives .mi-legend__note { margin: 16px 0 0; font-family: var(--f-mono); font-size: .76rem; color: var(--slate-ink); }

.p-major-initiatives .mi-table { min-width: 720px; }
.p-major-initiatives .mi-table th[scope="row"] { font-family: var(--f-display); font-weight: 400; font-size: 1.08rem; }
.p-major-initiatives .mi-table th[scope="row"] a { color: var(--ink); text-decoration-color: var(--terra); text-underline-offset: 3px; }
.p-major-initiatives .mi-table td:nth-child(2) { font-family: var(--f-mono); font-size: .78rem; color: var(--terra-deep); white-space: nowrap; }
.p-major-initiatives .mi-table td:last-child { white-space: nowrap; font-size: .88rem; }
.p-major-initiatives .mi-inherited { background: rgba(248, 246, 241, .6); }
.p-major-initiatives .mi-inherited th[scope="row"]::after { content: "inherited / earlier"; display: block; font: 500 .62rem/1.4 var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--slate-ink); margin-top: 3px; }

.p-major-initiatives .mi-notes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--graphite); border-left: 1px solid var(--rule); }
.p-major-initiatives .mi-notes article { padding: 22px 22px 24px; border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); scroll-margin-top: calc(var(--header-h) + 20px); }
.p-major-initiatives .mi-notes article:target { background: #F2D9CF; }
.p-major-initiatives .mi-notes .meta { display: block; margin-bottom: 8px; }
.p-major-initiatives .mi-notes h3 { font-size: 1.3rem; margin-bottom: 8px; }
.p-major-initiatives .mi-notes p { font-size: .92rem; color: var(--ink-soft); margin: 0; }

.p-major-initiatives .mi-pending { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: clamp(24px, 5vw, 72px); }
.p-major-initiatives .mi-pending h2 { font-size: clamp(2rem, 4vw, 3rem); }
.p-major-initiatives .mi-pending__list { list-style: none; margin: 0; padding: 0; border-top: 2px dashed var(--slate); }
.p-major-initiatives .mi-pending__list li { padding: 16px 0 16px 30px; border-bottom: 1px dashed var(--rule-strong); position: relative; font-size: .95rem; }
.p-major-initiatives .mi-pending__list li::before { content: ""; position: absolute; left: 0; top: 21px; width: 14px; height: 14px; border-radius: 50%; border: 2px dashed var(--slate-ink); }
.p-major-initiatives .mi-pending__list strong { font-weight: 600; }

.p-major-initiatives .mi-who { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.p-major-initiatives .mi-who__cell { border: 1px solid var(--rule-strong); padding: 20px 20px 22px; background: var(--warm); }
.p-major-initiatives .mi-who__cell--strong { background: var(--graphite); color: var(--warm); border-color: var(--graphite); }
.p-major-initiatives .mi-who__cell--strong .meta { color: #F2D9CF; }
.p-major-initiatives .mi-who__cell .meta { display: block; margin-bottom: 8px; font-size: .74rem; }
.p-major-initiatives .mi-who__cell p { margin: 0; font-size: .92rem; }

@media (max-width: 1024px) {
  .p-major-initiatives .mi-notes, .p-major-initiatives .mi-who { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p-major-initiatives .mi-legend { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p-major-initiatives .mi-legend li { border-bottom: 1px solid var(--rule); }
  .p-major-initiatives .mi-legend li:nth-child(2n) { border-right: 0; }
  .p-major-initiatives .mi-legend li:nth-child(3) { padding-left: 0; }
}
@media (max-width: 760px) {
  .p-major-initiatives .mi-pending { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .p-major-initiatives .mi-notes, .p-major-initiatives .mi-who, .p-major-initiatives .mi-legend { grid-template-columns: minmax(0, 1fr); }
  .p-major-initiatives .mi-legend li, .p-major-initiatives .mi-legend li + li { padding-left: 0; border-right: 0; }
}

/* Stack the ledger on phones instead of forcing a sideways scroll */
@media (max-width: 640px) {
  .p-major-initiatives .mi-table { min-width: 0; display: block; }
  .p-major-initiatives .mi-table caption { display: block; }
  .p-major-initiatives .mi-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .p-major-initiatives .mi-table tbody { display: block; }
  .p-major-initiatives .mi-table tr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 4px 14px; padding: 14px 0; border-bottom: 1px solid var(--rule); }
  .p-major-initiatives .mi-table th[scope="row"], .p-major-initiatives .mi-table td { border: 0; padding: 0; }
  .p-major-initiatives .mi-table th[scope="row"] { grid-column: 1 / -1; }
  .p-major-initiatives .mi-table td:nth-child(2) { grid-column: 1; }
  .p-major-initiatives .mi-table td:nth-child(3) { grid-column: 2; font-size: .84rem; color: var(--ink-soft); }
  .p-major-initiatives .mi-table td:nth-child(3)::before { content: "Decided by"; display: block; font-family: var(--f-mono); font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; color: var(--slate-ink); }
  .p-major-initiatives .mi-table td:last-child { grid-column: 1 / -1; white-space: normal; }
}

/* ---- parliamentary-work ---- */
.p-parliamentary-work .ph-index h1 { font-size: clamp(2.4rem, 5.8vw, 4.8rem); line-height: 1; }

/* Lane chart */
.p-parliamentary-work .pw-gantt { --name: 150px; border-top: 2px solid var(--graphite); padding-top: 4px; }
.p-parliamentary-work .pw-gantt__axis { position: relative; height: 28px; margin-left: calc(var(--name) + 16px); border-bottom: 1px solid var(--rule-strong); }
.p-parliamentary-work .pw-gantt__axis span { position: absolute; left: calc(var(--x) * 1%); bottom: 6px; font-family: var(--f-mono); font-size: .7rem; color: var(--slate-ink); padding-left: 4px; border-left: 1px solid var(--rule-strong); line-height: 1; }
.p-parliamentary-work .pw-lane { display: grid; grid-template-columns: var(--name) minmax(0, 1fr); gap: 16px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--rule); }
.p-parliamentary-work .pw-lane__name { font-family: var(--f-mono); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--slate-ink); }
.p-parliamentary-work .pw-lane__track { position: relative; height: 34px; background: repeating-linear-gradient(90deg, rgba(41, 43, 45, .06) 0 1px, transparent 1px 5.88%); }
.p-parliamentary-work .pw-seg { position: absolute; top: 0; bottom: 0; left: calc(var(--s) * 1%); width: calc((var(--e) - var(--s)) * 1%); background: var(--graphite); color: var(--warm); font-size: .78rem; line-height: 34px; padding: 0 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; border-right: 2px solid var(--warm); transform-origin: left; animation: pw-grow .9s var(--ease) both; }
.p-parliamentary-work .pw-seg--terra { background: var(--terra-deep); }
.p-parliamentary-work .pw-seg--light { background: var(--clay); color: var(--graphite); }
.p-parliamentary-work .pw-seg--dark { background: var(--slate-ink); }
.p-parliamentary-work .pw-seg--slate { background: var(--slate-ink); }
.p-parliamentary-work .pw-gantt__note { margin-top: 12px; text-transform: none; letter-spacing: .02em; }
@keyframes pw-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* Modes */
.p-parliamentary-work .pw-modes { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 2px solid var(--graphite); }
.p-parliamentary-work .pw-modes article { padding: 22px 18px 24px 0; border-right: 1px solid var(--rule-strong); }
.p-parliamentary-work .pw-modes article + article { padding-left: 18px; }
.p-parliamentary-work .pw-modes article:last-child { border-right: 0; }
.p-parliamentary-work .pw-modes__n { display: block; font-family: var(--f-display); font-size: 3rem; line-height: 1; color: var(--terra-deep); margin-bottom: 12px; }
.p-parliamentary-work .pw-modes h3 { font-size: 1.35rem; }
.p-parliamentary-work .pw-modes p { font-size: .92rem; color: var(--ink-soft); margin: 0; }
.p-parliamentary-work .pw-modes a { white-space: nowrap; }

.p-parliamentary-work .pw-fig { margin: 30px 0; max-width: 629px; }
.p-parliamentary-work .pw-railnote { font-size: .86rem; color: var(--ink-soft); }

.p-parliamentary-work .pw-groups { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.p-parliamentary-work .pw-groups h2 { font-size: clamp(2rem, 4vw, 3.2rem); }
.p-parliamentary-work .pw-kv { background: rgba(248, 246, 241, .6); padding: 0 16px; }

@media (max-width: 1024px) {
  .p-parliamentary-work .pw-modes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .p-parliamentary-work .pw-modes article, .p-parliamentary-work .pw-modes article + article { padding: 20px 16px 22px; border-right: 0; border-bottom: 1px solid var(--rule-strong); }
}
@media (max-width: 760px) {
  .p-parliamentary-work .pw-gantt { --name: 96px; }
  .p-parliamentary-work .pw-lane { gap: 10px; }
  .p-parliamentary-work .pw-gantt__axis { margin-left: calc(var(--name) + 10px); }
  .p-parliamentary-work .pw-lane__name { font-size: .62rem; letter-spacing: .04em; }
  .p-parliamentary-work .pw-seg { font-size: 0; padding: 0; }
  .p-parliamentary-work .pw-groups { grid-template-columns: minmax(0, 1fr); }
  .p-parliamentary-work .pw-modes { grid-template-columns: minmax(0, 1fr); }
  .p-parliamentary-work .pw-modes article, .p-parliamentary-work .pw-modes article + article { padding: 18px 0; }
  .p-parliamentary-work .pw-modes a { white-space: normal; }
}
@media (max-width: 420px) {
  .p-parliamentary-work .pw-gantt__axis span:nth-child(even) { display: none; }
}
@media (prefers-reduced-motion: reduce) { .p-parliamentary-work .pw-seg { animation: none; } }
.p-parliamentary-work .pw-gantt__axis span:last-child { transform: translateX(-100%); border-left: 0; border-right: 1px solid var(--rule-strong); padding: 0 4px 0 0; }
.p-parliamentary-work .prose .eyebrow + h2 { margin-top: .2em; }

/* ---- speeches ---- */
.p-speeches .sp-key { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 26px 0 0; border-top: 2px solid var(--graphite); }
.p-speeches .sp-key div { padding: 14px 14px 0 0; }
.p-speeches .sp-key div + div { border-left: 1px solid var(--rule); padding-left: 14px; }
.p-speeches .sp-key dt { font-family: var(--f-mono); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: var(--slate-ink); }
.p-speeches .sp-key dd { margin: 4px 0 0; font-family: var(--f-display); font-size: clamp(1.2rem, 2vw, 1.6rem); line-height: 1.15; overflow-wrap: anywhere; }

.p-speeches .sp-feature { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(28px, 5vw, 80px); }
.p-speeches .sp-feature__meta h2 { font-size: clamp(1.9rem, 3.6vw, 3rem); line-height: 1.05; }
.p-speeches .sp-kv { border-top-color: rgba(248, 246, 241, .5); }
.p-speeches .sp-kv dt, .p-speeches .sp-kv dd { border-bottom-color: rgba(248, 246, 241, .2); }
.p-speeches .sp-kv dt { color: #C9D3DA; }
.p-speeches .sp-feature__body > p { color: #E6EBEE; }
.p-speeches .sp-quotes { list-style: none; margin: 28px 0; padding: 0; counter-reset: q; }
.p-speeches .sp-quotes li { counter-increment: q; position: relative; padding: 18px 0 18px 58px; border-top: 1px solid rgba(248, 246, 241, .25); }
.p-speeches .sp-quotes li::before { content: counter(q, decimal-leading-zero); position: absolute; left: 0; top: 22px; font-family: var(--f-mono); font-size: .76rem; color: #F2D9CF; letter-spacing: .1em; }
.p-speeches .sp-quotes p[lang="de"] { font-family: var(--f-display); font-size: clamp(1.25rem, 2.2vw, 1.7rem); line-height: 1.25; color: var(--warm); margin: 0 0 6px; }
.p-speeches .sp-quotes p[lang="de"]::before { content: "\201E"; color: var(--terra); }
.p-speeches .sp-quotes p[lang="de"]::after { content: "\201C"; color: var(--terra); }
.p-speeches .sp-en { font-size: .92rem; color: #D5DDE2; margin: 0; }
.p-speeches .sp-reply { font-size: .92rem; border-left: 3px solid var(--terra); padding-left: 16px; }

.p-speeches .sp-row { display: flex; flex-wrap: wrap; gap: 4px 0; margin: 0 0 8px; font-family: var(--f-mono); font-size: .7rem !important; letter-spacing: .06em; text-transform: uppercase; color: var(--slate-ink) !important; }
.p-speeches .sp-row span + span::before { content: "/"; margin: 0 8px; color: var(--terra); }
.p-speeches .sp-list .archive-item { position: relative; }
.p-speeches .sp-list .archive-item time { font-size: .95rem; font-family: var(--f-display); color: var(--terra-deep); }
.p-speeches .sp-list .archive-item h3 { font-size: clamp(1.12rem, 1.6vw, 1.3rem); }
.p-speeches .sp-list .archive-item__meta a { font-family: var(--f-mono); font-size: .74rem; letter-spacing: .04em; }

@media (max-width: 960px) {
  .p-speeches .sp-feature { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 420px) {
  .p-speeches .sp-key { grid-template-columns: minmax(0, 1fr); }
  .p-speeches .sp-key div + div { border-left: 0; padding-left: 0; }
  .p-speeches .sp-quotes li { padding-left: 0; padding-top: 36px; }
  .p-speeches .sp-quotes li::before { top: 14px; }
}

/* ---- statements ---- */
.p-statements .ph-statement h1 { max-width: 12ch; }
.p-statements .st-intro { padding-top: 0; }
.p-statements .st-grid { display: grid; grid-template-columns: minmax(0, 600px) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.p-statements .st-fig { position: sticky; top: calc(var(--header-h) + 24px); }
.p-statements .st-wall { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border-top: 2px solid var(--graphite); }
.p-statements .st-wall__h { grid-column: 1 / -1; font-family: var(--f-mono); font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; color: var(--slate-ink); font-weight: 500; margin: 14px 0 0; }
.p-statements .st-q { margin: 0; padding: 22px 22px 22px 0; border-bottom: 1px solid var(--rule); }
.p-statements .st-q--lg { grid-column: 1 / -1; padding-right: 0; }
.p-statements .st-q p[lang="de"] { font-family: var(--f-display); font-size: clamp(1.15rem, 1.8vw, 1.45rem); line-height: 1.25; margin: 0 0 8px; }
.p-statements .st-q--lg p[lang="de"] { font-size: clamp(1.8rem, 3.6vw, 3rem); line-height: 1.08; color: var(--terra-deep); }
.p-statements .st-q p[lang="de"]::before { content: "\201E"; color: var(--terra); }
.p-statements .st-q p[lang="de"]::after { content: "\201C"; color: var(--terra); }
.p-statements .st-q__en { font-size: .88rem; color: var(--ink-soft); margin: 0 0 8px; }
.p-statements .st-q cite { font: 400 .7rem/1.4 var(--f-mono); letter-spacing: .06em; font-style: normal; color: var(--slate-ink); text-transform: uppercase; }
.p-statements .st-q--lg.st-q { border-bottom: 2px solid var(--graphite); }
.p-statements .st-q:nth-of-type(n+2):nth-of-type(even) { border-left: 0; padding-left: 0; padding-right: 22px; }
.p-statements .st-q:nth-of-type(n+2):nth-of-type(odd) { border-left: 1px solid var(--rule); padding-left: 22px; padding-right: 0; }
.p-statements .st-list .archive-item h3 { font-size: 1.22rem; }
.p-statements .st-ctx { font-family: var(--f-mono); font-size: .72rem !important; letter-spacing: .04em; color: var(--slate-ink) !important; margin-bottom: 8px !important; }
.p-statements .st-list span[lang="de"] { font-style: italic; }
@media (max-width: 1024px) {
  .p-statements .st-grid { grid-template-columns: minmax(0, 1fr); }
  .p-statements .st-fig { position: static; max-width: 600px; }
}
@media (max-width: 620px) {
  .p-statements .st-wall { grid-template-columns: minmax(0, 1fr); }
  .p-statements .st-wall .st-q:nth-of-type(n):nth-of-type(n) { padding: 18px 0; border-left: 0; }
}

/* ---- questions-and-debates ---- */
.p-questions-and-debates .ph-sheet h1 { font-size: clamp(2.6rem, 6vw, 5rem); line-height: 1; }

/* Instruments */
.p-questions-and-debates .qd-tools { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 28px; }
.p-questions-and-debates .qd-tool { border: 1px solid var(--rule-strong); border-top: 4px solid var(--slate); padding: 20px 20px 22px; background: var(--warm); }
.p-questions-and-debates .qd-tool__tag { display: inline-block; font-family: var(--f-mono); font-size: .68rem; letter-spacing: .08em; color: var(--slate-ink); margin-bottom: 10px; overflow-wrap: anywhere; }
.p-questions-and-debates .qd-tool h3 { font-size: 1.4rem; }
.p-questions-and-debates .qd-tool p { font-size: .93rem; color: var(--ink-soft); margin: 0; }
.p-questions-and-debates .qd-tool--key { grid-row: span 2; border-top-color: var(--terra); background: var(--limestone); }
.p-questions-and-debates .qd-tool--key h3 { font-size: clamp(1.7rem, 3vw, 2.2rem); }
.p-questions-and-debates .qd-tool--key .qd-tool__tag { color: var(--terra-deep); }
.p-questions-and-debates .qd-tool:nth-child(1) { grid-column: 1; }
.p-questions-and-debates .qd-tool--key { grid-column: 3; grid-row: 1 / span 2; }

/* Archive */
.p-questions-and-debates .archive-item h3 { font-size: 1.3rem; }

/* Close-up exchange */
.p-questions-and-debates .qd-close__title { font-size: clamp(2rem, 4.6vw, 3.6rem); max-width: 20ch; }
.p-questions-and-debates .qd-close__lead { max-width: 64ch; margin-bottom: clamp(24px, 4vw, 40px); }
.p-questions-and-debates .qd-exchange { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 2px solid var(--graphite); }
.p-questions-and-debates .qd-speaker { padding: 22px 22px 24px; border-bottom: 1px solid var(--rule); border-right: 1px solid var(--rule); position: relative; }
.p-questions-and-debates .qd-speaker:nth-child(3n + 1) { padding-left: 0; }
.p-questions-and-debates .qd-speaker--gov { grid-column: 1 / -1; padding: 26px clamp(20px, 3vw, 36px); background: var(--slate-ink); color: var(--warm); border-right: 0; }
.p-questions-and-debates .qd-speaker--gov p { color: #E6EBEE; max-width: 90ch; font-size: 1rem; }
.p-questions-and-debates .qd-speaker__who { display: block; font-family: var(--f-display); font-size: 1.35rem; line-height: 1.15; margin-bottom: 10px; }
.p-questions-and-debates .qd-speaker__who em { display: block; font-style: normal; font-family: var(--f-mono); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: var(--slate-ink); margin-top: 4px; }
.p-questions-and-debates .qd-speaker--gov .qd-speaker__who em { color: #F2D9CF; }
.p-questions-and-debates .qd-speaker p { margin: 0; font-size: .94rem; }
.p-questions-and-debates .qd-speaker--coal { background: rgba(217, 197, 184, .35); padding-left: 22px; }
.p-questions-and-debates .qd-speaker:not(.qd-speaker--gov)::before { content: ""; position: absolute; top: -2px; left: 0; width: 40px; height: 3px; background: var(--terra); }
.p-questions-and-debates .qd-speaker.qd-speaker--coal::before { background: var(--slate); }
.p-questions-and-debates .qd-close__more { margin-top: 22px; color: var(--ink-soft); }

@media (max-width: 960px) {
  .p-questions-and-debates .qd-tools { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p-questions-and-debates .qd-tool--key { grid-column: 1 / -1; grid-row: auto; }
  .p-questions-and-debates .qd-exchange { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p-questions-and-debates .qd-speaker:nth-child(3n + 1) { padding-left: 22px; }
}
@media (max-width: 600px) {
  .p-questions-and-debates .qd-tools, .p-questions-and-debates .qd-exchange { grid-template-columns: minmax(0, 1fr); }
  .p-questions-and-debates .qd-speaker, .p-questions-and-debates .qd-speaker:nth-child(3n + 1) { padding: 20px 0; border-right: 0; }
  .p-questions-and-debates .qd-speaker--gov, .p-questions-and-debates .qd-speaker--coal { padding: 20px 16px; }
}
.p-questions-and-debates .prose .eyebrow + h2 { margin-top: .2em; }

/* ---- committee-work ---- */
.p-committee-work .ph-data { background: linear-gradient(90deg, transparent calc(100% - 1px), rgba(96, 120, 138, .1) 0) 0 0 / 60px 100%, var(--warm); }
.p-committee-work .ph-data h1 { font-size: clamp(2.4rem, 6vw, 5rem); line-height: 1; max-width: 15ch; }

.p-committee-work .cw-flow { margin-bottom: clamp(28px, 4vw, 48px); }
.p-committee-work .cw-how-text { max-width: 820px; }

/* Matrix */
.p-committee-work .cw-grid { min-width: 720px; background: var(--warm); }
.p-committee-work .cw-grid thead th { text-align: center; line-height: 1.4; }
.p-committee-work .cw-grid thead th:first-child { text-align: left; }
.p-committee-work .cw-grid tbody th { font-weight: 500; font-size: .92rem; max-width: 260px; padding-left: 12px; }
.p-committee-work .cw-grid td { text-align: center; vertical-align: middle; padding: 8px 6px; border-left: 1px solid var(--rule); }
.p-committee-work .cw-grid tbody tr:hover { background: rgba(216, 224, 228, .45); }
.p-committee-work .cw-c { display: inline-block; font-family: var(--f-mono); font-size: .66rem; letter-spacing: .06em; text-transform: uppercase; padding: 6px 8px; line-height: 1.2; min-width: 64px; }
.p-committee-work .cw-c--full { background: var(--terra); color: #fff; }
.p-committee-work .cw-c--chair { background: var(--terra-deep); color: #fff; box-shadow: inset 0 0 0 2px var(--signal); }
.p-committee-work .cw-c--dep { background: var(--mist); color: var(--slate-ink); }
.p-committee-work .cw-c--part { background: repeating-linear-gradient(135deg, var(--clay) 0 6px, #E8D9CF 6px 12px); color: var(--terra-deep); }
.p-committee-work .cw-c--unc { border: 1px dashed var(--slate); color: var(--slate-ink); }
.p-committee-work .cw-c--none { color: var(--rule-strong); min-width: 0; }
.p-committee-work .cw-key { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 22px; font-size: .84rem; color: var(--ink-soft); }
.p-committee-work .cw-key li { display: flex; align-items: center; gap: 8px; }
.p-committee-work .cw-key .cw-c { min-width: 0; }
.p-committee-work .cw-gap { max-width: 80ch; margin-top: 24px; padding-left: 20px; border-left: 3px solid var(--slate); }

/* Bodies */
.p-committee-work .cw-bodies { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 2px solid var(--graphite); border-left: 1px solid var(--rule); }
.p-committee-work .cw-body { padding: 24px 22px 26px; border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.p-committee-work .cw-body .meta { display: block; margin-bottom: 10px; }
.p-committee-work .cw-body h3 { font-size: 1.4rem; }
.p-committee-work .cw-body p { font-size: .94rem; color: var(--ink-soft); }
.p-committee-work .cw-body p:last-child { margin-bottom: 0; }
.p-committee-work .cw-body--lead { grid-column: span 2; grid-row: span 2; background: var(--limestone); }
.p-committee-work .cw-body--lead h3 { font-size: clamp(1.8rem, 3.4vw, 2.6rem); }
.p-committee-work .cw-body--lead p { font-size: 1rem; color: var(--ink); }

@media (max-width: 960px) {
  .p-committee-work .cw-bodies { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p-committee-work .cw-body--lead { grid-row: auto; }
}
@media (max-width: 600px) {
  .p-committee-work .cw-bodies { grid-template-columns: minmax(0, 1fr); }
  .p-committee-work .cw-body--lead { grid-column: auto; }
}
.p-committee-work .prose .eyebrow + h2 { margin-top: .2em; }

/* ---- legislative-work ---- */
.p-legislative-work .lw-track { background: var(--warm); border: 1px solid var(--rule-strong); padding: clamp(10px, 2vw, 24px); margin-bottom: clamp(28px, 4vw, 44px); }
.p-legislative-work .lw-track__svg text { font-size: 16px; letter-spacing: .02em; }
.p-legislative-work .lw-track__svg .lw-w { fill: var(--warm); }
.p-legislative-work .lw-flow h3 { font-size: 1.08rem; }
.p-legislative-work .lw-flow p { font-size: .84rem; }
.p-legislative-work .lw-item { display: grid; grid-template-columns: minmax(0, .38fr) minmax(0, .62fr); gap: clamp(20px, 4vw, 64px); padding: clamp(26px, 4vw, 44px) 0; border-top: 1px solid var(--rule-strong); }
.p-legislative-work .lw-item:first-of-type { border-top: 2px solid var(--graphite); }
.p-legislative-work .lw-item__head { position: relative; padding-left: 26px; }
.p-legislative-work .lw-item__head::before { content: ""; position: absolute; left: 0; top: 6px; bottom: 0; width: 3px; background: linear-gradient(var(--terra), var(--terra)) 0 0 / 3px 60px no-repeat, repeating-linear-gradient(180deg, var(--rule-strong) 0 6px, transparent 6px 12px); }
.p-legislative-work .lw-item__head .meta { display: block; margin-bottom: 10px; }
.p-legislative-work .lw-item__head h3 { font-size: clamp(1.45rem, 2.4vw, 2rem); line-height: 1.12; margin-bottom: 14px; }
.p-legislative-work .lw-status { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.p-legislative-work .lw-item__body p { color: var(--ink-soft); }
.p-legislative-work .lw-quote { margin-top: 10px; padding: 22px 0; }
.p-legislative-work .lw-quote p { font-size: clamp(1.25rem, 2.2vw, 1.7rem); }
.p-legislative-work .lw-pgf { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); gap: clamp(28px, 5vw, 80px); align-items: center; }
.p-legislative-work .lw-pgf__vote { border: 1px solid rgba(248, 246, 241, .35); padding: clamp(22px, 3vw, 36px); }
.p-legislative-work .lw-pgf__num { display: block; font-family: var(--f-display); font-size: clamp(4rem, 9vw, 7rem); line-height: .9; color: #F2D9CF; }
.p-legislative-work .lw-pgf__lbl { display: block; font-family: var(--f-mono); font-size: .72rem; letter-spacing: .08em; color: #E6EBEE; margin: 10px 0; }
.p-legislative-work .lw-pgf__bar { display: block; position: relative; height: 14px; background: rgba(248, 246, 241, .18); margin: 18px 0 4px; }
.p-legislative-work .lw-pgf__fill { position: absolute; left: 0; top: 0; bottom: 0; width: 50.5%; background: var(--terra); }
.p-legislative-work .lw-pgf__mark { position: absolute; top: -6px; bottom: -6px; left: 50.2%; width: 2px; background: var(--warm); }
@media (max-width: 860px) {
  .p-legislative-work .lw-item, .p-legislative-work .lw-pgf { grid-template-columns: minmax(0, 1fr); }
  .p-legislative-work .lw-track { overflow-x: auto; }
  .p-legislative-work .lw-track__svg { min-width: 700px; }
}

/* ---- achievements ---- */
.p-achievements .ach-legend { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 2px solid var(--graphite); border-bottom: 1px solid var(--rule-strong); }
.p-achievements .ach-legend__item { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 14px; padding: 22px 22px 22px 0; }
.p-achievements .ach-legend__item + .ach-legend__item { border-left: 1px solid var(--rule); padding-left: 22px; }
.p-achievements .ach-legend__item strong { font-family: var(--f-display); font-weight: 400; font-size: 1.3rem; display: block; margin-bottom: 4px; }
.p-achievements .ach-legend__item p { font-size: .9rem; color: var(--ink-soft); margin: 0; }
.p-achievements .ach-dot { width: 18px; height: 18px; margin-top: 6px; border-radius: 50%; border: 3px solid var(--slate); background: var(--warm); }
.p-achievements .ach-legend__item--out .ach-dot { border-color: var(--terra); background: var(--terra); }
.p-achievements .ach-legend__item--no .ach-dot { border-radius: 0; border-style: dashed; border-color: var(--charcoal); }

.p-achievements .ach-positions { list-style: none; margin: 0; padding: 0; position: relative; border-top: 2px solid var(--graphite); }
.p-achievements .ach-positions li { display: grid; grid-template-columns: 200px minmax(0, 1fr) minmax(0, .8fr); gap: 0 clamp(18px, 3vw, 40px); padding: 22px 0; border-bottom: 1px solid var(--rule); position: relative; }
.p-achievements .ach-positions li::before { content: ""; position: absolute; left: 184px; top: 30px; width: 12px; height: 12px; border-radius: 50%; border: 3px solid var(--slate); background: var(--warm); }
.p-achievements .ach-positions li.is-now::before { background: var(--terra); border-color: var(--terra); }
.p-achievements .ach-positions li > div:only-of-type { grid-column: 2 / -1; }
.p-achievements .ach-yr { font-family: var(--f-mono); font-size: .78rem; letter-spacing: .06em; color: var(--terra-deep); padding-right: 30px; padding-top: 4px; }
.p-achievements .ach-positions h3 { font-size: clamp(1.2rem, 1.8vw, 1.45rem); margin-bottom: 6px; }
.p-achievements .ach-positions p { font-size: .94rem; color: var(--ink-soft); margin: 0; max-width: 62ch; }

.p-achievements .ach-bars { display: flex; align-items: flex-end; gap: 10px; height: 150px; padding: 10px 0 0; border-bottom: 2px solid var(--graphite); align-self: end; }
.p-achievements .ach-bars span { flex: 1 1 0; min-width: 0; height: calc(var(--v) * 1.75%); background: var(--slate-ink); position: relative; }
.p-achievements .ach-bars span:nth-child(2) { background: var(--terra-deep); }
.p-achievements .ach-bars span b { color: var(--warm); }
.p-achievements .ach-bars b { position: absolute; top: -20px; left: 0; right: 0; text-align: center; font: 500 .7rem var(--f-mono); color: var(--ink); }

.p-achievements .ach-ledger td:first-child { font-family: var(--f-mono); font-size: .8rem; white-space: nowrap; color: var(--terra-deep); }
.p-achievements .ach-ledger td:nth-child(3) { font-size: .86rem; color: var(--ink-soft); }
.p-achievements .ach-ledger { background: var(--warm); }
.p-achievements .ach-ledger th, .p-achievements .ach-ledger td { padding-left: 12px; }
.p-achievements .ach-foot { margin-top: 16px; font-size: .9rem; color: var(--ink-soft); }

@media (max-width: 1024px) {
  .p-achievements .ach-positions li { grid-template-columns: 150px minmax(0, 1fr); }
  .p-achievements .ach-positions li::before { left: 134px; }
  .p-achievements .ach-bars { grid-column: 2; margin-top: 18px; max-width: 360px; }
}
@media (max-width: 760px) {
  .p-achievements .ach-legend { grid-template-columns: minmax(0, 1fr); }
  .p-achievements .ach-legend__item + .ach-legend__item { border-left: 0; padding-left: 0; border-top: 1px solid var(--rule); }
  .p-achievements .ach-positions li { grid-template-columns: minmax(0, 1fr); padding-left: 26px; }
  .p-achievements .ach-positions li::before { left: 0; top: 26px; }
  .p-achievements .ach-positions li > div:only-of-type, .p-achievements .ach-bars { grid-column: 1; }
  .p-achievements .ach-yr { padding: 0 0 6px; }
}

/* ---- political-record ---- */
.p-political-record .pr-era { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: clamp(18px, 3vw, 44px); margin-bottom: clamp(30px, 4vw, 48px); }
.p-political-record .pr-era__tab { position: relative; padding: 18px 18px 18px 0; border-top: 2px solid var(--graphite); }
.p-political-record .pr-era__no { display: block; font-family: var(--f-display); font-size: clamp(3rem, 6vw, 4.6rem); line-height: .9; color: rgba(143, 64, 52, .28); margin-bottom: 6px; }
.p-political-record .pr-era__tab .meta { display: block; margin-bottom: 4px; }
.p-political-record .pr-era__tab h3 { font-size: 1.4rem; margin: 0; }
.p-political-record .pr-era--now .pr-era__no { color: var(--terra); }
.p-political-record .pr-era--now .pr-era__tab { border-top-color: var(--terra); }
.p-political-record .pr-era .ledger td:first-child { font-family: var(--f-mono); font-size: .8rem; color: var(--terra-deep); white-space: nowrap; }
.p-political-record .pr-era .ledger td:last-child { font-size: .88rem; color: var(--ink-soft); }
.p-political-record .pr-votes td:nth-child(3) { width: 34%; }
.p-political-record .pr-votes td:first-child { font-family: var(--f-mono); }
.p-political-record .pr-matrix { margin-top: clamp(28px, 4vw, 44px); background: var(--warm); }
.p-political-record .pr-matrix h3 { font-size: clamp(2rem, 3.6vw, 2.8rem); color: var(--terra-deep); margin-bottom: 8px; }
.p-political-record .pr-assess { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); border-top: 2px solid var(--graphite); background: var(--warm); }
.p-political-record .pr-assess__col { padding: clamp(22px, 3vw, 36px); }
.p-political-record .pr-assess__col + .pr-assess__col { border-left: 1px solid var(--rule-strong); }
.p-political-record .pr-assess__col h3 { font-family: var(--f-mono); font-size: .76rem; letter-spacing: .12em; text-transform: uppercase; color: var(--slate-ink); font-weight: 500; padding-bottom: 12px; border-bottom: 3px solid var(--slate); }
.p-political-record .pr-assess__col--crit h3 { border-bottom-color: var(--terra); }
.p-political-record .pr-assess ul { list-style: none; margin: 0; padding: 0; }
.p-political-record .pr-assess li { padding: 12px 0; border-bottom: 1px solid var(--rule); font-size: .94rem; color: var(--ink-soft); }
.p-political-record .pr-assess li strong { color: var(--ink); display: block; font-family: var(--f-display); font-weight: 400; font-size: 1.15rem; }
.p-political-record .pr-assess__more { margin: 16px 0 0; font-size: .9rem; }
.p-political-record .pr-out__h { font-size: clamp(1.5rem, 2.4vw, 2rem); margin-bottom: 20px; }
@media (max-width: 860px) {
  .p-political-record .pr-era { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .p-political-record .pr-era__tab { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; padding-right: 0; }
  .p-political-record .pr-era__no { font-size: 2.6rem; margin: 0; }
  .p-political-record .pr-assess { grid-template-columns: minmax(0, 1fr); }
  .p-political-record .pr-assess__col + .pr-assess__col { border-left: 0; border-top: 1px solid var(--rule-strong); }
}

/* ---- criticism-and-controversies ---- */
.p-criticism-and-controversies .cc-method { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 40px; align-items: end; border-top: 1px solid var(--graphite); padding-top: 22px; }
.p-criticism-and-controversies .cc-method h2 { grid-column: 1 / -1; font-family: var(--f-mono); font-size: .76rem; letter-spacing: .14em; text-transform: uppercase; color: var(--slate-ink); font-weight: 500; margin: 0; }
.p-criticism-and-controversies .cc-method p { margin: 0; max-width: 78ch; color: var(--ink-soft); }
.p-criticism-and-controversies .cc-legend { display: flex; gap: 0; font-family: var(--f-mono); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; }
.p-criticism-and-controversies .cc-legend span { padding: 8px 14px; border: 1px solid var(--rule-strong); }
.p-criticism-and-controversies .cc-legend__ev { background: var(--warm); }
.p-criticism-and-controversies .cc-legend__cx { background: var(--mist); border-left: 0 !important; }

.p-criticism-and-controversies .cc-cases { padding-top: clamp(24px, 3vw, 40px); }
.p-criticism-and-controversies .cc-case { margin-bottom: clamp(28px, 4vw, 48px); border: 1px solid var(--rule-strong); background: var(--warm); scroll-margin-top: calc(var(--header-h) + 24px); }
.p-criticism-and-controversies .cc-case__head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 18px; align-items: center; padding: 18px clamp(18px, 3vw, 28px); background: var(--limestone); border-bottom: 1px solid var(--rule-strong); }
.p-criticism-and-controversies .cc-no { font-family: var(--f-display); font-size: clamp(2.2rem, 4vw, 3.2rem); line-height: 1; color: var(--terra-deep); min-width: 2ch; }
.p-criticism-and-controversies .cc-case__head .meta { display: block; margin-bottom: 4px; }
.p-criticism-and-controversies .cc-case__head h2 { font-size: clamp(1.35rem, 2.4vw, 1.9rem); margin: 0; line-height: 1.12; }
.p-criticism-and-controversies .cc-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); }
.p-criticism-and-controversies .cc-grid dl { margin: 0; padding: clamp(18px, 3vw, 28px); }
.p-criticism-and-controversies .cc-cx { background: rgba(216, 224, 228, .5); border-left: 1px solid var(--rule-strong); }
.p-criticism-and-controversies .cc-grid dt { font-family: var(--f-mono); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: var(--slate-ink); margin: 0 0 6px; padding-top: 14px; border-top: 1px solid var(--rule); }
.p-criticism-and-controversies .cc-grid dt:first-child { padding-top: 0; border-top: 0; }
.p-criticism-and-controversies .cc-ev dt { color: var(--terra-deep); }
.p-criticism-and-controversies .cc-grid dd { margin: 0 0 14px; font-size: .95rem; line-height: 1.6; overflow-wrap: anywhere; }
.p-criticism-and-controversies .cc-grid dd:last-child { margin-bottom: 0; }
.p-criticism-and-controversies .cc-cx dd { color: var(--ink-soft); font-size: .9rem; }
.p-criticism-and-controversies .cc-grid dd span[lang="de"] { font-family: var(--f-display); font-size: 1.05rem; }
@media (max-width: 860px) {
  .p-criticism-and-controversies .cc-grid { grid-template-columns: minmax(0, 1fr); }
  .p-criticism-and-controversies .cc-cx { border-left: 0; border-top: 1px solid var(--rule-strong); }
  .p-criticism-and-controversies .cc-method { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .p-criticism-and-controversies .cc-case__head { grid-template-columns: auto minmax(0, 1fr); }
  .p-criticism-and-controversies .cc-case__head .tag { grid-column: 1 / -1; justify-self: start; }
}

/* ---- timeline ---- */
.p-timeline .tl-head h1 { max-width: 9ch; }
.p-timeline .tl-head .ph-statement__lede { position: relative; z-index: 1; }

.p-timeline .tl-map-sec { --c-early: var(--olive); --c-party: var(--slate); --c-gov: var(--graphite); --c-min: var(--terra); padding-top: clamp(24px, 4vw, 48px); }
.p-timeline .tl-map__top { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 12px 32px; border-top: 2px solid var(--graphite); padding-top: 18px; }
.p-timeline .tl-map__top h2 { margin: 0; font-size: clamp(1.6rem, 3vw, 2.4rem); }
.p-timeline .tl-legend { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 22px; font-family: var(--f-mono); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: var(--slate-ink); }
.p-timeline .tl-legend__item { display: inline-flex; align-items: center; gap: 8px; }
.p-timeline .tl-legend__item::before { content: ""; width: 28px; height: 5px; background: var(--c, var(--slate)); }
.p-timeline .tl-legend__item--early { --c: var(--olive); }
.p-timeline .tl-legend__item--party { --c: var(--slate); }
.p-timeline .tl-legend__item--gov { --c: var(--graphite); }
.p-timeline .tl-legend__item--min { --c: var(--terra); }
.p-timeline .tl-hint { margin: 10px 0 28px; font-size: .64rem; }

/* The route: two rows that snake (row 2 runs right to left) */
.p-timeline .tl-line { position: relative; display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); grid-auto-rows: 124px; row-gap: 52px; padding-right: 44px; margin-bottom: clamp(28px, 4vw, 48px); }
.p-timeline .tl-line::after { content: ""; position: absolute; right: 0; top: 45px; width: 44px; height: calc(124px + 52px + 4px); border: 5px solid var(--slate); border-left: 0; border-radius: 0 60px 60px 0; box-sizing: border-box; }
.p-timeline .tl-stop { --c: var(--slate); appearance: none; position: relative; background: none; border: 0; margin: 0; padding: 0 6px; cursor: pointer; font: inherit; color: var(--ink); text-align: center; display: block; height: 124px; }
.p-timeline .tl-stop--early { --c: var(--olive); }
.p-timeline .tl-stop--party { --c: var(--slate); }
.p-timeline .tl-stop--gov { --c: var(--graphite); }
.p-timeline .tl-stop--min { --c: var(--terra); }
.p-timeline .tl-stop::before { content: ""; position: absolute; left: 0; right: 0; top: 45px; height: 5px; background: var(--c); }
.p-timeline .tl-stop::after { content: ""; position: absolute; left: 50%; top: 36px; width: 23px; height: 23px; margin-left: -11.5px; border-radius: 50%; background: var(--warm); border: 4px solid var(--c); box-sizing: border-box; transition: transform .2s var(--ease), background .2s; }
.p-timeline .tl-stop__yr { display: block; height: 22px; line-height: 22px; font-family: var(--f-mono); font-size: .84rem; letter-spacing: .04em; color: var(--ink-soft); }
.p-timeline .tl-stop__lbl { display: block; margin-top: 46px; font-size: .82rem; line-height: 1.3; color: var(--ink-soft); }
.p-timeline .tl-stop:hover::after { transform: scale(1.18); }
.p-timeline .tl-stop:hover .tl-stop__lbl { color: var(--ink); }
.p-timeline .tl-stop[aria-selected="true"]::after { background: var(--terra); border-color: var(--terra-deep); transform: scale(1.3); box-shadow: 0 0 0 6px rgba(184,92,69,.2); }
.p-timeline .tl-stop[aria-selected="true"] .tl-stop__yr { color: var(--terra-deep); font-weight: 500; }
.p-timeline .tl-stop[aria-selected="true"] .tl-stop__lbl { color: var(--ink); font-weight: 600; }
.p-timeline .tl-stop:focus-visible { outline: 2px solid var(--terra-deep); outline-offset: 2px; }
/* row 1: stations 1–8, left to right */
.p-timeline .tl-stop:nth-child(-n+8) { grid-row: 1; }
.p-timeline .tl-stop:nth-child(1) { grid-column: 1; }
.p-timeline .tl-stop:nth-child(1)::before { left: 50%; }
.p-timeline .tl-stop:nth-child(2) { grid-column: 2; } .p-timeline .tl-stop:nth-child(3) { grid-column: 3; }
.p-timeline .tl-stop:nth-child(4) { grid-column: 4; } .p-timeline .tl-stop:nth-child(5) { grid-column: 5; }
.p-timeline .tl-stop:nth-child(6) { grid-column: 6; } .p-timeline .tl-stop:nth-child(7) { grid-column: 7; }
.p-timeline .tl-stop:nth-child(8) { grid-column: 8; }
/* row 2: stations 9–16, right to left */
.p-timeline .tl-stop:nth-child(n+9) { grid-row: 2; }
.p-timeline .tl-stop:nth-child(9) { grid-column: 8; } .p-timeline .tl-stop:nth-child(10) { grid-column: 7; }
.p-timeline .tl-stop:nth-child(11) { grid-column: 6; } .p-timeline .tl-stop:nth-child(12) { grid-column: 5; }
.p-timeline .tl-stop:nth-child(13) { grid-column: 4; } .p-timeline .tl-stop:nth-child(14) { grid-column: 3; }
.p-timeline .tl-stop:nth-child(15) { grid-column: 2; } .p-timeline .tl-stop:nth-child(16) { grid-column: 1; }
.p-timeline .tl-stop:nth-child(16)::before { left: 50%; }
.p-timeline .tl-stop:nth-child(16)::after { width: 29px; height: 29px; margin-left: -14.5px; top: 33px; }

/* Panels */
.p-timeline .tl-panel { border-top: 4px solid var(--terra); background: var(--warm); box-shadow: 0 0 0 1px var(--rule-strong); padding: clamp(22px, 3.4vw, 44px); }
.p-timeline .tl-panel:focus-visible { outline: 2px solid var(--terra-deep); outline-offset: 4px; }
.p-timeline .tl-panel__head { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: clamp(16px, 3vw, 40px); align-items: end; padding-bottom: 20px; margin-bottom: 22px; border-bottom: 1px solid var(--rule-strong); }
.p-timeline .tl-panel__yr { font-family: var(--f-display); font-size: clamp(3.4rem, 9vw, 7.4rem); line-height: .8; color: var(--terra-deep); }
.p-timeline .tl-panel__head .meta { margin: 0 0 6px; }
.p-timeline .tl-panel__head h3 { margin: 0; font-size: clamp(1.4rem, 2.6vw, 2.1rem); }
.p-timeline .tl-panel__body { max-width: 860px; }
.p-timeline .tl-panel__body--split { max-width: none; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(22px, 4vw, 56px); align-items: start; }
.p-timeline .tl-panel__body--split .tl-src { grid-column: 1 / -1; }
.p-timeline .tl-panel__ctx { font-size: .94rem; color: var(--ink-soft); border-left: 3px solid var(--slate); padding-left: 14px; }
.p-timeline .tl-panel__ctx strong { font-family: var(--f-mono); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--slate-ink); font-weight: 500; }
.p-timeline .tl-src { list-style: none; margin: 18px 0 0; padding: 14px 0 0; border-top: 1px dashed var(--rule-strong); display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: .8rem; }
.p-timeline .tl-src::before { content: "Sources"; font-family: var(--f-mono); font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; color: var(--slate-ink); padding-top: 2px; }
.p-timeline .tl-src li { overflow-wrap: anywhere; }
.p-timeline .tl-quote { margin: 1.2em 0; padding: 4px 0 4px 20px; border-left: 3px solid var(--terra); }
.p-timeline .tl-quote p { font-family: var(--f-display); font-size: 1.3rem; line-height: 1.35; margin: 0 0 8px; }
.p-timeline .tl-quote .tl-quote__en { font-family: var(--f-body); font-size: .92rem; color: var(--ink-soft); }

.p-timeline .tl-sub { list-style: none; margin: 0; padding: 0; position: relative; }
.p-timeline .tl-sub::before { content: ""; position: absolute; left: 76px; top: 10px; bottom: 10px; width: 3px; background: var(--terra); }
.p-timeline .tl-sub li { position: relative; display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 32px; padding: 0 0 18px; }
.p-timeline .tl-sub li::before { content: ""; position: absolute; left: 70px; top: 6px; width: 15px; height: 15px; border-radius: 50%; background: var(--warm); border: 3px solid var(--terra); box-sizing: border-box; }
.p-timeline .tl-sub li:last-child::before { background: var(--terra); }
.p-timeline .tl-sub time { font-family: var(--f-mono); font-size: .8rem; color: var(--terra-deep); text-align: right; white-space: nowrap; }
.p-timeline .tl-sub span { font-size: .95rem; }
.p-timeline .tl-fig { max-width: 678px; }

.p-timeline .tl-index__list { list-style: none; margin: 0; padding: 0; columns: 2 340px; column-gap: 48px; border-top: 2px solid var(--graphite); padding-top: 8px; }
.p-timeline .tl-index__list li { break-inside: avoid; display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 14px; padding: 10px 0; border-bottom: 1px solid var(--rule); font-size: .95rem; }
.p-timeline .tl-index__list span { font-family: var(--f-mono); font-size: .8rem; color: var(--terra-deep); padding-top: 2px; }
.p-timeline .tl-index__list .is-now { font-weight: 600; }

@media (max-width: 1100px) {
  .p-timeline .tl-stop__lbl { font-size: .74rem; }
}
@media (max-width: 900px) {
  .p-timeline .tl-line { display: flex; overflow-x: auto; padding: 0 0 10px; scroll-snap-type: x proximity; scrollbar-width: thin; grid-auto-rows: auto; }
  .p-timeline .tl-line::after { display: none; }
  .p-timeline .tl-stop, .p-timeline .tl-stop:nth-child(n) { flex: 0 0 112px; scroll-snap-align: start; height: 118px; }
  .p-timeline .tl-stop:nth-child(16)::before { left: 0; right: 50%; }
  .p-timeline .tl-panel__body--split { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .p-timeline .tl-panel__head { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .p-timeline .tl-sub::before { left: 10px; }
  .p-timeline .tl-sub li { grid-template-columns: minmax(0, 1fr); gap: 2px; padding-left: 34px; }
  .p-timeline .tl-sub li::before { left: 4px; }
  .p-timeline .tl-sub time { text-align: left; }
}

/* ---- constituency ---- */
.p-constituency .ph-index h1 { font-size: clamp(2.4rem, 5.6vw, 4.8rem); line-height: 1; }

.p-constituency .cn-cols { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.p-constituency .cn-flow { grid-template-columns: minmax(0, 1fr); background: var(--limestone); padding: 28px 24px 4px; border-top: 3px solid var(--terra); }
.p-constituency .cn-flow li { padding: 0 0 26px 58px; min-height: 40px; }
.p-constituency .cn-flow li::after { top: 40px; left: 19px; right: auto; bottom: 0; width: 2px; height: auto; background: repeating-linear-gradient(180deg, var(--terra) 0 8px, transparent 8px 13px); }

.p-constituency .cn-ledger tbody th { font-family: var(--f-mono); font-size: .8rem; font-weight: 500; white-space: nowrap; }
.p-constituency .cn-ledger td:nth-child(6) { width: 18%; min-width: 110px; vertical-align: middle; }
.p-constituency .cn-ledger .bar { height: 14px; }
.p-constituency .cn-ledger tbody tr:last-child { background: rgba(248, 246, 241, .7); }
.p-constituency .cn-ledger-notes { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(20px, 4vw, 56px); margin-top: 22px; }
.p-constituency .cn-ledger-notes .meta { text-transform: none; letter-spacing: .02em; line-height: 1.6; }

.p-constituency .cn-stations { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(24px, 4vw, 64px); position: relative; }
.p-constituency .cn-stations li { display: grid; grid-template-columns: 72px 22px minmax(0, 1fr); grid-template-areas: "code dot name" "code dot note"; align-items: baseline; padding: 12px 0; border-bottom: 1px solid var(--rule); position: relative; }
.p-constituency .cn-stations li::before { content: ""; grid-area: dot; width: 13px; height: 13px; border-radius: 50%; border: 3px solid var(--terra); background: var(--warm); align-self: center; z-index: 1; }
.p-constituency .cn-stations li::after { content: ""; position: absolute; left: 77px; top: 0; bottom: -1px; width: 3px; background: var(--terra); }
.p-constituency .cn-code { grid-area: code; font-family: var(--f-mono); font-size: .72rem; color: var(--slate-ink); letter-spacing: .06em; }
.p-constituency .cn-name { grid-area: name; font-family: var(--f-display); font-size: 1.35rem; line-height: 1.2; padding-left: 10px; }
.p-constituency .cn-note { grid-area: note; font-size: .82rem; color: var(--ink-soft); padding-left: 10px; }
.p-constituency .cn-hub::before { width: 19px; height: 19px; background: var(--terra); box-shadow: 0 0 0 5px rgba(184, 92, 69, .18); margin-left: -3px; }
.p-constituency .cn-hub .cn-name { color: var(--terra-deep); font-size: 1.6rem; }
.p-constituency .cn-ext::before { border-color: var(--slate); border-style: dashed; }
.p-constituency .cn-ext::after { background: repeating-linear-gradient(180deg, var(--slate) 0 6px, transparent 6px 10px); }
.p-constituency .cn-after { max-width: 78ch; margin-top: 26px; color: var(--ink-soft); }

.p-constituency .cn-route { margin-bottom: clamp(36px, 5vw, 56px); }
.p-constituency .cn-members { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px clamp(28px, 5vw, 72px); align-items: start; }
.p-constituency .cn-members h3 { grid-column: 1 / -1; font-size: 1.6rem; margin: 0; }
.p-constituency .cn-members .ledger { min-width: 0; }
.p-constituency .cn-members .table-wrap { background: var(--warm); padding: 0 16px; }
.p-constituency .cn-members tr.cn-now td { font-weight: 600; color: var(--terra-deep); }
.p-constituency .cn-railnote { font-size: .86rem; color: var(--ink-soft); margin-top: 14px; }

@media (max-width: 860px) {
  .p-constituency .cn-cols, .p-constituency .cn-ledger-notes, .p-constituency .cn-members { grid-template-columns: minmax(0, 1fr); }
  .p-constituency .cn-stations { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 420px) {
  .p-constituency .cn-stations li { grid-template-columns: 56px 22px minmax(0, 1fr); }
  .p-constituency .cn-stations li::after { left: 61px; }
  .p-constituency .cn-name { font-size: 1.18rem; }
}
.p-constituency .prose .eyebrow + h2 { margin-top: .2em; }

/* ---- archive ---- */
.p-archive .ar-scale__h { font-family: var(--f-mono); font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; color: var(--slate-ink); font-weight: 500; margin-bottom: 14px; }
.p-archive .ar-scale { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(6px, 1.4vw, 18px); align-items: end; height: 190px; border-bottom: 2px solid var(--graphite); background: repeating-linear-gradient(0deg, transparent 0 37px, var(--rule) 37px 38px); }
.p-archive .ar-scale__col { display: flex; flex-direction: column; justify-content: flex-end; height: 100%; position: relative; }
.p-archive .ar-scale__bar { display: block; height: calc(var(--n) * 3.6px); background: var(--slate); }
.p-archive .ar-scale__col--now .ar-scale__bar { background: var(--terra); }
.p-archive .ar-scale__n { position: absolute; bottom: calc(var(--n) * 3.6px + 4px); left: 0; font-family: var(--f-display); font-size: 1.5rem; line-height: 1; color: var(--terra-deep); }
.p-archive .ar-scale__y { position: absolute; top: calc(100% + 8px); left: 0; font-family: var(--f-mono); font-size: .7rem; color: var(--slate-ink); white-space: nowrap; }
.p-archive .ar-scale__note { margin: 40px 0 0; font-size: .9rem; color: var(--ink-soft); max-width: 80ch; }
.p-archive .ar-list .archive-item { grid-template-columns: 110px minmax(0, 1fr) 150px; padding: 16px 0; }
.p-archive .ar-list .archive-item h3 { font-family: var(--f-body); font-weight: 600; font-size: 1rem; line-height: 1.4; overflow-wrap: anywhere; }
.p-archive .ar-list .archive-item p { margin-bottom: 4px; font-size: .9rem; }
.p-archive .ar-list .archive-item .ar-page { font-family: var(--f-mono); font-size: .72rem; color: var(--slate-ink); }
.p-archive .ar-list .archive-item:nth-child(even) { background: linear-gradient(90deg, rgba(233, 226, 213, .45), transparent 70%); }
.p-archive .ar-list .archive-item[data-topics="ministry"] time::after { content: "BMV"; display: block; margin-top: 4px; font-size: .62rem; letter-spacing: .14em; color: var(--slate-ink); }
.p-archive .ar-repos { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--graphite); }
.p-archive .ar-repos li { padding: 12px 0; border-bottom: 1px solid var(--rule); }
.p-archive .ar-repos a { font-family: var(--f-display); font-size: 1.15rem; }
.p-archive .ar-repos span { display: block; font-size: .82rem; color: var(--ink-soft); }
@media (max-width: 860px) {
  .p-archive .ar-list .archive-item { grid-template-columns: minmax(0, 1fr); }
  .p-archive .ar-list .archive-item[data-topics="ministry"] time::after { display: inline; margin-left: 10px; }
}
@media (max-width: 480px) {
  .p-archive .ar-scale__y { white-space: normal; font-size: .62rem; }
  .p-archive .ar-scale__n { font-size: 1.1rem; }
}

/* ---- media ---- */
.p-media .md-jump { list-style: none; margin: 26px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.p-media .md-jump a { display: inline-block; padding: 10px 14px; border: 1px solid var(--rule-strong); font: 500 .72rem/1 var(--f-mono); letter-spacing: .1em; text-transform: uppercase; text-decoration: none; color: var(--ink); }
.p-media .md-jump a:hover { background: var(--graphite); color: var(--warm); }
.p-media .md-head .fig { max-width: 678px; justify-self: end; width: 100%; }

.p-media .md-board { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-flow: dense; gap: 1px; background: rgba(248, 246, 241, .22); border: 1px solid rgba(248, 246, 241, .22); }
.p-media .md-cat { background: var(--slate-ink); padding: clamp(18px, 2.4vw, 28px); min-width: 0; }
.p-media .md-cat--portrait, .p-media .md-cat--min { grid-column: span 2; }
.p-media .md-cat--bt { grid-column: span 2; grid-row: span 2; background: #34495A; }
.p-media .md-cat--con { background: var(--terra-deep); }
.p-media .md-cat__head { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; border-bottom: 1px solid rgba(248, 246, 241, .3); padding-bottom: 12px; margin-bottom: 8px; }
.p-media .md-cat__no { font-family: var(--f-mono); font-size: .72rem; letter-spacing: .1em; color: #F2D9CF; }
.p-media .md-cat__head h3 { margin: 0; font-size: clamp(1.4rem, 2.4vw, 2rem); color: var(--warm); }
.p-media .md-cat__count { margin-left: auto; font-family: var(--f-mono); font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; color: #C9D3DA; }
.p-media .md-cat ul { list-style: none; margin: 0; padding: 0; }
.p-media .md-cat li { padding: 10px 0; border-bottom: 1px dashed rgba(248, 246, 241, .2); }
.p-media .md-cat li:last-child { border-bottom: 0; }
.p-media .md-cat a { font-family: var(--f-display); font-size: 1.12rem; color: var(--warm); text-decoration-color: var(--terra); }
.p-media .md-cat a:hover { color: #F2D9CF; }
.p-media .md-cat span:not([class]) { display: block; font-size: .84rem; color: #D5DDE2; }

.p-media .md-ledger td:first-child { font-family: var(--f-mono); font-size: .8rem; color: var(--terra-deep); white-space: nowrap; }
.p-media .md-ledger td:nth-child(2) { font-family: var(--f-display); font-size: 1.05rem; }
.p-media .md-ledger td:nth-child(3) { font-size: .86rem; color: var(--ink-soft); }
.p-media .md-rights { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, .6fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.p-media .md-kv { background: var(--warm); padding: 0 18px; }
@media (max-width: 1024px) {
  .p-media .md-board { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p-media .md-cat--bt { grid-row: auto; }
  .p-media .md-rights { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .p-media .md-board { grid-template-columns: minmax(0, 1fr); }
  .p-media .md-cat--portrait, .p-media .md-cat--min, .p-media .md-cat--bt { grid-column: auto; }
}
.p-media .md-coverage { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--graphite); }
.p-media .md-coverage li { display: grid; grid-template-columns: 80px minmax(0, 220px) minmax(0, 1fr) auto; gap: 8px 24px; padding: 14px 0; border-bottom: 1px solid var(--rule); align-items: baseline; }
.p-media .md-coverage time { font-family: var(--f-mono); font-size: .8rem; color: var(--terra-deep); }
.p-media .md-out { font-family: var(--f-display); font-size: 1.15rem; line-height: 1.2; }
.p-media .md-what { font-size: .92rem; color: var(--ink-soft); }
.p-media .md-coverage a { font-family: var(--f-mono); font-size: .72rem; overflow-wrap: anywhere; }
.p-media .md-cover__note { margin: 18px 0 0; font-size: .9rem; color: var(--ink-soft); max-width: 80ch; }
@media (max-width: 860px) {
  .p-media .md-coverage li { grid-template-columns: 70px minmax(0, 1fr); }
  .p-media .md-what, .p-media .md-coverage a { grid-column: 2; }
}

/* ---- photography ---- */
.p-photography .ph-statement--photo { padding-bottom: clamp(28px, 4vw, 56px); }
.p-photography .pg-gallery { background: var(--graphite); color: var(--warm); padding: clamp(40px, 7vw, 100px) 0; }
.p-photography .pg-plate + .pg-plate { margin-top: clamp(40px, 7vw, 96px); }
.p-photography .pg-fig { margin: 0 auto; width: 100%; position: relative; }
.p-photography .pg-fig--1000 { max-width: 1000px; }
.p-photography .pg-fig--516 { max-width: 516px; }
.p-photography .pg-fig--447 { max-width: 447px; }
.p-photography .pg-frame { background: #1E2022; line-height: 0; box-shadow: 0 0 0 1px rgba(248, 246, 241, .14); }
.p-photography .pg-frame img { display: block; width: 100%; max-width: 100%; height: auto; margin: 0 auto; }
.p-photography .pg-no { display: block; font-family: var(--f-mono); font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: #E7B8A9; margin-bottom: 12px; }
.p-photography .pg-no::before { content: ""; display: inline-block; width: 28px; height: 2px; background: var(--terra); vertical-align: middle; margin-right: 10px; }
.p-photography .pg-fig figcaption { display: grid; grid-template-columns: minmax(0, 160px) minmax(0, 1fr); gap: 4px 24px; margin-top: 18px; padding-top: 14px; border-top: 1px solid rgba(248, 246, 241, .2); }
.p-photography .pg-cap__t { font-family: var(--f-display); font-size: 1.5rem; line-height: 1.1; color: var(--warm); grid-row: span 2; }
.p-photography .pg-cap__d { font-size: .92rem; color: #D5DDE2; line-height: 1.55; }
.p-photography .pg-cap__m { font-family: var(--f-mono); font-size: .66rem; letter-spacing: .1em; color: #9FB0BC; }
.p-photography .pg-pair { display: grid; grid-template-columns: minmax(0, 516fr) minmax(0, 447fr); gap: clamp(28px, 5vw, 72px); align-items: end; max-width: 1100px; margin: 0 auto; }
.p-photography .pg-pair .pg-fig--447 { margin-bottom: clamp(0px, 4vw, 60px); }
.p-photography .pg-pair figcaption { grid-template-columns: minmax(0, 1fr); }
.p-photography .pg-pair .pg-cap__t { grid-row: auto; }
.p-photography .pg-index { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--graphite); counter-reset: pgi; }
.p-photography .pg-index li { counter-increment: pgi; display: grid; grid-template-columns: 30px minmax(0, 1fr); padding: 8px 0; border-bottom: 1px solid var(--rule); font-size: .9rem; }
.p-photography .pg-index li::before { content: counter(pgi, decimal-leading-zero); font-family: var(--f-mono); font-size: .68rem; color: var(--terra-deep); padding-top: 3px; grid-row: span 2; }
.p-photography .pg-index span { font-size: .78rem; color: var(--ink-soft); }
@media (max-width: 760px) {
  .p-photography .pg-pair { grid-template-columns: minmax(0, 1fr); }
  .p-photography .pg-pair .pg-fig--447 { margin-bottom: 0; }
  .p-photography .pg-fig figcaption { grid-template-columns: minmax(0, 1fr); }
  .p-photography .pg-cap__t { grid-row: auto; }
}
.p-photography .pg-route .stop-title a { color: var(--ink); text-decoration-color: var(--terra); }
.p-photography .pg-route .stop-title a:hover { color: var(--terra-deep); }
.p-photography .pg-licence { margin-top: clamp(28px, 4vw, 48px); max-width: 78ch; border-left: 3px solid var(--terra); padding: 4px 0 4px 22px; }
.p-photography .pg-licence h3 { font-size: 1.3rem; }
.p-photography .pg-licence p { color: var(--ink-soft); margin: 0; }

/* ---- videos ---- */
.p-videos .vd-wall { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(12px, 1.6vw, 20px); }
.p-videos .vd-tile a { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: var(--warm); background: rgba(248, 246, 241, .06); border: 1px solid rgba(248, 246, 241, .18); padding: 0 0 18px; transition: border-color .2s, background .2s; }
.p-videos .vd-tile a:hover, .p-videos .vd-tile a:focus-visible { border-color: var(--terra); background: rgba(248, 246, 241, .1); color: var(--warm); }
.p-videos .vd-thumb { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; border-bottom: 3px solid var(--terra); margin-bottom: 14px; }
.p-videos .vd-tile--feature { grid-column: span 2; grid-row: span 2; }
.p-videos .vd-tile--feature .vd-title { font-size: clamp(1.6rem, 3vw, 2.4rem); }
.p-videos .vd-date, .p-videos .vd-type, .p-videos .vd-title, .p-videos .vd-desc { display: block; padding: 0 18px; }
.p-videos .vd-date { font-family: var(--f-mono); font-size: .74rem; letter-spacing: .08em; color: #F2D9CF; }
.p-videos .vd-type { font-family: var(--f-mono); font-size: .64rem; letter-spacing: .1em; text-transform: uppercase; color: #C9D3DA; margin: 4px 0 10px; }
.p-videos .vd-title { font-family: var(--f-display); font-size: 1.15rem; line-height: 1.2; color: var(--warm); margin-bottom: 8px; overflow-wrap: anywhere; }
.p-videos .vd-desc { font-size: .86rem; color: #D5DDE2; line-height: 1.5; }
.p-videos .vd-inline { padding: 0; display: inline; text-decoration: underline; text-decoration-color: var(--terra); }
.p-videos .vd-note { margin: 24px 0 0; font-size: .88rem; color: #E6EBEE; }
.p-videos .vd-sources { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 2px solid var(--graphite); }
.p-videos .vd-src { display: block; padding: 24px 22px 26px 0; border-right: 1px solid var(--rule); text-decoration: none; color: var(--ink); }
.p-videos .vd-src + .vd-src { padding-left: 22px; }
.p-videos .vd-src:last-child { border-right: 0; }
.p-videos .vd-src .meta { display: block; margin-bottom: 12px; }
.p-videos .vd-src h3 { font-size: 1.35rem; margin-bottom: 8px; }
.p-videos .vd-src p { font-size: .9rem; color: var(--ink-soft); }
.p-videos .vd-src:hover h3 { color: var(--terra-deep); }
@media (max-width: 1100px) {
  .p-videos .vd-wall { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p-videos .vd-sources { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p-videos .vd-src:nth-child(2) { border-right: 0; }
  .p-videos .vd-src:nth-child(3) { padding-left: 0; }
}
@media (max-width: 600px) {
  .p-videos .vd-wall, .p-videos .vd-sources { grid-template-columns: minmax(0, 1fr); }
  .p-videos .vd-tile--feature { grid-column: auto; grid-row: auto; }
  .p-videos .vd-src, .p-videos .vd-src + .vd-src { padding-left: 0; padding-right: 0; border-right: 0; border-bottom: 1px solid var(--rule); }
}
.p-videos .vd-earlier { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(24px, 5vw, 72px); align-items: start; }
.p-videos .vd-earlier h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); }
.p-videos .vd-earlier__list { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--graphite); }
.p-videos .vd-earlier__list li { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 2px 18px; padding: 12px 0; border-bottom: 1px solid var(--rule); }
.p-videos .vd-earlier__list time { font-family: var(--f-mono); font-size: .78rem; color: var(--terra-deep); grid-row: span 2; padding-top: 3px; }
.p-videos .vd-earlier__list a { font-family: var(--f-display); font-size: 1.15rem; }
.p-videos .vd-earlier__list span { font-size: .84rem; color: var(--ink-soft); }
.p-videos .vd-earlier__note { margin: 18px 0 0; font-size: .88rem; color: var(--ink-soft); max-width: 80ch; }
@media (max-width: 860px) { .p-videos .vd-earlier { grid-template-columns: minmax(0, 1fr); } }

/* ---- press ---- */
.p-press .pr-head { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.p-press .pr-head__fig { max-width: 739px; }
.p-press .pr-head__note { margin-top: 22px; }
.p-press .pr-sheet { display: grid; grid-template-columns: minmax(0, .38fr) minmax(0, 1fr); gap: clamp(24px, 5vw, 80px); border: 1px solid var(--rule-strong); background: var(--warm); position: relative; }
.p-press .pr-sheet::before { content: ""; position: absolute; top: -6px; left: -6px; width: 14px; height: 14px; border-top: 2px solid var(--terra); border-left: 2px solid var(--terra); }
.p-press .pr-sheet__label { padding: clamp(22px, 3vw, 36px); background: var(--limestone); border-right: 1px solid var(--rule-strong); }
.p-press .pr-sheet__label h2 { font-size: clamp(2rem, 4vw, 3.2rem); }
.p-press .pr-sheet__label p:last-child { font-size: .92rem; color: var(--ink-soft); }
.p-press .pr-sheet__body { padding: clamp(18px, 3vw, 36px) clamp(18px, 3vw, 36px) clamp(18px, 3vw, 36px) 0; }
.p-press .pr-kv dt { min-width: 150px; }
.p-press .pr-links { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--graphite); }
.p-press .pr-links li { padding: 10px 0; border-bottom: 1px solid var(--rule); font-family: var(--f-display); font-size: 1.1rem; }
.p-press .pr-bios { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.1fr) minmax(0, 1.6fr); gap: 0; border-top: 2px solid var(--graphite); align-items: start; }
.p-press .pr-bio { padding: 24px 24px 28px 0; }
.p-press .pr-bio + .pr-bio { padding-left: 24px; border-left: 1px solid var(--rule); }
.p-press .pr-bio header { display: flex; align-items: baseline; gap: 10px; margin-bottom: 14px; }
.p-press .pr-bio__n { font-family: var(--f-display); font-size: clamp(2.6rem, 5vw, 4rem); line-height: .9; color: var(--terra-deep); }
.p-press .pr-bio p { font-size: .95rem; }
.p-press .pr-bio--50 p { font-family: var(--f-display); font-size: 1.2rem; line-height: 1.4; }
.p-press .pr-usage { margin-top: 28px; }
.p-press .pr-contacts { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1fr) minmax(0, 1fr); gap: clamp(20px, 3vw, 40px); align-items: stretch; }
.p-press .pr-contacts__intro h2 { font-size: clamp(2rem, 4vw, 3rem); }
.p-press .pr-card { border: 1px solid rgba(248, 246, 241, .35); padding: clamp(20px, 3vw, 32px); }
.p-press .pr-card .meta { display: block; margin-bottom: 10px; }
.p-press .pr-card h3 { font-size: clamp(1.5rem, 2.4vw, 2rem); margin-bottom: 10px; }
.p-press .pr-card p { color: #E6EBEE; font-size: .94rem; }
.p-press .pr-card--official { background: rgba(248, 246, 241, .06); border-style: dashed; }
.p-press .pr-card__dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 8px 18px; margin: 18px 0 0; padding-top: 16px; border-top: 1px solid rgba(248, 246, 241, .3); }
.p-press .pr-card__dl dt { font-family: var(--f-mono); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: #C9D3DA; padding-top: 4px; }
.p-press .pr-card__dl dd { margin: 0; font-size: 1.02rem; overflow-wrap: anywhere; }
@media (max-width: 1024px) {
  .p-press .pr-bios { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .p-press .pr-bio--200 { grid-column: 1 / -1; padding-left: 0 !important; border-left: 0 !important; border-top: 1px solid var(--rule); }
  .p-press .pr-contacts { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .p-press .pr-contacts__intro { grid-column: 1 / -1; }
}
@media (max-width: 860px) {
  .p-press .pr-head { grid-template-columns: minmax(0, 1fr); }
  .p-press .pr-sheet { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .p-press .pr-sheet__label { border-right: 0; border-bottom: 1px solid var(--rule-strong); }
  .p-press .pr-sheet__body { padding: 18px; }
}
@media (max-width: 640px) {
  .p-press .pr-bios, .p-press .pr-contacts { grid-template-columns: minmax(0, 1fr); }
  .p-press .pr-bio + .pr-bio { padding-left: 0; border-left: 0; border-top: 1px solid var(--rule); }
  .p-press .pr-kv dt { min-width: 0; }
}

/* ---- contact ---- */
.p-contact .contact { padding: clamp(40px, 6vw, 88px) 0 clamp(56px, 8vw, 104px); }
.p-contact .contact__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 5vw, 88px); align-items: start; }
.p-contact h1 { font-size: clamp(3rem, 7vw, 5.6rem); margin-bottom: .2em; }
.p-contact .contact__lede { font-size: 1.12rem; color: var(--ink-soft); max-width: 40ch; }
.p-contact .contact__card { border-top: 3px solid var(--terra); border-bottom: 1px solid var(--graphite); padding: 22px 0 18px; margin: 28px 0; }
.p-contact .contact__name { font-family: var(--f-display); font-size: 2rem; line-height: 1.1; margin: 8px 0 14px; }
.p-contact .contact__dl { margin: 0; }
.p-contact .contact__dl div { display: grid; grid-template-columns: 70px 1fr; padding: 8px 0; border-top: 1px solid var(--rule); }
.p-contact .contact__dl dt { font-family: var(--f-mono); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--slate-ink); padding-top: 4px; }
.p-contact .contact__dl dd { margin: 0; font-size: 1.08rem; overflow-wrap: anywhere; }
.p-contact .contact__how { margin-top: 28px; font-size: .92rem; color: var(--ink-soft); }
.p-contact .contact__how ol { padding-left: 1.2em; margin: 10px 0 12px; }
.p-contact .contact__how li { margin-bottom: 6px; }
.p-contact .contact__formwrap { background: var(--limestone); padding: clamp(22px, 4vw, 48px); border: 1px solid var(--rule-strong); position: relative; }
.p-contact .contact__formwrap::before { content: ""; position: absolute; top: -1px; left: -1px; width: 64px; height: 64px; border-top: 3px solid var(--terra); border-left: 3px solid var(--terra); }
.p-contact .contact__intro { margin: 0; font-size: .92rem; color: var(--ink-soft); }
.p-contact .contact__intro .meta { display: block; margin-bottom: 6px; }
.p-contact .contact__submit { display: flex; justify-content: flex-start; }
@media (max-width: 860px) { .p-contact .contact__grid { grid-template-columns: minmax(0, 1fr); } }

/* ---- 404 ---- */
.p-404 { min-height: 100vh; display: grid; place-items: center; background:
  linear-gradient(rgba(96,120,138,.1) 1px, transparent 1px) 0 0 / 40px 40px,
  linear-gradient(90deg, rgba(96,120,138,.1) 1px, transparent 1px) 0 0 / 40px 40px, var(--limestone); }
.p-404 .nf { padding: 40px var(--gutter); width: 100%; }
.p-404 .nf__inner { max-width: 640px; margin: 0 auto; background: var(--warm); border: 1px solid var(--rule-strong); padding: clamp(28px, 5vw, 56px); }
.p-404 .nf__route { width: 100%; height: auto; margin-bottom: 18px; }
.p-404 .nf__code { font-family: var(--f-mono); font-size: clamp(3rem, 12vw, 6rem); line-height: 1; color: var(--terra-deep); margin: 0 0 12px; letter-spacing: -.02em; }
.p-404 h1 { font-size: clamp(1.9rem, 4.6vw, 3rem); }
