:root {
  --fs-label: 0.8125rem;  
  --fs-small: 0.9375rem;  
  --cell: clamp(0.9rem, 0.55rem + 1.1vw, 1.6rem); 
  --brass: #C9A35E;       
  --brass-ink: #7B5B1F;   
}

[hidden] { display: none !important; }

section.mono-sec { padding-block: 0; }
.wrap.mono, .site-header--mono > .wrap, .spec-ribbon--mono > .wrap, .site-footer > .wrap {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
}
.site-header--mono > .wrap, .spec-ribbon--mono > .wrap, .site-footer > .wrap {
  padding-inline: var(--cell);
}
.mono { position: relative; border-inline: 0; background-image: none; }
.mono-sec > .mono { padding-block: clamp(1.35rem, 2.1vw, 2rem); border-bottom: 1px solid var(--sec-border); }
.mono-sec > .mono--flush { padding-block: 0; }
.mono-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: start; }
.mono-grid > * { min-width: 0; }
.span-2 { grid-column-end: span 2; } .span-3 { grid-column-end: span 3; } .span-all { grid-column: 1 / -1; }
.col-2 { grid-column-start: 2; } .col-3 { grid-column-start: 3; } .col-4 { grid-column-start: 4; }
.cell { padding-inline: var(--cell); }
.cell-pad { padding: var(--cell); }
.rule-top { border-top: 1px solid var(--sec-border); } .rule-bottom { border-bottom: 1px solid var(--sec-border); }
.solid { background: var(--sec-bg, var(--bg-canvas)); }
.sec--tint { --sec-bg: var(--bg-tint); } .sec--deep { --sec-bg: var(--bg-deep); }
.offset-down { margin-top: var(--space-l); }
.offset-down-s { margin-top: var(--space-m); }
.stack { display: grid; gap: var(--space-xs); align-content: start; }
.stack-l { display: grid; gap: var(--space-m); align-content: start; }

.sec-head { grid-column: 1 / -1; padding: 0 var(--cell) var(--space-s); margin-bottom: var(--space-m); border-bottom: 1px solid var(--sec-border); }
.sec-head h2, .sec-head .eyebrow { margin: 0; }
.sec-head .eyebrow + h2 { margin-top: 0.25rem; }
.eyebrow { font-size: 0.75rem; letter-spacing: 0.06em; }
.sec--deep .eyebrow { color: var(--brand-on-deep); }
.h-caps { font-family: var(--font-display); text-transform: uppercase; font-weight: 400; font-size: clamp(1.35rem, 0.8rem + 1.45vw, 2.05rem); letter-spacing: 0.01em; line-height: 1.08; max-inline-size: none; }
.h-serif { font-family: var(--font-display); font-weight: 400; }
h2.h-serif, .h-serif { font-size: clamp(1.65rem, 1rem + 1.55vw, 2.45rem); line-height: 1.05; }
.copy { color: var(--sec-ink-muted); }
.copy-ink { color: var(--sec-ink); }
.small { font-size: var(--fs-small); }
.label { font-size: var(--fs-label); text-transform: uppercase; letter-spacing: var(--tracking-eyebrow); font-weight: 600; }
.sr-only { position: absolute !important; inline-size: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

.arrow-icon { display: inline-block; inline-size: 2.75rem; block-size: 1px; background: currentColor; position: relative; vertical-align: middle; flex-shrink: 0; }
.arrow-icon::after { content: ""; position: absolute; right: 0; top: 50%; inline-size: 0.45rem; block-size: 0.45rem; border-top: 1px solid currentColor; border-right: 1px solid currentColor; transform: translateY(-50%) rotate(45deg); }

.btn--square { border-radius: 0; text-transform: uppercase; letter-spacing: var(--tracking-eyebrow); font-size: 0.75rem; font-weight: 600; padding-inline: var(--space-m); min-height: 2.75rem; }
.btn--block { inline-size: 100%; justify-content: space-between; padding-inline: var(--space-s); }
.btn--block .arrow-icon { inline-size: 1.75rem; }

.hero.hero--mono { min-height: 0; display: block; border-bottom: 0; }
.hero--mono > .mono { padding-block: 0; }
.masthead { position: relative; text-align: center; padding: clamp(0.85rem, 1.25vw, 1.3rem) var(--cell) clamp(0.7rem, 1vw, 1rem); border-bottom: 1px solid var(--sec-border); background: var(--sec-bg, var(--bg-canvas)); }
.masthead h1 { font-size: clamp(2.1rem, 0.9rem + 2.5vw, 3.5rem); font-weight: 400; line-height: 1.04; letter-spacing: -0.02em; max-inline-size: none; margin: 0 auto; }
.masthead__sub { margin: 0.25rem auto 0; max-inline-size: none; font-family: var(--font-display); font-style: italic; font-size: clamp(1.25rem, 0.85rem + 1.05vw, 1.85rem); line-height: 1.15; color: var(--sec-ink); }
.stage { display: grid; grid-template-columns: 1fr 2fr 1fr; border-bottom: 1px solid var(--sec-border); background: var(--sec-bg, var(--bg-canvas)); }
.stage--split { grid-template-columns: 1fr 1fr; }
.stage--wide { grid-template-columns: 1fr 3fr; }
.stage--quad { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.stage > * { min-width: 0; }
.stage > * + * { border-left: 1px solid var(--sec-border); }
.hero-rail { display: grid; align-content: space-between; gap: var(--space-s); padding: clamp(0.8rem, 1.1vw, 1.15rem) var(--cell); }
.hero-rail__note { margin: 0; font-size: 0.875rem; line-height: 1.35; color: var(--sec-ink); }
.hero-stage { position: relative; display: grid; min-height: 23rem; }
.hero-stage > * { grid-area: 1 / 1; min-width: 0; }
.hero-detail { display: grid; grid-template-rows: minmax(0, 1fr) auto; min-height: 23rem; }

.spec-switch { display: grid; border-top: 0; }
.spec-switch button { display: grid; gap: 0.08rem; inline-size: 100%; padding: 0.45rem 0; margin: 0; text-align: left; cursor: pointer;
  background: transparent; color: var(--sec-ink); border: 0; border-bottom: 1px solid var(--sec-border); border-radius: 0;
  transition: border-color var(--dur-fast) var(--ease-out-expo), background-color var(--dur-fast) var(--ease-out-expo); }
.spec-switch button[aria-pressed="true"] { border-bottom: 1.5px solid var(--sec-ink); }
@media (hover: hover) { .spec-switch button:hover { background: var(--sec-card); } }
.spec-switch__k { font-size: clamp(0.875rem, 0.78rem + 0.2vw, 0.98rem); font-weight: 500; text-transform: uppercase; letter-spacing: 0.03em; }
.spec-switch__v { font-size: 0.75rem; padding-left: 1.45rem; color: var(--sec-ink-muted); text-transform: uppercase; letter-spacing: 0.04em; }
[data-spec-panel][hidden] { display: none; }

.mono-ledger { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); background: var(--sec-bg, var(--bg-canvas)); border-bottom: 1px solid var(--sec-border); }
.mono-ledger > * { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.35rem; padding: 0.65rem var(--cell); border-left: 1px solid var(--sec-border); margin: 0; }
.mono-ledger > :first-child { border-left: 0; }
.mono-ledger__k { font-size: 0.8125rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--sec-ink); }
.mono-ledger__k::after { content: " —"; color: var(--sec-ink-muted); font-weight: 400; }
.mono-ledger__v { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--sec-ink-muted); }

.shot { position: relative; margin: 0; overflow: hidden; background: var(--card-deep); aspect-ratio: var(--ratio, 4 / 3); }
.shot > picture, .shot > img { position: absolute; inset: 0; display: block; inline-size: 100%; block-size: 100%; }
.shot img { inline-size: 100%; block-size: 100%; object-fit: cover; object-position: var(--focal, 50% 50%); }
.shot--fill { aspect-ratio: auto; min-height: 12rem; }
figure { margin: 0; }
.cap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.25rem var(--space-s); padding-top: var(--space-xs);
  font-size: var(--fs-label); font-weight: 600; text-transform: uppercase; letter-spacing: var(--tracking-eyebrow); color: var(--sec-ink); }
.cap--muted { color: var(--sec-ink-muted); }
.spec-plate { position: relative; z-index: 2; margin: var(--space-s); padding: var(--space-xs); background: var(--card-light); color: var(--ink-dark);
  border: 1px solid var(--border-light); box-shadow: 0 0.75rem 2rem color-mix(in oklab, var(--bg-deep) 18%, transparent); }
.spec-plate .cap { color: var(--ink-dark); }
.spec-plate--float { position: absolute; margin: 0; inset: auto auto var(--cell) var(--cell); max-inline-size: min(26rem, 80%); padding: var(--space-s) var(--space-m); }
.spec-plate--float.is-right { inset: auto var(--cell) var(--cell) auto; }
.spec-plate dl { margin: 0; display: grid; gap: 0.2rem; }
.spec-plate dt { font-size: var(--fs-label); font-weight: 700; text-transform: uppercase; letter-spacing: var(--tracking-eyebrow); }
.spec-plate dd { margin: 0; font-size: var(--fs-small); color: var(--ink-muted); }
.swatches { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; margin-top: var(--space-xs); }
.swatch-dot { display: inline-block; inline-size: 1.6rem; aspect-ratio: 1; border-radius: 50%; background: var(--c, var(--brand-primary)); border: 1px solid var(--border-light); }

.leader { display: flex; align-items: center; gap: var(--space-xs); font-size: var(--fs-label); font-weight: 700; text-transform: uppercase; letter-spacing: var(--tracking-eyebrow); color: var(--sec-ink); }
.leader::after { content: ""; flex: 1 1 auto; min-inline-size: 2rem; block-size: 1px; background: currentColor; }
.leader--down { flex-direction: column; align-items: flex-start; }
.leader--down::after { flex: 0 0 auto; inline-size: 1px; min-inline-size: 0; block-size: var(--space-l); }

.cascade { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: start; }
.cascade > * { min-width: 0; grid-column: var(--col, auto); grid-row: var(--row, auto); margin-top: var(--drop, 0); padding-inline: var(--cell); padding-bottom: var(--space-m); }

.ba__frame { overflow: hidden; }
.ba__frame > :is(.ba__after, .ba__before) { pointer-events: none; } 
.ba--fill { block-size: 100%; gap: 0; }
.ba--fill .ba__frame { aspect-ratio: auto; block-size: 100%; min-height: 22rem; border: 0; }
.ba__frame > .ba__after { position: absolute; inset: 0; }
.ba__frame > picture.ba__after img { inline-size: 100%; block-size: 100%; object-fit: cover; }
.ba__before > picture, .ba__before > picture img { display: block; inline-size: 100%; block-size: 100%; }
svg.ba__overlay { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; pointer-events: none; }
.ba__hint { position: absolute; top: calc(50% + 1.75rem); left: 0; translate: -50% 0; white-space: nowrap; padding: 0.18rem 0.45rem; background: var(--card-light); color: var(--ink-dark);
  font-size: 0.6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: var(--tracking-eyebrow); border: 1px solid var(--border-light); }
.ba__head { display: flex; justify-content: space-between; gap: var(--space-s); }
.ba__head > * { font-size: var(--fs-label); font-weight: 700; text-transform: uppercase; letter-spacing: var(--tracking-eyebrow); color: var(--sec-ink); }
.sec--deep .ba__line { border-left-color: var(--brass); }
svg.cad-diagram, svg.ba__overlay { color: var(--sec-ink); font-family: var(--font-sans); }
svg.cad-diagram { display: block; inline-size: 100%; block-size: auto; }
:is(svg.cad-diagram, svg.ba__overlay) .wire { fill: none; stroke: currentColor; stroke-width: 1.25; vector-effect: non-scaling-stroke; }
:is(svg.cad-diagram, svg.ba__overlay) .wire--x { stroke: var(--brand-on-deep); stroke-opacity: 0.85; }
:is(svg.cad-diagram, svg.ba__overlay) .lead { fill: none; stroke: var(--brass); stroke-width: 1; vector-effect: non-scaling-stroke; }
:is(svg.cad-diagram, svg.ba__overlay) .dot { fill: var(--brass); }
:is(svg.cad-diagram, svg.ba__overlay) text { fill: currentColor; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.04em; }
:is(svg.cad-diagram, svg.ba__overlay) text.callout { fill: var(--brass); }
.sec--canvas svg.cad-diagram text.callout, .sec--tint svg.cad-diagram text.callout { fill: var(--brass-ink); }
.sec--canvas svg.cad-diagram .lead, .sec--tint svg.cad-diagram .lead { stroke: var(--brass-ink); }
.sec--canvas svg.cad-diagram .dot, .sec--tint svg.cad-diagram .dot { fill: var(--brass-ink); }

.pull-quote--xl { margin: 0; font-family: var(--font-display); font-weight: 400; font-size: clamp(2.1rem, 1.1rem + 3.05vw, 3.85rem); line-height: 1.06; letter-spacing: var(--tracking-display); max-inline-size: none; text-wrap: balance; }
.pull-quote--l { margin: 0; font-family: var(--font-display); font-weight: 400; font-size: var(--step-4); line-height: 1.08; letter-spacing: var(--tracking-display); text-wrap: balance; }
.tariff { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--sec-border); }
.tariff > * { min-width: 0; padding: var(--space-s) var(--cell) var(--space-m); }
.tariff > * + * { border-left: 1px solid var(--sec-border); }
.tariff h3 { margin: 0 0 var(--space-xs); font-family: var(--font-sans); font-size: var(--step-0); font-weight: 700; text-transform: uppercase; letter-spacing: 0.02em; line-height: 1.2; }
.tariff p, .tariff li { font-size: var(--fs-small); color: var(--sec-ink-muted); margin: 0; }
.tariff ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.15rem; }
.tariff li::before { content: "• "; color: var(--sec-mark); }
.tariff__big { display: block; font-family: var(--font-display); font-size: var(--step-3); line-height: 1.05; color: var(--sec-ink); margin-block: 0.15rem; }
.ledger-head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-s); padding: var(--space-xs) var(--cell); border-top: 1px solid var(--sec-ink); }
.ledger-head > * { margin: 0; font-size: var(--fs-label); font-weight: 700; text-transform: uppercase; letter-spacing: var(--tracking-eyebrow); }

.ledger-table { inline-size: 100%; border-collapse: collapse; }
.ledger-table caption { text-align: left; }
.ledger-table th { text-align: left; padding: var(--space-xs) var(--space-s); border-bottom: 1px solid var(--sec-ink); font-size: var(--fs-label); font-weight: 700; text-transform: uppercase; letter-spacing: var(--tracking-eyebrow); }
.ledger-table td { padding: var(--space-s); border-bottom: 1px solid var(--sec-border); vertical-align: top; font-size: var(--fs-small); }
.ledger-table td.num, .ledger-table th.num { text-align: right; white-space: nowrap; }
.ledger-table tfoot td { font-weight: 700; border-bottom: 0; border-top: 1px solid var(--sec-ink); }
.spec-table { display: grid; margin: 0; border-top: 1px solid var(--sec-ink); }
.spec-table > div { display: grid; grid-template-columns: minmax(6rem, 2fr) 5fr; gap: var(--space-s); padding: var(--space-xs) 0; border-bottom: 1px solid var(--sec-border); }
.spec-table dt { font-size: var(--fs-label); font-weight: 700; text-transform: uppercase; letter-spacing: var(--tracking-eyebrow); padding-top: 0.2rem; }
.spec-table dd { margin: 0; font-size: var(--fs-small); }

.timeline { list-style: none; margin: 0; padding: 0; display: grid; border-left: 1px solid var(--sec-border); }
.timeline li { position: relative; padding: 0 0 var(--space-m) var(--space-m); max-inline-size: none; }
.timeline li::before { content: ""; position: absolute; left: -0.3rem; top: 0.45rem; inline-size: 0.55rem; block-size: 0.55rem; background: var(--sec-mark); }
.timeline strong { display: block; font-size: var(--fs-label); text-transform: uppercase; letter-spacing: var(--tracking-eyebrow); }
.timeline span { font-size: var(--fs-small); color: var(--sec-ink-muted); }

.turnaround { list-style: none; margin: 0; padding: var(--space-s) var(--cell); display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-xs) var(--space-m);
  border-block: 1px solid var(--sec-border); }
.turnaround li { font-size: var(--fs-label); font-weight: 700; text-transform: uppercase; letter-spacing: var(--tracking-eyebrow); max-inline-size: none; }

.quick-ledger { display: grid; gap: var(--space-s); margin: 0; }
.quick-ledger label { display: grid; gap: 0.1rem; font-size: var(--fs-label); font-weight: 700; text-transform: uppercase; letter-spacing: var(--tracking-eyebrow); color: var(--sec-ink); }
.quick-ledger :is(input, select) { inline-size: 100%; padding: 0.35rem 0; border: 0; border-bottom: 1px solid var(--sec-ink); border-radius: 0; background: transparent; color: var(--sec-ink);
  font-weight: 400; letter-spacing: normal; text-transform: none; }
.quick-ledger select option { color: var(--ink-dark); background: var(--card-light); }
.quick-ledger select { background-color: #FFFFFF; -webkit-appearance: none; appearance: none; padding-inline: 0.5rem 2.25rem;
  background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position: calc(100% - 1.15rem) 50%, calc(100% - 0.8rem) 50%; background-size: 0.35rem 0.35rem; background-repeat: no-repeat; }
.quick-ledger__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-s) var(--space-m); }
.quick-ledger__foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-s); }

.faq--mono { border-top: 1px solid var(--sec-ink); }
.faq--mono details { background: transparent; border-inline: 0; padding-inline: 0; }
.faq--mono summary { font-size: var(--fs-small); }
.territory--mono { padding: var(--space-s); background: transparent; }
.territory--mono text { font-size: 0.85rem; }

.site-header--mono .site-header__inner { padding-block: 0.55rem; }
.brand--text { font-size: var(--fs-label); font-weight: 700; text-transform: uppercase; letter-spacing: var(--tracking-eyebrow); }
.site-header--mono .site-nav a:not(.btn) { font-size: var(--fs-label); font-weight: 600; text-transform: uppercase; letter-spacing: var(--tracking-eyebrow); }
.site-header--mono .header-actions .tel { font-size: var(--fs-small); }
.site-header--mono .btn--cta { border-radius: 0; }

@media (min-width: 64rem) and (max-width: 75rem) {
  .site-header--mono .site-header__inner { flex-wrap: wrap; row-gap: 0; }
  .site-header--mono .site-nav { order: 3; inline-size: 100%; justify-content: center; border-top: 1px solid var(--border-light); padding-top: 0.25rem; }
}
.spec-ribbon--mono { font-size: var(--fs-label); text-transform: uppercase; letter-spacing: var(--tracking-eyebrow); }

/* Call bar (mobile): both buttons stay on one line; the survey button takes only the width it needs. */
.callbar { grid-template-columns: minmax(0, 1fr) auto; }
.callbar .btn { white-space: nowrap; padding-inline: var(--space-s); font-size: clamp(0.875rem, 0.8rem + 0.35vw, 1rem); }

.site-footer--mono { padding-block: var(--space-xl) var(--space-l); }
.ft-mono { display: grid; grid-template-columns: 2fr repeat(3, minmax(0, 1fr)); gap: var(--space-l); }
.ft-mono > * { min-width: 0; }
.ft-mono .eyebrow { color: var(--ink-muted-deep); }
.ft-wordmark { display: block; margin-top: var(--space-m); font-family: var(--font-display); font-size: var(--step-3); line-height: 1; letter-spacing: 0.02em; text-transform: uppercase; }
.ft-wordmark small { display: block; margin-top: 0.35rem; font-family: var(--font-sans); font-size: var(--fs-label); letter-spacing: 0.18em; }
.site-footer--mono .ft--1 { display: block; border: 0; margin: 0; padding: 0; }
.site-footer--mono li, .site-footer--mono p { font-size: var(--fs-small); color: var(--ink-muted-deep); }
.site-footer--mono a { color: var(--ink-light); }
.site-footer--mono a, .site-footer--mono p { overflow-wrap: anywhere; word-break: break-word; }
.site-footer--mono .ft--4 p { margin: 0; }

@media (max-width: 64rem) {
  .mono { background-image: none; }
  .mono-grid, .cascade, .tariff, .mono-ledger { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tariff > :nth-child(odd) { border-left: 0; }
  .tariff > :nth-child(n + 3) { border-top: 1px solid var(--sec-border); }
  .span-3 { grid-column: 1 / -1; }
  .col-2, .col-4 { grid-column-start: auto; } .col-3 { grid-column-start: 1; }
  .cascade > * { grid-column: auto; grid-row: auto; margin-top: 0; }
  .cascade > .span-2, .cascade > .span-all { grid-column: 1 / -1; }
  .mono-ledger > :nth-child(odd) { border-left: 0; }
  .mono-ledger > :nth-child(n + 3) { border-top: 1px solid var(--sec-border); }
  .stage, .stage--quad { grid-template-columns: 2fr 3fr; }
  .stage--split, .stage--wide { grid-template-columns: 1fr 1fr; }
  .stage > :nth-child(3), .stage > :nth-child(4) { border-left: 0; border-top: 1px solid var(--sec-border); }
  .stage > :nth-child(3):last-child { grid-column: 1 / -1; }
  .stage--quad > :nth-child(4) { border-left: 1px solid var(--sec-border); }
  .hero-detail { grid-template-columns: 1fr 1fr; grid-template-rows: auto; min-height: 0; }
  .hero-detail .spec-plate { margin: var(--space-s); }
  .ft-mono { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .offset-down { margin-top: var(--space-l); }
}
@media (max-width: 42.5rem) {
  .mono { background-image: none; }
  .mono-grid, .cascade, .tariff, .mono-ledger, .stage, .stage--split, .stage--wide, .stage--quad, .quick-ledger__row, .ft-mono { grid-template-columns: minmax(0, 1fr); }
  .hero-detail { grid-template-columns: minmax(0, 1fr); align-items: stretch; }
  .hero-detail .spec-plate { margin: var(--space-xs); }
  .span-2, .span-3, .span-all, .cascade > .span-2 { grid-column: auto; }
  .stage > * + *, .stage--quad > :nth-child(4) { border-left: 0; border-top: 1px solid var(--sec-border); }
  .stage > .hero-stage { order: -1; border-top: 0; }
  .stage > .hero-stage + * { border-top: 0; }
  .mono-ledger > * { border-left: 0; border-top: 1px solid var(--sec-border); }
  .mono-ledger > :first-child { border-top: 0; }
  .tariff > * + * { border-left: 0; border-top: 1px solid var(--sec-border); }
  .hero-stage, .ba--fill .ba__frame { min-height: 16rem; }
  .hero-stage { min-height: 12.5rem; }
  .hero-rail .spec-switch button { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 0.6rem; padding-block: 0.4rem; }
  .hero-rail .spec-switch__v { padding-left: 0; }
  .masthead h1 { font-size: clamp(1.85rem, 1.1rem + 3.4vw, 2.3rem); }
  .ba--fill { block-size: auto; }
  .ba--fill .ba__frame { aspect-ratio: 4 / 3; min-height: 0; block-size: auto; }
  .offset-down, .offset-down-s { margin-top: 0; }
  .spec-plate--float { position: relative; inset: auto; max-inline-size: none; margin: 0; }
  .ledger-table thead { position: absolute; inline-size: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .ledger-table, .ledger-table tbody, .ledger-table tfoot, .ledger-table tr, .ledger-table td { display: block; }
  .ledger-table tr { padding-block: var(--space-xs); border-bottom: 1px solid var(--sec-border); }
  .ledger-table td { border: 0; padding: 0.2rem 0; }
  .ledger-table td.num { text-align: left; }
  .ledger-table td[data-label]::before { content: attr(data-label); display: block; font-size: var(--fs-label); font-weight: 700; text-transform: uppercase; letter-spacing: var(--tracking-eyebrow); color: var(--sec-ink-muted); }
  .spec-table > div { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .turnaround { flex-direction: column; }
  .masthead { text-align: left; }
  .masthead h1, .masthead__sub { margin-inline: 0; }
}

svg.tmap, svg.smap { display: block; inline-size: 100%; block-size: auto; overflow: visible; --tmap-fs: calc(var(--tmap-k, 1.4) * 0.8rem); }
.tmap path, .smap path { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.tmap text, .smap text { font-family: var(--font-sans); font-size: var(--tmap-fs); font-weight: 600; fill: var(--sec-ink);
  paint-order: stroke; stroke: var(--sec-bg, var(--bg-canvas)); stroke-width: 0.3em; stroke-linejoin: round; }
.tmap .tmap__pc { font-weight: 400; fill: var(--sec-ink-muted); }
.tmap__coast { stroke: var(--sec-ink); stroke-width: 1.1; }
.tmap__wave { stroke: var(--sec-ink-muted); stroke-width: 0.8; }
.tmap__tyne { stroke: var(--sec-mark); stroke-width: 3.2; }
.tmap__river { stroke: var(--sec-mark); stroke-width: 1.1; opacity: 0.6; }
.tmap__road { stroke: var(--sec-ink-muted); stroke-width: 0.9; stroke-dasharray: 5 3; opacity: 0.55; }
.tmap__ring { fill: none; stroke: var(--brass-ink); stroke-width: 0.8; stroke-dasharray: 2 4; opacity: 0.7; }
.tmap text.tmap__ringlabel { font-size: calc(var(--tmap-fs) * 0.72); font-weight: 600; fill: var(--brass-ink); letter-spacing: 0.06em; }
.tmap text.tmap__sea, .tmap text.tmap__water { font-family: var(--font-display); font-style: italic; font-weight: 400; fill: var(--sec-ink-muted); }
.tmap text.tmap__sea { letter-spacing: 0.2em; }
.tmap__town { fill: var(--sec-bg, var(--bg-canvas)); stroke: var(--sec-ink); stroke-width: 2; }
.tmap__hq { fill: var(--brass); stroke: var(--sec-ink); stroke-width: 1.5; }
.tmap text.tmap__hqlabel { font-weight: 700; }
.tmap text.tmap__hqnote { font-size: calc(var(--tmap-fs) * 0.72); font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; fill: var(--brass-ink); }
.tmap__key path { stroke: var(--sec-ink); stroke-width: 1.2; }
.tmap__key .tmap__north { fill: var(--sec-ink); }
.tmap__key text { font-size: calc(var(--tmap-fs) * 0.72); letter-spacing: 0.06em; }
.tmap a:is(:hover, :focus-visible) .tmap__town { fill: var(--sec-mark); }
.tmap a:focus-visible { outline: 2px solid var(--sec-mark); outline-offset: 2px; }
.smap__park { fill: var(--sec-mark); fill-opacity: 0.08; stroke: var(--sec-mark); stroke-opacity: 0.35; stroke-width: 0.8; }
.smap__service { stroke: var(--sec-border); stroke-width: 1; }
.smap__minor { stroke: var(--sec-ink-muted); stroke-width: 1.6; opacity: 0.55; }
.smap__major-case { stroke: var(--sec-ink); stroke-width: 7; }
.smap__major { stroke: var(--sec-bg, var(--bg-canvas)); stroke-width: 4.6; }
.smap__metro { stroke: var(--sec-ink); stroke-width: 1.4; }
.smap__metro-tie { stroke: var(--sec-ink); stroke-width: 4; stroke-dasharray: 1 7; stroke-linecap: butt; opacity: 0.7; }
.smap__burn { stroke: var(--sec-mark); stroke-width: 2.4; }
.smap__stn { fill: var(--sec-bg, var(--bg-canvas)); stroke: var(--sec-ink); stroke-width: 2; }
.smap text.smap__street { font-size: calc(var(--tmap-fs) * 0.8); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; fill: var(--sec-ink-muted); }
.smap text.smap__stnlabel { font-size: calc(var(--tmap-fs) * 0.85); }
.smap__pin circle { fill: var(--brass); fill-opacity: 0.25; stroke: var(--brass-ink); stroke-width: 1; }
.smap__pin rect { fill: var(--brass); stroke: var(--sec-ink); stroke-width: 1.5; }
.smap text.smap__hq { font-weight: 700; }
.smap__dir text { font-size: calc(var(--tmap-fs) * 0.72); font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; fill: var(--sec-ink-muted); }
.tmap.is-compact :is(.tmap__pc, .tmap__ringlabel, .tmap__hqnote), .smap.is-compact .smap__m { display: none; }
.tmap.is-compact text.tmap__sea { font-size: calc(var(--tmap-fs) * 0.8); letter-spacing: 0.08em; }

svg.ba__overlay[data-fit-text] text, svg.cad-marks text { font-size: calc(var(--tmap-k, 1.6) * 0.8rem); font-weight: 700; letter-spacing: 0.04em;
  paint-order: stroke; stroke: var(--bg-deep); stroke-width: 0.3em; stroke-linejoin: round; }
svg.ba__overlay[data-fit-text].is-compact :is(text, .lead) { display: none; }
.tmap a { cursor: pointer; }
.tmap__hit { pointer-events: all; }
/* Narrow maps: stop Jesmond / Heaton / River Tyne labels colliding. */
.tmap.is-compact text.tmap__water { display: none; }
.tmap.is-compact text.tmap__heaton { text-anchor: start; }
