/*
 * CHANGE LOG
 * File: public/css/carrier-detail.css
 * Purpose: Scoped stylesheet for the v2 public carrier detail page.
 *          All rules are nested under the .cdv2 wrapper so this file
 *          cannot affect other marketplace pages.
 * Parent:  resources/views/marketplace/carrier-detail.blade.php
 * Mockup:  carrier_page_mockup.html (v1, 2026-04-18)
 * Version History:
 *   2026-04-19 v1.0 — Initial port from mockup. Fonts (EB Garamond,
 *                     Barlow Condensed) linked inline from the blade via
 *                     @section('style'). CSS vars scoped to .cdv2 so
 *                     they do not leak into the rest of marketplace.css.
 */

.cdv2 {
    --brand-navy:       #1a2744;
    --brand-navy-deep:  #0f1a30;
    --brand-gold:       #b8922a;
    --brand-gold-light: #d4aa45;
    --brand-cream:      #f9f6ef;
    --brand-cream-dim:  #ede8dc;
    --brand-ink:        #2c2c2c;
    --brand-rule:       #c8b89a;
    --brand-muted:      #888888;

    --ink-1: #111827;
    --ink-2: #1f2937;
    --ink-3: #374151;
    --ink-4: #4b5563;
    --ink-5: #6b7280;
    --ink-6: #9ca3af;
    --ink-7: #d1d5db;
    --ink-8: #e5e7eb;
    --ink-9: #f3f4f6;
    --ink-10: #f9fafb;
    --ink-white: #ffffff;

    --state-ok:       #16a34a;
    --state-ok-bg:    #dcfce7;
    --state-ok-ink:   #166534;
    --state-warn:     #b45309;
    --state-warn-bg:  #fef3c7;
    --state-warn-ink: #92400e;
    --state-info:     #2563eb;
    --state-info-bg:  #eff6ff;
    --state-info-ink: #1e40af;

    --font-serif: 'EB Garamond', Georgia, 'Times New Roman', serif;
    --font-ui:    'Barlow Condensed', -apple-system, 'Segoe UI', Roboto, sans-serif;

    font-family: var(--font-ui);
    color: var(--ink-2);
    background: var(--brand-cream);
    font-size: 16px;
    line-height: 1.5;
    max-width: 1100px;
    margin: 0 auto;
    padding: 32px 24px 80px;
    display: block;
}

.cdv2 * { box-sizing: border-box; }
.cdv2 h1, .cdv2 h2, .cdv2 h3 {
    font-family: var(--font-serif);
    color: var(--brand-navy);
    font-weight: 700;
    letter-spacing: -0.01em;
    margin: 0;
}

/* --- HERO --- */
.cdv2 .hero {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 32px;
    padding: 28px 32px;
    background: var(--ink-white);
    border: 1px solid var(--ink-8);
    border-top: 4px solid var(--brand-navy);
    margin-bottom: 28px;
}
.cdv2 .hero-name { font-size: 2.1rem; line-height: 1.1; margin-bottom: 8px; }
.cdv2 .hero-dba {
    font-family: var(--font-serif); font-style: italic;
    color: var(--ink-5); font-size: 1.15rem; margin-bottom: 16px;
}
.cdv2 .hero-chips { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 20px; }
.cdv2 .chip {
    display: inline-block;
    padding: 4px 10px;
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border-radius: 3px;
}
.cdv2 .chip-ok      { background: var(--state-ok-bg);   color: var(--state-ok-ink); }
.cdv2 .chip-info    { background: var(--state-info-bg); color: var(--state-info-ink); }
.cdv2 .chip-gold    { background: var(--brand-cream-dim); color: var(--brand-navy);
                       border: 1px solid var(--brand-rule); }
.cdv2 .chip-warn    { background: var(--state-warn-bg); color: var(--state-warn-ink); }

.cdv2 .hero-lead {
    font-family: var(--font-serif);
    font-size: 1.2rem;
    line-height: 1.5;
    color: var(--ink-3);
    margin-bottom: 20px;
    font-style: italic;
    border-left: 3px solid var(--brand-gold);
    padding-left: 16px;
}

.cdv2 .hero-id-grid {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 6px 14px;
    font-size: 0.92rem;
    margin: 0;
}
.cdv2 .hero-id-grid dt {
    color: var(--ink-5); text-transform: uppercase;
    font-size: 0.72rem; letter-spacing: 0.08em; padding-top: 3px;
}
.cdv2 .hero-id-grid dd { margin: 0; color: var(--ink-2); font-weight: 500; }

.cdv2 .hero-media {
    background: linear-gradient(135deg, var(--brand-navy) 0%, var(--brand-navy-deep) 100%);
    border-radius: 4px;
    display: flex; align-items: center; justify-content: center;
    min-height: 260px; position: relative; overflow: hidden;
}
.cdv2 .hero-media::before {
    content: ''; position: absolute; inset: 0;
    background: repeating-linear-gradient(45deg, transparent, transparent 20px,
                rgba(212,170,69,0.04) 20px, rgba(212,170,69,0.04) 21px);
}
.cdv2 .hero-media-placeholder {
    position: relative; text-align: center;
    color: var(--brand-gold-light); padding: 24px;
}
.cdv2 .hero-media-icon { font-size: 2.4rem; margin-bottom: 8px; font-family: var(--font-serif); }
.cdv2 .hero-media-label {
    font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.15em;
    color: var(--brand-gold-light); opacity: 0.85;
}
.cdv2 .hero-media-hint {
    font-size: 0.78rem; color: var(--ink-white); opacity: 0.5;
    margin-top: 10px; font-style: italic;
}
.cdv2 .hero-media-img {
    width: 100%; height: 100%; object-fit: cover;
    position: absolute; inset: 0;
}

/* --- Sections (shared) --- */
.cdv2 .sec {
    background: var(--ink-white);
    border: 1px solid var(--ink-8);
    padding: 24px 32px;
    margin-bottom: 20px;
}
.cdv2 .sec h2 {
    font-size: 1.35rem;
    border-bottom: 1px solid var(--brand-rule);
    padding-bottom: 10px;
    margin-bottom: 18px;
}
.cdv2 .sec-kicker {
    color: var(--ink-5); font-size: 0.76rem;
    text-transform: uppercase; letter-spacing: 0.12em;
    margin-bottom: 4px; display: block;
}

/* --- Business character --- */
.cdv2 .biz {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px 40px;
}
.cdv2 .biz-field { border-left: 2px solid var(--brand-gold); padding-left: 14px; }
.cdv2 .biz-label {
    font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.1em;
    color: var(--ink-5); margin-bottom: 4px;
}
.cdv2 .biz-value {
    font-family: var(--font-serif); font-size: 1.15rem;
    color: var(--ink-1); line-height: 1.4;
}
.cdv2 .biz-source {
    font-size: 0.72rem; color: var(--brand-muted);
    margin-top: 4px; font-style: italic;
}
.cdv2 .biz-missing {
    color: var(--ink-5); font-style: italic;
}

.cdv2 .cargo-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.cdv2 .cargo-tag {
    background: var(--brand-cream-dim); color: var(--brand-navy);
    padding: 3px 10px; font-size: 0.82rem;
    border: 1px solid var(--brand-rule); border-radius: 2px;
}

/* --- Operating snapshot --- */
.cdv2 .snap {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
.cdv2 .snap-item { text-align: left; border-top: 2px solid var(--ink-8); padding-top: 10px; }
.cdv2 .snap-item.hi { border-top-color: var(--brand-gold); }
.cdv2 .snap-n {
    font-family: var(--font-serif); font-size: 1.9rem; font-weight: 600;
    color: var(--brand-navy); line-height: 1;
}
.cdv2 .snap-unit { font-size: 0.78rem; color: var(--ink-5); margin-left: 4px; }
.cdv2 .snap-label {
    font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.1em;
    color: var(--ink-5); margin-top: 6px;
}
.cdv2 .snap-empty {
    font-family: var(--font-serif); font-size: 1.5rem;
    color: var(--ink-6);
}

/* --- Safety posture --- */
.cdv2 .safety-lead {
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: 24px;
    align-items: center;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--ink-8);
    margin-bottom: 18px;
}
.cdv2 .grade-block {
    text-align: center;
    padding: 14px;
    border: 2px solid var(--brand-gold);
    background: var(--brand-cream);
}
.cdv2 .grade-letter {
    font-family: var(--font-serif); font-size: 3.5rem; font-weight: 700;
    color: var(--brand-navy); line-height: 1;
}
.cdv2 .grade-letter--short { font-size: 3.5rem; }
.cdv2 .grade-letter--long  { font-size: 1.4rem; line-height: 1.15; padding: 10px 0; }
.cdv2 .grade-band {
    font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.12em;
    color: var(--ink-4); margin-top: 4px;
}
.cdv2 .grade-copy p { margin: 0; font-size: 0.98rem; color: var(--ink-3); line-height: 1.55; }
.cdv2 .grade-copy p + p { margin-top: 8px; }

.cdv2 .fmcsa-rating {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 16px;
    align-items: center;
    padding: 12px 14px;
    background: var(--ink-10);
    border-left: 3px solid var(--state-info);
    margin-bottom: 18px;
}
.cdv2 .fmcsa-rating-label {
    font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-5);
}
.cdv2 .fmcsa-rating-val {
    font-family: var(--font-serif); font-size: 1.3rem;
    color: var(--brand-navy); font-weight: 600;
}
.cdv2 .fmcsa-rating-date { font-size: 0.82rem; color: var(--ink-5); }

/* --- BASIC table --- */
.cdv2 table.sg {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 18px;
    font-size: 0.92rem;
}
.cdv2 .sg th, .cdv2 .sg td {
    padding: 9px 10px;
    text-align: left;
    border-bottom: 1px solid var(--ink-8);
}
.cdv2 .sg th {
    background: var(--ink-10);
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--ink-4);
    font-weight: 600;
}
.cdv2 .sg td.num { text-align: right; font-variant-numeric: tabular-nums; }
.cdv2 .pill {
    display: inline-block;
    padding: 2px 8px;
    font-size: 0.78rem;
    font-weight: 600;
    border-radius: 3px;
}
.cdv2 .pill-ok   { background: var(--state-ok-bg);   color: var(--state-ok-ink); }
.cdv2 .pill-warn { background: var(--state-warn-bg); color: var(--state-warn-ink); }
.cdv2 .pill-neutral { background: var(--ink-9); color: var(--ink-4); }

.cdv2 .oper-list { margin: 0; padding: 0; list-style: none; }
.cdv2 .oper-list li {
    padding: 5px 0; padding-left: 20px;
    position: relative;
    font-size: 0.95rem;
    color: var(--ink-3);
}
.cdv2 .oper-list.strengths li::before {
    content: ''; width: 6px; height: 6px;
    background: var(--state-ok); border-radius: 50%;
    position: absolute; left: 0; top: 12px;
}
.cdv2 .oper-list.notes li::before {
    content: ''; width: 6px; height: 6px;
    background: var(--state-warn); border-radius: 50%;
    position: absolute; left: 0; top: 12px;
}
.cdv2 .oper-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.cdv2 .oper-columns h3 {
    font-size: 0.88rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--ink-4);
    font-family: var(--font-ui);
    margin-bottom: 6px;
}

/* --- For shippers --- */
.cdv2 .shippers {
    background: linear-gradient(135deg, var(--brand-cream) 0%, var(--brand-cream-dim) 100%);
    border: 1px solid var(--brand-rule);
    border-top: 4px solid var(--brand-gold);
}
.cdv2 .shippers h2 { color: var(--brand-navy); }
.cdv2 .shippers h2::after {
    content: 'For Shippers and Brokers';
    display: block;
    font-family: var(--font-ui);
    font-size: 0.75rem;
    color: var(--ink-5);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-top: 4px;
    font-weight: 500;
}
.cdv2 .shippers-lead {
    font-family: var(--font-serif);
    font-size: 1.12rem;
    line-height: 1.55;
    color: var(--ink-2);
    margin-bottom: 20px;
}
.cdv2 .ship-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.cdv2 .ship-card {
    background: var(--ink-white);
    padding: 16px 18px;
    border: 1px solid var(--brand-rule);
}
.cdv2 .ship-card h3 {
    font-family: var(--font-ui);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--brand-navy);
    font-weight: 700;
    margin-bottom: 10px;
}
.cdv2 .ship-card-answer {
    font-family: var(--font-serif);
    font-size: 1.05rem;
    color: var(--ink-2);
    line-height: 1.5;
}

/* --- Carrier voice --- */
.cdv2 .voice {
    background: var(--ink-10);
    border-left: 3px solid var(--brand-gold);
    padding: 20px 28px;
    margin-bottom: 0;
    font-family: var(--font-serif);
    font-size: 1.02rem;
    line-height: 1.6;
    color: var(--ink-2);
    font-style: italic;
}
.cdv2 .voice-empty {
    background: var(--ink-10);
    border-left: 3px solid var(--ink-7);
    padding: 18px 28px;
    margin-bottom: 0;
    font-size: 0.95rem;
    color: var(--ink-5);
}
.cdv2 .voice-attrib {
    font-size: 0.8rem;
    color: var(--ink-5);
    font-family: var(--font-ui);
    font-style: normal;
    margin-top: 8px;
    letter-spacing: 0.04em;
}

/* --- Jobs --- */
.cdv2 .job {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 18px;
    padding: 14px 16px;
    border: 1px solid var(--ink-8);
    margin-bottom: 10px;
    background: var(--ink-white);
}
.cdv2 .job h3 {
    font-family: var(--font-ui);
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--brand-navy);
    margin-bottom: 4px;
}
.cdv2 .job-meta { font-size: 0.85rem; color: var(--ink-5); }
.cdv2 .job-apply {
    background: var(--state-ok);
    color: var(--ink-white);
    padding: 8px 18px;
    font-weight: 600;
    text-decoration: none;
    font-size: 0.88rem;
    align-self: center;
    border-radius: 3px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.cdv2 .jobs-empty {
    color: var(--ink-5);
    font-style: italic;
    font-size: 0.92rem;
}

/* --- Trust block --- */
.cdv2 .trust {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 24px;
    padding: 18px 24px;
    background: var(--ink-10);
    border: 1px solid var(--ink-8);
    font-size: 0.85rem;
    color: var(--ink-5);
}
.cdv2 .trust-item strong {
    display: block;
    color: var(--ink-3);
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 3px;
}
.cdv2 .trust-item a {
    color: var(--brand-navy);
    text-decoration: underline;
    text-decoration-color: var(--brand-gold);
}

/* --- Update carrier info --- */
.cdv2 .update-block {
    padding: 18px 24px;
    text-align: center;
    border: 1px dashed var(--brand-rule);
    background: var(--brand-cream);
    margin-bottom: 20px;
}
.cdv2 .update-block p { margin: 0; color: var(--ink-4); font-size: 0.95rem; }
.cdv2 .update-block a { color: var(--brand-navy); font-weight: 600; }

/* --- Breadcrumb nav --- */
.cdv2 .cdv2-nav {
    font-size: 0.85rem;
    color: var(--ink-5);
    margin-bottom: 16px;
}
.cdv2 .cdv2-nav a {
    color: var(--brand-navy);
    text-decoration: none;
}
.cdv2 .cdv2-nav a:hover { text-decoration: underline; }

/* --- Claimed badge --- */
.cdv2 .claimed-badge {
    display: inline-block;
    background: var(--state-info-bg);
    color: var(--state-info-ink);
    font-size: 0.72rem;
    font-weight: 600;
    padding: 3px 9px;
    border-radius: 3px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-left: 8px;
    vertical-align: middle;
}

/* --- Responsive --- */
@media (max-width: 820px) {
    .cdv2 .hero { grid-template-columns: 1fr; }
    .cdv2 .biz { grid-template-columns: 1fr; }
    .cdv2 .snap { grid-template-columns: repeat(2, 1fr); }
    .cdv2 .ship-grid { grid-template-columns: 1fr; }
    .cdv2 .trust { grid-template-columns: 1fr; }
    .cdv2 .oper-columns { grid-template-columns: 1fr; }
    .cdv2 .safety-lead { grid-template-columns: 1fr; }
    .cdv2 .grade-block { max-width: 200px; margin: 0 auto; }
}


/* =========================================================================
 * CDV3 — v3 carrier-detail blade rewrite (2026-04-21)
 *
 * Scoped under .cdv3 so these rules coexist with the older .cdv2 styles
 * above. The v3 blade uses its own DOM structure and class names; the two
 * layouts never share the same page, so there is no visual bleed.
 *
 * Inherits the same brand palette, fonts, and page max-width as .cdv2.
 * Section kickers + narrative-heavy layout is new in v3.
 * ========================================================================= */

.cdv3 {
    --brand-navy:       #1a2744;
    --brand-navy-deep:  #0f1a30;
    --brand-gold:       #b8922a;
    --brand-gold-light: #d4aa45;
    --brand-cream:      #f9f6ef;
    --brand-cream-dim:  #ede8dc;
    --brand-ink:        #2c2c2c;
    --brand-rule:       #c8b89a;
    --brand-muted:      #888888;

    /* Render fixes 2026-05-20:
       EB Garamond's discretionary ligatures + kerning interact badly
       with print/PDF engines and collapse inter-word space (produces
       "shippersand", "readsas", "REL ATED"). Disable explicitly. */
    font-variant-ligatures: none;
    font-feature-settings: "kern" 0, "liga" 0, "calt" 0;
    word-spacing: normal;
    letter-spacing: normal;

    --ink-1: #111827; --ink-2: #1f2937; --ink-3: #374151;
    --ink-4: #4b5563; --ink-5: #6b7280; --ink-6: #9ca3af;
    --ink-7: #d1d5db; --ink-8: #e5e7eb; --ink-9: #f3f4f6;
    --ink-10: #f9fafb; --ink-white: #ffffff;

    --state-ok:       #16a34a; --state-ok-bg:    #dcfce7; --state-ok-ink:   #166534;
    --state-warn:     #b45309; --state-warn-bg:  #fef3c7; --state-warn-ink: #92400e;
    --state-err:      #b91c1c; --state-err-bg:   #fee2e2; --state-err-ink:  #991b1b;
    --state-info:     #2563eb; --state-info-bg:  #eff6ff; --state-info-ink: #1e40af;

    --font-serif: 'EB Garamond', Georgia, 'Times New Roman', serif;
    --font-ui:    'Barlow Condensed', -apple-system, 'Segoe UI', Roboto, sans-serif;

    font-family: var(--font-ui);
    color: var(--ink-2);
    background: var(--brand-cream);
    font-size: 16px;
    line-height: 1.55;
    max-width: 1100px;
    margin: 0 auto;
    padding: 32px 24px 80px;
    display: block;
}
.cdv3 *        { box-sizing: border-box; }
.cdv3 h1,
.cdv3 h2,
.cdv3 h3       { font-family: var(--font-serif); color: var(--brand-navy); font-weight: 700; letter-spacing: -0.01em; margin: 0; }

/* --- Breadcrumb --- */
.cdv3-crumb    { font-size: 0.85rem; color: var(--ink-5); margin-bottom: 18px; }
.cdv3-crumb a  { color: var(--ink-5); text-decoration: none; }
.cdv3-crumb a:hover { color: var(--brand-navy); }
.cdv3-crumb span:last-child { color: var(--ink-3); }

/* --- Hero --- */
.cdv3-hero {
    background: var(--ink-white);
    border: 1px solid var(--ink-8);
    border-top: 4px solid var(--brand-navy);
    padding: 28px 32px;
    margin-bottom: 28px;
}
.cdv3-hero-name {
    font-size: 2.1rem;
    line-height: 1.15;
    margin-bottom: 6px;
}
.cdv3-hero-dba {
    font-family: var(--font-serif);
    font-style: italic;
    color: var(--ink-5);
    font-size: 1.1rem;
    margin-bottom: 14px;
}
.cdv3-hero-pills {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 18px;
}
.cdv3-pill {
    display: inline-block;
    padding: 4px 10px;
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border-radius: 3px;
    background: var(--ink-9);
    color: var(--ink-3);
    border: 1px solid var(--ink-8);
}
.cdv3-pill--active    { background: var(--state-ok-bg); color: var(--state-ok-ink); border-color: transparent; }
.cdv3-pill--inactive  { background: var(--ink-9); color: var(--ink-5); border-color: var(--ink-8); }
.cdv3-pill--pending   { background: var(--state-info-bg); color: var(--state-info-ink); border-color: transparent; }
.cdv3-pill--grade-a   { background: var(--state-ok-bg); color: var(--state-ok-ink); border-color: transparent; }
.cdv3-pill--grade-a\+ { background: var(--state-ok-bg); color: var(--state-ok-ink); border-color: transparent; }
.cdv3-pill--grade-b   { background: var(--brand-cream-dim); color: var(--brand-navy); border-color: var(--brand-rule); }
.cdv3-pill--grade-c   { background: var(--state-warn-bg); color: var(--state-warn-ink); border-color: transparent; }
.cdv3-pill--grade-d   { background: var(--state-err-bg); color: var(--state-err-ink); border-color: transparent; }
.cdv3-pill--grade-f   { background: var(--state-err-bg); color: var(--state-err-ink); border-color: transparent; }
.cdv3-pill--acute     { background: var(--state-err-bg); color: var(--state-err-ink); border-color: transparent; }

.cdv3-hero-verdict {
    font-family: var(--font-serif);
    font-size: 1.2rem;
    line-height: 1.55;
    color: var(--ink-3);
    margin: 0 0 20px 0;
    font-style: italic;
    border-left: 3px solid var(--brand-gold);
    padding-left: 16px;
}
.cdv3-hero-facts {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 6px 16px;
    font-size: 0.92rem;
    margin: 0;
}
.cdv3-hero-facts dt {
    color: var(--ink-5);
    text-transform: uppercase;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    padding-top: 3px;
}
.cdv3-hero-facts dd { margin: 0; color: var(--ink-2); font-weight: 500; }
.cdv3-hero-facts a  { color: var(--brand-navy); text-decoration: none; }
.cdv3-hero-facts a:hover { text-decoration: underline; }
.cdv3-muted { color: var(--ink-5); font-size: 0.85em; font-weight: 400; }

.cdv3-hero-media { margin-top: 20px; }
.cdv3-hero-img   { max-width: 100%; height: auto; border-radius: 4px; }

/* --- Section frame --- */
.cdv3-sec {
    background: var(--ink-white);
    border: 1px solid var(--ink-8);
    padding: 28px 32px;
    margin-bottom: 20px;
}
.cdv3-sec--system { border-left: 3px solid var(--brand-navy); }
.cdv3-sec--carrier { border-left: 3px solid var(--brand-gold); background: var(--ink-10); }
.cdv3-sec--actions { background: var(--brand-cream-dim); border: 1px solid var(--brand-rule); }
.cdv3-sec--source { background: transparent; border: none; padding-top: 20px; padding-bottom: 0; color: var(--ink-5); }

/* Page-break behavior 2026-05-20: keep each section intact so the
   h2 + bullets render together. Without this, print/PDF engines push
   the h2 to one page and the list to the next, producing the "Key
   takeaways heading with empty body" defect. */
.cdv3-sec { break-inside: avoid-page; page-break-inside: avoid; }
.cdv3-sec h2 { break-after: avoid-page; page-break-after: avoid; }

.cdv3-sec-kicker {
    font-family: var(--font-ui);
    text-transform: uppercase;
    font-size: 0.7rem;
    letter-spacing: 0.12em;
    color: var(--ink-5);
    margin-bottom: 8px;
}
.cdv3-sec h2 {
    font-size: 1.5rem;
    margin-bottom: 16px;
}
.cdv3-sec h3 {
    font-size: 1.15rem;
    margin: 16px 0 8px;
    color: var(--ink-2);
}

/* --- Narrative prose --- */
.cdv3-narrative {
    font-family: var(--font-serif);
    font-size: 1.08rem;
    line-height: 1.65;
    color: var(--ink-2);
    margin: 0 0 12px;
}
.cdv3-narrative strong { font-weight: 600; color: var(--ink-1); }

/* --- At-a-glance snap grid --- */
.cdv3-snap-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 12px;
    margin-top: 8px;
}
.cdv3-snap {
    background: var(--ink-10);
    border: 1px solid var(--ink-8);
    border-radius: 3px;
    padding: 14px 16px;
}
.cdv3-snap-val {
    font-family: var(--font-serif);
    font-size: 1.9rem;
    line-height: 1;
    color: var(--brand-navy);
    font-weight: 700;
    margin-bottom: 4px;
}
.cdv3-snap-label {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--ink-5);
}

/* --- Safety grade block (Shape A) --- */
.cdv3-grade-block {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 24px;
    align-items: start;
    padding: 20px;
    background: var(--ink-10);
    border: 1px solid var(--ink-8);
    border-radius: 4px;
    margin-bottom: 20px;
}
.cdv3-grade-letter {
    font-family: var(--font-serif);
    font-size: 5rem;
    line-height: 1;
    font-weight: 700;
    text-align: center;
    padding: 16px 8px;
    border-radius: 4px;
    color: var(--ink-white);
    background: var(--brand-navy);
}
.cdv3-grade-letter--positive { background: var(--state-ok); }
.cdv3-grade-letter--neutral  { background: var(--brand-navy); }
.cdv3-grade-letter--caution  { background: var(--state-warn); }
.cdv3-grade-letter--warning  { background: var(--state-err); }
.cdv3-grade-letter--unknown  { background: var(--ink-6); }

.cdv3-grade-body {
    font-family: var(--font-serif);
    font-size: 1.05rem;
    line-height: 1.6;
    color: var(--ink-2);
}
.cdv3-grade-label {
    font-family: var(--font-ui);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--brand-navy);
    margin-bottom: 6px;
}
.cdv3-grade-body p { margin: 0 0 10px; }
.cdv3-grade-floor {
    background: var(--state-warn-bg);
    border-left: 3px solid var(--state-warn);
    padding: 10px 14px;
    font-size: 0.95rem;
    color: var(--state-warn-ink);
    margin-top: 8px;
}
.cdv3-grade-acute {
    background: var(--state-err-bg);
    border-left: 3px solid var(--state-err);
    padding: 10px 14px;
    font-size: 0.95rem;
    color: var(--state-err-ink);
}
.cdv3-grade-acute--clean {
    background: var(--state-ok-bg);
    border-left-color: var(--state-ok);
    color: var(--state-ok-ink);
}

/* --- BASIC + evidence tables --- */
.cdv3-basic-table,
.cdv3-evidence-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 8px;
    font-size: 0.95rem;
}
.cdv3-basic-table th,
.cdv3-basic-table td,
.cdv3-evidence-table th,
.cdv3-evidence-table td {
    padding: 10px 14px;
    text-align: left;
    border-bottom: 1px solid var(--ink-8);
    vertical-align: middle;
}
.cdv3-basic-table th,
.cdv3-evidence-table th {
    background: var(--ink-10);
    font-weight: 600;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-5);
}
.cdv3-basic-table .num,
.cdv3-evidence-table .num {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.cdv3-basic-row--positive td { background: rgba(22, 163, 74, 0.05); }
.cdv3-basic-row--neutral  td { background: var(--ink-white); }
.cdv3-basic-row--caution  td { background: rgba(180, 83, 9, 0.06); }
.cdv3-basic-row--warning  td { background: rgba(185, 28, 28, 0.06); }
.cdv3-ac {
    color: var(--state-err-ink);
    font-weight: 600;
}
.cdv3-evidence-total td { border-top: 2px solid var(--ink-7); background: var(--ink-10); }

/* --- Limited visibility (Shape B) --- */
.cdv3-limited {
    padding: 20px;
    background: var(--ink-10);
    border: 1px solid var(--ink-8);
    border-left: 3px solid var(--brand-gold);
    border-radius: 4px;
}
.cdv3-limited-head {
    font-family: var(--font-ui);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--brand-navy);
    margin-bottom: 10px;
}
.cdv3-limited p {
    font-family: var(--font-serif);
    font-size: 1.05rem;
    line-height: 1.6;
    color: var(--ink-2);
    margin: 0 0 10px;
}

/* --- Takeaways --- */
.cdv3-takeaways {
    margin: 0;
    padding-left: 0;
    list-style: none;
}
.cdv3-takeaways li {
    font-family: var(--font-serif);
    font-size: 1.08rem;
    line-height: 1.6;
    padding: 10px 0 10px 28px;
    border-bottom: 1px solid var(--ink-9);
    position: relative;
}
.cdv3-takeaways li:last-child { border-bottom: none; }
.cdv3-takeaways li::before {
    content: "›";
    position: absolute;
    left: 8px;
    top: 9px;
    color: var(--brand-gold);
    font-weight: 700;
    font-size: 1.3rem;
    line-height: 1;
}

/* --- Carrier-owned content --- */
.cdv3-carrier-headline {
    font-family: var(--font-serif);
    font-size: 1.35rem;
    font-style: italic;
    line-height: 1.4;
    color: var(--ink-2);
    margin: 16px 0;
}
.cdv3-carrier-description {
    font-family: var(--font-serif);
    font-size: 1.08rem;
    line-height: 1.7;
    color: var(--ink-2);
    margin: 12px 0;
}
.cdv3-carrier-website { margin: 12px 0; font-size: 0.95rem; }
.cdv3-carrier-website a { color: var(--brand-navy); }
.cdv3-carrier-notes {
    font-family: var(--font-serif);
    font-size: 1.05rem;
    line-height: 1.65;
    color: var(--ink-2);
    background: var(--ink-white);
    border: 1px solid var(--ink-8);
    border-left: 3px solid var(--brand-gold);
    padding: 16px 20px;
    margin: 12px 0;
}

/* --- Invitations (empty-state carrier blocks) --- */
.cdv3-invite {
    background: var(--ink-white);
    border: 1px dashed var(--brand-rule);
    padding: 18px 22px;
    border-radius: 3px;
    margin: 12px 0;
    font-size: 0.98rem;
    line-height: 1.6;
    color: var(--ink-3);
}
.cdv3-invite strong {
    display: block;
    color: var(--brand-navy);
    font-weight: 600;
    margin-bottom: 6px;
}
.cdv3-invite-btn {
    display: inline-block;
    margin-top: 10px;
    padding: 8px 16px;
    background: var(--brand-navy);
    color: var(--ink-white);
    text-decoration: none;
    border-radius: 3px;
    font-size: 0.88rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.cdv3-invite-btn:hover { background: var(--brand-navy-deep); color: var(--ink-white); }
.cdv3-invite--hero     { border-color: var(--brand-gold-light); }
.cdv3-invite--notes    { border-color: var(--brand-gold); }

/* --- Jobs --- */
.cdv3-job {
    padding: 16px;
    background: var(--ink-white);
    border: 1px solid var(--ink-8);
    border-radius: 3px;
    margin-bottom: 10px;
}
.cdv3-job h3 { margin-bottom: 6px; }

/* --- Actions grid --- */
.cdv3-actions-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 14px;
    margin-top: 12px;
}
.cdv3-action {
    display: block;
    padding: 16px 18px;
    background: var(--ink-white);
    border: 1px solid var(--ink-8);
    border-radius: 3px;
    text-decoration: none;
    color: var(--ink-2);
    transition: border-color 0.15s ease;
}
.cdv3-action:hover { border-color: var(--brand-navy); color: var(--ink-1); }
.cdv3-action strong {
    display: block;
    color: var(--brand-navy);
    font-family: var(--font-serif);
    font-size: 1.1rem;
    margin-bottom: 4px;
}
.cdv3-action span {
    font-size: 0.9rem;
    color: var(--ink-5);
    line-height: 1.5;
}

/* --- Source / methodology footer --- */
.cdv3-sec--source h3 {
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--ink-5);
    margin-bottom: 8px;
}
.cdv3-sec--source p {
    font-size: 0.88rem;
    line-height: 1.6;
    color: var(--ink-5);
    margin: 0 0 10px;
}
.cdv3-source-line {
    font-size: 0.8rem !important;
    color: var(--ink-6) !important;
    border-top: 1px solid var(--ink-8);
    padding-top: 12px;
    margin-top: 16px !important;
}
.cdv3-sec--source a {
    color: var(--ink-5);
    text-decoration: underline;
}

/* --- Responsive --- */
@media (max-width: 820px) {
    .cdv3            { padding: 20px 16px 60px; }
    .cdv3-hero       { padding: 22px 20px; }
    .cdv3-sec        { padding: 22px 20px; }
    .cdv3-hero-name  { font-size: 1.75rem; }
    .cdv3-grade-block { grid-template-columns: 90px 1fr; gap: 16px; padding: 16px; }
    .cdv3-grade-letter { font-size: 3.6rem; padding: 12px 6px; }
    .cdv3-actions-grid { grid-template-columns: 1fr; }
    .cdv3-basic-table,
    .cdv3-evidence-table { font-size: 0.85rem; }
    .cdv3-basic-table th,
    .cdv3-basic-table td,
    .cdv3-evidence-table th,
    .cdv3-evidence-table td { padding: 8px 10px; }
}

/* =========================================================================
   v3 SOURCE-LABEL KICKERS + TOP SOURCE BAR (2026-04-21 lift 2)
   Three-tier source labeling so Google, readers, and scrapers can tell
   derived analysis from federal record from carrier-provided content.
   ========================================================================= */

/* Base tier-aware kicker: inline-flex so the dot + label read as one unit */
.cdv3 .cdv3-sec-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 3px 10px 3px 8px;
    border-radius: 3px;
    text-transform: uppercase;
    font-size: 0.72rem;
    letter-spacing: 0.1em;
    font-weight: 500;
    line-height: 1.4;
}
/* Leading dot — color varies by tier */
.cdv3 .cdv3-sec-kicker::before {
    content: "";
    display: inline-block;
    width: 7px; height: 7px;
    border-radius: 50%;
    flex: 0 0 7px;
}

/* Tier 1: ProHRHQ analysis (derived) — navy dot, navy text, light navy bg */
.cdv3 .cdv3-kicker--analysis {
    background: #eef1f8;
    color: var(--brand-navy);
}
.cdv3 .cdv3-kicker--analysis::before { background: var(--brand-navy); }

/* Tier 2: Federal record (direct) — gold dot, dark cream bg */
.cdv3 .cdv3-kicker--federal {
    background: #f4eedc;
    color: #6b5410;
}
.cdv3 .cdv3-kicker--federal::before { background: var(--brand-gold); }

/* Tier 3: Carrier-provided — neutral gray dot, ink-10 bg */
.cdv3 .cdv3-kicker--carrier {
    background: var(--ink-9);
    color: var(--ink-3);
}
.cdv3 .cdv3-kicker--carrier::before { background: var(--ink-5); }

/* Top-of-page source bar under breadcrumb, pointing to authoritative record */
.cdv3 .cdv3-source-bar {
    font-family: var(--font-ui);
    font-size: 0.88rem;
    color: var(--ink-4);
    margin: -8px 0 18px;
    padding: 10px 14px;
    background: #f4eedc;
    border-left: 3px solid var(--brand-gold);
    border-radius: 2px;
    line-height: 1.5;
}
.cdv3 .cdv3-source-bar a {
    color: var(--brand-navy);
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}
.cdv3 .cdv3-source-bar a:hover { text-decoration: underline; }

/* Grade-explanation paragraph gets a touch more visual weight so the
   plain-English "why" is distinct from the surrounding grade-block prose */
.cdv3 .cdv3-grade-explain {
    margin-top: 14px;
    padding: 12px 14px;
    background: var(--ink-10);
    border-left: 3px solid var(--brand-navy);
    font-family: var(--font-serif);
    font-size: 1.04rem;
    line-height: 1.6;
    color: var(--ink-2);
}

/* Cohort-compare sentence under the BASIC table — italicized peer voice */
.cdv3 .cdv3-cohort-compare {
    margin-top: 12px;
    font-style: italic;
    color: var(--ink-3);
}

/* Shipment-fit caveat line */
.cdv3 .cdv3-fit-caveat {
    margin-top: 8px;
    font-size: 0.85rem;
    color: var(--ink-5);
    font-style: italic;
}

/* Shipper-judgment paragraph — visually distinct from business-character prose */
.cdv3 .cdv3-judgment {
    margin-top: 14px;
    padding: 10px 14px;
    background: var(--ink-10);
    border-left: 2px solid var(--brand-gold);
    font-style: italic;
    color: var(--ink-2);
}

/* =========================================================================
   Private/own-goods carrier pill — signals a USDOT-registered operation
   that does not hold for-hire authority. Shippers can read this at a glance
   and know it's not a freight-market option.
   ========================================================================= */
.cdv3 .cdv3-pill--private {
    background: var(--ink-9);
    color: var(--ink-3);
    border: 1px solid var(--ink-7);
    border-color: transparent;
    font-style: italic;
}

/* Carrier-type pill — slightly more presence than the default, because
   this is now the primary operational-identity label on the hero row */
.cdv3 .cdv3-pill--type {
    background: var(--brand-cream-dim);
    color: var(--brand-navy);
    border: 1px solid var(--brand-rule);
    font-weight: 500;
}

/* =========================================================================
   CLAIM FORM — inline form that posts to the existing claim endpoint.
   Sits below the carrier-owned slots; all "Claim this page to ..."
   invitation buttons anchor-link here.
   ========================================================================= */
.cdv3 .cdv3-sec--claim-form {
    background: var(--brand-cream-dim);
    border-left: 3px solid var(--brand-gold);
}
.cdv3 .cdv3-claim {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 12px;
    margin-top: 16px;
    max-width: 700px;
}
.cdv3 .cdv3-claim-row {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.cdv3 .cdv3-claim-row span {
    font-family: var(--font-ui);
    font-size: 0.85rem;
    color: var(--ink-3);
    letter-spacing: 0.04em;
}
.cdv3 .cdv3-claim-row span em {
    color: #a94442;
    font-style: normal;
    font-weight: 600;
}
.cdv3 .cdv3-claim-row input {
    padding: 8px 10px;
    font-family: var(--font-ui);
    font-size: 0.95rem;
    color: var(--ink-1);
    background: var(--ink-white);
    border: 1px solid var(--ink-7);
    border-radius: 3px;
}
.cdv3 .cdv3-claim-row input:focus {
    outline: none;
    border-color: var(--brand-navy);
    box-shadow: 0 0 0 2px rgba(26, 39, 68, 0.15);
}
.cdv3 .cdv3-claim button {
    grid-column: 1 / -1;
    justify-self: start;
    background: var(--brand-navy);
    color: var(--ink-white);
    font-family: var(--font-ui);
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 10px 18px;
    border: none;
    border-radius: 3px;
    cursor: pointer;
    margin-top: 4px;
}
.cdv3 .cdv3-claim button:hover {
    background: var(--brand-navy-deep);
}
.cdv3 .cdv3-invite-btn--primary {
    background: var(--brand-navy);
    color: var(--ink-white);
    border-color: var(--brand-navy);
}
.cdv3 .cdv3-invite-btn--primary:hover {
    background: var(--brand-navy-deep);
    color: var(--ink-white);
}

/* Flash messages inside the claim section */
.cdv3 .cdv3-flash {
    padding: 10px 14px;
    border-radius: 3px;
    font-family: var(--font-ui);
    font-size: 0.9rem;
    margin: 12px 0;
}
.cdv3 .cdv3-flash--info { background: #eef1f8; color: var(--brand-navy); border-left: 3px solid var(--brand-navy); }
.cdv3 .cdv3-flash--err  { background: #fbeaea; color: #8a2222;            border-left: 3px solid #a94442; padding-left: 30px; }

/* Responsive: collapse to single column on narrow viewports */
@media (max-width: 640px) {
    .cdv3 .cdv3-claim { grid-template-columns: 1fr; }
}

/* =========================================================================
   CLAIM FORM — disabled / coming-soon state
   The form is visually present (users can see what fields claiming will
   collect once live) but greyed out and non-submitting. The coming-soon
   banner above the form carries the direct-contact fallback.
   ========================================================================= */

/* Coming-soon banner — sits above the disabled form */
.cdv3 .cdv3-claim-soon {
    font-family: var(--font-ui);
    font-size: 0.95rem;
    color: var(--ink-2);
    background: var(--ink-white);
    border: 1px dashed var(--brand-rule);
    border-left: 3px solid var(--brand-gold);
    padding: 14px 16px;
    border-radius: 3px;
    margin: 12px 0 16px;
    line-height: 1.55;
}
.cdv3 .cdv3-claim-soon strong {
    display: inline-block;
    margin-right: 6px;
    color: var(--brand-navy);
    font-weight: 600;
}
.cdv3 .cdv3-claim-soon a {
    color: var(--brand-navy);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
    white-space: nowrap;
}
.cdv3 .cdv3-claim-soon a:hover { color: var(--brand-navy-deep); }

/* Form in disabled state — inputs muted, button looks inert */
.cdv3 .cdv3-claim--disabled { opacity: 0.7; }
.cdv3 .cdv3-claim--disabled input {
    background: var(--ink-10);
    color: var(--ink-5);
    cursor: not-allowed;
}
.cdv3 .cdv3-invite-btn--disabled,
.cdv3 .cdv3-invite-btn--disabled:hover {
    background: var(--ink-7);
    color: var(--ink-4);
    border-color: var(--ink-7);
    cursor: not-allowed;
    box-shadow: none;
    pointer-events: auto;          /* keep tooltip hoverable */
}
.cdv3 .cdv3-invite-btn--disabled::after {
    content: "";
}

/* ==============================================================
   Bite 1 (2026-04-22) — Consolidated offer block for unclaimed
   pages. Replaces the prior six invitation blocks. Offer is a
   single section with an ordered value list and one CTA.
   ============================================================== */
.cdv3 .cdv3-sec--offer {
    background: var(--brand-cream-dim, #f5efe2);
    border-left: 3px solid var(--brand-gold);
    margin-bottom: 24px;
}
.cdv3 .cdv3-offer-list {
    list-style: none;
    padding: 0;
    margin: 12px 0 18px;
}
.cdv3 .cdv3-offer-list li {
    padding: 10px 0 10px 24px;
    position: relative;
    border-bottom: 1px solid var(--brand-rule, rgba(0,0,0,0.08));
    line-height: 1.5;
}
.cdv3 .cdv3-offer-list li:last-child { border-bottom: none; }
.cdv3 .cdv3-offer-list li::before {
    content: "›";
    position: absolute;
    left: 4px;
    top: 10px;
    color: var(--brand-gold);
    font-weight: 700;
}
.cdv3 .cdv3-offer-list li strong {
    color: var(--ink-1);
    font-weight: 600;
}
.cdv3 .cdv3-invite-btn--primary {
    background: var(--brand-navy);
    color: var(--ink-white);
    border-color: var(--brand-navy);
}

/* ==============================================================
   Bite 2 (2026-04-22) — Inline grade disclaimer + footer
   disclaimer + curation framing. Text-only. Plain.
   ============================================================== */
.cdv3 .cdv3-grade-disclaimer {
    font-size: 0.85rem;
    color: var(--ink-5);
    border-left: 2px solid var(--ink-8);
    padding: 4px 0 4px 10px;
    margin: 0 0 10px;
    line-height: 1.45;
}
.cdv3 .cdv3-grade-disclaimer a {
    color: var(--ink-4);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.cdv3 .cdv3-source-curation {
    font-size: 0.95rem;
    color: var(--ink-3);
    margin: 0 0 14px;
    padding: 10px 12px;
    background: var(--brand-cream-dim, #f5efe2);
    border-left: 3px solid var(--brand-gold);
}
.cdv3 .cdv3-source-disclaimer {
    font-size: 0.85rem;
    color: var(--ink-4);
    line-height: 1.55;
    margin: 14px 0;
}

/* ==============================================================
   Bite 3a (2026-04-22) — Hero-card CTAs. "Find a job" ships alone;
   "Find a driver" reserved for Bite 4 when /recruiters exists.
   ============================================================== */
.cdv3 .cdv3-hero-ctas {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 16px;
}
.cdv3 .cdv3-hero-cta {
    display: inline-block;
    padding: 10px 18px;
    background: var(--brand-navy);
    color: var(--ink-white);
    border: 1px solid var(--brand-navy);
    border-radius: 4px;
    text-decoration: none;
    font-weight: 600;
    font-size: 0.95rem;
    letter-spacing: 0.02em;
    transition: background 0.15s;
}
.cdv3 .cdv3-hero-cta:hover {
    background: var(--brand-navy-deep, #0a1a3a);
    color: var(--ink-white);
}

/* Bite 4 (2026-04-22) — secondary CTA variant for "Find a driver".
   Navy-outline style instead of filled, so the two buttons don't
   compete visually. */
.cdv3 .cdv3-hero-cta--alt {
    background: transparent;
    color: var(--brand-navy);
    border: 1px solid var(--brand-navy);
}
.cdv3 .cdv3-hero-cta--alt:hover {
    background: var(--brand-navy);
    color: #fff;
}

/* ==============================================================
   2026-04-22 v2 — Offer-block contact line (above the CTA button)
   and utility band (three compact links replacing the prior
   three-card Manage block).
   ============================================================== */
.cdv3 .cdv3-offer-contact {
    font-size: 0.9rem;
    color: var(--ink-3);
    line-height: 1.5;
    margin: 0 0 14px;
}
.cdv3 .cdv3-offer-contact a {
    color: var(--brand-navy);
    text-decoration: underline;
    text-underline-offset: 2px;
    font-weight: 600;
}
.cdv3 .cdv3-offer-contact a:hover { color: var(--brand-navy-deep, #0a1a3a); }

/* Anchor-only target (disabled form removed). Zero visual weight. */
.cdv3 .cdv3-anchor {
    display: block;
    height: 0;
    margin: 0;
    padding: 0;
}

.cdv3 .cdv3-sec--utility {
    background: transparent;
    border: none;
    border-top: 1px solid var(--brand-rule, rgba(0,0,0,0.08));
    padding: 18px 0 18px;
    margin: 32px 0 0;
}
.cdv3 .cdv3-utility-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
    align-items: center;
}
.cdv3 .cdv3-utility-list li {
    font-size: 0.9rem;
    line-height: 1.5;
}
.cdv3 .cdv3-utility-list a {
    color: var(--brand-navy);
    text-decoration: underline;
    text-underline-offset: 2px;
    font-weight: 600;
}
.cdv3 .cdv3-utility-list a:hover { color: var(--brand-navy-deep, #0a1a3a); }

/* Footer breathing room — pushes methodology away from the utility
   band above it so the page ends calmly rather than looking like
   three CTAs stacked. */
.cdv3 .cdv3-sec--source {
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid var(--brand-rule, rgba(0,0,0,0.08));
}

/* ==============================================================
   2026-04-22 — Data-confidence layer. Two severity levels:
     --normal: light inspection volume relative to fleet size
     --strong: light inspection + crash count high vs inspection
   Rendered as its own block under the grade card. Amber/warning
   tone (normal) or deeper amber with thicker rule (strong).

   Presentation notes:
   - Block is visually distinct from ordinary explanation prose:
     heavier padding, label-style kicker header, larger top margin
     to push it clear of the acute-violation line above
   - Reads as a warning callout, not a paragraph
   ============================================================== */
.cdv3 .cdv3-grade-lightdata {
    position: relative;
    margin: 18px 0 12px;
    padding: 14px 16px 14px 42px;
    border-radius: 3px;
    font-size: 0.92rem;
    line-height: 1.55;
    color: var(--ink-2);
}
.cdv3 .cdv3-grade-lightdata::before {
    content: "⚠";
    position: absolute;
    left: 14px;
    top: 14px;
    font-size: 1.1rem;
    color: var(--state-warn, #c08a1c);
    font-weight: 700;
    line-height: 1;
}
.cdv3 .cdv3-grade-lightdata--normal {
    background: var(--state-warn-bg, #fdf5e2);
    border-left: 4px solid var(--state-warn, #c08a1c);
}
.cdv3 .cdv3-grade-lightdata--strong {
    background: #f8ead0;
    border-left: 6px solid #a56b10;
}
.cdv3 .cdv3-grade-lightdata--strong::before {
    color: #a56b10;
}
.cdv3 .cdv3-grade-lightdata strong {
    display: block;
    font-weight: 700;
    text-transform: uppercase;
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    color: var(--ink-1);
    margin-bottom: 4px;
}
.cdv3 .cdv3-grade-lightdata a {
    color: var(--brand-navy);
    text-decoration: underline;
    text-underline-offset: 2px;
    font-weight: 600;
}
.cdv3 .cdv3-grade-lightdata a:hover { color: var(--brand-navy-deep, #0a1a3a); }

/* Offer block bullets needed more breathing room per review — the
   four value points were reading as a single paragraph mass. */
.cdv3 .cdv3-offer-list li {
    padding: 14px 0 14px 24px;
    line-height: 1.55;
}

/* ==============================================================
   2026-04-22 — Bottom-of-page hierarchy cleanup.

   The action cluster mixed three kinds of action at the same
   visual weight: primary conversion (Claim this page), trust/
   compliance (Request a correction), and external verification
   (View on FMCSA SAFER). Separating them by rank:

   - Primary CTA (Claim this page): heavy button, already styled
     via cdv3-invite-btn--primary
   - Utility band (trust + verification): smaller, lighter, labeled
     as "also on this page" so a reader understands these are
     secondary actions, not siblings of Claim
   - Additional margin between the offer block and the methodology
     footer to break the conceptual adjacency between conversion
     pitch and reference documentation
   ============================================================== */
.cdv3 .cdv3-sec--utility {
    margin-top: 40px;
    padding-top: 20px;
}
.cdv3 .cdv3-sec--utility::before {
    content: "Also on this page";
    display: block;
    font-family: var(--font-ui);
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--ink-5);
    font-weight: 600;
    margin-bottom: 12px;
}
.cdv3 .cdv3-utility-list a {
    font-weight: 500;     /* lighter than primary — de-emphasized */
    color: var(--ink-3);
}
.cdv3 .cdv3-utility-list a:hover {
    color: var(--brand-navy);
}

/* Stronger gap between offer block and methodology footer, so the
   conversion pitch and the reference documentation don't visually
   run together. */
.cdv3 .cdv3-sec--source {
    margin-top: 44px;
    padding-top: 28px;
}

/* --- Public company context (packet-driven) 2026-05-20 --- */
.cdv3-context-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 14px;
    margin: 18px 0 16px;
}
.cdv3-context-card {
    background: var(--brand-cream-dim);
    border: 1px solid var(--brand-rule);
    border-radius: 3px;
    padding: 12px 14px;
}
.cdv3-context-card--wide { grid-column: 1 / -1; }
.cdv3-context-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--ink-5);
    margin-bottom: 6px;
    font-weight: 600;
}
.cdv3-context-value {
    font-family: var(--font-serif);
    font-size: 1rem;
    color: var(--ink-2);
    line-height: 1.45;
}
.cdv3-context-note {
    font-size: 0.85rem;
    color: var(--ink-5);
    margin-top: 6px;
    font-style: italic;
}
.cdv3-context-list {
    list-style: none;
    padding: 0;
    margin: 4px 0 0;
    font-size: 0.95rem;
    color: var(--ink-2);
}
.cdv3-context-list li { padding: 3px 0; border-bottom: 1px dotted var(--ink-8); }
.cdv3-context-list li:last-child { border-bottom: none; }
.cdv3-context-list a { color: var(--brand-navy); text-decoration: none; }
.cdv3-context-list a:hover { text-decoration: underline; }
.cdv3-context-map { margin: 18px 0 8px; }
.cdv3-context-mapnote { font-size: 0.8rem; margin-top: 4px; }
.cdv3-context-attribution {
    font-size: 0.8rem;
    line-height: 1.5;
    padding-top: 8px;
    border-top: 1px solid var(--ink-9);
}
.cdv3-context-attribution a {
    color: var(--ink-4);
    text-decoration: underline;
    text-decoration-color: var(--ink-7);
}

/* --- Six-gear engagement cards 2026-05-20 --- */
.cdv3-gear-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 16px;
    margin: 22px 0 8px;
}
.cdv3-gear-card {
    background: var(--ink-white);
    border: 1px solid var(--brand-rule);
    border-top: 3px solid var(--brand-gold);
    border-radius: 3px;
    padding: 16px 18px 18px;
    position: relative;
    display: flex;
    flex-direction: column;
}
.cdv3-gear-num {
    position: absolute;
    top: -14px;
    left: 16px;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--brand-navy);
    color: var(--ink-white);
    font-family: var(--font-serif);
    font-weight: 700;
    font-size: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}
.cdv3-gear-head {
    font-family: var(--font-serif);
    font-size: 1.18rem;
    font-weight: 700;
    color: var(--brand-navy);
    margin: 4px 0 8px;
    line-height: 1.2;
}
.cdv3-gear-body {
    font-family: var(--font-serif);
    font-size: 0.98rem;
    line-height: 1.55;
    color: var(--ink-2);
    margin: 0 0 12px;
    flex: 1;
}
.cdv3-gear-links {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 8px;
}
.cdv3-gear-link {
    display: block;
    padding: 8px 10px;
    font-size: 0.9rem;
    font-weight: 600;
    text-decoration: none;
    border-radius: 2px;
    border: 1px solid transparent;
    transition: background 0.12s ease, border-color 0.12s ease;
}
.cdv3-gear-link--ref {
    background: var(--ink-10);
    color: var(--brand-navy);
    border-color: var(--ink-8);
}
.cdv3-gear-link--ref:hover {
    background: var(--brand-cream-dim);
    border-color: var(--brand-rule);
}
.cdv3-gear-link--prohrhq {
    background: var(--brand-navy);
    color: var(--ink-white);
}
.cdv3-gear-link--prohrhq:hover {
    background: var(--brand-navy-deep);
}
.cdv3-gear-note {
    font-size: 0.8rem;
    color: var(--ink-5);
    font-style: italic;
    margin: 4px 0 0;
    line-height: 1.4;
}

@media (max-width: 640px) {
    .cdv3-gear-grid { grid-template-columns: 1fr; }
}

/* --- Top-of-page navigation: gear strip + TOC 2026-05-20 --- */
.cdv3-gear-strip {
    margin: 0 0 14px;
    padding: 16px 18px 14px;
    background: var(--brand-cream);
    border: 1px solid var(--brand-rule);
    border-top: 3px solid var(--brand-navy);
    border-radius: 3px;
    break-inside: avoid-page;
    page-break-inside: avoid;
}
.cdv3-gear-strip-header {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 12px;
    gap: 2px;
}
.cdv3-gear-strip-eyebrow {
    font-family: var(--font-serif);
    font-weight: 700;
    font-size: 1.15rem;
    color: var(--brand-navy);
}
.cdv3-gear-strip-sub {
    font-size: 0.85rem;
    color: var(--ink-5);
    font-style: italic;
}
.cdv3-gear-strip-row {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 8px;
}
.cdv3-gear-tile {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 10px 8px;
    background: var(--ink-white);
    border: 1px solid var(--ink-8);
    border-radius: 3px;
    text-decoration: none;
    color: var(--ink-2);
    transition: border-color 0.12s ease, background 0.12s ease;
    min-height: 78px;
}
.cdv3-gear-tile:hover {
    border-color: var(--brand-navy);
    background: var(--brand-cream-dim);
}
.cdv3-gear-tile-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--brand-navy);
    color: var(--ink-white);
    font-family: var(--font-serif);
    font-weight: 700;
    font-size: 0.78rem;
    line-height: 1;
}
.cdv3-gear-tile-name {
    font-weight: 700;
    font-size: 0.9rem;
    color: var(--brand-navy);
    line-height: 1.2;
}
.cdv3-gear-tile-verb {
    font-size: 0.78rem;
    color: var(--ink-5);
    line-height: 1.25;
}
@media (max-width: 900px) {
    .cdv3-gear-strip-row { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 520px) {
    .cdv3-gear-strip-row { grid-template-columns: repeat(2, 1fr); }
}

.cdv3-toc {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 8px;
    align-items: center;
    margin: 0 0 22px;
    padding: 10px 14px;
    background: var(--ink-10);
    border: 1px solid var(--ink-8);
    border-radius: 3px;
    font-size: 0.88rem;
}
.cdv3-toc-label {
    font-weight: 700;
    color: var(--ink-4);
    margin-right: 4px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-size: 0.75rem;
}
.cdv3-toc-link {
    padding: 4px 10px;
    color: var(--brand-navy);
    background: var(--ink-white);
    border: 1px solid var(--ink-8);
    border-radius: 999px;
    text-decoration: none;
    font-weight: 500;
}
.cdv3-toc-link:hover { background: var(--brand-cream-dim); border-color: var(--brand-rule); }
.cdv3-toc-link--accent {
    background: var(--brand-navy);
    color: var(--ink-white);
    border-color: var(--brand-navy);
    font-weight: 700;
}
.cdv3-toc-link--accent:hover { background: var(--brand-navy-deep); color: var(--ink-white); }

/* --- Gear grid keep-together 2026-05-20 --- */
.cdv3-sec--ways .cdv3-gear-grid {
    break-inside: avoid-page;
    page-break-inside: avoid;
}

/* --- Related reading subheads 2026-05-20 --- */
.cdv3-related-subhead {
    font-family: var(--font-serif);
    font-size: 1.05rem;
    color: var(--brand-navy);
    margin: 18px 0 8px;
    font-weight: 700;
}
.cdv3-related-subhead:first-child { margin-top: 0; }

/* --- Readability bump + descendant-scoped ligature fix 2026-05-20 --- */
.cdv3 p, .cdv3 li, .cdv3 td, .cdv3 dd, .cdv3 dt,
.cdv3-narrative, .cdv3-gear-body, .cdv3-context-value,
.cdv3-hero-verdict, .cdv3-basic-table, .cdv3-evidence-table {
    font-variant-ligatures: none !important;
    font-feature-settings: "kern" 0, "liga" 0, "calt" 0, "dlig" 0 !important;
    word-spacing: 0.02em;
}
.cdv3-narrative { font-size: 1.15rem; line-height: 1.7; }
.cdv3-gear-body { font-size: 1.02rem; line-height: 1.6; }
.cdv3-takeaways li { font-size: 1.12rem; line-height: 1.65; }
.cdv3-basic-table td, .cdv3-evidence-table td,
.cdv3-basic-table th, .cdv3-evidence-table th { font-size: 1rem; }

/* --- Hero KPI strip 2026-05-20 --- */
.cdv3-kpi-strip {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 10px;
    margin: 14px 0 18px;
    break-inside: avoid-page;
}
.cdv3-kpi {
    background: var(--ink-white);
    border: 1px solid var(--ink-8);
    border-top: 3px solid var(--brand-navy);
    border-radius: 3px;
    padding: 12px 14px;
    text-align: left;
    min-height: 76px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.cdv3-kpi--accent {
    background: var(--brand-cream);
    border-top-color: var(--brand-gold);
}
.cdv3-kpi-val {
    font-family: var(--font-serif);
    font-size: 1.9rem;
    line-height: 1.1;
    font-weight: 700;
    color: var(--brand-navy);
    letter-spacing: -0.01em;
}
.cdv3-kpi--accent .cdv3-kpi-val { color: var(--brand-gold); }
.cdv3-kpi-label {
    font-size: 0.78rem;
    color: var(--ink-5);
    margin-top: 2px;
    font-weight: 500;
}

/* --- Compact infobox card 2026-05-20 --- */
.cdv3-infobox--compact {
    margin: 4px 0 18px;
    padding: 14px 16px;
    background: var(--ink-10);
    border: 1px solid var(--ink-8);
    border-radius: 3px;
}
.cdv3-infobox-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px 18px;
}
.cdv3-infobox-cell { min-width: 0; }
.cdv3-infobox-key {
    font-size: 0.72rem;
    color: var(--ink-5);
    text-transform: none;
    letter-spacing: 0;
    font-weight: 600;
    margin-bottom: 2px;
}
.cdv3-infobox-key a { color: var(--brand-navy); text-decoration: none; }
.cdv3-infobox-key a:hover { text-decoration: underline; }
.cdv3-infobox-val {
    font-family: var(--font-serif);
    font-size: 1.05rem;
    color: var(--ink-1);
    line-height: 1.4;
}
.cdv3-infobox-val a { color: var(--brand-navy); text-decoration: none; }
.cdv3-infobox-val a:hover { text-decoration: underline; }
.cdv3-infobox-more {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px dotted var(--ink-7);
    font-size: 0.9rem;
}
.cdv3-infobox-more summary {
    cursor: pointer;
    color: var(--brand-navy);
    font-weight: 600;
}
.cdv3-infobox-more-list {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 4px 14px;
    margin: 10px 0 0;
    font-size: 0.9rem;
}
.cdv3-infobox-more-list dt { color: var(--ink-5); font-weight: 600; }
.cdv3-infobox-more-list dd { margin: 0; color: var(--ink-2); }

/* --- Bigger lede 2026-05-20 --- */
.cdv3-lede {
    font-family: var(--font-serif);
    font-size: 1.18rem;
    line-height: 1.6;
    color: var(--ink-2);
    margin: 12px 0 16px;
}

/* --- Split-screen hero 2026-05-20 --- */
.cdv3-hero--split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
    padding: 28px 32px;
    background: var(--ink-white);
    border: 1px solid var(--ink-8);
    border-top: 4px solid var(--brand-navy);
    margin-bottom: 16px;
}
.cdv3-hero-left, .cdv3-hero-right { min-width: 0; }
.cdv3-hero-name {
    font-family: var(--font-serif);
    font-size: 2rem;
    line-height: 1.15;
    color: var(--brand-navy);
    margin: 0 0 4px;
}
.cdv3-hero-dba {
    font-family: var(--font-serif);
    font-style: italic;
    color: var(--ink-5);
    font-size: 1.05rem;
    margin-bottom: 10px;
}
.cdv3-hero-summary {
    font-size: 1rem;
    color: var(--ink-3);
    margin-bottom: 6px;
    font-weight: 500;
}
.cdv3-hero-ids {
    font-size: 0.9rem;
    color: var(--ink-4);
    margin-bottom: 16px;
}
.cdv3-hero-ids strong { color: var(--ink-2); font-weight: 700; }
.cdv3-hero-tiles {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-bottom: 14px;
}
.cdv3-hero-tile {
    background: var(--ink-10);
    border: 1px solid var(--ink-8);
    border-radius: 3px;
    padding: 10px 12px;
    text-align: center;
}
.cdv3-hero-tile-val {
    font-family: var(--font-serif);
    font-size: 1.9rem;
    font-weight: 700;
    color: var(--brand-navy);
    line-height: 1;
}
.cdv3-hero-tile-lbl {
    font-size: 0.72rem;
    color: var(--ink-5);
    margin-top: 4px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.cdv3-hero-tile--grade { background: var(--brand-cream); border-color: var(--brand-rule); }
.cdv3-hero-tile--grade-a .cdv3-hero-tile-val { color: var(--state-ok); }
.cdv3-hero-tile--grade-b .cdv3-hero-tile-val { color: var(--brand-navy); }
.cdv3-hero-tile--grade-c .cdv3-hero-tile-val { color: var(--state-warn); }
.cdv3-hero-tile--grade-d .cdv3-hero-tile-val, .cdv3-hero-tile--grade-f .cdv3-hero-tile-val { color: var(--state-err); }
.cdv3-hero-teaser {
    font-family: var(--font-serif);
    font-size: 1rem;
    line-height: 1.55;
    color: var(--ink-3);
    margin: 0;
}
.cdv3-hero-teaser-more {
    color: var(--brand-navy);
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}
.cdv3-hero-teaser-more:hover { text-decoration: underline; }
.cdv3-hero-acute {
    margin-top: 12px;
    padding: 8px 12px;
    background: var(--state-err-bg);
    color: var(--state-err-ink);
    border-left: 3px solid var(--state-err);
    border-radius: 2px;
    font-size: 0.92rem;
    font-weight: 600;
}

/* RIGHT — action cards */
.cdv3-hero-action-head {
    font-family: var(--font-serif);
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--brand-navy);
    margin-bottom: 10px;
}
.cdv3-hero-action-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.cdv3-hero-action {
    display: grid;
    grid-template-columns: 28px 1fr;
    grid-template-rows: auto auto;
    column-gap: 10px;
    align-items: center;
    background: var(--ink-white);
    border: 1px solid var(--ink-7);
    border-left: 3px solid var(--brand-navy);
    border-radius: 3px;
    padding: 12px 14px;
    text-decoration: none;
    color: var(--ink-2);
    min-height: 64px;
    transition: background 0.12s ease, border-color 0.12s ease, transform 0.12s ease;
}
.cdv3-hero-action:hover {
    background: var(--brand-cream-dim);
    border-left-color: var(--brand-gold);
    transform: translateY(-1px);
}
.cdv3-hero-action-num {
    grid-row: 1 / span 2;
    align-self: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--brand-navy);
    color: var(--ink-white);
    font-family: var(--font-serif);
    font-weight: 700;
    font-size: 0.9rem;
    line-height: 1;
}
.cdv3-hero-action-name {
    font-weight: 700;
    font-size: 1rem;
    color: var(--brand-navy);
    line-height: 1.15;
}
.cdv3-hero-action-sub {
    font-size: 0.82rem;
    color: var(--ink-5);
    line-height: 1.25;
}

.cdv3-hero-ctas {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px dotted var(--ink-7);
}

@media (max-width: 900px) {
    .cdv3-hero--split { grid-template-columns: 1fr; gap: 18px; padding: 22px 20px; }
    .cdv3-hero-action-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px) {
    .cdv3-hero-action-grid { grid-template-columns: 1fr; }
    .cdv3-hero-tiles { grid-template-columns: 1fr 1fr; }
}

/* --- Score strip 2026-05-20 --- */
.cdv3-scorestrip {
    background: var(--brand-cream);
    border: 1px solid var(--brand-rule);
    border-left: 4px solid var(--brand-gold);
    padding: 10px 16px;
    margin-bottom: 10px;
    border-radius: 3px;
    display: flex;
    align-items: baseline;
    gap: 12px;
    flex-wrap: wrap;
}
.cdv3-scorestrip-eyebrow {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--ink-5);
    font-weight: 700;
}
.cdv3-scorestrip-facts {
    font-family: var(--font-serif);
    font-size: 1.02rem;
    color: var(--ink-1);
    font-weight: 500;
}

/* --- Two-column body 2026-05-20 --- */
.cdv3-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 28px;
    align-items: start;
    margin-bottom: 28px;
}
.cdv3-body-main { min-width: 0; }
.cdv3-body-rail {
    display: flex;
    flex-direction: column;
    gap: 14px;
    position: sticky;
    top: 16px;
    align-self: start;
    max-height: calc(100vh - 32px);
    overflow-y: auto;
}
.cdv3-rail-card {
    background: var(--ink-white);
    border: 1px solid var(--ink-8);
    border-radius: 3px;
    padding: 12px 14px;
}
.cdv3-rail-card--claim {
    background: var(--brand-cream);
    border-color: var(--brand-rule);
    border-left: 3px solid var(--brand-gold);
}
.cdv3-rail-head {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--ink-5);
    font-weight: 700;
    margin-bottom: 8px;
}
.cdv3-rail-list {
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: 0.92rem;
}
.cdv3-rail-list li { padding: 4px 0; border-bottom: 1px dotted var(--ink-9); }
.cdv3-rail-list li:last-child { border-bottom: none; }
.cdv3-rail-list a { color: var(--brand-navy); text-decoration: none; }
.cdv3-rail-list a:hover { text-decoration: underline; }
.cdv3-rail-claim-body {
    font-size: 0.88rem;
    line-height: 1.45;
    color: var(--ink-3);
    margin: 0 0 10px;
}
.cdv3-rail-claim-cta {
    display: block;
    text-align: center;
    background: var(--brand-navy);
    color: var(--ink-white);
    padding: 8px 12px;
    border-radius: 3px;
    font-weight: 700;
    font-size: 0.9rem;
    text-decoration: none;
}
.cdv3-rail-claim-cta:hover { background: var(--brand-navy-deep); color: var(--ink-white); }

@media (max-width: 1024px) {
    .cdv3-body { grid-template-columns: 1fr; }
    .cdv3-body-rail { position: static; max-height: none; }
}

/* --- Hero claim invitation / claimed badge 2026-05-21 --- */
.cdv3-hero-claim {
    margin-top: 16px;
    padding: 14px 16px;
    background: var(--brand-cream);
    border: 1px solid var(--brand-rule);
    border-left: 4px solid var(--brand-gold);
    border-radius: 3px;
}
.cdv3-hero-claim-head {
    font-family: var(--font-serif);
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--brand-navy);
    margin-bottom: 4px;
}
.cdv3-hero-claim-body {
    font-size: 0.92rem;
    line-height: 1.5;
    color: var(--ink-3);
    margin: 0 0 10px;
}
.cdv3-hero-claim-cta {
    display: inline-block;
    background: var(--brand-navy);
    color: var(--ink-white);
    padding: 9px 16px;
    border-radius: 3px;
    font-weight: 700;
    font-size: 0.95rem;
    text-decoration: none;
}
.cdv3-hero-claim-cta:hover { background: var(--brand-navy-deep); color: var(--ink-white); }

.cdv3-hero-claimed {
    margin-top: 14px;
    padding: 10px 14px;
    background: var(--state-ok-bg);
    border: 1px solid var(--state-ok);
    border-radius: 3px;
    display: flex;
    align-items: flex-start;
    gap: 10px;
}
.cdv3-hero-claimed-mark {
    color: var(--state-ok);
    font-weight: 700;
    font-size: 1.15rem;
    line-height: 1.3;
}
.cdv3-hero-claimed-text {
    font-size: 0.92rem;
    line-height: 1.45;
    color: var(--state-ok-ink);
}
