/* ============================================================
   PROJECT ORIGIN — MINIMAL REDESIGN
   Y Combinator–inspired: cream canvas, serif display type
   (Gowun Batang), generous whitespace, hairline rules,
   no glassmorphism / gradients / gimmicks.
   Loaded AFTER styles.css to override the legacy theme.
   ============================================================ */

/* ---------- Fonts ---------- */
@font-face {
    font-family: "Gowun Batang";
    src: url("assets/fonts/GowunBatang-Regular.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Gowun Batang";
    src: url("assets/fonts/GowunBatang-Bold.ttf") format("truetype");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

/* ---------- Tokens ---------- */
:root {
    --rd-serif: "Gowun Batang", Georgia, "Times New Roman", serif;
    --rd-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;

    --rd-bg: #f4f3ec;          /* warm cream canvas */
    --rd-bg-alt: #efeee5;      /* slightly deeper cream */
    --rd-surface: #ffffff;     /* cards */
    --rd-ink: #18170f;         /* near-black, warm */
    --rd-ink-soft: #46443c;    /* secondary text */
    --rd-muted: #827f73;       /* tertiary / labels */
    --rd-line: #e0ded2;        /* hairline on cream */
    --rd-line-strong: #d2cfc0;
    --rd-accent: #1e3a8a;      /* Origin blue (kept on-brand) */
    --rd-accent-ink: #ffffff;
    --rd-dark: #16150f;        /* footer */

    /* Neutralize legacy variables that were undefined/garish */
    --gray-200: var(--rd-line);
    --text-medium: var(--rd-ink-soft);
    --text-dark: var(--rd-ink);
    --text-light: var(--rd-muted);
}

/* ---------- Base ---------- */
html {
    scroll-behavior: smooth;
}

body {
    background: var(--rd-bg) !important;
    color: var(--rd-ink) !important;
    font-family: var(--rd-serif) !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    letter-spacing: 0.005em;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--rd-serif) !important;
    color: var(--rd-ink) !important;
    font-weight: 700;
    letter-spacing: -0.01em;
    line-height: 1.12;
}

p, li, a, span, blockquote, cite, label, input, textarea, select, button {
    font-family: var(--rd-serif);
}

/* Italic accent helper for headlines (YC style) */
.rd-em {
    font-style: italic;
    font-weight: 400;
}

.container {
    max-width: 1120px;
    margin: 0 auto;
    padding: 0 28px;
}

/* UI bits that read better as clean sans */
.nav-link,
.mobile-nav-item,
.nav-item,
.nav-button,
.mobile-nav-btn,
.section-badge,
.stat-text,
.impact-label,
.format-tag,
.gallery-caption,
.cohort-badge,
.week-label,
.phase-number,
.btn-primary,
.btn-primary-outline,
.btn-large,
.text-link,
.learn-more-btn,
.start-chapter-btn,
.site-footer-col h3,
.site-footer-col a,
.site-footer-bottom {
    font-family: var(--rd-sans) !important;
}

/* ============================================================
   NAVIGATION
   ============================================================ */
.nav {
    background: rgba(244, 243, 236, 0.85) !important;
    backdrop-filter: saturate(120%) blur(8px);
    -webkit-backdrop-filter: saturate(120%) blur(8px);
    border-bottom: 1px solid var(--rd-line) !important;
    box-shadow: none !important;
}

.nav-container {
    height: 68px;
    max-width: 1120px;
    padding: 0 28px;
}

.nav-logo-img,
.mobile-logo-img {
    height: 30px !important;
    width: auto !important;
}

.nav-link {
    color: var(--rd-ink-soft) !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    padding: 6px 0 !important;
}

.nav-link::after {
    display: none !important;
}

.nav-link:hover,
.nav-link.active {
    color: var(--rd-ink) !important;
    background: transparent !important;
}

.nav-button {
    background: var(--rd-accent) !important;
    color: var(--rd-accent-ink) !important;
    border: none !important;
    border-radius: 4px !important;
    padding: 9px 18px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    box-shadow: none !important;
    transition: background 0.2s ease !important;
}

.nav-button:hover {
    background: #16306e !important;
    transform: none !important;
}

/* Mobile nav */
.mobile-nav {
    background: rgba(244, 243, 236, 0.96) !important;
    border-bottom: 1px solid var(--rd-line) !important;
    box-shadow: none !important;
    backdrop-filter: saturate(120%) blur(8px);
    -webkit-backdrop-filter: saturate(120%) blur(8px);
}

.mobile-nav .nav-menu {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 20px;
    padding: 14px 20px;
}

.mobile-nav .nav-item,
.mobile-nav-item {
    text-decoration: none !important;
    font-size: 15px !important;
}

.mobile-nav-item,
.nav-item {
    color: var(--rd-ink-soft) !important;
    font-weight: 500 !important;
}

.mobile-nav-item.active,
.nav-item.active {
    color: var(--rd-ink) !important;
}

.mobile-nav-btn {
    background: var(--rd-accent) !important;
    color: #fff !important;
    border-radius: 4px !important;
}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn-primary,
.btn-primary.btn-large {
    background: var(--rd-accent) !important;
    color: var(--rd-accent-ink) !important;
    border: 1px solid var(--rd-accent) !important;
    border-radius: 4px !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
    box-shadow: none !important;
    transition: background 0.2s ease, border-color 0.2s ease !important;
}

.btn-primary:hover {
    background: #16306e !important;
    border-color: #16306e !important;
    transform: none !important;
    box-shadow: none !important;
}

.btn-primary-outline {
    background: transparent !important;
    color: var(--rd-ink) !important;
    border: 1px solid var(--rd-ink) !important;
    border-radius: 4px !important;
    font-weight: 600 !important;
    box-shadow: none !important;
    transition: background 0.2s ease, color 0.2s ease !important;
}

.btn-primary-outline:hover {
    background: var(--rd-ink) !important;
    color: var(--rd-bg) !important;
    transform: none !important;
}

.text-link {
    color: var(--rd-accent) !important;
    font-weight: 600 !important;
}

/* ============================================================
   SECTION BACKGROUNDS — flatten gradients to cream
   ============================================================ */
.programs-header,
.program-cards,
.classroom-integration,
.stats-section,
.final-cta-new,
.home-impact,
.formats-section,
.cohort-hero,
.cohort-page .cohort-hero,
.cohort-stats,
.cohort-page .cohort-stats,
.program-timeline,
.cohort-page .program-timeline,
.bootcamp-gallery,
.cohort-winners,
.cohort-testimonials,
.cohort-cta,
.page-hero {
    background: var(--rd-bg) !important;
}

/* Alternating deeper cream for rhythm */
.program-cards,
.home-impact,
.cohort-winners,
.cohort-testimonials {
    background: var(--rd-bg-alt) !important;
}

/* Kill decorative orbs / glows / overlays */
.cohort-hero::before,
.cohort-hero::after,
.cohort-stats::before,
.stat-card::before,
.stats-section::before,
.final-cta-new::before,
.footer::before {
    display: none !important;
}

/* ============================================================
   HERO (home) — text-first cream hero, YC style
   ============================================================ */
.hero-fullwidth {
    position: relative !important;
    min-height: 100vh !important;
    height: 100vh !important;
    background: var(--rd-bg) !important;
    padding: 0 !important;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.hero-fullwidth .hero-bg,
.hero-fullwidth .hero-overlay {
    display: none !important;
}

.hero-fullwidth .hero-content {
    position: relative !important;
    max-width: 1000px;
    margin: 0 auto !important;
    padding: 0 28px;
    text-align: center !important;
}

.hero-headline {
    color: var(--rd-ink) !important;
    font-family: var(--rd-serif) !important;
    font-weight: 700 !important;
    font-size: clamp(42px, 7vw, 88px) !important;
    line-height: 1.06 !important;
    letter-spacing: -0.025em !important;
    text-transform: none !important;
    text-shadow: none !important;
    margin: 0 auto !important;
    text-align: center !important;
}

.hero-scroll {
    position: absolute !important;
    bottom: 40px;
    left: 50%;
    transform: translateX(-50%);
    color: var(--rd-muted) !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none !important;
    opacity: 0.7;
    transition: opacity 0.2s ease;
    animation: heroScrollBounce 2.2s ease-in-out infinite;
}

.hero-scroll:hover {
    opacity: 1;
}

@keyframes heroScrollBounce {
    0%, 100% { transform: translateX(-50%) translateY(0); }
    50% { transform: translateX(-50%) translateY(7px); }
}

/* ============================================================
   INTRO STATEMENT — text-first lead-in under the hero
   ============================================================ */
.home-intro {
    background: var(--rd-bg) !important;
    padding: 24px 0 96px;
    border-bottom: 1px solid var(--rd-line);
}

.home-intro .container {
    max-width: 880px;
}

.home-intro-text {
    font-family: var(--rd-serif) !important;
    font-size: clamp(24px, 3.2vw, 36px);
    line-height: 1.4;
    letter-spacing: -0.01em;
    color: var(--rd-ink) !important;
    text-align: center;
    margin: 0;
}

/* ============================================================
   STORY SLIDES — keep photos, calmer overlay & serif type
   ============================================================ */
.story-overlay {
    background: linear-gradient(180deg, rgba(20,19,15,0.35) 0%, rgba(20,19,15,0.62) 100%) !important;
}

.story-title {
    font-family: var(--rd-serif) !important;
    font-weight: 700 !important;
    letter-spacing: -0.01em !important;
    color: #ffffff !important;
}

.story-description {
    font-family: var(--rd-serif) !important;
    color: #ffffff !important;
}

/* ============================================================
   SCROLLYTELLING — pinned, scroll-driven step switcher (YC-style)
   ============================================================ */
.scrolly {
    position: relative;
    height: 300vh;
    background: var(--rd-bg) !important;
    border-top: 1px solid var(--rd-line);
}

.scrolly-sticky {
    position: sticky;
    top: 0;
    height: 100vh;
    display: flex;
    align-items: center;
    overflow: hidden;
}

.scrolly-grid {
    display: grid;
    grid-template-columns: 1fr 1.05fr;
    gap: 64px;
    align-items: center;
    width: 100%;
}

.scrolly-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.scrolly-list .section-badge {
    margin-bottom: 20px;
}

.scrolly-step {
    display: block;
    text-align: left;
    background: none;
    border: none;
    border-left: 2px solid transparent;
    padding: 16px 0 16px 24px;
    margin: 0;
    cursor: pointer;
    opacity: 0.32;
    transition: opacity 0.45s ease, border-color 0.45s ease;
    font-family: var(--rd-serif);
}

.scrolly-step.is-active {
    opacity: 1;
    border-left-color: var(--rd-accent);
}

.scrolly-step-index {
    display: block;
    font-family: var(--rd-sans);
    font-size: 12px;
    letter-spacing: 0.18em;
    color: var(--rd-muted);
}

.scrolly-step-title {
    display: block;
    font-family: var(--rd-serif);
    font-weight: 700;
    font-size: clamp(26px, 3vw, 42px);
    line-height: 1.08;
    letter-spacing: -0.02em;
    color: var(--rd-ink);
    margin-top: 8px;
}

.scrolly-step-desc {
    display: block;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transform: translateY(-4px);
    color: var(--rd-ink-soft);
    font-family: var(--rd-serif);
    font-size: 17px;
    line-height: 1.5;
    max-width: 460px;
    transition: max-height 0.5s ease, opacity 0.45s ease, transform 0.45s ease, margin-top 0.45s ease;
}

.scrolly-step.is-active .scrolly-step-desc {
    max-height: 160px;
    opacity: 1;
    transform: translateY(0);
    margin-top: 12px;
}

.scrolly-stage {
    position: relative;
    aspect-ratio: 4 / 3;
    border-radius: 16px;
    overflow: hidden;
    background: #0e0d09;
}

.scrolly-media {
    position: absolute;
    inset: 0;
    opacity: 0;
    transform: scale(1.06);
    transition: opacity 0.8s ease, transform 1.1s cubic-bezier(0.16, 1, 0.3, 1);
    pointer-events: none;
}

.scrolly-media.is-active {
    opacity: 1;
    transform: scale(1);
}

.scrolly-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.scrolly-media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(12,11,7,0.6) 0%, rgba(12,11,7,0.05) 40%, transparent 70%);
}

.scrolly-cap {
    position: absolute;
    left: 24px;
    bottom: 22px;
    z-index: 1;
    color: #ffffff;
    font-family: var(--rd-sans);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.06em;
}

@media (max-width: 860px) {
    .scrolly {
        height: 280vh;
    }
    .scrolly-grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }
    .scrolly-stage {
        order: -1;
        aspect-ratio: 16 / 10;
    }
    .scrolly-step {
        padding: 12px 0 12px 18px;
    }
}

/* ============================================================
   SECTION HEADERS / TITLES
   ============================================================ */
.programs-title,
.timeline-header h2,
.winners-header h2,
.testimonials-header h2,
.home-impact-header h2,
.stats-content .big-stat,
.cohort-hero .page-title,
.cta-new-content h2,
.cohort-cta .cta-content h2 {
    font-family: var(--rd-serif) !important;
    font-weight: 700 !important;
    letter-spacing: -0.02em !important;
    color: var(--rd-ink) !important;
}

.programs-description,
.timeline-header p,
.winners-header p,
.home-impact-header p,
.cohort-hero .page-subtitle,
.stats-description,
.programs-header .programs-description {
    color: var(--rd-ink-soft) !important;
    font-family: var(--rd-serif) !important;
}

.section-badge,
.cohort-badge {
    background: transparent !important;
    color: var(--rd-muted) !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0.16em !important;
    text-transform: uppercase !important;
}

/* ============================================================
   PROGRAM CARDS — large editorial image cards, text overlaid
   (YC-style: no boxes, photo carries the card)
   ============================================================ */
.cards-grid {
    gap: 28px !important;
}

.program-card {
    position: relative !important;
    background: #0e0d09 !important;
    border: none !important;
    border-radius: 14px !important;
    box-shadow: none !important;
    overflow: hidden !important;
    aspect-ratio: 4 / 5 !important;
    height: auto !important;
    display: block !important;
    transition: transform 0.4s var(--ease-out-expo, ease), box-shadow 0.4s ease !important;
}

.program-card:hover {
    transform: translateY(-4px) !important;
    border: none !important;
    box-shadow: 0 22px 48px rgba(20, 19, 15, 0.16) !important;
}

.program-card .card-image {
    position: absolute !important;
    inset: 0 !important;
    height: 100% !important;
    width: 100% !important;
}

.program-card .card-image img {
    transition: transform 0.7s var(--ease-out-expo, ease) !important;
}

.program-card:hover .card-image img {
    transform: scale(1.04) !important;
}

.program-card .card-overlay {
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(to top,
        rgba(12, 11, 7, 0.88) 0%,
        rgba(12, 11, 7, 0.45) 38%,
        rgba(12, 11, 7, 0.05) 66%,
        transparent 100%) !important;
}

.program-card .card-content {
    position: absolute !important;
    inset: auto 0 0 0 !important;
    height: auto !important;
    justify-content: flex-end !important;
    padding: 36px 34px !important;
}

.program-card .card-content h3 {
    font-family: var(--rd-serif) !important;
    color: #ffffff !important;
    font-size: clamp(26px, 2.4vw, 34px) !important;
    line-height: 1.1 !important;
    margin: 0 0 14px 0 !important;
}

.program-card .learn-more-btn {
    display: none !important;
}

/* Genesis card shows a wide curriculum screenshot. Rather than crop it,
   fit the whole screenshot inside the card and letterbox it on black. */
.program-card .card-image:has(img[src*="genesis"]) {
    background: #000 !important;
}

.program-card .card-image img[src*="genesis"] {
    object-fit: contain !important;
    object-position: center !important;
    background: #000 !important;
    transform: none !important;
}

.program-card:hover .card-image img[src*="genesis"] {
    transform: none !important;
}

.program-card .start-chapter-btn {
    color: #ffffff !important;
    font-weight: 600 !important;
    opacity: 0.92 !important;
}

/* ============================================================
   STAT BANDS — inline numbers w/ hairlines, no boxes
   ============================================================ */
.stats-grid,
.impact-stats {
    border-top: 1px solid var(--rd-line) !important;
    border-bottom: 1px solid var(--rd-line) !important;
    border-radius: 0 !important;
    gap: 0 !important;
}

.stat-card,
.cohort-page .stat-card,
.impact-stat {
    background: transparent !important;
    border: none !important;
    border-left: 1px solid var(--rd-line) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    padding: 34px 18px !important;
}

.stats-grid .stat-card:first-child,
.impact-stats .impact-stat:first-child {
    border-left: none !important;
}

.stat-card::before {
    display: none !important;
}

.stat-card .stat-number,
.cohort-page .stat-card .stat-number,
.impact-number {
    font-family: var(--rd-serif) !important;
    color: var(--rd-ink) !important;
    font-weight: 700 !important;
}

.stat-card .stat-text,
.impact-label {
    color: var(--rd-muted) !important;
}

/* ============================================================
   FORMAT CARDS — borderless image + caption beneath
   ============================================================ */
.format-card {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.format-card:hover {
    transform: none !important;
    box-shadow: none !important;
}

.format-image {
    border-radius: 12px !important;
    overflow: hidden !important;
    aspect-ratio: 4 / 3 !important;
}

.format-image img {
    transition: transform 0.6s var(--ease-out-expo, ease) !important;
}

.format-card:hover .format-image img {
    transform: scale(1.04) !important;
}

.format-body {
    padding: 20px 2px 0 !important;
}

.format-tag {
    background: transparent !important;
    color: var(--rd-muted) !important;
    padding: 0 !important;
    letter-spacing: 0.14em !important;
}

.format-body h3 {
    font-family: var(--rd-serif) !important;
}

/* ============================================================
   GALLERY — borderless, soft corners
   ============================================================ */
.gallery-item {
    border-radius: 10px !important;
    border: none !important;
    box-shadow: none !important;
}

.gallery-item:hover {
    transform: none !important;
    box-shadow: none !important;
}

.gallery-item img {
    transition: transform 0.7s var(--ease-out-expo, ease) !important;
}

.gallery-item:hover img {
    transform: scale(1.03) !important;
}

.cohort-page .gallery-grid img,
.gallery-item img {
    border-radius: 0 !important;
}

/* ============================================================
   TIMELINE — editorial rows split by hairlines, no boxes
   ============================================================ */
.cohort-page .timeline-week {
    background: transparent !important;
    border: none !important;
    border-top: 1px solid var(--rd-line) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 44px 0 !important;
}

.cohort-page .timeline-phase {
    border-left-color: var(--rd-line-strong) !important;
}

.cohort-page .timeline-phase::before {
    background: var(--rd-accent) !important;
    box-shadow: none !important;
}

.week-label {
    background: transparent !important;
    color: var(--rd-muted) !important;
    border: none !important;
    padding: 0 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    font-size: 12px !important;
}

.phase-number {
    color: var(--rd-muted) !important;
    letter-spacing: 0.16em !important;
    text-transform: uppercase;
}

.timeline-img,
.phase-img,
.cohort-page .timeline-img,
.cohort-page .phase-img {
    border-radius: 10px !important;
}

/* ============================================================
   WINNERS — photo-forward, no boxes
   ============================================================ */
.winner-card {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.winner-card h3,
.winner-project {
    font-family: var(--rd-serif) !important;
}

.winner-photo {
    border-radius: 12px !important;
    overflow: hidden !important;
}

.winner-badge {
    background: transparent !important;
    color: var(--rd-muted) !important;
    border: none !important;
    padding: 0 !important;
    letter-spacing: 0.06em !important;
}

/* ============================================================
   TESTIMONIALS — borderless, hairline-topped quotes
   ============================================================ */
.testimonial-card {
    background: transparent !important;
    border: none !important;
    border-top: 1px solid var(--rd-line) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 28px 0 0 !important;
}

.testimonial-card blockquote {
    font-family: var(--rd-serif) !important;
    font-style: italic;
    color: var(--rd-ink) !important;
    font-size: 20px !important;
    line-height: 1.5 !important;
}

.testimonial-card cite {
    font-family: var(--rd-sans) !important;
    color: var(--rd-muted) !important;
    font-style: normal;
}

/* Mentorship/classroom split image — clean, no border */
.integration-image img,
.classroom-integration img {
    border-radius: 14px !important;
    box-shadow: none !important;
    border: none !important;
}

/* Webinar slide screenshot — focus the title band so the cut-off
   bullet text on the edges isn't what shows in the crop. */
.gallery-item img[src*="6.36.42"],
.scrolly-media img[src*="6.36.42"] {
    object-position: center 16% !important;
}

/* ============================================================
   LEGIBILITY GUARD — keep body copy dark on every flattened
   (cream) section so no white text becomes invisible.
   (Image-overlay text — story, cards, gallery captions, scrolly
   media — is handled explicitly elsewhere and stays white.)
   ============================================================ */
.programs-header p,
.classroom-integration p,
.stats-section p,
.final-cta-new p,
.final-cta-new .cta-new-content p,
.home-impact p,
.cohort-hero p,
.page-hero p,
.page-hero .page-subtitle,
.cohort-stats p,
.cohort-winners p,
.cohort-cta p,
.cohort-cta .cta-content p,
.bootcamp-curriculum p,
.pitch-final p,
.webinar-feature p,
.genesis-continue p {
    color: var(--rd-ink-soft) !important;
}

/* ============================================================
   BOOTCAMP CURRICULUM — editorial numbered rows, no boxes
   ============================================================ */
.bootcamp-curriculum,
.pitch-final,
.webinar-feature,
.genesis-continue {
    padding: clamp(64px, 8vw, 104px) 0 !important;
}

.bootcamp-curriculum .timeline-header {
    margin-bottom: 8px;
}

.course-track {
    display: flex;
    flex-direction: column;
    max-width: 1040px;
    margin: 0 auto;
}

.course-step {
    padding: 56px 0;
    border-top: 1px solid var(--rd-line);
}

.course-step:last-child {
    border-bottom: 1px solid var(--rd-line);
}

.course-step-index {
    font-family: var(--rd-sans);
    font-size: 13px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--rd-muted);
    margin-bottom: 24px;
}

.course-step-main {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    gap: 52px;
    align-items: center;
}

.course-step:nth-child(even) .course-step-media {
    order: -1;
}

.course-step-text h3 {
    font-family: var(--rd-serif) !important;
    font-weight: 700 !important;
    font-size: clamp(24px, 2.6vw, 34px) !important;
    letter-spacing: -0.02em !important;
    margin: 0 0 8px 0 !important;
    color: var(--rd-ink) !important;
}

.course-step-mentor {
    font-family: var(--rd-sans) !important;
    color: var(--rd-accent) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    margin: 0 0 16px 0 !important;
}

.course-step-list {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 22px;
    margin: 20px 0 0 0;
    padding: 0;
}

.course-step-list li {
    position: relative;
    padding-left: 16px;
    font-family: var(--rd-sans);
    font-size: 15px;
    color: var(--rd-ink-soft);
}

.course-step-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 9px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--rd-accent);
}

.course-step-media {
    overflow: hidden;
    border-radius: 12px;
}

.course-step-media img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
    transition: transform 0.6s var(--ease-out-expo, ease);
}

.course-step:hover .course-step-media img {
    transform: scale(1.03);
}

/* ============================================================
   PITCH FINALE — feature image + copy + prize photos
   ============================================================ */
.pitch-final-grid {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 52px;
    align-items: center;
    margin-top: 8px;
}

.pitch-final-feature {
    position: relative;
    border-radius: 14px;
    overflow: hidden;
    aspect-ratio: 3 / 2;
}

.pitch-final-feature img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.pitch-final-feature .gallery-caption {
    position: absolute;
    left: 20px;
    bottom: 16px;
    color: #fff;
    font-family: var(--rd-sans);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.05em;
    z-index: 1;
}

.pitch-final-feature::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(12,11,7,0.55), transparent 55%);
}

.pitch-final-text h3 {
    font-family: var(--rd-serif) !important;
    font-size: clamp(22px, 2.4vw, 30px) !important;
    margin: 0 0 16px 0 !important;
}

.pitch-final-list {
    list-style: none;
    margin: 20px 0 0 0;
    padding: 0;
}

.pitch-final-list li {
    position: relative;
    padding-left: 20px;
    margin-bottom: 12px;
    color: var(--rd-ink-soft);
    font-family: var(--rd-sans);
}

.pitch-final-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 9px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--rd-accent);
}

.pitch-final-checks {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    margin-top: 40px;
}

.pitch-final-checks figure {
    margin: 0;
}

.pitch-final-checks img {
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    border-radius: 12px;
    display: block;
}

.pitch-final-checks figcaption {
    margin-top: 12px;
    font-family: var(--rd-sans);
    font-size: 14px;
    color: var(--rd-muted);
}

/* ============================================================
   WEBINAR FEATURE — clean split
   ============================================================ */
.webinar-feature {
    background: var(--rd-bg-alt) !important;
}

.webinar-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 52px;
    align-items: center;
}

.webinar-media {
    border-radius: 14px;
    overflow: hidden;
    aspect-ratio: 4 / 3;
}

.webinar-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.webinar-text h2 {
    margin-top: 14px;
}

/* ============================================================
   GENESIS CONTINUE — quiet closing band
   ============================================================ */
.genesis-continue {
    background: var(--rd-bg) !important;
    border-top: 1px solid var(--rd-line);
}

.genesis-continue-inner {
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
}

.genesis-continue-inner h2 {
    margin-bottom: 16px;
}

.genesis-continue-inner .text-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 22px;
}

@media (max-width: 820px) {
    .course-step-main,
    .pitch-final-grid,
    .webinar-grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }
    .course-step:nth-child(even) .course-step-media,
    .webinar-media {
        order: -1;
    }
    .pitch-final-checks {
        grid-template-columns: 1fr;
    }
}

/* Footer styles live in styles.css (.site-footer) so every page —
   including Genesis, which keeps its own design — shares one clean,
   consistent footer for smooth page-to-page transitions.
   The global heading-color override above would darken the footer
   column titles, so restore them to white here. */
.site-footer-col h3 {
    color: #ffffff !important;
}

.site-footer-tagline {
    color: #f2f0e6 !important;
}
