/**
 * SWM Frontend Display Styles
 * Matches Astra dark theme: #0F172A, #16213E, gold #e4a11b
 */

/* =============================================================================
   CSS VARIABLES
   ============================================================================= */
:root {
    --swm-bg-dark: #0F172A;
    --swm-bg-card: #16213E;
    --swm-bg-hover: #1e2d4a;
    --swm-gold: #e4a11b;
    --swm-gold-hover: #f5c04a;
    --swm-text: #ffffff;
    --swm-text-muted: #94a3b8;
    --swm-border: #334155;
    --swm-radius: 8px;
    --swm-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.3);
}

/* =============================================================================
   GLOBAL ASTRA DARK THEME OVERRIDES
   ============================================================================= */
body, body.flavor-flavor, .ast-separate-container, .ast-page-builder-template {
    background-color: var(--swm-bg-dark) !important;
    color: #f0f0f0 !important;
}

h1, h2, h3, h4, h5, h6,
.entry-title, .page-title, .ast-archive-title {
    color: #f0f0f0 !important;
}

p, li, td, th, dd, dt, blockquote, figcaption {
    color: #cbd5e1;
}

.entry-content, .entry-content p, .ast-article-single,
.ast-separate-container .entry-content p {
    color: #cbd5e1 !important;
}

/* Astra wrapper backgrounds - make transparent so dark bg shows through */
.ast-separate-container .ast-article-single,
.ast-separate-container .ast-article-post,
.ast-separate-container .comment-respond,
.ast-separate-container .ast-comment-list li,
.ast-separate-container .ast-woocommerce-container,
.main-header-bar, .ast-header-break-point .main-header-bar,
#content, .site-content, #primary, #secondary,
.ast-container, .site-main {
    background-color: transparent !important;
}

/* =============================================================================
   GLOBAL LINK STYLE - Remove underlines for clean look
   ============================================================================= */
a,
a:hover,
a:focus,
a:visited,
.entry-content a,
.page-content a,
.swm-episode-content a,
.ast-single-post a,
article a {
    text-decoration: none !important;
}

/* =============================================================================
   CUSTOM SITE HEADER
   ============================================================================= */
.swm-site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 9999;
    background: rgba(15, 23, 42, 0.95);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--swm-border);
}

/* Hide Astra's native header completely since we use custom SWM header */
header#masthead,
header.site-header,
.ast-primary-header,
.ast-above-header,
.ast-below-header,
.ast-main-header-wrap,
.main-header-bar-wrap,
.ast-primary-header-bar,
.site-header-primary-section-left,
.site-header-primary-section-right,
.site-header-primary-section-center,
.site-header-section,
.ast-builder-menu,
.ast-mobile-header-wrap,
#ast-mobile-header,
#ast-desktop-header,
.ast-builder-grid-row,
.ast-builder-grid-row-has-sides,
.ast-mobile-header-content,
div[data-section="section-primary-header-builder"] {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    visibility: hidden !important;
    overflow: hidden !important;
}

/* Also hide empty entry-header that Astra adds */
.entry-header.ast-no-thumbnail.ast-no-title,
.entry-header.ast-header-without-markup {
    display: none !important;
}

/* Hide page title banner on the home/front page */
body.home .entry-header {
    display: none !important;
}

.swm-header-inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 70px;
}

.swm-header-logo {
    display: flex;
    align-items: center;
    text-decoration: none;
}

.swm-header-logo img {
    height: 45px;
    width: auto;
}

.swm-logo-text {
    font-size: 20px;
    font-weight: 700;
    color: var(--swm-text);
    letter-spacing: -0.5px;
}

.swm-header-nav {
    display: flex;
    align-items: center;
}

.swm-nav-menu {
    display: flex;
    align-items: center;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.swm-nav-item {
    position: relative;
    list-style: none;
    margin: 0;
    padding: 0;
}

.swm-nav-item > a {
    display: block;
    padding: 10px 18px;
    color: var(--swm-text);
    text-decoration: none;
    font-weight: 500;
    font-size: 15px;
    border-radius: 6px;
    transition: all 0.2s ease;
}

.swm-nav-item > a:hover {
    background: var(--swm-bg-hover);
    color: var(--swm-gold);
}

/* Shows Dropdown */
.swm-has-dropdown > a::after {
    content: '';
    display: inline-block;
    width: 0;
    height: 0;
    margin-left: 6px;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid currentColor;
    vertical-align: middle;
}

.swm-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 220px;
    background: var(--swm-bg-card);
    border: 1px solid var(--swm-border);
    border-radius: 8px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.4);
    padding: 8px 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: all 0.2s ease;
    list-style: none;
    margin: 0;
}

.swm-has-dropdown:hover .swm-dropdown,
.swm-has-dropdown.swm-dropdown-open .swm-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.swm-dropdown li {
    list-style: none;
    margin: 0;
    padding: 0;
}

.swm-dropdown a {
    display: block;
    padding: 10px 20px;
    color: var(--swm-text-muted);
    text-decoration: none;
    font-size: 14px;
    transition: all 0.15s ease;
}

.swm-dropdown a:hover {
    background: var(--swm-bg-hover);
    color: var(--swm-gold);
    padding-left: 24px;
}

/* Dropdown Divider & Header (Sunset Lounge) */
.swm-dropdown-divider {
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.15), transparent);
    margin: 6px 15px;
    list-style: none;
}

.swm-dropdown-header {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    color: #f97316;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    list-style: none;
    pointer-events: none;
}

.swm-dropdown-logo {
    width: 24px;
    height: 24px;
    border-radius: 4px;
    object-fit: cover;
    flex-shrink: 0;
    display: block;
}

/* Mobile Menu Toggle */
.swm-mobile-toggle {
    display: none;
    width: 44px;
    height: 44px;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 10px;
    position: relative;
}

.swm-hamburger,
.swm-hamburger::before,
.swm-hamburger::after {
    display: block;
    width: 24px;
    height: 2px;
    background: var(--swm-text);
    border-radius: 2px;
    transition: all 0.3s ease;
}

.swm-hamburger::before,
.swm-hamburger::after {
    content: '';
    position: absolute;
    left: 10px;
}

.swm-hamburger::before {
    top: 14px;
}

.swm-hamburger::after {
    bottom: 14px;
}

.swm-mobile-toggle[aria-expanded="true"] .swm-hamburger {
    background: transparent;
}

.swm-mobile-toggle[aria-expanded="true"] .swm-hamburger::before {
    top: 21px;
    transform: rotate(45deg);
}

.swm-mobile-toggle[aria-expanded="true"] .swm-hamburger::after {
    bottom: 21px;
    transform: rotate(-45deg);
}

/* Add space for fixed header and dark background */
body {
    padding-top: 70px !important;
    background-color: var(--swm-bg-dark) !important;
}

/* =============================================================================
   PROMOTIONAL BANNER
   ============================================================================= */

.swm-promo-banner {
    display: none; /* JS reveals after checking localStorage */
    background: linear-gradient(135deg, var(--swm-bg-card), #1a2744);
    border-bottom: 2px solid var(--swm-gold);
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 10000;
}

.swm-promo-banner-link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 10px 48px 10px 20px;
    color: var(--swm-text);
    text-decoration: none;
    transition: background 0.2s;
}

.swm-promo-banner-link:hover {
    background: var(--swm-bg-hover);
    color: var(--swm-text);
}

.swm-promo-banner-emoji {
    font-size: 1.25rem;
    line-height: 1;
    flex-shrink: 0;
}

.swm-promo-banner-text {
    font-family: 'Manrope', sans-serif;
    font-size: 0.9rem;
    font-weight: 500;
}

.swm-promo-banner-cta {
    font-family: 'Big Shoulders Display', sans-serif;
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--swm-gold);
    white-space: nowrap;
}

.swm-promo-banner-close {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: var(--swm-text-muted);
    font-size: 1.2rem;
    cursor: pointer;
    padding: 8px;
    line-height: 1;
    min-width: 44px;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.swm-promo-banner-close:hover {
    color: var(--swm-text);
}

/* Banner active: shift header down ~42px */
.has-promo-banner .swm-site-header {
    top: 42px;
}

.has-promo-banner {
    padding-top: 112px !important; /* 42px banner + 70px header */
}

/* Ensure all theme content containers are dark */
#page,
#content,
.site-content,
.ast-container,
.ast-separate-container,
.ast-plain-container,
.content-area,
main,
article,
.ast-article-single,
.ast-article-post,
.entry-content,
.page-content,
#primary,
#main {
    background-color: var(--swm-bg-dark) !important;
}

/* Remove any default padding/margins from theme content area that may cause gaps */
.site-content,
.ast-container,
.content-area,
#primary,
#main,
main.site-main,
.ast-article-single,
.ast-article-post {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

/* Astra specific - article wrapper padding removal */
.ast-separate-container .ast-article-single,
.ast-separate-container .ast-article-post,
.ast-separate-container article,
.ast-plain-container .ast-article-single,
.ast-plain-container article {
    padding-top: 0 !important;
    margin-top: 0 !important;
    background: var(--swm-bg-dark) !important;
}

/* Entry content - no top spacing */
.entry-content,
.page-content,
article .entry-content {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

/* Gutenberg/Block editor containers */
.wp-block-post-content,
.is-layout-constrained,
.is-layout-flow {
    padding-top: 0 !important;
    margin-top: 0 !important;
    background: var(--swm-bg-dark) !important;
}

/* Logged-in admin bar adjustment */
.admin-bar .swm-site-header {
    top: 32px;
}

.admin-bar body {
    padding-top: 102px !important;
}

.admin-bar .swm-promo-banner {
    top: 32px;
}

.admin-bar.has-promo-banner .swm-site-header {
    top: 74px; /* 32px admin bar + 42px banner */
}

.admin-bar.has-promo-banner {
    padding-top: 144px !important; /* 32px admin bar + 42px banner + 70px header */
}

@media (max-width: 782px) {
    .admin-bar .swm-site-header {
        top: 46px;
    }

    .admin-bar body {
        padding-top: 116px !important;
    }

    .admin-bar .swm-promo-banner {
        top: 46px;
    }

    .admin-bar.has-promo-banner .swm-site-header {
        top: 88px; /* 46px admin bar + 42px banner */
    }

    .admin-bar.has-promo-banner {
        padding-top: 158px !important; /* 46px + 42px + 70px */
    }
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .swm-mobile-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .swm-header-nav {
        position: fixed;
        top: 70px;
        left: 0;
        right: 0;
        background: var(--swm-bg-dark);
        border-bottom: 1px solid var(--swm-border);
        padding: 20px;
        transform: translateY(-100%);
        opacity: 0;
        visibility: hidden;
        transition: all 0.3s ease;
    }

    .has-promo-banner .swm-header-nav {
        top: 112px; /* 42px banner + 70px header */
    }

    .admin-bar .swm-header-nav {
        top: 116px;
    }

    .admin-bar.has-promo-banner .swm-header-nav {
        top: 158px; /* 46px admin + 42px banner + 70px header */
    }

    /* Banner mobile layout */
    .swm-promo-banner-link {
        flex-wrap: wrap;
        padding: 10px 44px 10px 16px;
        gap: 6px;
    }

    .swm-promo-banner-emoji {
        font-size: 1.1rem;
    }

    .swm-promo-banner-text {
        font-size: 0.8rem;
    }

    .swm-promo-banner-cta {
        font-size: 0.75rem;
    }

    .swm-header-nav.swm-nav-open {
        transform: translateY(0);
        opacity: 1;
        visibility: visible;
    }

    .swm-nav-menu {
        flex-direction: column;
        align-items: stretch;
        gap: 4px;
    }

    .swm-nav-item > a {
        padding: 14px 16px;
    }

    .swm-dropdown {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        box-shadow: none;
        border: none;
        background: var(--swm-bg-hover);
        border-radius: 6px;
        margin-top: 4px;
        display: none;
    }

    .swm-has-dropdown.swm-dropdown-open .swm-dropdown {
        display: block;
    }

    .swm-has-dropdown > a::after {
        float: right;
        margin-top: 6px;
        transition: transform 0.2s ease;
    }

    .swm-has-dropdown.swm-dropdown-open > a::after {
        transform: rotate(180deg);
    }
}

/* =============================================================================
   EPISODE GRID
   ============================================================================= */
.swm-episode-grid {
    display: grid;
    gap: 24px;
    margin: 30px 0;
}

.swm-episode-grid.swm-cols-2 { grid-template-columns: repeat(2, 1fr); }
.swm-episode-grid.swm-cols-3 { grid-template-columns: repeat(3, 1fr); }
.swm-episode-grid.swm-cols-4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 1024px) {
    .swm-episode-grid.swm-cols-4,
    .swm-episode-grid.swm-cols-3 { grid-template-columns: repeat(2, 1fr); }
}

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

/* =============================================================================
   EPISODE CARD
   ============================================================================= */
.swm-episode-card {
    background: var(--swm-bg-card);
    border-radius: var(--swm-radius);
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.swm-episode-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--swm-shadow);
}

.swm-episode-card-link {
    text-decoration: none;
    color: inherit;
    display: block;
}

.swm-episode-thumbnail {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--swm-bg-dark);
}

.swm-episode-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.swm-episode-card:hover .swm-episode-thumbnail img {
    transform: scale(1.05);
}

.swm-episode-duration {
    position: absolute;
    bottom: 8px;
    right: 8px;
    background: rgba(0, 0, 0, 0.8);
    color: #fff;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.swm-play-overlay {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 60px;
    height: 60px;
    background: var(--swm-gold);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.swm-play-overlay svg {
    width: 24px;
    height: 24px;
    color: var(--swm-bg-dark);
    margin-left: 4px;
}

.swm-episode-card:hover .swm-play-overlay {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1.1);
}

.swm-episode-info {
    padding: 16px;
}

.swm-episode-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--swm-text);
    margin: 0 0 8px 0;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.swm-episode-show {
    display: block;
    font-size: 13px;
    color: var(--swm-gold);
    margin-bottom: 4px;
}

.swm-episode-date {
    font-size: 12px;
    color: var(--swm-text-muted);
}

/* =============================================================================
   SHOW GRID
   ============================================================================= */
.swm-show-grid {
    display: grid;
    gap: 24px;
    margin: 30px 0;
}

.swm-show-grid.swm-cols-2 { grid-template-columns: repeat(2, 1fr); }
.swm-show-grid.swm-cols-3 { grid-template-columns: repeat(3, 1fr); }
.swm-show-grid.swm-cols-4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 1024px) {
    .swm-show-grid.swm-cols-4,
    .swm-show-grid.swm-cols-3 { grid-template-columns: repeat(2, 1fr); }
}

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

/* =============================================================================
   SHOW CARD
   ============================================================================= */
.swm-show-card {
    background: var(--swm-bg-card);
    border-radius: var(--swm-radius);
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.swm-show-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--swm-shadow);
}

.swm-show-card-link {
    text-decoration: none;
    color: inherit;
    display: block;
}

.swm-show-thumbnail {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--swm-bg-dark);
    position: relative;
}

.swm-show-thumbnail img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    transition: transform 0.3s ease;
}

.swm-show-card:hover .swm-show-thumbnail img {
    transform: scale(1.05);
}

.swm-show-info {
    padding: 16px;
}

.swm-show-title {
    font-size: 18px;
    font-weight: 600;
    color: var(--swm-text);
    margin: 0 0 8px 0;
}

.swm-show-hosts {
    display: block;
    font-size: 14px;
    color: var(--swm-text-muted);
    margin-bottom: 4px;
}

.swm-show-episode-count {
    font-size: 13px;
    color: var(--swm-gold);
    font-weight: 500;
}

/* =============================================================================
   FILTER BAR
   ============================================================================= */
.swm-filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: center;
    margin-bottom: 30px;
    padding: 20px;
    background: var(--swm-bg-card);
    border-radius: var(--swm-radius);
}

.swm-filter-label {
    font-size: 14px;
    font-weight: 500;
    color: var(--swm-text-muted);
}

.swm-filter-select {
    background: var(--swm-bg-dark);
    color: var(--swm-text);
    border: 1px solid var(--swm-border);
    border-radius: 6px;
    padding: 10px 16px;
    font-size: 14px;
    min-width: 200px;
    cursor: pointer;
}

.swm-filter-select:focus {
    outline: none;
    border-color: var(--swm-gold);
}

.swm-filter-btn {
    background: var(--swm-gold);
    color: var(--swm-bg-dark);
    border: none;
    border-radius: 6px;
    padding: 10px 20px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s ease;
}

.swm-filter-btn:hover {
    background: var(--swm-gold-hover);
}

.swm-filter-clear {
    background: transparent;
    color: var(--swm-text-muted);
    border: 1px solid var(--swm-border);
}

.swm-filter-clear:hover {
    color: var(--swm-text);
    border-color: var(--swm-text-muted);
}

/* =============================================================================
   VIDEO EMBED
   ============================================================================= */
.swm-video-embed {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
    max-width: 100%;
    background: var(--swm-bg-dark);
    border-radius: var(--swm-radius);
    margin-bottom: 30px;
}

.swm-video-embed iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}

/* =============================================================================
   SINGLE EPISODE PAGE
   ============================================================================= */
.swm-single-episode {
    max-width: 1200px;
    margin: 0 auto;
    padding: 30px 20px;
}

.swm-episode-header {
    margin-bottom: 30px;
}

.swm-episode-header .swm-episode-show {
    font-size: 14px;
    margin-bottom: 12px;
}

.swm-episode-header .swm-episode-show a {
    color: var(--swm-gold);
    text-decoration: none;
}

.swm-episode-header .swm-episode-show a:hover {
    color: var(--swm-gold-hover);
}

.swm-episode-header h1 {
    font-size: 32px;
    font-weight: 700;
    color: var(--swm-text);
    margin: 0 0 16px 0;
    line-height: 1.2;
}

.swm-episode-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    color: var(--swm-text-muted);
    font-size: 14px;
}

.swm-episode-meta span {
    display: flex;
    align-items: center;
    gap: 6px;
}

.swm-episode-content {
    color: var(--swm-text);
    font-size: 16px;
    line-height: 1.7;
    margin-bottom: 40px;
    margin-top: 24px;
}

.swm-episode-content:empty {
    display: none;
    margin: 0;
    padding: 0;
}

.swm-episode-content > *:first-child {
    margin-top: 0 !important;
}

.swm-episode-content p {
    margin-bottom: 1em;
}

.swm-episode-content p:last-child {
    margin-bottom: 0;
}

.swm-episode-content p:empty {
    display: none;
}

/* Episode description links - visible and clickable */
.swm-episode-content a {
    color: var(--swm-gold);
    text-decoration: none;
    word-break: break-all;
}

.swm-episode-content a:hover {
    color: var(--swm-gold-hover);
}

/* =============================================================================
   SINGLE SHOW PAGE
   ============================================================================= */
.swm-single-show {
    max-width: 1200px;
    margin: 0 auto;
    padding: 30px 20px;
}

.swm-show-header {
    display: flex;
    gap: 30px;
    margin-bottom: 40px;
    align-items: flex-start;
}

@media (max-width: 768px) {
    .swm-show-header {
        flex-direction: column;
    }
}

.swm-show-header-image {
    width: 200px;
    height: 200px;
    flex-shrink: 0;
    border-radius: var(--swm-radius);
    overflow: hidden;
    background: var(--swm-bg-card);
}

.swm-show-header-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.swm-show-header-content {
    flex: 1;
}

.swm-show-header h1 {
    font-size: 36px;
    font-weight: 700;
    color: var(--swm-text);
    margin: 0 0 12px 0;
}

.swm-show-header .swm-show-hosts {
    font-size: 16px;
    margin-bottom: 16px;
}

.swm-show-header .swm-show-description {
    color: var(--swm-text);
    font-size: 16px;
    line-height: 1.6;
    margin-bottom: 20px;
}

.swm-show-links {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.swm-show-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    background: var(--swm-bg-card);
    color: var(--swm-text);
    text-decoration: none;
    border-radius: 6px;
    font-size: 14px;
    transition: background 0.2s ease;
}

.swm-show-link:hover {
    background: var(--swm-bg-hover);
    color: var(--swm-gold);
}

.swm-show-episodes-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.swm-show-episodes-header h2 {
    font-size: 24px;
    font-weight: 600;
    color: var(--swm-text);
    margin: 0;
}

/* =============================================================================
   EPISODE TRANSCRIPT
   ============================================================================= */
.swm-transcript {
    margin-top: 40px;
    border: 1px solid var(--swm-border);
    border-radius: var(--swm-radius);
    overflow: hidden;
}

.swm-transcript-toggle {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 16px 20px;
    background: var(--swm-bg-card);
    cursor: pointer;
    color: var(--swm-text);
    font-size: 15px;
    font-weight: 600;
    text-align: left;
    transition: background 0.2s ease;
    list-style: none;
}

.swm-transcript-toggle::-webkit-details-marker {
    display: none;
}

.swm-transcript-toggle:hover {
    background: var(--swm-bg-hover);
}

.swm-transcript-toggle-label {
    flex: 1;
}

.swm-transcript-toggle-icon {
    color: var(--swm-gold);
    display: flex;
    align-items: center;
}

.swm-transcript-toggle-chevron {
    display: flex;
    align-items: center;
    color: var(--swm-text-muted);
    transition: transform 0.25s ease;
}

.swm-transcript[open] .swm-transcript-toggle-chevron {
    transform: rotate(180deg);
}

.swm-transcript-body {
    background: var(--swm-bg-dark);
    border-top: 1px solid var(--swm-border);
}

.swm-transcript-content {
    padding: 28px 24px;
    max-height: 500px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--swm-border) transparent;
}

.swm-transcript-content p {
    font-size: 15px;
    line-height: 1.8;
    color: var(--swm-text-muted);
    margin-bottom: 16px;
}

.swm-transcript-content p:last-child {
    margin-bottom: 0;
}

.swm-transcript-speaker {
    color: var(--swm-text);
}

/* =============================================================================
   RELATED EPISODES
   ============================================================================= */
.swm-related-episodes {
    margin-top: 60px;
    padding-top: 40px;
    border-top: 1px solid var(--swm-border);
}

.swm-related-episodes h2 {
    font-size: 24px;
    font-weight: 600;
    color: var(--swm-text);
    margin: 0 0 24px 0;
}

/* =============================================================================
   PAGINATION
   ============================================================================= */
.swm-pagination {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 40px;
}

.swm-pagination a,
.swm-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 12px;
    background: var(--swm-bg-card);
    color: var(--swm-text);
    text-decoration: none;
    border-radius: 6px;
    font-size: 14px;
    transition: background 0.2s ease;
}

.swm-pagination a:hover {
    background: var(--swm-bg-hover);
    color: var(--swm-gold);
}

.swm-pagination .current {
    background: var(--swm-gold);
    color: var(--swm-bg-dark);
}

/* =============================================================================
   ARCHIVE PAGE HEADER
   ============================================================================= */
.swm-archive-header {
    margin-bottom: 30px;
}

.swm-archive-header h1 {
    font-size: 36px;
    font-weight: 700;
    color: var(--swm-text);
    margin: 0 0 8px 0;
}

.swm-archive-header p {
    color: var(--swm-text-muted);
    font-size: 16px;
    margin: 0;
}

.swm-archive-eyebrow {
    display: inline-block;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 12px;
    font-weight: 700;
    color: var(--swm-text-muted);
    margin-bottom: 8px;
}

.swm-archive-backlink {
    margin-top: 12px !important;
    font-size: 14px;
}

/* =============================================================================
   OUR COMMUNITY PAGE
   ============================================================================= */
.swm-our-community {
    max-width: 800px;
    margin: 0 auto;
}

.swm-community-content {
    background: var(--swm-bg-card);
    border-radius: var(--swm-radius);
    padding: 40px;
}

.swm-community-placeholder p {
    color: var(--swm-text-muted);
    font-size: 16px;
    line-height: 1.6;
    margin: 0 0 1em 0;
}

.swm-community-placeholder p:last-child {
    margin-bottom: 0;
}

/* Advertise page - reuses community content styles */
.swm-advertise {
    max-width: 800px;
    margin: 0 auto;
}

/* Archive page */
.swm-archive-page {
    max-width: 1200px;
    margin: 0 auto;
}

.swm-archive-show-section {
    margin-bottom: 60px;
}

.swm-archive-show-section:last-child {
    margin-bottom: 0;
}

.swm-archive-show-title {
    font-size: 24px;
    font-weight: 700;
    color: var(--swm-text);
    margin: 0 0 8px 0;
}

.swm-archive-show-title a {
    color: var(--swm-gold);
    text-decoration: none;
}

.swm-archive-show-title a:hover {
    color: var(--swm-gold-hover);
}

.swm-archive-show-count {
    color: var(--swm-text-muted);
    font-size: 14px;
    margin: 0 0 20px 0;
}

/* =============================================================================
   NO RESULTS
   ============================================================================= */
.swm-no-results {
    text-align: center;
    padding: 60px 20px;
    color: var(--swm-text-muted);
}

.swm-no-results h2 {
    color: var(--swm-text);
    margin-bottom: 12px;
}

/* =============================================================================
   HOMEPAGE - FEATURED SHOW HERO
   ============================================================================= */
/* YDC Section Header (matches Sunset Lounge layout) */
.swm-ydc-section-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    margin-bottom: 40px;
    padding-bottom: 30px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.swm-ydc-header-logo {
    width: 80px;
    height: 80px;
    border-radius: 12px;
    object-fit: cover;
    box-shadow: 0 4px 20px rgba(167, 139, 250, 0.3);
}

.swm-ydc-header-branding {
    text-align: left;
}

.swm-ydc-header-title {
    font-size: 32px;
    font-weight: 800;
    color: #a78bfa;
    margin: 0 0 5px 0;
    line-height: 1.2;
}

.swm-ydc-header-subtitle {
    font-size: 14px;
    color: var(--swm-text-muted);
    margin: 0;
    letter-spacing: 0.5px;
}

@media (max-width: 768px) {
    .swm-ydc-section-header {
        flex-direction: column;
        text-align: center;
    }
    .swm-ydc-header-branding {
        text-align: center;
    }
}

/* Dropdown YDC header - purple styling to match Sunset Lounge orange */
.swm-dropdown-header-ydc {
    color: #a78bfa !important;
}

/* Production badge (all shows) */
.swm-production-badge {
    margin-bottom: 12px;
}

.swm-production-badge span {
    font-size: 12px;
    color: var(--swm-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.swm-featured-show {
    background: linear-gradient(135deg, var(--swm-bg-card) 0%, var(--swm-bg-dark) 100%);
    border-radius: var(--swm-radius);
    padding: 40px;
    margin-bottom: 60px;
}

.swm-featured-show-inner {
    display: flex;
    gap: 40px;
    align-items: center;
}

@media (max-width: 900px) {
    .swm-featured-show-inner {
        flex-direction: column;
        text-align: center;
    }
}

.swm-featured-show-artwork {
    flex-shrink: 0;
    width: 240px;
    aspect-ratio: 4 / 3;
    border-radius: var(--swm-radius);
    overflow: hidden;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
    background: var(--swm-bg-dark);
}

.swm-featured-show-artwork img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

@media (max-width: 900px) {
    .swm-featured-show-artwork {
        width: 180px;
    }
}

.swm-featured-show-content {
    flex: 1;
}

.swm-featured-label {
    display: inline-block;
    background: var(--swm-gold);
    color: var(--swm-bg-dark);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 6px 12px;
    border-radius: 4px;
    margin-bottom: 16px;
}

.swm-featured-title {
    font-size: 42px;
    font-weight: 800;
    color: var(--swm-text);
    margin: 0 0 12px 0;
    line-height: 1.1;
}

@media (max-width: 640px) {
    .swm-featured-title {
        font-size: 28px;
    }
}

.swm-featured-hosts {
    font-size: 18px;
    color: var(--swm-gold);
    margin: 0 0 16px 0;
}

.swm-featured-description {
    color: var(--swm-text-muted);
    font-size: 16px;
    line-height: 1.6;
    margin-bottom: 16px;
    max-width: 600px;
}

.swm-featured-description p {
    margin: 0 0 12px 0;
}

.swm-featured-description p:last-child {
    margin-bottom: 0;
}

.swm-featured-meta {
    color: var(--swm-text-muted);
    font-size: 14px;
    margin-bottom: 24px;
}

.swm-featured-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

@media (max-width: 900px) {
    .swm-featured-actions {
        justify-content: center;
    }
}

.swm-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 28px;
    border-radius: 6px;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.2s ease;
    cursor: pointer;
    border: none;
}

.swm-btn-primary,
a.swm-btn-primary:visited {
    background: var(--swm-gold);
    color: var(--swm-bg-dark) !important;
}

.swm-btn-primary:hover {
    background: var(--swm-gold-hover);
    transform: translateY(-2px);
}

.swm-btn-secondary {
    background: transparent;
    color: var(--swm-text);
    border: 2px solid var(--swm-border);
}

.swm-btn-secondary:hover {
    border-color: var(--swm-gold);
    color: var(--swm-gold);
}

/* Featured Latest Episode */
.swm-featured-latest {
    margin-top: 40px;
    padding-top: 30px;
    border-top: 1px solid var(--swm-border);
}

.swm-featured-latest h3 {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--swm-text-muted);
    margin: 0 0 16px 0;
}

.swm-featured-latest-card {
    display: flex;
    gap: 20px;
    align-items: center;
    background: var(--swm-bg-dark);
    border-radius: var(--swm-radius);
    padding: 16px;
}

@media (max-width: 640px) {
    .swm-featured-latest-card {
        flex-direction: column;
        text-align: center;
    }
}

.swm-featured-latest-thumb {
    flex-shrink: 0;
    width: 200px;
    border-radius: 6px;
    overflow: hidden;
    position: relative;
}

.swm-featured-latest-thumb img {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
    display: block;
}

.swm-featured-latest-thumb .swm-play-overlay {
    width: 50px;
    height: 50px;
}

.swm-featured-latest-thumb:hover .swm-play-overlay {
    opacity: 1;
}

.swm-featured-latest-info {
    flex: 1;
}

.swm-featured-latest-info h4 {
    font-size: 18px;
    font-weight: 600;
    margin: 0 0 8px 0;
}

.swm-featured-latest-info h4 a {
    color: var(--swm-text);
    text-decoration: none;
}

.swm-featured-latest-info h4 a:hover {
    color: var(--swm-gold);
}

/* =============================================================================
   HOMEPAGE - SECTION HEADERS
   ============================================================================= */
.swm-section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 24px;
    flex-wrap: wrap;
    gap: 12px;
}

.swm-section-header h2 {
    font-size: 28px;
    font-weight: 700;
    color: var(--swm-text);
    margin: 0;
}

.swm-section-subtitle {
    color: var(--swm-text-muted);
    font-size: 16px;
    margin: 8px 0 0 0;
    width: 100%;
}

.swm-view-all {
    color: var(--swm-gold);
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
    transition: color 0.2s ease;
}

.swm-view-all:hover {
    color: var(--swm-gold-hover);
}

/* =============================================================================
   HOMEPAGE - LATEST SECTION
   ============================================================================= */
.swm-latest-section {
    margin-bottom: 60px;
}

/* =============================================================================
   HOMEPAGE - NETWORK SECTION
   ============================================================================= */
.swm-network-section {
    margin-bottom: 60px;
    padding: 40px;
    background: var(--swm-bg-card);
    border-radius: var(--swm-radius);
}

.swm-network-section .swm-section-header h2 {
    font-size: 24px;
}

/* Compact show cards for network grid */
.swm-show-grid-compact .swm-show-card {
    background: var(--swm-bg-dark);
}

.swm-show-card-compact .swm-show-thumbnail {
    aspect-ratio: 4 / 3;
}

.swm-show-card-compact .swm-show-info {
    padding: 12px;
}

.swm-show-card-compact .swm-show-title {
    font-size: 14px;
    margin-bottom: 4px;
}

.swm-show-card-compact .swm-show-episode-count {
    font-size: 12px;
}

/* =============================================================================
   HOMEPAGE - RESPONSIVE ADJUSTMENTS
   ============================================================================= */
@media (max-width: 768px) {
    .swm-featured-show {
        padding: 24px;
    }

    .swm-network-section {
        padding: 24px;
    }

    .swm-section-header h2 {
        font-size: 22px;
    }
}

/* =============================================================================
   NAVIGATION SHOWS DROPDOWN
   ============================================================================= */
.swm-nav-dropdown {
    position: relative;
}

.swm-nav-dropdown .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    background: var(--swm-bg-card);
    border-radius: var(--swm-radius);
    min-width: 220px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.3);
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: all 0.2s ease;
    z-index: 1000;
    padding: 8px 0;
    list-style: none;
    margin: 0;
}

.swm-nav-dropdown:hover .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.swm-nav-dropdown .sub-menu li {
    margin: 0;
    padding: 0;
    list-style: none;
}

.swm-nav-dropdown .sub-menu li a {
    display: block;
    padding: 10px 20px;
    color: var(--swm-text);
    text-decoration: none;
    transition: background 0.2s ease;
    font-size: 14px;
}

.swm-nav-dropdown .sub-menu li a:hover {
    background: var(--swm-bg-hover);
    color: var(--swm-gold);
}

/* =============================================================================
   NETWORK HERO BANNER
   ============================================================================= */

/* Remove any top spacing on pages with hero */
.entry-content:has(.swm-network-hero),
.page-content:has(.swm-network-hero),
.ast-article-single:has(.swm-network-hero),
article:has(.swm-network-hero) {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

/* Astra theme specific - remove top spacing from content areas */
.ast-separate-container .ast-article-single,
.ast-separate-container .ast-article-post,
.ast-plain-container .ast-article-single,
.ast-plain-container .ast-article-post {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

.ast-separate-container .entry-content,
.ast-plain-container .entry-content {
    padding-top: 0 !important;
}

/* Remove first element margin in entry-content */
.entry-content > *:first-child,
.page-content > *:first-child {
    margin-top: 0 !important;
}

.swm-network-hero {
    position: relative;
    background: linear-gradient(135deg, #16213E 0%, #0F172A 50%, #16213E 100%) !important;
    padding: 80px 40px 60px !important;
    text-align: center !important;
    overflow: hidden;
    margin-bottom: 60px;
    margin-top: 0 !important;
    margin-left: calc(-50vw + 50%) !important;
    margin-right: calc(-50vw + 50%) !important;
    width: 100vw !important;
    max-width: 100vw !important;
}

/* Gold glow animation */
.swm-network-hero::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, rgba(228, 161, 27, 0.15) 0%, transparent 70%);
    transform: translate(-50%, -50%);
    animation: swm-glow-pulse 4s ease-in-out infinite;
}

@keyframes swm-glow-pulse {
    0%, 100% { opacity: 0.5; transform: translate(-50%, -50%) scale(1); }
    50% { opacity: 1; transform: translate(-50%, -50%) scale(1.1); }
}

.swm-hero-content {
    position: relative;
    z-index: 1;
    max-width: 900px;
    margin: 0 auto;
}

.swm-hero-logo {
    max-width: 200px;
    width: auto;
    height: auto;
    margin-bottom: 30px;
    display: block;
    margin-left: auto;
    margin-right: auto;
    border-radius: 12px;
    object-fit: contain;
}

.swm-hero-tagline {
    font-size: 42px;
    font-weight: 800;
    color: #fff;
    line-height: 1.2;
    margin: 0 0 20px 0;
}

.swm-hero-intro {
    font-size: 18px;
    line-height: 1.7;
    color: var(--swm-text-muted);
    max-width: 700px;
    margin: 0 auto 30px;
}

.swm-hero-intro p {
    margin: 0 0 12px 0;
}

.swm-hero-intro .green-door,
.swm-hero-intro a.green-door,
a.green-door,
a.green-door:visited {
    color: #22c55e !important;
    text-decoration: none !important;
    text-shadow: 0 0 20px rgba(34, 197, 94, 0.6), 0 0 40px rgba(34, 197, 94, 0.4);
    font-weight: 600;
    transition: color 0.2s ease, text-shadow 0.2s ease;
}

.swm-hero-intro .green-door:hover,
.swm-hero-intro a.green-door:hover,
a.green-door:hover {
    color: #4ade80 !important;
    text-shadow: 0 0 25px rgba(34, 197, 94, 0.8), 0 0 50px rgba(34, 197, 94, 0.5);
}

.swm-btn-green-door {
    color: #22c55e !important;
    border-color: #22c55e !important;
    text-shadow: 0 0 15px rgba(34, 197, 94, 0.5);
}

.swm-btn-green-door:hover {
    background: rgba(34, 197, 94, 0.2) !important;
    border-color: #4ade80 !important;
    color: #4ade80 !important;
}

.swm-hero-buttons {
    display: flex;
    gap: 16px;
    justify-content: center;
    margin-bottom: 50px;
}

.swm-hero-shows-row {
    display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-top: 40px;
    border-top: 1px solid rgba(255,255,255,0.1);
    max-width: 100%;
}

@media (max-width: 768px) {
    .swm-hero-shows-row {
        flex-wrap: wrap;
    }
}

.swm-hero-show-thumb {
    width: 80px;
    height: 80px;
    border-radius: 8px;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    display: block;
}

.swm-hero-show-thumb:hover {
    transform: scale(1.1) translateY(-5px);
    box-shadow: 0 10px 30px rgba(228, 161, 27, 0.3);
}

.swm-hero-show-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Network Hero Responsive */
@media (max-width: 768px) {
    .swm-network-hero { padding: 50px 20px 40px; }
    .swm-hero-tagline { font-size: 28px; }
    .swm-hero-sunset-copy { font-size: 16px; padding: 0 10px; }
    .swm-hero-buttons { flex-direction: column; align-items: center; }
    .swm-hero-show-thumb { width: 60px; height: 60px; }
}

/* =============================================================================
   SUNSET LOUNGE SECTION
   ============================================================================= */
.swm-sunset-lounge-section {
    max-width: 1200px;
    margin: 0 auto;
    padding: 60px 40px;
    text-align: center;
}

/* Ensure sunset header is always centered regardless of parent container */
.swm-sunset-lounge-section .swm-sunset-header {
    margin-left: auto;
    margin-right: auto;
    max-width: max-content;
}

.swm-sunset-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    margin-bottom: 40px;
    padding-bottom: 30px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    text-align: center;
}

.swm-sunset-logo {
    width: 80px;
    height: 80px;
    border-radius: 12px;
    object-fit: cover;
    box-shadow: 0 4px 20px rgba(249, 115, 22, 0.3);
}

.swm-sunset-branding {
    text-align: center;
}

.swm-sunset-title {
    font-size: 32px;
    font-weight: 800;
    color: #fb923c;
    margin: 0 0 5px 0;
    line-height: 1.2;
}

.swm-sunset-subtitle {
    font-size: 14px;
    color: #94a3b8;
    margin: 0;
    letter-spacing: 0.5px;
}

/* Sunset Lounge Section Responsive */
@media (max-width: 768px) {
    .swm-sunset-lounge-section { padding: 40px 20px; }
    .swm-sunset-header { flex-direction: column; text-align: center; }
    .swm-sunset-branding { text-align: center; }
    .swm-sunset-logo { width: 60px; height: 60px; }
    .swm-sunset-title { font-size: 24px; }
}

/* =============================================================================
   ABOUT NETWORK SECTION
   ============================================================================= */
.swm-about-network {
    max-width: 1200px;
    margin: 0 auto;
    padding: 60px 40px;
}

.swm-about-title {
    font-size: 42px;
    font-weight: 800;
    color: var(--swm-text);
    text-align: center;
    margin: 0 0 40px 0;
}

.swm-about-stats {
    display: flex;
    justify-content: center;
    gap: 60px;
    margin-bottom: 60px;
}

.swm-about-stat {
    text-align: center;
}

.swm-stat-number {
    display: block;
    font-size: 64px;
    font-weight: 800;
    color: var(--swm-gold);
    line-height: 1;
}

.swm-stat-label {
    font-size: 18px;
    color: var(--swm-text-muted);
    text-transform: uppercase;
    letter-spacing: 2px;
}

.swm-about-section {
    max-width: 800px;
    margin: 0 auto 50px;
    text-align: center;
}

.swm-about-section h3 {
    font-size: 24px;
    color: var(--swm-gold);
    margin: 0 0 20px 0;
}

.swm-about-content {
    font-size: 18px;
    line-height: 1.8;
    color: var(--swm-text-muted);
}

.swm-about-shows {
    margin-top: 60px;
}

.swm-about-shows h3 {
    font-size: 28px;
    color: var(--swm-text);
    text-align: center;
    margin: 0 0 30px 0;
}

/* About Network Responsive */
@media (max-width: 768px) {
    .swm-about-network {
        padding: 40px 20px;
    }

    .swm-about-title {
        font-size: 28px;
    }

    .swm-about-stats {
        gap: 30px;
    }

    .swm-stat-number {
        font-size: 42px;
    }

    .swm-stat-label {
        font-size: 14px;
    }
}

/* =============================================================================
   ABOUT PAGE (swm_about_page shortcode)
   ============================================================================= */
.swm-about-page {
    max-width: 900px;
    margin: 0 auto;
    padding: 60px 20px 80px;
}

.swm-about-hero {
    text-align: center;
    margin-bottom: 50px;
    padding-bottom: 40px;
    border-bottom: 1px solid var(--swm-border);
}

.swm-about-hero h1 {
    font-size: 44px;
    font-weight: 800;
    color: #f0f0f0;
    margin: 0 0 16px 0;
    letter-spacing: -0.5px;
}

.swm-about-tagline {
    font-size: 20px;
    color: var(--swm-gold);
    font-weight: 500;
    margin: 0;
    letter-spacing: 0.3px;
}

.swm-about-page .swm-about-section {
    margin: 0 0 40px 0;
    max-width: none;
    text-align: left;
}

.swm-about-page .swm-about-section h2 {
    font-size: 28px;
    font-weight: 700;
    color: #f0f0f0;
    margin: 0 0 20px 0;
    padding-bottom: 12px;
    border-bottom: 2px solid rgba(228, 161, 27, 0.3);
    display: inline-block;
}

.swm-about-content-block {
    font-size: 16px;
    line-height: 1.8;
    color: var(--swm-text-muted);
}

.swm-about-content-block p {
    margin: 0 0 16px 0;
}

.swm-about-lead {
    font-size: 18px !important;
    line-height: 1.8 !important;
    color: #cbd5e1 !important;
}

.swm-about-highlight {
    background: var(--swm-bg-card);
    border: 1px solid var(--swm-border);
    border-radius: 12px;
    padding: 36px 32px !important;
    border-left: 4px solid var(--swm-gold) !important;
}

.swm-about-highlight h2 {
    margin-top: 0 !important;
}

.swm-about-intro {
    font-size: 16px;
    color: var(--swm-text-muted);
    line-height: 1.7;
    margin: 0 0 30px 0;
}

/* Brand sections */
.swm-about-brand-section {
    background: var(--swm-bg-card);
    border: 1px solid var(--swm-border);
    border-radius: 12px;
    padding: 28px 28px 12px;
    margin-bottom: 24px;
}

.swm-about-sunset-section {
    border-color: rgba(249, 115, 22, 0.3);
}

.swm-about-brand-title {
    display: flex;
    align-items: center;
    gap: 16px;
    font-size: 22px;
    font-weight: 700;
    color: #f0f0f0;
    margin: 0 0 20px 0;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--swm-border);
}

.swm-sunset-brand-title {
    color: #f97316;
}

.swm-about-brand-logo {
    width: 48px;
    height: 48px;
    border-radius: 8px;
    object-fit: cover;
}

.swm-about-shows-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
}

@media (max-width: 600px) {
    .swm-about-shows-list { grid-template-columns: 1fr; }
}

.swm-about-show-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    border-radius: 8px;
    transition: background 0.2s ease;
}

.swm-about-show-item:hover {
    background: rgba(255, 255, 255, 0.04);
}

.swm-about-show-icon {
    font-size: 20px;
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(228, 161, 27, 0.08);
    border-radius: 8px;
}

.swm-about-show-item strong {
    color: #f0f0f0;
    font-size: 14px;
    display: block;
}

.swm-about-show-item span {
    color: var(--swm-text-muted);
    font-size: 13px;
}

/* Awards badges */
.swm-about-awards {
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.swm-about-awards h3 {
    font-size: 1rem;
    color: #d4af37;
    margin: 0 0 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 700;
}

.swm-about-awards-badges {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

.swm-award-badge {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: rgba(212, 175, 55, 0.08);
    border: 1px solid rgba(212, 175, 55, 0.2);
    border-radius: 8px;
    padding: 0.5rem 0.75rem;
    text-decoration: none;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.swm-award-badge:hover {
    border-color: #d4af37;
    box-shadow: 0 0 12px rgba(212, 175, 55, 0.2);
}

.swm-award-badge-img {
    width: 48px;
    height: 48px;
    object-fit: contain;
    flex-shrink: 0;
}

.swm-award-details {
    display: flex;
    flex-direction: column;
}

.swm-award-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: #d4af37;
    letter-spacing: 0.03em;
}

.swm-award-cat {
    font-size: 0.8rem;
    color: #94a3b8;
}

/* Homepage hero award strip */
.swm-hero-awards {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    margin-top: 1.5rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.swm-hero-award-item {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    text-decoration: none;
    color: #cbd5e1;
    background: rgba(212, 175, 55, 0.06);
    border: 1px solid rgba(212, 175, 55, 0.2);
    border-radius: 8px;
    padding: 0.5rem 1rem;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.swm-hero-award-item:hover {
    border-color: #d4af37;
    box-shadow: 0 0 12px rgba(212, 175, 55, 0.2);
    color: #cbd5e1;
}

.swm-hero-award-badge-img {
    width: 40px;
    height: 40px;
    object-fit: contain;
    flex-shrink: 0;
}

.swm-hero-award-label {
    display: flex;
    flex-direction: column;
    font-size: 0.8rem;
    line-height: 1.3;
    color: #94a3b8;
}

.swm-hero-award-label strong {
    color: #d4af37;
    font-size: 0.85rem;
    letter-spacing: 0.03em;
}

/* Mission section */
.swm-about-mission {
    background: linear-gradient(135deg, rgba(228, 161, 27, 0.08), rgba(228, 161, 27, 0.02)) !important;
    border: 1px solid rgba(228, 161, 27, 0.15) !important;
    border-radius: 12px !important;
    padding: 40px 32px !important;
    text-align: center !important;
    border-left: none !important;
}

.swm-about-mission-inner p {
    font-size: 18px;
    line-height: 1.8;
    color: #cbd5e1;
    margin: 0;
}

/* CTA section */
.swm-about-cta {
    text-align: center !important;
    padding-top: 30px;
}

.swm-about-cta h2 {
    display: block !important;
    text-align: center;
    border-bottom: none !important;
    font-size: 32px !important;
    color: var(--swm-gold) !important;
}

.swm-about-cta p {
    font-size: 17px;
    color: var(--swm-text-muted);
    margin: 0 0 24px 0;
}

.swm-about-actions {
    display: flex;
    gap: 16px;
    justify-content: center;
    margin-bottom: 30px;
    flex-wrap: wrap;
}

.swm-about-actions .swm-btn {
    display: inline-block;
    padding: 14px 32px;
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    border-radius: 4px;
    text-decoration: none !important;
    transition: all 0.3s ease;
}

.swm-about-actions .swm-btn-primary {
    background: var(--swm-gold);
    color: #0f172a !important;
    border: 2px solid var(--swm-gold);
}

.swm-about-actions .swm-btn-primary:hover {
    background: var(--swm-gold-hover);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(228, 161, 27, 0.3);
}

.swm-about-actions .swm-btn-secondary {
    background: transparent;
    color: var(--swm-gold) !important;
    border: 2px solid var(--swm-gold);
}

.swm-about-actions .swm-btn-secondary:hover {
    background: rgba(228, 161, 27, 0.1);
    transform: translateY(-2px);
}

.swm-about-socials {
    margin-bottom: 20px;
}

.swm-about-socials p {
    color: var(--swm-text-muted);
    font-size: 15px;
    margin: 0 0 4px 0;
}

.swm-about-handles {
    color: var(--swm-gold) !important;
    font-weight: 600;
    font-size: 16px !important;
    letter-spacing: 1px;
}

.swm-about-thanks {
    font-size: 15px;
    color: rgba(240, 240, 240, 0.5);
    font-style: italic;
    margin-top: 20px;
}

/* About page responsive */
@media (max-width: 768px) {
    .swm-about-hero h1 { font-size: 32px; }
    .swm-about-tagline { font-size: 17px; }
    .swm-about-highlight { padding: 24px 20px !important; }
    .swm-about-brand-section { padding: 20px 16px 8px; }
    .swm-about-brand-title { font-size: 18px; }
    .swm-about-mission { padding: 28px 20px !important; }
}

/* =============================================================================
   NETWORK FOOTER
   ============================================================================= */
/* Footer must break out of Astra's narrow content container */
.swm-network-footer {
    background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%) !important;
    padding: 60px 40px 30px !important;
    margin-top: 80px;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(-50vw + 50%) !important;
    margin-right: calc(-50vw + 50%) !important;
    text-align: left !important;
    position: relative !important;
    box-sizing: border-box !important;
    border-top: 3px solid #e4a11b !important;
}

.swm-network-footer .swm-footer-col,
.swm-network-footer .swm-footer-col * {
    text-align: left !important;
}

footer.swm-network-footer .swm-footer-inner,
.swm-network-footer .swm-footer-inner,
.swm-footer-inner {
    display: grid !important;
    grid-template-columns: 2fr 1fr 1fr !important;
    gap: 40px !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    width: 100% !important;
}

.swm-network-footer .swm-footer-col {
    text-align: left !important;
}

@media (max-width: 900px) {
    footer.swm-network-footer .swm-footer-inner,
    .swm-network-footer .swm-footer-inner,
    .swm-footer-inner {
        grid-template-columns: 1fr 1fr !important;
    }
}

@media (max-width: 600px) {
    footer.swm-network-footer .swm-footer-inner,
    .swm-network-footer .swm-footer-inner,
    .swm-footer-inner {
        grid-template-columns: 1fr !important;
        text-align: center !important;
    }
}

.swm-footer-col h4 {
    font-size: 15px;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--swm-gold);
    margin: 0 0 24px 0;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(228, 161, 27, 0.2);
    font-weight: 700;
}

.swm-footer-col p {
    color: var(--swm-text-muted);
    font-size: 14px;
    line-height: 1.6;
    margin: 0 0 16px 0;
}

.swm-footer-logo {
    max-width: 180px;
    height: auto;
    margin-bottom: 20px;
    filter: drop-shadow(0 2px 8px rgba(228, 161, 27, 0.3));
}

.swm-footer-description {
    color: var(--swm-text);
    font-size: 15px;
    font-weight: 500;
    line-height: 1.6;
    margin: 0 0 24px 0;
    letter-spacing: 2px;
    text-transform: uppercase;
}

.swm-footer-social {
    display: flex;
    gap: 12px;
}

@media (max-width: 600px) {
    .swm-footer-social { justify-content: center; }
}

.swm-footer-social a {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--swm-bg-dark);
    color: var(--swm-text);
    border-radius: 50%;
    transition: all 0.2s ease;
}

.swm-footer-social a:hover {
    background: var(--swm-gold);
    color: var(--swm-bg-dark);
    transform: translateY(-3px);
}

.swm-footer-social svg {
    width: 18px;
    height: 18px;
}

.swm-network-footer .swm-footer-links,
.swm-network-footer ul.swm-footer-links,
ul.swm-footer-links {
    list-style: none !important;
    list-style-type: none !important;
    padding: 0 !important;
    padding-left: 0 !important;
    margin: 0 !important;
    margin-left: 0 !important;
}

.swm-network-footer .swm-footer-links li,
.swm-network-footer ul li,
ul.swm-footer-links li {
    margin-bottom: 10px !important;
    list-style: none !important;
    list-style-type: none !important;
    padding-left: 0 !important;
    margin-left: 0 !important;
}

.swm-network-footer .swm-footer-links li::before,
.swm-network-footer ul li::before,
ul.swm-footer-links li::before {
    display: none !important;
    content: none !important;
    width: 0 !important;
    height: 0 !important;
}

.swm-network-footer .swm-footer-links li::marker,
.swm-network-footer ul li::marker,
ul.swm-footer-links li::marker {
    display: none !important;
    content: none !important;
    font-size: 0 !important;
    color: transparent !important;
}

.swm-footer-links a {
    color: var(--swm-text-muted);
    text-decoration: none;
    font-size: 14px;
    transition: all 0.2s ease;
    display: inline-block;
}

.swm-footer-links a:hover {
    color: var(--swm-text);
    transform: translateX(4px);
}

.swm-footer-email {
    color: var(--swm-gold);
    text-decoration: none;
    font-size: 14px;
}

.swm-footer-email:hover {
    color: var(--swm-gold-hover);
}

.swm-footer-bottom {
    max-width: 1200px;
    margin: 50px auto 0;
    padding-top: 30px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    text-align: center;
}

.swm-footer-bottom p {
    color: var(--swm-text-muted);
    font-size: 13px;
    margin: 0;
    letter-spacing: 0.5px;
}

/* Footer Responsive */
@media (max-width: 768px) {
    .swm-network-footer {
        padding: 40px 20px 20px;
        margin-top: 40px;
    }

    .swm-footer-inner {
        gap: 30px;
    }
}

/* =============================================================================
   ARCHIVE PAGE — Placeholders
   ============================================================================= */

.swm-archive-page {
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px 20px;
}

.swm-archive-header {
    text-align: center;
    margin-bottom: 50px;
}

.swm-archive-header h1 {
    font-size: 42px;
    font-weight: 800;
    color: var(--swm-text);
    margin: 0 0 12px 0;
}

.swm-archive-header p {
    color: var(--swm-text-muted);
    font-size: 16px;
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.6;
}

.swm-archive-show-section {
    margin-bottom: 50px;
}

.swm-archive-show-title {
    font-size: 28px;
    font-weight: 700;
    color: var(--swm-text);
    margin: 0 0 8px 0;
}

.swm-archive-show-title a {
    color: var(--swm-text);
    text-decoration: none;
}

.swm-archive-show-title a:hover {
    color: var(--swm-gold);
}

.swm-archive-show-count {
    color: var(--swm-gold);
    font-size: 14px;
    margin: 0 0 24px 0;
}

.swm-archive-placeholder {
    border: 1px solid var(--swm-border);
    border-radius: 12px;
    background: var(--swm-bg-card);
    overflow: hidden;
    transition: border-color 0.3s ease;
}

.swm-archive-placeholder:hover {
    border-color: rgba(228, 161, 27, 0.3);
}

.swm-archive-placeholder-inner {
    display: flex;
    align-items: center;
    gap: 30px;
    padding: 40px;
}

.swm-archive-placeholder-icon {
    font-size: 48px;
    flex-shrink: 0;
    width: 80px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(228, 161, 27, 0.08);
    border-radius: 16px;
}

.swm-archive-placeholder-content {
    flex: 1;
}

.swm-archive-placeholder-content .swm-archive-show-title {
    font-size: 24px;
    margin: 0 0 8px 0;
}

.swm-archive-placeholder-desc {
    color: var(--swm-text-muted);
    font-size: 15px;
    line-height: 1.6;
    margin: 0 0 16px 0;
}

.swm-archive-coming-soon {
    display: inline-block;
    padding: 6px 16px;
    background: rgba(228, 161, 27, 0.12);
    color: var(--swm-gold);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    border-radius: 20px;
    border: 1px solid rgba(228, 161, 27, 0.2);
}

@media (max-width: 600px) {
    .swm-archive-placeholder-inner {
        flex-direction: column;
        text-align: center;
        padding: 30px 20px;
    }
}

/* =============================================================================
   CSS POLISH & FIXES
   ============================================================================= */

/* Fix Image Letterboxing - Ensure all images use object-fit cover */
.swm-show-thumbnail img,
.swm-episode-thumbnail img,
.swm-show-header-image img,
.swm-featured-show-artwork img,
.swm-featured-latest-thumb img {
    object-fit: cover;
}

/* Enhanced Hover Animations - Lift Effect with Shadows */
.swm-episode-card,
.swm-show-card {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.swm-episode-card:hover,
.swm-show-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(228, 161, 27, 0.1);
}

/* Gold Focus States for Accessibility */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 2px solid var(--swm-gold);
    outline-offset: 2px;
}

.swm-btn:focus-visible {
    outline: 2px solid var(--swm-gold);
    outline-offset: 3px;
    box-shadow: 0 0 0 4px rgba(228, 161, 27, 0.3);
}

/* Loading Skeleton Animation */
@keyframes swm-skeleton-pulse {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

.swm-skeleton {
    background: linear-gradient(90deg, var(--swm-bg-card) 25%, var(--swm-bg-hover) 50%, var(--swm-bg-card) 75%);
    background-size: 200% 100%;
    animation: swm-skeleton-pulse 1.5s infinite;
    border-radius: var(--swm-radius);
}

/* Typography Improvements */
.swm-episode-title,
.swm-show-title {
    letter-spacing: -0.01em;
}

h1, h2, h3, h4 {
    letter-spacing: -0.02em;
}

/* Smooth Scrolling */
html {
    scroll-behavior: smooth;
}

/* Links - no underlines for cleaner look */
.swm-show-description a,
.swm-episode-content a,
.swm-about-content a {
    color: var(--swm-gold);
    text-decoration: none;
    transition: color 0.2s ease;
}

.swm-show-description a:hover,
.swm-episode-content a:hover,
.swm-about-content a:hover {
    color: var(--swm-gold-hover);
}

/* Card Image Loading State */
.swm-episode-thumbnail,
.swm-show-thumbnail {
    background: var(--swm-bg-dark);
}

/* Improved Button Disabled State */
.swm-btn:disabled,
.swm-btn[disabled] {
    opacity: 0.5;
    cursor: not-allowed;
    transform: none;
}

/* Selection Color */
::selection {
    background: rgba(228, 161, 27, 0.3);
    color: var(--swm-text);
}

/* Subtle text shadow for better readability on dark backgrounds */
.swm-hero-tagline,
.swm-about-title,
.swm-featured-title {
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

/* Card border on hover for subtle gold accent */
.swm-episode-card:hover,
.swm-show-card:hover {
    border: 1px solid rgba(228, 161, 27, 0.2);
}

/* Reset border for cards (so hover border works) */
.swm-episode-card,
.swm-show-card {
    border: 1px solid transparent;
}

/* =============================================================================
   ENHANCED SINGLE SHOW PAGE
   ============================================================================= */
.swm-single-show-enhanced {
    max-width: 100%;
    margin: 0;
    padding: 0;
}

/* Show Hero with Blurred Background */
.swm-show-hero {
    position: relative;
    background-size: cover;
    background-position: center;
    padding: 80px 40px;
    margin-bottom: 40px;
    overflow: hidden;
}

.swm-show-hero::before {
    content: '';
    position: absolute;
    inset: -20px;
    background: inherit;
    background-size: cover;
    background-position: center;
    filter: blur(20px);
    transform: scale(1.1);
    z-index: 0;
}

.swm-show-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(15, 23, 42, 0.95) 0%, rgba(22, 33, 62, 0.9) 100%);
    z-index: 1;
}

.swm-show-hero-content {
    position: relative;
    z-index: 2;
    display: flex;
    gap: 40px;
    max-width: 1200px;
    margin: 0 auto;
    align-items: flex-start;
}

.swm-show-hero-artwork {
    flex-shrink: 0;
    width: 280px;
    height: 280px;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}

.swm-show-hero-artwork img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.swm-show-hero-info {
    flex: 1;
}

.swm-show-hero-info h1 {
    font-size: 42px;
    font-weight: 800;
    color: var(--swm-text);
    margin: 0 0 12px 0;
    line-height: 1.1;
}

.swm-show-tagline {
    font-size: 20px;
    font-style: italic;
    color: var(--swm-text-muted);
    margin: 0 0 16px 0;
    opacity: 0.9;
}

.swm-show-hero-info .swm-show-hosts {
    display: block;
    font-size: 18px;
    color: var(--swm-gold);
    margin-bottom: 16px;
}

/* Genre Tags */
.swm-genre-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}

.swm-genre-tag {
    background: rgba(228, 161, 27, 0.2);
    color: var(--swm-gold);
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Show Stats */
.swm-show-stats {
    display: flex;
    gap: 24px;
    margin: 20px 0;
    color: var(--swm-text-muted);
    font-size: 14px;
}

.swm-show-stat {
    display: flex;
    align-items: center;
    gap: 6px;
}

.swm-show-stat svg {
    opacity: 0.7;
}

/* Platform Links Enhanced */
.swm-show-platforms {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin: 24px 0;
}

.swm-platform-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 20px;
    background: rgba(255,255,255,0.1);
    color: var(--swm-text);
    text-decoration: none;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    transition: all 0.2s ease;
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255,255,255,0.1);
}

.swm-platform-link:hover {
    background: rgba(228, 161, 27, 0.2);
    color: var(--swm-gold);
    transform: translateY(-2px);
    border-color: rgba(228, 161, 27, 0.3);
}

.swm-platform-link svg {
    flex-shrink: 0;
}

/* Patreon CTA */
.swm-patreon-cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 16px 32px;
    background: linear-gradient(135deg, #f96854 0%, #e74c3c 100%);
    color: #fff;
    text-decoration: none;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 700;
    transition: all 0.2s ease;
    margin-top: 16px;
    box-shadow: 0 4px 15px rgba(249, 104, 84, 0.3);
}

.swm-patreon-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 30px rgba(249, 104, 84, 0.4);
    color: #fff;
}

.swm-patreon-cta svg {
    flex-shrink: 0;
}

/* Host Bio Section */
.swm-host-section {
    display: flex;
    gap: 40px;
    max-width: 1200px;
    margin: 60px auto;
    padding: 40px;
    background: var(--swm-bg-card);
    border-radius: 12px;
}

.swm-host-image {
    flex-shrink: 0;
    width: 200px;
    height: 200px;
    border-radius: 50%;
    overflow: hidden;
    border: 4px solid var(--swm-gold);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}

.swm-host-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.swm-host-info {
    flex: 1;
}

.swm-host-info h3 {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--swm-gold);
    margin: 0 0 8px 0;
    font-weight: 600;
}

.swm-host-info h4 {
    font-size: 28px;
    font-weight: 700;
    color: var(--swm-text);
    margin: 0 0 16px 0;
}

.swm-host-bio {
    color: var(--swm-text-muted);
    font-size: 16px;
    line-height: 1.7;
}

.swm-host-bio p {
    margin: 0 0 1em 0;
}

.swm-host-bio p:last-child {
    margin-bottom: 0;
}

/* Description Section */
.swm-show-description-section {
    max-width: 900px;
    margin: 0 auto 40px;
    padding: 0 40px;
}

.swm-show-description-section .swm-show-description {
    color: var(--swm-text);
    font-size: 17px;
    line-height: 1.7;
}

.swm-show-description-section .swm-show-description p {
    margin: 0 0 1em 0;
}

/* Episodes Section in Enhanced Layout */
.swm-single-show-enhanced .swm-show-episodes {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px 60px;
}

/* Responsive - Enhanced Single Show */
@media (max-width: 900px) {
    .swm-show-hero-content {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .swm-show-hero-artwork {
        width: 200px;
        height: 200px;
    }

    .swm-show-hero-info h1 {
        font-size: 32px;
    }

    .swm-genre-tags {
        justify-content: center;
    }

    .swm-show-stats {
        justify-content: center;
    }

    .swm-show-platforms {
        justify-content: center;
    }

    .swm-host-section {
        flex-direction: column;
        align-items: center;
        text-align: center;
        margin: 40px 20px;
    }

    .swm-host-image {
        width: 160px;
        height: 160px;
    }
}

@media (max-width: 640px) {
    .swm-show-hero {
        padding: 40px 20px;
    }

    .swm-show-hero-info h1 {
        font-size: 26px;
    }

    .swm-show-hero-info .swm-show-hosts {
        font-size: 16px;
    }

    .swm-host-section {
        padding: 30px 20px;
    }

    .swm-host-info h4 {
        font-size: 22px;
    }

    .swm-show-description-section {
        padding: 0 20px;
    }

    .swm-single-show-enhanced .swm-show-episodes {
        padding: 0 20px 40px;
    }

    .swm-platform-link {
        padding: 10px 16px;
        font-size: 13px;
    }

    .swm-patreon-cta {
        padding: 14px 24px;
        font-size: 14px;
    }

    .swm-show-stats {
        flex-direction: column;
        gap: 12px;
    }
}

/* =============================================================================
   SHOW PAGE - NEW LAYOUT (OLD Podcast Style)
   ============================================================================= */

/* Container */
.swm-show-page {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px 60px;
}

/* Hero Section */
.swm-show-hero-section {
    padding: 40px 0 50px;
    border-bottom: 1px solid var(--swm-border);
    margin-bottom: 50px;
}

.swm-show-hero-inner {
    display: flex;
    gap: 40px;
    align-items: flex-start;
}

.swm-show-artwork {
    flex-shrink: 0;
    width: 280px;
}

.swm-show-artwork img {
    width: 100%;
    height: auto;
    border-radius: 12px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.4);
}

.swm-show-artwork-placeholder {
    width: 100%;
    aspect-ratio: 1;
    background: var(--swm-bg-card);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.swm-show-artwork-placeholder svg {
    width: 60px;
    height: 60px;
    color: var(--swm-text-muted);
}

.swm-show-hero-text {
    flex: 1;
    min-width: 0;
}

.swm-show-genres {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}

.swm-genre-pill {
    background: var(--swm-gold);
    color: #000;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Sunset Lounge Badge */
.swm-sunset-badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: linear-gradient(135deg, rgba(249, 115, 22, 0.15), rgba(249, 115, 22, 0.05));
    border: 1px solid rgba(249, 115, 22, 0.3);
    padding: 8px 16px;
    border-radius: 8px;
    margin-bottom: 16px;
}

.swm-sunset-badge-logo {
    width: 28px;
    height: 28px;
    border-radius: 6px;
    object-fit: cover;
}

.swm-sunset-badge span {
    color: #f97316;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.3px;
}

.swm-show-title {
    font-size: 42px;
    font-weight: 700;
    line-height: 1.2;
    margin: 0 0 12px;
    color: var(--swm-text);
}

.swm-show-page .swm-show-tagline {
    font-size: 18px;
    color: var(--swm-text-muted);
    margin: 0 0 16px;
    font-style: italic;
}

.swm-show-hosted-by {
    font-size: 16px;
    color: var(--swm-gold);
    margin: 0 0 20px;
    font-weight: 500;
}

.swm-show-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

.swm-meta-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--swm-text-muted);
}

.swm-meta-item svg {
    opacity: 0.7;
}

/* Hosts Section */
.swm-hosts-section {
    padding-bottom: 50px;
    border-bottom: 1px solid var(--swm-border);
    margin-bottom: 50px;
}

.swm-hosts-section h2,
.swm-about-section h2,
.swm-subscribe-section h2,
.swm-episodes-section h2 {
    font-size: 28px;
    font-weight: 700;
    margin: 0 0 30px;
    color: var(--swm-text);
}

.swm-hosts-grid {
    display: grid;
    gap: 30px;
}

.swm-hosts-grid.swm-hosts-1 {
    grid-template-columns: 1fr;
    max-width: 500px;
}

.swm-hosts-grid.swm-hosts-2 {
    grid-template-columns: repeat(2, 1fr);
}

.swm-hosts-grid.swm-hosts-3,
.swm-hosts-grid.swm-hosts-4 {
    grid-template-columns: repeat(2, 1fr);
}

.swm-host-card {
    background: var(--swm-bg-card);
    border-radius: 12px;
    padding: 24px;
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

.swm-host-avatar {
    flex-shrink: 0;
    width: 100px;
    height: 100px;
    border-radius: 50%;
    overflow: hidden;
}

.swm-host-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.swm-host-avatar-placeholder {
    width: 100%;
    height: 100%;
    background: var(--swm-bg-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
}

.swm-host-avatar-placeholder svg {
    width: 50px;
    height: 50px;
    color: var(--swm-text-muted);
}

.swm-host-details {
    flex: 1;
    min-width: 0;
}

.swm-host-name {
    font-size: 20px;
    font-weight: 600;
    margin: 0 0 4px;
    color: var(--swm-text);
}

.swm-host-role {
    display: inline-block;
    font-size: 13px;
    color: var(--swm-gold);
    font-weight: 500;
    margin-bottom: 12px;
}

.swm-host-card .swm-host-bio {
    font-size: 14px;
    color: var(--swm-text-muted);
    line-height: 1.6;
    margin: 0 0 12px;
}

.swm-host-social {
    display: flex;
    gap: 12px;
    margin-top: 12px;
}

.swm-host-social a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    color: var(--swm-gold);
    background: rgba(212, 175, 55, 0.1);
    border-radius: 50%;
    transition: all 0.2s ease;
}

.swm-host-social a:hover {
    color: #fff;
    background: var(--swm-gold);
    transform: scale(1.1);
}

.swm-host-social a svg {
    width: 16px;
    height: 16px;
}

/* About Section */
.swm-about-section {
    padding-bottom: 50px;
    border-bottom: 1px solid var(--swm-border);
    margin-bottom: 50px;
}

.swm-about-content {
    font-size: 16px;
    line-height: 1.8;
    color: var(--swm-text-muted);
}

.swm-about-content p {
    margin: 0 0 16px;
}

.swm-about-content p:last-child {
    margin-bottom: 0;
}

/* Subscribe Section */
.swm-subscribe-section {
    text-align: center;
    padding-bottom: 50px;
    border-bottom: 1px solid var(--swm-border);
    margin-bottom: 50px;
}

.swm-subscribe-section h2 {
    margin-bottom: 8px;
}

.swm-subscribe-text {
    color: var(--swm-text-muted);
    margin: 0 0 30px;
    font-size: 16px;
}

.swm-subscribe-buttons {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 16px;
    margin-bottom: 30px;
}

.swm-subscribe-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    color: var(--swm-gold);
    background: rgba(212, 175, 55, 0.1);
    border-radius: 50%;
    text-decoration: none;
    transition: all 0.2s ease;
}

.swm-subscribe-btn:hover {
    color: #fff;
    background: var(--swm-gold);
    transform: scale(1.1);
}

.swm-subscribe-btn svg {
    width: 24px;
    height: 24px;
    max-width: 24px;
    max-height: 24px;
}

/* Prevent platform badge images from blowing up */
.swm-subscribe-btn img,
.swm-subscribe-section img,
.swm-subscribe-buttons img {
    width: 24px !important;
    height: 24px !important;
    max-width: 24px !important;
    max-height: 24px !important;
    object-fit: contain;
}

/* Remove individual platform colors - all gold now */
.swm-btn-youtube,
.swm-btn-apple,
.swm-btn-spotify,
.swm-btn-rss {
    /* Inherits from .swm-subscribe-btn */
}

.swm-btn-youtube:hover,
.swm-btn-apple:hover,
.swm-btn-spotify:hover,
.swm-btn-rss:hover {
    color: #fff;
    background: var(--swm-gold);
}

.swm-support-cta {
    margin-bottom: 24px;
}

.swm-patreon-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    color: var(--swm-gold);
    background: rgba(212, 175, 55, 0.1);
    color: #fff;
    border-radius: 8px;
    font-weight: 600;
    font-size: 15px;
    text-decoration: none;
    transition: all 0.2s ease;
}

.swm-patreon-btn:hover {
    color: #fff;
    background: var(--swm-gold);
    transform: scale(1.1);
}

.swm-patreon-btn svg {
    width: 24px;
    height: 24px;
}

.swm-show-social {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    margin-top: 24px;
}

.swm-show-social span {
    color: var(--swm-text-muted);
    font-size: 14px;
    margin-right: 8px;
}

.swm-show-social a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    color: var(--swm-gold);
    background: rgba(212, 175, 55, 0.1);
    border-radius: 50%;
    transition: all 0.2s ease;
}

.swm-show-social a:hover {
    color: #fff;
    background: var(--swm-gold);
    transform: scale(1.1);
}

.swm-show-social a svg {
    width: 20px;
    height: 20px;
}

/* Episodes Section */
.swm-episodes-section h2 {
    margin-bottom: 24px;
}

.swm-episode-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.swm-episode-item {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 20px 0;
    border-bottom: 1px solid var(--swm-border);
    transition: background 0.2s ease;
}

.swm-episode-item:first-child {
    border-top: 1px solid var(--swm-border);
}

.swm-episode-item:hover {
    background: rgba(255, 255, 255, 0.02);
}

.swm-episode-thumb {
    flex-shrink: 0;
    width: 120px;
    aspect-ratio: 16/9;
    border-radius: 8px;
    overflow: hidden;
    background: var(--swm-bg-card);
}

.swm-episode-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.swm-episode-item:hover .swm-episode-thumb img {
    transform: scale(1.05);
}

.swm-episode-thumb-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--swm-bg-card);
}

.swm-episode-thumb-placeholder svg {
    width: 32px;
    height: 32px;
    color: var(--swm-text-muted);
}

.swm-episode-info {
    flex: 1;
    min-width: 0;
}

.swm-episode-meta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 8px;
    font-size: 13px;
    color: var(--swm-text-muted);
}

.swm-ep-number {
    color: var(--swm-gold);
    font-weight: 600;
}

.swm-episode-title {
    font-size: 18px;
    font-weight: 600;
    margin: 0 0 6px;
    line-height: 1.3;
}

.swm-episode-title a {
    color: var(--swm-text);
    text-decoration: none;
    transition: color 0.2s ease;
}

.swm-episode-title a:hover {
    color: var(--swm-gold);
}

.swm-episode-excerpt {
    font-size: 14px;
    color: var(--swm-text-muted);
    margin: 0;
    line-height: 1.5;
}

a.swm-episode-play-btn,
.swm-episode-play-btn {
    flex: 0 0 48px !important;
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    max-width: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    border-radius: 50% !important;
    background: var(--swm-gold) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.2s ease;
    overflow: hidden !important;
    position: relative !important;
}

a.swm-episode-play-btn:hover,
.swm-episode-play-btn:hover {
    background: var(--swm-gold-hover) !important;
    transform: scale(1.1);
}

a.swm-episode-play-btn svg,
.swm-episode-play-btn svg,
.swm-episode-play-btn > svg {
    width: 20px !important;
    height: 20px !important;
    min-width: 20px !important;
    max-width: 20px !important;
    min-height: 20px !important;
    max-height: 20px !important;
    color: #000 !important;
    fill: #000 !important;
    margin-left: 3px;
    flex-shrink: 0 !important;
}

.swm-no-episodes {
    text-align: center;
    padding: 60px 20px;
    color: var(--swm-text-muted);
}

/* Show Page Responsive */
@media (max-width: 768px) {
    .swm-show-hero-inner {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .swm-show-artwork {
        width: 200px;
    }

    .swm-show-hero-text {
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .swm-show-genres {
        justify-content: center;
    }

    .swm-show-title {
        font-size: 32px;
    }

    .swm-show-meta {
        justify-content: center;
    }

    .swm-hosts-grid.swm-hosts-2,
    .swm-hosts-grid.swm-hosts-3,
    .swm-hosts-grid.swm-hosts-4 {
        grid-template-columns: 1fr;
    }

    .swm-host-card {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .swm-host-social {
        justify-content: center;
    }

    .swm-episode-item {
        flex-wrap: wrap;
        gap: 16px;
    }

    .swm-episode-thumb {
        width: 100%;
        max-width: 200px;
    }

    .swm-episode-info {
        width: 100%;
    }

    .swm-episode-play-btn {
        margin-left: auto;
    }
}

@media (max-width: 480px) {
    .swm-show-page {
        padding: 0 16px 40px;
    }

    .swm-show-hero-section {
        padding: 24px 0 40px;
    }

    .swm-show-artwork {
        width: 160px;
    }

    .swm-show-title {
        font-size: 26px;
    }

    .swm-subscribe-buttons {
        flex-direction: row;
        flex-wrap: wrap;
    }

    .swm-subscribe-btn {
        width: 48px;
        height: 48px;
    }

    .swm-episode-thumb {
        display: none;
    }
}

/* =============================================================================
   CONTACT PAGE
   ============================================================================= */

.swm-contact-section {
    max-width: 800px;
    margin: 0 auto;
    padding: 60px 20px 80px;
    text-align: center;
}

.swm-contact-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.swm-contact-title {
    font-size: 48px;
    font-weight: 800;
    color: var(--swm-text);
    margin: 0 0 20px;
    line-height: 1.1;
}

.swm-contact-subtitle {
    font-size: 18px;
    color: var(--swm-text-muted);
    max-width: 500px;
    line-height: 1.6;
    margin: 0 0 50px;
}

.swm-contact-card {
    background: var(--swm-bg-card);
    border-radius: 16px;
    padding: 50px 60px;
    width: 100%;
    max-width: 500px;
}

.swm-contact-method {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

.swm-contact-icon {
    width: 80px;
    height: 80px;
    background: rgba(228, 161, 27, 0.15);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.swm-contact-icon svg {
    width: 36px;
    height: 36px;
    color: var(--swm-gold);
}

.swm-contact-label {
    font-size: 14px;
    color: var(--swm-text-muted);
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 500;
}

.swm-contact-email {
    font-size: 24px;
    font-weight: 700;
    color: var(--swm-gold);
    text-decoration: none;
    transition: all 0.2s ease;
}

.swm-contact-email:hover {
    color: var(--swm-gold-hover);
    text-shadow: 0 0 20px rgba(228, 161, 27, 0.3);
}

.swm-contact-socials {
    margin-top: 50px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}

.swm-contact-socials > span {
    font-size: 14px;
    color: var(--swm-text-muted);
    text-transform: uppercase;
    letter-spacing: 1px;
}

.swm-contact-social-links {
    display: flex;
    gap: 16px;
}

.swm-contact-social-links a {
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--swm-bg-card);
    color: var(--swm-text);
    border-radius: 50%;
    transition: all 0.2s ease;
}

.swm-contact-social-links a:hover {
    background: var(--swm-gold);
    color: var(--swm-bg-dark);
    transform: translateY(-3px);
}

.swm-contact-social-links svg {
    width: 22px;
    height: 22px;
}

/* Contact Page Responsive */
@media (max-width: 640px) {
    .swm-contact-title {
        font-size: 32px;
    }

    .swm-contact-subtitle {
        font-size: 16px;
    }

    .swm-contact-card {
        padding: 40px 30px;
    }

    .swm-contact-email {
        font-size: 18px;
    }

    .swm-contact-icon {
        width: 60px;
        height: 60px;
    }

    .swm-contact-icon svg {
        width: 28px;
        height: 28px;
    }
}

/* =============================================================================
   ABOUT PAGE
   ============================================================================= */

.swm-about-page {
    max-width: 900px;
    margin: 0 auto;
    padding: 0 20px 60px;
}

.swm-about-hero {
    text-align: center;
    padding: 60px 0 50px;
    border-bottom: 1px solid var(--swm-border);
    margin-bottom: 50px;
}

.swm-about-hero h1 {
    font-size: 48px;
    font-weight: 800;
    color: var(--swm-text);
    margin: 0 0 20px;
    line-height: 1.1;
}

.swm-about-tagline {
    font-size: 20px;
    color: var(--swm-text-muted);
    margin: 0;
    max-width: 600px;
    margin: 0 auto;
}

.swm-about-section {
    margin-bottom: 50px;
}

.swm-about-section h2 {
    font-size: 28px;
    font-weight: 700;
    color: var(--swm-gold);
    margin: 0 0 25px;
}

.swm-about-content-block {
    font-size: 17px;
    line-height: 1.8;
    color: var(--swm-text-muted);
}

.swm-about-content-block p {
    margin: 0 0 20px;
}

.swm-about-content-block p:last-child {
    margin-bottom: 0;
}

.swm-about-content-block strong {
    color: var(--swm-text);
}

.swm-about-lead {
    font-size: 19px;
    line-height: 1.7;
}

.swm-about-intro {
    font-size: 17px;
    color: var(--swm-text-muted);
    margin: 0 0 30px;
}

/* Highlight sections */
.swm-about-highlight {
    background: var(--swm-bg-card);
    border-radius: 12px;
    padding: 40px;
    margin-left: -20px;
    margin-right: -20px;
}

/* Shows List */
/* Brand Sections */
.swm-about-brand-section {
    margin-bottom: 40px;
}

.swm-about-brand-section:last-child {
    margin-bottom: 0;
}

.swm-about-brand-title {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 20px;
    font-weight: 700;
    color: var(--swm-gold);
    margin: 0 0 20px 0;
}

.swm-sunset-brand-title {
    color: #f97316;
}

.swm-about-brand-logo {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    object-fit: cover;
}

.swm-about-sunset-section {
    background: linear-gradient(135deg, rgba(249, 115, 22, 0.08), rgba(249, 115, 22, 0.02));
    border: 1px solid rgba(249, 115, 22, 0.2);
    border-radius: 12px;
    padding: 24px;
    margin-top: 30px;
}

.swm-about-shows-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}

.swm-about-show-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    background: var(--swm-bg-card);
    border-radius: 8px;
    padding: 16px;
}

.swm-about-show-icon {
    font-size: 24px;
    flex-shrink: 0;
}

.swm-about-show-item strong {
    display: block;
    color: var(--swm-text);
    font-size: 15px;
    margin-bottom: 4px;
}

.swm-about-show-item span {
    font-size: 13px;
    color: var(--swm-text-muted);
}

a.swm-about-show-item {
    text-decoration: none;
    color: inherit;
}

/* Mission Section */
.swm-about-mission {
    text-align: center;
    border-top: 1px solid var(--swm-border);
    border-bottom: 1px solid var(--swm-border);
    padding: 50px 0;
}

.swm-about-mission-inner {
    max-width: 700px;
    margin: 0 auto;
}

.swm-about-mission p {
    font-size: 22px;
    line-height: 1.7;
    color: var(--swm-text);
    margin: 0;
    font-style: italic;
}

.swm-about-mission strong {
    color: var(--swm-gold);
}

/* CTA Section */
.swm-about-cta {
    text-align: center;
    padding-top: 50px;
}

.swm-about-cta h2 {
    color: var(--swm-text);
    margin-bottom: 15px;
}

.swm-about-cta > p {
    font-size: 18px;
    color: var(--swm-text-muted);
    margin: 0 0 30px;
}

.swm-about-actions {
    display: flex;
    gap: 16px;
    justify-content: center;
    margin-bottom: 40px;
}

.swm-about-socials {
    margin-bottom: 40px;
}

.swm-about-socials p {
    color: var(--swm-text-muted);
    margin: 0 0 8px;
    font-size: 14px;
}

.swm-about-handles {
    color: var(--swm-gold) !important;
    font-weight: 600;
    font-size: 16px !important;
}

.swm-about-thanks {
    font-size: 16px;
    color: var(--swm-text-muted);
    font-style: italic;
    margin: 0;
}

/* About Page Responsive */
@media (max-width: 768px) {
    .swm-about-hero h1 {
        font-size: 36px;
    }

    .swm-about-tagline {
        font-size: 17px;
    }

    .swm-about-section h2 {
        font-size: 24px;
    }

    .swm-about-highlight {
        padding: 30px 20px;
        margin-left: -10px;
        margin-right: -10px;
    }

    .swm-about-shows-list {
        grid-template-columns: 1fr;
    }

    .swm-about-mission p {
        font-size: 18px;
    }

    .swm-about-actions {
        flex-direction: column;
        align-items: center;
    }

    .swm-about-actions .swm-btn {
        width: 100%;
        max-width: 280px;
    }
}

@media (max-width: 480px) {
    .swm-about-hero {
        padding: 40px 0;
    }

    .swm-about-hero h1 {
        font-size: 28px;
    }

    .swm-about-lead {
        font-size: 16px;
    }

    .swm-about-content-block {
        font-size: 15px;
    }
}

/* =============================================================================
   SUNSET LOUNGE THEMING
   Override gold (#E4A11B) with orange (#f97316) for Sunset Lounge shows
   ============================================================================= */

/* Sunset Lounge Orange Variable */
.swm-sunset-show {
    --swm-accent: #f97316;
}

/* Show Cards - Sunset Lounge */
.swm-show-card.swm-sunset-show .swm-show-title {
    color: #f97316;
}

.swm-show-card.swm-sunset-show:hover .swm-show-title {
    color: #fb923c;
}

.swm-show-card.swm-sunset-show .swm-show-episode-count {
    color: #f97316;
}

/* Episode Cards - Sunset Lounge */
.swm-episode-card.swm-sunset-show .swm-episode-title {
    color: #f97316;
}

.swm-episode-card.swm-sunset-show:hover .swm-episode-title {
    color: #fb923c;
}

.swm-episode-card.swm-sunset-show .swm-episode-duration {
    background: #f97316;
}

.swm-episode-card.swm-sunset-show .swm-play-overlay {
    color: #f97316;
}

.swm-episode-card.swm-sunset-show:hover .swm-play-overlay {
    background: rgba(249, 115, 22, 0.9);
    color: #fff;
}

/* Show Page - Sunset Lounge */
.swm-show-page.swm-sunset-show .swm-genre-pill {
    background: #f97316;
}

.swm-show-page.swm-sunset-show .swm-meta-item svg {
    color: #f97316;
}

.swm-show-page.swm-sunset-show .swm-hosts-section h2,
.swm-show-page.swm-sunset-show .swm-about-section h2,
.swm-show-page.swm-sunset-show .swm-subscribe-section h2,
.swm-show-page.swm-sunset-show .swm-episodes-section h2 {
    color: #f97316;
}

.swm-show-page.swm-sunset-show .swm-host-role {
    color: #f97316;
}

.swm-show-page.swm-sunset-show .swm-host-social a:hover {
    color: #f97316;
}

.swm-show-page.swm-sunset-show .swm-subscribe-btn:hover {
    border-color: #f97316;
    box-shadow: 0 4px 12px rgba(249, 115, 22, 0.3);
}

.swm-show-page.swm-sunset-show .swm-show-social a:hover {
    color: #f97316;
}

/* Pagination on Sunset Lounge show pages */
.swm-show-page.swm-sunset-show .swm-pagination .current {
    background: #f97316;
    border-color: #f97316;
}

.swm-show-page.swm-sunset-show .swm-pagination a:hover {
    border-color: #f97316;
    color: #f97316;
}

/* Episode cards within Sunset Lounge show pages */
.swm-show-page.swm-sunset-show .swm-episode-card .swm-episode-title {
    color: #f97316;
}

.swm-show-page.swm-sunset-show .swm-episode-card:hover .swm-episode-title {
    color: #fb923c;
}

.swm-show-page.swm-sunset-show .swm-episode-card .swm-episode-duration {
    background: #f97316;
}

.swm-show-page.swm-sunset-show .swm-episode-card .swm-play-overlay {
    color: #f97316;
}

.swm-show-page.swm-sunset-show .swm-episode-card:hover .swm-play-overlay {
    background: rgba(249, 115, 22, 0.9);
}

/* Additional Sunset Lounge fixes */
.swm-show-page.swm-sunset-show .swm-show-hosted-by {
    color: #f97316;
}

.swm-show-page.swm-sunset-show .swm-subscribe-btn {
    color: #f97316;
    border-color: rgba(249, 115, 22, 0.3);
}

.swm-show-page.swm-sunset-show .swm-subscribe-btn:hover {
    color: #fff;
    background: #f97316;
    border-color: #f97316;
}

/* More Sunset Lounge fixes */
.swm-show-page.swm-sunset-show .swm-show-social a {
    color: #f97316;
    border-color: rgba(249, 115, 22, 0.3);
}

.swm-show-page.swm-sunset-show .swm-show-social a:hover {
    background: #f97316;
    border-color: #f97316;
    color: #fff;
}

.swm-show-page.swm-sunset-show .swm-episode-card .swm-episode-show {
    color: #f97316;
}

/* =============================================================================
   OUR COMMUNITY PAGE
   ============================================================================= */
.swm-community-page {
    max-width: 1200px;
    margin: 0 auto;
    padding: 60px 20px 80px;
}

.swm-community-hero {
    text-align: center;
    margin-bottom: 40px;
}

.swm-community-hero h1 {
    font-size: 42px;
    font-weight: 800;
    color: #f0f0f0;
    margin: 0 0 16px 0;
    letter-spacing: -0.5px;
}

.swm-community-subtitle {
    font-size: 18px;
    color: var(--swm-text-muted);
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.7;
}

.swm-community-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
    margin-bottom: 60px;
}

@media (max-width: 768px) {
    .swm-community-grid { grid-template-columns: 1fr; }
    .swm-community-hero h1 { font-size: 32px; }
}

.swm-community-card {
    display: flex;
    flex-direction: column;
    background: var(--swm-bg-card);
    border: 1px solid var(--swm-border);
    border-radius: 12px;
    padding: 40px 32px;
    text-decoration: none !important;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.swm-community-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--swm-gold), transparent);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.swm-community-card:hover {
    transform: translateY(-4px);
    border-color: var(--swm-gold);
    box-shadow: 0 12px 40px rgba(228, 161, 27, 0.15);
    background: var(--swm-bg-hover);
}

.swm-community-card:hover::before {
    opacity: 1;
}

.swm-community-card-icon {
    margin-bottom: 20px;
    opacity: 0.9;
}

.swm-community-card:hover .swm-community-card-icon {
    opacity: 1;
}

.swm-community-card-title {
    font-size: 22px;
    font-weight: 700;
    color: #f0f0f0;
    margin: 0 0 12px 0;
}

.swm-community-card-desc {
    font-size: 15px;
    color: var(--swm-text-muted);
    line-height: 1.7;
    margin: 0 0 20px 0;
    flex-grow: 1;
}

.swm-community-card-link {
    font-size: 14px;
    font-weight: 600;
    color: var(--swm-gold);
    text-transform: uppercase;
    letter-spacing: 1px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: gap 0.2s ease;
}

.swm-community-card:hover .swm-community-card-link {
    gap: 10px;
}

.swm-community-card:hover .swm-community-card-link .swm-arrow {
    transform: translateX(4px);
}

.swm-arrow {
    transition: transform 0.2s ease;
    display: inline-block;
}

.swm-community-closing {
    text-align: center;
    padding: 50px 20px;
    border-top: 1px solid var(--swm-border);
}

.swm-community-closing p {
    font-size: 18px;
    color: var(--swm-text-muted);
    margin: 0 0 24px 0;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.swm-community-cta {
    display: inline-block;
    padding: 14px 36px;
    background: transparent;
    border: 2px solid var(--swm-gold);
    color: var(--swm-gold) !important;
    font-size: 15px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    border-radius: 4px;
    text-decoration: none !important;
    transition: all 0.3s ease;
}

.swm-community-cta:hover {
    background: var(--swm-gold);
    color: #0f172a !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(228, 161, 27, 0.3);
}

/* Community Tier Sections */
.swm-community-tier {
    margin-bottom: 60px;
}

.swm-community-tier-header {
    text-align: center;
    margin-bottom: 36px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--swm-border);
}

.swm-tier-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: rgba(239, 68, 68, 0.1);
    color: #ef4444;
    margin-bottom: 16px;
    border: 1px solid rgba(239, 68, 68, 0.2);
}

.swm-tier-icon-gold {
    background: rgba(228, 161, 27, 0.1);
    color: #e4a11b;
    border-color: rgba(228, 161, 27, 0.2);
}

.swm-tier-icon-blue {
    background: rgba(59, 130, 246, 0.1);
    color: #3b82f6;
    border-color: rgba(59, 130, 246, 0.2);
}

.swm-community-tier-header h2 {
    font-size: 28px;
    font-weight: 700;
    color: #f0f0f0;
    margin: 0 0 8px 0;
    letter-spacing: -0.3px;
}

.swm-community-tier-header p {
    font-size: 16px;
    color: var(--swm-text-muted);
    margin: 0;
}

/* Card Color Accent Variants */
.swm-community-card.swm-card-green:hover { border-color: #22c55e; box-shadow: 0 12px 40px rgba(34, 197, 94, 0.12); }
.swm-community-card.swm-card-green::before { background: linear-gradient(90deg, #22c55e, transparent); }

.swm-community-card.swm-card-gold:hover { border-color: #e4a11b; box-shadow: 0 12px 40px rgba(228, 161, 27, 0.15); }
.swm-community-card.swm-card-gold::before { background: linear-gradient(90deg, #e4a11b, transparent); }

.swm-community-card.swm-card-blue:hover { border-color: #3b82f6; box-shadow: 0 12px 40px rgba(59, 130, 246, 0.12); }
.swm-community-card.swm-card-blue::before { background: linear-gradient(90deg, #3b82f6, transparent); }

.swm-community-card.swm-card-red:hover { border-color: #ef4444; box-shadow: 0 12px 40px rgba(239, 68, 68, 0.12); }
.swm-community-card.swm-card-red::before { background: linear-gradient(90deg, #ef4444, transparent); }

.swm-community-card.swm-card-purple:hover { border-color: #a855f7; box-shadow: 0 12px 40px rgba(168, 85, 247, 0.12); }
.swm-community-card.swm-card-purple::before { background: linear-gradient(90deg, #a855f7, transparent); }

.swm-community-card.swm-card-orange:hover { border-color: #f97316; box-shadow: 0 12px 40px rgba(249, 115, 22, 0.12); }
.swm-community-card.swm-card-orange::before { background: linear-gradient(90deg, #f97316, transparent); }

/* =============================================================================
   ARCHIVE PAGE PLACEHOLDERS
   ============================================================================= */
.swm-archive-page {
    max-width: 1200px;
    margin: 0 auto;
    padding: 60px 20px 80px;
}

.swm-archive-header {
    text-align: center;
    margin-bottom: 50px;
}

.swm-archive-header h1 {
    font-size: 42px;
    font-weight: 800;
    color: #f0f0f0;
    margin: 0 0 16px 0;
}

.swm-archive-header p {
    font-size: 18px;
    color: var(--swm-text-muted);
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.7;
}

.swm-archive-placeholder {
    border: 1px dashed var(--swm-border);
    border-radius: 12px;
    padding: 0;
    margin-bottom: 30px;
    background: rgba(22, 33, 62, 0.5);
    overflow: hidden;
    transition: border-color 0.3s ease;
}

.swm-archive-placeholder:hover {
    border-color: var(--swm-gold);
}

.swm-archive-placeholder-inner {
    display: flex;
    align-items: center;
    gap: 30px;
    padding: 40px 36px;
}

@media (max-width: 600px) {
    .swm-archive-placeholder-inner {
        flex-direction: column;
        text-align: center;
        padding: 30px 20px;
    }
}

.swm-archive-placeholder-icon {
    font-size: 56px;
    flex-shrink: 0;
    width: 90px;
    height: 90px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(228, 161, 27, 0.08);
    border-radius: 16px;
    border: 1px solid rgba(228, 161, 27, 0.15);
}

.swm-archive-placeholder-content {
    flex: 1;
}

.swm-archive-show-title {
    font-size: 24px;
    font-weight: 700;
    color: #f0f0f0;
    margin: 0 0 8px 0;
}

.swm-archive-show-title a {
    color: inherit;
    text-decoration: none;
}

.swm-archive-show-title a:hover {
    color: var(--swm-gold);
}

.swm-archive-placeholder-desc {
    font-size: 15px;
    color: var(--swm-text-muted);
    margin: 0 0 16px 0;
    line-height: 1.6;
}

.swm-archive-coming-soon {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--swm-gold);
    background: rgba(228, 161, 27, 0.1);
    padding: 6px 16px;
    border-radius: 20px;
    border: 1px solid rgba(228, 161, 27, 0.2);
}

.swm-archive-show-section {
    margin-bottom: 50px;
}

.swm-archive-show-count {
    font-size: 14px;
    color: var(--swm-gold);
    margin: 0 0 20px 0;
}

/* =============================================================================
   PER-SHOW ACCENT COLOR THEMING
   ============================================================================= */

.swm-show-page {
    --swm-show-accent: #e8491d; /* Default SWM orange, overridden per-show */
    --swm-show-accent-light: #e8491d22;
}

.swm-show-hero-section {
    border-bottom: 3px solid var(--swm-show-accent);
}

.swm-genre-pill {
    border-color: var(--swm-show-accent);
    color: var(--swm-show-accent);
}

.swm-subscribe-btn:hover {
    background-color: var(--swm-show-accent);
}

/* =============================================================================
   REMIND ME DROPDOWN
   ============================================================================= */

.swm-remind-me-wrap {
    position: relative;
}

.swm-remind-me-btn {
    background: none;
    border: 1px solid rgba(255,255,255,0.25);
    color: rgba(255,255,255,0.7);
    padding: 4px 10px;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: all 0.2s;
    font-family: inherit;
}

.swm-remind-me-btn:hover {
    background: rgba(255,255,255,0.1);
    color: #fff;
    border-color: rgba(255,255,255,0.4);
}

.swm-remind-me-dropdown {
    position: fixed;
    z-index: 9999;
    background: #1e1e3a;
    border: 1px solid rgba(255,255,255,0.15);
    border-radius: 8px;
    padding: 6px;
    min-width: 200px;
    z-index: 100;
    box-shadow: 0 8px 24px rgba(0,0,0,0.4);
}

.swm-remind-option {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    color: rgba(255,255,255,0.85);
    text-decoration: none;
    border-radius: 6px;
    font-size: 0.875rem;
    transition: background 0.15s;
}

.swm-remind-option:hover {
    background: rgba(255,255,255,0.1);
    color: #fff;
}

/* =============================================================================
   SHOW PAGE TABS
   ============================================================================= */

.swm-tabs {
    display: flex;
    gap: 0;
    border-bottom: 2px solid rgba(255,255,255,0.15);
    margin: 2rem 0 0;
    padding: 0 2rem;
}

.swm-tab-link {
    padding: 0.75rem 1.5rem;
    font-weight: 700;
    font-size: 1.05rem;
    color: rgba(255,255,255,0.5);
    text-decoration: none;
    border-bottom: 3px solid transparent;
    margin-bottom: -2px;
    transition: color 0.2s, border-color 0.2s;
}

.swm-tab-link:hover {
    color: rgba(255,255,255,0.85);
}

.swm-tab-link.swm-tab-active {
    color: #fff;
    border-bottom-color: var(--swm-show-accent, #e8491d);
}

.swm-tab-panel {
    display: none;
    padding: 2rem;
    color: rgba(255,255,255,0.9);
}

.swm-tab-panel h2 {
    color: #fff;
}

.swm-tab-panel-active {
    display: block;
}

/* =============================================================================
   REVIEW CARDS
   ============================================================================= */

.swm-review-filters {
    display: flex;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
}

.swm-filter-link {
    color: rgba(255,255,255,0.5);
    text-decoration: none;
    font-weight: 500;
    padding-bottom: 0.25rem;
    border-bottom: 2px solid transparent;
}

.swm-filter-link:hover,
.swm-filter-link.swm-filter-active {
    color: #fff;
    border-bottom-color: var(--swm-show-accent, #e8491d);
}

.swm-review-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
}

@media (max-width: 1024px) {
    .swm-review-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

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

.swm-review-card {
    position: relative;
    display: block;
    aspect-ratio: 3 / 4;
    border-radius: 8px;
    overflow: hidden;
    text-decoration: none;
    color: #fff;
    background: #1a1a2e;
}

.swm-review-card-poster {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
}

.swm-review-card-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 1rem;
    background: linear-gradient(transparent, rgba(0,0,0,0.85));
}

.swm-review-card-meta {
    font-size: 0.75rem;
    opacity: 0.8;
    display: block;
    margin-bottom: 0.25rem;
}

.swm-review-card-title {
    font-size: 1rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.3;
}

/* =============================================================================
   REACTION CARDS (Show Page — Nation Previews & WC Reactions Tabs)
   ============================================================================= */

.swm-reaction-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1.25rem;
}

.swm-reaction-card {
    display: block;
    text-decoration: none;
    color: inherit;
    background: var(--swm-bg-card);
    border: 1px solid var(--swm-border);
    border-radius: var(--swm-radius);
    overflow: hidden;
    transition: border-color 0.2s, transform 0.15s;
}

.swm-reaction-card:hover {
    border-color: var(--swm-gold);
    transform: translateY(-2px);
}

.swm-reaction-card-thumb {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    display: block;
}

.swm-reaction-card-body {
    padding: 0.75rem 1rem 1rem;
}

.swm-reaction-card-teams {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--swm-gold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.25rem;
}

.swm-reaction-card-title {
    font-size: 0.95rem;
    font-weight: 600;
    color: #fff;
    margin: 0 0 0.35rem;
    line-height: 1.3;
}

.swm-reaction-card-date,
.swm-reaction-card-meta {
    font-size: 0.8rem;
    color: var(--swm-text-muted);
}

.swm-reaction-card-meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

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

/* =============================================================================
   TRAILER LIST
   ============================================================================= */

.swm-trailer-list {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.swm-trailer-item {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
    align-items: start;
}

@media (max-width: 768px) {
    .swm-trailer-item {
        grid-template-columns: 1fr;
    }
}

.swm-trailer-title {
    font-size: 1.25rem;
    font-weight: 700;
    margin: 0;
    padding-top: 0.5rem;
}

/* =============================================================================
   SUBMIT LINK
   ============================================================================= */

.swm-submit-link {
    margin-top: 2rem;
    text-align: center;
}

.swm-submit-link a {
    color: var(--swm-show-accent, #e8491d);
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px solid transparent;
}

/* =============================================================================
   CASE-GROUPED EPISODES
   ============================================================================= */

.swm-case-group {
    margin-bottom: 2.5rem;
}

.swm-case-group-header {
    display: flex;
    align-items: baseline;
    gap: 1rem;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.swm-case-group-title {
    font-size: 1.25rem;
    font-weight: 700;
    color: #fff;
    margin: 0;
}

.swm-case-group-meta {
    font-size: 0.85rem;
    color: rgba(255,255,255,0.5);
}

/* =============================================================================
   EVIDENCE TAB
   ============================================================================= */

.swm-evidence-group {
    margin-bottom: 2rem;
}

.swm-evidence-group-title {
    font-size: 1.15rem;
    font-weight: 700;
    color: #fff;
    margin: 0 0 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.swm-evidence-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.75rem;
}

@media (max-width: 1024px) {
    .swm-evidence-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

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

.swm-evidence-card {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    background: rgba(255,255,255,0.05);
    border-radius: 8px;
    text-decoration: none;
    color: rgba(255,255,255,0.9);
    transition: background 0.2s;
}

.swm-evidence-card:hover {
    background: rgba(255,255,255,0.1);
}

.swm-evidence-icon {
    font-size: 1.5rem;
    flex-shrink: 0;
}

.swm-evidence-info {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.swm-evidence-title {
    font-size: 0.9rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.swm-evidence-meta {
    font-size: 0.75rem;
    color: rgba(255,255,255,0.4);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.swm-submit-link a:hover {
    border-bottom-color: var(--swm-show-accent, #e8491d);
}

/* =============================================================================
   SINGLE REVIEW PAGE
   ============================================================================= */

.swm-review-page {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 2rem 2rem;
}

.swm-review-hero {
    position: relative;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-bottom: 2rem;
    max-height: 450px;
    overflow: hidden;
}

.swm-review-hero img {
    width: 100%;
    height: 450px;
    object-fit: cover;
    display: block;
}

.swm-review-hero-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 3rem 2rem 2rem;
    background: linear-gradient(transparent, rgba(0,0,0,0.8));
    color: #fff;
    text-align: center;
}

.swm-review-category-badge {
    display: inline-block;
    background: var(--swm-show-accent, #e8491d);
    color: #fff;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 4px 12px;
    border-radius: 20px;
    margin-bottom: 0.75rem;
}

.swm-review-hero-title {
    font-size: 2.25rem;
    font-weight: 800;
    line-height: 1.2;
    margin: 0 0 0.75rem;
    text-shadow: 0 2px 8px rgba(0,0,0,0.3);
}

.swm-review-hero-meta {
    display: flex;
    justify-content: center;
    gap: 1rem;
    font-size: 0.875rem;
    opacity: 0.9;
}

.swm-review-hero-meta span {
    display: flex;
    align-items: center;
}

.swm-review-hero-meta span:not(:last-child)::after {
    content: '\00b7';
    margin-left: 1rem;
}

.swm-review-hero-rating {
    background: rgba(255,255,255,0.2);
    padding: 2px 8px;
    border-radius: 4px;
    font-weight: 700;
}

@media (max-width: 768px) {
    .swm-review-hero-title {
        font-size: 1.5rem;
    }
    .swm-review-hero-meta {
        flex-wrap: wrap;
        justify-content: center;
    }
}

.swm-review-breadcrumb {
    margin-bottom: 1.5rem;
}

.swm-review-breadcrumb a {
    color: var(--swm-show-accent, #e8491d);
    text-decoration: none;
    font-size: 0.9rem;
}

.swm-review-article {
    background: #fff;
    border-radius: 8px;
    padding: 2rem;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

.swm-review-header {
    margin-bottom: 1.5rem;
}

.swm-review-byline {
    color: #6b7280;
    font-size: 0.875rem;
    margin-bottom: 0.75rem;
}

.swm-review-separator {
    margin: 0 0.4rem;
}

.swm-review-title {
    font-size: 2rem;
    font-weight: 800;
    line-height: 1.2;
    margin: 0;
}

.swm-review-poster {
    margin: 1.5rem auto;
    text-align: center;
}

.swm-review-poster img {
    max-width: 100%;
    max-height: 500px;
    border-radius: 4px;
}

.swm-review-body {
    font-size: 1.05rem;
    line-height: 1.7;
    color: #1a1a2e;
}

.swm-review-body p {
    margin-bottom: 1rem;
}

.swm-review-rating {
    margin-top: 2rem;
    padding-top: 1rem;
    border-top: 1px solid #e5e7eb;
    font-size: 1.1rem;
}

.swm-review-nav {
    display: flex;
    justify-content: space-between;
    gap: 1.5rem;
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

.swm-review-nav-link {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    text-decoration: none;
    padding: 0.75rem 1rem;
    border-radius: 8px;
    transition: background 0.2s;
    max-width: 45%;
}

.swm-review-nav-link:hover {
    background: rgba(255, 255, 255, 0.05);
}

.swm-review-nav-prev {
    text-align: left;
}

.swm-review-nav-next {
    text-align: right;
    margin-left: auto;
}

.swm-review-nav-label {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #e4a11b;
}

.swm-review-nav-title {
    font-size: 0.95rem;
    color: #cbd5e1;
    line-height: 1.3;
}

.swm-review-nav-link:hover .swm-review-nav-title {
    color: #fff;
}

@media (max-width: 600px) {
    .swm-review-nav {
        flex-direction: column;
        gap: 1rem;
    }
    .swm-review-nav-link {
        max-width: 100%;
    }
    .swm-review-nav-next {
        text-align: left;
    }
}

/* =============================================================================
   SUBMISSION FORMS
   ============================================================================= */

.swm-form-page {
    max-width: 700px;
    margin: 0 auto;
    padding: 2rem;
}

.swm-form-container {
    background: #fff;
    border-radius: 8px;
    padding: 2rem;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

.swm-form-back {
    color: var(--swm-show-accent, #e8491d);
    text-decoration: none;
    font-size: 0.9rem;
    display: inline-block;
    margin-bottom: 1rem;
}

.swm-form-container h1 {
    margin: 0 0 0.5rem;
    font-size: 1.75rem;
}

.swm-form-container > p {
    color: #6b7280;
    margin-bottom: 1.5rem;
}

.swm-form-message {
    padding: 0.75rem 1rem;
    border-radius: 6px;
    margin-bottom: 1.5rem;
    font-size: 0.95rem;
}

.swm-form-success {
    background: #ecfdf5;
    color: #065f46;
    border: 1px solid #a7f3d0;
}

.swm-form-error {
    background: #fef2f2;
    color: #991b1b;
    border: 1px solid #fca5a5;
}

.swm-submission-form {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.swm-form-field label {
    display: block;
    font-weight: 600;
    margin-bottom: 0.4rem;
    font-size: 0.95rem;
}

.swm-form-field .required {
    color: #dc2626;
}

.swm-form-field input[type="text"],
.swm-form-field input[type="url"],
.swm-form-field input[type="password"],
.swm-form-field input[type="number"],
.swm-form-field input[type="date"],
.swm-form-field select,
.swm-form-field textarea {
    width: 100%;
    padding: 0.6rem 0.8rem;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 1rem;
    font-family: inherit;
}

.swm-form-field input:focus,
.swm-form-field select:focus,
.swm-form-field textarea:focus {
    outline: none;
    border-color: var(--swm-show-accent, #e8491d);
    box-shadow: 0 0 0 3px var(--swm-show-accent-light, rgba(232,73,29,0.13));
}

.swm-form-field small {
    display: block;
    color: #6b7280;
    font-size: 0.8rem;
    margin-top: 0.3rem;
}

.swm-form-submit {
    background: var(--swm-show-accent, #e8491d);
    color: #fff;
    border: none;
    padding: 0.75rem 1.5rem;
    border-radius: 6px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: opacity 0.2s;
    align-self: flex-start;
}

.swm-form-submit:hover {
    opacity: 0.9;
}

/* =============================================
   APPEARANCES
   ============================================= */

/* -- Filter Bar -- */
.swm-appearance-filters {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 30px;
    padding: 20px;
    background: var(--swm-bg-card, #16213E);
    border-radius: 8px;
}

.swm-appearance-filters select,
.swm-appearance-filters .swm-filter-btn {
    padding: 8px 16px;
    background: var(--swm-bg-dark, #0F172A);
    color: var(--swm-text, #fff);
    border: 1px solid var(--swm-border, #334155);
    border-radius: 6px;
    font-size: 0.9rem;
}

.swm-appearance-filters .swm-filter-btn {
    background: var(--swm-gold, #e4a11b);
    color: #000;
    border: none;
    cursor: pointer;
    font-weight: 600;
}

.swm-appearance-filters .swm-filter-btn:hover {
    background: var(--swm-gold-hover, #f5c04a);
}

/* -- Appearance Cards -- */
.swm-appearance-card {
    background: var(--swm-bg-card, #16213E);
    border-radius: 8px;
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.swm-appearance-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.3);
}

.swm-appearance-card-image {
    display: block;
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

.swm-appearance-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.swm-appearance-card-body {
    padding: 16px;
}

.swm-appearance-card-title {
    margin: 8px 0 4px;
    font-size: 1.1rem;
}

.swm-appearance-card-title a {
    color: var(--swm-text, #fff);
    text-decoration: none;
}

.swm-appearance-card-title a:hover {
    color: var(--swm-gold, #e4a11b);
}

.swm-appearance-card-date,
.swm-appearance-card-location {
    margin: 2px 0;
    font-size: 0.9rem;
    color: var(--swm-text-muted, #94a3b8);
}

.swm-appearance-card-desc {
    margin: 6px 0 0;
    font-size: 0.85rem;
    color: var(--swm-text-muted, #94a3b8);
    opacity: 0.8;
    line-height: 1.4;
}

/* -- Badges -- */
.swm-appearance-show-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
    color: #fff;
    text-decoration: none;
    /* Multiple badges (multi-show events) wrap inline with consistent spacing. */
    margin: 0 6px 6px 0;
    vertical-align: middle;
}

.swm-appearance-status-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 4px;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.swm-status-upcoming {
    background: rgba(34, 197, 94, 0.2);
    color: #22c55e;
}

.swm-status-cancelled {
    background: rgba(239, 68, 68, 0.2);
    color: #ef4444;
}

.swm-appearance-card-image .swm-appearance-status-badge {
    position: absolute;
    top: 10px;
    left: 10px;
}

/* -- Card CTA -- */
.swm-appearance-cta {
    display: inline-block;
    margin-top: 12px;
    padding: 6px 16px;
    background: var(--swm-gold, #e4a11b);
    color: #000;
    border-radius: 6px;
    font-size: 0.85rem;
    font-weight: 600;
    text-decoration: none;
}

.swm-appearance-cta:hover {
    background: var(--swm-gold-hover, #f5c04a);
}

.swm-appearance-cta.swm-cta-secondary {
    background: transparent;
    border: 1px solid var(--swm-gold, #e4a11b);
    color: var(--swm-gold, #e4a11b);
}

.swm-appearance-cta.swm-cta-secondary:hover {
    background: var(--swm-gold, #e4a11b);
    color: #000;
}

/* -- Section Divider -- */
.swm-appearance-divider {
    margin: 40px 0 24px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--swm-border, #334155);
}

.swm-appearance-divider h2 {
    font-size: 1.3rem;
    color: var(--swm-text-muted, #94a3b8);
}

/* -- Empty State -- */
.swm-appearance-empty {
    text-align: center;
    padding: 40px 20px;
    color: var(--swm-text-muted, #94a3b8);
    font-size: 1.1rem;
}

/* -- Hero (Detail Page) -- */
.swm-appearance-hero {
    min-height: 350px;
    background-size: cover;
    background-position: center;
    background-color: var(--swm-bg-card, #16213E);
    display: flex;
    align-items: flex-end;
}

.swm-appearance-hero-overlay {
    width: 100%;
    background: linear-gradient(
        to bottom,
        rgba(15, 23, 42, 0.3) 0%,
        rgba(15, 23, 42, 0.6) 40%,
        rgba(15, 23, 42, 0.95) 100%
    );
    padding: 60px 30px 30px;
}

.swm-appearance-hero-content h1 {
    font-size: 2rem;
    margin: 12px 0 8px;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.7);
}

.swm-appearance-hero-content .swm-appearance-meta-item {
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
}

.swm-appearance-hero-meta {
    display: flex;
    gap: 20px;
    color: var(--swm-text-muted, #94a3b8);
    font-size: 1.05rem;
    margin-bottom: 12px;
}

.swm-appearance-hero-ctas {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 16px;
}

/* -- Buttons -- */
.swm-btn {
    display: inline-block;
    padding: 10px 24px;
    border-radius: 6px;
    font-size: 0.95rem;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    border: none;
}

.swm-btn-primary {
    background: var(--swm-gold, #e4a11b);
    color: #000;
}

.swm-btn-primary:hover {
    background: var(--swm-gold-hover, #f5c04a);
}

.swm-btn-secondary {
    background: transparent;
    border: 1px solid var(--swm-border, #334155);
    color: var(--swm-text, #fff);
}

.swm-btn-secondary:hover {
    border-color: var(--swm-gold, #e4a11b);
    color: var(--swm-gold, #e4a11b);
}

/* -- Calendar Dropdown -- */
.swm-calendar-dropdown {
    position: relative;
    display: inline-block;
}

.swm-calendar-dropdown-menu {
    display: none;
    position: fixed;
    background: var(--swm-bg-card, #16213E);
    border: 1px solid var(--swm-border, #334155);
    border-radius: 6px;
    min-width: 180px;
    z-index: 100;
    box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}

.swm-calendar-dropdown.open .swm-calendar-dropdown-menu {
    display: block;
}

.swm-calendar-dropdown-menu a {
    display: block;
    padding: 10px 16px;
    color: var(--swm-text, #fff);
    text-decoration: none;
    font-size: 0.9rem;
}

.swm-calendar-dropdown-menu a:hover {
    background: var(--swm-bg-hover, #1e2d4a);
}

/* -- Content Area (Detail Page) -- */
.swm-appearance-content {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 30px;
    padding: 30px;
    max-width: 1200px;
    margin: 0 auto;
}

.swm-appearance-description {
    color: var(--swm-text, #fff);
    line-height: 1.7;
}

/* -- Event Details Sidebar -- */
.swm-appearance-details {
    background: var(--swm-bg-card, #16213E);
    border-radius: 8px;
    padding: 24px;
    align-self: start;
}

.swm-appearance-details h3 {
    margin-top: 0;
    font-size: 1.1rem;
    margin-bottom: 16px;
}

.swm-detail-row {
    margin-bottom: 14px;
}

.swm-detail-row strong {
    display: block;
    font-size: 0.8rem;
    color: var(--swm-text-muted, #94a3b8);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 2px;
}

.swm-detail-row span,
.swm-detail-row a {
    color: var(--swm-text, #fff);
    font-size: 0.95rem;
}

.swm-detail-row a {
    color: var(--swm-gold, #e4a11b);
    text-decoration: none;
}

.swm-detail-row a:hover {
    text-decoration: underline;
}

/* -- Photo Gallery -- */
.swm-appearance-gallery {
    margin-top: 40px;
}

.swm-appearance-gallery h2 {
    margin-bottom: 16px;
}

.swm-gallery-grid {
    display: grid;
    gap: 8px;
}

.swm-gallery-grid.swm-cols-4 {
    grid-template-columns: repeat(4, 1fr);
}

.swm-gallery-item {
    display: block;
    aspect-ratio: 1;
    overflow: hidden;
    border-radius: 6px;
}

.swm-gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.swm-gallery-item:hover img {
    transform: scale(1.05);
}

/* -- Lightbox -- */
.swm-lightbox-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.9);
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.swm-lightbox-overlay img {
    max-width: 90vw;
    max-height: 85vh;
    object-fit: contain;
    border-radius: 4px;
}

.swm-lightbox-close {
    position: absolute;
    top: 20px;
    right: 20px;
    background: none;
    border: none;
    color: #fff;
    font-size: 2rem;
    cursor: pointer;
}

.swm-lightbox-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255,255,255,0.1);
    border: none;
    color: #fff;
    font-size: 2rem;
    padding: 20px 14px;
    cursor: pointer;
    border-radius: 4px;
}

.swm-lightbox-nav:hover {
    background: rgba(255,255,255,0.2);
}

.swm-lightbox-prev { left: 20px; }
.swm-lightbox-next { right: 20px; }

/* -- Related -- */
.swm-appearance-related {
    padding: 30px;
    max-width: 1200px;
    margin: 0 auto;
}

.swm-appearance-related h2 {
    margin-bottom: 20px;
}

/* -- Responsive -- */
@media (max-width: 768px) {
    .swm-appearance-content {
        grid-template-columns: 1fr;
        padding: 20px;
    }

    .swm-gallery-grid.swm-cols-4 {
        grid-template-columns: repeat(2, 1fr);
    }

    .swm-appearance-hero-content h1 {
        font-size: 1.5rem;
    }

    .swm-appearance-hero-meta {
        flex-direction: column;
        gap: 4px;
    }

    .swm-appearance-related .swm-show-grid.swm-cols-4 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .swm-gallery-grid.swm-cols-4 {
        grid-template-columns: repeat(2, 1fr);
    }

    .swm-appearance-related .swm-show-grid.swm-cols-4 {
        grid-template-columns: 1fr;
    }

    .swm-appearance-filters {
        flex-direction: column;
    }
}

/* -- Show Page Appearances Callout -- */
.swm-show-appearances-callout {
    padding: 24px 30px;
    margin: 0 auto 20px;
    max-width: 1200px;
    background: var(--swm-bg-card, #16213E);
    border-radius: 8px;
    border-left: 3px solid var(--swm-gold, #e4a11b);
}

.swm-show-appearances-callout h3 {
    margin-top: 0;
    margin-bottom: 16px;
}

/* =============================================================================
   BLOG ARCHIVE & CARDS
   ============================================================================= */

.swm-blog-archive {
    max-width: 1200px;
    margin: 0 auto;
    padding: 2rem 1rem;
}

/* Filter Bar */
.swm-blog-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 2rem;
}

.swm-blog-filter-btn {
    padding: 0.5rem 1rem;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 999px;
    background: transparent;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.875rem;
    cursor: pointer;
    transition: all 0.2s;
}

.swm-blog-filter-btn:hover {
    border-color: rgba(255, 255, 255, 0.5);
    color: #fff;
}

.swm-blog-filter-btn.swm-filter-active {
    background: rgba(255, 255, 255, 0.15);
    border-color: rgba(255, 255, 255, 0.4);
    color: #fff;
}

/* Blog Card Grid */
.swm-blog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}

@media (max-width: 1024px) {
    .swm-blog-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

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

.swm-blog-grid-compact {
    grid-template-columns: repeat(3, 1fr);
}

@media (max-width: 768px) {
    .swm-blog-grid-compact {
        grid-template-columns: 1fr;
    }
}

/* Blog Card */
.swm-blog-card {
    display: flex;
    flex-direction: column;
    border-radius: 8px;
    overflow: hidden;
    text-decoration: none;
    color: #fff;
    background: #1a1a2e;
    transition: transform 0.2s, box-shadow 0.2s;
}

.swm-blog-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

.swm-blog-card-image {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.swm-blog-card-placeholder {
    background: linear-gradient(135deg, #1a1a2e 0%, #2d2d4e 100%);
}

.swm-blog-card-body {
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    flex: 1;
}

.swm-blog-card-show {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.swm-blog-card-title {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.3;
}

h2.swm-blog-card-title {
    font-size: 1.1rem;
}

.swm-blog-card-excerpt {
    font-size: 0.875rem;
    opacity: 0.8;
    margin: 0;
    line-height: 1.5;
}

.swm-blog-card-meta {
    font-size: 0.75rem;
    opacity: 0.6;
    margin-top: auto;
}

/* =============================================================================
   COMMENTS — Dark theme overrides
   ============================================================================= */

#comments,
.comments-area,
.comment-respond,
.ast-separate-container .comment-respond,
.ast-separate-container .comments-area {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
}

.comment-respond {
    max-width: 720px;
}

.comment-reply-title,
#reply-title {
    color: #fff !important;
    font-size: 1.5rem;
    font-weight: 700;
}

.comment-form label {
    color: var(--swm-text-muted) !important;
    font-size: 0.9rem;
}

.comment-form textarea,
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"] {
    background: rgba(255, 255, 255, 0.06) !important;
    border: 1px solid var(--swm-border) !important;
    border-radius: var(--swm-radius) !important;
    color: #fff !important;
    padding: 0.75rem !important;
    font-size: 1rem !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.comment-form textarea:focus,
.comment-form input[type="text"]:focus,
.comment-form input[type="email"]:focus,
.comment-form input[type="url"]:focus {
    border-color: var(--swm-gold) !important;
    outline: none !important;
}

.comment-form textarea::placeholder,
.comment-form input::placeholder {
    color: rgba(255, 255, 255, 0.3) !important;
}

.comment-form .submit,
.form-submit input[type="submit"] {
    background: var(--swm-gold) !important;
    color: #000 !important;
    border: none !important;
    border-radius: var(--swm-radius) !important;
    padding: 0.75rem 2rem !important;
    font-weight: 700 !important;
    font-size: 1rem !important;
    cursor: pointer !important;
    transition: background 0.2s !important;
}

.comment-form .submit:hover,
.form-submit input[type="submit"]:hover {
    background: var(--swm-gold-hover) !important;
}

.logged-in-as,
.comment-notes,
.comment-form-cookies-consent label {
    color: var(--swm-text-muted) !important;
    font-size: 0.85rem;
}

.logged-in-as a,
.comment-notes a {
    color: var(--swm-gold) !important;
}

/* Comment list */
.comment-list,
.ast-comment-list {
    list-style: none !important;
    padding: 0 !important;
}

.comment-list .comment,
.ast-comment-list li {
    background: var(--swm-bg-card) !important;
    border: 1px solid var(--swm-border) !important;
    border-radius: var(--swm-radius) !important;
    padding: 1.25rem !important;
    margin-bottom: 1rem !important;
}

.comment-author .fn,
.comment-author .fn a {
    color: var(--swm-gold) !important;
    font-weight: 600;
    text-decoration: none;
}

.comment-metadata,
.comment-metadata a {
    color: var(--swm-text-muted) !important;
    font-size: 0.8rem;
}

.comment-content,
.comment-content p {
    color: var(--swm-text) !important;
}

.swm-blog-comments {
    max-width: 720px;
    margin: 2rem auto 0;
    padding: 2rem 0;
}

/* =============================================================================
   BLOG SINGLE ARTICLE
   ============================================================================= */

.swm-blog-article {
    max-width: 1200px;
    margin: 0 auto;
}

.swm-blog-hero {
    width: 100%;
    max-height: 500px;
    overflow: hidden;
}

.swm-blog-hero img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.swm-blog-content {
    max-width: 720px;
    margin: 0 auto;
    padding: 2rem 1rem;
}

.swm-blog-header {
    margin-bottom: 2rem;
}

.swm-blog-show-badge {
    display: inline-block;
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    text-decoration: none;
    margin-bottom: 0.75rem;
}

.swm-blog-show-badge:hover {
    text-decoration: underline;
}

.swm-blog-title {
    font-size: 2.25rem;
    font-weight: 800;
    line-height: 1.2;
    margin: 0 0 1rem 0;
}

@media (max-width: 640px) {
    .swm-blog-title {
        font-size: 1.75rem;
    }
}

.swm-blog-byline {
    font-size: 0.9rem;
    opacity: 0.7;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.swm-blog-separator {
    opacity: 0.4;
}

/* Episode Callout */
.swm-blog-episode-callout {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 8px;
    padding: 1rem 1.25rem;
    margin-bottom: 2rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.swm-blog-episode-label {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    opacity: 0.6;
}

.swm-blog-episode-link {
    color: #7eb8da;
    text-decoration: none;
    font-weight: 600;
}

.swm-blog-episode-link:hover {
    text-decoration: underline;
}

/* Blog Body */
.swm-blog-body {
    font-size: 1.05rem;
    line-height: 1.8;
}

.swm-blog-body p {
    margin-bottom: 1.5rem;
}

.swm-blog-body h2 {
    font-size: 1.5rem;
    margin-top: 2.5rem;
    margin-bottom: 1rem;
}

.swm-blog-body h3 {
    font-size: 1.25rem;
    margin-top: 2rem;
    margin-bottom: 0.75rem;
}

.swm-blog-body blockquote {
    border-left: 3px solid rgba(255, 255, 255, 0.3);
    padding-left: 1.25rem;
    margin: 1.5rem 0;
    font-style: italic;
    opacity: 0.85;
}

.swm-blog-body img {
    max-width: 100%;
    height: auto;
    border-radius: 4px;
}

/* Related Posts */
.swm-blog-related {
    max-width: 1200px;
    margin: 0 auto;
    padding: 2rem 1rem 3rem;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.swm-blog-related h2 {
    margin-bottom: 1.5rem;
}

/* Blog cards on episode pages */
.swm-episode-blogs {
    margin-top: 2.5rem;
    padding-top: 2rem;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.swm-episode-blogs h2 {
    margin-bottom: 1.5rem;
}

/* ===========================================================================
   WORLD CUP 2026 HUB
   =========================================================================== */

/* Nav highlight — only style the top-level World Cup link, not dropdown children.
   #C41E3A on the #0f172a header is 3.05:1 — below WCAG AA's 4.5:1 minimum.
   #E94560 lifts the brand red to 5.16:1 on the same background while keeping
   the original color in non-text places that pass at 3:1 (borders, etc). */
.swm-nav-wc > a {
    color: #E94560 !important;
    font-weight: 600;
}

.swm-nav-wc.swm-nav-active > a {
    border-bottom: 2px solid var(--swm-wc-accent-light, #C41E3A);
}

/* Dropdown children inherit the default nav dropdown style */
.swm-nav-wc .swm-dropdown a {
    color: inherit !important;
    font-weight: 400;
    border-bottom: none !important;
}

:root {
    --swm-wc-accent: #8B1538;
    --swm-wc-accent-light: #C41E3A;
    --swm-wc-field-green: #1B5E20;
    --swm-wc-gold: #FFD700;
}

/* ----- Hero ----- */

.swm-wc-hero {
    position: relative;
    min-height: 70vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #0a0a1a 0%, var(--swm-wc-accent) 50%, #0a0a1a 100%);
    overflow: hidden;
}

.swm-wc-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M30 5L35 15L45 15L37 22L40 32L30 26L20 32L23 22L15 15L25 15Z' fill='rgba(255,255,255,0.03)'/%3E%3C/svg%3E") repeat;
    pointer-events: none;
}

.swm-wc-hero-overlay {
    position: relative;
    z-index: 1;
    text-align: center;
    padding: 3rem 1.5rem;
}

.swm-wc-hero-content {
    max-width: 700px;
    margin: 0 auto;
}

.swm-wc-hero-badge {
    display: inline-block;
    font-size: 0.75rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--swm-gold);
    margin-bottom: 0.75rem;
    font-weight: 600;
}

.swm-wc-hero-title {
    font-size: clamp(2.5rem, 8vw, 5rem);
    font-weight: 900;
    color: #fff;
    line-height: 1;
    margin: 0 0 0.5rem;
    letter-spacing: -0.02em;
}

.swm-wc-hero-subtitle {
    font-size: 1.1rem;
    color: rgba(255, 255, 255, 0.8);
    margin: 0 0 0.5rem;
}

.swm-wc-hero-dates {
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.6);
    margin-bottom: 2rem;
}

/* Countdown */

.swm-wc-countdown {
    display: flex;
    gap: 1.5rem;
    justify-content: center;
    margin-bottom: 2rem;
}

.swm-wc-countdown-item {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.swm-wc-countdown-number {
    font-size: 2.5rem;
    font-weight: 800;
    color: #fff;
    line-height: 1;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 0.5rem;
    padding: 0.5rem 1rem;
    min-width: 3.5rem;
}

.swm-wc-countdown-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: rgba(255, 255, 255, 0.6);
    margin-top: 0.4rem;
}

.swm-wc-live-badge,
.swm-wc-ended-badge {
    display: inline-block;
    padding: 0.5rem 1.5rem;
    border-radius: 2rem;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 2rem;
}

.swm-wc-live-badge {
    background: #16a34a;
    color: #fff;
    animation: swm-wc-pulse 2s infinite;
}

.swm-wc-ended-badge {
    background: rgba(255, 255, 255, 0.15);
    color: rgba(255, 255, 255, 0.7);
}

@keyframes swm-wc-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.7; }
}

.swm-wc-hero-ctas {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

/* ----- Sections ----- */

.swm-worldcup {
    background: var(--swm-bg-dark, #0F172A);
    color: #fff;
}

.swm-wc-section {
    padding: 3rem 1.5rem;
    max-width: 1200px;
    margin: 0 auto;
}

.swm-wc-section-title {
    font-size: 1.75rem;
    font-weight: 700;
    margin: 0 0 0.5rem;
    color: #fff;
}

.swm-wc-section-desc {
    color: rgba(255, 255, 255, 0.6);
    margin: 0 0 1.5rem;
    font-size: 0.95rem;
}

/* ----- Latest Video ----- */

.swm-wc-video-embed {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
    border-radius: 0.75rem;
    background: #000;
}

.swm-wc-video-embed iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.swm-wc-latest-meta {
    margin-top: 1rem;
}

.swm-wc-latest-meta h3 {
    font-size: 1.3rem;
    margin: 0 0 0.5rem;
}

.swm-wc-meta-badges {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 0.5rem;
}

.swm-wc-badge {
    display: inline-block;
    padding: 0.2rem 0.6rem;
    border-radius: 0.25rem;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.swm-wc-badge-window {
    background: var(--swm-wc-accent);
    color: #fff;
}

.swm-wc-badge-teams {
    background: rgba(255, 255, 255, 0.1);
    color: rgba(255, 255, 255, 0.8);
}

.swm-wc-timestamp,
.swm-wc-card-time {
    font-size: 0.8rem;
    color: rgba(255, 255, 255, 0.5);
}

/* ----- Chat ----- */

.swm-wc-chat-container {
    background: var(--swm-bg-card, #16213E);
    border-radius: 0.75rem;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.swm-wc-chat-messages {
    height: 400px;
    overflow-y: auto;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.swm-wc-chat-msg {
    display: flex;
    gap: 0.5rem;
    align-items: flex-start;
}

.swm-wc-chat-msg-source {
    flex-shrink: 0;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.65rem;
    font-weight: 700;
}

.swm-wc-chat-msg-source-twitter {
    background: #1DA1F2;
    color: #fff;
}

.swm-wc-chat-msg-source-website {
    background: var(--swm-wc-accent);
    color: #fff;
}

.swm-wc-chat-msg-body {
    flex: 1;
    min-width: 0;
}

.swm-wc-chat-msg-author {
    font-weight: 600;
    font-size: 0.85rem;
    color: var(--swm-gold);
}

.swm-wc-chat-msg-text {
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.85);
    word-break: break-word;
}

.swm-wc-chat-msg-time {
    font-size: 0.7rem;
    color: rgba(255, 255, 255, 0.4);
}

.swm-wc-chat-loading {
    text-align: center;
    color: rgba(255, 255, 255, 0.4);
    padding: 2rem;
}

.swm-wc-chat-form {
    padding: 0.75rem 1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.swm-wc-chat-form input {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 0.5rem;
    padding: 0.6rem 0.75rem;
    color: #fff;
    font-size: 0.9rem;
    width: 100%;
}

.swm-wc-chat-form input::placeholder {
    color: rgba(255, 255, 255, 0.35);
}

.swm-wc-chat-error {
    padding: 0.6rem 0.85rem;
    background: rgba(220, 38, 38, 0.15);
    border: 1px solid rgba(220, 38, 38, 0.3);
    border-radius: 0.5rem;
    color: #fca5a5;
    font-size: 0.85rem;
    margin: 0;
}

.swm-wc-chat-counter {
    font-size: 0.75rem;
    color: rgba(255,255,255,0.35);
    text-align: right;
    margin: -0.25rem 0 0;
    transition: color 0.15s ease;
}

.swm-wc-chat-counter-warn {
    color: #f59e0b;
}

.swm-wc-chat-input-row {
    display: flex;
    gap: 0.5rem;
}

.swm-wc-chat-send {
    flex-shrink: 0;
    padding: 0.6rem 1.2rem;
    font-size: 0.85rem;
}

/* ----- Widget Tabs ----- */

.swm-wc-widget-tabs {
    display: flex;
    gap: 0;
    margin-bottom: 1rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.swm-wc-widget-tab {
    padding: 0.75rem 1.5rem;
    background: none;
    border: none;
    color: rgba(255, 255, 255, 0.5);
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    transition: color 0.2s, border-color 0.2s;
}

.swm-wc-widget-tab.active {
    color: #fff;
    border-bottom-color: var(--swm-wc-accent-light);
}

.swm-wc-widget-placeholder {
    text-align: center;
    padding: 3rem 1rem;
    color: rgba(255, 255, 255, 0.4);
}

.swm-wc-widget-placeholder a {
    color: var(--swm-gold);
}

/* ----- Static Schedule Grid ----- */
.swm-wc-schedule-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 20px;
    padding: 24px 0;
}

.swm-wc-schedule-group {
    background: var(--swm-bg-card);
    border: 1px solid var(--swm-border);
    border-radius: var(--swm-radius);
    padding: 16px;
}

.swm-wc-schedule-group-title {
    color: var(--swm-gold);
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--swm-border);
}

.swm-wc-schedule-matchups {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.swm-wc-schedule-match {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--swm-text-muted);
}

.swm-wc-schedule-team {
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.swm-wc-schedule-team:last-child {
    text-align: right;
}

.swm-wc-schedule-vs {
    color: rgba(255, 255, 255, 0.25);
    font-size: 11px;
    text-transform: uppercase;
    flex-shrink: 0;
}

.swm-wc-schedule-note {
    text-align: center;
    color: rgba(255, 255, 255, 0.35);
    font-size: 13px;
    margin-top: 16px;
}

/* ----- Promo Cards ----- */

.swm-wc-promo-card {
    background: linear-gradient(135deg, var(--swm-bg-card, #16213E), var(--swm-wc-accent));
    border-radius: 1rem;
    padding: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.swm-wc-promo-content h2 {
    font-size: 1.5rem;
    margin: 0 0 0.75rem;
}

.swm-wc-promo-content p {
    color: rgba(255, 255, 255, 0.7);
    margin: 0 0 1.25rem;
    max-width: 500px;
}

.swm-wc-promo-icon {
    font-size: 4rem;
    flex-shrink: 0;
}

/* ----- Card Grid ----- */

.swm-wc-filters {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
}

.swm-wc-filter {
    padding: 0.4rem 1rem;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 2rem;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.8rem;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
}

.swm-wc-filter.active,
.swm-wc-filter:hover {
    background: var(--swm-wc-accent);
    color: #fff;
    border-color: var(--swm-wc-accent);
}

.swm-wc-card-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}

@media (min-width: 640px) {
    .swm-wc-card-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .swm-wc-card-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.swm-wc-card {
    background: var(--swm-bg-card, #16213E);
    border-radius: 0.75rem;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.06);
    transition: transform 0.2s, border-color 0.2s;
}

.swm-wc-card:hover {
    transform: translateY(-2px);
    border-color: rgba(255, 255, 255, 0.15);
}

.swm-wc-card-link {
    text-decoration: none;
    color: inherit;
    display: block;
}

.swm-wc-card-thumb {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #000;
}

.swm-wc-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.swm-wc-card-play {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
    color: rgba(255, 255, 255, 0.8);
    background: rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: opacity 0.2s;
}

.swm-wc-card:hover .swm-wc-card-play {
    opacity: 1;
}

.swm-wc-card-body {
    padding: 1rem;
}

.swm-wc-card-title {
    font-size: 1rem;
    font-weight: 600;
    margin: 0 0 0.5rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.swm-wc-card-meta {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
    margin-bottom: 0.4rem;
}

/* ----- Clips Horizontal Scroll ----- */

.swm-wc-clips-scroll {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    padding-bottom: 1rem;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

.swm-wc-clip-card {
    flex-shrink: 0;
    width: 140px;
    text-decoration: none;
    color: inherit;
}

.swm-wc-clip-thumb {
    position: relative;
    aspect-ratio: 9 / 16;
    border-radius: 0.5rem;
    overflow: hidden;
    background: #000;
}

.swm-wc-clip-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.swm-wc-clip-play {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    color: rgba(255, 255, 255, 0.8);
    background: rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: opacity 0.2s;
}

.swm-wc-clip-card:hover .swm-wc-clip-play {
    opacity: 1;
}

.swm-wc-clip-title {
    display: block;
    font-size: 0.8rem;
    margin-top: 0.4rem;
    color: rgba(255, 255, 255, 0.7);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ----- Preview Cards ----- */

.swm-wc-preview-matchup {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 1.5rem 1rem;
    background: linear-gradient(135deg, var(--swm-wc-field-green), #0d3b0d);
}

.swm-wc-preview-team {
    font-weight: 700;
    font-size: 1rem;
}

.swm-wc-preview-vs {
    font-size: 0.8rem;
    color: rgba(255, 255, 255, 0.5);
    text-transform: uppercase;
}

/* ----- About ----- */

.swm-wc-about {
    text-align: center;
    padding-bottom: 4rem;
}

.swm-wc-about-text {
    color: rgba(255, 255, 255, 0.7);
    max-width: 600px;
    margin: 0 auto 1.5rem;
    line-height: 1.6;
}

.swm-wc-about-links {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

/* ----- Mobile Adjustments ----- */

@media (max-width: 639px) {
    .swm-wc-hero {
        min-height: 60vh;
    }

    .swm-wc-promo-card {
        flex-direction: column;
        text-align: center;
    }

    .swm-wc-promo-icon {
        display: none;
    }

    .swm-wc-chat-messages {
        height: 300px;
    }

    .swm-wc-widget-tab {
        padding: 0.5rem 1rem;
        font-size: 0.8rem;
    }
}

/* =============================================================================
   WORLD CUP PREDICTION BRACKET PAGE
   ============================================================================= */

:root {
    --swm-wc-accent: #8B1538;
}

.swm-wc-bracket-page {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1rem 4rem;
}

/* ----- Hero ----- */

.swm-wc-bracket-hero {
    text-align: center;
    padding: 3rem 1rem 2rem;
}

/* Shared-bracket banner (rendered by JS when ?bracket={token} is in URL) */
.swm-wc-bracket-share-banner {
    max-width: 720px;
    margin: 2rem auto 0;
    padding: 1.25rem 1.5rem;
    background: rgba(228, 161, 27, 0.08);
    border: 1px solid rgba(228, 161, 27, 0.35);
    border-radius: 12px;
    text-align: center;
}

.swm-wc-bracket-share-banner-title {
    font-size: 1.1rem;
    color: #fff;
    margin-bottom: 0.35rem;
}

.swm-wc-bracket-share-banner-title strong {
    color: var(--swm-gold);
}

.swm-wc-bracket-share-banner-meta {
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.75);
    margin-bottom: 1rem;
}

.swm-wc-bracket-share-banner-meta strong {
    color: #fff;
}

.swm-wc-bracket-share-banner-cta {
    display: inline-block;
}

.swm-wc-bracket-back {
    display: inline-block;
    color: var(--swm-gold);
    text-decoration: none;
    font-size: 0.9rem;
    margin-bottom: 1rem;
    transition: opacity 0.2s;
}

.swm-wc-bracket-back:hover {
    opacity: 0.8;
}

.swm-wc-bracket-title {
    font-size: 2.5rem;
    font-weight: 800;
    color: #fff;
    margin: 0 0 0.5rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.swm-wc-bracket-subtitle {
    color: var(--swm-text-muted);
    font-size: 1.1rem;
    margin: 0;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

/* ----- Sections ----- */

.swm-wc-bracket-section {
    margin-bottom: 3rem;
}

.swm-wc-bracket-section-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: #fff;
    margin: 0 0 0.5rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    text-align: center;
}

.swm-wc-bracket-section-desc {
    color: var(--swm-text-muted);
    text-align: center;
    margin: 0 0 1.5rem;
    font-size: 0.95rem;
}

/* ----- Round Selector ----- */

.swm-wc-bracket-round-selector {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem;
    margin-bottom: 2rem;
}

.swm-wc-bracket-round-btn {
    background: var(--swm-bg-card);
    color: var(--swm-text-muted);
    border: 1px solid var(--swm-border);
    padding: 0.6rem 1.2rem;
    border-radius: var(--swm-radius);
    cursor: pointer;
    font-size: 0.9rem;
    font-weight: 600;
    transition: all 0.2s;
}

.swm-wc-bracket-round-btn:hover {
    background: var(--swm-bg-hover);
    color: #fff;
}

.swm-wc-bracket-round-btn.active {
    background: var(--swm-wc-accent);
    color: #fff;
    border-color: var(--swm-wc-accent);
}

/* ----- Group Stage Grid ----- */

.swm-wc-bracket-groups-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 1rem;
}

.swm-wc-bracket-group-card {
    background: var(--swm-bg-card);
    border: 1px solid var(--swm-border);
    border-radius: var(--swm-radius);
    overflow: hidden;
}

.swm-wc-bracket-group-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75rem 1rem;
    background: rgba(139, 21, 56, 0.15);
    border-bottom: 1px solid var(--swm-border);
}

.swm-wc-bracket-group-letter {
    font-weight: 700;
    color: #fff;
    font-size: 1rem;
    text-transform: uppercase;
}

.swm-wc-bracket-group-hint {
    font-size: 0.75rem;
    color: var(--swm-text-muted);
    font-style: italic;
}

.swm-wc-bracket-group-list {
    padding: 0.25rem 0;
}

.swm-wc-bracket-group-team {
    display: flex;
    align-items: center;
    padding: 0.6rem 1rem;
    cursor: grab;
    transition: background 0.15s, opacity 0.15s;
    user-select: none;
    border-bottom: 1px solid rgba(51, 65, 85, 0.3);
}

.swm-wc-bracket-group-team:last-child {
    border-bottom: none;
}

.swm-wc-bracket-group-team:hover {
    background: var(--swm-bg-hover);
}

.swm-wc-bracket-group-team.swm-wc-bracket-dragging {
    opacity: 0.5;
    background: var(--swm-bg-hover);
}

.swm-wc-bracket-group-pos {
    width: 1.5rem;
    font-weight: 700;
    color: var(--swm-text-muted);
    font-size: 0.85rem;
    flex-shrink: 0;
}

.swm-wc-bracket-group-team-name {
    flex: 1;
    color: #fff;
    font-size: 0.95rem;
}

.swm-wc-bracket-group-drag-handle {
    color: var(--swm-text-muted);
    font-size: 1rem;
    opacity: 0.5;
    flex-shrink: 0;
}

/* Qualification indicators */
.swm-wc-bracket-qualify .swm-wc-bracket-group-pos {
    color: #22c55e;
}

.swm-wc-bracket-qualify {
    border-left: 3px solid #22c55e;
}

.swm-wc-bracket-third .swm-wc-bracket-group-pos {
    color: var(--swm-gold);
}

.swm-wc-bracket-third {
    border-left: 3px solid var(--swm-gold);
}

/* ----- Knockout Stage ----- */

.swm-wc-bracket-ko-round {
    margin-bottom: 2.5rem;
}

.swm-wc-bracket-ko-round-title {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--swm-gold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin: 0 0 1rem;
    text-align: center;
}

.swm-wc-bracket-ko-matches {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 0.75rem;
}

.swm-wc-bracket-ko-match {
    background: var(--swm-bg-card);
    border: 1px solid var(--swm-border);
    border-radius: var(--swm-radius);
    overflow: hidden;
}

.swm-wc-bracket-ko-match-header {
    padding: 0.4rem 0.75rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--swm-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background: rgba(139, 21, 56, 0.1);
    border-bottom: 1px solid var(--swm-border);
    text-align: center;
}

.swm-wc-bracket-ko-team {
    display: flex;
    align-items: center;
    padding: 0.65rem 0.75rem;
    cursor: pointer;
    transition: background 0.15s;
}

.swm-wc-bracket-ko-team:hover {
    background: var(--swm-bg-hover);
}

.swm-wc-bracket-ko-team-name {
    color: #fff;
    font-size: 0.95rem;
    flex: 1;
}

.swm-wc-bracket-ko-vs {
    text-align: center;
    color: var(--swm-text-muted);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    padding: 0.15rem 0;
}

/* Selected / winner pick */
.swm-wc-bracket-ko-selected {
    background: rgba(139, 21, 56, 0.25);
    border-left: 3px solid var(--swm-wc-accent);
}

.swm-wc-bracket-ko-selected .swm-wc-bracket-ko-team-name {
    font-weight: 700;
    color: var(--swm-gold);
}

/* Completed (real results) */
.swm-wc-bracket-ko-completed {
    opacity: 0.6;
}

.swm-wc-bracket-ko-completed .swm-wc-bracket-ko-match-header {
    background: rgba(100, 100, 100, 0.15);
}

/* ----- Champion ----- */

.swm-wc-bracket-champion {
    text-align: center;
    margin: 2rem 0;
}

.swm-wc-bracket-champion-display {
    background: var(--swm-bg-card);
    border: 2px solid var(--swm-gold);
    border-radius: var(--swm-radius);
    padding: 1.5rem 2rem;
    display: inline-block;
    min-width: 250px;
}

.swm-wc-bracket-champion-placeholder {
    color: var(--swm-text-muted);
    font-style: italic;
    font-size: 0.95rem;
}

.swm-wc-bracket-champion-name {
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--swm-gold);
    text-transform: uppercase;
    margin-right: 0.5rem;
}

.swm-wc-bracket-champion-trophy {
    font-size: 2rem;
}

/* ----- Submit Form ----- */

.swm-wc-bracket-submit-form {
    max-width: 400px;
    margin: 0 auto;
    text-align: center;
}

.swm-wc-bracket-field {
    margin-bottom: 1rem;
    text-align: left;
}

.swm-wc-bracket-field label {
    display: block;
    color: var(--swm-text-muted);
    font-size: 0.85rem;
    font-weight: 600;
    margin-bottom: 0.4rem;
}

.swm-wc-bracket-field input[type="text"] {
    width: 100%;
    padding: 0.7rem 1rem;
    background: var(--swm-bg-card);
    border: 1px solid var(--swm-border);
    border-radius: var(--swm-radius);
    color: #fff;
    font-size: 1rem;
    box-sizing: border-box;
}

.swm-wc-bracket-field input[type="text"]:focus {
    outline: none;
    border-color: var(--swm-gold);
}

.swm-wc-bracket-submit-btn {
    width: 100%;
    padding: 0.85rem 1.5rem;
    font-size: 1rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.swm-wc-bracket-submit-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.swm-wc-bracket-submit-status {
    margin-top: 1rem;
    font-size: 0.9rem;
    min-height: 1.4em;
}

.swm-wc-bracket-submit-status--success {
    color: #22c55e;
}

.swm-wc-bracket-submit-status--error {
    color: #ef4444;
}

/* ----- Share Section ----- */

.swm-wc-bracket-share-section {
    text-align: center;
}

.swm-wc-bracket-share-box {
    display: flex;
    gap: 0.5rem;
    max-width: 500px;
    margin: 0 auto;
}

.swm-wc-bracket-share-box input[type="text"] {
    flex: 1;
    padding: 0.7rem 1rem;
    background: var(--swm-bg-card);
    border: 1px solid var(--swm-border);
    border-radius: var(--swm-radius);
    color: #fff;
    font-size: 0.9rem;
    box-sizing: border-box;
}

/* ----- Leaderboard ----- */

.swm-wc-bracket-leaderboard {
    max-width: 600px;
    margin: 0 auto;
}

.swm-wc-bracket-lb-table {
    width: 100%;
    border-collapse: collapse;
    background: var(--swm-bg-card);
    border-radius: var(--swm-radius);
    overflow: hidden;
}

.swm-wc-bracket-lb-table thead {
    background: rgba(139, 21, 56, 0.15);
}

.swm-wc-bracket-lb-table th {
    padding: 0.7rem 1rem;
    text-align: left;
    color: var(--swm-text-muted);
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 1px solid var(--swm-border);
}

.swm-wc-bracket-lb-table td {
    padding: 0.65rem 1rem;
    color: #fff;
    font-size: 0.9rem;
    border-bottom: 1px solid rgba(51, 65, 85, 0.3);
}

.swm-wc-bracket-lb-table tr:last-child td {
    border-bottom: none;
}

.swm-wc-bracket-lb-table tr:hover td {
    background: var(--swm-bg-hover);
}

.swm-wc-bracket-lb-round {
    display: inline-block;
    background: rgba(139, 21, 56, 0.2);
    color: var(--swm-text-muted);
    padding: 0.15rem 0.5rem;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 600;
}

.swm-wc-bracket-empty,
.swm-wc-bracket-loading {
    text-align: center;
    color: var(--swm-text-muted);
    padding: 2rem 1rem;
    font-size: 0.95rem;
}

/* ----- Mobile Adjustments (Bracket) ----- */

@media (max-width: 639px) {
    .swm-wc-bracket-title {
        font-size: 1.75rem;
    }

    .swm-wc-bracket-groups-grid {
        grid-template-columns: 1fr;
    }

    .swm-wc-bracket-ko-matches {
        grid-template-columns: 1fr;
    }

    .swm-wc-bracket-round-btn {
        padding: 0.5rem 0.8rem;
        font-size: 0.8rem;
    }

    .swm-wc-bracket-share-box {
        flex-direction: column;
    }

    .swm-wc-bracket-champion-display {
        min-width: auto;
        width: 90%;
        padding: 1rem;
    }

    .swm-wc-bracket-champion-name {
        font-size: 1.2rem;
    }
}

@media (min-width: 640px) and (max-width: 1023px) {
    .swm-wc-bracket-groups-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .swm-wc-bracket-ko-matches {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .swm-wc-bracket-groups-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .swm-wc-bracket-ko-matches {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* =============================================================================
   WORLD CUP LINEUP BUILDER PAGE
   ============================================================================= */

.swm-wc-lineup {
    --swm-bg-dark: #0F172A;
    --swm-bg-card: #16213E;
    --swm-wc-accent: #8B1538;
    --swm-gold: #e4a11b;
    --swm-wc-field-green: #1B5E20;
    max-width: 1200px;
    margin: 0 auto;
    padding: 1rem;
    color: #e2e8f0;
}

/* ----- Header ----- */

.swm-wc-lineup-header {
    text-align: center;
    padding: 1.5rem 0 1rem;
}

/* Shared-lineup banner (rendered by JS when ?lineup={token} is in URL) */
.swm-wc-lineup-share-banner {
    max-width: 720px;
    margin: 1rem auto 0;
    padding: 1rem 1.25rem;
    background: rgba(228, 161, 27, 0.08);
    border: 1px solid rgba(228, 161, 27, 0.35);
    border-radius: 10px;
    text-align: center;
}

.swm-wc-lineup-share-banner-title {
    font-size: 1rem;
    color: #fff;
    margin-bottom: 0.75rem;
    text-transform: capitalize;
}

.swm-wc-lineup-share-banner-title strong {
    color: var(--swm-gold);
}

.swm-wc-lineup-back {
    display: inline-block;
    color: var(--swm-gold);
    text-decoration: none;
    font-size: 0.875rem;
    font-weight: 600;
    margin-bottom: 0.75rem;
    transition: opacity 0.2s;
}

.swm-wc-lineup-back:hover {
    opacity: 0.8;
}

.swm-wc-lineup-title {
    font-size: 2rem;
    font-weight: 800;
    color: #fff;
    margin: 0 0 0.25rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.swm-wc-lineup-subtitle {
    color: #94a3b8;
    font-size: 0.95rem;
    margin: 0;
}

/* ----- Controls ----- */

.swm-wc-lineup-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: flex-end;
    justify-content: center;
    padding: 1rem 0;
}

.swm-wc-lineup-control-group {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 160px;
}

.swm-wc-lineup-label {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #94a3b8;
}

.swm-wc-lineup-select {
    background: var(--swm-bg-card);
    color: #e2e8f0;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 8px;
    padding: 0.6rem 0.85rem;
    font-size: 0.9rem;
    font-family: inherit;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2394a3b8' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    padding-right: 2rem;
    transition: border-color 0.2s;
}

.swm-wc-lineup-select:focus {
    outline: none;
    border-color: var(--swm-gold);
}

.swm-wc-lineup-actions {
    flex-direction: row;
    align-items: center;
    gap: 0.5rem;
    min-width: auto;
}

.swm-wc-lineup-btn-reset {
    padding: 0.6rem 1rem;
    font-size: 0.85rem;
    border-radius: 8px;
}

.swm-wc-lineup-btn-share {
    padding: 0.6rem 1.2rem;
    font-size: 0.85rem;
    border-radius: 8px;
}

/* ----- Workspace (pitch + panel) ----- */

.swm-wc-lineup-workspace {
    position: relative;
    padding: 1rem 0 2rem;
}

/* ----- SVG Pitch ----- */

.swm-wc-lineup-pitch-wrapper {
    max-width: 900px;
    margin: 0 auto;
}

.swm-wc-lineup-pitch {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
}

/* Marker animations */

.swm-wc-lineup-marker {
    transition: transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.swm-wc-lineup-marker-glow {
    transition: fill 0.2s, r 0.2s;
}

.swm-wc-lineup-marker:hover .swm-wc-lineup-marker-glow {
    r: 40;
    fill: rgba(228, 161, 27, 0.25);
}

.swm-wc-lineup-marker-circle {
    transition: fill 0.2s, stroke 0.2s;
}

.swm-wc-lineup-marker:hover .swm-wc-lineup-marker-circle {
    stroke: #fff;
}

/* ----- Player Panel (slide-up on mobile, sidebar on desktop) ----- */

.swm-wc-lineup-panel {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background: var(--swm-bg-card);
    border-top: 2px solid var(--swm-gold);
    border-radius: 16px 16px 0 0;
    max-height: 60vh;
    transform: translateY(100%);
    transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    display: flex;
    flex-direction: column;
    box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.5);
}

.swm-wc-lineup-panel--open {
    transform: translateY(0);
}

.swm-wc-lineup-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    flex-shrink: 0;
}

.swm-wc-lineup-panel-title {
    font-size: 1rem;
    font-weight: 700;
    color: #fff;
    margin: 0;
}

.swm-wc-lineup-panel-close {
    background: none;
    border: none;
    color: #94a3b8;
    font-size: 1.5rem;
    cursor: pointer;
    padding: 0 0.25rem;
    line-height: 1;
    transition: color 0.2s;
}

.swm-wc-lineup-panel-close:hover {
    color: #fff;
}

.swm-wc-lineup-panel-body {
    padding: 0.75rem 1rem;
    overflow-y: auto;
    flex: 1;
}

.swm-wc-lineup-player-search {
    width: 100%;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 8px;
    padding: 0.6rem 0.85rem;
    font-size: 0.9rem;
    color: #e2e8f0;
    font-family: inherit;
    margin-bottom: 0.75rem;
    box-sizing: border-box;
    transition: border-color 0.2s;
}

.swm-wc-lineup-player-search::placeholder {
    color: #64748b;
}

.swm-wc-lineup-player-search:focus {
    outline: none;
    border-color: var(--swm-gold);
}

.swm-wc-lineup-player-list {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.swm-wc-lineup-panel-hint {
    color: #64748b;
    font-size: 0.85rem;
    text-align: center;
    padding: 1rem 0;
    margin: 0;
}

.swm-wc-lineup-player-item {
    display: block;
    width: 100%;
    text-align: left;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 6px;
    padding: 0.55rem 0.75rem;
    color: #e2e8f0;
    font-size: 0.875rem;
    font-family: inherit;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}

.swm-wc-lineup-player-item:hover {
    background: rgba(228, 161, 27, 0.12);
    border-color: rgba(228, 161, 27, 0.3);
}

.swm-wc-lineup-player-assigned {
    opacity: 0.5;
    font-style: italic;
}

.swm-wc-lineup-player-custom {
    background: rgba(139, 21, 56, 0.15);
    border-color: rgba(139, 21, 56, 0.3);
    color: var(--swm-gold);
    font-weight: 600;
}

.swm-wc-lineup-player-custom:hover {
    background: rgba(139, 21, 56, 0.25);
}

.swm-wc-lineup-player-clear {
    background: rgba(239, 68, 68, 0.1);
    border-color: rgba(239, 68, 68, 0.2);
    color: #f87171;
    font-weight: 600;
}

.swm-wc-lineup-player-clear:hover {
    background: rgba(239, 68, 68, 0.2);
}

/* ----- Toast ----- */

.swm-wc-lineup-toast {
    position: fixed;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%) translateY(120%);
    background: var(--swm-bg-card);
    color: #e2e8f0;
    padding: 0.75rem 1.5rem;
    border-radius: 8px;
    font-size: 0.9rem;
    font-weight: 600;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
    border: 1px solid rgba(228, 161, 27, 0.3);
    z-index: 2000;
    opacity: 0;
    transition: transform 0.3s, opacity 0.3s;
    pointer-events: none;
}

.swm-wc-lineup-toast--visible {
    transform: translateX(-50%) translateY(0);
    opacity: 1;
}

/* ----- Intro overlay ----- */
.swm-wc-lineup-intro-overlay,
.swm-wc-lineup-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 10001;
    background: rgba(0, 0, 0, 0.75);
    backdrop-filter: blur(4px);
    align-items: center;
    justify-content: center;
}
.swm-wc-lineup-intro-overlay.swm-wc-lineup-intro-visible,
.swm-wc-lineup-modal-overlay.swm-wc-lineup-modal-visible {
    display: flex;
}
.swm-wc-lineup-intro-card,
.swm-wc-lineup-modal-card {
    background: var(--swm-bg-card, #16213E);
    border: 1px solid var(--swm-border, #334155);
    border-radius: 12px;
    padding: 2rem 2.5rem;
    max-width: 480px;
    width: 90vw;
    text-align: center;
    position: relative;
}
.swm-wc-lineup-intro-card h2,
.swm-wc-lineup-modal-card h2 {
    color: var(--swm-gold, #e4a11b) !important;
    margin: 0 0 1.25rem;
    font-size: 1.5rem;
}
.swm-wc-lineup-intro-steps {
    text-align: left;
    margin-bottom: 1.5rem;
}
.swm-wc-lineup-intro-step {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 1rem;
}
.swm-wc-lineup-intro-num {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    background: var(--swm-gold, #e4a11b);
    color: #0F172A;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.85rem;
}
.swm-wc-lineup-intro-step p {
    margin: 0;
    line-height: 1.5;
    color: var(--swm-text-muted, #94a3b8) !important;
}
.swm-wc-lineup-intro-step strong {
    color: #fff !important;
}
.swm-wc-lineup-intro-dismiss {
    width: 100%;
    padding: 0.75rem 1.5rem;
    font-size: 1rem;
}

/* ----- Share modal ----- */
.swm-wc-lineup-modal-close {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    background: none;
    border: none;
    color: var(--swm-text-muted, #94a3b8);
    font-size: 1.5rem;
    cursor: pointer;
    line-height: 1;
}
.swm-wc-lineup-modal-close:hover { color: #fff; }
.swm-wc-lineup-modal-desc {
    color: var(--swm-text-muted, #94a3b8) !important;
    margin-bottom: 1.25rem;
}
.swm-wc-lineup-modal-fields {
    text-align: left;
    margin-bottom: 1.25rem;
}
.swm-wc-lineup-modal-fields label {
    display: block;
    color: #fff !important;
    font-size: 0.85rem;
    font-weight: 600;
    margin-bottom: 0.35rem;
}
.swm-wc-lineup-modal-fields input[type="text"],
.swm-wc-lineup-modal-fields input[type="email"] {
    width: 100%;
    padding: 0.6rem 0.75rem;
    background: var(--swm-bg-dark, #0F172A);
    border: 1px solid var(--swm-border, #334155);
    border-radius: 6px;
    color: #fff;
    font-size: 0.9rem;
    margin-bottom: 0.75rem;
    box-sizing: border-box;
}
.swm-wc-lineup-modal-fields input[type="text"]:focus,
.swm-wc-lineup-modal-fields input[type="email"]:focus {
    outline: none;
    border-color: var(--swm-gold, #e4a11b);
}
.swm-wc-lineup-modal-optional {
    font-weight: 400;
    color: var(--swm-text-muted, #94a3b8) !important;
    font-size: 0.8rem;
}
.swm-wc-lineup-modal-checkbox {
    display: flex !important;
    align-items: center;
    gap: 0.5rem;
    font-weight: 400 !important;
    color: var(--swm-text-muted, #94a3b8) !important;
    cursor: pointer;
    margin-top: 0.25rem;
}
.swm-wc-lineup-modal-checkbox input[type="checkbox"] {
    accent-color: var(--swm-gold, #e4a11b);
    width: 16px;
    height: 16px;
}
.swm-wc-lineup-modal-submit {
    width: 100%;
    padding: 0.75rem 1.5rem;
    font-size: 1rem;
}

/* ----- Desktop: panel as floating overlay ----- */

@media (min-width: 900px) {
    .swm-wc-lineup-panel {
        position: fixed;
        bottom: auto;
        top: 50%;
        left: auto;
        right: 2rem;
        transform: translateY(-50%) translateX(120%);
        width: 320px;
        max-height: 70vh;
        border-radius: 12px;
        border-top: none;
        border: 1px solid rgba(255, 255, 255, 0.1);
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
    }

    .swm-wc-lineup-panel--open {
        transform: translateY(-50%) translateX(0);
    }
}

/* ----- Mobile adjustments ----- */

@media (max-width: 639px) {
    .swm-wc-lineup-title {
        font-size: 1.5rem;
    }

    .swm-wc-lineup-controls {
        flex-direction: column;
        align-items: stretch;
    }

    .swm-wc-lineup-control-group {
        min-width: auto;
    }

    .swm-wc-lineup-actions {
        flex-direction: row;
        justify-content: center;
    }
}

/* ===========================================================================
   WORLD CUP EXPERIENCE — "Beyond the Pitch" companion page
   =========================================================================== */

.swm-wc-experience {
    background: var(--swm-bg-dark, #0F172A);
    color: #fff;
}

/* Experience hero uses the main hero styles with a slight variation */
.swm-wc-exp-hero {
    background: linear-gradient(135deg, #0a0a1a 0%, var(--swm-wc-field-green, #1B5E20) 45%, var(--swm-wc-accent, #8B1538) 100%);
}

.swm-wc-exp-hero .swm-wc-hero-title {
    font-size: clamp(2.8rem, 9vw, 5.5rem);
    letter-spacing: -0.03em;
    line-height: 0.95;
}

/* Section header with right-side link */
.swm-wc-section-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 0.5rem;
}

.swm-wc-section-link {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--swm-gold, #e4a11b);
    text-decoration: none;
    white-space: nowrap;
}

.swm-wc-section-link:hover {
    color: var(--swm-wc-accent-light, #C41E3A);
}

/* ----- Experience Section Cards ----- */

.swm-wc-exp-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-top: 1.5rem;
}

@media (min-width: 640px) {
    .swm-wc-exp-cards {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .swm-wc-exp-cards {
        grid-template-columns: repeat(4, 1fr);
    }
}

.swm-wc-exp-card {
    display: block;
    text-decoration: none;
    color: inherit;
    background: var(--swm-bg-card, #16213E);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 1rem;
    padding: 1.5rem;
    transition: transform 0.2s, border-color 0.2s, background 0.2s;
    position: relative;
    overflow: hidden;
}

.swm-wc-exp-card:hover {
    transform: translateY(-3px);
    border-color: var(--swm-wc-accent-light, #C41E3A);
}

.swm-wc-exp-card h3 {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0 0 0.5rem;
    color: #fff;
}

.swm-wc-exp-card p {
    font-size: 0.85rem;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.7);
    margin: 0;
}

.swm-wc-exp-card-icon {
    font-size: 2.5rem;
    margin-bottom: 0.75rem;
}

.swm-wc-exp-card-featured {
    background: linear-gradient(135deg, var(--swm-bg-card, #16213E), var(--swm-wc-accent, #8B1538));
    border-color: var(--swm-wc-accent-light, #C41E3A);
}

.swm-wc-exp-card-badge {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: var(--swm-gold, #e4a11b);
    color: #000;
    font-size: 0.65rem;
    font-weight: 800;
    padding: 0.2rem 0.5rem;
    border-radius: 0.25rem;
    letter-spacing: 0.1em;
}

/* ----- Nation Carousel Cards ----- */

.swm-wc-nation-carousel {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-top: 1.5rem;
}

@media (min-width: 640px) {
    .swm-wc-nation-carousel {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 900px) {
    .swm-wc-nation-carousel {
        grid-template-columns: repeat(3, 1fr);
    }
}

.swm-wc-nation-card {
    display: block;
    text-decoration: none;
    color: inherit;
    background: var(--swm-bg-card, #16213E);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 0.75rem;
    overflow: hidden;
    transition: transform 0.2s, border-color 0.2s;
}

.swm-wc-nation-card:hover {
    transform: translateY(-3px);
    border-color: var(--swm-gold, #e4a11b);
}

.swm-wc-nation-card-image {
    aspect-ratio: 16 / 9;
    background-size: cover;
    background-position: center;
    background-color: var(--swm-wc-accent, #8B1538);
}

.swm-wc-nation-card-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--swm-wc-field-green, #1B5E20), var(--swm-wc-accent, #8B1538));
}

.swm-wc-nation-card-code {
    font-size: 3rem;
    font-weight: 900;
    color: rgba(255, 255, 255, 0.9);
    letter-spacing: 0.1em;
}

.swm-wc-nation-card-body {
    padding: 1rem;
}

.swm-wc-nation-card-title {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0.5rem 0 0.25rem;
}

.swm-wc-nation-card-tagline {
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.65);
    margin: 0;
    line-clamp: 2;
    -webkit-line-clamp: 2;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.swm-wc-badge-group {
    background: var(--swm-gold, #e4a11b);
    color: #000;
}

/* ----- Did-not-qualify badge + states ----- */

.swm-wc-badge-eliminated {
    background: #3a3a3a;
    color: #e8c3c3;
    border: 1px solid #5a3a3a;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    font-size: 0.72rem;
}

.swm-wc-nation-hero-eliminated {
    filter: grayscale(0.35);
}

.swm-wc-nation-elimination-note {
    margin-top: 0.5rem;
    font-size: 0.95rem;
    color: #d7b6b6;
    font-style: italic;
    max-width: 42rem;
}

.swm-wc-nation-card-eliminated {
    opacity: 0.82;
}

.swm-wc-nation-card-eliminated .swm-wc-nation-card-image {
    filter: grayscale(0.6);
}

.swm-wc-archive-group-eliminated {
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid #3a3a3a;
}

.swm-wc-archive-group-intro {
    margin: 0 0 1rem 0;
    color: #9a9a9a;
    font-style: italic;
    max-width: 48rem;
}

/* ----- City Grid ----- */

.swm-wc-city-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-top: 1.5rem;
}

@media (min-width: 640px) {
    .swm-wc-city-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .swm-wc-city-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.swm-wc-city-card {
    display: block;
    text-decoration: none;
    color: inherit;
    background: var(--swm-bg-card, #16213E);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 0.75rem;
    overflow: hidden;
    transition: transform 0.2s, border-color 0.2s;
}

.swm-wc-city-card:hover {
    transform: translateY(-3px);
    border-color: var(--swm-wc-accent-light, #C41E3A);
}

.swm-wc-city-card-image {
    aspect-ratio: 16 / 9;
    background-size: cover;
    background-position: center;
    background-color: var(--swm-wc-field-green, #1B5E20);
}

.swm-wc-city-card-body {
    padding: 1rem;
}

.swm-wc-city-card-title {
    font-size: 1.2rem;
    font-weight: 700;
    margin: 0 0 0.25rem;
}

.swm-wc-city-card-venue {
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.6);
    margin: 0 0 0.5rem;
}

/* ----- DFW Spotlight ----- */

.swm-wc-dfw-spotlight {
    max-width: 1200px;
}

.swm-wc-dfw-content {
    background: linear-gradient(135deg, var(--swm-bg-card, #16213E), var(--swm-wc-accent, #8B1538));
    border-radius: 1rem;
    padding: 2.5rem;
    display: grid;
    gap: 2rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

@media (min-width: 900px) {
    .swm-wc-dfw-content {
        grid-template-columns: 1.5fr 1fr;
        align-items: center;
    }
}

.swm-wc-dfw-eyebrow {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    color: var(--swm-gold, #e4a11b);
    text-transform: uppercase;
    margin-bottom: 0.75rem;
}

.swm-wc-dfw-text h2 {
    font-size: 2rem;
    margin: 0 0 1rem;
}

.swm-wc-dfw-stats {
    font-size: 1.05rem;
    line-height: 1.6;
    margin-bottom: 1rem;
    color: rgba(255, 255, 255, 0.9);
}

.swm-wc-dfw-stats strong {
    color: var(--swm-gold, #e4a11b);
}

.swm-wc-dfw-highlights {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}

.swm-wc-dfw-stat {
    text-align: center;
    background: rgba(0, 0, 0, 0.3);
    border-radius: 0.5rem;
    padding: 1rem 0.5rem;
}

.swm-wc-dfw-stat-number {
    font-size: 2rem;
    font-weight: 900;
    color: var(--swm-gold, #e4a11b);
    line-height: 1;
    margin-bottom: 0.5rem;
}

.swm-wc-dfw-stat-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: rgba(255, 255, 255, 0.7);
    line-height: 1.3;
}

/* ----- Tyler's Picks ----- */

.swm-wc-tyler-actions {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 1.25rem;
}

/* Mobile adjustments */

@media (max-width: 639px) {
    .swm-wc-dfw-content {
        padding: 1.5rem;
    }

    .swm-wc-dfw-text h2 {
        font-size: 1.6rem;
    }

    .swm-wc-dfw-highlights {
        grid-template-columns: 1fr;
    }

    .swm-wc-dfw-stat {
        padding: 0.75rem;
    }
}

/* ============================================================================
 * HOST CITY GUIDES — Single + Archive
 * ========================================================================= */

/* ----- Single City Page ----- */

.swm-wc-city-single {
    background: var(--swm-bg-dark, #0F172A);
    color: var(--swm-text, #fff);
}

.swm-wc-city-hero {
    position: relative;
    min-height: 360px;
    background-size: cover;
    background-position: center;
    background-color: var(--swm-bg-card, #16213E);
    border-bottom: 1px solid var(--swm-border, #334155);
}

.swm-wc-city-hero-overlay {
    min-height: 360px;
    display: flex;
    align-items: flex-end;
    padding: 2rem 1.25rem;
}

.swm-wc-city-hero-content {
    max-width: 1100px;
    width: 100%;
    margin: 0 auto;
}

.swm-wc-city-back {
    display: inline-block;
    color: var(--swm-text-muted, #94a3b8);
    text-decoration: none;
    font-size: 0.9rem;
    margin-bottom: 1rem;
    transition: color 0.2s;
}

.swm-wc-city-back:hover {
    color: var(--swm-gold, #e4a11b);
}

.swm-wc-city-hero-badge {
    display: inline-block;
    background: var(--swm-gold, #e4a11b);
    color: var(--swm-bg-dark, #0F172A);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.15em;
    padding: 0.35rem 0.75rem;
    border-radius: 4px;
    text-transform: uppercase;
    margin-bottom: 1rem;
}

.swm-wc-city-hero-title {
    font-size: clamp(2rem, 6vw, 3.5rem);
    font-weight: 900;
    line-height: 1.05;
    margin: 0 0 0.75rem;
    color: var(--swm-text, #fff);
}

.swm-wc-city-hero-tagline {
    font-size: 1.15rem;
    line-height: 1.5;
    color: var(--swm-text, #fff);
    max-width: 700px;
    margin: 0 0 0.75rem;
    font-weight: 500;
}

.swm-wc-city-hero-venue {
    font-size: 1rem;
    color: var(--swm-gold, #e4a11b);
    margin: 0;
    font-weight: 600;
}

/* ----- Stats Strip ----- */

.swm-wc-city-stats {
    max-width: 1100px;
    margin: -1px auto 0;
    padding: 1.5rem 1.25rem;
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    background: var(--swm-bg-card, #16213E);
    border-bottom: 1px solid var(--swm-border, #334155);
}

@media (min-width: 640px) {
    .swm-wc-city-stats {
        grid-template-columns: repeat(3, 1fr);
    }
}

.swm-wc-city-stat {
    text-align: center;
    padding: 0.75rem 0.5rem;
}

.swm-wc-city-stat-number {
    font-size: 2.5rem;
    font-weight: 900;
    color: var(--swm-gold, #e4a11b);
    line-height: 1;
    margin-bottom: 0.35rem;
}

.swm-wc-city-stat-icon {
    font-size: 1.75rem;
    line-height: 1;
    margin-bottom: 0.35rem;
}

.swm-wc-city-stat-label {
    font-size: 0.8rem;
    color: var(--swm-text-muted, #94a3b8);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    line-height: 1.3;
}

/* ----- Fun Fact ----- */

.swm-wc-city-funfact {
    max-width: 1000px;
    margin: 2rem auto 0;
    padding: 1.25rem 1.5rem;
    background: linear-gradient(135deg, var(--swm-bg-card, #16213E), rgba(228, 161, 27, 0.12));
    border-left: 4px solid var(--swm-gold, #e4a11b);
    border-radius: 0.5rem;
    display: flex;
    align-items: center;
    gap: 1rem;
}

.swm-wc-city-funfact-icon {
    font-size: 1.75rem;
    flex-shrink: 0;
}

.swm-wc-city-funfact p {
    margin: 0;
    font-size: 1rem;
    line-height: 1.5;
    color: var(--swm-text, #fff);
}

/* ----- Editorial Content ----- */

.swm-wc-city-content {
    max-width: 820px;
    margin: 2.5rem auto;
    padding: 0 1.25rem;
    font-size: 1.05rem;
    line-height: 1.7;
    color: var(--swm-text, #fff);
}

.swm-wc-city-content h2 {
    font-size: 1.75rem;
    font-weight: 800;
    margin: 2.5rem 0 1rem;
    color: var(--swm-gold, #e4a11b);
}

.swm-wc-city-content h3 {
    font-size: 1.25rem;
    font-weight: 700;
    margin: 1.75rem 0 0.75rem;
    color: var(--swm-text, #fff);
}

.swm-wc-city-content p {
    margin: 0 0 1.25rem;
}

.swm-wc-city-content ul,
.swm-wc-city-content ol {
    margin: 0 0 1.5rem 1.25rem;
    padding: 0;
}

.swm-wc-city-content li {
    margin-bottom: 0.5rem;
}

.swm-wc-city-content strong {
    color: var(--swm-gold, #e4a11b);
    font-weight: 700;
}

.swm-wc-city-content em {
    color: var(--swm-text-muted, #94a3b8);
}

.swm-wc-city-content a {
    color: var(--swm-gold, #e4a11b);
    text-decoration: underline;
}

.swm-wc-city-content a:hover {
    color: var(--swm-gold-hover, #f5c04a);
}

.swm-wc-city-placeholder {
    display: flex;
    justify-content: center;
}

.swm-wc-city-placeholder-card {
    background: var(--swm-bg-card, #16213E);
    border: 1px dashed var(--swm-border, #334155);
    border-radius: 0.75rem;
    padding: 2.5rem 1.5rem;
    text-align: center;
    max-width: 500px;
}

.swm-wc-city-placeholder-icon {
    font-size: 2.5rem;
    margin-bottom: 0.75rem;
}

.swm-wc-city-placeholder-card h2 {
    font-size: 1.4rem;
    margin: 0 0 0.5rem;
    color: var(--swm-text, #fff);
}

.swm-wc-city-placeholder-card p {
    margin: 0;
    color: var(--swm-text-muted, #94a3b8);
}

/* ----- Quick-Reference Sections ----- */

.swm-wc-city-sections {
    max-width: 1100px;
    margin: 3rem auto;
    padding: 0 1.25rem;
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}

@media (min-width: 720px) {
    .swm-wc-city-sections {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .swm-wc-city-sections {
        grid-template-columns: repeat(3, 1fr);
    }
}

.swm-wc-city-section {
    background: var(--swm-bg-card, #16213E);
    border: 1px solid var(--swm-border, #334155);
    border-radius: 0.75rem;
    padding: 1.5rem;
    transition: border-color 0.2s, transform 0.2s;
}

.swm-wc-city-section:hover {
    border-color: var(--swm-gold, #e4a11b);
    transform: translateY(-2px);
}

.swm-wc-city-section-icon {
    font-size: 1.75rem;
    margin-bottom: 0.75rem;
    line-height: 1;
}

.swm-wc-city-section h2 {
    font-size: 1.15rem;
    font-weight: 700;
    margin: 0 0 0.75rem;
    color: var(--swm-gold, #e4a11b);
}

.swm-wc-city-section p {
    margin: 0 0 0.75rem;
    font-size: 0.95rem;
    line-height: 1.55;
    color: var(--swm-text, #fff);
}

.swm-wc-city-section p:last-child {
    margin-bottom: 0;
}

.swm-wc-city-section-meta {
    font-size: 0.85rem;
    color: var(--swm-text-muted, #94a3b8);
    font-style: italic;
}

/* ----- Tyler's Take (DFW only) ----- */

.swm-wc-city-tyler {
    max-width: 1100px;
    margin: 3rem auto;
    padding: 0 1.25rem;
}

.swm-wc-city-tyler-card {
    background: linear-gradient(135deg, var(--swm-bg-card, #16213E), #8B1538);
    border-radius: 1rem;
    padding: 2.5rem 2rem;
    border: 1px solid rgba(228, 161, 27, 0.3);
}

.swm-wc-city-tyler-eyebrow {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.15em;
    color: var(--swm-gold, #e4a11b);
    text-transform: uppercase;
    margin-bottom: 0.75rem;
}

.swm-wc-city-tyler-card h2 {
    font-size: 2rem;
    margin: 0 0 1rem;
    color: var(--swm-text, #fff);
}

.swm-wc-city-tyler-card p {
    font-size: 1.05rem;
    line-height: 1.65;
    margin: 0 0 1rem;
    color: rgba(255, 255, 255, 0.95);
}

.swm-wc-city-tyler-actions {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 1.5rem;
}

/* ----- Match Schedule Placeholder ----- */

.swm-wc-city-schedule {
    max-width: 900px;
    margin: 3rem auto;
    padding: 2rem 1.25rem;
    text-align: center;
    background: var(--swm-bg-card, #16213E);
    border-radius: 0.75rem;
    border: 1px solid var(--swm-border, #334155);
}

.swm-wc-city-schedule h2 {
    font-size: 1.5rem;
    margin: 0 0 0.75rem;
    color: var(--swm-gold, #e4a11b);
}

.swm-wc-city-schedule-note {
    color: var(--swm-text-muted, #94a3b8);
    font-size: 0.95rem;
    margin: 0 0 1.5rem;
    line-height: 1.55;
}

.swm-wc-city-schedule-cta {
    display: flex;
    justify-content: center;
}

/* ----- Footer Nav ----- */

.swm-wc-city-footer {
    max-width: 1100px;
    margin: 3rem auto 4rem;
    padding: 0 1.25rem;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: space-between;
    align-items: center;
}

@media (max-width: 639px) {
    .swm-wc-city-footer {
        flex-direction: column;
        align-items: stretch;
    }

    .swm-wc-city-footer .swm-btn {
        text-align: center;
    }
}

/* ============================================================================
 * HOST CITY ARCHIVE
 * ========================================================================= */

.swm-wc-city-archive {
    background: var(--swm-bg-dark, #0F172A);
    color: var(--swm-text, #fff);
    min-height: 60vh;
}

.swm-wc-city-archive-header {
    max-width: 1100px;
    margin: 0 auto;
    padding: 2.5rem 1.25rem 2rem;
    text-align: center;
}

.swm-wc-city-archive-badge {
    display: inline-block;
    background: var(--swm-gold, #e4a11b);
    color: var(--swm-bg-dark, #0F172A);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.15em;
    padding: 0.35rem 0.75rem;
    border-radius: 4px;
    text-transform: uppercase;
    margin-bottom: 1rem;
}

.swm-wc-city-archive-title {
    font-size: clamp(2rem, 5vw, 3.2rem);
    font-weight: 900;
    margin: 0 0 0.75rem;
    color: var(--swm-text, #fff);
}

.swm-wc-city-archive-subtitle {
    font-size: 1.2rem;
    color: var(--swm-gold, #e4a11b);
    margin: 0 0 0.75rem;
    font-weight: 600;
}

.swm-wc-city-archive-desc {
    font-size: 1rem;
    color: var(--swm-text-muted, #94a3b8);
    margin: 0 auto;
    max-width: 650px;
    line-height: 1.55;
}

/* ----- Country Section ----- */

.swm-wc-city-archive-country {
    max-width: 1200px;
    margin: 0 auto;
    padding: 2rem 1.25rem;
}

.swm-wc-city-archive-country-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
    padding-bottom: 0.75rem;
    border-bottom: 2px solid var(--swm-border, #334155);
}

.swm-wc-city-archive-flag {
    font-size: 2rem;
    line-height: 1;
}

.swm-wc-city-archive-country-header h2 {
    font-size: 1.75rem;
    font-weight: 800;
    margin: 0;
    color: var(--swm-text, #fff);
    flex: 1;
}

.swm-wc-city-archive-count {
    font-size: 0.85rem;
    color: var(--swm-text-muted, #94a3b8);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 600;
}

/* ----- Grid ----- */

.swm-wc-city-archive-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}

@media (min-width: 640px) {
    .swm-wc-city-archive-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .swm-wc-city-archive-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* ----- Card ----- */

.swm-wc-city-archive-card {
    display: block;
    text-decoration: none;
    color: inherit;
    background: var(--swm-bg-card, #16213E);
    border: 1px solid var(--swm-border, #334155);
    border-radius: 0.75rem;
    overflow: hidden;
    transition: transform 0.2s, border-color 0.2s, box-shadow 0.2s;
    position: relative;
}

.swm-wc-city-archive-card:hover {
    transform: translateY(-3px);
    border-color: var(--swm-gold, #e4a11b);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}

.swm-wc-city-archive-card-featured {
    border-color: var(--swm-gold, #e4a11b);
    box-shadow: 0 0 0 2px rgba(228, 161, 27, 0.3);
}

.swm-wc-city-archive-card-image {
    aspect-ratio: 16 / 9;
    background-size: cover;
    background-position: center;
    background-color: #1B5E20;
}

.swm-wc-city-archive-card-placeholder {
    background: linear-gradient(135deg, var(--swm-bg-hover, #1e2d4a), var(--swm-bg-card, #16213E));
}

.swm-wc-city-archive-card-body {
    padding: 1.25rem;
    position: relative;
}

.swm-wc-city-archive-card-badge {
    display: inline-block;
    background: var(--swm-gold, #e4a11b);
    color: var(--swm-bg-dark, #0F172A);
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    padding: 0.25rem 0.5rem;
    border-radius: 3px;
    text-transform: uppercase;
    margin-bottom: 0.5rem;
}

.swm-wc-city-archive-card-badge-soon {
    background: var(--swm-border, #334155);
    color: var(--swm-text-muted, #94a3b8);
}

.swm-wc-city-archive-card-title {
    font-size: 1.3rem;
    font-weight: 700;
    margin: 0 0 0.35rem;
    color: var(--swm-text, #fff);
}

.swm-wc-city-archive-card-venue {
    font-size: 0.85rem;
    color: var(--swm-gold, #e4a11b);
    margin: 0 0 0.5rem;
    font-weight: 500;
}

.swm-wc-city-archive-card-tagline {
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.75);
    line-height: 1.45;
    margin: 0 0 0.75rem;
}

/* ----- Archive Footer ----- */

.swm-wc-city-archive-footer {
    max-width: 900px;
    margin: 3rem auto 4rem;
    padding: 2.5rem 1.25rem;
    text-align: center;
    background: var(--swm-bg-card, #16213E);
    border-radius: 1rem;
    border: 1px solid var(--swm-border, #334155);
}

.swm-wc-city-archive-footer h2 {
    font-size: 1.6rem;
    margin: 0 0 0.75rem;
    color: var(--swm-text, #fff);
}

.swm-wc-city-archive-footer p {
    color: var(--swm-text-muted, #94a3b8);
    margin: 0 0 1.5rem;
}

.swm-wc-city-archive-footer-actions {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

/* ----- Mobile tweaks ----- */

@media (max-width: 639px) {
    .swm-wc-city-hero-overlay {
        min-height: 300px;
        padding: 1.5rem 1rem;
    }

    .swm-wc-city-hero {
        min-height: 300px;
    }

    .swm-wc-city-tyler-card {
        padding: 1.75rem 1.25rem;
    }

    .swm-wc-city-tyler-card h2 {
        font-size: 1.6rem;
    }

    .swm-wc-city-archive-country-header h2 {
        font-size: 1.4rem;
    }
}

/* =============================================================================
   WORLD CUP EDITORIAL PAGES (Cheat Sheet / Watch Parties / Eats)
   Shared chrome for template + the_content() editorial pages
   ============================================================================= */

.swm-wc-editorial-page {
    max-width: 960px;
    margin: 0 auto;
    padding: 1rem;
    color: var(--swm-text);
}

/* --- Back link --- */

.swm-wc-editorial-back-wrap {
    padding: 0.5rem 0 0;
}

.swm-wc-editorial-back {
    display: inline-block;
    color: var(--swm-gold);
    text-decoration: none;
    font-size: 0.875rem;
    letter-spacing: 0.02em;
    transition: color 0.2s;
}

.swm-wc-editorial-back:hover {
    color: var(--swm-gold-hover);
}

/* --- Hero --- */

.swm-wc-editorial-hero {
    background: linear-gradient(135deg, var(--swm-bg-card), var(--swm-wc-accent, #8B1538));
    border-radius: var(--swm-radius);
    padding: 2.5rem 1.5rem;
    margin: 1rem 0 2rem;
    text-align: center;
    border: 1px solid var(--swm-border);
}

.swm-wc-editorial-hero-inner {
    max-width: 680px;
    margin: 0 auto;
}

.swm-wc-editorial-eyebrow {
    display: inline-block;
    font-size: 0.7rem;
    letter-spacing: 0.18em;
    color: var(--swm-gold);
    font-weight: 700;
    margin-bottom: 0.75rem;
}

.swm-wc-editorial-title {
    font-size: 2rem;
    line-height: 1.15;
    font-weight: 800;
    color: #fff !important;
    margin: 0 0 0.75rem !important;
    text-transform: none;
}

.swm-wc-editorial-subtitle {
    color: #e2e8f0;
    font-size: 1.05rem;
    line-height: 1.5;
    margin: 0;
}

@media (min-width: 640px) {
    .swm-wc-editorial-hero {
        padding: 3.5rem 2rem;
    }
    .swm-wc-editorial-title {
        font-size: 2.75rem;
    }
    .swm-wc-editorial-subtitle {
        font-size: 1.2rem;
    }
}

/* --- Section shell --- */

.swm-wc-editorial-section {
    margin: 2.5rem 0;
    padding: 1.5rem;
    background: var(--swm-bg-card);
    border: 1px solid var(--swm-border);
    border-radius: var(--swm-radius);
}

.swm-wc-editorial-section-title {
    font-size: 1.4rem;
    font-weight: 800;
    color: #fff !important;
    margin: 0 0 0.5rem !important;
    line-height: 1.25;
}

.swm-wc-editorial-section-desc {
    color: var(--swm-text-muted);
    font-size: 0.95rem;
    line-height: 1.55;
    margin: 0 0 1.25rem;
}

@media (min-width: 640px) {
    .swm-wc-editorial-section {
        padding: 2rem;
    }
    .swm-wc-editorial-section-title {
        font-size: 1.75rem;
    }
}

/* --- Content wrapper around the_content() --- */

.swm-wc-editorial-content {
    margin: 2.5rem 0;
    padding: 1.5rem;
    background: var(--swm-bg-card);
    border: 1px solid var(--swm-border);
    border-radius: var(--swm-radius);
    color: var(--swm-text);
}

.swm-wc-editorial-content h2,
.swm-wc-editorial-content h3,
.swm-wc-editorial-content h4 {
    color: #fff !important;
}

.swm-wc-editorial-content h2 {
    font-size: 1.5rem;
    margin: 1.5rem 0 0.75rem !important;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--swm-wc-accent, #8B1538);
}

.swm-wc-editorial-content h2:first-child {
    margin-top: 0 !important;
}

.swm-wc-editorial-content h3 {
    font-size: 1.2rem;
    margin: 1.25rem 0 0.5rem !important;
}

.swm-wc-editorial-content p {
    color: #e2e8f0;
    font-size: 1rem;
    line-height: 1.7;
    margin: 0 0 1rem;
}

.swm-wc-editorial-content a {
    color: var(--swm-gold);
    text-decoration: underline;
}

.swm-wc-editorial-content a:hover {
    color: var(--swm-gold-hover);
}

.swm-wc-editorial-content ul,
.swm-wc-editorial-content ol {
    color: #e2e8f0;
    line-height: 1.7;
    margin: 0 0 1rem 1.25rem;
}

.swm-wc-editorial-content li {
    margin-bottom: 0.4rem;
}

.swm-wc-editorial-content blockquote {
    border-left: 4px solid var(--swm-gold);
    background: rgba(228, 161, 27, 0.08);
    padding: 0.75rem 1rem;
    margin: 1rem 0;
    color: #f1f5f9;
    font-style: italic;
}

.swm-wc-editorial-content img {
    max-width: 100%;
    height: auto;
    border-radius: var(--swm-radius);
    margin: 1rem 0;
}

@media (min-width: 640px) {
    .swm-wc-editorial-content {
        padding: 2rem;
    }
    .swm-wc-editorial-content h2 {
        font-size: 1.75rem;
    }
}

/* --- Footer CTAs --- */

.swm-wc-editorial-footer {
    margin: 2.5rem 0 3rem;
    padding: 1.75rem 1.5rem;
    text-align: center;
    background: linear-gradient(135deg, var(--swm-bg-card), #0d1224);
    border: 1px solid var(--swm-border);
    border-radius: var(--swm-radius);
}

.swm-wc-editorial-footer .swm-wc-editorial-section-title {
    text-align: center;
    margin-bottom: 1.25rem !important;
}

.swm-wc-editorial-footer-ctas {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
}

/* =============================================================================
   CHEAT SHEET — Format Diagram
   ============================================================================= */

.swm-wc-format-diagram {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
}

.swm-wc-format-row {
    width: 100%;
    max-width: 560px;
    background: var(--swm-bg-dark);
    border: 1px solid var(--swm-border);
    border-left: 4px solid var(--swm-wc-accent, #8B1538);
    border-radius: var(--swm-radius);
    padding: 0.9rem 1rem;
    text-align: center;
}

.swm-wc-format-row-start {
    border-left-color: var(--swm-gold);
}

.swm-wc-format-row-final {
    border-left-color: var(--swm-gold);
    background: linear-gradient(135deg, var(--swm-bg-dark), rgba(228, 161, 27, 0.12));
}

.swm-wc-format-badge {
    display: inline-block;
    font-size: 0.95rem;
    font-weight: 800;
    color: #fff;
    letter-spacing: 0.02em;
    margin-bottom: 0.25rem;
}

.swm-wc-format-badge-final {
    color: var(--swm-gold);
    font-size: 1.1rem;
    text-transform: uppercase;
}

.swm-wc-format-caption {
    font-size: 0.85rem;
    color: var(--swm-text-muted);
    line-height: 1.4;
}

.swm-wc-format-arrow {
    font-size: 1.25rem;
    color: var(--swm-gold);
    line-height: 1;
    padding: 0.35rem 0;
    font-weight: 700;
}

/* =============================================================================
   CHEAT SHEET — Key Dates Grid
   ============================================================================= */

.swm-wc-dates-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}

@media (min-width: 640px) {
    .swm-wc-dates-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 960px) {
    .swm-wc-dates-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

.swm-wc-date-card {
    background: var(--swm-bg-dark);
    border: 1px solid var(--swm-border);
    border-top: 3px solid var(--swm-wc-accent, #8B1538);
    border-radius: var(--swm-radius);
    padding: 1rem;
    text-align: center;
}

.swm-wc-date-card-final {
    border-top-color: var(--swm-gold);
    background: linear-gradient(135deg, var(--swm-bg-dark), rgba(228, 161, 27, 0.1));
}

.swm-wc-date-day {
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--swm-gold);
    line-height: 1.1;
}

.swm-wc-date-label {
    font-size: 0.95rem;
    font-weight: 700;
    color: #fff;
    margin-top: 0.25rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.swm-wc-date-note {
    font-size: 0.8rem;
    color: var(--swm-text-muted);
    margin-top: 0.4rem;
    line-height: 1.4;
}

/* =============================================================================
   CHEAT SHEET — How to Watch
   ============================================================================= */

.swm-wc-watch-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}

@media (min-width: 720px) {
    .swm-wc-watch-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.swm-wc-watch-card {
    background: var(--swm-bg-dark);
    border: 1px solid var(--swm-border);
    border-radius: var(--swm-radius);
    padding: 1rem;
}

.swm-wc-watch-card-label {
    font-size: 0.7rem;
    color: var(--swm-gold);
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.swm-wc-watch-card-channel {
    font-size: 1.15rem;
    font-weight: 800;
    color: #fff;
    margin: 0.3rem 0 0.4rem;
}

.swm-wc-watch-card-desc {
    font-size: 0.85rem;
    color: var(--swm-text-muted);
    line-height: 1.5;
}

/* =============================================================================
   CHEAT SHEET — Lingo Grid
   ============================================================================= */

.swm-wc-lingo-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}

@media (min-width: 640px) {
    .swm-wc-lingo-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.swm-wc-lingo-card {
    background: var(--swm-bg-dark);
    border: 1px solid var(--swm-border);
    border-left: 3px solid var(--swm-gold);
    border-radius: var(--swm-radius);
    padding: 0.85rem 1rem;
}

.swm-wc-lingo-term {
    font-size: 1rem;
    font-weight: 800;
    color: var(--swm-gold);
    margin-bottom: 0.3rem;
}

.swm-wc-lingo-def {
    font-size: 0.88rem;
    color: #e2e8f0;
    line-height: 1.5;
}

/* =============================================================================
   WATCH PARTIES — Tips Grid
   ============================================================================= */

.swm-wc-watch-tips {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}

@media (min-width: 640px) {
    .swm-wc-watch-tips {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 960px) {
    .swm-wc-watch-tips {
        grid-template-columns: repeat(4, 1fr);
    }
}

.swm-wc-watch-tip {
    background: var(--swm-bg-dark);
    border: 1px solid var(--swm-border);
    border-radius: var(--swm-radius);
    padding: 1rem;
    text-align: center;
}

.swm-wc-watch-tip-icon {
    font-size: 2rem;
    line-height: 1;
    margin-bottom: 0.5rem;
}

.swm-wc-watch-tip h3 {
    font-size: 1rem;
    font-weight: 800;
    color: #fff !important;
    margin: 0 0 0.4rem !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.swm-wc-watch-tip p {
    font-size: 0.85rem;
    color: var(--swm-text-muted);
    line-height: 1.5;
    margin: 0;
}

/* --- Download card (bingo PDF placeholder) --- */

.swm-wc-download-card {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    background: var(--swm-bg-dark);
    border: 1px dashed var(--swm-gold);
    border-radius: var(--swm-radius);
    padding: 1rem 1.25rem;
    margin-top: 1rem;
}

.swm-wc-download-card-text h3 {
    font-size: 1rem;
    color: #fff !important;
    margin: 0 0 0.2rem !important;
}

.swm-wc-download-card-text p {
    font-size: 0.85rem;
    color: var(--swm-text-muted);
    margin: 0;
}

.swm-wc-download-card-badge {
    background: var(--swm-gold);
    color: #000;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    padding: 0.3rem 0.6rem;
    border-radius: 3px;
    text-transform: uppercase;
}

/* --- Placeholder + External resource cards --- */

.swm-wc-placeholder-card {
    background: var(--swm-bg-dark);
    border: 1px dashed var(--swm-border);
    border-radius: var(--swm-radius);
    padding: 1.5rem;
    text-align: center;
}

.swm-wc-placeholder-icon {
    font-size: 2.25rem;
    line-height: 1;
    margin-bottom: 0.5rem;
}

.swm-wc-placeholder-card h3 {
    font-size: 1.1rem;
    font-weight: 700;
    color: #fff !important;
    margin: 0 0 0.5rem !important;
}

.swm-wc-placeholder-card p {
    font-size: 0.9rem;
    color: var(--swm-text-muted);
    line-height: 1.55;
    margin: 0;
    max-width: 560px;
    margin-left: auto;
    margin-right: auto;
}

.swm-wc-external-resource {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
    background: var(--swm-bg-dark);
    border: 1px solid var(--swm-border);
    border-radius: var(--swm-radius);
    padding: 1.25rem;
}

@media (min-width: 720px) {
    .swm-wc-external-resource {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }
}

.swm-wc-external-resource-text h3 {
    font-size: 1.1rem;
    color: #fff !important;
    margin: 0 0 0.3rem !important;
}

.swm-wc-external-resource-text p {
    font-size: 0.88rem;
    color: var(--swm-text-muted);
    line-height: 1.5;
    margin: 0;
}

/* =============================================================================
   EATS — Nation Dish Cards
   ============================================================================= */

.swm-wc-eats-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.85rem;
}

@media (min-width: 560px) {
    .swm-wc-eats-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 900px) {
    .swm-wc-eats-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.swm-wc-eats-card {
    display: flex;
    flex-direction: column;
    background: var(--swm-bg-dark);
    border: 1px solid var(--swm-border);
    border-radius: var(--swm-radius);
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: border-color 0.2s, transform 0.15s;
}

.swm-wc-eats-card:hover {
    border-color: var(--swm-gold);
    transform: translateY(-2px);
}

.swm-wc-eats-card-image {
    width: 100%;
    padding-bottom: 60%;
    background-size: cover;
    background-position: center;
    background-color: var(--swm-bg-card);
}

.swm-wc-eats-card-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    padding-bottom: 0;
    height: 120px;
    background: linear-gradient(135deg, var(--swm-bg-card), var(--swm-wc-accent, #8B1538));
}

.swm-wc-eats-card-code {
    font-size: 1.75rem;
    font-weight: 800;
    color: var(--swm-gold);
    letter-spacing: 0.1em;
}

.swm-wc-eats-card-body {
    padding: 1rem;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.swm-wc-eats-card-nation {
    font-size: 0.72rem;
    letter-spacing: 0.12em;
    color: var(--swm-gold);
    font-weight: 700;
    text-transform: uppercase;
}

.swm-wc-eats-card-dish {
    font-size: 1.1rem;
    font-weight: 800;
    color: #fff;
    line-height: 1.25;
}

.swm-wc-eats-card-link {
    font-size: 0.8rem;
    color: var(--swm-text-muted);
    margin-top: auto;
    padding-top: 0.4rem;
}

.swm-wc-eats-card:hover .swm-wc-eats-card-link {
    color: var(--swm-gold);
}

/* Flag emoji on eats cards — mirrors nation-card flag treatment */
.swm-wc-eats-card {
    position: relative;
}

.swm-wc-eats-card[data-flag]::after {
    content: attr(data-flag);
    position: absolute;
    top: 0.5rem;
    right: 0.6rem;
    font-size: 2.1rem;
    line-height: 1;
    z-index: 3;
    text-shadow: 0 2px 12px rgba(0,0,0,0.55);
    pointer-events: none;
}

/* Flag in DFW restaurant list */
.swm-wc-dfw-flag {
    font-size: 1.2em;
    vertical-align: middle;
    margin-right: 0.25em;
}

/* =============================================================================
   WORLD CUP — SINGLE NATION PROFILE
   ============================================================================= */

.swm-wc-nation-single {
    max-width: 1100px;
    margin: 0 auto;
    padding: 1rem;
    color: var(--swm-text, #fff);
}

@media (min-width: 768px) {
    .swm-wc-nation-single {
        padding: 2rem 1.5rem;
    }
}

/* ---------- Nation Hero ---------- */

.swm-wc-nation-hero {
    position: relative;
    border-radius: 1rem;
    overflow: hidden;
    margin-bottom: 1.5rem;
    background: linear-gradient(135deg, var(--swm-bg-card, #16213E) 0%, var(--swm-wc-accent, #8B1538) 100%);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.swm-wc-nation-hero-overlay {
    padding: 2rem 1.25rem;
    background: radial-gradient(circle at 20% 10%, rgba(228, 161, 27, 0.18), transparent 60%);
}

@media (min-width: 768px) {
    .swm-wc-nation-hero-overlay {
        padding: 3rem 2.5rem;
    }
}

.swm-wc-nation-hero-content {
    max-width: 700px;
}

.swm-wc-nation-back {
    display: inline-block;
    color: var(--swm-text-muted, #94a3b8);
    text-decoration: none;
    font-size: 0.85rem;
    margin-bottom: 1.25rem;
    transition: color 0.2s;
}

.swm-wc-nation-back:hover {
    color: var(--swm-gold, #e4a11b);
}

.swm-wc-nation-flag {
    font-size: 3.5rem;
    line-height: 1;
    margin-bottom: 0.75rem;
    filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.35));
}

@media (min-width: 768px) {
    .swm-wc-nation-flag {
        font-size: 5rem;
    }
}

.swm-wc-nation-title {
    font-size: 2.25rem;
    font-weight: 900;
    line-height: 1.05;
    margin: 0.75rem 0 0.75rem;
    color: #fff;
    letter-spacing: -0.01em;
}

@media (min-width: 768px) {
    .swm-wc-nation-title {
        font-size: 3.5rem;
    }
}

.swm-wc-nation-tagline {
    font-size: 1.05rem;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.9);
    margin: 0;
    max-width: 600px;
}

@media (min-width: 768px) {
    .swm-wc-nation-tagline {
        font-size: 1.2rem;
    }
}

/* ---------- Nation Stats Bar ---------- */

.swm-wc-nation-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
    background: var(--swm-bg-card, #16213E);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 0.75rem;
    padding: 1rem;
    margin-bottom: 2rem;
}

@media (min-width: 640px) {
    .swm-wc-nation-stats {
        grid-template-columns: repeat(4, 1fr);
    }
}

.swm-wc-nation-stat {
    text-align: center;
    padding: 0.5rem;
}

.swm-wc-nation-stat-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--swm-text-muted, #94a3b8);
    margin-bottom: 0.25rem;
}

.swm-wc-nation-stat-value {
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--swm-gold, #e4a11b);
}

/* ---------- Nation Story ---------- */

.swm-wc-nation-story {
    margin: 2rem 0;
}

.swm-wc-nation-story-body {
    background: var(--swm-bg-card, #16213E);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 0.75rem;
    padding: 1.25rem;
    font-size: 1rem;
    line-height: 1.7;
    color: #e2e8f0;
}

@media (min-width: 768px) {
    .swm-wc-nation-story-body {
        padding: 2rem;
        font-size: 1.05rem;
    }
}

.swm-wc-nation-story-body p {
    margin: 0 0 1rem;
    color: #e2e8f0;
}

.swm-wc-nation-story-body p:last-child {
    margin-bottom: 0;
}

.swm-wc-nation-story-body a {
    color: var(--swm-gold, #e4a11b);
    text-decoration: underline;
}

/* ---------- Players to Know ---------- */

.swm-wc-players-section {
    margin: 2.5rem 0;
}

.swm-wc-player-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-top: 1.25rem;
}

@media (min-width: 640px) {
    .swm-wc-player-cards {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 900px) {
    .swm-wc-player-cards {
        grid-template-columns: repeat(3, 1fr);
    }
}

.swm-wc-player-card {
    background: var(--swm-bg-card, #16213E);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 0.75rem;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform 0.2s, border-color 0.2s;
}

.swm-wc-player-card:hover {
    transform: translateY(-3px);
    border-color: var(--swm-gold, #e4a11b);
}

.swm-wc-player-photo {
    aspect-ratio: 1 / 1;
    background-size: cover;
    background-position: center top;
    background-color: var(--swm-bg-hover, #1e2d4a);
}

.swm-wc-player-photo-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--swm-bg-hover, #1e2d4a), var(--swm-wc-accent, #8B1538));
}

.swm-wc-player-photo-placeholder span {
    font-size: 4rem;
    font-weight: 900;
    color: rgba(255, 255, 255, 0.75);
}

.swm-wc-player-body {
    padding: 1rem 1.1rem 1.25rem;
    flex: 1;
}

.swm-wc-player-name {
    font-size: 1.1rem;
    font-weight: 800;
    margin: 0 0 0.5rem;
    color: var(--swm-gold, #e4a11b);
}

.swm-wc-player-story {
    font-size: 0.9rem;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.8);
    margin: 0;
}

/* ---------- Food Section ---------- */

.swm-wc-food-section {
    margin: 2.5rem 0;
}

.swm-wc-food-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-top: 1.25rem;
}

@media (min-width: 768px) {
    .swm-wc-food-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.swm-wc-food-card {
    background: linear-gradient(135deg, var(--swm-bg-card, #16213E), var(--swm-bg-hover, #1e2d4a));
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-left: 4px solid var(--swm-gold, #e4a11b);
    border-radius: 0.75rem;
    padding: 1.25rem 1.5rem;
}

.swm-wc-food-card-dfw {
    border-left-color: var(--swm-wc-accent-light, #C41E3A);
}

.swm-wc-food-eyebrow {
    display: block;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--swm-gold, #e4a11b);
    margin-bottom: 0.5rem;
    font-weight: 700;
}

.swm-wc-food-card-dfw .swm-wc-food-eyebrow {
    color: var(--swm-wc-accent-light, #C41E3A);
}

.swm-wc-food-body {
    font-size: 1rem;
    line-height: 1.55;
    color: #e2e8f0;
    margin: 0;
}

/* ---------- Music Section (Spotify) ---------- */

.swm-wc-music-section {
    margin: 2.5rem 0;
}

.swm-wc-spotify-embed {
    margin-top: 1rem;
    border-radius: 0.75rem;
    overflow: hidden;
    background: var(--swm-bg-card, #16213E);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.swm-wc-spotify-embed iframe {
    display: block;
    width: 100%;
    border: 0;
}

/* ---------- Fan Culture ---------- */

.swm-wc-fan-culture {
    margin: 2.5rem 0;
}

.swm-wc-fan-quote {
    background: var(--swm-bg-card, #16213E);
    border-left: 4px solid var(--swm-gold, #e4a11b);
    border-radius: 0 0.75rem 0.75rem 0;
    padding: 1.25rem 1.5rem;
    margin: 1rem 0 0;
    font-size: 1.05rem;
    line-height: 1.6;
    color: #e2e8f0;
    font-style: italic;
}

.swm-wc-fan-quote p {
    margin: 0 0 0.75rem;
}

.swm-wc-fan-quote p:last-child {
    margin-bottom: 0;
}

/* ---------- Fun Fact ---------- */

.swm-wc-fun-fact {
    background: linear-gradient(135deg, rgba(228, 161, 27, 0.12), rgba(228, 161, 27, 0.02));
    border: 1px solid rgba(228, 161, 27, 0.4);
    border-radius: 0.75rem;
    padding: 1.25rem 1.5rem;
    margin-top: 1rem;
    position: relative;
}

.swm-wc-fun-fact::before {
    content: "\1F4A1";
    position: absolute;
    top: -0.9rem;
    left: 1.25rem;
    background: var(--swm-bg-dark, #0F172A);
    padding: 0 0.5rem;
    font-size: 1.25rem;
}

.swm-wc-fun-fact-label {
    display: block;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--swm-gold, #e4a11b);
    font-weight: 800;
    margin-bottom: 0.5rem;
}

.swm-wc-fun-fact-body {
    font-size: 1rem;
    line-height: 1.55;
    color: #fff;
    margin: 0;
}

/* ---------- Nation Preview ---------- */

.swm-wc-nation-preview-embed {
    max-width: 720px;
}

.swm-wc-nation-preview-title {
    font-size: 1.1rem;
    font-weight: 600;
    color: #fff;
    margin: 0.75rem 0 0.25rem;
}

/* ---------- Nation Reactions ---------- */

.swm-wc-nation-reactions {
    margin: 2.5rem 0;
}

/* ---------- Footer CTA ---------- */

.swm-wc-nation-footer {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: space-between;
    align-items: center;
    margin: 3rem 0 1rem;
    padding-top: 2rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

/* =============================================================================
   WORLD CUP — NATION ARCHIVE ("Know Your Nations")
   ============================================================================= */

.swm-wc-nation-archive {
    max-width: 1200px;
    margin: 0 auto;
    padding: 1rem;
    color: var(--swm-text, #fff);
}

@media (min-width: 768px) {
    .swm-wc-nation-archive {
        padding: 2rem 1.5rem;
    }
}

.swm-wc-archive-header {
    text-align: center;
    padding: 2rem 1rem 2.5rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    margin-bottom: 2rem;
}

.swm-wc-archive-header .swm-wc-nation-back {
    display: inline-block;
    margin-bottom: 1.25rem;
}

.swm-wc-archive-header .swm-wc-hero-badge {
    display: inline-block;
    font-size: 0.7rem;
    letter-spacing: 0.2em;
    color: var(--swm-gold, #e4a11b);
    font-weight: 700;
    margin-bottom: 0.75rem;
    text-transform: uppercase;
}

.swm-wc-archive-title {
    font-size: 2.25rem;
    font-weight: 900;
    line-height: 1.05;
    margin: 0.5rem 0;
    color: #fff;
}

@media (min-width: 768px) {
    .swm-wc-archive-title {
        font-size: 3rem;
    }
}

.swm-wc-archive-subtitle {
    font-size: 1rem;
    color: rgba(255, 255, 255, 0.75);
    max-width: 640px;
    margin: 0.75rem auto 0;
    line-height: 1.5;
}

@media (min-width: 768px) {
    .swm-wc-archive-subtitle {
        font-size: 1.1rem;
    }
}

/* ---------- Filter bar ---------- */

.swm-wc-archive-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: center;
    margin: 0 0 2rem;
    padding: 0.75rem;
    background: var(--swm-bg-card, #16213E);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 0.75rem;
    position: sticky;
    top: 0;
    z-index: 10;
}

.swm-wc-filter-btn {
    background: transparent;
    color: rgba(255, 255, 255, 0.75);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 999px;
    padding: 0.4rem 0.85rem;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}

.swm-wc-filter-btn:hover {
    background: rgba(228, 161, 27, 0.1);
    color: var(--swm-gold, #e4a11b);
    border-color: rgba(228, 161, 27, 0.4);
}

.swm-wc-filter-btn.swm-wc-filter-active {
    background: var(--swm-gold, #e4a11b);
    color: #000;
    border-color: var(--swm-gold, #e4a11b);
}

/* ---------- Archive groups ---------- */

.swm-wc-archive-group {
    margin: 0 0 2.5rem;
}

.swm-wc-archive-group-title {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 1.4rem;
    font-weight: 800;
    color: var(--swm-gold, #e4a11b);
    margin: 0 0 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.swm-wc-archive-group-count {
    font-size: 0.75rem;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.6);
    background: rgba(255, 255, 255, 0.06);
    border-radius: 999px;
    padding: 0.15rem 0.6rem;
    letter-spacing: 0.05em;
}

.swm-wc-archive-empty {
    text-align: center;
    padding: 3rem 1rem;
    color: rgba(255, 255, 255, 0.7);
    background: var(--swm-bg-card, #16213E);
    border-radius: 0.75rem;
    border: 1px dashed rgba(255, 255, 255, 0.15);
}

/* Mobile adjustments — nation profile + archive */

@media (max-width: 639px) {
    .swm-wc-nation-title {
        font-size: 1.9rem;
    }

    .swm-wc-archive-title {
        font-size: 1.9rem;
    }

    .swm-wc-nation-footer {
        flex-direction: column;
        align-items: stretch;
    }

    .swm-wc-nation-footer .swm-btn {
        width: 100%;
        text-align: center;
    }
}

/* =============================================================================
   WORLD CUP QUIZ — "Which Team Should You Root For?"
   ============================================================================= */

.swm-wc-quiz-page {
    min-height: 100vh;
}

.swm-wc-quiz-hero {
    min-height: 280px;
    padding: 4rem 1.25rem 2.5rem;
    text-align: center;
    background:
        radial-gradient(circle at 20% 10%, rgba(228, 161, 27, 0.18), transparent 45%),
        radial-gradient(circle at 80% 80%, rgba(139, 21, 56, 0.25), transparent 50%),
        var(--swm-bg-dark);
}

.swm-wc-quiz-hero .swm-wc-hero-title {
    font-size: clamp(1.8rem, 5.5vw, 3.5rem);
    line-height: 1.08;
    letter-spacing: -0.01em;
    margin: 0.5rem 0 1rem;
}

.swm-wc-quiz-hero .swm-wc-hero-subtitle {
    max-width: 36rem;
    margin: 0 auto;
    color: rgba(255, 255, 255, 0.75);
    font-size: clamp(1rem, 2.2vw, 1.2rem);
}

.swm-wc-quiz-wrap {
    max-width: 760px;
    margin: 0 auto;
    padding: 1.5rem 1.25rem 4rem;
}

.swm-wc-quiz {
    background: var(--swm-bg-card);
    border: 1px solid var(--swm-border);
    border-radius: 16px;
    padding: 2rem 1.5rem;
    box-shadow: var(--swm-shadow);
}

/* ----- Intro ----- */

.swm-wc-quiz-intro {
    text-align: center;
    padding: 1rem 0.5rem;
}

.swm-wc-quiz-intro-title {
    font-size: clamp(1.4rem, 3.5vw, 2rem);
    color: #fff !important;
    margin: 0 0 0.75rem;
}

.swm-wc-quiz-intro-desc {
    color: rgba(255, 255, 255, 0.8);
    font-size: 1rem;
    max-width: 32rem;
    margin: 0 auto 1.5rem;
    line-height: 1.5;
}

.swm-wc-quiz-start {
    font-size: 1.1rem;
    padding: 16px 36px;
}

/* ----- Progress ----- */

.swm-wc-quiz-progress {
    margin-bottom: 1.5rem;
}

.swm-wc-quiz-progress-text {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--swm-text-muted);
    margin-bottom: 0.5rem;
    font-weight: 600;
}

.swm-wc-quiz-progress-pct {
    color: var(--swm-gold);
    font-weight: 700;
}

.swm-wc-quiz-progress-bar {
    height: 8px;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 999px;
    overflow: hidden;
}

.swm-wc-quiz-progress-fill {
    height: 100%;
    width: 0%;
    background: linear-gradient(90deg, var(--swm-gold), var(--swm-gold-hover));
    transition: width 0.3s ease;
    border-radius: 999px;
}

/* ----- Question ----- */

.swm-wc-quiz-question {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.swm-wc-quiz-question-title {
    font-size: clamp(1.3rem, 3vw, 1.75rem);
    color: #fff !important;
    margin: 0.25rem 0 0;
    line-height: 1.25;
    font-weight: 800;
}

.swm-wc-quiz-answers {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}

@media (min-width: 640px) {
    .swm-wc-quiz-answers {
        grid-template-columns: 1fr 1fr;
    }
}

.swm-wc-quiz-answer {
    display: block;
    width: 100%;
    text-align: left;
    padding: 1rem 1.125rem;
    font-size: 1rem;
    line-height: 1.35;
    background: rgba(255, 255, 255, 0.03);
    color: #fff;
    border: 2px solid var(--swm-border);
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.18s ease;
    font-weight: 500;
}

.swm-wc-quiz-answer:hover,
.swm-wc-quiz-answer:focus-visible {
    border-color: var(--swm-gold);
    background: rgba(228, 161, 27, 0.08);
    transform: translateY(-1px);
    outline: none;
}

.swm-wc-quiz-answer.is-selected {
    border-color: var(--swm-gold);
    background: rgba(228, 161, 27, 0.15);
    box-shadow: 0 0 0 2px rgba(228, 161, 27, 0.25);
}

.swm-wc-quiz-answer-text {
    display: block;
}

.swm-wc-quiz-controls {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    margin-top: 0.5rem;
    flex-wrap: wrap;
}

.swm-wc-quiz-controls .swm-btn {
    min-width: 120px;
    flex: 0 1 auto;
}

.swm-wc-quiz-controls .swm-wc-quiz-next {
    margin-left: auto;
}

.swm-wc-quiz-next:disabled {
    opacity: 0.4;
    cursor: not-allowed;
    transform: none !important;
}

/* ----- Result ----- */

.swm-wc-quiz-result {
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.swm-wc-quiz-result-eyebrow {
    font-size: 0.85rem;
    letter-spacing: 0.2em;
    color: var(--swm-gold);
    font-weight: 700;
    text-transform: uppercase;
}

.swm-wc-quiz-result-country {
    font-size: clamp(2.2rem, 8vw, 4rem);
    line-height: 1;
    margin: 0;
    color: #fff !important;
    font-weight: 900;
    letter-spacing: -0.01em;
}

.swm-wc-quiz-result-flag {
    display: flex;
    height: 14px;
    width: 100%;
    max-width: 360px;
    margin: 0 auto;
    border-radius: 4px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
}

.swm-wc-quiz-result-flag-stripe {
    flex: 1;
    height: 100%;
}

.swm-wc-quiz-result-tagline {
    color: rgba(255, 255, 255, 0.85);
    font-size: clamp(1rem, 2.2vw, 1.15rem);
    max-width: 40rem;
    margin: 0 auto;
    font-style: italic;
}

.swm-wc-quiz-result-why {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--swm-border);
    border-radius: 12px;
    padding: 1.25rem 1.25rem 1.5rem;
    text-align: left;
}

.swm-wc-quiz-result-why h3 {
    font-size: 0.8rem;
    letter-spacing: 0.15em;
    color: var(--swm-gold);
    text-transform: uppercase;
    margin: 0 0 0.5rem;
    font-weight: 700;
}

.swm-wc-quiz-result-why p {
    color: rgba(255, 255, 255, 0.85);
    font-size: 1rem;
    line-height: 1.55;
    margin: 0;
}

/* ----- Share ----- */

.swm-wc-quiz-share {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding-top: 0.5rem;
}

.swm-wc-quiz-share-label {
    font-size: 0.85rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--swm-text-muted);
    font-weight: 600;
}

.swm-wc-quiz-share-buttons {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    justify-content: center;
}

.swm-wc-quiz-share-btn {
    min-width: 110px;
    padding: 10px 18px;
    font-size: 0.92rem;
}

/* ----- Result actions / CTA ----- */

.swm-wc-quiz-result-actions {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    justify-content: center;
    padding-top: 0.5rem;
}

.swm-wc-quiz-result-actions .swm-btn {
    flex: 0 1 auto;
    min-width: 180px;
}

.swm-wc-quiz-guide-soon {
    color: var(--swm-text-muted, #94a3b8);
    font-style: italic;
    cursor: default;
    pointer-events: none;
}

.swm-wc-quiz-result-cta {
    margin-top: 1rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--swm-border);
}

.swm-wc-quiz-result-cta p {
    color: var(--swm-text-muted);
    font-size: 0.92rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin: 0 0 0.75rem;
    font-weight: 600;
}

.swm-wc-quiz-result-cta-buttons {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    justify-content: center;
}

.swm-wc-quiz-result-cta-buttons .swm-btn {
    min-width: 200px;
}

/* ----- Mobile tweaks ----- */

@media (max-width: 640px) {
    .swm-wc-quiz {
        padding: 1.25rem 1rem;
    }

    .swm-wc-quiz-controls {
        flex-direction: column-reverse;
    }

    .swm-wc-quiz-controls .swm-btn,
    .swm-wc-quiz-controls .swm-wc-quiz-next {
        width: 100%;
        margin-left: 0;
    }

    .swm-wc-quiz-answer {
        font-size: 0.95rem;
        padding: 0.9rem 1rem;
    }

    .swm-wc-quiz-share-buttons {
        width: 100%;
    }

    .swm-wc-quiz-share-btn {
        flex: 1 1 30%;
        min-width: 0;
    }
}

/* =============================================================================
   WORLD CUP — VISUAL REFRESH (2026-04-16)
   PR 1: Typography. PR 2: Hero differentiation. PR 3: Promo variants.
   PR 4: Nation card identity. PR 5: Bracket horizontal flow.
   Appended at end so cascade wins over earlier WC styles.
   ============================================================================= */

/* ---------- PR 1 — Typography ---------- */

.swm-worldcup,
.swm-wc-bracket-page,
.swm-wc-quiz,
.swm-wc-nation-single,
.swm-wc-city-single,
.swm-wc-nation-archive {
    font-family: 'Manrope', system-ui, -apple-system, sans-serif;
    font-feature-settings: 'ss01', 'cv11';
}

/* Display: heroes, sections, promos — Big Shoulders condensed bold */
.swm-wc-hero-title,
.swm-wc-section-title,
.swm-wc-promo-content h2,
.swm-wc-bracket-title,
.swm-wc-bracket-section-title,
.swm-wc-nation-title,
.swm-wc-city-hero-title,
.swm-wc-dfw-text h2,
.swm-wc-quiz-title,
.swm-wc-lineup-title,
.swm-wc-bracket-ko-round-title,
.swm-wc-archive-title,
.swm-wc-archive-group-title {
    font-family: 'Big Shoulders Display', 'Impact', system-ui, sans-serif;
    font-weight: 800;
    letter-spacing: 0.005em;
    text-transform: uppercase;
}

.swm-wc-hero-title { font-weight: 900; letter-spacing: -0.005em; line-height: 0.88; }
.swm-wc-bracket-title { font-weight: 900; letter-spacing: 0.01em; }
.swm-wc-section-title { font-size: clamp(1.65rem, 3vw, 2.25rem); }

/* Mono: numerics, timestamps, codes, scores, rank numbers */
.swm-wc-countdown-number,
.swm-wc-timestamp,
.swm-wc-card-time,
.swm-wc-chat-msg-time,
.swm-wc-dfw-stat-number,
.swm-wc-city-stat-number,
.swm-wc-nation-card-code,
.swm-wc-nation-stat-value {
    font-family: 'JetBrains Mono', ui-monospace, 'SFMono-Regular', monospace;
    font-feature-settings: 'tnum', 'zero';
}

/* Eyebrow / micro-label: Big Shoulders modest weight, wide tracking */
.swm-wc-hero-badge,
.swm-wc-dfw-eyebrow,
.swm-wc-food-eyebrow,
.swm-wc-archive-group-count {
    font-family: 'Big Shoulders Display', system-ui, sans-serif;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}

/* ---------- PR 2 — Hero differentiation ---------- */

/* Match Hub hero: urgent, dense, stadium-stripe, asymmetric left-leaning */
.swm-worldcup:not(.swm-wc-experience) .swm-wc-hero {
    background:
        repeating-linear-gradient(
            115deg,
            rgba(255,255,255,0.025) 0 8px,
            transparent 8px 60px
        ),
        radial-gradient(ellipse at 20% 25%, rgba(196,30,58,0.55), transparent 55%),
        linear-gradient(170deg, #0a0a14 0%, #1a0610 60%, #0a0a14 100%);
    min-height: 78vh;
}

.swm-worldcup:not(.swm-wc-experience) .swm-wc-hero::before {
    background:
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='480' viewBox='0 0 480 480'%3E%3Cpath d='M240 60 L260 200 L420 200 L290 280 L340 440 L240 350 L140 440 L190 280 L60 200 L220 200 Z' fill='none' stroke='rgba(255,215,0,0.06)' stroke-width='1.5'/%3E%3C/svg%3E") 80% 30% / 720px no-repeat;
}

.swm-worldcup:not(.swm-wc-experience) .swm-wc-hero-overlay {
    text-align: left;
    max-width: 1100px;
    width: 100%;
    padding: 5rem 2rem 4rem;
}

.swm-worldcup:not(.swm-wc-experience) .swm-wc-hero-content {
    margin: 0;
    max-width: 760px;
}

.swm-worldcup:not(.swm-wc-experience) .swm-wc-hero-title {
    font-size: clamp(3rem, 11vw, 7.5rem);
}

.swm-worldcup:not(.swm-wc-experience) .swm-wc-hero-subtitle {
    font-size: 1.15rem;
    border-left: 3px solid #FFD700;
    padding-left: 1rem;
    margin-top: 1rem;
    max-width: 520px;
}

.swm-worldcup:not(.swm-wc-experience) .swm-wc-hero-dates {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 0.78rem;
    letter-spacing: 0.1em;
    margin-top: 1.5rem;
    color: rgba(255,255,255,0.55);
}

.swm-worldcup:not(.swm-wc-experience) .swm-wc-hero-ctas {
    justify-content: flex-start;
    margin-top: 2rem;
}

.swm-worldcup:not(.swm-wc-experience) .swm-wc-countdown {
    justify-content: flex-start;
    margin-top: 1.5rem;
    margin-bottom: 0;
}

.swm-worldcup:not(.swm-wc-experience) .swm-wc-countdown-number {
    background: rgba(0,0,0,0.45);
    border: 1px solid rgba(255,215,0,0.28);
    color: #FFD700;
    border-radius: 0.25rem;
    font-size: 2.25rem;
}

.swm-worldcup:not(.swm-wc-experience) .swm-wc-countdown-label {
    color: rgba(255,255,255,0.5);
}

@media (max-width: 720px) {
    .swm-worldcup:not(.swm-wc-experience) .swm-wc-hero-overlay {
        padding: 4rem 1.25rem 2.5rem;
        text-align: center;
    }
    .swm-worldcup:not(.swm-wc-experience) .swm-wc-countdown,
    .swm-worldcup:not(.swm-wc-experience) .swm-wc-hero-ctas {
        justify-content: center;
    }
    .swm-worldcup:not(.swm-wc-experience) .swm-wc-hero-subtitle {
        margin-left: auto;
        margin-right: auto;
    }
}

/* Beyond the Pitch hero: editorial, full-bleed, calmer, oversized title */
.swm-wc-experience .swm-wc-exp-hero {
    background:
        radial-gradient(ellipse at top right, rgba(27,94,32,0.45), transparent 55%),
        radial-gradient(ellipse at bottom left, rgba(139,21,56,0.55), transparent 60%),
        linear-gradient(180deg, #0e1d14 0%, #1a0a1a 100%);
    min-height: 88vh;
    align-items: flex-end;
}

.swm-wc-experience .swm-wc-hero::before {
    background:
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='800' height='800' viewBox='0 0 800 800'%3E%3Ccircle cx='400' cy='400' r='280' fill='none' stroke='rgba(255,255,255,0.05)' stroke-width='1'/%3E%3Ccircle cx='400' cy='400' r='200' fill='none' stroke='rgba(255,255,255,0.05)' stroke-width='1'/%3E%3Ccircle cx='400' cy='400' r='120' fill='none' stroke='rgba(255,255,255,0.05)' stroke-width='1'/%3E%3Cline x1='0' y1='400' x2='800' y2='400' stroke='rgba(255,255,255,0.04)'/%3E%3Cline x1='400' y1='0' x2='400' y2='800' stroke='rgba(255,255,255,0.04)'/%3E%3C/svg%3E") center/contain no-repeat;
}

.swm-wc-experience .swm-wc-hero-overlay {
    padding: 6rem 2rem 4rem;
    text-align: left;
    max-width: 1100px;
    width: 100%;
}

.swm-wc-experience .swm-wc-hero-content {
    margin: 0;
    max-width: 900px;
}

.swm-wc-experience .swm-wc-hero-title {
    font-size: clamp(3.5rem, 14vw, 9rem) !important;
    line-height: 0.85 !important;
    letter-spacing: -0.015em !important;
    text-shadow: 0 6px 50px rgba(0,0,0,0.6);
}

.swm-wc-experience .swm-wc-hero-subtitle {
    font-family: 'Big Shoulders Display', system-ui, sans-serif;
    font-size: 1.4rem;
    font-weight: 500;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #FFD700;
    margin-top: 1.5rem;
}

.swm-wc-experience .swm-wc-hero-dates {
    font-style: italic;
    font-size: 1rem;
    line-height: 1.5;
    max-width: 480px;
    color: rgba(255,255,255,0.78);
    margin-top: 1rem;
}

.swm-wc-experience .swm-wc-hero-ctas {
    justify-content: flex-start;
    margin-top: 2.5rem;
}

@media (max-width: 720px) {
    .swm-wc-experience .swm-wc-hero-overlay {
        text-align: center;
        padding: 5rem 1.25rem 3rem;
    }
    .swm-wc-experience .swm-wc-hero-ctas {
        justify-content: center;
    }
}

/* ---------- PR 3 — Promo variants ---------- */

.swm-wc-promo-card {
    position: relative;
    overflow: hidden;
}

/* Newbie / Beyond-the-Pitch promo: green→burgundy split, atmospheric ring */
.swm-wc-promo-newbie {
    background: linear-gradient(95deg, #1B5E20 0%, #16213E 55%, #8B1538 100%);
    border: 1px solid rgba(255,215,0,0.18);
}

.swm-wc-promo-newbie::after {
    content: '';
    position: absolute;
    right: -60px;
    top: -40px;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    border: 18px solid rgba(255,255,255,0.04);
    pointer-events: none;
}

.swm-wc-promo-newbie .swm-wc-promo-icon {
    font-size: 0;
    width: 88px;
    height: 88px;
    background: radial-gradient(circle at 30% 30%, #1B5E20, #0a1f10 60%);
    border-radius: 50%;
    border: 3px solid #FFD700;
    box-shadow: 0 0 40px rgba(255,215,0,0.25);
    flex-shrink: 0;
}

/* Bracket promo: layered card-stack illustration */
.swm-wc-bracket-promo .swm-wc-promo-card {
    background: linear-gradient(135deg, #16213E 0%, #2a0a18 100%);
    border-left: 4px solid #C41E3A;
}

.swm-wc-bracket-promo .swm-wc-promo-icon {
    font-size: 0;
    width: 140px;
    height: 100px;
    background:
        linear-gradient(180deg, transparent 49%, rgba(255,215,0,0.45) 49%, rgba(255,215,0,0.45) 51%, transparent 51%),
        linear-gradient(0deg, transparent 49%, rgba(196,30,58,0.45) 49%, rgba(196,30,58,0.45) 51%, transparent 51%);
    background-size: 100% 100%;
    border: 2px solid rgba(255,215,0,0.55);
    border-radius: 4px;
    position: relative;
    flex-shrink: 0;
}

.swm-wc-bracket-promo .swm-wc-promo-icon::before,
.swm-wc-bracket-promo .swm-wc-promo-icon::after {
    content: '';
    position: absolute;
    background: rgba(255,255,255,0.6);
    height: 8px;
    border-radius: 2px;
}

.swm-wc-bracket-promo .swm-wc-promo-icon::before { left: 8px; top: 18px; width: 30px; }
.swm-wc-bracket-promo .swm-wc-promo-icon::after { left: 8px; bottom: 18px; width: 30px; background: rgba(255,215,0,0.75); }

/* Lineup promo: mini SVG-pitch icon (radial dots = 4-2-3-1) */
.swm-wc-promo-lineup {
    background: linear-gradient(135deg, #16213E 0%, #1B5E20 100%);
}

.swm-wc-promo-lineup .swm-wc-promo-icon {
    font-size: 0;
    width: 110px;
    height: 80px;
    background: rgba(0,0,0,0.35);
    border: 2px solid rgba(255,255,255,0.6);
    position: relative;
    flex-shrink: 0;
}

.swm-wc-promo-lineup .swm-wc-promo-icon::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 50% 50%, rgba(255,255,255,0.6) 0 6px, transparent 7px),
        radial-gradient(circle at 30% 30%, rgba(255,255,255,0.4) 0 3px, transparent 4px),
        radial-gradient(circle at 70% 30%, rgba(255,255,255,0.4) 0 3px, transparent 4px),
        radial-gradient(circle at 50% 78%, rgba(255,215,0,0.75) 0 4px, transparent 5px),
        radial-gradient(circle at 25% 70%, rgba(255,255,255,0.4) 0 3px, transparent 4px),
        radial-gradient(circle at 75% 70%, rgba(255,255,255,0.4) 0 3px, transparent 4px);
    border-bottom: 1px solid rgba(255,255,255,0.4);
}

/* SSC show promo: callout card with artwork */
.swm-wc-promo-ssc {
    background: linear-gradient(135deg, #0a0a1a 0%, #1a3a2a 100%);
    border-top: 3px solid var(--swm-gold);
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

.swm-wc-promo-ssc-art {
    flex-shrink: 0;
    width: 100px;
    height: 100px;
    border-radius: var(--swm-radius);
    overflow: hidden;
}

.swm-wc-promo-ssc-art img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.swm-wc-promo-ssc-links {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-top: 0.75rem;
}

@media (max-width: 640px) {
    .swm-wc-promo-ssc {
        flex-direction: column;
        text-align: center;
    }

    .swm-wc-promo-ssc-art {
        width: 80px;
        height: 80px;
    }

    .swm-wc-promo-ssc-links {
        justify-content: center;
    }
}

/* Tyler-picks promo: hot-take orange/red badge frame */
.swm-wc-tyler-picks .swm-wc-promo-card {
    background: linear-gradient(135deg, #2a0a18 0%, #4a0e22 100%);
    border-left: 4px solid #FFD700;
}

.swm-wc-tyler-picks .swm-wc-promo-icon {
    font-size: 4.5rem;
    filter: drop-shadow(0 0 12px rgba(255,140,40,0.5));
}

/* ---------- PR 4 — Nation card identity ---------- */

.swm-wc-nation-card {
    position: relative;
}

/* Flag emoji at top-right — populated from data-flag attribute */
.swm-wc-nation-card[data-flag]::after {
    content: attr(data-flag);
    position: absolute;
    top: 0.5rem;
    right: 0.6rem;
    font-size: 2.1rem;
    line-height: 1;
    z-index: 3;
    text-shadow: 0 2px 12px rgba(0,0,0,0.55);
    pointer-events: none;
}

/* Bottom accent strip — gold→burgundy, slides in on hover */
.swm-wc-nation-card::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--swm-wc-accent-light, #C41E3A), var(--swm-gold, #FFD700));
    z-index: 2;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease;
}

.swm-wc-nation-card:hover::before {
    transform: scaleX(1);
}

/* Group badge: stadium-letter treatment */
.swm-wc-nation-card .swm-wc-badge-group {
    font-family: 'Big Shoulders Display', system-ui, sans-serif;
    font-size: 0.78rem;
    letter-spacing: 0.15em;
    padding: 0.25rem 0.5rem;
    border-radius: 2px;
}

.swm-wc-nation-card-tagline {
    font-style: italic;
    font-size: 0.9rem;
    color: rgba(255,255,255,0.78);
}

.swm-wc-nation-card-code {
    font-family: 'JetBrains Mono', monospace;
    font-size: 3.5rem;
    letter-spacing: 0;
    color: rgba(255,255,255,0.85);
}

/* ---------- PR 5 — Bracket horizontal flow with connectors ---------- */

@media (min-width: 1100px) {
    /* Knockout rounds become a 6-column horizontal grid */
    #swm-bracket-knockout {
        display: grid;
        grid-template-columns: repeat(5, minmax(220px, 1fr)) 200px;
        gap: 0;
        align-items: stretch;
        padding-bottom: 2rem;
    }

    #swm-bracket-knockout > .swm-wc-bracket-section-title,
    #swm-bracket-knockout > .swm-wc-bracket-section-desc {
        grid-column: 1 / -1;
    }

    .swm-wc-bracket-ko-round {
        margin-bottom: 0;
        display: flex;
        flex-direction: column;
        position: relative;
        padding: 0 0.5rem;
    }

    .swm-wc-bracket-ko-round-title {
        font-size: 0.82rem;
        margin: 0 0 1rem;
        padding-bottom: 0.5rem;
        border-bottom: 1px solid rgba(255,215,0,0.25);
    }

    .swm-wc-bracket-ko-matches {
        display: flex !important;
        flex-direction: column;
        flex: 1;
        gap: 0;
        justify-content: space-around;
        grid-template-columns: none !important;
    }

    .swm-wc-bracket-ko-match {
        flex: 1;
        display: flex;
        flex-direction: column;
        justify-content: center;
        margin: 0.4rem 0;
        position: relative;
    }

    /* Horizontal connector stub from each match's right edge */
    .swm-wc-bracket-ko-round:not(#swm-bracket-final) .swm-wc-bracket-ko-match::after {
        content: '';
        position: absolute;
        right: -0.5rem;
        top: 50%;
        width: 0.5rem;
        height: 1px;
        background: rgba(255,215,0,0.4);
    }

    /* Vertical connector — joins pairs of matches into the next round */
    .swm-wc-bracket-ko-round:not(#swm-bracket-final) .swm-wc-bracket-ko-match:nth-child(odd)::before {
        content: '';
        position: absolute;
        right: -0.5rem;
        top: 50%;
        width: 1px;
        height: calc(100% + 0.8rem);
        background: rgba(255,215,0,0.4);
    }

    .swm-wc-bracket-champion {
        margin-bottom: 0;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 0 0.5rem;
        border-left: 1px dashed rgba(255,215,0,0.25);
    }
}

.swm-wc-bracket-ko-match-header {
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.7rem;
}

.swm-wc-bracket-ko-team.swm-wc-bracket-ko-selected,
.swm-wc-bracket-ko-team.swm-wc-bracket-selected {
    background: linear-gradient(90deg, rgba(255,215,0,0.18), transparent);
    border-left: 3px solid #FFD700;
}

.swm-wc-bracket-champion-display {
    background: radial-gradient(circle at 50% 30%, rgba(255,215,0,0.18), transparent 65%);
    border: 1px solid rgba(255,215,0,0.35);
    border-radius: 1rem;
    padding: 2rem 1.5rem;
    text-align: center;
    min-height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.swm-wc-bracket-champion-name {
    font-family: 'Big Shoulders Display', system-ui, sans-serif;
    font-weight: 900;
    font-size: clamp(1.5rem, 3vw, 2.4rem);
    color: #FFD700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    text-shadow: 0 0 30px rgba(255,215,0,0.4);
}

.swm-wc-bracket-champion-placeholder {
    color: rgba(255,255,255,0.4);
    font-style: italic;
}

/* Round selector: pill→tab feel that matches new typography */
.swm-wc-bracket-round-btn {
    font-family: 'Big Shoulders Display', system-ui, sans-serif;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 0.55rem 1.1rem;
}

/* End World Cup Visual Refresh */

/* =============================================================================
   Mobile touch-target + layout fixes (audit #16-18)
   ============================================================================= */

/* Lineup builder: enlarge marker touch-targets on phones so tap-to-assign
   isn't a frustration exercise. The SVG viewBox doesn't change, so positions
   stay correct — only the visual hit area grows. */
@media (max-width: 640px) {
    .swm-wc-lineup-marker {
        transform-origin: center;
        transform: scale(1.35);
    }

    .swm-wc-lineup-marker-label {
        font-size: 14px;
    }
}

/* Quiz answers: slightly larger touch area + font on small phones.
   The grid already falls to 1-column below 640px; this just makes the
   individual buttons roomier for thumbs. */
@media (max-width: 480px) {
    .swm-wc-quiz-answer {
        font-size: 0.9rem;
        padding: 1rem 1rem;
        min-height: 56px;
    }
}

/* Bracket: ensure group cards have breathing room on landscape phones.
   The 1-column layout is fine, but the team rows can feel cramped when
   the device is rotated. */
@media (max-width: 640px) and (orientation: landscape) {
    .swm-wc-bracket-groups-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* =============================================================================
   World Cup Eats — DFW Restaurants by Nation list (todo 015)
   ============================================================================= */
.swm-wc-dfw-restaurants {
    list-style: none;
    margin: 1rem 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 0.5rem 1.5rem;
}

.swm-wc-dfw-restaurants li {
    margin: 0;
    padding: 0.65rem 0;
    border-bottom: 1px solid rgba(255,255,255,0.08);
}

.swm-wc-dfw-restaurants a {
    color: var(--swm-text, #fff);
    text-decoration: none;
    transition: color 0.15s ease;
}

.swm-wc-dfw-restaurants a:hover {
    color: var(--swm-gold, #e4a11b);
}

.swm-wc-dfw-restaurants strong {
    color: var(--swm-gold, #e4a11b);
    margin-right: 0.4em;
}

/* =============================================================================
   AI Match Preview — related reactions block (BWK-381)
   Appended to swm_wc_preview content via the_content filter.
   ============================================================================= */
.swm-wc-preview-related {
    margin: 3rem 0 1rem;
    padding: 2rem 1.5rem;
    background: var(--swm-bg-card, #16213E);
    border-radius: 12px;
    border: 1px solid var(--swm-border, #334155);
}

.swm-wc-preview-related h2 {
    font-family: 'Big Shoulders Display', system-ui, sans-serif;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin: 0 0 1.25rem;
    color: var(--swm-gold, #e4a11b);
    font-size: 1.5rem;
}

.swm-wc-preview-related-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1rem;
}

.swm-wc-preview-related-card {
    display: block;
    text-decoration: none;
    color: inherit;
    border-radius: 8px;
    overflow: hidden;
    background: rgba(255,255,255,0.03);
    transition: transform 0.15s ease, background 0.15s ease;
}

.swm-wc-preview-related-card:hover {
    transform: translateY(-2px);
    background: rgba(255,255,255,0.06);
    color: inherit;
}

.swm-wc-preview-related-thumb {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.swm-wc-preview-related-title {
    display: block;
    padding: 0.75rem 0.85rem;
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.3;
    color: #fff;
}

/* =========================================================
   FRESHNESS BADGE
   Shared component for verified-date displays. Used on the
   World Cup transportation guide and reusable elsewhere.
   ========================================================= */

.swm-freshness-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4em;
    padding: 0.25em 0.7em;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 500;
    line-height: 1.3;
}

.swm-freshness-badge-dot {
    width: 0.55em;
    height: 0.55em;
    border-radius: 50%;
    background: currentColor;
    display: inline-block;
}

.swm-freshness-badge--green {
    background: rgba(46, 160, 67, 0.12);
    color: #2ea043;
}

.swm-freshness-badge--amber {
    background: rgba(212, 153, 0, 0.14);
    color: #b07a00;
}

.swm-freshness-badge--red {
    background: rgba(220, 53, 69, 0.14);
    color: #c0392b;
}

.swm-freshness-badge--unverified {
    background: rgba(120, 120, 120, 0.14);
    color: #666;
}

/* =========================================================
   WORLD CUP TRANSPORTATION GUIDE
   ========================================================= */

.swm-wc-getting-there-page .swm-wc-transit-modes a {
    text-decoration: none;
    color: inherit;
}

.swm-wc-transit-alerts-section {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.swm-wc-transit-alert {
    background: rgba(220, 53, 69, 0.08);
    border: 1px solid rgba(220, 53, 69, 0.35);
    border-radius: 8px;
    padding: 1rem 1.25rem;
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.swm-wc-transit-alert-body {
    flex: 1;
    min-width: 0;
}

.swm-wc-transit-alert-title {
    margin: 0 0 0.4rem;
    font-size: 1.05rem;
    color: #c0392b;
}

.swm-wc-transit-alert-content {
    margin: 0 0 0.5rem;
    line-height: 1.5;
}

.swm-wc-transit-alert-content p {
    margin: 0 0 0.5rem;
}

.swm-wc-transit-alert-content p:last-child {
    margin-bottom: 0;
}

.swm-wc-transit-alert-meta {
    font-size: 0.8rem;
    opacity: 0.85;
}

.swm-wc-transit-alert-dismiss {
    background: transparent;
    border: none;
    color: inherit;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    padding: 0 0.25rem;
    opacity: 0.5;
    transition: opacity 0.15s ease;
}

.swm-wc-transit-alert-dismiss:hover {
    opacity: 1;
}

.swm-wc-transit-subsection-title {
    margin: 1.5rem 0 0.75rem;
    font-size: 1.1rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    opacity: 0.7;
}

.swm-wc-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1rem;
}

.swm-wc-transit-card {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.swm-wc-transit-card-media {
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

.swm-wc-transit-card-thumb {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.swm-wc-transit-card-body {
    padding: 1rem 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    flex: 1;
}

.swm-wc-transit-card-title {
    margin: 0;
    font-size: 1.05rem;
    line-height: 1.3;
}

.swm-wc-transit-card-address {
    margin: 0;
    font-size: 0.85rem;
    opacity: 0.75;
}

.swm-wc-transit-card-excerpt,
.swm-wc-transit-card-content {
    margin: 0;
    font-size: 0.92rem;
    line-height: 1.5;
}

.swm-wc-transit-card-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-top: auto;
    padding-top: 0.5rem;
}

.swm-wc-transit-card-source {
    font-size: 0.85rem;
    text-decoration: none;
    color: var(--swm-show-accent, #e4a11b);
}

.swm-wc-transit-card-source:hover {
    text-decoration: underline;
}

.swm-wc-transit-card--link {
    text-decoration: none;
    color: inherit;
    transition: background 0.15s ease, transform 0.15s ease;
}

.swm-wc-transit-card--link:hover {
    background: rgba(255, 255, 255, 0.06);
    transform: translateY(-2px);
}

.swm-wc-placeholder-card {
    grid-column: 1 / -1;
    padding: 1.25rem;
    background: rgba(255, 255, 255, 0.02);
    border: 1px dashed rgba(255, 255, 255, 0.12);
    border-radius: 8px;
    text-align: center;
    opacity: 0.7;
}

.swm-wc-placeholder-card p {
    margin: 0;
    font-size: 0.95rem;
}

/* Phase 2 live-arrivals widget placeholder styling */
.swm-wc-transit-live-widget {
    margin-top: 1.5rem;
    padding: 1rem 1.25rem;
    background: rgba(0, 184, 148, 0.06);
    border: 1px solid rgba(0, 184, 148, 0.25);
    border-radius: 8px;
}

.swm-wc-transit-live-loading {
    margin: 0;
    font-size: 0.9rem;
    opacity: 0.75;
}

@media (max-width: 600px) {
    .swm-wc-transit-alert {
        flex-direction: column;
    }
}

/* DFW city guide — Getting There summary card */
.swm-wc-city-section--getting-there .swm-wc-city-alerts {
    margin: 0.75rem 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.swm-wc-city-alert {
    padding: 0.4rem 0.75rem;
    background: rgba(220, 53, 69, 0.08);
    border-left: 3px solid rgba(220, 53, 69, 0.6);
    border-radius: 4px;
    font-size: 0.9rem;
}

.swm-wc-city-section-quicklinks {
    list-style: none;
    padding: 0;
    margin: 0.75rem 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
}

.swm-wc-city-section-quicklinks li {
    margin: 0;
}

.swm-wc-city-cta {
    margin-top: 0.75rem;
    display: inline-block;
}

/* =========================================================
   LIVE ARRIVALS WIDGET (Phase 2)
   ========================================================= */

.swm-wc-transit-live-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 0.75rem;
}

.swm-wc-transit-live-card {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 6px;
    padding: 0.75rem 1rem;
}

.swm-wc-transit-live-card h4 {
    margin: 0 0 0.5rem;
    font-size: 0.95rem;
}

.swm-wc-transit-live-card--loading {
    opacity: 0.5;
}

.swm-wc-transit-live-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35em;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.4rem;
}

.swm-wc-transit-live-badge .dot {
    width: 0.5em;
    height: 0.5em;
    border-radius: 50%;
    background: currentColor;
}

.swm-wc-transit-live-badge--live {
    color: #2ea043;
}

.swm-wc-transit-live-badge--live .dot {
    animation: swmPulse 1.5s ease-in-out infinite;
}

@keyframes swmPulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%      { opacity: 0.4; transform: scale(1.3); }
}

@media (prefers-reduced-motion: reduce) {
    .swm-wc-transit-live-badge--live .dot {
        animation: none;
    }
}

.swm-wc-transit-live-badge--delayed { color: #b07a00; }
.swm-wc-transit-live-badge--unavailable { color: #c0392b; }

.swm-wc-transit-live-list {
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: 0.85rem;
}

.swm-wc-transit-live-list li {
    display: flex;
    gap: 0.5rem;
    padding: 0.25rem 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.swm-wc-transit-live-list li:last-child {
    border-bottom: none;
}

.swm-wc-transit-live-list .route {
    flex: 0 0 auto;
    font-weight: 600;
    min-width: 2.5em;
}

.swm-wc-transit-live-list .headsign {
    flex: 1;
    opacity: 0.75;
}

.swm-wc-transit-live-list .time {
    flex: 0 0 auto;
    font-variant-numeric: tabular-nums;
}

.swm-wc-transit-live-fallback {
    margin: 0;
    font-size: 0.82rem;
    opacity: 0.8;
}

/* DFW city guide — clickable section cards */
a.swm-wc-city-section--link {
    display: block;
    text-decoration: none;
    color: inherit;
    transition: background 0.15s ease, transform 0.15s ease, border-color 0.15s ease;
}

a.swm-wc-city-section--link:hover {
    background: rgba(255, 255, 255, 0.05);
    transform: translateY(-2px);
    color: inherit;
}

.swm-wc-city-section-cta {
    display: block;
    margin-top: 0.75rem;
    color: var(--swm-show-accent, #e4a11b);
    font-size: 0.9rem;
    font-weight: 600;
}

/* =========================================================
   CONTACT US PAGE
   ========================================================= */

.swm-contact-page {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 1.5rem 4rem;
}

.swm-contact-hero {
    padding: 3.5rem 0 2rem;
    text-align: center;
}

.swm-contact-title {
    margin: 0 0 0.5rem;
    font-size: 2.4rem;
    line-height: 1.15;
}

.swm-contact-tagline {
    margin: 0;
    font-size: 1.05rem;
    opacity: 0.8;
}

.swm-contact-section {
    margin: 0 0 2.5rem;
}

.swm-contact-section-inner {
    max-width: 900px;
    margin: 0 auto;
}

.swm-contact-section-title {
    margin: 0 0 0.75rem;
    font-size: 1.4rem;
}

.swm-contact-section-desc {
    margin: 0.25rem 0 0;
    opacity: 0.75;
    line-height: 1.5;
}

.swm-contact-email-link {
    font-size: 1.2rem;
    font-weight: 600;
    color: var(--swm-show-accent, #e4a11b);
    text-decoration: none;
}

.swm-contact-email-link:hover {
    text-decoration: underline;
}

/* AMA callout */
.swm-contact-ama-card {
    background: rgba(228, 161, 27, 0.08);
    border: 1px solid rgba(228, 161, 27, 0.4);
    border-radius: 12px;
    padding: 1.75rem 2rem;
    text-align: center;
}

.swm-contact-ama-eyebrow {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    color: var(--swm-show-accent, #e4a11b);
    margin-bottom: 0.4rem;
}

.swm-contact-ama-phone {
    font-size: 2rem;
    font-weight: 700;
    margin: 0.4rem 0;
    line-height: 1.1;
}

.swm-contact-ama-phone a {
    color: inherit;
    text-decoration: none;
}

.swm-contact-ama-phone a:hover {
    text-decoration: underline;
}

/* Per-show contact grid */
.swm-contact-show-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1rem;
    margin-top: 1rem;
}

.swm-contact-show-card {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    padding: 0.9rem 1rem;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    text-decoration: none;
    color: inherit;
    transition: background 0.15s ease, transform 0.15s ease;
}

.swm-contact-show-card:hover {
    background: rgba(255, 255, 255, 0.06);
    transform: translateY(-2px);
    color: inherit;
}

.swm-contact-show-thumb {
    flex: 0 0 auto;
    width: 56px;
    height: 56px;
    border-radius: 6px;
    object-fit: cover;
}

.swm-contact-show-body {
    flex: 1;
    min-width: 0;
}

.swm-contact-show-title {
    margin: 0 0 0.15rem;
    font-size: 1rem;
    line-height: 1.2;
}

.swm-contact-show-email {
    margin: 0;
    font-size: 0.85rem;
    opacity: 0.75;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.swm-contact-empty {
    padding: 1.25rem;
    background: rgba(255, 255, 255, 0.02);
    border: 1px dashed rgba(255, 255, 255, 0.12);
    border-radius: 8px;
    text-align: center;
    opacity: 0.7;
    margin: 1rem 0 0;
}

@media (max-width: 600px) {
    .swm-contact-hero {
        padding: 2rem 0 1.5rem;
    }
    .swm-contact-title {
        font-size: 1.9rem;
    }
    .swm-contact-ama-phone {
        font-size: 1.6rem;
    }
}

/* =========================================================
   LIVE RECORDING STATES
   See docs/plans/2026-05-18-001-feat-live-recording-wp-coordination-plan.md
   ========================================================= */

.swm-episode-live {
    max-width: 960px;
    margin: 0 auto;
    padding: 2rem 1.5rem 3rem;
}

.swm-episode-live .swm-episode-header {
    margin-bottom: 1.5rem;
}

/* --- LIVE NOW badge ---------------------------------------- */
.swm-live-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.45em;
    margin-left: 0.6em;
    vertical-align: middle;
    padding: 0.25em 0.7em;
    background: #c0392b;
    color: #fff;
    font-size: 0.7em;
    font-weight: 700;
    letter-spacing: 0.08em;
    border-radius: 999px;
    text-transform: uppercase;
}

.swm-live-badge-dot {
    width: 0.55em;
    height: 0.55em;
    border-radius: 50%;
    background: #fff;
    animation: swmLivePulse 1.5s ease-in-out infinite;
}

@keyframes swmLivePulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%      { opacity: 0.45; transform: scale(1.35); }
}

@media (prefers-reduced-motion: reduce) {
    .swm-live-badge-dot {
        animation: none;
    }
}

/* --- Scheduled state --------------------------------------- */
.swm-episode-live-hero {
    text-align: center;
    padding: 3rem 1.5rem;
    background: rgba(108, 92, 231, 0.06);
    border: 1px solid rgba(108, 92, 231, 0.25);
    border-radius: 12px;
    margin: 1.5rem 0;
}

.swm-episode-live-eyebrow {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #6c5ce7;
    margin-bottom: 0.5rem;
}

.swm-episode-live-when {
    margin: 0 0 1rem;
    font-size: 1.15rem;
    line-height: 1.45;
}

.swm-episode-live-when-static {
    display: block;
    margin-top: 0.25rem;
    font-weight: 600;
    font-size: 1.3rem;
}

.swm-episode-live-countdown {
    margin: 1.25rem 0 0;
    font-size: 0.85rem;
    color: #555;
}

.swm-countdown-label {
    display: block;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 0.25rem;
}

.swm-countdown-digits {
    display: inline-block;
    font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
    font-variant-numeric: tabular-nums;
    font-size: 2rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    color: #1f2937;
}

.swm-episode-live-subtitle {
    margin: 0.4rem 0 0;
    font-size: 0.9rem;
    color: #555;
}

/* --- Live embed -------------------------------------------- */
.swm-episode-live-embed {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    margin: 1.5rem 0;
    background: #000;
    border-radius: 8px;
    overflow: hidden;
}

.swm-episode-live-embed iframe {
    position: absolute;
    top: 0; left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.swm-episode-live-cta {
    text-align: center;
    margin: 1rem 0 1.5rem;
}

/* --- Ended-pending hero image ------------------------------ */
.swm-episode-live-hero-image {
    width: 100%;
    aspect-ratio: 16 / 9;
    background-size: cover;
    background-position: center;
    background-color: #000;
    border-radius: 8px;
    margin: 1.5rem 0;
}

/* --- Banners (replay-coming, cancelled) -------------------- */
.swm-episode-live-banner {
    padding: 1.25rem 1.5rem;
    border-radius: 8px;
    margin: 1.5rem 0;
}

.swm-episode-live-banner p {
    margin: 0.5rem 0 0;
    line-height: 1.5;
}

.swm-episode-live-banner p:last-child {
    margin-bottom: 0;
}

.swm-episode-live-banner--pending {
    background: rgba(228, 161, 27, 0.1);
    border: 1px solid rgba(228, 161, 27, 0.35);
}

.swm-episode-live-banner--pending strong {
    color: #b07a00;
}

.swm-episode-live-banner--cancelled {
    background: rgba(120, 120, 120, 0.08);
    border: 1px solid rgba(120, 120, 120, 0.25);
    text-align: center;
}

.swm-episode-live-banner--cancelled strong {
    display: block;
    font-size: 1.2rem;
    margin-bottom: 0.5rem;
    color: #555;
}

/* --- Mobile ------------------------------------------------- */
@media (max-width: 600px) {
    .swm-live-badge {
        display: inline-flex;
        margin-left: 0;
        margin-top: 0.5rem;
        font-size: 0.65em;
    }

    .swm-episode-live-hero {
        padding: 2rem 1rem;
    }

    .swm-countdown-digits {
        font-size: 1.5rem;
    }

    .swm-episode-live-when-static {
        font-size: 1.1rem;
    }
}
