.compare-hero {
            background: var(--bg-primary);
            padding: 10rem 0 6rem;
            text-align: center;
        }
        .compare-hero h1 {
            font-size: clamp(3.5rem, 3.2vw + 1.8rem, 4.5rem);
            color: var(--text-heading-on-dark);
            line-height: 1.02;
            margin-bottom: 1.5rem;
            max-width: 750px;
            margin-left: auto;
            margin-right: auto;
        }
        .compare-hero-sub {
            font-size: 1.15rem;
            color: var(--text-on-dark);
            max-width: 620px;
            margin: 0 auto;
            line-height: 1.7;
        }

        /* Comparison table */
        .compare-table-wrap {
            max-width: 900px;
            margin: 0 auto;
        }
        .compare-table {
            width: 100%;
            border-collapse: collapse;
            border-radius: var(--radius-ledger);
            overflow: hidden;
            box-shadow: var(--elev-1);
        }
        .compare-table th {
            padding: 1.25rem 1.5rem;
            text-align: left;
            font-family: 'DM Sans', sans-serif;
            font-size: 0.85rem;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.06em;
        }
        .compare-table thead {
            border-top: 2px solid var(--navy-800);
            border-bottom: 1px solid var(--navy-800);
        }
        .compare-table th:first-child {
            background: transparent;
            color: var(--text-secondary);
            width: 30%;
        }
        .compare-table th:nth-child(2) {
            background: transparent;
            color: var(--gold-ink);
            width: 35%;
        }
        .compare-table th:nth-child(3) {
            background: transparent;
            color: var(--text-secondary);
            width: 35%;
        }
        .compare-table td {
            padding: 1rem 1.5rem;
            font-size: 0.95rem;
            line-height: 1.6;
            vertical-align: top;
            border-bottom: 1px solid var(--border-subtle);
        }
        .compare-table td:first-child {
            font-weight: 600;
            color: var(--text-primary);
        }
        .compare-table td:nth-child(2) {
            color: var(--text-primary);
        }
        .compare-table td:nth-child(3) {
            color: var(--text-secondary);
        }
        .compare-table .highlight-value {
            color: var(--gold-ink);
            font-weight: 700;
        }

        /* W-2B: alternating rows for scan rhythm (institutional restraint). */
        .compare-table tbody tr:nth-child(even) {
            background: rgba(15, 23, 42, 0.025);
        }

        /* W-4: row hover highlight — 2x the zebra (perceptible, restrained). */
        .compare-table tbody tr:hover {
            background: rgba(15, 23, 42, 0.05);
        }

        /* Positioning callout */
        .positioning {
            max-width: 680px;
            margin: 0 auto;
            text-align: center;
        }
        .positioning blockquote {
            font-family: 'EB Garamond', serif;
            font-size: 1.3rem;
            color: var(--text-heading-on-dark);
            line-height: 1.6;
            border-left: 3px solid var(--accent);
            padding-left: 1.5rem;
            text-align: left;
            margin: 0 auto 1.5rem;
            max-width: 600px;
        }
        .positioning p {
            color: var(--text-on-dark);
            line-height: 1.7;
        }

        .compare-cta {
            background: var(--bg-primary);
            text-align: center;
        }

        .process-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 2rem;
        }

        @media (max-width: 768px) {
            .compare-hero { padding: 7rem 0 4rem; text-align: left; }
            .compare-hero h1 { font-size: 2.75rem; line-height: 1.05; margin-left: 0; }
            .compare-hero-sub { margin-left: 0; }
            .compare-table-wrap { overflow-x: auto; }
            .compare-table th, .compare-table td { padding: 0.75rem 1rem; font-size: 0.85rem; }
            .process-grid { grid-template-columns: 1fr; }
            /* COMPARE-MOBILE-1 (2026-08-08 — the planner's raster
               catch, R114): the side-by-side table clipped its right
               column at 375px (every Traditional cell cut at the
               viewport edge). The table STACKS at mobile — the page's
               own collapse grammar: each row becomes a card, the row
               label first, then the Northscope and Traditional cells
               with their own inline labels. Nothing clips; no hidden
               horizontal scroll. Desktop untouched — these rules live
               only inside this block (pinned). */
            .compare-table, .compare-table thead, .compare-table tbody,
            .compare-table tr, .compare-table td {
                display: block;
                width: 100%;
            }
            .compare-table thead { display: none; }
            .compare-table tr {
                border: 1px solid var(--border-subtle);
                border-radius: 10px;
                margin-bottom: 1rem;
                padding: 0.9rem 1rem;
                background: var(--bg-card);
            }
            .compare-table td {
                border-bottom: none;
                padding: 0.35rem 0;
                font-size: 0.92rem;
            }
            .compare-table td:first-child {
                font-family: 'DM Sans', sans-serif;
                font-size: 0.78rem;
                font-weight: 600;
                text-transform: uppercase;
                letter-spacing: 0.06em;
                color: var(--text-muted);
                padding-bottom: 0.6rem;
            }
            .compare-table td:nth-child(2)::before {
                content: 'Northscope: ';
                font-weight: 700;
                color: var(--gold-ink);
            }
            .compare-table td:nth-child(3)::before {
                content: 'Traditional DD: ';
                font-weight: 600;
                color: var(--text-secondary);
            }
        }

        /* ── WEB-FIX-3 (P15, 2026-08-31): the positioning section's
           navy surface lives in the sheet (the inline background was
           dead under the strict CSP; the light ink went invisible on
           ivory). */
        .positioning-section {
            background: var(--bg-primary);
        }

        /* ── P16 1g: the residual inline styles live here */
        .compare-section--ivory {
            background: linear-gradient(180deg, #f8f7f4 0%, #f0eeeb 100%);
        }
        .compare-section--ivory .positioning blockquote { color: var(--text-primary); }
        .compare-section--ivory .positioning p { color: var(--text-secondary); }
        .compare-footnote {
            text-align: center;
            color: var(--text-secondary);
            font-size: 0.85rem;
            margin-top: 1rem;
        }
        .compare-stat-accent { color: var(--accent); }
        .compare-center { text-align: center; }
