/* ═══════════════════════════════════════════════════════════════════════════
   ADDITIONS — styling for the slots the frozen board does not contain.

   The board covers Home, About, Service and Condition. Everything the canon
   stack ADDS (compare-options, candidacy, cost, when-to-seek-care, the
   body-region chip row, the payment strip, the hub and city and index page
   types) arrives as markup in the board's own class idiom with no rule behind
   it. Unstyled markup is the defect check-computed-style exists to catch, so
   these are written in the board's own tokens rather than left to defaults.

   Loaded AFTER the page-type stylesheet, so it may only ADD; it never
   overrides a board declaration.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── shared rhythm ──────────────────────────────────────────────────────── */
.sec-lede { max-width: 62ch; color: rgba(19, 19, 18, .72); margin: .5rem 0 1.4rem; }
.on-dark .sec-lede, .on-black .sec-lede { color: rgba(255, 255, 255, .72); }
.authority-link { margin-top: 1.6rem; font-size: .92rem; color: rgba(19, 19, 18, .66); }
.byline { margin-top: 1.4rem; font-size: .85rem; letter-spacing: .06em; text-transform: uppercase; color: rgba(19, 19, 18, .55); }
.oversight-line { margin-top: .35rem; font-size: .9rem; color: rgba(19, 19, 18, .62); }
.on-dark .byline, .on-dark .oversight-line { color: rgba(255, 255, 255, .6); }
.cost-note, .cand-refer, .results-vary { margin-top: 1rem; font-size: .92rem; color: rgba(19, 19, 18, .66); }

/* ── candidacy ──────────────────────────────────────────────────────────── */
.cand-grid { display: grid; gap: clamp(1.2rem, 2.4vw, 2rem); grid-template-columns: 1fr; }
@media (min-width: 860px) { .cand-grid { grid-template-columns: 1fr 1fr; } }
.cand-col h3 { margin-bottom: .7rem; }
.cand-col--out .cond-checklist .tick { opacity: .45; }
.cand-seal { margin-top: 1.2rem; }

/* ── cost ───────────────────────────────────────────────────────────────── */
.cost-factors { margin-bottom: 1.6rem; }

/* ── the [tblx] comparison table shell ──────────────────────────────────── */
.tbl-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 1.4rem 0; border: 1px solid rgba(19, 19, 18, .12); border-radius: 10px; }
.on-dark .tbl-wrap, .on-black .tbl-wrap { border-color: rgba(255, 255, 255, .16); }
.tblx { width: 100%; min-width: 46rem; border-collapse: collapse; font-size: .92rem; }
.tblx th, .tblx td { padding: .8rem .9rem; text-align: left; vertical-align: top; border-bottom: 1px solid rgba(19, 19, 18, .1); }
.tblx thead th { font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
.tblx tbody th { font-weight: 500; white-space: nowrap; }
.tblx tr.is-featured { background: rgba(151, 85, 55, .07); }
.tbl-closer { max-width: 68ch; }

/* ── slot-5 sub-blocks (WhatIsBlocks) ───────────────────────────────────── */
.w5 { margin-top: 1.8rem; }
.w5__capsule { max-width: 62ch; font-size: clamp(1.02rem, 1.3vw, 1.16rem); }
.w5__h { font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; margin-bottom: .6rem; }
.w5__steps { display: grid; gap: 1rem; padding: 0; margin: 0; list-style: none; counter-reset: w5; }
@media (min-width: 860px) { .w5__steps { grid-template-columns: repeat(3, 1fr); } }
.w5__step { padding: 1rem 1.1rem; border: 1px solid rgba(19, 19, 18, .12); border-radius: 10px; }
.w5__steph { font-size: 1rem; margin-bottom: .4rem; }
.w5__lists { display: grid; gap: 1.2rem; margin-top: 1.6rem; }
@media (min-width: 860px) { .w5__lists { grid-template-columns: 1fr 1fr; } }
.w5__list ul { margin: 0; padding-left: 1.1rem; }
.w5__note { margin-top: 1.6rem; padding: 1rem 1.1rem; border-left: 3px solid #975537; background: rgba(234, 201, 185, .22); border-radius: 0 8px 8px 0; }
.w5__note h3 { font-size: .95rem; margin-bottom: .5rem; }
.w5__note ul { margin: 0; padding-left: 1.1rem; }
.w5__recheck { margin-top: 1rem; font-size: .92rem; color: rgba(19, 19, 18, .7); }

/* ── condition body extras ──────────────────────────────────────────────── */
.cause-panels { display: grid; gap: 1rem; }
@media (min-width: 860px) { .cause-panels { grid-template-columns: 1fr 1fr; } }
.eval-row { margin-top: 1.2rem; }
.tl-window { font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; color: rgba(19, 19, 18, .58); }

/* ── hub + index page types ─────────────────────────────────────────────── */
.region-groups { display: grid; gap: 1.2rem clamp(1.2rem, 3vw, 2.4rem); grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
.region-group h3 { font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; margin-bottom: .5rem; }
.region-group ul, .hub-svc-list, .city-links, .access-facts, .landmark-list, .cred-wall, .nf-links { list-style: none; margin: 0; padding: 0; }
.region-group li, .hub-svc-list li, .city-links li { margin: .25rem 0; }
.hub-all, .hub-up, .area-all, .city-up, .mega-all, .foot-review { margin-top: 1.2rem; font-size: .92rem; }
.hub-svc-h { font-size: 1.15rem; }
.linkout-band { margin-top: 2rem; padding: 1.2rem 1.3rem; border: 1px solid rgba(19, 19, 18, .12); border-radius: 10px; }
.linkout-band ul { list-style: none; margin: .6rem 0 0; padding: 0; display: flex; gap: 1.2rem; flex-wrap: wrap; }

/* ── home additions ─────────────────────────────────────────────────────── */
.region-chips ul, .hero-trust-row, .pay-chips, .vb-chips, .hero-chips {
  list-style: none; margin: 1.2rem 0 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: .5rem .6rem;
}
.region-chips a, .hero-chips li {
  display: inline-block; padding: .45rem .9rem; border-radius: 999px;
  border: 1px solid rgba(19, 19, 18, .18); font-size: .88rem; text-decoration: none;
}
.hero-chips li { border-color: rgba(255, 255, 255, .3); color: #fff; }
.pay-chips li { flex: 1 1 14rem; }
.why-grid { display: grid; gap: 1.2rem; margin: 1.4rem 0; }
@media (min-width: 860px) { .why-grid { grid-template-columns: repeat(2, 1fr); } }
.cred-wall li { margin: .3rem 0; }
.book-rail { margin-top: 1.4rem; }
.book-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem; }
.book-assure { list-style: none; margin: 1rem 0 0; padding: 0; }
.book-reassure { margin-top: .8rem; font-size: .92rem; }
.bs-n { display: inline-block; min-width: 2rem; font-size: .78rem; letter-spacing: .1em; }
.bs-t { font-weight: 500; }
.bs-b { display: block; font-size: .92rem; color: rgba(19, 19, 18, .7); }

/* ── rail extras ────────────────────────────────────────────────────────── */
.rail-snapshot { margin-bottom: 1rem; }
.rail-snapshot ul, .toc ul { list-style: none; margin: .4rem 0 0; padding: 0; }
.rail-snapshot li, .toc li { margin: .25rem 0; font-size: .92rem; }
.rail-offer { font-size: .88rem; }

/* ── city ───────────────────────────────────────────────────────────────── */
.drive-route { font-size: 1.02rem; }
.landmark-list li { margin: .4rem 0; }

/* ── footer additions ───────────────────────────────────────────────────── */
.foot-hours ul { list-style: none; margin: 0; padding: 0; }
.foot-hours li { display: flex; justify-content: space-between; gap: 1rem; font-size: .88rem; margin: .2rem 0; }
.foot-nap { margin-top: .8rem; font-size: .88rem; }

/* ── visit hours table ──────────────────────────────────────────────────── */
.visit-hours { width: 100%; border-collapse: collapse; margin: 1rem 0; }
.visit-hours caption { text-align: left; font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; padding-bottom: .5rem; }
.visit-hours th, .visit-hours td { padding: .35rem 0; text-align: left; font-size: .92rem; font-weight: 400; }
.visit-hours td { text-align: right; }

/* ── 404 ────────────────────────────────────────────────────────────────── */
.nf-links { display: flex; flex-wrap: wrap; gap: .6rem 1.2rem; margin: 1.4rem 0; }

/* ── blog post (VBH canon tokens) ───────────────────────────────────────── */
.article .wrap { width: min(72rem, 100% - 2rem); margin-inline: auto; }
.article-hero { padding: clamp(2.4rem, 6vw, 5rem) 0 0; }
.glance { margin: 1.4rem 0; padding: 1rem 1.1rem; border-left: 3px solid #975537; background: rgba(234, 201, 185, .22); }
.glance-label { display: block; font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; margin-bottom: .4rem; }
.meta { font-size: .88rem; color: rgba(19, 19, 18, .6); }
.meta .dot { margin: 0 .4rem; }
.cover-frame img { width: 100%; height: auto; border-radius: 12px; }
.body-grid { display: grid; gap: 2rem; }
.blog-prose { max-width: 68ch; }
.cta-card { margin-top: 2.4rem; padding: 1.4rem; border: 1px solid rgba(19, 19, 18, .12); border-radius: 12px; }
.cta-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1rem; }

/* ── OVERFLOW FLOOR ─────────────────────────────────────────────────────────
   ⛔ The board's round-4 mobile fix asserted page scrollWidth == viewport, and
   the coverflow carousel breaks that on any page whose stage is not clipped:
   its off-stage cards stick out past the viewport and the whole document
   scrolls sideways. Clipping the stage, not the body, keeps the effect and
   removes the sideways scroll. */
.cf-stage { overflow: hidden; }
body { overflow-x: hidden; }
