/* ============================================
   analysis.css — Shared styles for /analysis collection
   sjbridger.com — Phase 7 Build
   ============================================
   Rules:
   - All classes prefixed .analysis- to prevent collisions with styles.css
   - No CSS variable fallback values
   - Content width: max-width: 800px on inner content wrappers
   - Outer container: .container (1140px) from styles.css
   ============================================ */


/* ---------- Skip to Content ---------- */

.skip-to-content {
    position: absolute;
    top: -60px;
    left: 0;
    z-index: 9999;
    padding: 10px 20px;
    background: var(--color-accent);
    color: var(--color-bg);
    font-family: var(--font-heading);
    font-size: 0.875rem;
    font-weight: 500;
    letter-spacing: 0.05em;
    text-decoration: none;
    transition: top 0.2s ease;
}

.skip-to-content:focus {
    top: 0;
    outline: 2px solid var(--color-bg);
    outline-offset: 2px;
}


/* ---------- Shared Utilities ---------- */

/* 800px reading column inside .container (1140px) */
.analysis-content-col {
    max-width: 800px;
}


/* ============================================
   PARENT PAGE — /analysis/
   ============================================ */

/* ---------- Parent Page: Hero ---------- */

.analysis-hero {
    padding: clamp(140px, 18vw, 200px) 0 var(--section-padding);
    background: var(--color-bg);
}

.analysis-hero-eyebrow {
    font-family: var(--font-heading);
    font-size: 0.8125rem;
    font-weight: 500;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--color-accent);
    margin-bottom: 1rem;
    display: block;
}

.analysis-hero-title {
    font-family: var(--font-heading);
    font-size: clamp(2.5rem, 5vw, 3.5rem);
    font-weight: 600;
    letter-spacing: -0.02em;
    line-height: 1.15;
    color: var(--color-text-primary);
    margin-bottom: 1.5rem;
    max-width: 800px;
}

/* Wrapper div for the hero intro paragraphs + speakable target */
.analysis-hero-body {
    max-width: 800px;
}

.analysis-hero-body p {
    font-family: var(--font-body);
    font-size: 1.125rem;
    font-weight: 300;
    line-height: 1.75;
    color: var(--color-text-secondary);
    margin-bottom: 1.25rem;
}

.analysis-hero-body p:last-child {
    margin-bottom: 0;
}

/* Threshold — rhetorical transition closing the hero */
.analysis-hero-body p.analysis-hero-threshold {
    font-style: italic;
    color: var(--color-text-primary);
    margin-top: 1.5em;
}

/* Lede — thesis statement, larger than body */
.analysis-lede {
    font-size: clamp(1.35rem, 2.5vw, 1.5rem);
    font-weight: 300;
    line-height: 1.6;
    color: var(--color-text-secondary);
    margin-bottom: 1.75rem;
}


/* ---------- Parent Page: Four-Frequency Diagram ---------- */

.analysis-diagram-section {
    text-align: center;
    padding: clamp(40px, 6vw, 80px) 0;
    background: var(--color-bg);
}

.analysis-diagram-container {
    max-width: 500px;
    margin: 0 auto;
}

.analysis-diagram-container svg {
    width: 100%;
    height: auto;
    display: block;
}


/* ---------- Parent Page: Collection Introduction ---------- */

.analysis-intro {
    padding: var(--section-padding) 0;
    background: var(--color-bg);
    border-top: 1px solid var(--color-border);
}

.analysis-intro-body {
    max-width: 800px;
}

.analysis-intro-body p {
    font-family: var(--font-body);
    font-size: 1.125rem;
    font-weight: 300;
    line-height: 1.75;
    color: var(--color-text-secondary);
    margin-bottom: 1.25rem;
}

.analysis-intro-body p:last-child {
    margin-bottom: 0;
}


/* ---------- Parent Page: Structural Universals ---------- */

.analysis-universals {
    padding: var(--section-padding) 0;
    background: var(--color-bg-elevated);
    border-top: 1px solid var(--color-border);
}

.analysis-universals-heading {
    font-family: var(--font-heading);
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--color-text-primary);
    margin-bottom: 0.5rem;
    max-width: 800px;
}

.analysis-universals-subhead {
    font-family: var(--font-body);
    font-size: 1.0625rem;
    font-weight: 300;
    font-style: italic;
    color: var(--color-text-secondary);
    margin-bottom: 3.5rem;
    max-width: 800px;
}

.analysis-findings {
    max-width: 800px;
}

.analysis-finding {
    padding: 2.5rem 0;
    border-top: 1px solid var(--color-border);
}

.analysis-findings .analysis-finding:first-child {
    border-top: none;
    padding-top: 0;
}

.analysis-finding-label {
    font-family: var(--font-heading);
    font-size: 0.6875rem;
    font-weight: 500;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--color-accent);
    margin-bottom: 0.5rem;
    display: block;
}

.analysis-finding h3 {
    font-family: var(--font-heading);
    font-size: 1.375rem;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--color-text-primary);
    margin-bottom: 0.875rem;
}

.analysis-finding p {
    font-family: var(--font-body);
    font-size: 1.0625rem;
    font-weight: 300;
    line-height: 1.75;
    color: var(--color-text-secondary);
    margin-bottom: 0;
}

/* Anchor sentences — structural punchlines */
.analysis-anchor {
    font-weight: 400;
    color: var(--color-text-primary);
}

/* Pulled-out anchor sentence — own paragraph */
.analysis-finding-anchor {
    margin-top: 1em;
}


/* ---------- Parent Page: Three Failure Modes ---------- */

.analysis-failure-modes {
    padding: var(--section-padding) 0;
    background: var(--color-bg);
    border-top: 1px solid var(--color-border);
}

.analysis-failure-modes-heading {
    font-family: var(--font-heading);
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--color-text-primary);
    margin-bottom: 0.5rem;
    max-width: 800px;
}

.analysis-failure-modes-subhead {
    font-family: var(--font-body);
    font-size: 1.0625rem;
    font-weight: 300;
    font-style: italic;
    color: var(--color-text-secondary);
    max-width: 800px;
    margin-bottom: 3rem;
}

/* Single-column stacked blocks — one per failure mode */
.analysis-modes-stack {
    max-width: 800px;
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-bottom: 2.5rem;
}

.analysis-mode {
    border-left: 3px solid var(--color-border-light);
    padding: 1.75rem 0 1.75rem 1.75rem;
    border-bottom: 1px solid var(--color-border);
}

.analysis-mode:last-child {
    border-bottom: none;
}

.analysis-mode-name {
    font-family: var(--font-heading);
    font-size: 1.3rem;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--color-text-primary);
    margin-bottom: 0.25rem;
}

.analysis-mode-cases {
    font-family: var(--font-heading);
    font-size: 0.9375rem;
    font-weight: 500;
    letter-spacing: 0.03em;
    color: var(--color-text-secondary);
    display: block;
    margin-bottom: 0.875rem;
}

.analysis-mode-cases a {
    color: var(--color-accent);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.analysis-mode-cases a:hover {
    color: var(--color-accent-hover);
}

/* Warm cases (Organizational) */
.analysis-mode-cases--warm {
    color: rgba(212, 168, 67, 0.7);
}

/* Cool cases (Infrastructure / mixed) */
.analysis-mode-cases--cool {
    color: #8a9bb5;
}

.analysis-mode-sep {
    padding: 0 0.4em;
}

.analysis-mode p {
    font-family: var(--font-body);
    font-size: 1.0625rem;
    font-weight: 300;
    line-height: 1.75;
    color: var(--color-text-secondary);
    margin-bottom: 0;
}

.analysis-failure-modes-synthesis {
    max-width: 800px;
}

.analysis-failure-modes-synthesis--spaced {
    margin-top: 2em;
    padding-top: 1.5em;
    border-top: 1px solid var(--color-border);
}

.analysis-failure-modes-synthesis p {
    font-family: var(--font-body);
    font-size: 1.0625rem;
    font-weight: 300;
    line-height: 1.75;
    color: var(--color-text-secondary);
    margin-bottom: 1rem;
}

.analysis-failure-modes-synthesis p:last-child {
    margin-bottom: 0;
}

.analysis-failure-modes-synthesis-threshold {
    font-style: italic;
    color: var(--color-text-primary);
    margin-top: 1em;
}


/* ---------- Parent Page: Navigation Cards ---------- */

.analysis-collection {
    padding: clamp(120px, 14vw, 200px) 0 var(--section-padding);
    background: var(--color-bg-elevated);
    border-top: 1px solid var(--color-border);
}

.analysis-collection-heading {
    font-family: var(--font-heading);
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--color-text-primary);
    margin-bottom: 2.5rem;
}

.analysis-card-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1px;
    background: var(--color-border);
    border: 1px solid var(--color-border);
}

.analysis-card {
    background: var(--color-bg-card);
    padding: clamp(28px, 3vw, 40px);
    display: flex;
    flex-direction: column;
    gap: 1rem;
    text-decoration: none;
    transition: background var(--transition-fast);
}

.analysis-card:hover {
    background: var(--color-surface);
    box-shadow: inset 0 0 0 1px var(--color-accent);
}

.analysis-card:hover .analysis-card-cta {
    color: var(--color-accent-hover);
}

.analysis-card-name {
    font-family: var(--font-heading);
    font-size: 1.375rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--color-text-primary);
    margin: 0;
}

.analysis-card-tags {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    align-items: center;
}

.analysis-card-tag {
    font-family: var(--font-heading);
    font-size: 0.625rem;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-text-muted);
    border: 1px solid var(--color-border-light);
    padding: 3px 10px;
    display: inline-block;
}

/* Organizational — warm border */
.analysis-card-tag--organizational {
    border-color: rgba(212, 168, 67, 0.6);
    color: rgba(212, 168, 67, 0.7);
}

/* Infrastructure — cool border */
.analysis-card-tag--infrastructure {
    border-color: #6b7fa0;
    color: #8a9bb5;
}

/* Scale-Bridging — visual prominence for CrowdStrike */
.analysis-card-tag--scale-bridging {
    color: var(--color-accent);
    border-color: var(--color-accent);
    letter-spacing: 0.1em;
    font-size: 0.6875rem;
}

.analysis-card-finding {
    font-family: var(--font-body);
    font-size: 0.9375rem;
    font-weight: 300;
    line-height: 1.7;
    color: var(--color-text-primary);
    margin: 0;
    flex: 1;
}

.analysis-card-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
}

.analysis-card-cta {
    font-family: var(--font-heading);
    font-size: 0.8125rem;
    font-weight: 500;
    letter-spacing: 0.05em;
    color: var(--color-accent);
    transition: color var(--transition-fast);
    display: inline-block;
}

.analysis-card-time {
    font-family: var(--font-heading);
    font-size: 0.75rem;
    font-weight: 400;
    letter-spacing: 0.03em;
    color: var(--color-text-muted);
}


/* ---------- Parent Page: Framework Note ---------- */

.analysis-framework-note {
    padding: 4rem 0 var(--section-padding);
    background: var(--color-bg-elevated);
}

.analysis-framework-note::before {
    content: '';
    display: block;
    width: 60px;
    height: 2px;
    background: var(--color-accent);
    margin: 0 auto 2em auto;
}

.analysis-framework-note-body {
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
}

.analysis-framework-note-body p {
    font-family: var(--font-body);
    font-size: 1.0625rem;
    font-weight: 300;
    line-height: 1.75;
    color: var(--color-text-secondary);
    margin-bottom: 1.25rem;
}

.analysis-framework-note-body p:last-of-type {
    margin-bottom: 0;
}

.analysis-framework-note-italic {
    font-style: italic;
    text-align: center;
    color: var(--color-text-secondary);
    margin-top: 2rem;
    margin-bottom: 2rem;
}

.analysis-framework-note-buttons {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 2rem;
}

/* CTA destination cards — matches /frequencies/ card pattern */
.analysis-framework-note-cards {
    max-width: 680px;
    margin: 2.5rem auto 0;
    text-align: left;
}

.analysis-framework-note-cards .freq-cta-block {
    display: block;
    margin-bottom: 1.5rem;
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    padding: clamp(28px, 3vw, 40px);
    text-decoration: none;
    color: inherit;
    cursor: pointer;
    transition: border-color var(--transition-fast);
}

.analysis-framework-note-cards .freq-cta-block:last-child {
    margin-bottom: 0;
}

.analysis-framework-note-cards .freq-cta-block:hover {
    border-color: var(--color-accent);
}

.analysis-framework-note-cards .freq-cta-block strong {
    display: block;
    font-family: var(--font-heading);
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: 0.75rem;
}

.analysis-framework-note-cards .freq-cta-block p:last-child {
    margin-bottom: 0;
}

.analysis-framework-note-cards .freq-cta-block .freq-cta-link {
    color: var(--color-accent);
    transition: color var(--transition-fast);
}

.analysis-framework-note-cards .freq-cta-block:hover .freq-cta-link {
    color: var(--color-accent-hover);
}


/* ============================================
   CASE STUDY PAGES — /analysis/svb/ etc.
   ============================================ */

/* ---------- Case Study: Page Header ---------- */

.analysis-case-hero {
    padding: clamp(140px, 18vw, 200px) 0 clamp(60px, 8vw, 100px);
    background: var(--color-bg);
    border-bottom: 1px solid var(--color-border);
}

.analysis-case-back {
    font-family: var(--font-heading);
    font-size: 0.875rem;
    font-weight: 400;
    letter-spacing: 0.05em;
    color: var(--color-accent);
    text-decoration: none;
    display: inline-block;
    margin-bottom: 1em;
    transition: color var(--transition-fast);
}

.analysis-case-back:hover {
    color: var(--color-accent-hover);
}

.analysis-case-eyebrow {
    font-family: var(--font-heading);
    font-size: 0.8125rem;
    font-weight: 500;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--color-accent);
    margin-bottom: 1rem;
    display: block;
}

.analysis-case-title {
    font-family: var(--font-heading);
    font-size: clamp(2rem, 5vw, 2.75rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.15;
    color: var(--color-text-primary);
    margin-bottom: 0;
    max-width: 800px;
}

.analysis-hero-subtitle {
    font-family: var(--font-body);
    font-size: clamp(1.15rem, 2.5vw, 1.35rem);
    font-weight: 400;
    line-height: 1.5;
    color: var(--color-text-secondary);
    max-width: 800px;
    margin-top: 0.75em;
    margin-bottom: 1.5em;
}

.analysis-case-tags {
    display: flex;
    gap: 0.625rem;
    flex-wrap: wrap;
    align-items: center;
}

.analysis-case-tag {
    font-family: var(--font-heading);
    font-size: 0.625rem;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-text-muted);
    border: 1px solid var(--color-border-light);
    padding: 4px 12px;
    display: inline-block;
}

/* Organizational — warm border */
.analysis-case-tag--organizational {
    border-color: rgba(212, 168, 67, 0.6);
    color: rgba(212, 168, 67, 0.7);
}

/* Infrastructure — cool border */
.analysis-case-tag--infrastructure {
    border-color: #6b7fa0;
    color: #8a9bb5;
}

/* Scale-Bridging — gold prominence */
.analysis-case-tag--scale-bridging {
    color: var(--color-accent);
    border-color: var(--color-accent);
    letter-spacing: 0.1em;
    font-size: 0.6875rem;
}

.analysis-case-reading-time {
    font-family: var(--font-heading);
    font-size: 0.75rem;
    font-weight: 400;
    letter-spacing: 0.03em;
    color: var(--color-text-muted);
    margin-left: 0.75rem;
}


/* ---------- Case Study: Disclaimer ---------- */

.analysis-disclaimer {
    background: var(--color-bg-elevated);
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    padding: 2.5rem 0;
}

.analysis-disclaimer-inner {
    max-width: 800px;
    border-left: 3px solid var(--color-accent);
    padding: 1.25em 1.5em;
    margin-left: 1.5em;
    border-radius: 0;
}

.analysis-disclaimer-inner p {
    font-family: var(--font-body);
    font-size: 0.9375rem;
    font-weight: 300;
    font-style: italic;
    line-height: 1.7;
    color: var(--color-text-secondary);
    margin-bottom: 0;
}


/* ---------- Case Study: Body Content ---------- */

.analysis-body {
    padding: var(--section-padding) 0;
    background: var(--color-bg);
}

.analysis-body-content {
    max-width: 800px;
}

.analysis-body-content h2 {
    font-family: var(--font-heading);
    font-size: clamp(1.4rem, 3vw, 1.75rem);
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--color-text-primary);
    margin-top: 3.5rem;
    margin-bottom: 1.5em;
}

.analysis-body-content h2::after {
    content: '';
    display: block;
    width: 60px;
    height: 2px;
    background: var(--color-border);
    margin: 0.75em auto 0 auto;
}

/* First h2 needs no top clearance — it follows the disclaimer or body opening */
.analysis-body-content h2:first-child {
    margin-top: 0;
}

.analysis-body-content h3 {
    font-family: var(--font-heading);
    font-size: clamp(1.1rem, 2.5vw, 1.3rem);
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--color-text-primary);
    margin-top: 2em;
    margin-bottom: 0.4em;
}

.analysis-body-content h4 {
    font-family: var(--font-heading);
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-secondary);
    margin-top: 1.75em;
    margin-bottom: 0.5em;
}

.analysis-body-content p {
    font-family: var(--font-body);
    font-size: 1.125rem;
    font-weight: 300;
    line-height: 1.75;
    color: var(--color-text-secondary);
    margin-bottom: 1.25rem;
}

.analysis-body-content p:last-child {
    margin-bottom: 0;
}

/* Spacing after lists — prevent run-together */
.analysis-body-content ul + p,
.analysis-body-content ol + p {
    margin-top: 1.5em;
}

/* Opening lede — display treatment for first paragraph */
.analysis-body-content .analysis-lede {
    font-size: 1.15em;
    color: var(--color-text-primary);
    line-height: 1.7;
}

.analysis-body-content strong {
    font-weight: 600;
    color: var(--color-text-primary);
}

.analysis-body-content em {
    font-style: italic;
}

.analysis-body-content a {
    color: var(--color-link);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.analysis-body-content a:hover {
    color: var(--color-accent-hover);
}

/* Blockquote — testimony and evidence quotes */
.analysis-body-content blockquote {
    border: none;
    border-left: 3px solid var(--color-border-light);
    background: var(--color-bg-elevated);
    padding: 1.25em 1.5em;
    margin: 1.5em 0 1.5em 0.5em;
}

.analysis-body-content blockquote p {
    font-family: var(--font-body);
    font-size: 1.0625rem;
    font-weight: 300;
    font-style: italic;
    line-height: 1.8;
    color: var(--color-text-secondary);
    margin-bottom: 0;
}

/* Horizontal rule — section breathing dividers */
.analysis-body-content hr {
    border: none;
    height: 1px;
    background: var(--color-border);
    width: 40%;
    margin: 3em auto;
}

/* Anchor sentence — structural punchline pulled to own paragraph */
.analysis-anchor-sentence {
    display: block;
    margin-top: 1.5em;
    margin-bottom: 1.5em;
}

.analysis-anchor-sentence strong {
    font-family: var(--font-body);
    color: var(--color-text-primary);
}

/* Data series — empirical/forensic measurement data, distinct from blockquotes */
.analysis-data-series {
    font-family: 'Source Serif 4', var(--font-body);
    font-variant-numeric: tabular-nums;
    font-size: 0.9375rem;
    font-weight: 400;
    font-style: normal;
    line-height: 1.8;
    color: var(--color-text-secondary);
    background: rgba(255, 255, 255, 0.03);
    padding: 1.25em 1.5em;
    margin: 1.5em 0 1.5em 0.5em;
    border: none;
}

.analysis-data-series p {
    font-family: inherit;
    font-variant-numeric: tabular-nums;
    font-size: inherit;
    font-weight: inherit;
    font-style: normal;
    line-height: inherit;
    color: inherit;
    margin-bottom: 0;
}

/* Section subtitle — italic framing line (used in calibration sections) */
.analysis-section-subtitle {
    font-family: var(--font-body);
    font-size: 1.05rem;
    font-weight: 300;
    font-style: italic;
    line-height: 1.75;
    color: var(--color-text-muted);
    margin-top: 0;
    margin-bottom: 1.5em;
}

/* Governance Gap heading — the ONE gold text element per page */
.analysis-body-content h3.analysis-governance-gap {
    font-family: var(--font-heading);
    font-size: clamp(1.1rem, 2.5vw, 1.25rem);
    font-weight: 600;
    color: var(--color-accent);
    margin-top: 2em;
    margin-bottom: 0.5em;
}

/* Closing disclaimer — matches opening disclaimer treatment */
.analysis-closing-disclaimer {
    border-left: 3px solid var(--color-accent);
    background: var(--color-bg-elevated);
    padding: 1.25em 1.5em;
    margin-left: 1.5em;
    margin-top: 2em;
    border-radius: 0;
}

.analysis-closing-disclaimer p {
    font-family: var(--font-body);
    font-size: 0.9375rem;
    font-weight: 300;
    font-style: italic;
    line-height: 1.7;
    color: var(--color-text-secondary);
    margin-bottom: 0;
}

/* Speakable selector hook — no visual effect */
.analysis-speakable {
    /* Intentional: structural class only, no display styles */
}


/* ---------- Case Study: Sources Accordion ---------- */

.analysis-sources {
    padding: 3rem 0 var(--section-padding);
    background: var(--color-bg);
    border-top: 1px solid var(--color-border);
}

.analysis-sources-inner {
    max-width: 800px;
}

.analysis-source-toggle {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    padding: 1em 0;
    cursor: pointer;
    font-family: var(--font-heading);
    font-size: 1.1rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    color: var(--color-text-primary);
    transition: color var(--transition-fast);
}

.analysis-source-toggle:hover {
    color: var(--color-accent);
}

.analysis-source-toggle[aria-expanded="true"] {
    color: var(--color-text-primary);
}

.analysis-source-toggle-count {
    color: var(--color-text-muted);
    font-weight: 400;
}

.analysis-source-toggle-icon {
    margin-left: auto;
    flex-shrink: 0;
    color: var(--color-accent);
    transition: transform var(--transition-fast);
}

.analysis-source-toggle[aria-expanded="true"] .analysis-source-toggle-icon {
    transform: rotate(180deg);
}

.analysis-source-list {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}

.analysis-source-list.is-open {
    max-height: 3000px;
}

.analysis-source-list ol,
.analysis-source-list ul {
    list-style: none;
    padding: 1.5rem 0 2em 0;
    margin: 0;
}

.analysis-source-list li {
    font-family: var(--font-body);
    font-size: 0.875rem;
    line-height: 1.65;
    color: var(--color-text-muted);
    padding: 0.625rem 0;
    border-bottom: 1px solid var(--color-border);
}

.analysis-source-list li:last-child {
    border-bottom: none;
}

/* Source hyperlinks — gold accent, not blue */
.analysis-source-list a {
    color: var(--color-accent);
    text-decoration: none;
}

.analysis-source-list a:hover {
    text-decoration: underline;
}

/* Evidence bridge callout — links to filtered evidence library */
.evidence-bridge {
    border: 1px solid var(--color-border);
    border-left: 3px solid var(--color-accent);
    padding: 1.25em 1.5em;
    margin: 1.5em 0;
    background: var(--color-bg-card);
}

.evidence-bridge p {
    margin: 0 0 0.5em 0;
    font-size: 0.95rem;
    color: var(--color-text-secondary);
}

.evidence-bridge-link {
    color: var(--color-accent);
    text-decoration: none;
    font-family: var(--font-heading);
    font-size: 0.85rem;
    font-weight: 500;
    letter-spacing: 0.03em;
}

.evidence-bridge-link:hover {
    text-decoration: underline;
}

/* ---------- Table of Contents ---------- */

.analysis-toc {
    border: 1px solid var(--color-border);
    border-left: 3px solid var(--color-accent);
    padding: 1.25em 1.5em;
    margin: 2em 0 2.5em 0;
    background: var(--color-bg-card);
}

.analysis-toc-heading {
    font-family: var(--font-heading);
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-accent);
    margin: 0 0 0.75em 0;
}

.analysis-toc-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.analysis-toc-list li {
    margin: 0 0 0.4em 0;
    line-height: 1.45;
}

.analysis-toc-list li:last-child {
    margin-bottom: 0;
}

.analysis-toc-list a {
    color: var(--color-text-secondary);
    text-decoration: none;
    font-size: 0.92rem;
    font-family: var(--font-body);
    transition: color 0.15s ease;
}

.analysis-toc-list a:hover {
    color: var(--color-accent);
}

/* CIT-ID label — visible tag linking to evidence library */
.source-cit-id {
    display: inline-block;
    font-family: var(--font-body);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    color: var(--color-accent);
    background: rgba(201, 162, 39, 0.08);
    border: 1px solid rgba(201, 162, 39, 0.2);
    padding: 0.15em 0.5em;
    border-radius: 3px;
    margin-right: 0.5em;
    vertical-align: middle;
    text-decoration: none;
}

.source-cit-id:hover {
    background: rgba(201, 162, 39, 0.15);
    border-color: rgba(201, 162, 39, 0.4);
    text-decoration: none;
}


/* ---------- Case Study: Navigation Footer ---------- */

.analysis-nav-footer {
    padding: clamp(60px, 8vw, 100px) 0;
    background: var(--color-bg);
    border-top: 1px solid var(--color-border);
}

.analysis-nav-footer-inner {
    max-width: 800px;
    margin: 0 auto;
}

/* "Back to Analysis Collection" link */
.analysis-nav-collection-back {
    display: block;
    text-align: center;
    font-family: var(--font-heading);
    font-size: 0.85rem;
    font-weight: 400;
    letter-spacing: 0.05em;
    color: var(--color-text-muted);
    text-decoration: none;
    margin-bottom: 2em;
    transition: color var(--transition-fast);
}

.analysis-nav-collection-back:hover {
    color: var(--color-accent);
}

/* Prev/Next navigation cards */
.analysis-nav-cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
}

/* When only one card, center it */
.analysis-nav-cards--single {
    grid-template-columns: 1fr;
    max-width: 480px;
    margin-left: auto;
    margin-right: auto;
}

.analysis-nav-card {
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: 6px;
    padding: 1.25em 1.5em;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    cursor: pointer;
    transition: border-color 0.2s ease;
}

.analysis-nav-card:hover {
    border-color: var(--color-accent);
}

.analysis-nav-card-direction {
    font-family: var(--font-heading);
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--color-text-muted);
}

.analysis-nav-card-name {
    font-family: var(--font-heading);
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--color-text-primary);
    transition: color var(--transition-fast);
}

.analysis-nav-card:hover .analysis-nav-card-name {
    color: var(--color-accent);
}

.analysis-nav-card-tags {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    align-items: center;
}

.analysis-nav-card-finding {
    font-family: var(--font-body);
    font-size: 0.9rem;
    font-weight: 300;
    line-height: 1.5;
    color: var(--color-text-secondary);
    margin: 0;
}

/* Gold CTA rule — the ONE gold rule on the page */
.analysis-cta-rule {
    border: none;
    width: 60px;
    height: 2px;
    background: var(--color-accent);
    margin: 3em auto 2em auto;
}

/* CTA block */
.analysis-cta-block {
    text-align: center;
    max-width: 600px;
    margin: 0 auto;
}

.analysis-cta-framing {
    font-family: var(--font-body);
    font-size: 1.125rem;
    font-weight: 300;
    line-height: 1.75;
    color: var(--color-text-secondary);
    margin-bottom: 0;
}

.analysis-cta-bridge {
    font-family: var(--font-body);
    font-size: 1.125rem;
    font-style: italic;
    color: var(--color-text-primary);
    margin: 1.25em 0;
}


/* ============================================
   RESPONSIVE
   ============================================ */

@media (max-width: 920px) {
    /* Cards: 2-col → 1-col (parent page) */
    .analysis-card-grid {
        grid-template-columns: 1fr;
    }

    /* Nav cards: 2-col → 1-col (subpage) */
    .analysis-nav-cards {
        grid-template-columns: 1fr;
    }

    .analysis-nav-cards--single {
        max-width: none;
    }

    /* Disclaimer: remove indent on mobile */
    .analysis-disclaimer-inner {
        margin-left: 0;
    }

    /* Closing disclaimer: remove indent on mobile */
    .analysis-closing-disclaimer {
        margin-left: 0;
    }

    /* Blockquote: reduce indent */
    .analysis-body-content blockquote {
        margin-left: 0;
    }
}

@media (max-width: 480px) {
    .analysis-hero-title {
        font-size: 2rem;
    }

    .analysis-case-title {
        font-size: 1.75rem;
    }

    .analysis-body-content h2 {
        font-size: 1.25rem;
    }

    .analysis-body-content h3 {
        font-size: 1.0625rem;
    }

    .analysis-body-content p {
        font-size: 1rem;
    }

    .analysis-body-content blockquote p {
        font-size: 1rem;
    }

    /* CTA button full width on mobile */
    .analysis-cta-block .btn {
        width: 100%;
        max-width: 400px;
        text-align: center;
    }
}


/* ============================================
   PRINT
   ============================================ */

@media print {
    /* Hide navigation chrome, interactive elements, and CTAs */
    .site-header,
    .site-footer,
    .back-to-top,
    .analysis-nav-footer,
    .analysis-source-toggle,
    .skip-to-content,
    .analysis-case-back,
    .analysis-case-reading-time {
        display: none !important;
    }

    /* Reduce section padding for print */
    .analysis-case-hero,
    .analysis-disclaimer,
    .analysis-body,
    .analysis-sources {
        padding: 24px 0;
    }

    /* White background, dark text */
    body {
        background: white;
        color: #111;
    }

    /* Body text */
    .analysis-body-content p {
        color: #333;
        font-size: 11pt;
        line-height: 1.5;
    }

    /* Headings */
    .analysis-body-content h2 {
        color: #111;
        font-size: 14pt;
        page-break-after: avoid;
    }

    .analysis-body-content h2::after {
        background: #999;
    }

    .analysis-body-content h3 {
        color: #111;
        font-size: 12pt;
    }

    .analysis-body-content h4 {
        color: #555;
        font-size: 9pt;
    }

    .analysis-data-series {
        background: transparent;
        border: 1px solid #ddd;
    }

    /* Blockquotes */
    .analysis-body-content blockquote {
        border-left-color: #999;
        background: transparent;
        page-break-inside: avoid;
    }

    .analysis-body-content blockquote p {
        color: #444;
        font-size: 10.5pt;
    }

    /* Disclaimer */
    .analysis-disclaimer {
        background: transparent;
        border-color: #ccc;
        page-break-inside: avoid;
    }

    .analysis-disclaimer-inner {
        border-left-color: #999;
        margin-left: 0;
    }

    .analysis-disclaimer-inner p {
        color: #555;
        font-size: 9.5pt;
    }

    /* Sources — expand for print */
    .analysis-source-list {
        max-height: none !important;
        overflow: visible;
    }

    .analysis-source-list li {
        color: #555;
        border-bottom-color: #ddd;
        font-size: 9pt;
    }

    /* Case hero */
    .analysis-case-title {
        color: #111;
        font-size: 22pt;
    }

    .analysis-hero-subtitle {
        color: #333;
    }

    .analysis-case-tag {
        border-color: #999;
        color: #555;
    }

    /* Governance gap heading */
    .analysis-body-content h3.analysis-governance-gap {
        color: #111;
    }

    /* Closing disclaimer */
    .analysis-closing-disclaimer {
        background: transparent;
        border-left-color: #999;
        margin-left: 0;
    }

    .analysis-closing-disclaimer p {
        color: #555;
        font-size: 9.5pt;
    }

    /* Horizontal rule */
    .analysis-body-content hr {
        background: #ddd;
    }

    /* Content width — full for print */
    .analysis-body-content,
    .analysis-disclaimer-inner,
    .analysis-sources-inner {
        max-width: 100%;
    }

    /* Show URLs for external links */
    .analysis-body-content a[href^="http"]::after {
        content: " (" attr(href) ")";
        font-size: 0.8em;
        color: #666;
    }
}
