/* RestoreCost components, v2 (light only). Every color, radius, shadow and font comes from tokens.css; class prefix rc-.
   Layout: an answer-first hero band, then a 720px article beside a sticky 300px rail.
   Tools and modules (calculator, charts, cards, call boxes) break up the reading with color and shape. */

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 400 17px/1.65 var(--font-sans); -webkit-font-smoothing: antialiased; }
h1, h2, h3, p, ul, ol, figure, fieldset { margin: 0; }
ul, ol { padding: 0; list-style: none; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--accent); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--ink); }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.rc-i { width: 1em; height: 1em; flex: none; }
[hidden] { display: none !important; }
.rc-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.rc-skip { position: absolute; left: -9999px; top: 0; }
.rc-skip:focus { left: 16px; top: 8px; z-index: 100; background: var(--paper); color: var(--ink); padding: 10px 14px; border-radius: var(--radius-sm); box-shadow: var(--shadow-2); }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

.rc-wrap {
  width: 100%;
  max-width: calc(var(--layout-page) + 48px);
  margin-inline: auto;
  padding-left: max(24px, env(safe-area-inset-left, 0px));
  padding-right: max(24px, env(safe-area-inset-right, 0px));
}
@media (max-width: 640px) {
  .rc-wrap { padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }
}

/* ---------- Type ---------- */
.rc-h1 { font: 800 clamp(34px, 4.4vw, 52px)/1.06 var(--font-display); letter-spacing: -0.02em; text-wrap: balance; color: var(--ink); }
.rc-h2 { font: 700 clamp(26px, 3vw, 34px)/1.15 var(--font-display); letter-spacing: -0.01em; text-wrap: balance; color: var(--ink); }
.rc-h3 { font: 700 18px/1.3 var(--font-sans); color: var(--ink); }
.rc-standfirst { font-size: clamp(18px, 1.7vw, 20px); line-height: 1.5; color: var(--ink-2); max-width: 34em; }
.rc-lead { font-size: 18px; line-height: 1.6; color: var(--ink-2); max-width: var(--layout-measure); }
.rc-eyebrow { font: 700 12px/1.2 var(--font-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--accent); }
.rc-eyebrow--ink { color: var(--ink-3); }

/* ---------- Buttons and small parts ---------- */
.rc-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 46px; padding: 0 20px; border-radius: var(--radius-sm); border: 1.5px solid transparent;
  font: 700 16px/1.1 var(--font-sans); text-decoration: none; cursor: pointer; white-space: nowrap;
  transition: background-color .15s, border-color .15s, transform .15s;
}
.rc-btn .rc-i { width: 18px; height: 18px; }
.rc-btn:active { transform: translateY(1px); }
.rc-btn--cta { background: var(--cta); color: var(--on-cta); box-shadow: 0 8px 18px -10px rgba(216,30,16,0.7); }
.rc-btn--cta:hover { background: var(--cta-deep); color: var(--on-cta); }
.rc-btn--primary { background: var(--primary); color: var(--on-primary); }
.rc-btn--primary:hover { background: var(--primary-deep); color: var(--on-primary); }
.rc-btn--secondary { background: var(--paper); color: var(--ink); border-color: var(--control-border); }
.rc-btn--secondary:hover { border-color: var(--ink); color: var(--ink); }
.rc-btn--lg { min-height: 54px; padding: 0 26px; font-size: 17px; }
.rc-btn--block { width: 100%; }
.rc-btn--self { justify-self: start; }

.rc-more { display: inline-flex; align-items: center; gap: 6px; justify-self: start; font: 700 15px/1.3 var(--font-sans); color: var(--accent); text-decoration: none; }
.rc-more:hover { text-decoration: underline; color: var(--accent); }
.rc-more .rc-i { width: 16px; height: 16px; }

.rc-chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: var(--radius-pill); background: var(--tint); font: 600 13px/1.2 var(--font-sans); color: var(--ink-2); }
.rc-chip .rc-i { width: 15px; height: 15px; color: var(--accent); }
.rc-tag { display: inline-flex; align-items: center; gap: 4px; padding: 3px 8px; border-radius: var(--radius-pill); font: 700 11.5px/1.2 var(--font-sans); white-space: nowrap; vertical-align: middle; }
.rc-tag .rc-i { width: 12px; height: 12px; }
.rc-tag--alarm { background: var(--alarm-soft); color: var(--alarm); }
.rc-stamp { display: inline-flex; align-items: center; flex: none; padding: 5px 9px; border-radius: 4px; font: 800 12px/1 var(--font-sans); letter-spacing: .1em; text-transform: uppercase; color: #FFFFFF; }
.rc-stamp--high { background: var(--alarm); }
.rc-stamp--fair { background: var(--fair); }
.rc-stamp--low { background: var(--paper); color: var(--ink-2); box-shadow: inset 0 0 0 1.5px var(--control-border); }
.rc-stamp--tilt { transform: rotate(-6deg); }
.rc-icon-tile { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--primary-soft); color: var(--accent); }
.rc-icon-tile .rc-i { width: 22px; height: 22px; }
.rc-live-dot { width: 8px; height: 8px; border-radius: 50%; flex: none; background: var(--live); animation: rc-pulse 2.2s ease-out infinite; }
@keyframes rc-pulse {
  0% { box-shadow: 0 0 0 0 rgba(26,158,92,0.45); }
  70% { box-shadow: 0 0 0 8px rgba(26,158,92,0); }
  100% { box-shadow: 0 0 0 0 rgba(26,158,92,0); }
}

/* ---------- Crisis strip and header ---------- */
.rc-crisis { background: var(--alarm-soft); border-bottom: 1px solid var(--alarm-line); color: var(--ink); }
.rc-crisis__inner { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding-block: 10px; font: 500 15px/1.4 var(--font-sans); }
.rc-crisis__inner > .rc-i { width: 18px; height: 18px; color: var(--alarm); }
.rc-crisis__text { min-width: 0; }
.rc-crisis a { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--alarm); text-decoration: none; white-space: nowrap; }
.rc-crisis a:hover { text-decoration: underline; }
.rc-crisis a .rc-i { width: 16px; height: 16px; }

.rc-header { background: var(--paper); border-bottom: 1px solid var(--line); }
.rc-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 68px; }
.rc-header__logo img { height: 28px; width: auto; }
.rc-nav { display: flex; gap: 28px; }
.rc-nav a { padding-block: 23px 21px; border-bottom: 2px solid transparent; font: 600 15px/1 var(--font-sans); color: var(--ink); text-decoration: none; }
.rc-nav a:hover { color: var(--accent); }
.rc-nav a[aria-current="page"] { border-bottom-color: var(--cta); }
@media (max-width: 760px) {
  .rc-header__inner { flex-wrap: wrap; gap: 0; padding-top: 14px; }
  .rc-nav { width: 100%; gap: 22px; overflow-x: auto; scrollbar-width: none; }
  .rc-nav::-webkit-scrollbar { display: none; }
  .rc-nav a { padding-block: 14px 12px; flex: none; }
}

/* ---------- Hero ---------- */
.rc-hero { background: var(--tint); border-bottom: 1px solid var(--line); }
.rc-hero__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 470px); gap: 56px; align-items: center; padding-block: 36px 56px; }
.rc-hero__text { display: grid; gap: 16px; align-content: start; min-width: 0; }
.rc-crumbs ol { display: flex; flex-wrap: wrap; gap: 4px 8px; font: 500 14px/1.4 var(--font-sans); color: var(--ink-3); }
.rc-crumbs li + li::before { content: "/"; margin-right: 8px; color: var(--line-strong); }
.rc-crumbs a { color: var(--ink-3); text-decoration: none; }
.rc-crumbs a:hover { color: var(--ink); text-decoration: underline; }
.rc-hero .rc-crumbs { margin-bottom: 8px; }
.rc-byline { display: grid; grid-template-columns: 40px auto; column-gap: 12px; align-items: center; margin-top: 8px; font-size: 15px; line-height: 1.4; }
.rc-avatar { grid-row: span 2; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--primary); color: var(--on-primary); font: 700 17px/1 var(--font-display); }
.rc-byline__who { color: var(--ink-2); }
.rc-byline__who a { font-weight: 700; color: var(--ink); text-decoration: none; }
.rc-byline__who a:hover { text-decoration: underline; }
.rc-byline__meta { color: var(--ink-3); font-size: 14px; }
.rc-byline__meta a { color: var(--ink-3); }
@media (max-width: 980px) {
  .rc-hero__inner { grid-template-columns: minmax(0, 1fr); gap: 28px; padding-block: 24px 36px; }
}

/* Summary card */
.rc-summary { display: grid; gap: 18px; padding: 28px; border-radius: var(--radius-lg); background: var(--paper); border: 1px solid var(--line); box-shadow: var(--shadow-2); min-width: 0; }
.rc-summary__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.rc-summary__figure, .rc-result__figure { font-weight: 800; font-family: var(--font-sans); letter-spacing: -0.02em; font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--ink); }
.rc-summary__figure { font-size: clamp(28px, 4.4vw, 48px); line-height: 1; }
.rc-dash { margin-inline: .06em; color: var(--ink-3); font-weight: 500; }
.rc-summary__lead { font-size: 16px; line-height: 1.55; color: var(--ink-2); }
.rc-summary__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; padding-top: 18px; border-top: 1px solid var(--line); }
.rc-summary__basis { display: flex; gap: 6px; align-items: flex-start; flex: 1 1 180px; font-size: 13px; line-height: 1.45; color: var(--ink-3); }
.rc-summary__basis .rc-i { width: 15px; height: 15px; margin-top: 1px; }
@media (max-width: 420px) { .rc-summary { padding: 20px; } .rc-summary__foot .rc-btn { width: 100%; } }

/* Range bar: the logo's brackets around the typical range, the red dot at the median */
.rc-range { display: grid; gap: 10px; padding-top: 24px; }
.rc-range__plot { position: relative; height: 20px; }
.rc-range__track { position: absolute; left: 0; right: 0; top: 9px; height: 2px; border-radius: 2px; background: var(--line-strong); }
.rc-range__band, .rc-meter__fair {
  position: absolute; top: 0; height: 20px;
  border-left: 3px solid var(--mark); border-right: 3px solid var(--mark);
  background:
    linear-gradient(var(--mark), var(--mark)) left top / 9px 3px no-repeat,
    linear-gradient(var(--mark), var(--mark)) left bottom / 9px 3px no-repeat,
    linear-gradient(var(--mark), var(--mark)) right top / 9px 3px no-repeat,
    linear-gradient(var(--mark), var(--mark)) right bottom / 9px 3px no-repeat,
    var(--band-fill);
}
.rc-range__mark { position: absolute; top: 0; height: 20px; width: 0; }
.rc-range__mark::after { content: ""; position: absolute; left: -7px; top: 3px; width: 14px; height: 14px; border-radius: 50%; background: var(--cta); box-shadow: 0 0 0 3px var(--paper); }
.rc-range__mark span { position: absolute; bottom: calc(100% + 6px); left: 0; transform: translateX(-50%); white-space: nowrap; font: 700 12.5px/1 var(--font-sans); color: var(--ink); }
.rc-range__axis, .rc-bars__axis { position: relative; height: 14px; font: 500 12px/1 var(--font-sans); color: var(--ink-3); font-variant-numeric: tabular-nums; }
.rc-range__axis span, .rc-bars__axis span { position: absolute; top: 0; transform: translateX(-50%); white-space: nowrap; }
.rc-range__axis span:first-child, .rc-bars__axis span:first-child { transform: none; }
.rc-range__axis span:last-child, .rc-bars__axis span:last-child { transform: translateX(-100%); }

/* ---------- Page layout ---------- */
.rc-layout { display: grid; grid-template-columns: minmax(0, var(--layout-article)) 300px; justify-content: space-between; gap: 64px; padding-block: 48px 96px; }
.rc-article { display: grid; gap: var(--space-section); align-content: start; min-width: 0; }
.rc-article > .rc-slot { margin-top: calc(32px - var(--space-section)); }
.rc-rail { min-width: 0; }
.rc-rail__inner { position: sticky; top: 24px; display: grid; gap: 20px; }
@media (max-width: 1100px) {
  .rc-layout { grid-template-columns: minmax(0, var(--layout-article)); justify-content: center; }
  .rc-rail { display: none; }
}
@media (max-width: 640px) {
  :root { --space-section: 60px; }
  .rc-layout { padding-block: 28px 64px; }
}
.rc-slot:empty { display: none; }

/* On this page */
.rc-toc { display: grid; gap: 10px; padding: 18px 18px 12px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); }
.rc-toc ol { display: grid; }
.rc-toc a { display: block; margin-inline: -10px; padding: 7px 10px; border-radius: var(--radius-sm); font: 500 15px/1.3 var(--font-sans); color: var(--ink-2); text-decoration: none; }
.rc-toc a:hover { background: var(--tint); color: var(--ink); }
.rc-toc-mobile { border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); }
.rc-toc-mobile summary { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; cursor: pointer; list-style: none; font: 700 15px/1.2 var(--font-sans); }
.rc-toc-mobile summary::-webkit-details-marker { display: none; }
.rc-toc-mobile summary .rc-i { width: 20px; height: 20px; color: var(--ink-3); transition: transform .2s; }
.rc-toc-mobile[open] summary .rc-i { transform: rotate(180deg); }
.rc-toc-mobile ol { display: grid; padding: 0 16px 12px; }
.rc-toc-mobile a { display: block; padding: 8px 0; border-top: 1px solid var(--line); font: 500 15px/1.3 var(--font-sans); color: var(--ink-2); text-decoration: none; }
@media (min-width: 1101px) { .rc-toc-mobile { display: none; } }
.rc-article > .rc-toc-mobile { margin-top: calc(24px - var(--space-section)); }

/* ---------- Calculator ---------- */
.rc-tool { padding: 8px; border-radius: var(--radius-lg); background: var(--primary); box-shadow: var(--shadow-2); scroll-margin-top: 24px; }
.rc-tool__head { display: flex; align-items: center; gap: 14px; padding: 16px 18px 18px; color: var(--on-primary); }
.rc-tool__icon { width: 46px; height: 46px; flex: none; border-radius: 12px; display: grid; place-items: center; background: rgba(255,255,255,0.12); }
.rc-tool__icon .rc-i { width: 24px; height: 24px; }
.rc-tool__title { font: 700 clamp(21px, 2.4vw, 25px)/1.2 var(--font-display); color: var(--on-primary); }
.rc-tool__intro { margin-top: 2px; text-wrap: pretty; font-size: 15px; line-height: 1.4; color: var(--on-primary-2); }
.rc-tool__body { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); border-radius: 10px; background: var(--paper); overflow: hidden; }
.rc-tool__questions { display: grid; gap: 22px; align-content: start; padding: 24px; min-width: 0; }
.rc-tool__result { display: grid; gap: 8px; align-content: start; padding: 24px; background: var(--tint); border-left: 1px solid var(--line); min-width: 0; }
@media (max-width: 760px) {
  .rc-tool__body { grid-template-columns: minmax(0, 1fr); }
  .rc-tool__result { border-left: 0; border-top: 1px solid var(--line); }
  .rc-tool__questions, .rc-tool__result { padding: 20px 16px; }
}

.rc-q { display: grid; gap: 10px; min-width: 0; padding: 0; border: 0; }
.rc-q legend { padding: 0; margin-bottom: 10px; }
.rc-q legend, .rc-field label { display: flex; align-items: center; gap: 8px; font: 700 15px/1.3 var(--font-sans); color: var(--ink); }
.rc-field label .rc-i { width: 16px; height: 16px; color: var(--ink-3); }
.rc-q__n { width: 22px; height: 22px; flex: none; border-radius: 50%; display: grid; place-items: center; background: var(--primary); color: var(--on-primary); font: 700 12px/1 var(--font-sans); }
.rc-q--row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }

.rc-opts--3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.rc-opt { position: relative; cursor: pointer; }
.rc-opt input, .rc-pill input { position: absolute; inset: 0; margin: 0; opacity: 0; cursor: pointer; }
.rc-opt__box { display: grid; justify-items: center; gap: 3px; height: 100%; padding: 12px 6px 11px; text-align: center; border: 1.5px solid var(--control-border); border-radius: var(--radius-md); background: var(--paper); transition: border-color .15s, background-color .15s; }
.rc-opt:hover .rc-opt__box { border-color: var(--ink-3); }
.rc-opt--cat1 { --cat: var(--cat-1); }
.rc-opt--cat2 { --cat: var(--cat-2); }
.rc-opt--cat3 { --cat: var(--cat-3); }
.rc-opt__drop { width: 24px; height: 24px; margin-bottom: 2px; color: var(--cat); fill: color-mix(in srgb, var(--cat) 28%, #FFFFFF); }
.rc-opt__name { font: 700 15px/1.2 var(--font-sans); color: var(--ink); }
.rc-opt__hint { font: 500 12px/1.2 var(--font-sans); color: var(--ink-3); }
.rc-opt input:checked + .rc-opt__box { border-color: var(--primary); background: var(--primary-soft); box-shadow: inset 0 0 0 1px var(--primary); }
.rc-opt input:focus-visible + .rc-opt__box, .rc-pill input:focus-visible + span { outline: 3px solid var(--focus); outline-offset: 2px; }

.rc-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.rc-pill { position: relative; }
.rc-pill span { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border: 1.5px solid var(--control-border); border-radius: var(--radius-pill); background: var(--paper); font: 600 14px/1.2 var(--font-sans); color: var(--ink-2); transition: background-color .15s, border-color .15s; }
.rc-pill:hover span { border-color: var(--ink-3); }
.rc-pill input:checked + span { background: var(--primary); border-color: var(--primary); color: var(--on-primary); }

.rc-field { display: grid; gap: 8px; min-width: 0; }
.rc-input { width: 100%; min-height: 46px; padding: 0 14px; border: 1.5px solid var(--control-border); border-radius: var(--radius-sm); background: var(--paper); font: 500 16px/1.2 var(--font-sans); color: var(--ink); font-variant-numeric: tabular-nums; }
.rc-input:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-soft); }
.rc-input::placeholder { color: var(--ink-3); }
.rc-input-wrap { position: relative; }
.rc-input-wrap .rc-input { padding-right: 56px; }
.rc-input-suffix, .rc-input-prefix { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; font: 600 14px/1 var(--font-sans); color: var(--ink-3); }
.rc-input-suffix { right: 14px; }
.rc-input-prefix { left: 14px; }
.rc-input-wrap--pre .rc-input { padding-left: 28px; padding-right: 14px; }

.rc-result__figure { font-size: clamp(28px, 3vw, 34px); line-height: 1.1; white-space: normal; }
.rc-result__note { font-size: 13px; line-height: 1.4; color: var(--ink-3); }
.rc-check { display: grid; gap: 10px; margin-top: 14px; padding-top: 18px; border-top: 1px solid var(--line-strong); }
.rc-check__label { font: 700 15px/1.3 var(--font-sans); color: var(--ink); }

/* Fair Price Check meter */
.rc-meter { padding: 22px 0 18px; }
.rc-meter__plot { position: relative; height: 20px; }
.rc-meter__track { position: absolute; left: 0; right: 0; top: 9px; height: 2px; background: var(--line-strong); }
.rc-meter__fair { --mark: var(--fair); --band-fill: var(--fair-soft); }
.rc-meter__fair span { position: absolute; bottom: calc(100% + 5px); left: 50%; transform: translateX(-50%); white-space: nowrap; font: 700 11.5px/1 var(--font-sans); letter-spacing: .04em; text-transform: uppercase; color: var(--fair); }
.rc-meter__you { position: absolute; top: 2px; width: 16px; height: 16px; margin-left: -8px; border-radius: 50%; background: var(--fair); box-shadow: 0 0 0 3px var(--paper); }
.rc-meter__you--high { background: var(--cta); }
.rc-meter__you span { position: absolute; top: calc(100% + 6px); left: 50%; transform: translateX(-50%); font: 700 11.5px/1 var(--font-sans); letter-spacing: .04em; text-transform: uppercase; color: var(--alarm); }
.rc-verdict { display: flex; align-items: flex-start; gap: 10px; padding: 12px; border-radius: var(--radius-md); background: var(--fair-soft); }
.rc-verdict--high { background: var(--alarm-soft); }
.rc-verdict p { font-size: 14px; line-height: 1.45; color: var(--ink); }
.rc-verdict--low { background: var(--tint-2); }
.rc-meter__you--low { background: var(--ink-2); }
.rc-meter__you span { color: var(--fair); }
.rc-meter__you--high span { color: var(--alarm); }
.rc-meter__you--low span { color: var(--ink-2); }

/* Live estimator (Pass 8) */
.rc-q__aside { margin-left: 2px; font: 500 13px/1.3 var(--font-sans); color: var(--ink-3); }
.rc-field__hint { font-size: 12.5px; line-height: 1.35; color: var(--ink-3); }
.rc-pill--check span { gap: 8px; }
.rc-pill--check span::before { content: ""; flex: none; width: 14px; height: 14px; border: 1.5px solid currentColor; border-radius: 4px; background: var(--paper); }
.rc-pill--check input:checked + span::before { border-color: var(--on-primary); background: var(--on-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230C0C0D' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 11px no-repeat; }
.rc-tool__nojs { font-size: 13px; line-height: 1.4; color: var(--ink-3); }
.rc-tool.is-live .rc-tool__nojs { display: none; }
.rc-result__live { display: grid; gap: 6px; }
.rc-result__context { font-size: 14px; line-height: 1.4; color: var(--ink-2); }
.rc-result__error { font: 600 14px/1.4 var(--font-sans); color: var(--alarm); }
.rc-tool.has-error .rc-result__figure, .rc-tool.has-error .rc-result__context { opacity: .35; }
.rc-result__notes { display: grid; gap: 6px; margin: 4px 0 0; padding: 10px 12px; list-style: none; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); font-size: 13.5px; line-height: 1.45; color: var(--ink-2); }
.rc-breakdown { margin-top: 4px; }
.rc-breakdown > summary { display: inline-flex; align-items: center; gap: 6px; padding: 4px 0; list-style: none; cursor: pointer; font: 700 14px/1.3 var(--font-sans); color: var(--ink); text-decoration: underline; text-decoration-color: var(--line-strong); text-underline-offset: 3px; }
.rc-breakdown > summary::-webkit-details-marker { display: none; }
.rc-breakdown > summary .rc-i { width: 16px; height: 16px; transition: transform .15s; }
.rc-breakdown[open] > summary .rc-i { transform: rotate(180deg); }
.rc-breakdown > summary:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.rc-breakdown__table { width: 100%; margin-top: 8px; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.rc-breakdown__table th { padding: 8px 8px 8px 0; text-align: left; vertical-align: top; font: 600 13.5px/1.3 var(--font-sans); color: var(--ink); }
.rc-breakdown__table th small { display: block; margin-top: 2px; font: 400 12px/1.3 var(--font-sans); color: var(--ink-3); }
.rc-breakdown__table td { padding: 8px 0; text-align: right; vertical-align: top; white-space: nowrap; font: 600 13.5px/1.3 var(--font-sans); color: var(--ink); }
.rc-breakdown__table tbody tr + tr { border-top: 1px solid var(--line); }
.rc-breakdown__table tfoot tr { border-top: 1.5px solid var(--line-strong); }
.rc-breakdown__table tfoot th, .rc-breakdown__table tfoot td { font-size: 15px; font-weight: 800; }
.rc-breakdown__note { margin-top: 8px; font-size: 12.5px; line-height: 1.45; color: var(--ink-3); }
.rc-breakdown__note a { color: var(--ink-2); }
.rc-check__hint { font-size: 13px; line-height: 1.4; color: var(--ink-3); }


/* ---------- Call boxes ---------- */
.rc-call, .rc-leadform, .rc-fallback { position: relative; border-radius: var(--radius-lg); background: var(--paper); border: 1px solid var(--line); box-shadow: var(--shadow-2); }
.rc-call { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 20px; padding: 24px; }
.rc-call__badge { width: 56px; height: 56px; flex: none; border-radius: 50%; display: grid; place-items: center; background: var(--cta); color: var(--on-cta); }
.rc-call__badge .rc-i { width: 26px; height: 26px; }
.rc-call__badge--soft { background: var(--primary-soft); color: var(--accent); }
.rc-call__badge--alarm { background: var(--alarm-soft); color: var(--alarm); }
.rc-call__live { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 6px; font: 700 12px/1 var(--font-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--fair); }
.rc-call__title { font: 700 22px/1.25 var(--font-display); color: var(--ink); }
.rc-call__text { margin-top: 4px; font-size: 15px; line-height: 1.5; color: var(--ink-2); }
.rc-call__actions { display: grid; justify-items: center; gap: 8px; }
.rc-call__number { font: 700 15px/1 var(--font-sans); letter-spacing: .02em; color: var(--ink-2); font-variant-numeric: tabular-nums; user-select: all; }
.rc-call.rc-call--rail { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 20px; }
.rc-call--rail .rc-call__title { font-size: 20px; }
.rc-call--rail .rc-call__live { margin-bottom: 0; }
.rc-call--rail .rc-btn { margin-top: 8px; }
.rc-call--rail .rc-call__number { justify-self: center; }
@media (max-width: 700px) {
  .rc-call { grid-template-columns: auto minmax(0, 1fr); gap: 14px 16px; padding: 20px; }
  .rc-call__badge { width: 46px; height: 46px; align-self: start; }
  .rc-call__badge .rc-i { width: 22px; height: 22px; }
  .rc-call__actions { grid-column: 1 / -1; justify-items: stretch; }
  .rc-call__actions .rc-btn { width: 100%; white-space: normal; text-align: center; }
  .rc-call__number { justify-self: center; }
}

.rc-leadform { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 20px; padding: 24px; }
.rc-leadform__row { display: grid; grid-template-columns: 130px minmax(0, 1fr) auto; align-items: end; gap: 12px; margin-top: 16px; }
.rc-leadform .rc-field label { font-size: 14px; }
.rc-consent { margin-top: 10px; font-size: 12px; line-height: 1.45; color: var(--ink-3); }
@media (max-width: 700px) {
  .rc-leadform { grid-template-columns: minmax(0, 1fr); padding: 20px; gap: 12px; }
  .rc-leadform .rc-call__badge { width: 46px; height: 46px; }
  .rc-leadform__row { grid-template-columns: minmax(0, 1fr); }
}

.rc-fallback { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 18px; padding: 20px 24px; box-shadow: var(--shadow-1); }
.rc-fallback .rc-call__title { font-size: 20px; }
.rc-fallback--rail { grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 20px; }
.rc-fallback--rail .rc-btn { width: 100%; }
@media (max-width: 700px) {
  .rc-fallback { grid-template-columns: auto minmax(0, 1fr); padding: 20px; }
  .rc-fallback > .rc-btn { grid-column: 1 / -1; }
}

/* ---------- Sections ---------- */
.rc-sec { display: grid; gap: 28px; min-width: 0; scroll-margin-top: 24px; }
.rc-sec__head { display: grid; gap: 10px; }
.rc-sec--panel { padding: 36px; border-radius: var(--radius-lg); background: var(--tint); }
@media (max-width: 640px) { .rc-sec--panel { padding: 24px 16px; margin-inline: -4px; } }

.rc-cards--2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.rc-card { display: grid; gap: 10px; align-content: start; padding: 22px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); }
.rc-card__title { font: 700 18px/1.3 var(--font-sans); color: var(--ink); }
.rc-card__text { font-size: 15.5px; line-height: 1.55; color: var(--ink-2); }
@media (max-width: 560px) { .rc-cards--2 { grid-template-columns: minmax(0, 1fr); } }

/* Water categories */
.rc-cats { display: grid; gap: 16px; padding: 24px; border-radius: var(--radius-lg); background: var(--tint); }
.rc-cats__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.rc-cat { display: grid; gap: 6px; align-content: start; padding: 18px; border-radius: var(--radius-md); background: var(--paper); }
.rc-cat--1 { --cat: var(--cat-1); }
.rc-cat--2 { --cat: var(--cat-2); }
.rc-cat--3 { --cat: var(--cat-3); }
.rc-cat__drop .rc-i { width: 34px; height: 34px; color: var(--cat); fill: color-mix(in srgb, var(--cat) 30%, #FFFFFF); }
.rc-cat__tag { margin-top: 4px; font: 700 12px/1.2 var(--font-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3); }
.rc-cat__name { font: 700 18px/1.25 var(--font-sans); color: var(--ink); }
.rc-cat__from { font-size: 14px; line-height: 1.45; color: var(--ink-2); }
.rc-cat__cost { display: flex; align-items: center; gap: 8px; margin-top: 8px; padding-top: 10px; border-top: 1px solid var(--line); font: 600 13px/1 var(--font-sans); color: var(--ink-2); }
.rc-cat__dollars b { font: 800 16px/1 var(--font-sans); color: var(--ink); }
.rc-cat__dollars b.off { color: var(--line-strong); }
@media (max-width: 640px) { .rc-cats { padding: 16px; } .rc-cats__list { grid-template-columns: minmax(0, 1fr); } }

/* Cost breakdown chart */
.rc-chart { display: grid; gap: 14px; padding: 24px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper); }
.rc-chart__head { display: grid; gap: 2px; }
.rc-chart__title { font: 700 18px/1.3 var(--font-sans); color: var(--ink); }
.rc-chart__sub { font-size: 14px; color: var(--ink-3); }
.rc-bars__row { display: grid; grid-template-columns: minmax(0, 230px) minmax(0, 1fr) 118px; align-items: center; gap: 18px; padding-block: 13px; border-bottom: 1px solid var(--line); }
.rc-bars__row--axis { padding-block: 8px 0; border-bottom: 0; }
.rc-bars__label { display: grid; gap: 3px; font-size: 15px; line-height: 1.3; color: var(--ink); min-width: 0; }
.rc-bars__label small { font-size: 13px; line-height: 1.35; color: var(--ink-3); }
.rc-bars__label .rc-tag { justify-self: start; margin-block: 2px; }
.rc-bars__plot, .rc-sit__plot { position: relative; height: 12px; }
.rc-bars__track { position: absolute; left: 0; right: 0; top: 5px; height: 2px; border-radius: 2px; background: var(--tint-2); }
.rc-bars__bar { position: absolute; top: 0; height: 12px; min-width: 6px; border-radius: 4px; background: var(--mark); }
.rc-bars__value, .rc-sit__value { font: 700 15px/1.2 var(--font-sans); text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; color: var(--ink); }
.rc-chart__total { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px; padding: 14px 16px; border-radius: var(--radius-md); background: var(--tint); font-size: 15px; font-weight: 600; color: var(--ink-2); }
.rc-chart__total strong { font: 800 19px/1.2 var(--font-sans); color: var(--ink); font-variant-numeric: tabular-nums; }
@media (max-width: 640px) {
  .rc-chart { padding: 18px 16px; }
  .rc-bars__row { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 14px; }
  .rc-bars__label { grid-column: 1 / -1; }
  .rc-bars__row--axis { display: none; }
}

/* Situations: house diagram + ranked rows */
.rc-house-wrap { padding: 16px 16px 4px; border-radius: var(--radius-lg); background: var(--tint); }
.rc-house { display: block; width: 100%; max-width: 100%; height: auto; }
.rc-house .h-soil { fill: var(--tint-2); }
.rc-house .h-ground { stroke: var(--line-strong); stroke-width: 2; }
.rc-house .h-room { fill: var(--paper); stroke: var(--ink-3); stroke-width: 2; }
.rc-house .h-floor { stroke: var(--ink-3); stroke-width: 2; }
.rc-house .h-roof { fill: var(--primary); }
.rc-house .h-window { fill: var(--primary-soft); stroke: var(--ink-3); stroke-width: 1.5; }
.rc-house .h-door { fill: var(--tint-2); stroke: var(--ink-3); stroke-width: 1.5; }
.rc-house .h-water { fill: var(--water-soft); stroke: var(--water); stroke-width: 2; }
.rc-house .h-pipe { fill: none; stroke: var(--ink-3); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.rc-house .h-drain { fill: var(--ink-3); }
.rc-house .h-sewage { fill: none; stroke: var(--cat-2); stroke-width: 3; stroke-linecap: round; }
.rc-house .h-fixture { fill: var(--paper); stroke: var(--ink-3); stroke-width: 2; }
.rc-house .h-stain { fill: var(--water-soft); stroke: var(--water); stroke-width: 1.5; }
.rc-house .h-drop { fill: var(--water); }
.rc-house .h-spray { fill: none; stroke: var(--water); stroke-width: 3; stroke-linecap: round; }
.rc-house .h-pin circle { fill: var(--cta); }
.rc-house .h-pin line { stroke: var(--cta); stroke-width: 1.5; }
.rc-house .h-pin text { fill: #FFFFFF; font: 700 14px/1 var(--font-sans); text-anchor: middle; }
.rc-house .h-label { fill: var(--ink-3); font: 500 12px/1 var(--font-sans); text-anchor: middle; }

.rc-sitlist { display: grid; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper); overflow: hidden; }
.rc-sitlist li + li { border-top: 1px solid var(--line); }
.rc-sit { display: grid; grid-template-columns: 26px 64px minmax(0, 1.2fr) minmax(0, 1fr) 128px 18px; align-items: center; gap: 14px; padding: 14px 18px; color: var(--ink); text-decoration: none; transition: background-color .15s; }
.rc-sit:hover { background: var(--tint); color: var(--ink); }
.rc-sit__pin { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--cta); color: #FFFFFF; font: 700 13px/1 var(--font-sans); }
.rc-sit__pin--none { background: transparent; }
.rc-sit__icon { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: var(--primary-soft); color: var(--accent); }
.rc-sit__icon .rc-i { width: 19px; height: 19px; }
.rc-sit__name { font: 700 16px/1.3 var(--font-sans); }
.rc-sit__go { color: var(--ink-3); }
.rc-sit__go .rc-i { width: 18px; height: 18px; }
@media (max-width: 640px) {
  .rc-sit { grid-template-columns: 22px 52px minmax(0, 1fr) auto; gap: 8px 12px; padding: 12px 14px; }
  .rc-sit__go { display: none; }
  .rc-sit__pin { grid-column: 1; grid-row: 1 / span 2; width: 22px; height: 22px; font-size: 12px; }
  .rc-sit__icon { grid-column: 2; grid-row: 1 / span 2; }
  .rc-sit__name { grid-column: 3; grid-row: 1; }
  .rc-sit__value { grid-column: 4; grid-row: 1; }
  .rc-sit__plot { grid-column: 3 / -1; grid-row: 2; }
  .rc-house-wrap { padding: 8px 4px 0; }
}

/* Check your quote */
.rc-audit { display: grid; gap: 16px; }
.rc-audit__lists { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 640px) { .rc-audit__lists { grid-template-columns: minmax(0, 1fr); } }
.rc-invoice { position: relative; padding: 4px 26px 12px; border-radius: var(--radius-md); background: var(--paper); box-shadow: var(--shadow-2); font: 500 15px/1.2 var(--font-sans); font-variant-numeric: tabular-nums; color: var(--ink); }
.rc-invoice__head { display: flex; align-items: center; gap: 8px; min-height: 48px; padding-block: 10px; border-bottom: 2px solid var(--ink); font: 700 12px/1.3 var(--font-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); }
.rc-invoice__head .rc-i { width: 16px; height: 16px; }
.rc-invoice__line { display: flex; align-items: center; gap: 8px; min-height: 46px; border-bottom: 1px solid var(--line); }
.rc-invoice__leader { flex: 1; min-width: 12px; border-bottom: 2px dotted var(--line-strong); transform: translateY(4px); }
.rc-invoice__leader--none { border-bottom: 0; }
.rc-invoice__amount { white-space: nowrap; }
.rc-invoice__flag { position: relative; }
.rc-invoice__circle { position: absolute; left: -12px; top: -10px; width: calc(100% + 24px); height: calc(100% + 20px); overflow: visible; pointer-events: none; color: var(--alarm); }
.rc-invoice__line--note { justify-content: flex-end; min-height: 38px; }
.rc-invoice__note { font: 700 25px/1 var(--font-hand); color: var(--alarm); transform: rotate(-4deg); }
.rc-invoice__line--total { min-height: 56px; border-bottom: 0; font-weight: 800; }
.rc-invoice__line--total .rc-invoice__amount { padding-bottom: 2px; border-bottom: 4px double var(--ink); font-size: 17px; }
.rc-invoice__line--total .rc-stamp { margin-right: 6px; }

.rc-audit__lists { display: grid; gap: 16px; }
.rc-list { display: grid; gap: 12px; align-content: start; padding: 20px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); }
.rc-list ul { display: grid; gap: 10px; }
.rc-list li { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 10px; font-size: 15px; line-height: 1.45; color: var(--ink); }
.rc-list li .rc-i { width: 20px; height: 20px; margin-top: 0; }
.rc-list--good li .rc-i { color: var(--fair); }
.rc-list--bad li .rc-i { color: var(--alarm); }

/* Insurance */
.rc-cover { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper); }
.rc-cover__col { display: grid; gap: 14px; align-content: start; padding: 22px; }
.rc-cover__col--yes { background: var(--fair-soft); }
.rc-cover__col--no { background: var(--alarm-soft); }
.rc-cover__head { display: flex; align-items: center; gap: 8px; font: 700 17px/1.3 var(--font-sans); }
.rc-cover__head .rc-i { width: 22px; height: 22px; }
.rc-cover__col--yes .rc-cover__head { color: var(--fair); }
.rc-cover__col--no .rc-cover__head { color: var(--alarm); }
.rc-cover ul { display: grid; gap: 10px; }
.rc-cover li { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 10px; font-size: 15.5px; line-height: 1.45; color: var(--ink); }
.rc-cover li .rc-i { width: 18px; height: 18px; margin-top: 2px; }
.rc-cover__col--yes li .rc-i { color: var(--fair); }
.rc-cover__col--no li .rc-i { color: var(--alarm); }
.rc-cover__foot { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 16px 22px; border-top: 1px solid var(--line); font-size: 15px; color: var(--ink-2); }
@media (max-width: 600px) { .rc-cover { grid-template-columns: minmax(0, 1fr); } .rc-cover__col, .rc-cover__foot { padding: 18px 16px; } }

/* First-hour steps */
.rc-steps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.rc-step { display: grid; gap: 10px; align-content: start; padding: 20px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); }
.rc-step--safety { background: var(--alarm-soft); border-color: var(--alarm-line); }
.rc-step__top { display: flex; align-items: center; gap: 10px; }
.rc-step__n { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--primary); color: var(--on-primary); font: 800 14px/1 var(--font-sans); }
.rc-step__icon { display: grid; color: var(--accent); }
.rc-step__icon .rc-i { width: 22px; height: 22px; }
.rc-step--safety .rc-step__icon { color: var(--alarm); }
.rc-step .rc-tag { margin-left: auto; background: var(--paper); }
@media (max-width: 560px) { .rc-steps { grid-template-columns: minmax(0, 1fr); } }

/* FAQs */
.rc-faq { display: grid; gap: 10px; }
.rc-faq details { border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); transition: border-color .15s, box-shadow .15s; }
.rc-faq details[open] { border-color: var(--line-strong); box-shadow: var(--shadow-1); }
.rc-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 20px; cursor: pointer; list-style: none; font: 700 17px/1.35 var(--font-sans); color: var(--ink); }
.rc-faq summary::-webkit-details-marker { display: none; }
.rc-faq summary .rc-i { width: 20px; height: 20px; color: var(--ink-3); transition: transform .2s; }
.rc-faq details[open] summary .rc-i { transform: rotate(180deg); }
.rc-faq__a { padding: 0 20px 20px; max-width: 40em; font-size: 16px; line-height: 1.6; color: var(--ink-2); }

/* Sources and related */
.rc-sources { display: grid; gap: 10px; padding: 24px; border-radius: var(--radius-lg); background: var(--tint); font-size: 14px; line-height: 1.55; color: var(--ink-2); scroll-margin-top: 24px; }
.rc-sources__title { display: flex; align-items: center; gap: 8px; font: 700 17px/1.3 var(--font-sans); color: var(--ink); }
.rc-sources__title .rc-i { width: 20px; height: 20px; color: var(--accent); }
.rc-sources ol { display: grid; gap: 6px; padding-left: 20px; list-style: decimal; }
.rc-sources__meta { color: var(--ink-3); }
.rc-article > .rc-sources { margin-top: calc(40px - var(--space-section)); }

.rc-related { display: grid; gap: 14px; margin-top: calc(40px - var(--space-section)); }
.rc-related ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.rc-related a { display: grid; grid-template-columns: 64px minmax(0, 1fr) 16px; align-items: center; gap: 12px; height: 100%; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); font: 600 15px/1.35 var(--font-sans); color: var(--ink); text-decoration: none; transition: border-color .15s, box-shadow .15s; }
.rc-related a:hover { border-color: var(--line-strong); box-shadow: var(--shadow-1); color: var(--ink); }
.rc-related__icon { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: var(--primary-soft); color: var(--accent); }
.rc-related__icon .rc-i { width: 18px; height: 18px; }
.rc-related__go { width: 16px; height: 16px; color: var(--ink-3); }
@media (max-width: 560px) { .rc-related ul { grid-template-columns: minmax(0, 1fr); } }

/* Cost table: price lists and multi-column comparisons */
.rc-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper); }
.rc-table { width: 100%; border-collapse: collapse; font: 500 15px/1.4 var(--font-sans); font-variant-numeric: tabular-nums; color: var(--ink); }
.rc-table caption { caption-side: top; padding: 18px 20px 6px; text-align: left; font: 700 18px/1.3 var(--font-sans); }
.rc-table caption small { display: block; margin-top: 2px; font: 400 14px/1.4 var(--font-sans); color: var(--ink-3); }
.rc-table th { padding: 12px 20px; border-bottom: 2px solid var(--ink); text-align: left; font: 700 12px/1.2 var(--font-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); white-space: nowrap; }
.rc-table td { padding: 13px 20px; border-bottom: 1px solid var(--line); vertical-align: top; }
.rc-table td small { display: block; font-size: 13px; color: var(--ink-3); }
.rc-table tbody tr:hover { background: var(--tint); }
.rc-table .num { text-align: right; white-space: nowrap; font-weight: 700; }
.rc-table tfoot td { border-bottom: 0; background: var(--tint); font-weight: 600; }
.rc-table tfoot tr:last-child td { border-top: 2px solid var(--ink); font-weight: 800; }
.rc-table tfoot tr:last-child .num { font-size: 17px; }
.rc-table tfoot .num { font-size: 15px; }

/* Vertical picker: the homepage's "What happened?" grid */
.rc-picker { display: grid; gap: 16px; }
.rc-picker__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.rc-picker__tile { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; height: 100%; padding: 20px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper); color: var(--ink); text-decoration: none; transition: border-color .15s, box-shadow .15s, transform .15s; }
.rc-picker__tile:hover { border-color: var(--line-strong); box-shadow: var(--shadow-2); transform: translateY(-2px); color: var(--ink); }
.rc-picker__name { font: 700 22px/1.2 var(--font-display); }
.rc-picker__meta { font-size: 14px; line-height: 1.45; color: var(--ink-2); }
.rc-picker__range { display: grid; gap: 2px; margin-top: auto; padding-top: 8px; font: 800 17px/1.2 var(--font-sans); font-variant-numeric: tabular-nums; }
.rc-picker__range small { font: 700 11px/1.2 var(--font-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); }
.rc-picker__go { display: inline-flex; align-items: center; gap: 6px; font: 700 14px/1.2 var(--font-sans); color: var(--accent); }
.rc-picker__go .rc-i { width: 16px; height: 16px; }
@media (max-width: 900px) { .rc-picker__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) {
  .rc-picker__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .rc-picker__tile { padding: 14px; }
  .rc-picker__tile--media { padding: 0; }
  .rc-picker__meta { display: none; }
  .rc-picker__name { font-size: 18px; }
  .rc-picker__range { padding-top: 4px; font-size: 14px; }
  .rc-picker__go { font-size: 13px; }
}

/* ---------- Page types: home, checklist, price list, insurance, glossary, hub ---------- */

/* Hero variants */
.rc-hero__inner:has(> .rc-slot:empty), .rc-hero__inner:has(> .rc-slot[hidden]) { grid-template-columns: minmax(0, 1fr); }
.rc-hero--compact .rc-hero__inner { padding-block: 28px 44px; }
.rc-hero--home .rc-hero__inner { grid-template-columns: minmax(0, 1fr); gap: 40px; padding-block: 48px 64px; }
.rc-hero--home .rc-hero__text { max-width: 800px; }
.rc-h1--xl { font-size: clamp(38px, 5.4vw, 64px); line-height: 1.02; }
.rc-slot--hero .rc-leadform { grid-template-columns: minmax(0, 1fr); gap: 12px; }
.rc-slot--hero .rc-leadform__row { grid-template-columns: minmax(0, 1fr); }


/* Picker tiles with a picture */
.rc-picker__tile--media { padding: 0; gap: 0; overflow: hidden; }
.rc-tile-media { display: block; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: var(--tint); border-bottom: 1px solid var(--line); }
.rc-tile-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.rc-picker__tile--media:hover .rc-tile-media img { transform: scale(1.04); }
.rc-tile-body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; gap: 8px; width: 100%; padding: 18px 20px 20px; }
@media (max-width: 480px) { .rc-tile-body { gap: 4px; padding: 12px 12px 14px; } }

/* Single-column page body (home, hub) */
.rc-wrap--narrow { max-width: calc(1000px + 48px); }
.rc-stack { display: grid; gap: var(--space-section); padding-block: 64px 96px; }
.rc-stack > .rc-sec { max-width: 100%; }
@media (max-width: 640px) { .rc-stack { padding-block: 40px 64px; } }

.rc-cards--3, .rc-steps--3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 860px) { .rc-cards--3, .rc-steps--3 { grid-template-columns: minmax(0, 1fr); } }
.rc-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; align-items: start; }
@media (max-width: 860px) { .rc-split { grid-template-columns: minmax(0, 1fr); } }
.rc-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }

/* Ranked rows without diagram pins */
.rc-sitlist--plain .rc-sit { grid-template-columns: 64px minmax(0, 1.3fr) minmax(0, 1fr) 140px 18px; }
@media (max-width: 640px) {
  .rc-sitlist--plain .rc-sit { grid-template-columns: 52px minmax(0, 1fr) auto; }
  .rc-sitlist--plain .rc-sit__icon { grid-column: 1; grid-row: 1 / span 2; }
  .rc-sitlist--plain .rc-sit__name { grid-column: 2; grid-row: 1; }
  .rc-sitlist--plain .rc-sit__value { grid-column: 3; grid-row: 1; }
  .rc-sitlist--plain .rc-sit__plot { grid-column: 2 / -1; grid-row: 2; }
}
.rc-axis-note { display: flex; justify-content: space-between; gap: 12px; padding: 10px 18px 0; font-size: 13px; color: var(--ink-3); }

/* Callout */
.rc-callout { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 12px; padding: 18px 20px; border-radius: var(--radius-md); background: var(--primary-soft); color: var(--ink); font-size: 16px; line-height: 1.55; }
.rc-callout .rc-i { width: 22px; height: 22px; margin-top: 1px; }
.rc-callout strong { display: block; margin-bottom: 2px; }
.rc-prose { display: grid; gap: 16px; max-width: var(--layout-measure); }
.rc-prose p { color: var(--ink); }

/* Checklist timeline */
.rc-progress { display: flex; align-items: center; gap: 14px; padding: 14px 18px; border-radius: var(--radius-md); background: var(--tint); font: 600 14px/1.3 var(--font-sans); color: var(--ink-2); }
.rc-progress__bar { flex: 1; height: 8px; border-radius: var(--radius-pill); background: var(--tint-2); overflow: hidden; }
.rc-progress__bar span { display: block; width: var(--done, 0%); height: 100%; border-radius: inherit; background: var(--fair); transition: width .25s; }
.rc-timeline { display: grid; gap: 32px; }
.rc-tl-group { display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 24px; }
.rc-tl-when { display: grid; gap: 6px; align-content: start; padding-top: 14px; }
.rc-tl-when strong { font: 800 16px/1.2 var(--font-sans); color: var(--ink); }
.rc-tl-when span:not(.rc-stamp) { font-size: 13px; line-height: 1.4; color: var(--ink-3); }
.rc-tl-when .rc-stamp { justify-self: start; }
.rc-tl-steps { display: grid; gap: 10px; }
.rc-tl-step { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 14px; padding: 16px 18px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); cursor: pointer; transition: background-color .15s, border-color .15s; }
.rc-tl-step:hover { border-color: var(--control-border); }
.rc-tl-step input { appearance: none; -webkit-appearance: none; display: grid; place-items: center; width: 26px; height: 26px; margin: 0; border: 2px solid var(--control-border); border-radius: 7px; background: var(--paper); cursor: pointer; }
.rc-tl-step input::after { content: ""; width: 11px; height: 6px; margin-top: -3px; border-left: 2.5px solid transparent; border-bottom: 2.5px solid transparent; transform: rotate(-45deg); }
.rc-tl-step input:checked { border-color: var(--fair); background: var(--fair); }
.rc-tl-step input:checked::after { border-color: #FFFFFF; }
.rc-tl-step input:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.rc-tl-step:has(input:checked) { background: var(--tint); border-color: var(--line); }
.rc-tl-step:has(input:checked) .rc-tl-step__title { color: var(--ink-3); }
.rc-tl-step__title { display: flex; align-items: center; gap: 8px; font: 700 17px/1.35 var(--font-sans); color: var(--ink); }
.rc-tl-step__title .rc-i { width: 18px; height: 18px; color: var(--accent); }
.rc-tl-step__text { display: block; margin-top: 4px; font-size: 15px; line-height: 1.5; color: var(--ink-2); }
.rc-tl-step--safety { border-color: var(--alarm-line); background: var(--alarm-soft); }
.rc-tl-step--safety .rc-tl-step__title .rc-i { color: var(--alarm); }
.rc-tl-step .rc-tag { margin-left: 4px; background: var(--paper); }
@media (max-width: 640px) {
  .rc-tl-group { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .rc-tl-when { grid-template-columns: auto 1fr; align-items: center; column-gap: 10px; padding-top: 0; }
  .rc-tl-when .rc-stamp { grid-row: 1 / span 2; }
}

/* Script card: what to say on the phone */
.rc-script { display: grid; gap: 16px; padding: 24px; border-radius: var(--radius-lg); background: var(--primary); color: var(--on-primary); box-shadow: var(--shadow-2); }
.rc-script__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.rc-script__title { display: flex; align-items: center; gap: 10px; font: 700 22px/1.25 var(--font-display); color: var(--on-primary); }
.rc-script__title .rc-i { width: 22px; height: 22px; }
.rc-script ol { display: grid; gap: 12px; counter-reset: rc-script; }
.rc-script li { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 12px; font-size: 16px; line-height: 1.5; counter-increment: rc-script; }
.rc-script li::before { content: counter(rc-script); display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--primary-soft); color: var(--ink); font: 800 13px/1 var(--font-sans); }
.rc-script li small { display: block; margin-top: 2px; font-size: 13px; color: var(--on-primary-2); }
.rc-btn--ghost { min-height: 38px; padding: 0 14px; border-color: rgba(255,255,255,0.35); background: transparent; color: var(--on-primary); font-size: 14px; }
.rc-btn--ghost:hover { border-color: var(--on-primary); color: var(--on-primary); }

/* Price list */
.rc-jump { display: flex; flex-wrap: wrap; gap: 8px; }
.rc-jump a { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 14px; border: 1px solid var(--line); border-radius: var(--radius-pill); background: var(--paper); font: 600 14px/1.2 var(--font-sans); color: var(--ink); text-decoration: none; }
.rc-jump a:hover { border-color: var(--control-border); background: var(--tint); color: var(--ink); }
.rc-jump .rc-i { width: 16px; height: 16px; color: var(--accent); }
.rc-pricegroup { display: grid; gap: 14px; scroll-margin-top: 24px; }
.rc-pricegroup__head { display: flex; align-items: center; gap: 12px; }
.rc-pricegroup__head .rc-icon-tile { width: 40px; height: 40px; }
.rc-table .rc-tag { margin-top: 6px; }
.rc-pricegroup .rc-table { table-layout: fixed; }
.rc-pricegroup .rc-table th:nth-child(1) { width: 56%; }
.rc-pricegroup .rc-table th:nth-child(2) { width: 20%; }
.rc-table td small.rc-table__unit { display: none; }
@media (max-width: 640px) {
  .rc-pricegroup .rc-table th:nth-child(1) { width: 62%; }
  .rc-pricegroup .rc-table th:nth-child(2), .rc-pricegroup .rc-table td:nth-child(2) { display: none; }
  .rc-pricegroup .rc-table th, .rc-pricegroup .rc-table td { padding-inline: 14px; }
  .rc-pricegroup .rc-table .num { white-space: normal; }
  .rc-table td small.rc-table__unit { display: block; font-weight: 500; }
}
.rc-hero__aside { min-width: 0; }

/* Insurance: verdict card, coverage matrix, claim math */
.rc-answer-card { display: grid; gap: 16px; padding: 28px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper); box-shadow: var(--shadow-2); }
.rc-answer-card__verdict { font: 700 clamp(24px, 2.6vw, 30px)/1.2 var(--font-display); color: var(--ink); text-wrap: balance; }
.rc-answer-card__rows { display: grid; gap: 10px; }
.rc-answer-card__row { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 12px; font-size: 15px; line-height: 1.45; color: var(--ink-2); }
.rc-answer-card .rc-summary__foot { padding-top: 16px; }
.rc-status { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: var(--radius-pill); font: 700 13px/1.1 var(--font-sans); white-space: nowrap; }
.rc-status .rc-i { width: 15px; height: 15px; }
.rc-status--yes { background: var(--fair-soft); color: var(--fair); }
.rc-status--no { background: var(--alarm-soft); color: var(--alarm); }
.rc-status--maybe { background: var(--primary-soft); color: var(--ink); }
.rc-matrix td:first-child { width: 36%; }
@media (min-width: 641px) { .rc-matrix td:nth-child(2) { width: 1%; white-space: nowrap; } }  /* status chip as narrow as it can be, so Why gets the room */
.rc-matrix__sit { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 12px; align-items: center; font-weight: 700; }
.rc-matrix__icon { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: var(--primary-soft); color: var(--accent); }
.rc-matrix__icon .rc-i { width: 19px; height: 19px; }
.rc-matrix td { vertical-align: middle; }
.rc-matrix__why { font-size: 14px; line-height: 1.45; color: var(--ink-2); }
@media (max-width: 640px) {
  .rc-matrix thead { display: none; }
  .rc-matrix, .rc-matrix tbody, .rc-matrix tr, .rc-matrix td { display: block; width: 100%; }
  .rc-matrix tr { padding: 14px 16px; border-bottom: 1px solid var(--line); }
  .rc-matrix td { padding: 0; border: 0; }
  .rc-matrix td:first-child { width: 100%; }
  .rc-matrix td + td { margin-top: 8px; }
  .rc-matrix td:nth-child(2) { padding-left: 48px; }
  .rc-matrix td:nth-child(3) { padding-left: 48px; }
}

.rc-stackchart { display: grid; gap: 16px; padding: 24px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper); }
.rc-stackchart__bar { display: flex; gap: 3px; height: 44px; }
.rc-stackchart__seg { display: flex; align-items: center; min-width: 6px; padding: 0 12px; overflow: hidden; white-space: nowrap; font: 800 15px/1 var(--font-sans); font-variant-numeric: tabular-nums; }
.rc-stackchart__seg:first-child { border-radius: 8px 0 0 8px; }
.rc-stackchart__seg:last-child { border-radius: 0 8px 8px 0; }
.rc-stackchart__seg--insurer { background: var(--fair); color: #FFFFFF; }
.rc-stackchart__seg--held { background: var(--band-fill); color: var(--ink); }
.rc-stackchart__seg--you { background: var(--alarm); color: #FFFFFF; }
.rc-stackchart__legend { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.rc-stackchart__item { display: grid; grid-template-columns: 14px minmax(0, 1fr); align-content: start; gap: 4px 10px; font-size: 14px; line-height: 1.45; color: var(--ink-2); }
.rc-stackchart__item::before { content: ""; grid-row: span 2; width: 14px; height: 14px; margin-top: 3px; border-radius: 4px; background: var(--sw); }
.rc-stackchart__item strong { font: 700 15px/1.3 var(--font-sans); color: var(--ink); }
@media (max-width: 640px) { .rc-stackchart { padding: 18px 16px; } .rc-stackchart__legend { grid-template-columns: minmax(0, 1fr); } .rc-stackchart__seg { padding: 0 6px; font-size: 13px; } }

/* Glossary */
.rc-define { display: grid; gap: 12px; padding: 28px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper); box-shadow: var(--shadow-2); }
.rc-define__term { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; font: 800 clamp(28px, 3vw, 34px)/1.1 var(--font-display); color: var(--ink); }
.rc-define__term small { font: 400 15px/1 var(--font-sans); color: var(--ink-3); }
.rc-define__text { font-size: 19px; line-height: 1.55; color: var(--ink); }
.rc-define__meta { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 14px; border-top: 1px solid var(--line); }
.rc-terms { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.rc-terms a { display: grid; gap: 4px; height: 100%; padding: 16px 18px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); color: var(--ink); text-decoration: none; transition: border-color .15s, box-shadow .15s; }
.rc-terms a:hover { border-color: var(--line-strong); box-shadow: var(--shadow-1); color: var(--ink); }
.rc-terms strong { display: flex; align-items: center; justify-content: space-between; gap: 8px; font: 700 16px/1.3 var(--font-sans); }
.rc-terms strong .rc-i { width: 16px; height: 16px; color: var(--ink-3); }
.rc-terms span { font-size: 14px; line-height: 1.45; color: var(--ink-2); }
@media (max-width: 560px) { .rc-terms { grid-template-columns: minmax(0, 1fr); } }

/* Hub: guide cards with a short answer */
.rc-guides { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.rc-guide { display: grid; grid-template-columns: 44px minmax(0, 1fr) 18px; align-items: start; gap: 14px; height: 100%; padding: 20px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper); color: var(--ink); text-decoration: none; transition: border-color .15s, box-shadow .15s, transform .15s; }
.rc-guide:hover { border-color: var(--line-strong); box-shadow: var(--shadow-2); transform: translateY(-2px); color: var(--ink); }
.rc-guide__body { display: grid; gap: 8px; min-width: 0; }
.rc-guide__title { font: 700 18px/1.3 var(--font-sans); }
.rc-guide__text { font-size: 15px; line-height: 1.5; color: var(--ink-2); }
.rc-guide__body .rc-status { justify-self: start; }
.rc-guide > .rc-i { width: 18px; height: 18px; margin-top: 12px; color: var(--ink-3); }
.rc-guide--photo { grid-template-columns: 120px minmax(0, 1fr) 18px; gap: 18px; padding: 16px 20px 16px 16px; }
@media (max-width: 640px) {
  .rc-guides { grid-template-columns: minmax(0, 1fr); }
  .rc-guide--photo { grid-template-columns: 88px minmax(0, 1fr); gap: 14px; padding: 14px; }
  .rc-guide--photo > .rc-i { display: none; }
}

/* Photo thumbnails: guide cards, situation rows, related guides.
   One photo per guide URL (content/_photos.json); decorative, the link text names the page. */
.rc-thumb { display: block; overflow: hidden; padding: 0; background: var(--tint-2); box-shadow: inset 0 0 0 1px rgba(12, 12, 13, .06); }
.rc-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
a:hover > .rc-thumb img { transform: scale(1.06); }
.rc-sit__icon.rc-thumb, .rc-related__icon.rc-thumb { width: 64px; height: 48px; border-radius: 8px; }
.rc-guide__media.rc-thumb { width: 120px; height: 90px; border-radius: var(--radius-md); }
@media (max-width: 640px) {
  .rc-sit__icon.rc-thumb { width: 52px; height: 40px; }
  .rc-guide__media.rc-thumb { width: 88px; height: 66px; }
}

/* Hero photo, desktop only (phones get the answer card sooner) */
.rc-hero__photo { display: block; max-width: 640px; margin-top: 8px; }
.rc-hero__photo img { display: block; width: 100%; height: auto; aspect-ratio: 12 / 5; object-fit: cover; border-radius: var(--radius-lg); background: var(--tint-2); }
@media (max-width: 980px) { .rc-hero__photo { display: none; } }

/* Rail teaser: what this will cost */
.rc-teaser { display: grid; gap: 10px; padding: 20px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--tint); }
.rc-teaser .rc-teaser__figure { font: 800 26px/1.1 var(--font-sans); letter-spacing: -0.02em; font-variant-numeric: tabular-nums; color: var(--ink); }
.rc-teaser p { font-size: 14px; line-height: 1.45; color: var(--ink-2); }


/* ---------- Footer ---------- */
.rc-footer { background: var(--footer); color: var(--footer-ink); }
.rc-footer__inner { display: grid; gap: 20px; padding-block: 44px 48px; }
.rc-footer__brand { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; }
.rc-footer__brand img { height: 24px; width: auto; }
.rc-footer__brand p { font: 600 16px/1.3 var(--font-display); color: #FFFFFF; }
.rc-footer__links { display: flex; flex-wrap: wrap; gap: 10px 24px; padding-block: 20px; border-block: 1px solid rgba(255,255,255,0.14); }
.rc-footer__links a { font: 600 15px/1.3 var(--font-sans); color: #FFFFFF; text-decoration: none; }
.rc-footer__links a:hover { text-decoration: underline; }
.rc-footer__fine { font-size: 13px; line-height: 1.5; color: var(--footer-ink); }

/* ---------- Sticky call bar (phones) ---------- */
.rc-sticky {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
  display: flex; align-items: center; gap: 12px;
  padding: 10px max(16px, env(safe-area-inset-right, 0px)) calc(10px + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px));
  background: var(--paper); border-top: 1px solid var(--line); box-shadow: 0 -10px 24px -14px rgba(16,24,40,0.35);
}
.rc-sticky__text { display: grid; gap: 2px; min-width: 0; }
.rc-sticky__title { display: flex; align-items: center; gap: 8px; font: 700 15px/1.2 var(--font-sans); color: var(--ink); }
.rc-sticky__sub { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 13px; color: var(--ink-3); }
.rc-sticky .rc-btn { margin-left: auto; min-height: 48px; padding: 0 22px; }
.rc-sticky--static { position: static; }
@media (min-width: 900px) { .rc-sticky:not(.rc-sticky--static) { display: none; } }
@media (max-width: 899px) { .has-sticky { padding-bottom: 84px; } }

/* ---------- Quote check (Pass 8): upload a quote, check the lines we read, get it back marked up ---------- */
.rc-btn--sm { min-height: 40px; padding: 0 16px; font-size: 14px; }
.rc-btn--sm .rc-i { width: 16px; height: 16px; }
.rc-linkbtn { display: inline-flex; align-items: center; gap: 6px; padding: 6px 2px; border: 0; background: none; font: 700 14px/1.3 var(--font-sans); color: var(--ink); text-decoration: underline; text-decoration-color: var(--line-strong); text-underline-offset: 3px; cursor: pointer; }
.rc-linkbtn:hover { text-decoration-color: currentColor; }
.rc-linkbtn .rc-i { width: 16px; height: 16px; }
.rc-linkbtn--alarm { color: var(--alarm); text-decoration-color: var(--alarm-line); }
.rc-select { appearance: none; -webkit-appearance: none; padding-right: 38px; text-overflow: ellipsis; cursor: pointer;
  background: var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2345454A' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 12px center / 16px no-repeat; }
.rc-check__more { margin-top: 2px; font-size: 14px; }

.rc-qc { container: qc / inline-size; padding: 8px; border-radius: var(--radius-lg); background: var(--primary); box-shadow: var(--shadow-2); scroll-margin-top: 24px; }
.rc-qc__body { border-radius: 10px; background: var(--paper); overflow: hidden; }
.rc-qc__step { min-width: 0; }
@media (max-width: 640px) { .rc-sec--panel > .rc-qc { margin-inline: -12px; } }

/* Upload */
.rc-qc__start { display: grid; grid-template-columns: minmax(0, 1fr); }
.rc-qc__upload { display: grid; gap: 14px; align-content: start; padding: 24px; min-width: 0; }
.rc-qc__example { display: grid; gap: 12px; align-content: start; padding: 24px; min-width: 0; background: var(--tint); border-top: 1px solid var(--line); }
@container qc (min-width: 640px) {
  .rc-qc__start { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .rc-qc__example { border-top: 0; border-left: 1px solid var(--line); }
}
.rc-drop { position: relative; }
.rc-drop__input { position: absolute; width: 1px; height: 1px; margin: 0; padding: 0; opacity: 0; overflow: hidden; clip: rect(0 0 0 0); }
.rc-drop__zone { display: grid; justify-items: center; gap: 6px; padding: 26px 18px 24px; text-align: center; border: 2px dashed var(--control-border); border-radius: var(--radius-md); background: var(--paper); cursor: pointer; transition: border-color .15s, background-color .15s; }
.rc-drop__zone:hover { border-color: var(--ink); background: var(--tint); }
.rc-drop.is-over .rc-drop__zone { border-color: var(--ink); border-style: solid; background: var(--primary-soft); }
.rc-drop__input:focus-visible + .rc-drop__zone { outline: 3px solid var(--focus); outline-offset: 2px; }
.rc-drop__icon { width: 56px; height: 56px; margin-bottom: 4px; border-radius: 50%; display: grid; place-items: center; background: var(--primary-soft); color: var(--ink); }
.rc-drop__icon .rc-i { width: 26px; height: 26px; }
.rc-drop__title { font: 700 18px/1.3 var(--font-sans); color: var(--ink); outline: none; }
.rc-drop__touch { display: none; }
@media (hover: none) { .rc-drop__mouse { display: none; } .rc-drop__touch { display: inline; } }
.rc-drop__hint { max-width: 24em; text-wrap: balance; font-size: 14px; line-height: 1.4; color: var(--ink-3); }
.rc-drop__btn { margin-top: 10px; pointer-events: none; }
.rc-qc__error { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 10px; padding: 12px 14px; border: 1px solid var(--alarm-line); border-radius: var(--radius-md); background: var(--alarm-soft); font: 600 14px/1.45 var(--font-sans); color: var(--alarm); outline: none; }
.rc-qc__error::before { content: ""; width: 18px; height: 18px; margin-top: 1px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C21A0E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3'/%3E%3Cpath d='M12 9v4'/%3E%3Cpath d='M12 17h.01'/%3E%3C/svg%3E") center / contain no-repeat; }
.rc-qc__alt { font-size: 14px; line-height: 1.4; color: var(--ink-2); text-align: center; }
.rc-qc__promises { display: grid; gap: 10px; padding-top: 16px; border-top: 1px solid var(--line); }
.rc-qc__promises li { text-wrap: pretty; display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 10px; font-size: 14px; line-height: 1.4; color: var(--ink-2); }
.rc-qc__promises .rc-i { width: 18px; height: 18px; margin-top: 1px; color: var(--ink); }
.rc-qc__nojs { font-size: 14px; line-height: 1.4; color: var(--ink-3); }
.rc-qc.is-live .rc-qc__nojs, .rc-qc:not(.is-live) .rc-drop, .rc-qc:not(.is-live) .rc-qc__alt { display: none; }
.rc-qc__example .rc-invoice { padding: 2px 16px 8px; font-size: 14px; box-shadow: var(--shadow-1); }
.rc-qc__example .rc-invoice__head { min-height: 40px; font-size: 11px; }
.rc-qc__example .rc-invoice__line { min-height: 40px; }
.rc-qc__example .rc-invoice__line--note { min-height: 30px; }
.rc-qc__example .rc-invoice__note { font-size: 22px; }
.rc-qc__example .rc-invoice__line--total { min-height: 50px; }
.rc-qc__example .rc-invoice__line--total .rc-invoice__amount { font-size: 15px; }

/* Reading */
.rc-qc__reading { display: grid; gap: 18px; justify-items: start; max-width: 520px; margin-inline: auto; padding: 36px 24px 28px; }
.rc-qc__reading .rc-h3 { outline: none; }
.rc-qc__files { display: flex; flex-wrap: wrap; gap: 8px; width: 100%; min-width: 0; }
.rc-qc__file { display: inline-flex; align-items: center; gap: 8px; max-width: 100%; min-width: 0; padding: 8px 14px; border: 1px solid var(--line); border-radius: var(--radius-pill); background: var(--tint); font: 600 13.5px/1.2 var(--font-sans); color: var(--ink); }
.rc-qc__file .rc-i { width: 16px; height: 16px; }
.rc-qc__fname { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rc-qc__fsize { flex: none; font-weight: 500; color: var(--ink-3); }
.rc-qc__progress { display: grid; gap: 14px; width: 100%; }
.rc-qc__progress li { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 12px; align-items: center; font: 500 15px/1.35 var(--font-sans); color: var(--ink-3); }
.rc-qc__progress li.is-active { font-weight: 700; color: var(--ink); }
.rc-qc__progress li.is-done { color: var(--ink); }
.rc-qc__dot { width: 24px; height: 24px; border: 2px solid var(--line-strong); border-radius: 50%; display: grid; place-items: center; color: transparent; }
.rc-qc__dot .rc-i { width: 14px; height: 14px; stroke-width: 3; }
.is-active > .rc-qc__dot { border-top-color: var(--ink); animation: rc-spin .8s linear infinite; }
.is-done > .rc-qc__dot { border-color: var(--fair); background: var(--fair); color: #FFFFFF; }
@keyframes rc-spin { to { transform: rotate(360deg); } }
.rc-qc__ts:empty { display: none; }

/* Review */
.rc-qc__review { display: grid; gap: 18px; padding: 24px; }
.rc-qc__steptitle { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; align-items: start; }
.rc-qc__steptitle .rc-h3 { outline: none; }
.rc-qc__steptitle p { margin-top: 4px; font-size: 15px; line-height: 1.45; color: var(--ink-2); }
.rc-qc__badge { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--fair-soft); color: var(--fair); }
.rc-qc__badge .rc-i { width: 22px; height: 22px; }
.rc-qc__notice { padding: 10px 14px; border-radius: var(--radius-md); background: var(--primary-soft); font-size: 14px; line-height: 1.45; color: var(--ink); }
.rc-qc__job { min-width: 0; margin: 0; padding: 16px; border: 0; border-radius: var(--radius-md); background: var(--tint); }
.rc-qc__job > legend { float: left; width: 100%; margin-bottom: 14px; padding: 0; font: 700 12px/1.2 var(--font-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); }
.rc-qc__jobgrid { clear: both; display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
@container qc (min-width: 440px) { .rc-qc__jobgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rc-qc__catfield { grid-column: 1 / -1; } }
@container qc (min-width: 680px) { .rc-qc__jobgrid { grid-template-columns: minmax(0, .8fr) minmax(0, .8fr) minmax(0, 1.4fr); } .rc-qc__catfield { grid-column: auto; } }
.rc-qc__catfield { display: block; margin: 0; padding: 0; border: 0; }
.rc-qc__catfield > legend { margin-bottom: 8px; padding: 0; font: 700 15px/1.3 var(--font-sans); color: var(--ink); }
.rc-qc__catfield .rc-field__hint { display: block; margin-top: 6px; }
.rc-qc__joberror { margin-top: 12px; font: 600 14px/1.4 var(--font-sans); color: var(--alarm); outline: none; }
.rc-seg { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1.5px solid var(--control-border); border-radius: var(--radius-sm); background: var(--paper); overflow: hidden; }
.rc-seg .rc-seg__opt { position: relative; display: block; min-width: 0; font: inherit; }
.rc-seg__opt + .rc-seg__opt { border-left: 1.5px solid var(--control-border); }
.rc-seg__opt input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.rc-seg__opt span { display: grid; place-items: center; min-height: 43px; padding: 0 6px; text-align: center; font: 600 14.5px/1.2 var(--font-sans); color: var(--ink-2); transition: background-color .15s; }
.rc-seg__opt:hover input:not(:checked) + span { background: var(--tint); }
.rc-seg__opt input:checked + span { background: var(--primary); color: var(--on-primary); }
.rc-seg__opt input:focus-visible + span { outline: 3px solid var(--focus); outline-offset: -4px; }

.rc-qc__lines { border-top: 2px solid var(--ink); }
.rc-qline { border-bottom: 1px solid var(--line); }
.rc-qline__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "desc amount" "meta edit"; gap: 6px 12px; align-items: center; padding: 12px 0; }
.rc-qline__desc { grid-area: desc; font: 600 15px/1.35 var(--font-sans); color: var(--ink); overflow-wrap: anywhere; }
.rc-qline__amount { grid-area: amount; justify-self: end; font: 700 15px/1.35 var(--font-sans); font-variant-numeric: tabular-nums; color: var(--ink); white-space: nowrap; }
.rc-qline__meta { grid-area: meta; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; min-width: 0; }
.rc-qline__math { font-size: 13px; line-height: 1.35; font-variant-numeric: tabular-nums; color: var(--ink-3); }
.rc-qline__kind { display: inline-flex; padding: 2px 9px; border-radius: var(--radius-pill); background: var(--tint-2); font: 600 12px/1.45 var(--font-sans); color: var(--ink-2); white-space: nowrap; }
.rc-qline__kind--muted { background: transparent; box-shadow: inset 0 0 0 1px var(--line-strong); color: var(--ink-3); }
.rc-qline__edit { grid-area: edit; justify-self: end; display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 14px; border: 1px solid var(--line-strong); border-radius: var(--radius-pill); background: var(--paper); font: 700 13px/1 var(--font-sans); color: var(--ink); cursor: pointer; }
.rc-qline__edit:hover { border-color: var(--ink); }
.rc-qline__edit .rc-i { width: 14px; height: 14px; }
.rc-qline__edit[aria-expanded="true"] .rc-i { display: none; }
.rc-qline__edit[aria-expanded="true"] { background: var(--ink); border-color: var(--ink); color: var(--on-primary); }
.rc-qline.is-open { margin-inline: -12px; padding-inline: 12px; border-bottom-color: transparent; border-radius: var(--radius-md); background: var(--tint); }
.rc-qline.is-open + .rc-qline { border-top: 1px solid var(--line); }
.rc-qline__form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 2px 0 16px; }
.rc-qline__form .rc-field { gap: 6px; }
.rc-qline__form .rc-field label { font-size: 13px; }
.rc-qline__wide { grid-column: 1 / -1; }
.rc-qline__textarea { display: block; min-height: 46px; padding-block: 12px; line-height: 1.35; resize: none; overflow: hidden; }
@container qc (min-width: 600px) { .rc-qline__form { grid-template-columns: repeat(4, minmax(0, 1fr)); } .rc-qline__wide { grid-column: span 2; } .rc-qline__wide:first-child { grid-column: 1 / -1; } }
.rc-qline__formactions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.rc-qc__add { justify-self: start; }
.rc-qc__sums { display: grid; gap: 6px; margin: 0; padding-top: 14px; border-top: 1px solid var(--line-strong); }
.rc-qc__sums div { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.rc-qc__sums dt { font-size: 14px; color: var(--ink-2); }
.rc-qc__sums dd { margin: 0; font: 700 15px/1.4 var(--font-sans); font-variant-numeric: tabular-nums; color: var(--ink); }
.rc-qc__sum--quote dd { font-weight: 800; }
.rc-qc__mismatch { padding: 10px 14px; border-radius: var(--radius-md); background: var(--alarm-soft); font: 600 14px/1.45 var(--font-sans); color: var(--alarm); }
.rc-qc__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.rc-qc__fine { font-size: 12.5px; line-height: 1.5; color: var(--ink-3); }

/* Result */
.rc-qc__result { display: grid; gap: 22px; padding: 24px; }
.rc-qc__verdict { padding: 20px 20px 4px; border-radius: var(--radius-md); background: var(--tint-2); }
.rc-qc__verdict--high { background: var(--alarm-soft); }
.rc-qc__verdict--fair { background: var(--fair-soft); }
.rc-qc__verdicthead { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; align-items: start; }
.rc-qc__verdicthead .rc-stamp { margin-top: 3px; }
.rc-qc__headline { font: 700 clamp(20px, 2.2vw, 24px)/1.2 var(--font-display); text-wrap: balance; color: var(--ink); outline: none; }
.rc-qc__context { margin-top: 6px; font-size: 15px; line-height: 1.5; color: var(--ink-2); }
.rc-qc__verdict .rc-meter { padding: 30px 6px 24px; }
.rc-meter__you.is-start span, .rc-meter__fair.is-start span { left: 0; transform: none; }
.rc-meter__you.is-end span, .rc-meter__fair.is-end span { left: auto; right: 0; transform: none; }
.rc-meter__you span { white-space: nowrap; }
.rc-qc__invoice { padding-inline: 20px; }
.rc-qinv__line { padding-block: 8px; }
.rc-qinv__text { display: grid; gap: 2px; min-width: 0; }
.rc-qinv__desc { overflow-wrap: anywhere; }
.rc-qinv__text small { font: 500 12.5px/1.35 var(--font-sans); color: var(--ink-3); }
.rc-qinv__line--skip .rc-invoice__amount { color: var(--ink-3); }
.rc-qinv__mark { flex: none; width: 20px; display: grid; place-items: center; color: var(--fair); }
.rc-qinv__tick { width: 20px; height: 20px; }
.rc-qc__invoice .rc-invoice__line--note { padding-right: 28px; }
.rc-qc__asks { display: grid; gap: 12px; }
.rc-qc__asks .rc-h3 { display: flex; align-items: center; gap: 8px; }
.rc-qc__asks .rc-h3 .rc-i { width: 20px; height: 20px; }
.rc-qc__asks ol { display: grid; gap: 10px; counter-reset: ask; }
.rc-qc__asks li { counter-increment: ask; display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 3px 12px; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); }
.rc-qc__asks li::before { content: counter(ask); grid-row: 1 / span 2; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--ink); color: var(--on-primary); font: 700 13px/1 var(--font-sans); }
.rc-qc__asks strong { font: 700 15px/1.35 var(--font-sans); color: var(--ink); overflow-wrap: anywhere; }
.rc-qc__asks li span { font-size: 14px; line-height: 1.5; color: var(--ink-2); }
.rc-qc__skipped { font-size: 13.5px; line-height: 1.5; color: var(--ink-3); }

@container qc (max-width: 479px) {
  .rc-qc__upload, .rc-qc__example, .rc-qc__review, .rc-qc__result { padding: 20px 14px; }
  .rc-qc__reading { padding: 28px 14px 22px; }
  .rc-qc__job { padding: 14px; }
  .rc-qc__actions .rc-btn { width: 100%; }
  .rc-qc__actions { justify-content: center; }
  .rc-qc__verdict { padding: 16px 14px 2px; }
  .rc-qc__verdicthead { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .rc-qc__verdicthead .rc-stamp { justify-self: start; }
  .rc-qc__invoice { padding-inline: 12px; }
  .rc-qc__example .rc-invoice { padding-inline: 12px; }
  .rc-qinv__line { display: grid; grid-template-columns: minmax(0, 1fr) auto 20px; grid-template-areas: "desc desc desc" "sub amount mark"; gap: 2px 8px; align-items: center; }
  .rc-qinv__text { display: contents; }
  .rc-qinv__desc { grid-area: desc; }
  .rc-qinv__text small { grid-area: sub; }
  .rc-qinv__line .rc-invoice__leader { display: none; }
  .rc-qinv__line .rc-invoice__amount { grid-area: amount; justify-self: end; }
  .rc-qinv__line .rc-qinv__mark { grid-area: mark; }
  .rc-qinv__line .rc-invoice__circle { top: -7px; height: calc(100% + 14px); }
  .rc-qinv__line { row-gap: 4px; }
  .rc-qc__invoice .rc-invoice__note { font-size: 22px; }
}
/* A call box inside the checker stacks earlier than one in the article. */
@container qc (max-width: 640px) {
  .rc-qc .rc-call { grid-template-columns: auto minmax(0, 1fr); gap: 14px 16px; padding: 20px; }
  .rc-qc .rc-call__badge { width: 46px; height: 46px; align-self: start; }
  .rc-qc .rc-call__badge .rc-i { width: 22px; height: 22px; }
  .rc-qc .rc-call__actions { grid-column: 1 / -1; justify-items: stretch; }
  .rc-qc .rc-call__actions .rc-btn { width: 100%; }
  .rc-qc .rc-call__number { justify-self: center; }
}
@container qc (max-width: 400px) {
  .rc-qc .rc-call { grid-template-columns: minmax(0, 1fr); padding: 18px 16px; }
  .rc-qc .rc-call__actions .rc-btn { white-space: normal; padding-inline: 16px; text-align: center; }
}

/* Drying vs. repairs split (Pass 9, option A): calculator result and cost summary */
.rc-parts { display: grid; gap: 10px; margin: 6px 0 4px; }
.rc-parts__bar { display: flex; height: 12px; border-radius: var(--radius-pill); overflow: hidden; background: var(--line); }
.rc-parts__dry, .rc-parts__sw--dry { background: var(--ink); }
.rc-parts__rep, .rc-parts__sw--rep { background: var(--band-fill); box-shadow: inset 0 0 0 1.5px var(--ink); }
.rc-parts__rep { border-radius: 0 var(--radius-pill) var(--radius-pill) 0; }
.rc-parts__dry, .rc-parts__rep { transition: width .25s ease; }
.rc-parts__row { display: grid; grid-template-columns: 12px minmax(0, 1fr) auto; column-gap: 10px; row-gap: 1px; align-items: start; }
.rc-parts__sw { width: 12px; height: 12px; margin-top: 3px; border-radius: 3px; }
.rc-parts__name { font: 600 14.5px/1.3 var(--font-sans); color: var(--ink); min-width: 0; }
.rc-parts__amt { font: 700 14.5px/1.3 var(--font-sans); font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--ink); }
.rc-parts__amt .rc-dash { margin-inline: .04em; }
.rc-parts__sub { grid-column: 2 / 4; grid-row: 2; font: 400 12.5px/1.35 var(--font-sans); color: var(--ink-3); }
.rc-parts--rows { gap: 0; margin: 0; border-top: 1px solid var(--line); }
.rc-parts--rows .rc-parts__row { grid-template-columns: minmax(0, 1fr) auto; padding: 9px 0; border-bottom: 1px solid var(--line); }
/* In a narrow result panel the amount drops under its label, so both rows read the same way */
.rc-tool__result { container-type: inline-size; }
@container (max-width: 380px) {
  .rc-parts__row { grid-template-columns: 12px minmax(0, 1fr); }
  .rc-parts__amt { grid-column: 2; grid-row: 2; }
  .rc-parts__sub { grid-column: 2; grid-row: 3; }
}
@media (prefers-reduced-motion: reduce) { .rc-parts__dry, .rc-parts__rep { transition: none; } }
.rc-breakdown__table tbody + tbody[data-est-lines], .rc-breakdown__table tbody + tbody[data-est-rlines] { border-top: 0; }
.rc-breakdown__group th { padding: 14px 0 6px; font: 800 11.5px/1.2 var(--font-sans); letter-spacing: .06em; text-transform: uppercase; color: var(--ink-3); }
.rc-breakdown__sub { border-top: 1.5px solid var(--line-strong) !important; }
.rc-breakdown__sub th, .rc-breakdown__sub td { font-weight: 800; }
.rc-scope { display: grid; gap: 6px; margin: 0; padding: 0; border: 0; min-width: 0; }
.rc-scope__q { padding: 0; margin-bottom: 6px; font: 600 13px/1.3 var(--font-sans); color: var(--ink-2); }
.rc-pills--sm .rc-pill span { min-height: 34px; padding: 0 12px; font-size: 13.5px; }
/* Situation rows (Pass 9): the case each range prices, and rows without a price yet */
.rc-sit__name small { display: block; margin-top: 2px; font: 400 13px/1.35 var(--font-sans); color: var(--ink-3); }
.rc-sit__value--none { font: 500 13px/1.3 var(--font-sans); color: var(--ink-3); }
@media (max-width: 640px) {
  .rc-sit--case .rc-sit__pin, .rc-sit--case .rc-sit__icon { grid-row: 1 / span 3; align-self: start; }
  .rc-sit--case .rc-sit__name { grid-column: 3 / -1; grid-row: 1; }
  .rc-sit--case .rc-sit__value { grid-column: 3 / -1; grid-row: 2; text-align: left; }
  .rc-sit--case .rc-sit__plot { grid-column: 3 / -1; grid-row: 3; }
}
/* The summary's drying/repairs rows: amounts drop under the labels in a very narrow card */
.rc-summary { container-type: inline-size; }
@container (max-width: 290px) {
  .rc-parts--rows .rc-parts__row { grid-template-columns: minmax(0, 1fr); }
  .rc-parts--rows .rc-parts__amt { grid-column: 1; grid-row: 2; }
}

/* Pass 10: situation rows on supporting pages (no diagram, so no pins); rows that price a variant instead of linking */
.rc-sit--static:hover { background: none; }
@media (max-width: 640px) {
  .rc-sitlist--plain .rc-sit--case .rc-sit__icon { grid-column: 1; grid-row: 1 / span 3; align-self: start; }
  .rc-sitlist--plain .rc-sit--case .rc-sit__name { grid-column: 2 / -1; grid-row: 1; }
  .rc-sitlist--plain .rc-sit--case .rc-sit__value { grid-column: 2 / -1; grid-row: 2; text-align: left; }
  .rc-sitlist--plain .rc-sit--case .rc-sit__plot { grid-column: 2 / -1; grid-row: 3; }
}

/* Pass 10: tables that stack into one card per row on phones (glossary examples), so the last column never scrolls out of view */
@media (max-width: 640px) {
  .rc-table--stack thead { display: none; }
  .rc-table--stack, .rc-table--stack tbody, .rc-table--stack tfoot, .rc-table--stack tr, .rc-table--stack td { display: block; width: 100%; }
  .rc-table--stack caption { display: block; padding: 16px 16px 10px; }
  .rc-table--stack tbody tr { padding: 14px 16px; border-top: 1px solid var(--line); }
  .rc-table--stack td { padding: 0; border: 0; }
  .rc-table--stack td.num { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-top: 6px; white-space: normal; text-align: right; }
  .rc-table--stack td.num::before { content: attr(data-label); font: 500 13px/1.3 var(--font-sans); color: var(--ink-3); text-align: left; }
  .rc-table--stack tfoot tr { display: flex; justify-content: space-between; gap: 12px; padding: 10px 16px; background: var(--tint); }
  .rc-table--stack tfoot tr:last-child { border-top: 2px solid var(--ink); }
  .rc-table--stack tfoot td { width: auto; padding: 0; background: none; border: 0; }
  .rc-table--stack tfoot td.num { padding: 0; display: block; }
  .rc-table--stack tfoot td.num::before { content: none; }
}

/* Pass 10, batch 3: data rows (flood claims) with a median tick; text tables that stack into one card per row on phones */
.rc-bars__mid { position: absolute; top: -3px; width: 5px; height: 18px; margin-left: -2.5px; border-radius: 2px; background: var(--paper); border: 1.5px solid var(--ink); box-sizing: border-box; }
@media (min-width: 641px) { .rc-sitlist--data .rc-sit { grid-template-columns: 64px minmax(0, 1.3fr) minmax(0, 1fr) 170px 18px; } }
.rc-table--text td { font-size: 15px; line-height: 1.45; }
.rc-table--text .rc-td-text { color: var(--ink-2); }
@media (max-width: 640px) {
  .rc-table--stack td.rc-td-text { display: grid; grid-template-columns: minmax(0, 38%) minmax(0, 1fr); gap: 12px; padding-top: 8px; }
  .rc-table--stack td.rc-td-text::before { content: attr(data-label); font: 500 13px/1.4 var(--font-sans); color: var(--ink-3); }
}
/* Stacked payout bar: an amount hides when its segment is too narrow to show it; the legend below always lists it */
.rc-stackchart__seg { container-type: inline-size; }
@container (max-width: 58px) { .rc-stackchart__amt { visibility: hidden; } }
.rc-table--fixed { table-layout: fixed; }
@media (max-width: 640px) { .rc-table--stack.rc-table--fixed { table-layout: auto; } }

/* Pass 10, batch 4: model-priced sample estimate (Xactimate page), codes and columns, the glossary's A-Z index,
   six situation tiles and the Quote Checker block on the homepage */
.rc-tr-group th { padding: 16px 20px 8px; border-bottom: 1px solid var(--line); background: var(--tint); font: 700 12px/1.2 var(--font-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-2); }
.rc-table tbody tr.rc-tr-group:hover { background: none; }
.rc-x { display: none; }
@media (max-width: 640px) {
  .rc-table--estimate tbody tr.rc-tr-group { padding: 0; border-top: 1px solid var(--line); }
  .rc-table--estimate tr.rc-tr-group th { display: block; padding: 14px 16px 8px; border-bottom: 0; white-space: normal; }
  .rc-table--estimate tbody tr:not(.rc-tr-group) { display: grid; grid-template-columns: auto auto minmax(0, 1fr); column-gap: 6px; align-items: baseline; padding: 12px 16px; }
  .rc-table--estimate tbody td:first-child { grid-column: 1 / -1; }
  .rc-table--estimate td.num { display: block; padding-top: 6px; white-space: nowrap; }
  .rc-table--estimate td.num::before { content: none; }
  .rc-table--estimate tbody td:nth-child(2), .rc-table--estimate tbody td:nth-child(3) { font-weight: 500; color: var(--ink-2); text-align: left; }
  .rc-table--estimate tbody td:nth-child(4) { text-align: right; }
  .rc-table--estimate .rc-x { display: inline; }
}

.rc-codes { display: grid; gap: 12px; }
.rc-codes__card { padding: 18px 20px 20px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper); }
.rc-codes__title { margin: 0 0 14px; font: 700 16px/1.3 var(--font-sans); color: var(--ink); }
.rc-codes dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 28px; margin: 0; }
.rc-codes dl > div { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 12px; align-items: start; }
.rc-codes dt { padding: 4px 6px; border-radius: var(--radius-sm); background: var(--tint-2); text-align: center; white-space: nowrap; font: 700 14px/1.3 var(--font-sans); color: var(--ink); }
.rc-codes dd { margin: 0; padding-top: 3px; font-size: 15px; line-height: 1.4; color: var(--ink-2); }
.rc-codes__note { margin: 14px 0 0; font-size: 14px; line-height: 1.45; color: var(--ink-3); }
@media (max-width: 640px) { .rc-codes__card { padding: 16px; } .rc-codes dl { grid-template-columns: minmax(0, 1fr); } .rc-codes dl > div { grid-template-columns: 68px minmax(0, 1fr); } }

@media (min-width: 901px) { .rc-picker__grid--6 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.rc-homeqc { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; align-items: start; }
.rc-homeqc__steps { display: grid; gap: 24px; align-content: start; }
.rc-homeqc__list { display: grid; gap: 18px; margin: 0; padding: 0; list-style: none; }
.rc-homeqc__list li { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 14px; align-items: start; font-size: 16px; line-height: 1.5; color: var(--ink-2); }
.rc-homeqc__list strong { font-weight: 700; color: var(--ink); }
.rc-homeqc__n { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--primary); color: var(--on-primary); font: 700 14px/1 var(--font-sans); }
.rc-homeqc__sample { display: grid; gap: 12px; padding: 20px; border-radius: var(--radius-lg); background: var(--tint); }
@media (max-width: 900px) { .rc-homeqc { grid-template-columns: minmax(0, 1fr); gap: 24px; } }
@media (max-width: 640px) { .rc-homeqc__sample { padding: 14px; } }

.rc-az__nav { display: flex; flex-wrap: wrap; gap: 6px; }
.rc-az__nav a, .rc-az__nav span { display: grid; place-items: center; width: 36px; height: 36px; border-radius: var(--radius-sm); font: 700 15px/1 var(--font-sans); }
.rc-az__nav a { border: 1px solid var(--control-border); background: var(--paper); color: var(--ink); text-decoration: none; transition: background-color .15s; }
.rc-az__nav a:hover { background: var(--tint); color: var(--ink); }
.rc-az__nav span { color: var(--line-strong); }
.rc-az__group { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 8px 24px; margin-top: 32px; padding-top: 28px; border-top: 1px solid var(--line); scroll-margin-top: 16px; }
.rc-az__letter { margin: 0; font: 800 44px/1 var(--font-display); color: var(--ink); }
.rc-az__terms { display: grid; gap: 28px; margin: 0; }
.rc-az__term { scroll-margin-top: 16px; border-radius: var(--radius-sm); }
.rc-az__term:target { background: var(--primary-soft); box-shadow: 0 0 0 10px var(--primary-soft); }
.rc-az__term dt { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.rc-az__name { font: 700 21px/1.3 var(--font-display); color: var(--ink); }
.rc-az__tag { padding: 4px 8px; border-radius: var(--radius-pill); background: var(--tint-2); font: 700 11px/1.2 var(--font-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3); }
.rc-az__term dd { margin: 6px 0 0; }
.rc-az__term dd > p:first-child { max-width: var(--layout-measure); margin: 0; font-size: 17px; line-height: 1.6; color: var(--ink-2); }
.rc-az__meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 20px; margin: 8px 0 0; font-size: 14px; line-height: 1.45; }
.rc-az__go { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--accent); text-decoration: none; }
.rc-az__go .rc-i { width: 16px; height: 16px; }
.rc-az__src, .rc-az__src a { color: var(--ink-3); }
@media (max-width: 640px) {
  .rc-az__group { grid-template-columns: minmax(0, 1fr); gap: 12px; margin-top: 24px; padding-top: 20px; }
  .rc-az__letter { font-size: 34px; }
  .rc-az__name { font-size: 19px; }
  .rc-az__term dd > p:first-child { font-size: 16px; }
  .rc-az__nav a, .rc-az__nav span { width: 34px; height: 34px; }
}
/* A long short-answer chip wraps inside a narrow guide card (320px phones) instead of running past its edge */
.rc-guide__body .rc-status { max-width: 100%; white-space: normal; }
/* The smallest phones (under 380px): picker tiles become rows, photo on the left, so a range like $11,286–$103,017 stays on one line */
.rc-picker__range { white-space: nowrap; }
@media (max-width: 379px) {
  .rc-picker__grid { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .rc-picker__tile--media { display: grid; grid-template-columns: 104px minmax(0, 1fr); align-items: stretch; }
  .rc-picker__tile--media .rc-tile-media { height: 100%; min-height: 104px; aspect-ratio: auto; border-bottom: 0; border-right: 1px solid var(--line); }
  .rc-picker__tile--media .rc-tile-body { padding: 10px 12px 12px; }
}
@media (max-width: 640px) { .rc-homeqc__flags { display: none; } }
.rc-codes__card--wide dl > div { grid-template-columns: 112px minmax(0, 1fr); }
@media (max-width: 640px) { .rc-codes__card--wide dl > div { grid-template-columns: 104px minmax(0, 1fr); } }

/* Pass 11: trust pages (About, Contact, How we make money, Methodology, Editorial standards, Privacy, Terms) */
.rc-article--doc { --space-section: 56px; }
@media (max-width: 640px) { .rc-article--doc { --space-section: 44px; } }
.rc-hero__text--doc { max-width: 780px; }
.rc-doc__effective { display: flex; align-items: center; gap: 8px; margin-top: 4px; font-size: 15px; line-height: 1.4; color: var(--ink-3); }
.rc-doc__effective .rc-i { width: 16px; height: 16px; }
.rc-doc__sec { gap: 16px; }
.rc-doc__h2 { font-size: clamp(24px, 2.6vw, 30px); }
.rc-doc__h3 { margin-top: 6px; }
.rc-doc__p { max-width: var(--layout-measure); font-size: 17px; line-height: 1.7; color: var(--ink-2); }
.rc-doc__p a, .rc-doc__list a, .rc-doc__summary a, .rc-doc__railnote a { color: var(--ink); }
.rc-doc__p strong, .rc-doc__list strong { color: var(--ink); }
.rc-doc__list { display: grid; gap: 10px; max-width: var(--layout-measure); margin: 0; padding: 0; list-style: none; counter-reset: rc-doc; }
.rc-doc__list li { position: relative; padding-left: 24px; font-size: 17px; line-height: 1.65; color: var(--ink-2); }
.rc-doc__list li::before { content: ""; position: absolute; left: 4px; top: .7em; width: 7px; height: 7px; border-radius: 2px; background: var(--ink-3); }
.rc-doc__list--num li { padding-left: 34px; counter-increment: rc-doc; }
.rc-doc__list--num li::before { content: counter(rc-doc); left: 0; top: .2em; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: var(--primary); color: var(--on-primary); font: 700 13px/24px var(--font-sans); text-align: center; }
.rc-doc__summary { display: grid; gap: 14px; padding: 24px; border-radius: var(--radius-lg); background: var(--tint); }
.rc-doc__summary ul { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.rc-doc__summary li { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 12px; font-size: 16px; line-height: 1.55; color: var(--ink); }
.rc-doc__summary li .rc-i { width: 20px; height: 20px; margin-top: 2px; color: var(--fair); }
.rc-doc__railnote { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 10px; padding: 16px 18px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); font-size: 14px; line-height: 1.5; color: var(--ink-2); }
.rc-doc__railnote .rc-i { width: 18px; height: 18px; margin-top: 2px; color: var(--ink-3); }
.rc-table--doc td:first-child { font-weight: 600; }
.rc-table--doc td a { color: var(--ink); }
@media (max-width: 640px) { .rc-doc__summary { padding: 18px 16px; } .rc-doc__p, .rc-doc__list li { font-size: 16px; } }

/* ---------- Pass 11: payment label beside every call button (links to How we make money), upload assent ---------- */
.rc-call__how { font-size: 13px; line-height: 1.3; color: var(--ink-3); text-decoration: underline; text-underline-offset: 2px; text-decoration-color: var(--line); }
.rc-call__how:hover, .rc-call__how:focus-visible { color: var(--ink-2); text-decoration-color: currentColor; }
.rc-call__how, .rc-call--rail .rc-call__how { justify-self: center; }
.rc-sticky__sponsored { color: var(--ink-3); text-decoration: none; }
.rc-sticky__sponsored:hover, .rc-sticky__sponsored:focus-visible { color: var(--ink-2); text-decoration: underline; }
.rc-qc__assent { margin-top: 10px; }
.rc-qc__assent a { color: var(--ink-2); text-decoration: underline; text-underline-offset: 2px; }
