/* ============================================================
   Robot Autonomy Library — concept pages (v4, approved direction)
   White reference document: plain-answer header with provenance,
   a custom explanatory figure, sticky contents rail, print-register
   tables, the canonical Ladder Strip, Q&A, and an evidence row of
   real robots. Color belongs to data (autonomy blues) and to
   attention (gold, inside figures). No cards, no cream bands.
   Loaded only on library pages (see concepts.php enqueue).
   ============================================================ */

.rv-cp {
    max-width: 1080px;
    margin: 0 auto;
    padding: 3rem 1.5rem 5rem;
    color: var(--rv-text-primary);
}

:where(.wp-site-blocks) > .rv-concept-page,
.rv-concept-page,
.rv-concept-page > * { margin-block-start: 0 !important; }

/* ── Hero band (full-bleed, image-forward) ──────────────── */

.rv-cph {
    width: 100vw;
    max-width: none;
    margin: -3rem 0 3rem calc(50% - 50vw);
    border-bottom: 1px solid var(--rv-line);
}

.rv-cph__inner {
    max-width: 1160px;
    margin: 0 auto;
    padding: 5.5rem 1.5rem 5rem;
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);
    gap: 4.5rem;
    align-items: center;
}

.rv-cph__eyebrow { font-size: var(--rv-text-md); font-weight: 600; color: var(--rv-gold-on-light); margin: 0 0 1.6rem; }
.rv-cph__eyebrow a {
    color: inherit;
    text-decoration: none;
    display: inline-block;
    padding: 0.5rem 0.4rem;
    margin: -0.5rem -0.4rem;
}
.rv-cph__eyebrow a:hover { text-decoration: underline; }
.rv-cph__eyebrow span { margin: 0 0.55em; opacity: 0.55; }

.rv-cph__title {
    font-size: clamp(2.6rem, 5vw, 3.7rem);
    font-weight: 600;
    line-height: 1.12;
    letter-spacing: -0.022em;
    margin: 0 0 1.9rem;
    text-wrap: balance;
}

.rv-cph__answer {
    font-size: var(--rv-text-xl);
    line-height: 1.72;
    color: var(--rv-text-secondary);
    margin: 0 0 2.5rem;
    max-width: 50ch;
    text-wrap: pretty;
}
.rv-cph__answer a { color: var(--rv-brand-primary); font-weight: 600; text-decoration: none; }
.rv-cph__answer a:hover { text-decoration: underline; }

.rv-cph__ctas { display: flex; flex-wrap: wrap; gap: 1rem; }

.rv-cph__btn {
    display: inline-block;
    background: var(--rv-brand-fill);
    color: #fff !important;
    font-size: var(--rv-text-md);
    font-weight: 600;
    padding: 0.8rem 1.6rem;
    border-radius: 999px;
    text-decoration: none;
    transition: transform 0.16s ease, box-shadow 0.16s ease;
}
.rv-cph__btn:hover { transform: translateY(-1px); box-shadow: 0 8px 20px -8px rgba(15, 23, 42, 0.35); }
.rv-cph__btn--ghost {
    background: transparent;
    color: var(--rv-brand-primary) !important;
    border: 1.5px solid var(--rv-line);
}

.rv-cph__prov { font-size: var(--rv-text-md); color: var(--rv-ink-3); margin: 1.75rem 0 0; }
.rv-cph__prov span { margin: 0 0.6em; }

/* Stage: robots on a glow, floating live pills. */
.rv-cph__stage {
    position: relative;
    min-height: 400px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 1.75rem;
    padding-bottom: 1.5rem;
}

.rv-cph__glow {
    position: absolute;
    inset: 6% 2% 0;
    background: radial-gradient(closest-side, var(--rv-autonomy-2-bg), transparent 72%);
    border-radius: 50%;
}

.rv-cph__r {
    position: relative;
    width: auto;
    height: auto;
    object-fit: contain;
    mix-blend-mode: multiply;
}
.rv-cph__r--1 { max-height: 300px; max-width: 42%; z-index: 3; }
.rv-cph__r--2 { max-height: 220px; max-width: 29%; z-index: 2; }
.rv-cph__r--3 { max-height: 170px; max-width: 21%; z-index: 1; }

.rv-cph__pill {
    position: absolute;
    z-index: 4;
    display: flex;
    align-items: center;
    gap: 0.45rem;
    background: var(--rv-surface-primary);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05), 0 14px 32px -10px rgba(15, 23, 42, 0.18);
    border-radius: 999px;
    padding: 0.55rem 1.1rem;
    font-size: var(--rv-text-md);
    font-weight: 600;
    color: var(--rv-text-primary);
    white-space: nowrap;
}
.rv-cph__pill--range { top: 7%; left: 0; }
.rv-cph__pill--count { bottom: 8%; right: 0; }
.rv-cph__pill--count strong { font-size: var(--rv-text-xl); font-weight: 600; margin-right: 0.15rem; color: var(--rv-brand-primary); }

.rv-cph__dot { width: 11px; height: 11px; border-radius: 50%; flex: 0 0 auto; }
.rv-cph__dot.is-off { box-shadow: inset 0 0 0 1.5px var(--rv-line); }


/* ── The figure (print discipline: rules, not cards) ────── */

.rv-cp-fig {
    margin: 0 0 3rem;
    padding: 2rem 0 1.25rem;
    border-top: 2px solid var(--rv-text-primary);
    border-bottom: 1px solid var(--rv-line);
}

.rv-cp-fig__title { font-size: var(--rv-text-2xl); font-weight: 600; letter-spacing: -0.01em; margin: 0 0 1.5rem; }

.rv-cp-fig__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 2.75rem;
    align-items: center;
}

.rv-cp-fig__art { color: var(--rv-text-primary); }
.rv-cp-fig__art svg { width: 100%; height: auto; display: block; }

.rv-cp-fig__legend { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.95rem; }

.rv-cp-fig__item { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 0.8rem; align-items: start; }

.rv-cp-fig__key {
    width: 24px; height: 24px;
    border-radius: 50%;
    color: #fff;
    font-size: var(--rv-text-xs);
    font-weight: 700;
    display: flex; align-items: center; justify-content: center;
    margin-top: 1px;
}
.rv-cp-fig__key--gold { background: var(--rv-gold); }
.rv-cp-fig__key--blue { background: var(--rv-autonomy-3); }

.rv-cp-fig__itembody { display: flex; flex-direction: column; gap: 0.1rem; }
.rv-cp-fig__itembody strong { font-size: var(--rv-text-md); color: var(--rv-text-primary); }
.rv-cp-fig__itembody span { font-size: var(--rv-text-md); line-height: 1.5; color: var(--rv-text-secondary); }

.rv-cp-fig__cap {
    margin-top: 1.6rem;
    padding-top: 0.9rem;
    border-top: 1px solid var(--rv-line-soft);
    font-size: var(--rv-text-md);
    color: var(--rv-ink-3);
    max-width: 84ch;
    line-height: 1.6;
}
.rv-cp-fig__cap a { color: var(--rv-brand-primary); text-decoration: none; }
.rv-cp-fig__cap a:hover { text-decoration: underline; }

/* ── Contents rail + main ───────────────────────────────── */

.rv-cp-cols { display: grid; grid-template-columns: 185px minmax(0, 1fr); gap: 3.5rem; align-items: start; }

.rv-cp-rail { position: sticky; top: 96px; }
.rv-cp-rail__t { font-size: var(--rv-text-xs); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--rv-ink-3); margin-bottom: 0.7rem; }
.rv-cp-rail ol { list-style: none; margin: 0; padding: 0; }
.rv-cp-rail li { border-top: 1px solid var(--rv-line-soft); }
.rv-cp-rail li:last-child { border-bottom: 1px solid var(--rv-line-soft); }
.rv-cp-rail a {
    display: block;
    padding: 0.5rem 0.1rem;
    font-size: var(--rv-text-md);
    color: var(--rv-text-secondary);
    text-decoration: none;
}
.rv-cp-rail a:hover { color: var(--rv-brand-primary); }

.rv-cp-sec { margin-bottom: 2.9rem; max-width: 700px; }
.rv-cp-sec--wide { max-width: none; }

.rv-cp-h2 { font-size: var(--rv-text-2xl); font-weight: 600; letter-spacing: -0.012em; margin: 0 0 0.8rem; scroll-margin-top: 110px; }
.rv-cp-sec .rv-cp-h2::after { content: ""; display: block; width: 34px; height: 3px; background: var(--rv-gold); margin-top: 0.55rem; }

.rv-cp-p { font-size: var(--rv-text-base); line-height: 1.72; color: var(--rv-text-primary); margin: 0 0 1rem; max-width: 66ch; text-wrap: pretty; }
.rv-cp-p:last-child { margin-bottom: 0; }
.rv-cp-p a { color: var(--rv-brand-primary); font-weight: 600; text-decoration: none; }
.rv-cp-p a:hover { text-decoration: underline; }

.rv-cp-fignote { font-size: var(--rv-text-md); color: var(--rv-text-secondary); line-height: 1.6; margin: 1rem 0 0; max-width: 78ch; }
.rv-cp-fignote a { color: var(--rv-brand-primary); font-weight: 600; text-decoration: none; }
.rv-cp-fignote a:hover { text-decoration: underline; }

/* ── Tables (print register) ────────────────────────────── */

.rv-cp-tablewrap { overflow-x: auto; margin-top: 1.2rem; }

.rv-cp-table { width: 100%; border-collapse: collapse; font-size: var(--rv-text-md); }

.rv-cp-table thead th {
    text-align: left;
    font-size: var(--rv-text-xs);
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--rv-ink-3);
    padding: 0 0.9rem 0.5rem 0;
    border-bottom: 2px solid var(--rv-text-primary);
}

.rv-cp-table tbody th,
.rv-cp-table tbody td {
    text-align: left;
    vertical-align: top;
    padding: 0.8rem 0.9rem 0.8rem 0;
    border-bottom: 1px solid var(--rv-line-soft);
    line-height: 1.55;
    color: var(--rv-text-secondary);
}
.rv-cp-table tbody th { font-weight: 700; color: var(--rv-text-primary); width: 150px; }
.rv-cp-table tbody td a { color: var(--rv-brand-primary); font-weight: 600; text-decoration: none; }
.rv-cp-table tbody td a:hover { text-decoration: underline; }
.rv-cp-table tbody th a { color: var(--rv-brand-primary); text-decoration: none; }
.rv-cp-table tbody th a:hover { text-decoration: underline; }

/* Two-column registers (no thead) get a strong opening rule. */
.rv-cp-table:not(:has(thead)) { border-top: 2px solid var(--rv-text-primary); }

/* Row icons: the figure language carried into the tables. */
.rv-cp-table tbody th.has-ic { width: 225px; }
.rv-cp-table__ic {
    display: inline-flex;
    width: 40px; height: 40px;
    border-radius: 11px;
    background: var(--rv-surface-secondary);
    color: var(--rv-brand-primary);
    align-items: center;
    justify-content: center;
    margin-right: 0.75rem;
    vertical-align: middle;
}
.rv-cp-table tbody th.has-ic > span:not(.rv-cp-table__ic) { display: inline-block; width: calc(100% - 56px); vertical-align: middle; }

/* Column tone keys: same gold/blue vocabulary as the figures. */
.rv-cp-key {
    display: inline-block;
    width: 10px; height: 10px;
    border-radius: 50%;
    margin-right: 0.5rem;
    vertical-align: baseline;
}
.rv-cp-key--blue { background: var(--rv-autonomy-3); }
.rv-cp-key--gold { background: var(--rv-gold); }

.rv-cp-table--ledger tbody th { width: 42%; }

.rv-cp-table--cats td, .rv-cp-table--cats th { white-space: nowrap; }
.rv-cp-table--cats tbody th { width: auto; }
.rv-cp-table__go { text-align: right !important; }

/* Matrix + reading tables (data page) */
.rv-cp-table--matrix th, .rv-cp-table--matrix td { text-align: right; font-variant-numeric: tabular-nums; }
.rv-cp-table--matrix thead th:first-child, .rv-cp-table--matrix tbody th { text-align: left; }
.rv-cp-table--matrix abbr { text-decoration: none; }
.rv-cp-table__zero { color: var(--rv-ink-3); }
.rv-cp-table__total { font-weight: 700; color: var(--rv-text-primary) !important; }
.rv-cp-table__foot th, .rv-cp-table__foot td { border-top: 2px solid var(--rv-line); border-bottom: none; font-weight: 700; color: var(--rv-text-primary) !important; }

.rv-cp-table--reading tbody th { width: 260px; }
.rv-cp-stat { display: block; font-size: var(--rv-text-3xl); font-weight: 600; line-height: 1.08; letter-spacing: -0.01em; color: var(--rv-text-primary); margin-bottom: 0.25rem; }

/* ── Numbered list (checklists) ─────────────────────────── */

.rv-cp-list { list-style: none; margin: 1.2rem 0 0; padding: 0; border-top: 2px solid var(--rv-text-primary); }
@media (min-width: 901px) {
    .rv-cp-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 3rem; }
}

.rv-cp-list__item { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 0.9rem; padding: 0.9rem 0; border-bottom: 1px solid var(--rv-line-soft); }

.rv-cp-list__num { font-size: var(--rv-text-xl); font-weight: 600; font-style: italic; color: var(--rv-gold-on-light); line-height: 1.3; }

.rv-cp-list__body { display: flex; flex-direction: column; gap: 0.15rem; }
.rv-cp-list__body strong { font-size: var(--rv-text-base); color: var(--rv-text-primary); }
.rv-cp-list__body span { font-size: var(--rv-text-md); line-height: 1.6; color: var(--rv-text-secondary); }
.rv-cp-list__body span a { color: var(--rv-brand-primary); font-weight: 600; text-decoration: none; }

/* ── Pull statement (the editorial view) ────────────────── */

.rv-cp-pull { margin: 0 0 2.9rem; max-width: 700px; padding: 1.3rem 0 0; border-top: 2px solid var(--rv-gold); }
.rv-cp-pull__label {
    display: block;
    font-size: var(--rv-text-xs);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rv-gold-on-light);
    margin-bottom: 0.6rem;
}
.rv-cp-pull__text { font-size: var(--rv-text-xl); line-height: 1.6; color: var(--rv-text-primary); margin: 0; max-width: 52ch; text-wrap: pretty; }

/* ── The Ladder Strip ───────────────────────────────────── */

.rv-cp-ladwrap { margin-top: 1.4rem; }

.rv-cp-lad { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: var(--rv-text-md); }
.rv-cp-lad td, .rv-cp-lad th { vertical-align: top; }

.rv-cp-lad__rowlab {
    width: 104px;
    text-align: right;
    font-size: var(--rv-text-xs);
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--rv-ink-3);
    padding: 0.7rem 0.9rem 0.7rem 0;
}

.rv-cp-lad__banners td { padding: 0 0.35rem 0.55rem; }
.rv-cp-lad__banner {
    text-align: center;
    font-size: var(--rv-text-xs);
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding-bottom: 0.35rem;
}
.rv-cp-lad__banner--oncall { color: var(--rv-ink-3); border-bottom: 2px solid var(--rv-line); }
.rv-cp-lad__banner--free { color: var(--rv-autonomy-4); border-bottom: 2px solid var(--rv-autonomy-4); }

.rv-cp-lad__heads th:not(.rv-cp-lad__rowlab) { padding: 0; }
/* Level cells carry a 4px color bar above their padding; match it so the
   LEVEL row label tops out with the roman numerals. */
.rv-cp-lad__heads .rv-cp-lad__rowlab { padding-top: calc(0.7rem + 4px); }
.rv-cp-lad__head {
    text-align: left;
    padding: 0.7rem 0.7rem 0.55rem !important;
    border-top: 4px solid var(--lc);
}
.rv-cp-lad__head .rv-cp-lad__roman { display: block; font-size: var(--rv-text-2xl); font-weight: 600; line-height: 1.05; color: var(--lc); }
.rv-cp-lad__head .rv-cp-lad__name { display: block; font-size: var(--rv-text-md); font-weight: 700; color: var(--rv-text-primary); margin-top: 0.15rem; line-height: 1.3; }

.rv-cp-lad td:not(.rv-cp-lad__rowlab) { padding: 0.6rem 0.7rem; font-size: var(--rv-text-md); line-height: 1.5; color: var(--rv-text-secondary); }

.rv-cp-lad .is-on { background: var(--lcbg); }
.rv-cp-lad .dv { border-right: 2px solid var(--rv-line); }

.rv-cp-lad__counts td:not(.rv-cp-lad__rowlab) { border-top: 1px solid var(--rv-line-soft); }
.rv-cp-lad__counts strong { color: var(--rv-text-primary); font-size: var(--rv-text-base); }
.rv-cp-lad__zero { color: var(--rv-ink-3); }
.rv-cp-lad__marker { display: block; margin-top: 0.25rem; font-size: var(--rv-text-xs); font-weight: 700; color: var(--rv-autonomy-3); }

/* Stacked variant (narrow screens) */
.rv-cp-ladstack { display: none; margin-top: 1.4rem; }

.rv-cp-ladstack__group {
    font-size: var(--rv-text-xs);
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--rv-ink-3);
    border-bottom: 2px solid var(--rv-line);
    padding: 0.9rem 0 0.35rem;
    margin-bottom: 0.4rem;
}
.rv-cp-ladstack__group--free { color: var(--rv-autonomy-4); border-color: var(--rv-autonomy-4); }

.rv-cp-ladstack__lvl { padding: 0.8rem 0.9rem; border-left: 4px solid var(--lc); margin-bottom: 0.5rem; }
.rv-cp-ladstack__lvl.is-on { background: var(--lcbg); }

.rv-cp-ladstack__top { display: flex; align-items: baseline; gap: 0.6rem; margin-bottom: 0.35rem; }
.rv-cp-ladstack__roman { font-size: var(--rv-text-xl); font-weight: 600; color: var(--lc); }
.rv-cp-ladstack__name { font-size: var(--rv-text-md); font-weight: 700; color: var(--rv-text-primary); flex: 1; }
.rv-cp-ladstack__count { font-size: var(--rv-text-md); color: var(--rv-text-secondary); white-space: nowrap; }
.rv-cp-ladstack__count strong { color: var(--rv-text-primary); }
.rv-cp-ladstack__line { font-size: var(--rv-text-md); line-height: 1.5; color: var(--rv-text-secondary); margin: 0 0 0.2rem; }
.rv-cp-ladstack__line strong { color: var(--rv-text-primary); }

@media (max-width: 1049px) {
    .rv-cp-ladwrap { display: none; }
    .rv-cp-ladstack { display: block; }
}

/* ── Q&A ────────────────────────────────────────────────── */

.rv-cp-qagrid { margin-top: 1.2rem; border-top: 2px solid var(--rv-text-primary); }
@media (min-width: 901px) {
    .rv-cp-qagrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 3rem; }
}

.rv-cp-qa { padding: 1rem 0 1.1rem; border-bottom: 1px solid var(--rv-line-soft); }
.rv-cp-qa__q { font-size: var(--rv-text-base); font-weight: 700; margin: 0 0 0.35rem; color: var(--rv-text-primary); }
.rv-cp-qa__mark { font-style: italic; font-weight: 600; color: var(--rv-gold-on-light); margin-right: 0.45rem; }
.rv-cp-qa__a { font-size: var(--rv-text-md); line-height: 1.65; color: var(--rv-text-secondary); margin: 0; max-width: 64ch; }

/* ── In the database (house product cards) ──────────────── */

.rv-cp-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
    margin-top: 1.4rem;
}

.rv-cp-cover { position: absolute; inset: 0; z-index: 2; }

/* ── Footer ─────────────────────────────────────────────── */

.rv-cp-foot { border-top: 2px solid var(--rv-text-primary); padding-top: 1.1rem; margin-top: 0.5rem; }
.rv-cp-foot__t { font-size: var(--rv-text-xs); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--rv-ink-3); margin-bottom: 0.5rem; }
.rv-cp-foot__links { font-size: var(--rv-text-md); margin: 0 0 0.4rem; line-height: 2.1; }
.rv-cp-foot__links a {
    color: var(--rv-brand-primary);
    font-weight: 600;
    text-decoration: none;
    display: inline-block;
    padding: 0.4rem 0.35rem;
    margin: -0.4rem -0.35rem;
}
.rv-cp-foot__links a:hover { text-decoration: underline; }
.rv-cp-foot__links span { margin: 0 0.6em; color: var(--rv-ink-3); }
.rv-cp-foot__links--browse { color: var(--rv-text-secondary); }

/* ── Link list ──────────────────────────────────────────── */

.rv-cp-linklist { list-style: none; margin: 0.4rem 0 0; padding: 0; }
.rv-cp-linklist li { margin-bottom: 0.5rem; font-size: var(--rv-text-md); }
.rv-cp-linklist a { color: var(--rv-brand-primary); font-weight: 600; text-decoration: none; }
.rv-cp-linklist a:hover { text-decoration: underline; }

/* ── Library index: figure-thumbnail directory ──────────── */

.rv-cp-dir {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
    margin-top: 1.6rem;
}

.rv-cp-dirc {
    position: relative;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--rv-line);
    border-radius: 16px;
    overflow: hidden;
    background: var(--rv-surface-primary);
    transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease;
}
.rv-cp-dirc:hover {
    transform: translateY(-3px);
    box-shadow: 0 2px 4px rgba(15, 23, 42, 0.04), 0 18px 40px -14px rgba(15, 23, 42, 0.16);
    border-color: var(--rv-ink-3);
}

.rv-cp-dirc__thumb {
    aspect-ratio: 560 / 220; /* every plate is designed to this window */
    padding: 0.85rem 1.1rem;
    border-bottom: 1px solid var(--rv-line-soft);
    color: var(--rv-text-primary);
}
.rv-cp-dirc__thumb svg { display: block; width: 100%; height: 100%; }

.rv-cp-dirc__body {
    padding: 1rem 1.35rem 1.1rem;
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.rv-cp-dirc__term { font-size: var(--rv-text-xl); font-weight: 600; color: var(--rv-text-primary); line-height: 1.3; margin: 0 0 0.3rem; }
.rv-cp-dirc__hook { font-size: var(--rv-text-md); line-height: 1.55; color: var(--rv-text-secondary); margin: 0 0 0.55rem; }
.rv-cp-dirc__go { margin-top: auto; }
.rv-cp-dirc__go { font-size: var(--rv-text-md); font-weight: 600; color: var(--rv-gold-on-light); transition: transform 0.16s ease; display: inline-block; }
.rv-cp-dirc:hover .rv-cp-dirc__term { text-decoration: underline; text-decoration-color: var(--rv-gold); text-underline-offset: 3px; }
.rv-cp-dirc:hover .rv-cp-dirc__go { transform: translateX(4px); }

/* ── Dark mode (own selectors; theme globals use !important) ── */

html[data-theme="dark"] .rv-cph__eyebrow a { color: var(--rv-gold-on-light) !important; }
html[data-theme="dark"] .rv-cp-list__num { color: var(--rv-gold-on-light) !important; }
html[data-theme="dark"] .rv-cp-qa__mark { color: var(--rv-gold-on-light) !important; }
html[data-theme="dark"] .rv-cph__r { mix-blend-mode: normal; }
html[data-theme="dark"] .rv-cph__pill { border: 1px solid var(--rv-line); box-shadow: none; }
html[data-theme="dark"] .rv-cph__btn--ghost { border-color: var(--rv-line); }

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) .rv-cph__eyebrow a { color: var(--rv-gold-on-light) !important; }
    html:not([data-theme="light"]) .rv-cph__r { mix-blend-mode: normal; }
    html:not([data-theme="light"]) .rv-cph__pill { border: 1px solid var(--rv-line); box-shadow: none; }
}

/* ── Responsive ─────────────────────────────────────────── */

@media (max-width: 960px) {
    .rv-cp { padding-top: 2.25rem; }
    .rv-cph { margin-top: -2.25rem; }
    .rv-cph__inner { grid-template-columns: 1fr; gap: 2rem; padding-top: 2.75rem; padding-bottom: 2.75rem; }
    .rv-cph__stage { min-height: 300px; }
    .rv-cph__r--1 { max-height: 240px; }
    .rv-cph__r--2 { max-height: 175px; }
    .rv-cph__r--3 { max-height: 140px; }
    .rv-cp-fig__grid { grid-template-columns: 1fr; gap: 1.75rem; align-items: start; }
    .rv-cp-cols { grid-template-columns: 1fr; gap: 1.5rem; }
    .rv-cp-rail { position: static; }
    .rv-cp-rail ol { display: flex; flex-wrap: wrap; gap: 0 1.25rem; }
    .rv-cp-rail li, .rv-cp-rail li:last-child { border: none; }
    .rv-cp-cards { grid-template-columns: 1fr; }
    .rv-cp-dir { grid-template-columns: 1fr; }
    .rv-cp-table--reading tbody th { width: 170px; }
}
