/* landing-public.css — shared public landing/page block styles (.pub-*).
   Extracted verbatim from public_course_landing.html inline <style> (S3, Phase 2 Frontend).
   Loaded by BOTH public_course_landing.html and landing/page.html for full parity. */
        /* ── Public Page Layout ── */
        .pub-body {
            background: var(--color-bg);
            min-height: 100vh;
        }

        /* ── Public Nav ── */
        .pub-nav {
            position: sticky;
            top: 0;
            z-index: 100;
            background: var(--color-white);
            border-bottom: 1px solid var(--color-border);
            box-shadow: var(--shadow-sm);
        }

        .pub-nav-inner {
            max-width: 1080px;
            margin: 0 auto;
            padding: 0 var(--space-6);
            height: 64px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: var(--space-4);
        }

        .pub-nav-logo {
            display: flex;
            align-items: center;
            gap: var(--space-3);
            font-family: var(--font-heading);
            font-size: 1.15rem;
            color: var(--color-primary);
            text-decoration: none;
        }

        .pub-nav-logo:hover {
            color: var(--color-primary-dark);
            text-decoration: none;
        }

        .pub-nav-logo img {
            width: 32px;
            height: 32px;
        }

        .pub-nav-actions {
            display: flex;
            align-items: center;
            gap: var(--space-3);
        }

        .pub-nav-user {
            display: flex;
            align-items: center;
            gap: var(--space-3);
            font-size: 0.875rem;
            color: var(--color-text-light);
        }

        /* ── Hero Section ── */
        .pub-hero {
            position: relative;
            background: var(--color-primary-dark);
            color: var(--color-white);
            overflow: hidden;
        }

        .pub-hero-bg {
            position: absolute;
            inset: 0;
            background-size: cover;
            background-position: center;
            opacity: 0.25;
        }

        .pub-hero-overlay {
            position: absolute;
            inset: 0;
            background: linear-gradient(135deg, rgba(26, 74, 90, 0.9) 0%, rgba(39, 99, 120, 0.75) 100%);
        }

        .pub-hero-inner {
            position: relative;
            z-index: 1;
            max-width: 1080px;
            margin: 0 auto;
            padding: var(--space-16) var(--space-6);
            display: grid;
            grid-template-columns: 1fr auto;
            gap: var(--space-10);
            align-items: center;
        }

        .pub-hero-text h1 {
            font-family: var(--font-heading);
            font-size: clamp(1.75rem, 4vw, 2.75rem);
            font-weight: 700;
            color: var(--color-white);
            line-height: 1.2;
            margin-bottom: var(--space-4);
        }

        .pub-hero-text p {
            font-size: 1.05rem;
            color: rgba(255,255,255,0.88);
            max-width: 560px;
            line-height: 1.7;
            margin-bottom: var(--space-8);
        }

        .pub-hero-cta {
            display: flex;
            flex-wrap: wrap;
            gap: var(--space-3);
            align-items: center;
        }

        .pub-hero-price-note {
            font-size: 0.85rem;
            color: rgba(255,255,255,0.7);
        }

        .pub-hero-badge {
            display: inline-flex;
            align-items: center;
            gap: var(--space-2);
            background: rgba(255,255,255,0.15);
            border: 1px solid rgba(255,255,255,0.25);
            border-radius: var(--radius-full);
            padding: var(--space-1) var(--space-4);
            font-size: 0.8rem;
            color: rgba(255,255,255,0.9);
            margin-bottom: var(--space-5);
        }

        .pub-hero-image {
            flex-shrink: 0;
            width: 280px;
        }

        .pub-hero-image img {
            width: 100%;
            border-radius: var(--radius-lg);
            box-shadow: var(--shadow-lg);
        }

        /* ── Hero Variants (Phase 9) ── */
        .pub-hero .pub-hero-subtitle {
            font-size: 1.15rem;
            font-weight: 600;
            color: rgba(255,255,255,0.92);
            max-width: 560px;
            margin: 0 0 var(--space-4);
        }

        .pub-hero-price-note--light {
            color: var(--color-text-muted, #777);
        }

        /* Variante: Video */
        .pub-hero--video {
            background: var(--color-primary);
        }

        .pub-hero--video .pub-hero-inner {
            grid-template-columns: 1.1fr 1fr;
        }

        /* Kein `iframe` in dieser Gruppe: das von trailer.js injizierte
           iframe.video-embed muss position:absolute behalten, sonst kollabiert
           es im padding-hack .yt-embed-wrap (height:0) auf 0px — schwarzes
           Bild bei laufendem Ton. */
        .pub-hero-video .yt-embed-wrap,
        .pub-hero-video video {
            width: 100%;
            aspect-ratio: 16 / 9;
            border-radius: var(--radius-lg);
            overflow: hidden;
            position: relative;
            box-shadow: 0 30px 80px -20px rgba(0, 0, 0, 0.7);
        }

        /* Variante: Zentriert */
        .pub-hero--centered {
            background: var(--color-bg-alt, #f8f4ef);
            color: var(--color-text);
        }

        .pub-hero--centered .pub-hero-inner {
            grid-template-columns: 1fr;
            justify-items: center;
            text-align: center;
        }

        .pub-hero--centered .pub-hero-text h1 {
            color: var(--color-primary-dark);
            font-size: clamp(2rem, 5vw, 3.25rem);
        }

        .pub-hero--centered .pub-hero-text p {
            color: var(--color-text-light);
            margin-left: auto;
            margin-right: auto;
        }

        .pub-hero--centered .pub-hero-text .pub-hero-subtitle {
            color: var(--color-primary);
        }

        .pub-hero--centered .pub-hero-cta {
            justify-content: center;
        }

        /* Variante: Vollbild-Hintergrund */
        .pub-hero--background {
            display: flex;
            flex-direction: column;
            justify-content: flex-end;
            min-height: 70vh;
        }

        .pub-hero--background .pub-hero-bg {
            opacity: 1;
        }

        .pub-hero--background .pub-hero-overlay {
            background: linear-gradient(to top, rgba(26, 67, 82, 0.92) 0%, rgba(26, 67, 82, 0.4) 45%, rgba(26, 67, 82, 0.05) 80%);
        }

        .pub-hero--background .pub-hero-inner {
            grid-template-columns: 1fr;
            width: 100%;
        }

        .pub-hero--background .pub-hero-text {
            max-width: 640px;
        }

        /* Variante: Split + Badges */
        .pub-hero--split_badges .pub-hero-inner {
            grid-template-columns: 1.1fr 1fr;
        }

        .pub-hero-split-img img {
            width: 100%;
            max-height: 420px;
            object-fit: cover;
            border-radius: var(--radius-lg);
            box-shadow: var(--shadow-lg);
            display: block;
        }

        .pub-hero-badges {
            list-style: none;
            display: flex;
            flex-wrap: wrap;
            gap: var(--space-2);
            margin: 0 0 var(--space-6);
            padding: 0;
        }

        .pub-hero-badge-pill {
            display: inline-flex;
            align-items: center;
            background: rgba(255,255,255,0.14);
            border: 1px solid rgba(255,255,255,0.3);
            border-radius: var(--radius-full);
            padding: var(--space-1) var(--space-4);
            font-size: 0.8rem;
            color: rgba(255,255,255,0.92);
        }

        /* USPs Variante: Liste */
        /* Doubled class = higher specificity than the base .pub-highlights rule,
           which is declared further down and would otherwise win by order. */
        .pub-highlights.pub-highlights--list {
            grid-template-columns: 1fr;
            max-width: 640px;
        }

        .pub-highlights--list .pub-highlight-item {
            font-size: 1rem;
            padding: var(--space-2) 0;
            border-bottom: 1px solid var(--color-border-light);
        }

        .pub-highlights--list .pub-highlight-item:last-child {
            border-bottom: none;
        }

        /* Reviews Variante: Spotlight */
        .pub-review-spotlight {
            margin: 0 auto;
            max-width: 640px;
            text-align: center;
            padding: var(--space-8) var(--space-6);
            background: var(--color-white);
            border: 1px solid var(--color-border, #e5e0d8);
            border-radius: var(--radius-xl, 16px);
        }

        .pub-review-spotlight-mark {
            display: block;
            font-family: var(--font-heading);
            font-size: 3.5rem;
            line-height: 0.6;
            color: var(--color-accent, #c39641);
        }

        .pub-review-spotlight blockquote {
            margin: var(--space-4) 0 var(--space-6);
            font-family: var(--font-heading);
            font-size: 1.35rem;
            font-style: italic;
            line-height: 1.5;
            color: var(--color-primary-dark);
        }

        .pub-review-spotlight figcaption {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: var(--space-3);
        }

        .pub-review-spotlight figcaption img {
            width: 48px;
            height: 48px;
            border-radius: 50%;
            object-fit: cover;
        }

        .pub-review-spotlight-source {
            font-size: 0.85rem;
            color: var(--color-text-muted, #777);
        }

        @media (max-width: 768px) {
            .pub-hero--video .pub-hero-inner,
            .pub-hero--split_badges .pub-hero-inner {
                grid-template-columns: 1fr;
            }

            .pub-hero--background {
                min-height: 55vh;
            }

            .pub-hero-split-img img {
                max-height: 260px;
            }

            .pub-review-spotlight blockquote {
                font-size: 1.15rem;
            }
        }

        /* ── Main Content ── */
        .pub-content {
            max-width: 1080px;
            margin: 0 auto;
            padding: var(--space-12) var(--space-6);
            display: grid;
            grid-template-columns: 1fr 340px;
            gap: var(--space-10);
            align-items: start;
        }

        .pub-main {
            min-width: 0;
        }

        .pub-sidebar {
            position: sticky;
            top: 80px;
            max-height: calc(100vh - 96px);
            overflow-y: auto;
        }

        /* ── Section Titles ── */
        .pub-section {
            margin-bottom: var(--space-10);
        }

        .pub-section-title {
            font-family: var(--font-heading);
            font-size: 1.4rem;
            color: var(--color-primary-dark);
            margin-bottom: var(--space-6);
            padding-bottom: var(--space-3);
            border-bottom: 2px solid var(--color-border-light);
        }

        /* ── Highlights / What you'll learn ── */
        .pub-highlights {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: var(--space-4);
        }

        .pub-highlight-item {
            display: flex;
            align-items: flex-start;
            gap: var(--space-3);
            font-size: 0.925rem;
            line-height: 1.5;
            color: var(--color-text);
        }

        .pub-highlight-check {
            flex-shrink: 0;
            width: 20px;
            height: 20px;
            border-radius: 50%;
            background: var(--color-success-light);
            color: var(--color-success);
            display: flex;
            align-items: center;
            justify-content: center;
            margin-top: 1px;
        }

        .pub-highlight-check svg {
            width: 12px;
            height: 12px;
        }

        /* ── Module Accordion ── */
        .pub-module-list {
            border: 1px solid var(--color-border);
            border-radius: var(--radius-lg);
            overflow: hidden;
        }

        .pub-module-item {
            border-bottom: 1px solid var(--color-border-light);
        }

        .pub-module-item:last-child {
            border-bottom: none;
        }

        .pub-module-btn {
            width: 100%;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: var(--space-4);
            padding: var(--space-4) var(--space-5);
            background: var(--color-white);
            border: none;
            cursor: pointer;
            text-align: left;
            transition: background 0.15s;
        }

        .pub-module-btn:hover {
            background: var(--color-bg-alt);
        }

        .pub-module-btn-left {
            display: flex;
            align-items: center;
            gap: var(--space-3);
        }

        .pub-module-chevron {
            flex-shrink: 0;
            color: var(--color-text-muted);
            transition: transform 0.2s;
        }

        .pub-module-chevron.is-open {
            transform: rotate(180deg);
        }

        .pub-module-num {
            font-size: 0.75rem;
            font-weight: 700;
            color: var(--color-text-muted);
            background: var(--color-bg-alt);
            border: 1px solid var(--color-border-light);
            border-radius: var(--radius-sm);
            padding: 2px 7px;
            flex-shrink: 0;
        }

        .pub-module-title {
            font-weight: 600;
            font-size: 0.925rem;
            color: var(--color-text);
        }

        .pub-module-meta {
            font-size: 0.8rem;
            color: var(--color-text-muted);
            white-space: nowrap;
        }

        .pub-module-body {
            display: none;
            background: var(--color-bg);
            border-top: 1px solid var(--color-border-light);
            padding: var(--space-4) var(--space-5);
        }

        .pub-module-body.is-open {
            display: block;
        }

        .pub-module-desc {
            font-size: 0.9rem;
            color: var(--color-text-light);
            margin: 0 0 var(--space-3);
            line-height: 1.55;
        }

        .pub-lesson-list {
            list-style: none;
            margin: 0;
            padding: 0;
        }

        .pub-lesson-row {
            display: flex;
            align-items: flex-start;
            gap: var(--space-3);
            padding: var(--space-3) 0;
            border-bottom: 1px solid var(--color-border-light);
            font-size: 0.9rem;
            color: var(--color-text);
        }

        .pub-lesson-row:last-child {
            border-bottom: none;
        }

        .pub-lesson-icon {
            flex-shrink: 0;
            color: var(--color-primary);
            margin-top: 2px;
        }

        .pub-lesson-row-body {
            flex: 1;
            min-width: 0;
        }

        .pub-lesson-row-head {
            display: flex;
            align-items: baseline;
            justify-content: space-between;
            gap: var(--space-3);
            flex-wrap: wrap;
        }

        .pub-lesson-title {
            font-weight: 600;
            color: var(--color-text);
            line-height: 1.4;
        }

        .pub-lesson-meta {
            font-size: 0.8rem;
            color: var(--color-text-muted);
            white-space: nowrap;
            display: inline-flex;
            align-items: center;
            gap: var(--space-2);
        }

        .pub-lesson-desc {
            font-size: 0.85rem;
            color: var(--color-text-light);
            line-height: 1.5;
            margin: var(--space-1) 0 0;
        }

        .pub-lesson-locked {
            color: var(--color-text-muted);
            font-style: italic;
            font-size: 0.78rem;
        }

        .pub-lesson-badge {
            display: inline-block;
            padding: 2px 8px;
            border-radius: 999px;
            font-size: 0.7rem;
            font-weight: 600;
            letter-spacing: 0.02em;
            text-transform: uppercase;
        }

        .pub-lesson-badge--free {
            background: rgba(195, 150, 65, 0.15);
            color: var(--color-accent, #c39641);
        }

        /* ── Submodules (nested) ── */
        .pub-submodule-list {
            list-style: none;
            margin: var(--space-3) 0 0;
            padding: 0;
            border-left: 2px solid var(--color-border-light);
            padding-left: var(--space-4);
        }

        .pub-submodule-item {
            margin: 0;
        }

        .pub-submodule-item + .pub-submodule-item {
            margin-top: var(--space-2);
        }

        .pub-submodule-details {
            border-radius: var(--radius-md, 8px);
        }

        .pub-submodule-details[open] > .pub-submodule-summary .pub-submodule-chevron {
            transform: rotate(180deg);
        }

        .pub-submodule-summary {
            list-style: none;
            cursor: pointer;
            display: flex;
            align-items: center;
            gap: var(--space-2);
            padding: var(--space-2) var(--space-3);
            border-radius: var(--radius-sm, 6px);
            font-size: 0.92rem;
            color: var(--color-text);
            user-select: none;
        }

        .pub-submodule-summary::-webkit-details-marker {
            display: none;
        }

        .pub-submodule-summary:hover {
            background: var(--color-bg);
        }

        .pub-submodule-chevron {
            color: var(--color-text-muted);
            flex-shrink: 0;
            transition: transform 0.18s ease;
            display: inline-flex;
        }

        .pub-submodule-num {
            font-family: var(--font-heading);
            font-size: 0.85rem;
            color: var(--color-primary);
            min-width: 1.8em;
        }

        .pub-submodule-title {
            font-weight: 600;
            flex: 1;
        }

        .pub-submodule-meta {
            font-size: 0.78rem;
            color: var(--color-text-muted);
            white-space: nowrap;
        }

        .pub-submodule-body {
            padding: var(--space-2) var(--space-3) var(--space-3) calc(14px + var(--space-2) + var(--space-3));
        }

        .pub-submodule-desc {
            font-size: 0.85rem;
            color: var(--color-text-light);
            margin: 0 0 var(--space-3);
            line-height: 1.5;
        }

        .pub-submodule-empty {
            font-size: 0.85rem;
            color: var(--color-text-muted);
            font-style: italic;
            margin: 0;
        }

        /* ── Price Card ── */
        .pub-price-card {
            background: var(--color-white);
            border: 2px solid var(--color-border);
            border-radius: var(--radius-xl);
            overflow: hidden;
            box-shadow: var(--shadow-lg);
        }

        .pub-price-card-header {
            background: var(--color-primary);
            color: var(--color-white);
            padding: var(--space-6) var(--space-6) var(--space-5);
            text-align: center;
        }

        .pub-price-card-header--compact {
            padding: var(--space-3) var(--space-5);
        }

        .pub-price-card--slider .pub-price-card-body {
            padding: var(--space-4) var(--space-5) var(--space-5);
        }

        .pub-price-card--slider .pub-price-features {
            margin-bottom: var(--space-4);
        }

        .pub-price-card--slider .pub-price-feature {
            padding: var(--space-1) 0;
            font-size: 0.85rem;
        }

        .pub-price-label {
            font-size: 0.8rem;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            color: rgba(255,255,255,0.75);
            margin-bottom: var(--space-2);
        }

        .pub-price-amount {
            font-family: var(--font-heading);
            font-size: 2.5rem;
            font-weight: 700;
            color: var(--color-white);
            line-height: 1;
        }

        .pub-price-period {
            font-size: 0.9rem;
            color: rgba(255,255,255,0.75);
            margin-top: var(--space-1);
        }

        .pub-price-card-body {
            padding: var(--space-6);
        }

        .pub-price-features {
            list-style: none;
            margin-bottom: var(--space-6);
        }

        .pub-price-feature {
            display: flex;
            align-items: flex-start;
            gap: var(--space-3);
            padding: var(--space-2) 0;
            font-size: 0.9rem;
            color: var(--color-text);
            border-bottom: 1px solid var(--color-border-light);
        }

        .pub-price-feature:last-child {
            border-bottom: none;
        }

        .pub-price-feature-icon {
            flex-shrink: 0;
            color: var(--color-success);
            margin-top: 2px;
        }

        .pub-enrolled-hint {
            text-align: center;
            font-size: 0.8rem;
            color: var(--color-text-muted);
            margin-top: var(--space-4);
        }

        /* ── Enrolled State Banner ── */
        .pub-enrolled-banner {
            display: flex;
            align-items: center;
            gap: var(--space-4);
            padding: var(--space-5);
            background: var(--color-success-light);
            border: 1px solid rgba(46,125,50,0.2);
            border-radius: var(--radius-lg);
            margin-bottom: var(--space-8);
        }

        .pub-enrolled-banner-icon {
            flex-shrink: 0;
            width: 44px;
            height: 44px;
            border-radius: 50%;
            background: var(--color-success);
            color: var(--color-white);
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .pub-enrolled-banner-text strong {
            display: block;
            color: var(--color-success);
            font-size: 0.975rem;
            margin-bottom: var(--space-1);
        }

        .pub-enrolled-banner-text span {
            font-size: 0.85rem;
            color: var(--color-text-light);
        }

        /* ── Footer ── */
        .pub-footer {
            border-top: 1px solid var(--color-border-light);
            background: var(--color-bg-alt);
            margin-top: var(--space-12);
            padding: var(--space-8) var(--space-6);
            text-align: center;
            font-size: 0.8rem;
            color: var(--color-text-muted);
        }

        .pub-footer a {
            color: var(--color-text-muted);
        }

        .pub-footer a:hover {
            color: var(--color-text);
        }

        /* ── Responsive ── */
        @media (max-width: 800px) {
            .pub-hero-inner {
                grid-template-columns: 1fr;
                padding: var(--space-10) var(--space-5);
            }

            .pub-hero-image {
                display: none;
            }

            .pub-content {
                grid-template-columns: 1fr;
                padding: var(--space-8) var(--space-5);
            }

            .pub-sidebar {
                position: static;
            }

            .pub-highlights {
                grid-template-columns: 1fr;
            }

            .pub-price-card {
                margin-top: 0;
            }

            .pub-nav-inner {
                padding: 0 var(--space-4);
            }
        }
