/*
 * Guide V3 visual language — direction 2.
 *
 * The structural stylesheet owns normalization and safety. This layer owns the
 * final editorial art direction: one dark canvas, strong type, sparse mint,
 * functional rules, and no ornamental card nesting.
 */

.guide-v3 {
    --v3-bg: #050706;
    --v3-panel: #090c0b;
    --v3-panel-2: #0c100f;
    --v3-panel-3: #111614;
    --v3-rule: rgba(226, 239, 234, .105);
    --v3-rule-strong: rgba(226, 239, 234, .205);
    --v3-text: #f2f6f4;
    --v3-copy: #b9c1bd;
    --v3-muted: #78827d;
    --v3-mint: #62e5c3;
    --v3-mint-strong: #83efd3;
    --v3-mint-soft: rgba(98, 229, 195, .095);
    --v3-action: #62e5c3;
    --v3-action-hover: #82f0d4;
    --v3-amber: #e0b36b;
    --v3-danger: #df9c93;
    --v3-radius: 10px;
    --v3-rail: 218px;
    /* Give the direct-answer rail enough measure to stay comparable with the
       title + intro column. A fluid rail prevents normal 50-80 word answers
       from turning into an artificially tall stack on wide screens. */
    --v3-side: clamp(300px, 18vw, 340px);
    --v3-gap: 38px;
    color: var(--v3-text);
    font-size: 17px;
    line-height: 1.7;
}

/* Page composition: data can use the full measure; prose remains readable. */
.guide-v3 .container {
    /* The 30px safety insets live outside the 1520px reading grid so its
       content edges align with the desktop navigation shell. */
    width: min(100%, 1580px);
    max-width: 1580px;
    padding: 108px 30px 0;
}

.guide-v3 .article-header { padding: 8px 0 42px; }
.guide-v3 .article-header h1 {
    max-width: none;
    font-size: clamp(3.25rem, 3.8vw, 4rem);
    font-weight: 680;
    line-height: .98;
    letter-spacing: -.055em;
}
.guide-v3 .article-intro {
    max-width: 68ch;
    margin-top: 26px;
    color: #c3cac7;
    font-size: 1.08rem;
    line-height: 1.7;
}

.guide-v3 .tldr-box {
    padding: 8px 0 28px 28px;
    border-left-color: var(--v3-rule-strong);
}
.guide-v3 .tldr-label {
    margin-bottom: 17px;
    padding-bottom: 11px;
    color: var(--v3-mint);
}
.guide-v3 .tldr-text {
    color: #c8cfcc;
    font-size: .98rem;
    line-height: 1.7;
}

.guide-v3 .guide-v3-opening { margin-bottom: 44px; }
.guide-v3 .guide-v3-opening > p { max-width: min(72ch, calc(100% - var(--v3-side) - var(--v3-gap))); }
.guide-v3 .page-layout { margin-bottom: 44px; }

/* Left rail: quiet navigation with one unmistakable active state. */
.guide-v3 .toc { padding-right: 4px; }
.guide-v3 .toc-title {
    margin-bottom: 10px;
    padding-bottom: 13px;
    color: #929b97;
}
.guide-v3 .guide-v3-toc-chapter-toggle {
    grid-template-columns: 24px minmax(0, 1fr) auto 10px;
    min-height: 48px;
    padding: 13px 0;
}
.guide-v3 .guide-v3-toc-chapter-name { font-size: .78rem; }
.guide-v3 .guide-v3-toc-chapter-list a {
    grid-template-columns: 24px minmax(0, 1fr);
    padding: 11px 8px 11px 12px;
    border-left-width: 2px;
    font-size: .77rem;
}
.guide-v3 .guide-v3-toc-chapter-list a.is-current {
    border-left-color: var(--v3-mint);
    color: var(--v3-text);
}
.guide-v3 .guide-v3-toc-chapter-list a.is-current .toc-number { color: var(--v3-mint); }
.guide-v3 .guide-v3-toc-progress { margin-top: 16px; }

/* Right rail: compact context, not a stack of mini cards. */
.guide-v3 .sidebar { border-top: 0; }
.guide-v3 .sidebar > .tldr-box {
    margin: 0 0 26px;
    padding: 4px 0 26px;
    border: 0;
    border-bottom: 1px solid var(--v3-rule-strong);
}
.guide-v3 .sidebar > .tldr-box .tldr-label {
    margin-bottom: 14px;
    padding-bottom: 0;
    border-bottom: 0;
}
.guide-v3 .sidebar-card { padding: 19px 0; }
.guide-v3 .sidebar-title,
.guide-v3 .sidebar-tsb-label { color: var(--v3-mint); }
.guide-v3 .sidebar h4 {
    margin: 8px 0 7px;
    font-size: 1rem;
    letter-spacing: -.015em;
}
.guide-v3 .sidebar p { color: #8e9893; }
.guide-v3 .sidebar-context-links a,
.guide-v3 .sidebar-jumps-list a { min-height: 40px; }
.guide-v3 .sidebar-tsb-media {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    margin: 18px 0 0;
    overflow: hidden;
    border-radius: 0;
    background: #000;
}
.guide-v3 .sidebar-tsb-media img {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 0;
    background: #000;
    object-fit: cover;
    object-position: center;
}
.guide-v3 .sidebar-tsb > a {
    min-height: 44px;
    border-color: var(--v3-action);
    border-radius: 8px;
    background: var(--v3-action);
    color: #04100c;
}
.guide-v3 .sidebar-tsb > a:hover {
    border-color: var(--v3-action-hover);
    background: var(--v3-action-hover);
    color: #04100c;
}

/* Product bridges need a stronger decision hierarchy than the surrounding
   editorial rail. The screenshot stays borderless on a pure-black media bed. */
.guide-v3 .sidebar .sidebar-card.sidebar-tsb {
    padding: 20px;
    border: 1px solid var(--v3-rule-strong);
    border-radius: 12px;
    background: transparent;
}
.guide-v3 .sidebar .sidebar-card.sidebar-tsb + .sidebar-card.sidebar-context {
    margin-top: 32px;
}
.guide-v3 .sidebar .sidebar-card.sidebar-tsb h4 {
    margin: 0 0 10px;
    font-size: 1.12rem;
    line-height: 1.18;
}
.guide-v3 .sidebar .sidebar-card.sidebar-tsb .sidebar-tsb-label {
    margin: 0 0 6px;
}
.guide-v3 .sidebar .sidebar-card.sidebar-tsb .sidebar-tsb-type {
    display: block;
    margin: 0 0 12px;
    color: #8e9893;
    font-size: .58rem;
    letter-spacing: .075em;
}
.guide-v3 .sidebar .sidebar-card.sidebar-tsb p {
    margin-bottom: 18px;
    font-size: .82rem;
    line-height: 1.55;
}
.guide-v3 .sidebar .sidebar-card.sidebar-tsb--with-points h4 {
    font-size: 1.22rem;
}
.guide-v3 .sidebar .sidebar-card.sidebar-tsb--with-points .sidebar-tsb-points {
    display: grid;
    margin: -2px 0 2px;
    border-top: 1px solid var(--v3-rule);
    border-bottom: 1px solid var(--v3-rule);
}
.guide-v3 .sidebar .sidebar-card.sidebar-tsb--with-points .sidebar-tsb-points span {
    display: block;
    padding: 9px 0;
    color: #b7c1bc;
    font-size: .76rem;
    line-height: 1.35;
}
.guide-v3 .sidebar .sidebar-card.sidebar-tsb--with-points .sidebar-tsb-points span + span {
    border-top: 1px solid var(--v3-rule);
}
.guide-v3 .sidebar .sidebar-card.sidebar-tsb--with-points > a {
    min-height: 50px;
    margin-top: 16px;
    font-size: .9rem;
}

/* Editorial hierarchy: section headings are separated by rhythm alone. */
.guide-v3 .article-content {
    color: var(--v3-copy);
    font-size: 17px;
    line-height: 1.72;
}
.guide-v3 .article-content :is(p, ul, ol) { max-width: 72ch; }
.guide-v3 .article-content p { margin-bottom: 22px; }
.guide-v3 .article-content h2 {
    position: relative;
    max-width: 23ch;
    margin: 36px 0 20px;
    padding-top: 0;
    border-top: 0;
    font-size: clamp(2.25rem, 2.55vw, 2.75rem);
    line-height: 1.02;
    letter-spacing: -.048em;
}
.guide-v3 .article-content h2::before {
    display: none;
}
.guide-v3 .article-content .section-label + h2,
.guide-v3 .article-content .eyebrow + h2,
.guide-v3 .article-content .guide-v2-kicker + h2 {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}
.guide-v3 .article-content :is(.section-label, .eyebrow, .guide-v2-kicker) + h2::before { display: none; }
.guide-v3 .article-content h3 {
    margin: 38px 0 13px;
    font-size: 25px;
    line-height: 1.2;
    letter-spacing: -.032em;
}
.guide-v3 .article-content h4 { font-size: 19px; }
.guide-v3 .article-content :is(.section-label, .eyebrow, .guide-v2-kicker) {
    margin-bottom: 10px;
    color: var(--v3-mint);
    font-size: 10px;
    letter-spacing: .11em;
}
.guide-v3 .article-content > :is(section, .section) + :is(section, .section) { margin-top: 68px; }
.guide-v3 .article-content > [data-stage1-fact-cycle] > :is(section, .section) + :is(section, .section) { margin-top: 68px; }
.guide-v3 .article-content :is(p, ul, ol) + .section-label { margin-top: 58px; }
.guide-v3 .article-content a:not([class]) {
    color: var(--v3-mint-strong);
    font-weight: 600;
    text-decoration-color: rgba(131, 239, 211, .76);
    text-decoration-line: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: .22em;
    text-decoration-skip-ink: auto;
    transition: color 160ms ease, text-decoration-color 160ms ease;
}
.guide-v3 .article-content a:not([class]):hover {
    color: #dffbf4;
    text-decoration-color: var(--v3-mint);
}
.guide-v3 .article-content a:not([class]):focus-visible {
    color: #dffbf4;
    text-decoration-color: transparent;
    outline: 2px solid var(--v3-mint);
    outline-offset: 3px;
    border-radius: 2px;
}
.guide-v3 [id] { scroll-margin-top: 104px; }

/* Answers, proof, warnings and verdicts each get one semantic rail. */
.guide-v3 .article-content .guide-v3-callout,
.guide-v3 .article-content :is(.info-box, .warning, .tip, .note, .key-takeaway) {
    margin: 38px 0;
    padding: 23px 0 23px 26px;
    border-left-width: 2px;
}
.guide-v3 .article-content .info-box.tip.guide-v3-callout {
    padding-top: 16px;
    padding-bottom: 16px;
}
.guide-v3 .article-content .info-box.tip.guide-v3-callout > .info-box-header {
    margin-bottom: 10px;
}
.guide-v3 .article-content .guide-v3-callout--warning {
    padding: 20px 0 18px;
    border-top: 1px solid rgba(224, 179, 107, .58);
    border-left-width: 0;
    background: transparent;
}
.guide-v3 .article-content .article-callout.guide-v3-callout {
    padding-top: 0;
    padding-bottom: 0;
    border-left-color: #9aa39f;
}
/* The hero already owns the opening rhythm. When a normalized note/callout is
   the first real article block, do not stack its generic 38px inset beneath
   the hero and leave an empty strip across the content column. */
.guide-v3 .article-content > :is(
    .guide-v3-callout,
    .info-box,
    .warning,
    .tip,
    .note,
    .key-takeaway
):first-child { margin-top: 0; }
.guide-v3 .article-content .answer-first.guide-v3-callout,
.guide-v3 .article-content .guide-v3-callout--positive { border-left-color: var(--v3-mint); }
.guide-v3 .article-content .guide-v2-checkout-panel.guide-v3-callout {
    display: block;
    margin: 44px 0 50px;
    padding: 18px 0 0;
    border: 0;
    border-top: 1px solid var(--v3-rule-strong);
    background: transparent;
}
.guide-v3 .article-content .guide-v2-checkout-panel > header { display: block; }
.guide-v3 .article-content .guide-v2-checkout-panel > header > span {
    display: block;
    margin: 0 0 6px;
    color: var(--v3-mint);
    font: 500 10px/1.5 "DM Mono", monospace;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.guide-v3 .article-content .guide-v2-checkout-panel > header > h3 {
    max-width: 30ch;
    margin: 0;
    font-size: 22px;
    line-height: 1.22;
}
.guide-v3 .article-content .guide-v2-checkout-options {
    display: grid;
    grid-template-columns: repeat(2, max-content);
    justify-content: start;
    gap: 0;
    margin: 0;
    border-top: 1px solid var(--v3-rule);
    border-bottom: 1px solid var(--v3-rule);
}
.guide-v3 .article-content .guide-v2-checkout-panel .guide-v2-checkout-options {
    margin-top: 14px;
    border-top: 0;
    border-bottom: 0;
}
.guide-v3 .article-content .guide-v2-checkout-options > a,
.guide-v3 .article-content .guide-v2-checkout-options > a:first-child {
    justify-content: flex-start;
    gap: 24px;
    min-height: 54px;
    padding: 10px 18px;
    border: 0;
    border-left: 1px solid var(--v3-rule);
    transition: color .16s ease;
}
.guide-v3 .article-content .guide-v2-checkout-options > a:first-child {
    padding-left: 0;
    border-left: 0;
}
.guide-v3 .article-content .guide-v2-checkout-options > a:hover strong,
.guide-v3 .article-content .guide-v2-checkout-options > a:hover > span:last-child { color: var(--v3-mint-strong); }
.guide-v3 .article-content .guide-v2-checkout-options > a:focus-visible {
    outline: 2px solid var(--v3-mint);
    outline-offset: 4px;
}
.guide-v3 .article-content .guide-v2-checkout-options .guide-comparison-logo {
    width: 32px;
    height: 32px;
    flex-basis: 32px;
    border-radius: 6px;
}
.guide-v3 .article-content .guide-v2-checkout-options strong { font-size: 15px; }
.guide-v3 .article-content .guide-v2-checkout-options > a > span:last-child {
    gap: 5px;
    color: #cbd2cf;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
}
.guide-v3 .article-content .guide-v2-checkout-panel > p {
    max-width: 72ch;
    margin: 10px 0 0;
    color: var(--v3-muted);
    font-size: 11px;
    line-height: 1.55;
}
.guide-v3 .article-content .formula-box.guide-v3-callout {
    padding-top: 20px;
    padding-bottom: 20px;
}
/* A formula box owns one accent rail. Direct code uses the available measure
   instead of wrapping at the generic prose width; narrow screens scroll the
   code itself rather than widening the article. */
.guide-v3 .article-content .formula-box > .guide-v3-code-block {
    max-width: none;
    margin: 0;
    font-size: 13px;
    line-height: 1.65;
    tab-size: 2;
    white-space: pre;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: thin;
    scrollbar-color: var(--v3-rule-strong) transparent;
}
.guide-v3 .article-content .formula-box > .formula {
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.guide-v3 .article-content .answer-first.guide-v3-callout > p:first-of-type,
.guide-v3 .article-content .guide-v3-review-summary > .guide-v3-review-summary-answer {
    color: var(--v3-text);
    font-size: 20px;
    line-height: 1.58;
    letter-spacing: -.012em;
}
.guide-v3 .article-content :is(.answer-label, .guide-v2-answer-label, .verdict-label, .cta-kicker, .formula-label, .prompt-label) {
    color: var(--v3-mint);
    font-size: 10px;
    letter-spacing: .1em;
}
.guide-v3 .article-content .guide-v2-answer-line.guide-v3-callout,
.guide-v3 .article-content :is(.guide-v2-answer-line, .article-callout):has(> span + p) {
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 28px;
    margin: 30px 0 0;
    padding: 22px 0;
    border: 0;
    border-block: 1px solid var(--v3-rule-strong);
}
.guide-v3 .article-content .quick-verdict .verdict-header { padding-bottom: 14px; }
.guide-v3 .article-content .quick-verdict .verdict-header::after { width: 48px; }
.guide-v3 .article-content .verdict-box,
.guide-v3 .article-content .verdict-box-review {
    margin-block: 44px;
    padding: 28px 0 0;
    border: 0;
    border-top: 1px solid var(--v3-rule-strong);
    background: transparent;
}
.guide-v3 .article-content .verdict-box::before,
.guide-v3 .article-content .verdict-box-review::before {
    display: block;
    width: 48px;
    height: 2px;
    margin: -29px 0 27px;
    background: var(--v3-mint);
    content: "";
}

/* Paired decisions: aligned columns with numbers and a single internal rule. */
.guide-v3 .article-content .guide-v3-content-grid,
.guide-v3 .article-content :is(.pros-cons, .choose-grid, .decision-grid, .feature-grid, .metric-grid, .stats-grid, .verdict-grid, .vs-grid) {
    gap: 0;
    margin: 38px 0 44px;
}
.guide-v3 .article-content .guide-v3-content-grid > * {
    padding: 26px 30px 28px 0;
    border-top: 1px solid var(--v3-rule);
}
.guide-v3 .article-content .guide-v3-content-grid > :nth-child(even) {
    padding-right: 0;
    padding-left: 30px;
    border-left: 1px solid var(--v3-rule);
}
.guide-v3 .article-content .guide-v3-content-grid > :nth-child(-n + 2) { border-top-color: var(--v3-rule-strong); }

/* A quick-stats summary is a compact editorial control strip, not a pair of
   half-empty cards. Platform comparisons keep their dedicated matrix below. */
.guide-v3 .article-content .quick-stats-banner.guide-v3-content-grid:not(.guide-v3-platform-matrix) {
    gap: 48px;
    margin: 34px 0 42px;
    padding: 21px 0 19px;
    border-top: 1px solid var(--v3-rule-strong);
    border-bottom: 1px solid var(--v3-rule);
}
.guide-v3 .article-content > .quick-stats-banner.guide-v3-content-grid:not(.guide-v3-platform-matrix):first-child {
    margin-top: 0;
}
.guide-v3 .article-content .quick-stats-banner.guide-v3-content-grid:not(.guide-v3-platform-matrix) > .stat-side,
.guide-v3 .article-content .quick-stats-banner.guide-v3-content-grid:not(.guide-v3-platform-matrix) > .stat-side:nth-child(even),
.guide-v3 .article-content .quick-stats-banner.guide-v3-content-grid:not(.guide-v3-platform-matrix) > .stat-side:nth-child(odd) {
    padding: 0;
    border: 0;
}
.guide-v3 .article-content .quick-stats-banner:not(.guide-v3-platform-matrix) .stat-firm-name {
    margin: 0 0 11px;
    color: var(--v3-mint);
    font: 600 10px/1.5 "DM Mono", monospace;
    letter-spacing: .085em;
    text-transform: uppercase;
}
.guide-v3 .article-content .quick-stats-banner:not(.guide-v3-platform-matrix) .stat-badge {
    padding: 9px 0;
    color: var(--v3-copy);
    font-size: 14px;
    line-height: 1.55;
}
.guide-v3 .article-content :is(.choose-grid, .decision-grid, .vs-grid).guide-v3-content-grid {
    counter-reset: v3-choice;
}
.guide-v3 .article-content :is(.choose-grid, .decision-grid, .vs-grid).guide-v3-content-grid > * {
    counter-increment: v3-choice;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    column-gap: 14px;
    align-content: start;
}
.guide-v3 .article-content :is(.choose-grid, .decision-grid, .vs-grid).guide-v3-content-grid > *::before {
    grid-column: 1;
    grid-row: 1 / span 20;
    padding-top: 3px;
    color: var(--v3-mint);
    font: 500 10px/1.5 "DM Mono", monospace;
    letter-spacing: .06em;
    content: counter(v3-choice, decimal-leading-zero);
}
.guide-v3 .article-content :is(.choose-grid, .decision-grid, .vs-grid).guide-v3-content-grid > * > * {
    grid-column: 2;
    min-width: 0;
}
.guide-v3 .article-content :is(.choose-grid, .decision-grid, .vs-grid).guide-v3-content-grid > * > :first-child { margin-top: 0; }
/* Complete only the horizontal divider track when a two-column decision grid
   ends with an unmatched item. The final item must not acquire an outer edge. */
@media (min-width: 761px) {
    .guide-v3 .article-content :is(.choose-grid, .decision-grid, .vs-grid).guide-v3-content-grid:has(> :last-child:nth-child(odd):not(:first-child)) > :nth-last-child(2) {
        border-bottom: 1px solid var(--v3-rule);
    }
}
.guide-v3 .article-content .pros-cons.guide-v3-content-grid { gap: 56px; }
.guide-v3 .article-content .pros-cons.guide-v3-content-grid > *,
.guide-v3 .article-content .pros-cons.guide-v3-content-grid > :nth-child(even),
.guide-v3 .article-content .pros-cons.guide-v3-content-grid > :nth-child(odd) {
    padding: 0;
    border: 0;
}
.guide-v3 .article-content .pros-cons.guide-v3-content-grid > *::before { display: none; }
.guide-v3 .article-content .pros-cons > :first-child :is(.pros-label, .pros-cons-title) { color: var(--v3-mint); }
.guide-v3 .article-content .pros-cons > :last-child :is(.cons-label, .pros-cons-title) { color: var(--v3-danger); }
.guide-v3 .article-content .pros-cons > * > ul {
    display: grid;
    gap: 13px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.guide-v3 .article-content .pros-cons > * > ul > li {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    margin: 0;
    padding: 0;
}
.guide-v3 .article-content .pros-cons > :first-child li:not(:has(> :is(svg, i)))::before {
    color: var(--v3-mint);
    font: 600 14px/1.6 "DM Mono", monospace;
    content: "✓";
}
.guide-v3 .article-content .pros-cons > :last-child li:not(:has(> :is(svg, i)))::before {
    color: var(--v3-danger);
    font: 600 16px/1.4 "DM Mono", monospace;
    content: "×";
}
.guide-v3 .article-content .pros-cons > :first-child li > :is(svg, i) { color: var(--v3-mint); }
.guide-v3 .article-content .pros-cons > :last-child li > :is(svg, i) { color: var(--v3-danger); }
.guide-v3 .article-content .pros-cons > :is(.pros-block, .cons-block) > :is(.pros-item, .cons-item) + :is(.pros-item, .cons-item) { margin-top: 13px; }
.guide-v3 .article-content .pros-cons > .pros-block > .pros-item > :is(svg, i) { color: var(--v3-mint); }
.guide-v3 .article-content .pros-cons > .cons-block > .cons-item > :is(svg, i) { color: var(--v3-danger); }

/* Worked examples use four data columns, so two-column odd/even spacing must
   not alternate their insets. Every divider owns the same content gap. */
.guide-v3 .article-content .guide-v2-worked-example > div,
.guide-v3 .article-content .guide-v2-worked-example > div:nth-child(even),
.guide-v3 .article-content .guide-v2-worked-example > div:nth-child(odd) {
    padding: 18px 30px 20px;
    border-left: 1px solid var(--v3-rule);
}
.guide-v3 .article-content .guide-v2-worked-example > div:first-child {
    padding-left: 0;
    border-left: 0;
}
.guide-v3 .article-content .guide-v2-worked-example > div:last-child { padding-right: 0; }

/* Derived comparisons are a ledger, not a boxed table inside the article. */
.guide-v3 .article-content .guide-v2-derived-grid {
    margin: 32px 0 40px;
    border-top: 1px solid var(--v3-rule-strong);
    border-bottom: 1px solid var(--v3-rule);
}
.guide-v3 .article-content .guide-v2-derived-grid > article,
.guide-v3 .article-content .guide-v2-derived-grid > article:nth-child(even),
.guide-v3 .article-content .guide-v2-derived-grid > article:nth-child(odd) {
    grid-template-columns: minmax(150px, 1.08fr) repeat(2, minmax(98px, .68fr)) minmax(220px, 1.7fr);
    align-items: center;
    padding: 22px 0;
    border-left: 0;
    border-top: 1px solid var(--v3-rule);
}
.guide-v3 .article-content .guide-v2-derived-grid > article:first-child { border-top: 0; }
.guide-v3 .article-content .guide-v2-derived-grid > article > *,
.guide-v3 .article-content .guide-v2-derived-grid > article > :last-child {
    padding: 0 24px;
    border-right: 0;
}
.guide-v3 .article-content .guide-v2-derived-grid > article > span { padding-left: 0; color: #87918c; font-size: 10px; }
.guide-v3 .article-content .guide-v2-derived-grid > article > p { padding-right: 0; color: #a9b1ad; font-size: 14px; line-height: 1.55; }
.guide-v3 .article-content .guide-v2-derived-grid article > div strong { font-size: 1.28rem; }

/* Metrics use scale, not boxes. */
.guide-v3 .article-content :is(.verdict-stats, .stat-grid, .stats-grid, .score-grid, .ftmo-rules-grid, .metric-grid) { gap: 0; }
.guide-v3 .article-content .metric-name {
    display: flex;
    gap: 10px;
    align-items: center;
}
.guide-v3 .article-content .metric-name > :is(svg, i) { flex: 0 0 18px; }
.guide-v3 .article-content .metric-grid:has(> .metric-card) > .metric-card,
.guide-v3 .article-content .verdict-stats > .verdict-stat,
.guide-v3 .article-content :is(.stat-grid, .stats-grid, .score-grid, .ftmo-rules-grid) > * {
    padding-top: 22px;
    padding-bottom: 24px;
}
.guide-v3 .article-content :is(.stat-value, .rule-value, .metric-tile-value) {
    color: var(--v3-text);
    font-size: 30px;
    line-height: 1.1;
}
.guide-v3 .article-content :is(.stat-value, .rule-value, .metric-tile-value)::after {
    display: block;
    width: 28px;
    height: 2px;
    margin-top: 10px;
    background: var(--v3-mint);
    content: "";
}

/* Metric tiles are a three-column data strip. Reset the generic two-column
   odd/even borders so the first row has no accidental top rule and the
   second row receives one consistent horizontal divider. */
.guide-v3 .article-content .metric-grid:has(> .metric-tile).guide-v3-content-grid > .metric-tile,
.guide-v3 .article-content .metric-grid:has(> .metric-tile).guide-v3-content-grid > .metric-tile:nth-child(even),
.guide-v3 .article-content .metric-grid:has(> .metric-tile).guide-v3-content-grid > .metric-tile:nth-child(odd) {
    padding: 18px 0;
    border: 0;
}
.guide-v3 .article-content .metric-grid:has(> .metric-tile).guide-v3-content-grid > .metric-tile:nth-child(n + 4) {
    border-top: 1px solid var(--v3-rule);
}

/* A stat strip is a single multi-column metric row, not the generic paired
   editorial grid. Every metric after the first owns one vertical divider and
   all columns use symmetrical insets. */
.guide-v3 .article-content :is(.stat-grid, .stats-grid).guide-v3-content-grid {
    border-top: 1px solid var(--v3-rule-strong);
    border-bottom: 1px solid var(--v3-rule);
}
.guide-v3 .article-content :is(.stat-grid, .stats-grid).guide-v3-content-grid > .stat-card,
.guide-v3 .article-content :is(.stat-grid, .stats-grid).guide-v3-content-grid > .stat-card:nth-child(even),
.guide-v3 .article-content :is(.stat-grid, .stats-grid).guide-v3-content-grid > .stat-card:nth-child(odd) {
    padding: 22px 28px 24px;
    border: 0;
    border-left: 1px solid var(--v3-rule);
}
.guide-v3 .article-content :is(.stat-grid, .stats-grid).guide-v3-content-grid > .stat-card:first-child {
    padding-left: 0;
    border-left: 0;
}
.guide-v3 .article-content :is(.stat-grid, .stats-grid).guide-v3-content-grid > .stat-card:last-child { padding-right: 0; }

/* Score routes own their layout and numbering. They must not inherit the
   odd/even borders of the generic two-column editorial grid when reused on
   their own in an article or in the component inventory. */
.guide-v3 .article-content .score-grid.guide-v3-content-grid {
    counter-reset: v3-score-route;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 32px;
}
.guide-v3 .article-content .score-grid.guide-v3-content-grid > .score-card,
.guide-v3 .article-content .score-grid.guide-v3-content-grid > .score-card:nth-child(even),
.guide-v3 .article-content .score-grid.guide-v3-content-grid > .score-card:nth-child(odd) {
    counter-increment: v3-score-route;
    padding: 0;
    border: 0;
}
.guide-v3 .article-content .score-grid .score-range::before {
    display: block;
    margin-bottom: 6px;
    color: var(--v3-mint);
    font: 500 10px/1.6 "DM Mono", monospace;
    letter-spacing: .04em;
    content: counter(v3-score-route, decimal-leading-zero);
}

/* Lists and sequences: persistent index track, no card shell. */
.guide-v3 .article-content :is(.guide-v2-checklist, .guide-v3-sequence) { border-top: 1px solid var(--v3-rule-strong); }
.guide-v3 .article-content .guide-v2-checklist > li,
.guide-v3 .article-content :is(.phase-item, .build-step, .process-step, .habit-step, .tracker-step, .limitation-item, .review-row, .audit-item),
.guide-v3 .article-content .step-card {
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 18px;
    padding: 23px 0;
}
.guide-v3 .article-content .guide-v2-checklist > li > span,
.guide-v3 .article-content .guide-v2-point-list > article > span,
.guide-v3 .article-content .step-card > .step-number { color: var(--v3-mint); }

/* Keep the phase metadata dividers physically joined to the row baseline.
   Move the row's bottom breathing room into the metadata cells instead of
   leaving it below the cells, so no second frame or pseudo-line is needed. */
@media (min-width: 761px) {
    .guide-v3 .article-content .phase-item:has(> .phase-body .phase-rules) { padding-bottom: 0; }
    .guide-v3 .article-content .phase-item > .phase-body .phase-rules > .phase-rule-pill { padding-bottom: 23px; }
}

.guide-v3 .article-content :is(.step-num, .process-num, .habit-num, .tracker-step-num, .lim-number, .rn) {
    width: 34px;
    height: 34px;
    border-color: rgba(98, 229, 195, .35);
    border-radius: 7px;
    color: var(--v3-mint);
}
.guide-v3 .article-content .guide-v2-point-list { border-top: 1px solid var(--v3-rule-strong); }
.guide-v3 .article-content .guide-v2-point-list > article + article { border-top: 1px solid var(--v3-rule); }
.guide-v3 .article-content .guide-v2-point-list > article > div > h3:first-child { font-size: 23px; }
.guide-v3 .article-content .audit-checklist > .audit-item::before,
.guide-v3 .article-content .audit-checklist .score-range::before { color: var(--v3-mint); }
.guide-v3 .article-content .audit-checklist { column-gap: 40px; }
.guide-v3 .article-content .audit-checklist > h3 {
    padding-bottom: 0;
    border-bottom: 0;
}
.guide-v3 .article-content .audit-checklist > .audit-item,
.guide-v3 .article-content .audit-checklist > .audit-item:nth-of-type(even) {
    min-height: 0;
    padding: 18px 0;
    border: 0;
}
.guide-v3 .article-content .audit-checklist > .score-grid {
    gap: 32px;
    margin-top: 26px;
    padding-top: 28px;
    border-top: 1px solid var(--v3-rule-strong);
}
.guide-v3 .article-content .audit-checklist > .score-grid > .score-card,
.guide-v3 .article-content .audit-checklist > .score-grid > .score-card:nth-child(even),
.guide-v3 .article-content .audit-checklist > .score-grid > .score-card:nth-child(odd),
.guide-v3 .article-content .audit-checklist > .score-grid > .score-card:first-child,
.guide-v3 .article-content .audit-checklist > .score-grid > .score-card:last-child {
    padding: 0;
    border: 0;
}

/* Long records: stronger identity, lighter supporting copy. */
.guide-v3 .article-content :is(.journal-card, .alt-card, .tool-review, .reason-card, .mistake-card, .template-block, .formula-card, .perfect-entry, .trade-card, .example-card) {
    margin-block: 50px;
    padding: 30px 0 0;
    border: 0;
    border-top: 1px solid var(--v3-rule-strong);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.guide-v3 .article-content :is(.journal-name-heading, .alt-card-name, .tool-review-name, .template-name, .template-block-title, .formula-card-title, .perfect-entry-title, .trade-card-title, .example-title) {
    font-size: 28px;
    line-height: 1.16;
}
.guide-v3 .article-content :is(.journal-rank-badge, .alt-card-badge, .journal-price-label, .formula-card-meta, .template-tag, .template-block-tag, .example-tag) {
    color: var(--v3-mint);
    letter-spacing: .06em;
    text-transform: uppercase;
}
.guide-v3 .article-content .mistake-header .mistake-num { color: var(--v3-mint); }

/* Reason records pair their index with the heading; the shared header must not
   push those two parts to opposite edges of the article column. */
.guide-v3 .article-content .reason-card > .reason-header {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    justify-content: start;
    align-items: start;
    gap: 16px;
    margin-bottom: 24px;
}
.guide-v3 .article-content .reason-card > .reason-header > :not(.reason-num) {
    min-width: 0;
}
.guide-v3 .article-content .reason-card .reason-num {
    padding-top: 5px;
    color: var(--v3-mint);
    font: 500 12px/1.4 "DM Mono", monospace;
    letter-spacing: .04em;
}
.guide-v3 .article-content .reason-card .reason-header h3 {
    margin: 0;
}
.guide-v3 .article-content .reason-card .reason-subtitle {
    margin-top: 6px;
    color: var(--v3-muted);
    font-size: 14px;
    line-height: 1.5;
}
.guide-v3 .article-content .reason-card .reason-fix-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.guide-v3 .article-content .reason-card .reason-fix-label :is(i, svg) {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
}

/* Product capabilities are supporting metadata, not a row of dashboard chips. */
.guide-v3 .article-content .journal-card > .feature-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 24px;
    margin: 24px 0 28px;
    padding: 0;
    border: 0;
    background: transparent;
}
.guide-v3 .article-content .journal-card > .feature-pills > .feature-pill,
.guide-v3 .article-content .journal-card > .feature-pills > .feature-pill.highlight {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #aeb7b3;
    font-size: 12.5px;
    font-weight: 520;
    line-height: 1.45;
    box-shadow: none;
}
.guide-v3 .article-content .journal-card > .feature-pills > .feature-pill :is(i, svg) {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
    color: #7f8984;
    stroke-width: 1.7;
}
.guide-v3 .article-content .journal-card > .feature-pills > .feature-pill.highlight {
    color: var(--v3-text);
}
.guide-v3 .article-content .journal-card > .feature-pills > .feature-pill.highlight :is(i, svg) {
    color: var(--v3-mint);
}

/* Journal sources remain one editorial row, but each destination scans alone. */
.guide-v3 .article-content .journal-card > .journal-verdict + p {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 0;
    width: 100%;
    max-width: none;
    margin: 16px 0 0;
    color: transparent;
    font-size: 0;
    line-height: 1;
}
.guide-v3 .article-content .journal-card > .journal-verdict + p > a {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    margin: 0;
    padding: 7px 18px;
    border: 0;
    color: #c8cfcc;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    text-decoration: none;
    white-space: nowrap;
}
.guide-v3 .article-content .journal-card > .journal-verdict + p > a:first-child {
    padding-left: 0;
}
.guide-v3 .article-content .journal-card > .journal-verdict + p > a + a {
    border-left: 1px solid var(--v3-rule-strong);
}
.guide-v3 .article-content .journal-card > .journal-verdict + p > a:last-child {
    padding-right: 0;
}
.guide-v3 .article-content .journal-card > .journal-verdict + p > a:hover {
    color: var(--v3-mint-strong);
}

/* Formula/code well: functional separation, never a four-sided card. */
.guide-v3 .article-content :is(.formula, .formula-block, .prompt-card, .formula-snippet, pre) {
    padding: 22px 0 22px 24px;
    border: 0;
    border-left: 2px solid var(--v3-mint);
    border-radius: 0;
    background: var(--v3-panel);
    color: #dce5e1;
}

/* Tables: one quiet header plane; rows remain on the page canvas. */
.guide-v3 .article-content .guide-v3-data-table thead th,
.guide-v3 .article-content .guide-v2-data-table thead th {
    padding-top: 13px;
    padding-bottom: 13px;
    background: var(--v3-panel);
    color: #a8b2ad;
}
.guide-v3 .article-content .guide-v3-data-table thead th:first-child,
.guide-v3 .article-content .guide-v2-data-table thead th:first-child { padding-left: 14px; }
.guide-v3 .article-content .guide-v3-data-table thead th:last-child,
.guide-v3 .article-content .guide-v2-data-table thead th:last-child { padding-right: 14px; }
.guide-v3 .article-content .guide-v3-data-table tbody > tr > :first-child,
.guide-v3 .article-content .guide-v2-data-table tbody > tr > :first-child { color: var(--v3-text); }
.guide-v3 .article-content :is(.guide-v3-data-table, .guide-v2-data-table) tbody > tr.row-highlight > :is(th, td) {
    border-bottom-color: rgba(98, 229, 195, .34);
}

/* Source lists are reference rows; action buttons are the only filled objects. */
.guide-v3 .article-content .guide-v2-source-note.guide-v2-source-links { border-top-color: var(--v3-rule-strong); }
.guide-v3 .article-content .guide-v2-source-note.guide-v2-source-links > a,
.guide-v3 .article-content :is(.source-list, .source-links, .guide-v2-source-links) > a {
    color: var(--v3-copy);
}
.guide-v3 .article-content .guide-v2-source-note.guide-v2-source-links > a::after {
    display: inline-block;
    min-width: 18px;
    color: var(--v3-mint);
    font-size: 17px;
    font-weight: 500;
    line-height: 1;
    text-align: center;
}
.guide-v3 .article-content :is(.guide-v3-action, .cta-btn, .btn-primary, .btn-secondary, .btn-aff, .btn-download, .btn-learn-more, .calculator-cta-btn) {
    min-height: 44px;
    border-radius: 8px;
}
.guide-v3 .article-content :is(.guide-v3-action.green, .cta-btn.green, .btn-primary),
.guide-v3 .article-content .guide-decision-option .guide-v3-action:first-child {
    border-color: var(--v3-action);
    background: var(--v3-action);
    color: #04100c;
}
.guide-v3 .article-content :is(.guide-v3-action.green, .cta-btn.green, .btn-primary):hover,
.guide-v3 .article-content .guide-decision-option .guide-v3-action:first-child:hover {
    border-color: var(--v3-action-hover);
    background: var(--v3-action-hover);
    color: #04100c;
}

/* Long CTA copy stays in reading order. A second paragraph must close before
   the action starts instead of sharing the remaining flex-line width. */
.guide-v3 .article-content .guide-v3-cta:has(> p + p + .cta-btn) {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 18px;
}
.guide-v3 .article-content .guide-v3-cta:has(> p + p + .cta-btn) > .cta-btn {
    justify-self: start;
}

/* Canonical catalog: one evidence surface with column dividers and clear actions. */
.guide-v3 .guide-catalog { padding-top: 26px; }
.guide-v3 .guide-catalog-header { margin-bottom: 25px; }
.guide-v3 .guide-catalog-header > span,
.guide-v3 .guide-catalog--gap > header > span {
    color: var(--v3-mint);
    font: 500 10px/1.5 "DM Mono", monospace;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.guide-v3 .guide-catalog-header h2,
.guide-v3 .guide-catalog--gap h2 {
    margin-top: 9px;
    font-size: clamp(1.9rem, 2.3vw, 2.55rem);
    line-height: 1.05;
}
.guide-v3 .guide-catalog-header p,
.guide-v3 .guide-catalog--gap header p { max-width: 74ch; color: #99a39e; }
.guide-v3 .guide-catalog-table tbody tr { padding-top: 20px; padding-bottom: 14px; }
.guide-v3 .guide-catalog-table tbody th { border-bottom: 0; }
.guide-v3 .guide-catalog-program { align-items: flex-start; }
.guide-v3 .guide-catalog-program strong { font-size: 16px; }
.guide-v3 .guide-catalog-table--same-firm .guide-catalog-program strong {
    color: var(--v3-text);
    font-size: 19px;
    letter-spacing: -.02em;
}
.guide-v3 .guide-catalog-table--same-firm .guide-catalog-program small {
    margin-top: 3px;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.guide-v3 .guide-catalog-profile-link > div {
    display: grid;
    align-content: start;
    gap: 2px;
}
.guide-v3 .guide-catalog-profile-link > div > :is(span, small) { line-height: 1.35; }
.guide-v3 .guide-catalog-card-head .guide-catalog-profile-copy h3 {
    order: 1;
}
.guide-v3 .guide-catalog-card-head .guide-catalog-profile-copy > span {
    order: 2;
    margin-top: 2px;
}
.guide-v3 .guide-catalog-card-head .guide-catalog-profile-copy > small {
    order: 3;
}
.guide-v3 .guide-catalog-card-head:has(> .guide-catalog-offer-link) .guide-catalog-profile-cue {
    display: none;
}
.guide-v3--review .sidebar .guide-catalog-card-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 14px;
    align-items: start;
}
.guide-v3--review .sidebar .guide-catalog-card-head .guide-catalog-profile-link {
    align-items: flex-start;
    gap: 10px;
}
.guide-v3--review .sidebar .guide-catalog-card-head .guide-catalog-profile-copy h3 {
    margin: 0;
    font-size: 18px;
    line-height: 1.15;
}
.guide-v3--review .sidebar .guide-catalog-card-head .guide-catalog-profile-copy > span {
    color: #aab5b2;
    font-size: 11px;
    line-height: 1.35;
}
.guide-v3--review .sidebar .guide-catalog-card-head .guide-catalog-profile-copy > small {
    margin-top: 1px;
    font-size: 10px;
    line-height: 1.35;
}
.guide-v3--review .sidebar .guide-catalog-card-head > .guide-catalog-offer-link {
    margin-top: 0;
}
.guide-v3 .guide-catalog-table tbody td::before { color: #707b75; }
.guide-v3 .guide-catalog-table tbody td[data-label="Target"] { color: var(--v3-mint); }
.guide-v3 .guide-catalog-table-wrap,
.guide-v3 :is(.guide-catalog-card, .guide-provider-card, .guide-exchange-card) {
    border-color: var(--v3-rule);
    background: rgba(255, 255, 255, .018);
}
.guide-v3 .guide-provider-card[data-provider-slug="traders-second-brain"] {
    border-color: rgba(98, 229, 195, .24);
}
.guide-v3 .guide-provider-grid[data-provider-layout="market-first-benchmark"] > .guide-provider-card[data-provider-ownership="first-party"],
.guide-v3 .guide-provider-grid:has(> .guide-provider-card:nth-child(3)) > .guide-provider-card[data-provider-ownership="first-party"]:last-child:nth-child(odd) {
    display: grid;
    grid-template-columns: minmax(250px, .62fr) minmax(0, 1.38fr);
    column-gap: 32px;
    align-content: start;
}
.guide-v3 .guide-provider-grid[data-provider-layout="market-first-benchmark"] > .guide-provider-card[data-provider-ownership="first-party"] > .guide-provider-benchmark-summary,
.guide-v3 .guide-provider-grid:has(> .guide-provider-card:nth-child(3)) > .guide-provider-card[data-provider-ownership="first-party"]:last-child:nth-child(odd) > .guide-provider-benchmark-summary {
    grid-column: 1;
    min-width: 0;
}
.guide-v3 .guide-provider-grid[data-provider-layout="market-first-benchmark"] > .guide-provider-card[data-provider-ownership="first-party"] > .guide-provider-facts,
.guide-v3 .guide-provider-grid:has(> .guide-provider-card:nth-child(3)) > .guide-provider-card[data-provider-ownership="first-party"]:last-child:nth-child(odd) > .guide-provider-facts {
    grid-column: 2;
    grid-row: 1;
    margin-bottom: 0;
}
.guide-v3 .guide-provider-grid[data-provider-layout="market-first-benchmark"] > .guide-provider-card[data-provider-ownership="first-party"] > .guide-provider-advantages,
.guide-v3 .guide-provider-grid:has(> .guide-provider-card:nth-child(3)) > .guide-provider-card[data-provider-ownership="first-party"]:last-child:nth-child(odd) > .guide-provider-advantages {
    grid-column: 1 / -1;
    grid-row: 2;
    margin: 22px 0 0;
}
.guide-v3 .guide-provider-grid[data-provider-layout="market-first-benchmark"] > .guide-provider-card[data-provider-ownership="first-party"] > .guide-catalog-actions,
.guide-v3 .guide-provider-grid:has(> .guide-provider-card:nth-child(3)) > .guide-provider-card[data-provider-ownership="first-party"]:last-child:nth-child(odd) > .guide-catalog-actions {
    grid-column: 1 / -1;
    grid-row: 3;
    margin-top: 22px;
}
.guide-v3 .guide-provider-card[data-provider-slug="traders-second-brain"] .guide-catalog-logo {
    box-sizing: border-box;
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    /* The first-party asset is a wide lettermark, so it needs less inset than
       the square app icons while keeping the same 48px identity slot. */
    padding: 4px;
    border: 1px solid var(--v3-rule-strong);
    border-radius: 8px;
    background: #000;
}
.guide-v3 .guide-provider-card[data-provider-slug="traders-second-brain"] .guide-catalog-logo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.guide-v3 .guide-provider-advantages {
    display: grid;
    /* The labels grow in length from left to right; give the last promise
       enough room without changing the card width or the three-part rhythm. */
    grid-template-columns: minmax(0, .9fr) minmax(0, 1fr) minmax(0, 1.1fr);
    gap: 0;
    margin: 0 0 18px;
    padding: 12px 0;
    border-block: 1px solid rgba(98, 229, 195, .22);
    list-style: none;
}
.guide-v3 .guide-provider-advantages li {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 8px;
    padding: 0 12px;
    color: #c9d5d0;
    font-size: 11px;
    font-weight: 750;
    line-height: 1.45;
    white-space: nowrap;
}
.guide-v3 .guide-provider-advantages li:first-child { padding-left: 0; }
.guide-v3 .guide-provider-advantages li + li { border-left: 1px solid var(--v3-rule); }
.guide-v3 .guide-provider-advantages svg {
    flex: 0 0 auto;
    width: 14px;
    height: 14px;
    color: var(--v3-mint);
}
.guide-v3 .guide-catalog-actions > :is(a, span):not(.guide-catalog-cta, .guide-catalog-secondary-cta) {
    color: var(--v3-muted);
    font-weight: 650;
}
.guide-v3 .guide-catalog-actions > a:not(.guide-catalog-cta, .guide-catalog-secondary-cta):hover {
    color: var(--v3-mint);
}
.guide-v3 .guide-catalog-actions .guide-catalog-cta {
    border-color: var(--v3-action);
    border-radius: 8px;
    background: var(--v3-action);
    color: #04100c;
}
.guide-v3 .guide-catalog-actions .guide-catalog-cta:hover {
    border-color: var(--v3-action-hover);
    background: var(--v3-action-hover);
    color: #04100c;
}
.guide-v3 .guide-catalog-actions .guide-catalog-secondary-cta {
    border-color: var(--v3-rule-strong);
    background: transparent;
    color: var(--v3-text);
}
.guide-v3 .guide-catalog-actions .guide-catalog-secondary-cta:hover {
    border-color: var(--v3-mint);
    background: rgba(119, 205, 187, .06);
    color: var(--v3-mint);
}

/* The terminal action is a deliberate product panel, not another text row. */
.guide-v3 .author-box { padding-block: 32px; }
.guide-v3 .author-avatar {
    border: 0;
    border-radius: 10px;
}
.guide-v3 .product-cta,
.guide-v3 .prop-comparison-bridge {
    padding-block: 30px;
    border-block-color: var(--v3-rule-strong);
}
.guide-v3 .product-cta-button,
.guide-v3 .prop-comparison-bridge a {
    border-radius: 8px;
}
.guide-v3 .final-cta .product-cta {
    --guide-v3-terminal-pad: clamp(28px, 3vw, 38px);
    display: grid;
    grid-template-columns: minmax(300px, .72fr) minmax(560px, 1.28fr);
    align-items: stretch;
    gap: 0;
    min-height: 320px;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--v3-rule-strong);
    border-radius: 14px;
    background: #000;
}
.guide-v3 .final-cta .product-cta-copy {
    box-sizing: border-box;
    display: flex;
    width: 100%;
    max-width: none;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    align-self: stretch;
    padding: var(--guide-v3-terminal-pad);
    background: #000;
}
.guide-v3 .final-cta .product-cta-kicker { margin: 0 0 13px; }
.guide-v3 .final-cta .product-cta-identity {
    display: block;
    margin: -6px 0 15px;
    color: #8e9893;
    font: 600 10px/1.45 "DM Mono", monospace;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.guide-v3 .final-cta .product-cta-title {
    max-width: 11ch;
    font-size: clamp(38px, 3.35vw, 52px);
    line-height: .98;
}
.guide-v3 .final-cta .product-cta-text {
    max-width: 42ch;
    margin: 18px 0 0;
    font-size: 16px;
    line-height: 1.55;
}
.guide-v3 .final-cta .product-cta-button {
    min-width: 210px;
    min-height: 52px;
    align-self: flex-start;
    margin-top: 24px;
    padding-inline: 24px;
}
.guide-v3 .final-cta .product-cta-media,
.guide-v3 .final-cta .product-cta--wide-art .product-cta-media {
    display: flex;
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    align-items: flex-end;
    align-self: stretch;
    justify-self: end;
    min-width: 0;
    max-width: 100%;
    margin: 0;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: #000;
}
.guide-v3 .final-cta .product-cta-media-art,
.guide-v3 .final-cta .product-cta--wide-art .product-cta-media-art {
    display: block;
    width: 100%;
    height: auto;
    max-height: 100%;
    align-self: flex-end;
    border-radius: 0;
    background: #000;
    object-fit: contain;
    object-position: center bottom;
    transform: none;
}
.guide-v3 .prop-comparison-bridge a.prop-comparison-bridge-primary {
    border-color: var(--v3-action);
    background: var(--v3-action);
    color: #04100c;
}
.guide-v3 .faq-question { min-height: 66px; }
.guide-v3 .related-section .related-card { min-height: 150px; }
.guide-v3 .related-section .related-card:hover h3 { color: var(--v3-text); text-decoration: underline; text-decoration-color: var(--v3-mint); text-underline-offset: .2em; }
.guide-v3 .guide-integration-links .related-grid:has(> :only-child) {
    grid-template-columns: minmax(0, 1fr);
}
.guide-v3 .guide-integration-links .related-grid:has(> :only-child) > .related-card {
    display: grid;
    grid-template-columns: var(--v3-rail) minmax(0, 1fr);
    column-gap: var(--v3-gap);
    min-height: 0;
    padding: 22px 0;
    border-right: 0;
}
.guide-v3 .guide-integration-links .related-grid:has(> :only-child) > .related-card .related-card-top {
    grid-column: 1;
    grid-row: 1 / span 2;
    align-items: flex-start;
}
.guide-v3 .guide-integration-links .related-grid:has(> :only-child) > .related-card h3 {
    grid-column: 2;
    grid-row: 1;
    margin: 0 0 8px;
}
.guide-v3 .guide-integration-links .related-grid:has(> :only-child) > .related-card p {
    grid-column: 2;
    grid-row: 2;
    max-width: 72ch;
}
.guide-v3 .related-section:last-of-type { margin-bottom: 0; }
body.guide-v3 .lz-footer { margin-top: 0; }

@media (min-width: 1180px) and (max-width: 1439px) {
    .guide-v3 {
        --v3-rail: 176px;
        --v3-side: clamp(282px, 24vw, 300px);
        --v3-gap: 26px;
    }
    .guide-v3 .container { padding-inline: 26px; }
}

@media (max-width: 1179px) {
    .guide-v3 { font-size: 16px; }
    .guide-v3 .container { padding: 82px 26px 0; }
    /* The opening decision is a direct child of the reading-stage flex stack.
       Give it an explicit slot so it cannot jump ahead of the article header
       when the desktop grid collapses. */
    .guide-v3 .guide-v3-opening { order: 4; width: 100%; }
    .guide-v3 .guide-v3-opening > p { max-width: 72ch; }
    .guide-v3 .tldr-box { padding-left: 0; }
    /* Once the hero stacks, the mint label already identifies the direct
       answer. Keep one closing rule instead of carrying the desktop label
       divider plus a top and bottom border into the responsive layout. */
    .guide-v3 .guide-v3-reading-stage > .tldr-box {
        padding: 10px 0 26px;
        border-top: 0;
        border-bottom: 1px solid var(--v3-rule);
    }
    .guide-v3 .guide-v3-reading-stage > .tldr-box .tldr-label {
        margin-bottom: 14px;
        padding-bottom: 0;
        border-bottom: 0;
    }
    .guide-v3 .guide-v3-reading-stage > .tldr-box + .guide-v3-catalog-stack .guide-catalog {
        padding-top: 0;
        border-top: 0;
    }
    /* The desktop rail owns breadcrumb and article metadata. In the stacked
       layout, do not let those repeated controls turn a closed TOC into a
       large empty panel: keep one disclosure row and reveal progress only
       together with the chapter list. */
    .guide-v3 .toc > :is(.back-link, .article-meta, .toc-title),
    .guide-v3 .toc > .guide-v3-toc-progress {
        display: none;
    }
    .guide-v3 .toc.is-mobile-open > .guide-v3-toc-progress {
        display: grid;
    }
    .guide-v3 .toc {
        margin: 4px 0 28px;
    }
    .guide-v3 .article-content { font-size: 16px; }
    .guide-v3--review .sidebar > .guide-catalog { order: 3; }
    .guide-v3 .guide-provider-grid[data-provider-layout="market-first-benchmark"] > .guide-provider-card[data-provider-ownership="first-party"],
    .guide-v3 .guide-provider-grid:has(> .guide-provider-card:nth-child(3)) > .guide-provider-card[data-provider-ownership="first-party"]:last-child:nth-child(odd) {
        display: flex;
    }
    .guide-v3 .guide-provider-grid[data-provider-layout="market-first-benchmark"] > .guide-provider-card[data-provider-ownership="first-party"] > .guide-provider-facts,
    .guide-v3 .guide-provider-grid:has(> .guide-provider-card:nth-child(3)) > .guide-provider-card[data-provider-ownership="first-party"]:last-child:nth-child(odd) > .guide-provider-facts {
        margin-bottom: 18px;
    }
}

@media (max-width: 900px) {
    .guide-v3 .final-cta .product-cta {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
        min-height: 0;
        padding: 0;
    }
    .guide-v3 .final-cta .product-cta-copy {
        width: 100%;
        max-width: none;
        padding: 26px;
    }
    .guide-v3 .final-cta .product-cta-title { max-width: 16ch; }
    .guide-v3 .final-cta .product-cta-media,
    .guide-v3 .final-cta .product-cta--wide-art .product-cta-media {
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 9;
        max-width: none;
        justify-self: stretch;
        margin-inline: 0;
        border-radius: 0;
    }
}

@media (max-width: 760px) {
    .guide-v3 .sidebar .sidebar-card.sidebar-tsb { padding: 18px; }
    .guide-v3 .guide-provider-advantages { grid-template-columns: minmax(0, 1fr); }
    .guide-v3 .guide-provider-advantages li,
    .guide-v3 .guide-provider-advantages li:first-child { padding: 8px 0; }
    .guide-v3 .guide-provider-advantages li + li {
        border-top: 1px solid var(--v3-rule);
        border-left: 0;
    }
    .guide-v3 .final-cta .product-cta {
        gap: 0;
        padding: 0;
        border-radius: 12px;
    }
    .guide-v3 .final-cta .product-cta-copy { padding: 22px 18px; }
    .guide-v3 .final-cta .product-cta-title {
        max-width: none;
        font-size: clamp(30px, 9vw, 38px);
    }
    .guide-v3 .final-cta .product-cta-button { width: 100%; }
    .guide-v3 .final-cta .product-cta-media,
    .guide-v3 .final-cta .product-cta--wide-art .product-cta-media {
        width: 100%;
        margin-inline: 0;
    }
}

@media (max-width: 760px) {
    .guide-v3 .container { padding: 72px 17px 0; }
    .guide-v3 .article-header h1 { font-size: clamp(2.45rem, 12vw, 3.45rem); }
    .guide-v3 .article-content h2 {
        margin-top: 34px;
        padding-top: 0;
        font-size: clamp(2rem, 9.8vw, 2.5rem);
    }
    .guide-v3 .article-content h3 { font-size: 23px; }
    .guide-v3 .article-content .guide-v3-content-grid > *,
    .guide-v3 .article-content .guide-v3-content-grid > :nth-child(even),
    .guide-v3 .article-content .guide-v3-content-grid > :nth-child(odd) {
        padding: 22px 0;
        border-left: 0;
    }
    .guide-v3 .article-content .quick-stats-banner.guide-v3-content-grid:not(.guide-v3-platform-matrix) {
        gap: 0;
        margin: 30px 0 38px;
        padding: 18px 0;
    }
    .guide-v3 .article-content .quick-stats-banner.guide-v3-content-grid:not(.guide-v3-platform-matrix) > .stat-side,
    .guide-v3 .article-content .quick-stats-banner.guide-v3-content-grid:not(.guide-v3-platform-matrix) > .stat-side:nth-child(even),
    .guide-v3 .article-content .quick-stats-banner.guide-v3-content-grid:not(.guide-v3-platform-matrix) > .stat-side:nth-child(odd) {
        padding: 0;
        border: 0;
    }
    .guide-v3 .article-content .quick-stats-banner.guide-v3-content-grid:not(.guide-v3-platform-matrix) > .stat-side + .stat-side {
        margin-top: 22px;
        padding-top: 20px;
        border-top: 1px solid var(--v3-rule);
    }
    .guide-v3 .article-content .guide-v2-worked-example > div,
    .guide-v3 .article-content .guide-v2-worked-example > div:nth-child(even),
    .guide-v3 .article-content .guide-v2-worked-example > div:nth-child(odd) {
        padding: 14px 0;
        border-left: 0;
    }
    .guide-v3 .article-content .guide-v2-derived-grid > article,
    .guide-v3 .article-content .guide-v2-derived-grid > article:nth-child(even),
    .guide-v3 .article-content .guide-v2-derived-grid > article:nth-child(odd) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px 22px;
        padding: 20px 0;
        border-left: 0;
    }
    .guide-v3 .article-content .guide-v2-derived-grid > article > *,
    .guide-v3 .article-content .guide-v2-derived-grid > article > :last-child { padding: 0; }
    .guide-v3 .article-content .guide-v2-derived-grid > article > span,
    .guide-v3 .article-content .guide-v2-derived-grid > article > p { grid-column: 1 / -1; }
    .guide-v3 .article-content .guide-v2-derived-grid > article > p { margin-top: 2px; }
    .guide-v3 .article-content .pros-cons.guide-v3-content-grid { gap: 36px; }
    .guide-v3 .article-content :is(.stat-grid, .stats-grid).guide-v3-content-grid > .stat-card,
    .guide-v3 .article-content :is(.stat-grid, .stats-grid).guide-v3-content-grid > .stat-card:nth-child(even),
    .guide-v3 .article-content :is(.stat-grid, .stats-grid).guide-v3-content-grid > .stat-card:nth-child(odd) {
        padding: 20px 0;
        border-left: 0;
        border-top: 1px solid var(--v3-rule);
    }
    .guide-v3 .article-content :is(.stat-grid, .stats-grid).guide-v3-content-grid > .stat-card:first-child {
        padding-top: 0;
        border-top: 0;
    }
    .guide-v3 .article-content .score-grid.guide-v3-content-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 22px;
    }
    .guide-v3 .article-content .audit-checklist > .audit-item,
    .guide-v3 .article-content .audit-checklist > .audit-item:nth-of-type(even) { padding: 15px 0; }
    .guide-v3 .article-content .audit-checklist > .score-grid {
        gap: 22px;
        padding-top: 24px;
    }
    .guide-v3 .article-content .audit-checklist > .score-grid > .score-card,
    .guide-v3 .article-content .audit-checklist > .score-grid > .score-card:first-child,
    .guide-v3 .article-content .audit-checklist > .score-grid > .score-card:last-child,
    .guide-v3 .article-content .audit-checklist > .score-grid > .score-card + .score-card {
        padding: 0;
        border: 0;
    }
    .guide-v3 .article-content :is(.choose-grid, .decision-grid, .vs-grid).guide-v3-content-grid > * {
        grid-template-columns: 30px minmax(0, 1fr);
        column-gap: 12px;
    }
    .guide-v3 .article-content :is(.guide-v2-answer-line, .article-callout):has(> span + p) {
        grid-template-columns: 1fr;
        gap: 9px;
    }
    .guide-v3 .article-content .guide-v2-answer-line.guide-v3-callout { grid-template-columns: 1fr; }
    .guide-v3 .article-content .guide-v2-checkout-panel.guide-v3-callout {
        margin-block: 38px 44px;
        padding-top: 18px;
    }
    .guide-v3 .article-content .guide-v2-checkout-panel > header > span { margin-bottom: 8px; }
    .guide-v3 .article-content .guide-v2-checkout-panel > header > h3 { font-size: 22px; }
    .guide-v3 .article-content .guide-v2-checkout-panel .guide-v2-checkout-options { margin-top: 16px; }
    .guide-v3 .article-content .guide-v2-checkout-options { grid-template-columns: minmax(0, 1fr); }
    .guide-v3 .article-content .guide-v2-checkout-options > a,
    .guide-v3 .article-content .guide-v2-checkout-options > a:first-child {
        justify-content: space-between;
        min-height: 58px;
        padding: 13px 0;
        border: 0;
        border-top: 1px solid var(--v3-rule);
    }
    .guide-v3 .article-content .guide-v2-checkout-options > a:first-child { border-top: 0; }
    .guide-v3 .article-content :is(.formula, .formula-block, .prompt-card, .formula-snippet, pre) { padding-left: 18px; }
    .guide-v3 .article-content .mention-grid.guide-v3-content-grid > .mention-card,
    .guide-v3 .article-content .mention-grid.guide-v3-content-grid > .mention-card:not(:has(.mention-price)) {
        grid-template-columns: minmax(0, 1fr);
        gap: 8px;
    }
    .guide-v3 .article-content .mention-card :is(.mention-name, .mention-price, .mention-desc) {
        width: auto;
        min-width: 0;
    }
    .guide-v3 .article-content :is(.journal-card-header, .alt-card-header, .tool-review-header, .reason-header, .template-header, .template-block-header, .formula-card-header, .perfect-entry-header, .trade-card-header, .example-header) {
        flex-direction: column;
        gap: 10px;
    }
    .guide-v3 .article-content .journal-price-block {
        flex: 0 1 auto;
        width: auto;
        text-align: left;
    }
    .guide-v3 .article-content .journal-card > .journal-verdict + p {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 4px;
    }
    .guide-v3 .article-content .journal-card > .journal-verdict + p > a,
    .guide-v3 .article-content .journal-card > .journal-verdict + p > a:first-child,
    .guide-v3 .article-content .journal-card > .journal-verdict + p > a:last-child {
        min-height: 40px;
        margin: 0;
        padding: 9px 0;
        border: 0;
        white-space: normal;
    }
    .guide-v3 .product-cta,
    .guide-v3 .prop-comparison-bridge { padding-inline: 0; }
    .guide-v3 .guide-integration-links .related-grid:has(> :only-child) > .related-card {
        display: block;
        padding: 18px 0;
    }
    .guide-v3 .guide-integration-links .related-grid:has(> :only-child) > .related-card h3 {
        margin: 20px 0 12px;
    }

    .guide-v3 .article-content .guide-v3-data-table[data-v3-columns="2"] { min-width: 0; }

    /* A comparison must read without sideways archaeology. The normalizer
       already preserves each column heading in data-label, so mobile can turn
       every decision row into a compact label/value register without changing
       the table's SSR text or semantics. */
    .guide-v3 .article-content .guide-v3-table-scroll:has(> .guide-v3-data-table[data-v3-columns]:not([data-v3-columns="2"])) {
        overflow: visible;
        border-block: 0;
    }
    .guide-v3 .article-content .guide-v3-data-table[data-v3-columns]:not([data-v3-columns="2"]) {
        min-width: 0;
        table-layout: auto;
    }
    .guide-v3 .article-content .guide-v3-data-table[data-v3-columns]:not([data-v3-columns="2"]) thead {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
        border: 0;
    }
    .guide-v3 .article-content .guide-v3-data-table[data-v3-columns]:not([data-v3-columns="2"]) thead tr,
    .guide-v3 .article-content .guide-v3-data-table[data-v3-columns]:not([data-v3-columns="2"]) thead th {
        display: block;
        width: 1px;
        min-width: 0;
        max-width: 1px;
        height: 1px;
        padding: 0;
        overflow: hidden;
        border: 0;
    }
    .guide-v3 .article-content .guide-v3-data-table[data-v3-columns]:not([data-v3-columns="2"]),
    .guide-v3 .article-content .guide-v3-data-table[data-v3-columns]:not([data-v3-columns="2"]) tbody {
        display: block;
        width: 100%;
    }
    .guide-v3 .article-content .guide-v3-data-table[data-v3-columns]:not([data-v3-columns="2"]) caption {
        display: block;
        width: 100%;
        max-width: none;
        margin: 0 0 14px;
        text-align: left;
    }
    .guide-v3 .article-content .guide-v3-data-table[data-v3-columns]:not([data-v3-columns="2"]) tbody tr {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
        padding: 18px 0;
        border-top: 1px solid var(--v3-rule-strong);
    }
    .guide-v3 .article-content .guide-v3-data-table[data-v3-columns]:not([data-v3-columns="2"]) tbody tr:last-child {
        border-bottom: 1px solid var(--v3-rule-strong);
    }
    .guide-v3 .article-content .guide-v3-data-table[data-v3-columns]:not([data-v3-columns="2"]) tbody > tr > :is(th, td) {
        display: grid;
        grid-template-columns: minmax(96px, .38fr) minmax(0, .62fr);
        gap: 14px;
        width: auto;
        min-width: 0;
        padding: 9px 0;
        box-sizing: border-box;
        border: 0;
    }
    .guide-v3 .article-content .guide-v3-data-table[data-v3-columns]:not([data-v3-columns="2"]) tbody > tr > :is(th, td)::before {
        color: var(--v3-muted);
        font: 500 9px/1.5 "DM Mono", monospace;
        letter-spacing: .065em;
        text-transform: uppercase;
        content: attr(data-label);
    }
    .guide-v3 .article-content .guide-v3-data-table[data-v3-columns]:not([data-v3-columns="2"]) tbody tr > :first-child {
        display: block;
        padding: 0 0 11px;
        color: var(--v3-text);
        font-weight: 680;
    }
    .guide-v3 .article-content .guide-v3-data-table[data-v3-columns]:not([data-v3-columns="2"]) tbody tr > :first-child::before {
        display: none;
    }
}

/* A legacy pair of platform bullet lists becomes an actual comparison matrix.
   The renderer supplies row metadata without changing the authored phrases. */
.guide-v3 .article-content .guide-v3-platform-matrix {
    display: grid;
    grid-template-columns: 128px repeat(2, minmax(0, 1fr));
    gap: 0;
    margin: 38px 0 44px;
    border-top: 1px solid var(--v3-rule-strong);
    border-bottom: 1px solid var(--v3-rule-strong);
}
.guide-v3 .article-content .guide-v3-platform-matrix::before {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    align-items: center;
    min-height: 62px;
    padding-right: 18px;
    color: var(--v3-muted);
    font: 600 9px/1.4 "DM Mono", monospace;
    letter-spacing: .1em;
    text-transform: uppercase;
    content: "Compare";
}
.guide-v3 .article-content .guide-v3-platform-matrix :is(.stat-side, .stat-badges, .stat-badge) {
    display: contents;
}
.guide-v3 .article-content .guide-v3-platform-matrix .stat-firm-name {
    display: flex;
    align-items: center;
    min-height: 62px;
    margin: 0;
    padding: 14px 22px;
    border-left: 1px solid var(--v3-rule);
    color: var(--v3-text);
    font-size: 18px;
    font-weight: 680;
}
.guide-v3 .article-content .guide-v3-platform-matrix .stat-side:first-child .stat-firm-name { grid-column: 2; grid-row: 1; }
.guide-v3 .article-content .guide-v3-platform-matrix .stat-side:nth-child(2) .stat-firm-name { grid-column: 3; grid-row: 1; }
.guide-v3 .article-content .guide-v3-platform-matrix .stat-badge[data-v3-matrix-label]::before,
.guide-v3 .article-content .guide-v3-platform-matrix .guide-v3-matrix-value {
    display: flex;
    align-items: center;
    min-height: 72px;
    border-top: 1px solid var(--v3-rule);
}
.guide-v3 .article-content .guide-v3-platform-matrix .stat-side:first-child .stat-badge::before {
    grid-column: 1;
    padding: 15px 18px 15px 0;
    color: var(--v3-muted);
    font: 600 9px/1.45 "DM Mono", monospace;
    letter-spacing: .075em;
    text-transform: uppercase;
    content: attr(data-v3-matrix-label);
}
.guide-v3 .article-content .guide-v3-platform-matrix .stat-side:nth-child(2) .stat-badge::before { display: none; }
.guide-v3 .article-content .guide-v3-platform-matrix .guide-v3-matrix-value {
    min-width: 0;
    padding: 15px 22px;
    border-left: 1px solid var(--v3-rule);
    color: var(--v3-copy);
    font-size: 14px;
    line-height: 1.55;
}
.guide-v3 .article-content .guide-v3-platform-matrix .stat-side:first-child .guide-v3-matrix-value { grid-column: 2; }
.guide-v3 .article-content .guide-v3-platform-matrix .stat-side:nth-child(2) .guide-v3-matrix-value { grid-column: 3; }
.guide-v3 .article-content .guide-v3-platform-matrix [data-v3-matrix-row="1"]::before,
.guide-v3 .article-content .guide-v3-platform-matrix [data-v3-matrix-row="1"] .guide-v3-matrix-value { grid-row: 2; }
.guide-v3 .article-content .guide-v3-platform-matrix [data-v3-matrix-row="2"]::before,
.guide-v3 .article-content .guide-v3-platform-matrix [data-v3-matrix-row="2"] .guide-v3-matrix-value { grid-row: 3; }
.guide-v3 .article-content .guide-v3-platform-matrix [data-v3-matrix-row="3"]::before,
.guide-v3 .article-content .guide-v3-platform-matrix [data-v3-matrix-row="3"] .guide-v3-matrix-value { grid-row: 4; }

@media (max-width: 760px) {
    .guide-v3 .article-content .guide-v3-platform-matrix {
        grid-template-columns: minmax(0, 1fr);
        border: 0;
    }
    .guide-v3 .article-content .guide-v3-platform-matrix::before {
        grid-column: 1;
        grid-row: 1;
        min-height: 0;
        padding: 0 0 12px;
        border-bottom: 1px solid var(--v3-rule-strong);
    }
    .guide-v3 .article-content .guide-v3-platform-matrix .stat-side {
        display: grid;
        grid-template-columns: 104px minmax(0, 1fr);
        min-width: 0;
        border-bottom: 1px solid var(--v3-rule-strong);
    }
    .guide-v3 .article-content .guide-v3-platform-matrix .stat-side:first-child { grid-column: 1; grid-row: 2; }
    .guide-v3 .article-content .guide-v3-platform-matrix .stat-side:nth-child(2) { grid-column: 1; grid-row: 3; margin-top: 22px; }
    .guide-v3 .article-content .guide-v3-platform-matrix .stat-firm-name,
    .guide-v3 .article-content .guide-v3-platform-matrix .stat-side:first-child .stat-firm-name,
    .guide-v3 .article-content .guide-v3-platform-matrix .stat-side:nth-child(2) .stat-firm-name {
        grid-column: 1 / -1;
        grid-row: 1;
        min-height: 54px;
        padding: 12px 0;
        border-left: 0;
    }
    .guide-v3 .article-content .guide-v3-platform-matrix .stat-side:nth-child(2) .stat-badge::before {
        display: flex;
    }
    .guide-v3 .article-content .guide-v3-platform-matrix .stat-badge::before,
    .guide-v3 .article-content .guide-v3-platform-matrix .stat-side:first-child .stat-badge::before {
        grid-column: 1;
        min-height: 0;
        padding: 14px 12px 14px 0;
    }
    .guide-v3 .article-content .guide-v3-platform-matrix .guide-v3-matrix-value,
    .guide-v3 .article-content .guide-v3-platform-matrix .stat-side:first-child .guide-v3-matrix-value,
    .guide-v3 .article-content .guide-v3-platform-matrix .stat-side:nth-child(2) .guide-v3-matrix-value {
        grid-column: 2;
        min-height: 0;
        padding: 14px 0 14px 16px;
    }
    .guide-v3 .article-content .guide-v3-platform-matrix [data-v3-matrix-row="1"]::before,
    .guide-v3 .article-content .guide-v3-platform-matrix [data-v3-matrix-row="1"] .guide-v3-matrix-value { grid-row: 2; }
    .guide-v3 .article-content .guide-v3-platform-matrix [data-v3-matrix-row="2"]::before,
    .guide-v3 .article-content .guide-v3-platform-matrix [data-v3-matrix-row="2"] .guide-v3-matrix-value { grid-row: 3; }
    .guide-v3 .article-content .guide-v3-platform-matrix [data-v3-matrix-row="3"]::before,
    .guide-v3 .article-content .guide-v3-platform-matrix [data-v3-matrix-row="3"] .guide-v3-matrix-value { grid-row: 4; }
}

/* Non-catalog guides still need a concrete handoff from the answer-first hero
   into the article. Curated snapshots use only facts already present in the
   article; they are functional orientation, not decorative mock imagery. */
@media (min-width: 1180px) {
    .guide-v3--has-editorial-snapshot .guide-v3-reading-stage {
        position: relative;
    }
    .guide-v3--has-editorial-snapshot .guide-v3-reading-stage > .tldr-box {
        position: absolute;
        inset: 0 0 auto auto;
        z-index: 1;
        width: var(--v3-side);
        align-self: start;
    }
}
.guide-v3 .article-content .guide-v3-editorial-snapshot {
    width: 100%;
    margin: 0 0 32px;
    padding: 0;
    border-top: 1px solid var(--v3-rule-strong);
    background: var(--v3-panel);
}
.guide-v3 .article-content .guide-v3-editorial-snapshot > header {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    gap: 28px;
    align-items: start;
    padding: 27px 28px 25px;
}
.guide-v3 .article-content .guide-v3-editorial-snapshot-eyebrow {
    padding-top: 5px;
    color: var(--v3-mint);
    font: 600 9px/1.45 "DM Mono", monospace;
    letter-spacing: .11em;
    text-transform: uppercase;
}
.guide-v3 .article-content .guide-v3-editorial-snapshot h2 {
    max-width: none;
    margin: 0 0 7px;
    color: var(--v3-text);
    font-size: 27px;
    line-height: 1.08;
    letter-spacing: -.035em;
}
.guide-v3 .article-content .guide-v3-editorial-snapshot header p {
    max-width: 62ch;
    margin: 0;
    color: var(--v3-muted);
    font-size: 13px;
    line-height: 1.55;
}
.guide-v3 .article-content .guide-v3-editorial-snapshot ol {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    max-width: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--v3-rule);
    border-bottom: 1px solid var(--v3-rule-strong);
    list-style: none;
}
.guide-v3 .article-content .guide-v3-editorial-snapshot li {
    position: relative;
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 3px 12px;
    align-content: start;
    min-width: 0;
    min-height: 158px;
    margin: 0;
    padding: 22px 28px 24px;
}
.guide-v3 .article-content .guide-v3-editorial-snapshot li > a {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 3px 12px;
    align-content: start;
    min-width: 0;
    min-height: 158px;
    padding: 22px 28px 24px;
    color: inherit;
    text-decoration: none;
}
.guide-v3 .article-content .guide-v3-editorial-snapshot li:has(> a) {
    display: block;
    padding: 0;
}
.guide-v3 .article-content .guide-v3-editorial-snapshot li > a:hover strong,
.guide-v3 .article-content .guide-v3-editorial-snapshot li > a:focus-visible strong {
    color: var(--v3-mint);
}
.guide-v3 .article-content .guide-v3-editorial-snapshot li > a:focus-visible {
    outline: 1px solid var(--v3-mint);
    outline-offset: -1px;
}
.guide-v3 .article-content .guide-v3-editorial-snapshot ol > li + li {
    margin-top: 0;
    border-left: 1px solid var(--v3-rule);
}
.guide-v3 .article-content .guide-v3-editorial-snapshot-step,
.guide-v3 .article-content .guide-v3-editorial-snapshot-label {
    color: var(--v3-muted);
    font: 600 9px/1.5 "DM Mono", monospace;
    letter-spacing: .075em;
    text-transform: uppercase;
}
.guide-v3 .article-content .guide-v3-editorial-snapshot strong {
    grid-column: 1 / -1;
    display: block;
    margin-top: 13px;
    color: var(--v3-text);
    font-size: 18px;
    line-height: 1.3;
    letter-spacing: -.02em;
}
.guide-v3 .article-content .guide-v3-editorial-snapshot li p {
    grid-column: 1 / -1;
    max-width: none;
    margin: 5px 0 0;
    color: #929b97;
    font-size: 12px;
    line-height: 1.55;
}
.guide-v3 .guide-v3-article-with-snapshot > .guide-v3-editorial-snapshot + .article-callout.guide-v3-callout {
    margin: 0 0 42px;
    padding: 18px 28px 21px 206px;
    border: 0;
    border-bottom: 1px solid var(--v3-rule-strong);
    background: var(--v3-panel);
    color: #98a19d;
}
.guide-v3 .guide-v3-article-with-snapshot > .guide-v3-editorial-snapshot + .article-callout.guide-v3-callout p {
    max-width: 68ch;
    margin: 0;
    font-size: 12px;
    line-height: 1.6;
}
.guide-v3 .guide-v3-article-with-snapshot > .guide-v3-editorial-snapshot + .article-callout.guide-v3-callout strong {
    color: var(--v3-copy);
}

/* The three-rail page makes the article column narrow only in this desktop
   range. Give long snapshot details enough vertical clearance instead of
   letting their final line sit against the closing rule. */
@media (min-width: 1180px) and (max-width: 1439px) {
    .guide-v3 .article-content .guide-v3-editorial-snapshot li {
        min-height: 190px;
        padding: 26px 24px 32px;
    }
    .guide-v3 .article-content .guide-v3-editorial-snapshot li:has(> a) { padding: 0; }
    .guide-v3 .article-content .guide-v3-editorial-snapshot li > a {
        min-height: 190px;
        padding: 26px 24px 32px;
    }
    .guide-v3 .article-content .guide-v3-editorial-snapshot strong {
        margin-top: 15px;
    }
    .guide-v3 .article-content .guide-v3-editorial-snapshot li p {
        margin-top: 8px;
        line-height: 1.65;
    }
}

@media (max-width: 760px) {
    .guide-v3 .article-content .guide-v3-editorial-snapshot > header {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
        padding: 22px 18px 20px;
    }
    .guide-v3 .article-content .guide-v3-editorial-snapshot-eyebrow { padding-top: 0; }
    .guide-v3 .article-content .guide-v3-editorial-snapshot h2 { font-size: 25px; }
    .guide-v3 .article-content .guide-v3-editorial-snapshot ol {
        grid-template-columns: minmax(0, 1fr);
    }
    .guide-v3 .article-content .guide-v3-editorial-snapshot li {
        min-height: 0;
        padding: 19px 18px 21px;
    }
    .guide-v3 .article-content .guide-v3-editorial-snapshot li:has(> a) { padding: 0; }
    .guide-v3 .article-content .guide-v3-editorial-snapshot li > a {
        min-height: 0;
        padding: 19px 18px 21px;
    }
    .guide-v3 .article-content .guide-v3-editorial-snapshot ol > li + li {
        border-top: 1px solid var(--v3-rule);
        border-left: 0;
    }
    .guide-v3 .guide-v3-article-with-snapshot > .guide-v3-editorial-snapshot + .article-callout.guide-v3-callout {
        padding: 17px 18px 20px;
    }
}

/* A direct Quick Answer is editorial context for the hero, not a permanent
   sidebar. On desktop, give it the full content measure below the title so a
   longer answer cannot inflate the title row and leave a false empty panel.
   Review pages keep their product-specific rail; curated snapshot pages keep
   their deliberately paired hero composition. */
@media (min-width: 1180px) {
    body.guide-v3:not(.guide-v3--review):not(.guide-v3--has-editorial-snapshot) .article-header {
        grid-column: 2 / -1;
        grid-row: 1;
        align-self: start;
        padding-bottom: 32px;
    }

    body.guide-v3:not(.guide-v3--review):not(.guide-v3--has-editorial-snapshot) .article-header h1 {
        max-width: none;
    }

    body.guide-v3:not(.guide-v3--review):not(.guide-v3--has-editorial-snapshot) .article-intro {
        max-width: 72ch;
    }

    body.guide-v3:not(.guide-v3--review):not(.guide-v3--has-editorial-snapshot) .guide-v3-reading-stage > .tldr-box {
        grid-column: 2 / -1;
        grid-row: 2;
        align-self: start;
        display: grid;
        grid-template-columns: 170px minmax(0, 1fr);
        gap: var(--v3-gap);
        width: 100%;
        margin: 0 0 24px;
        padding: 20px 0 0;
        border: 0;
        border-top: 1px solid var(--v3-rule-strong);
    }

    body.guide-v3:not(.guide-v3--review):not(.guide-v3--has-editorial-snapshot) .guide-v3-reading-stage > .tldr-box .tldr-label {
        margin: 0;
        padding: 3px 0 0;
        border-bottom: 0;
    }

    body.guide-v3:not(.guide-v3--review):not(.guide-v3--has-editorial-snapshot) .guide-v3-reading-stage > .tldr-box .tldr-text {
        max-width: 92ch;
        margin: 0;
    }

    body.guide-v3:not(.guide-v3--review):not(.guide-v3--has-editorial-snapshot) .guide-v3-catalog-stack {
        grid-row: 3;
    }

    /* Direct-answer guides can carry both a live catalog and an approved
       editorial cover. Keep the cover in its own track below the catalog;
       sharing row 3 makes both full-width surfaces paint over one another. */
    body.guide-v3:not(.guide-v3--review):not(.guide-v3--has-editorial-snapshot) .hero-image-wrap.guide-v3-approved-cover {
        grid-row: 4;
    }
}

/* Review heroes already provide their own bottom rhythm. Do not add the
   article's generic first-block offset on top of it. */
.guide-v3--review .article-content > .verdict-box-review:first-child {
    margin-top: 0;
}
