/* SWM Fantasy Football — Plugin-specific styles
 * Standings hub for the SWM host league + customer leagues.
 * Reuses the --swm-* custom properties defined in swm-frontend.css (that
 * stylesheet loads site-wide, so the vars are always available here).
 */

/* -------------------------------------------------------
 * Hero
 * ------------------------------------------------------- */
.swm-fantasy-hero {
    background: linear-gradient(135deg, var(--swm-bg-card), #1b3a5c);
    border-radius: var(--swm-radius);
    padding: 2.5rem 1.5rem;
    margin: 1rem 0 1.5rem;
    text-align: center;
    border: 1px solid var(--swm-border);
}

.swm-fantasy-hero-inner {
    max-width: 680px;
    margin: 0 auto;
}

.swm-fantasy-eyebrow {
    display: inline-block;
    font-size: 0.7rem;
    letter-spacing: 0.18em;
    color: var(--swm-gold);
    font-weight: 700;
    margin-bottom: 0.75rem;
}

.swm-fantasy-title {
    font-size: 2rem;
    line-height: 1.15;
    font-weight: 800;
    color: #fff !important;
    margin: 0 0 0.75rem !important;
}

.swm-fantasy-subtitle {
    color: #e2e8f0;
    font-size: 1.05rem;
    line-height: 1.5;
    margin: 0;
}

@media (min-width: 640px) {
    .swm-fantasy-hero {
        padding: 3.5rem 2rem;
    }
    .swm-fantasy-title {
        font-size: 2.75rem;
    }
    .swm-fantasy-subtitle {
        font-size: 1.2rem;
    }
}

/* -------------------------------------------------------
 * Hero variants + actions (hub CTAs, standings back-links)
 * ------------------------------------------------------- */
.swm-fantasy-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
    justify-content: center;
    margin-top: 1.5rem;
}

.swm-fantasy-hero-compact {
    padding: 1.75rem 1.5rem;
}

.swm-fantasy-hero-links {
    margin: 1rem 0 0;
    font-size: 0.9rem;
}

.swm-fantasy-hero-links a {
    color: var(--swm-text-muted);
    text-decoration: none;
}

.swm-fantasy-hero-links a:hover {
    color: var(--swm-gold);
    text-decoration: underline;
}

.swm-fantasy-hero-links span {
    color: var(--swm-border);
    margin: 0 0.4rem;
}

/* -------------------------------------------------------
 * Sponsor block — "Fantasy Football, sponsored by Dudley's"
 * Text-only placeholder until a logo asset exists. Swap the text node for
 * an <img> inside .swm-fantasy-sponsor-mark when one is provided.
 * ------------------------------------------------------- */
.swm-fantasy-sponsor {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    background: var(--swm-bg-card);
    border: 1px solid var(--swm-border);
    border-radius: var(--swm-radius);
    padding: 0.85rem 1.25rem;
    margin: 0 0 1.5rem;
    font-size: 0.9rem;
    color: var(--swm-text-muted);
    text-align: center;
}

.swm-fantasy-sponsor-label {
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--swm-text-muted);
}

.swm-fantasy-sponsor-sep {
    color: var(--swm-border);
}

.swm-fantasy-sponsor-text strong {
    color: var(--swm-gold);
}

/* -------------------------------------------------------
 * Disclosure — cross-league scoring caveat
 * ------------------------------------------------------- */
.swm-fantasy-disclosure {
    background: rgba(228, 161, 27, 0.08);
    border: 1px solid rgba(228, 161, 27, 0.25);
    border-radius: var(--swm-radius);
    padding: 0.85rem 1.1rem;
    margin: 0 0 2rem;
    font-size: 0.9rem;
    line-height: 1.5;
    color: #e2e8f0;
}

/* -------------------------------------------------------
 * Section shell
 * ------------------------------------------------------- */
.swm-fantasy-section {
    margin: 2rem 0;
    padding: 1.5rem;
    background: var(--swm-bg-card);
    border: 1px solid var(--swm-border);
    border-radius: var(--swm-radius);
}

.swm-fantasy-section-title {
    font-size: 1.4rem;
    font-weight: 800;
    color: #fff !important;
    margin: 0 0 0.5rem !important;
}

.swm-fantasy-section-desc {
    color: var(--swm-text-muted);
    font-size: 0.9rem;
    margin: 0 0 1.25rem;
}

@media (min-width: 640px) {
    .swm-fantasy-section {
        padding: 2rem;
    }
    .swm-fantasy-section-title {
        font-size: 1.75rem;
    }
}

/* -------------------------------------------------------
 * Hub marketing sections — copy, badge, "get in the game" option list,
 * footer links (A11 / SWM-171)
 * ------------------------------------------------------- */
.swm-fantasy-marketing-copy {
    color: #e2e8f0;
    font-size: 1rem;
    line-height: 1.6;
    margin: 0 0 1rem;
    max-width: 68ch;
}

.swm-fantasy-marketing-copy:last-child {
    margin-bottom: 0;
}

.swm-fantasy-badge {
    display: inline-block;
    padding: 0.3rem 0.75rem;
    border-radius: 999px;
    background: rgba(228, 161, 27, 0.1);
    border: 1px solid rgba(228, 161, 27, 0.3);
    color: var(--swm-gold);
    font-weight: 700;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.swm-fantasy-option-list {
    list-style: none;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.85rem;
    margin: 0 0 1.25rem;
    padding: 0;
}

@media (min-width: 640px) {
    .swm-fantasy-option-list {
        grid-template-columns: repeat(3, 1fr);
    }
}

.swm-fantasy-option-card {
    background: var(--swm-bg-dark);
    border: 1px solid var(--swm-border);
    border-radius: var(--swm-radius);
    padding: 1.1rem 1.25rem;
    color: #e2e8f0;
    font-weight: 600;
    font-size: 0.95rem;
    line-height: 1.4;
}

.swm-fantasy-hub-footer-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem 1.5rem;
    margin: 2rem 0 1rem;
    text-align: center;
}

.swm-fantasy-hub-footer-links a {
    color: var(--swm-gold);
    font-weight: 700;
    text-decoration: none;
    font-size: 0.95rem;
}

.swm-fantasy-hub-footer-links a:hover {
    text-decoration: underline;
}

/* -------------------------------------------------------
 * League block
 * ------------------------------------------------------- */
.swm-fantasy-league {
    margin: 0 0 2rem;
}

.swm-fantasy-league:last-child {
    margin-bottom: 0;
}

.swm-fantasy-league-name {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--swm-gold);
    margin: 0 0 0.75rem;
}

.swm-fantasy-league-empty {
    color: var(--swm-text-muted);
    font-size: 0.9rem;
    font-style: italic;
}

/* -------------------------------------------------------
 * Standings table
 * ------------------------------------------------------- */
.swm-fantasy-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--swm-border);
    border-radius: var(--swm-radius);
}

.swm-fantasy-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
}

.swm-fantasy-table th,
.swm-fantasy-table td {
    padding: 0.6rem 0.85rem;
    text-align: left;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    white-space: nowrap;
    color: #e2e8f0;
}

.swm-fantasy-table th {
    color: var(--swm-gold);
    font-weight: 700;
    text-transform: uppercase;
    font-size: 0.75rem;
    letter-spacing: 0.05em;
    background: rgba(255, 255, 255, 0.03);
}

.swm-fantasy-table tbody tr:last-child td {
    border-bottom: none;
}

.swm-fantasy-team-row-host td {
    background: rgba(228, 161, 27, 0.06);
}

.swm-fantasy-host-badge {
    display: inline-block;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    background: rgba(228, 161, 27, 0.15);
    border: 1px solid rgba(228, 161, 27, 0.35);
    color: var(--swm-gold);
    font-weight: 700;
    font-size: 0.8rem;
}

/* Toggled by fantasy-hub.js while a fan is searching for a host */
.swm-fantasy-team-row.swm-fantasy-team-row-match td {
    background: rgba(228, 161, 27, 0.22);
}

.swm-fantasy-team-row.swm-fantasy-team-row-dim {
    opacity: 0.35;
}

/* -------------------------------------------------------
 * Empty state
 * ------------------------------------------------------- */
.swm-fantasy-empty-state {
    text-align: center;
    padding: 3rem 1.5rem;
    background: var(--swm-bg-card);
    border: 1px dashed var(--swm-border);
    border-radius: var(--swm-radius);
    margin: 1.5rem 0;
}

.swm-fantasy-empty-state-text {
    color: var(--swm-text-muted);
    font-size: 1.1rem;
    margin: 0;
}

.swm-fantasy-empty-state-sub {
    color: var(--swm-text-muted);
    font-size: 0.95rem;
    line-height: 1.6;
    max-width: 34rem;
    margin: 0.9rem auto 0;
}

.swm-fantasy-empty-state-sub a {
    color: var(--swm-accent, #e4a11b);
    font-weight: 600;
}

/* -------------------------------------------------------
 * Find your host
 * ------------------------------------------------------- */
.swm-fantasy-findhost {
    background: var(--swm-bg-card);
    border: 1px solid var(--swm-border);
    border-radius: var(--swm-radius);
    padding: 1.25rem 1.5rem;
    margin: 2rem 0;
    text-align: center;
}

.swm-fantasy-findhost-label {
    display: block;
    font-weight: 700;
    color: #fff;
    margin-bottom: 0.5rem;
}

.swm-fantasy-findhost-input {
    width: 100%;
    max-width: 320px;
    padding: 0.6rem 0.85rem;
    border-radius: 6px;
    border: 1px solid var(--swm-border);
    background: var(--swm-bg-dark);
    color: var(--swm-text);
    font-size: 0.95rem;
}

.swm-fantasy-findhost-input:focus {
    outline: 2px solid var(--swm-gold);
    outline-offset: 1px;
}

.swm-fantasy-findhost-hint {
    color: var(--swm-text-muted);
    font-size: 0.8rem;
    margin: 0.6rem 0 0;
}

/* -------------------------------------------------------
 * 2025 Recap — champion callout + superlative cards
 * ------------------------------------------------------- */
.swm-fantasy-recap-champion {
    background: linear-gradient(135deg, rgba(228, 161, 27, 0.18), var(--swm-bg-card));
    border: 1px solid var(--swm-gold);
    border-radius: var(--swm-radius);
    padding: 2rem 1.5rem;
    margin: 0 0 2rem;
    text-align: center;
}

.swm-fantasy-recap-champion-eyebrow {
    text-transform: uppercase;
    letter-spacing: 0.14em;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--swm-gold);
    margin-bottom: 0.5rem;
}

.swm-fantasy-recap-champion-name {
    font-size: 1.9rem;
    font-weight: 800;
    color: #fff !important;
    margin: 0 0 0.4rem !important;
}

.swm-fantasy-recap-champion-host {
    color: var(--swm-gold);
    font-weight: 700;
    margin: 0 0 0.5rem;
}

.swm-fantasy-recap-champion-record {
    color: var(--swm-text-muted);
    font-size: 0.95rem;
    margin: 0;
}

.swm-fantasy-recap-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

@media (min-width: 640px) {
    .swm-fantasy-recap-cards {
        grid-template-columns: repeat(3, 1fr);
    }
}

.swm-fantasy-recap-card {
    background: var(--swm-bg-dark);
    border: 1px solid var(--swm-border);
    border-radius: var(--swm-radius);
    padding: 1.25rem;
}

.swm-fantasy-recap-card-cellar {
    border-color: rgba(255, 255, 255, 0.15);
    opacity: 0.9;
}

.swm-fantasy-recap-card-label {
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--swm-gold);
    margin-bottom: 0.4rem;
}

.swm-fantasy-recap-card-team {
    font-size: 1.1rem;
    font-weight: 700;
    color: #fff;
    margin-bottom: 0.2rem;
}

.swm-fantasy-recap-card-stat {
    color: var(--swm-text-muted);
    font-size: 0.9rem;
    margin-bottom: 0.5rem;
}

.swm-fantasy-recap-card-copy {
    color: var(--swm-text-muted);
    font-size: 0.85rem;
    line-height: 1.4;
    margin: 0;
}

.swm-fantasy-recap-show {
    color: var(--swm-text-muted);
    font-size: 0.8rem;
}

/* =========================================================
 * SALES LANDING HUB (A12 / SWM-178)
 * -----------------------------------------------------------
 * Everything below is scoped under `.swm-fantasy-land-*` (or nested
 * under the `.swm-fantasy-land` page wrapper) so none of it touches the
 * `.swm-fantasy-hero` / `.swm-fantasy-section` / `.swm-fantasy-table`
 * etc. rules above — those are still load-bearing for the Standings
 * and 2025 Recap pages, which share this stylesheet.
 * ========================================================= */

:root {
    --swm-red: #ff3d2e;
}

.swm-fantasy-land {
    max-width: 1180px;
    margin: 0 auto;
}

/* Shared heavy/condensed display type used by the headline + section
 * titles + prices below. No external fonts — approximate the
 * condensed-hype look with a system stack + tight tracking + a
 * `font-stretch` hint (ignored gracefully where unsupported). */
.swm-fantasy-land-headline,
.swm-fantasy-land-section-title,
.swm-fantasy-land-package-price,
.swm-fantasy-land-og-price {
    font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Helvetica Neue', Arial, sans-serif;
    font-stretch: 85%;
    font-weight: 900;
    text-transform: uppercase;
}

/* -------------------------------------------------------
 * Hero
 * ------------------------------------------------------- */
.swm-fantasy-land-hero {
    text-align: center;
    padding: 3rem 1.25rem 2.5rem;
    margin: 1rem 0 2rem;
}

.swm-fantasy-land-eyebrow {
    display: inline-block;
    font-size: 0.75rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--swm-gold);
    margin-bottom: 1.25rem;
}

.swm-fantasy-land-headline {
    letter-spacing: -0.02em;
    line-height: 0.95;
    font-size: clamp(2.6rem, 9vw, 5.5rem);
    margin: 0 0 1.25rem !important;
    color: var(--swm-gold);
    background: linear-gradient(120deg, var(--swm-gold) 0%, var(--swm-red) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.swm-fantasy-land-subhead {
    color: #e2e8f0;
    font-size: 1.1rem;
    line-height: 1.6;
    max-width: 640px;
    margin: 0 auto 2.25rem;
}

.swm-fantasy-land-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: center;
    margin-bottom: 2.5rem;
}

.swm-fantasy-land-hero-btn {
    display: inline-block;
    padding: 0.95rem 2.1rem;
    border-radius: 999px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.9rem;
    text-decoration: none;
    transition: transform 0.15s ease, box-shadow 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.swm-fantasy-land-hero-btn-primary {
    background: linear-gradient(120deg, var(--swm-gold), var(--swm-red));
    color: var(--swm-bg-dark);
    box-shadow: 0 8px 24px rgba(255, 61, 46, 0.25);
}

.swm-fantasy-land-hero-btn-primary:hover,
.swm-fantasy-land-hero-btn-primary:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(255, 61, 46, 0.35);
    color: var(--swm-bg-dark);
}

.swm-fantasy-land-hero-btn-secondary {
    background: transparent;
    border: 2px solid var(--swm-border);
    color: #fff;
}

.swm-fantasy-land-hero-btn-secondary:hover,
.swm-fantasy-land-hero-btn-secondary:focus-visible {
    border-color: var(--swm-gold);
    color: var(--swm-gold);
    transform: translateY(-2px);
}

.swm-fantasy-land-hero-logos {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem 2.5rem;
    justify-content: center;
    align-items: center;
    opacity: 1;
}

.swm-fantasy-land-hero-logo-img {
    height: 64px;
    width: auto;
    max-width: 240px;
    object-fit: contain;
}

.swm-fantasy-land-hero-logo-wide {
    height: 72px;
}

/* Text-only placeholders for Sunset Lounge DFW + Dudley's — swap for real
 * marks when assets exist (Dudley's real logo is pending SWM-173). */
.swm-fantasy-land-wordmark {
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 0.78rem;
    color: var(--swm-text-muted);
    border: 1px solid var(--swm-border);
    border-radius: 999px;
    padding: 0.4rem 1rem;
}

/* -------------------------------------------------------
 * Facts row
 * ------------------------------------------------------- */
.swm-fantasy-land-facts {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
    background: var(--swm-bg-card);
    border: 1px solid var(--swm-border);
    border-radius: var(--swm-radius);
    padding: 1.5rem;
    margin: 0 0 2.5rem;
}

@media (min-width: 720px) {
    .swm-fantasy-land-facts {
        grid-template-columns: repeat(4, 1fr);
    }
}

.swm-fantasy-land-fact {
    text-align: center;
}

.swm-fantasy-land-fact-label {
    text-transform: uppercase;
    font-size: 0.7rem;
    letter-spacing: 0.12em;
    font-weight: 700;
    color: var(--swm-gold);
    margin-bottom: 0.4rem;
}

.swm-fantasy-land-fact-value {
    color: #fff;
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.4;
}

.swm-fantasy-land-fact-sub {
    color: var(--swm-text-muted);
    font-weight: 600;
    font-size: 0.85rem;
}

/* -------------------------------------------------------
 * Section shell
 * ------------------------------------------------------- */
.swm-fantasy-land-section {
    margin: 0 0 3.5rem;
}

.swm-fantasy-land-section-eyebrow {
    text-transform: uppercase;
    letter-spacing: 0.18em;
    font-size: 0.75rem;
    font-weight: 800;
    color: var(--swm-gold);
    margin-bottom: 0.5rem;
    text-align: center;
}

.swm-fantasy-land-section-title {
    letter-spacing: -0.01em;
    font-size: clamp(1.6rem, 4vw, 2.5rem);
    color: #fff !important;
    text-align: center;
    margin: 0 0 1.75rem !important;
    line-height: 1.05;
}

/* -------------------------------------------------------
 * Host lineup — "Who you're drafting against"
 * ------------------------------------------------------- */
.swm-fantasy-land-hosts-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.85rem;
}

@media (min-width: 560px) {
    .swm-fantasy-land-hosts-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 900px) {
    .swm-fantasy-land-hosts-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

.swm-fantasy-land-host-card {
    background: var(--swm-bg-card);
    border: 1px solid var(--swm-border);
    border-radius: var(--swm-radius);
    padding: 1.1rem 1.25rem;
    text-align: center;
}

.swm-fantasy-land-host-name {
    color: #fff;
    font-weight: 800;
    font-size: 0.98rem;
    margin-bottom: 0.25rem;
}

.swm-fantasy-land-host-show {
    color: var(--swm-gold);
    font-size: 0.8rem;
    font-weight: 600;
}

/* -------------------------------------------------------
 * Intro block
 * ------------------------------------------------------- */
.swm-fantasy-land-intro {
    max-width: 760px;
    margin: 0 auto;
    text-align: center;
}

.swm-fantasy-land-intro p {
    color: #e2e8f0;
    font-size: 1.05rem;
    line-height: 1.7;
    margin: 0 0 1.1rem;
}

.swm-fantasy-land-intro p:last-child {
    margin-bottom: 0;
}

/* -------------------------------------------------------
 * Four ways onto the board — package cards
 * ------------------------------------------------------- */
.swm-fantasy-land-packages-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}

@media (min-width: 640px) {
    .swm-fantasy-land-packages-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1100px) {
    .swm-fantasy-land-packages-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

.swm-fantasy-land-package-card {
    display: flex;
    flex-direction: column;
    background: var(--swm-bg-card);
    border: 1px solid var(--swm-border);
    border-radius: var(--swm-radius);
    padding: 1.85rem 1.5rem 1.5rem;
    position: relative;
    overflow: hidden;
}

.swm-fantasy-land-package-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(120deg, var(--swm-gold), var(--swm-red));
}

.swm-fantasy-land-package-card--auction {
    border-color: var(--swm-gold);
}

.swm-fantasy-land-package-name {
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 800;
    font-size: 1.02rem;
    color: #fff;
    margin: 0.5rem 0 0.9rem;
}

.swm-fantasy-land-package-price {
    letter-spacing: -0.01em;
    font-size: 2.25rem;
    line-height: 1;
    color: var(--swm-gold);
    margin-bottom: 0.35rem;
}

.swm-fantasy-land-package-spots {
    color: var(--swm-text-muted);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
    margin-bottom: 1.1rem;
}

.swm-fantasy-land-package-copy {
    color: #e2e8f0;
    font-size: 0.92rem;
    line-height: 1.55;
    margin: 0 0 0.85rem;
}

.swm-fantasy-land-package-card > .swm-fantasy-land-package-copy:last-of-type {
    flex-grow: 1;
}

.swm-fantasy-land-package-note {
    color: var(--swm-gold);
    font-size: 0.82rem;
    font-weight: 700;
    margin: 0 0 1.25rem;
}

.swm-fantasy-land-inline-link {
    color: var(--swm-gold);
    text-decoration: none;
}

.swm-fantasy-land-inline-link:hover {
    text-decoration: underline;
}

/* "Coming soon" buttons — disabled on purpose (stage 1 is presentation
 * only; Stripe checkout lands in stage 2, auction bidding in stage 3). */
.swm-fantasy-land-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 0.9rem 1.25rem;
    border-radius: 999px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.82rem;
    border: 1px solid var(--swm-border);
    background: rgba(255, 255, 255, 0.04);
    color: var(--swm-text-muted);
    cursor: not-allowed;
    margin-top: auto;
}

/* Real, clickable buy button — Stage 2 / SWM-158. Sales-open state only;
 * sold-out / not-open states keep the muted disabled look above. */
.swm-fantasy-land-btn--active {
    background: linear-gradient(120deg, var(--swm-gold), var(--swm-red));
    border-color: transparent;
    color: var(--swm-bg-dark);
    cursor: pointer;
    box-shadow: 0 8px 24px rgba(255, 61, 46, 0.25);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.swm-fantasy-land-btn--active:hover,
.swm-fantasy-land-btn--active:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(255, 61, 46, 0.35);
    color: var(--swm-bg-dark);
}

.swm-fantasy-land-btn--active:disabled {
    cursor: not-allowed;
    opacity: 0.7;
    transform: none;
}

/* -------------------------------------------------------
 * Auction detail — "The auction: Mike or Norm"
 * ------------------------------------------------------- */
.swm-fantasy-land-auction-panel {
    background: linear-gradient(135deg, rgba(255, 61, 46, 0.1), var(--swm-bg-card));
    border: 1px solid var(--swm-gold);
    border-radius: var(--swm-radius);
    padding: 2rem 1.5rem;
}

.swm-fantasy-land-auction-copy {
    color: #e2e8f0;
    font-size: 1rem;
    line-height: 1.7;
    max-width: 760px;
    margin: 0 auto 1.75rem;
    text-align: center;
}

.swm-fantasy-land-auction-options {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
    max-width: 760px;
    margin: 0 auto;
}

@media (min-width: 640px) {
    .swm-fantasy-land-auction-options {
        grid-template-columns: repeat(2, 1fr);
    }
}

.swm-fantasy-land-auction-option {
    background: var(--swm-bg-dark);
    border: 1px solid var(--swm-border);
    border-radius: var(--swm-radius);
    padding: 1.5rem;
    text-align: center;
}

.swm-fantasy-land-auction-option-name {
    text-transform: uppercase;
    font-weight: 800;
    color: #fff;
    letter-spacing: 0.05em;
    margin-bottom: 0.85rem;
}

.swm-fantasy-land-auction-bid-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    font-size: 0.85rem;
    color: var(--swm-text-muted);
    margin-bottom: 0.4rem;
}

.swm-fantasy-land-auction-bid-row strong {
    color: var(--swm-gold);
    font-size: 1.15rem;
}

.swm-fantasy-land-auction-option .swm-fantasy-land-btn {
    margin-top: 1rem;
}

.swm-fantasy-land-auction-note {
    text-align: center;
    color: var(--swm-text-muted);
    font-size: 0.85rem;
    margin: 1.5rem 0 0;
}

/* Stage 3 / SWM-160 — per-host grouping + live bid form additions. */
.swm-fantasy-land-auction-host-name {
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 800;
    font-size: 0.95rem;
    color: var(--swm-gold);
    margin: 2rem 0 1rem;
}

.swm-fantasy-land-auction-host-name:first-of-type {
    margin-top: 0;
}

.swm-fantasy-land-auction-form {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 1rem;
    text-align: left;
}

.swm-fantasy-land-auction-label {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 700;
    color: var(--swm-text-muted);
    margin-top: 0.4rem;
}

.swm-fantasy-land-auction-input {
    width: 100%;
    padding: 0.55rem 0.75rem;
    border-radius: 8px;
    border: 1px solid var(--swm-border);
    background: rgba(255, 255, 255, 0.04);
    color: #fff;
    font-size: 0.9rem;
}

.swm-fantasy-land-auction-input:focus {
    outline: 2px solid var(--swm-gold);
    outline-offset: 1px;
}

.swm-fantasy-land-auction-min-note {
    font-size: 0.75rem;
    color: var(--swm-text-muted);
    margin: 0.15rem 0 0;
}

.swm-fantasy-land-auction-msg {
    min-height: 1.2em;
    font-size: 0.82rem;
    font-weight: 700;
}

.swm-fantasy-land-auction-msg--error {
    color: #ff6b6b;
}

.swm-fantasy-land-auction-msg--success {
    color: var(--swm-gold);
}

.swm-fantasy-land-auction-form .swm-fantasy-land-btn {
    margin-top: 0.35rem;
}

/* -------------------------------------------------------
 * How draft day works
 * ------------------------------------------------------- */
.swm-fantasy-land-how-steps {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}

@media (min-width: 720px) {
    .swm-fantasy-land-how-steps {
        grid-template-columns: repeat(4, 1fr);
    }
}

.swm-fantasy-land-how-step {
    background: var(--swm-bg-card);
    border: 1px solid var(--swm-border);
    border-radius: var(--swm-radius);
    padding: 1.5rem 1.25rem;
}

.swm-fantasy-land-how-step-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: linear-gradient(120deg, var(--swm-gold), var(--swm-red));
    color: var(--swm-bg-dark);
    font-weight: 900;
    margin-bottom: 0.85rem;
}

.swm-fantasy-land-how-step-title {
    color: #fff;
    font-weight: 800;
    margin-bottom: 0.4rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    font-size: 0.92rem;
}

.swm-fantasy-land-how-step-copy {
    color: var(--swm-text-muted);
    font-size: 0.85rem;
    line-height: 1.5;
    margin: 0;
}

/* -------------------------------------------------------
 * Venue — "Where it all goes down" (Dudley's)
 * ------------------------------------------------------- */
.swm-fantasy-land-venue-panel {
    background: var(--swm-bg-card);
    border: 1px solid var(--swm-border);
    border-radius: var(--swm-radius);
    padding: 2rem;
    text-align: center;
}

.swm-fantasy-land-venue-copy {
    color: #e2e8f0;
    font-size: 1rem;
    line-height: 1.6;
    max-width: 640px;
    margin: 0 auto 1.5rem;
}

/* -------------------------------------------------------
 * The OG Interloper
 * ------------------------------------------------------- */
.swm-fantasy-land-og-panel {
    background: linear-gradient(135deg, var(--swm-bg-card), #1b3a5c);
    border: 1px solid var(--swm-border);
    border-radius: var(--swm-radius);
    padding: 2rem;
    max-width: 760px;
    margin: 0 auto;
}

.swm-fantasy-land-og-price {
    letter-spacing: -0.01em;
    font-size: 1.85rem;
    color: var(--swm-gold);
    text-align: center;
    margin-bottom: 1.25rem;
}

.swm-fantasy-land-og-price-sub {
    text-transform: none;
    font-weight: 600;
    font-size: 1rem;
    color: var(--swm-text-muted);
}

.swm-fantasy-land-og-copy {
    color: #e2e8f0;
    font-size: 1rem;
    line-height: 1.7;
    margin: 0 0 1.5rem;
}

.swm-fantasy-land-og-meta {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.1rem;
    margin: 0 0 1.75rem;
    font-size: 0.9rem;
    color: #e2e8f0;
}

@media (min-width: 560px) {
    .swm-fantasy-land-og-meta {
        grid-template-columns: repeat(3, 1fr);
    }
}

.swm-fantasy-land-og-meta strong {
    display: block;
    text-transform: uppercase;
    font-size: 0.7rem;
    letter-spacing: 0.08em;
    color: var(--swm-gold);
    margin-bottom: 0.3rem;
}

.swm-fantasy-land-og-panel .swm-fantasy-land-btn {
    display: flex;
    width: auto;
    padding: 0.9rem 2.25rem;
    margin: 0 auto;
}

@media (max-width: 640px) {
    .swm-fantasy-land-og-panel .swm-fantasy-land-btn {
        width: 100%;
    }
}

/* -------------------------------------------------------
 * Mobile: stack table rows into label/value pairs
 * ------------------------------------------------------- */
@media (max-width: 480px) {
    .swm-fantasy-table thead {
        display: none;
    }

    .swm-fantasy-table,
    .swm-fantasy-table tbody,
    .swm-fantasy-table tr,
    .swm-fantasy-table td {
        display: block;
        width: 100%;
    }

    .swm-fantasy-table tr {
        padding: 0.5rem 0.85rem;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    }

    .swm-fantasy-table td {
        border-bottom: none;
        padding: 0.2rem 0;
        display: flex;
        justify-content: space-between;
        gap: 1rem;
        white-space: normal;
    }

    .swm-fantasy-table td::before {
        content: attr(data-label);
        font-weight: 700;
        color: var(--swm-text-muted);
        font-size: 0.75rem;
        text-transform: uppercase;
    }
}

/* Dudley's sponsor logo (SWM-173) */
.swm-fantasy-sponsor-logo{height:46px;width:auto;display:inline-block;vertical-align:middle}
