/* ============================================================
   SWS Game Carousel — NBA.com-inspired game card slider
   ============================================================ */

/* --- Wrapper --- */
.sws-gc-wrapper {
    position: relative;
    max-width: 100%;
    padding: 0 52px;          /* room for arrows */
    box-sizing: border-box;
}

/* --- Track (horizontal scroller) --- */
.sws-gc-track {
    display: flex;
    gap: 18px;
    overflow-x: auto;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    padding: 16px 4px 22px;
    scrollbar-width: none;       /* Firefox */
}
.sws-gc-track::-webkit-scrollbar {
    display: none;               /* Chrome / Safari */
}

/* --- Individual card --- */
.sws-gc-card {
    flex: 0 0 240px;
    min-width: 240px;
    background: #fff;
    border-radius: 12px;
    padding: 26px 22px 22px;
    text-align: center;
    position: relative;
    box-shadow: 0 3px 12px rgba(0,0,0,.08);
    transition: transform .2s ease, box-shadow .2s ease;
    cursor: default;
    border-left: 5px solid transparent;
}
.sws-gc-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 28px rgba(0,0,0,.14);
}

/* Next-game highlight */
.sws-gc-card--next {
    border-left-color: #f57c00;
    background: linear-gradient(135deg, #fff8f0 0%, #fff 60%);
}

/* --- Sport icon (top-right corner of each card, opposite the level badge) --- */
.sws-gc-sport {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 22px;
    height: 22px;
    opacity: 0.9;
    pointer-events: none;
}
.sws-gc-card--next .sws-gc-sport {
    /* When NEXT badge is also shown, tuck the sport icon just below it. */
    top: 10px;
    opacity: 1;
}

/* --- Date --- */
.sws-gc-date {
    font-family: 'Oswald', 'Inter', sans-serif;
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #888;
    margin-bottom: 14px;
}

/* --- Opponent logo --- */
.sws-gc-logo {
    width: 72px;
    height: 72px;
    margin: 0 auto 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}
.sws-gc-team-logo {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 4px;
}
.sws-gc-logo-letter {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: #5c1230;
    color: #fff;
    font-family: 'Oswald', 'Inter', sans-serif;
    font-size: 1.8rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* --- Opponent name --- */
.sws-gc-opponent {
    font-family: 'Oswald', 'Inter', sans-serif;
    font-size: 1.1rem;
    font-weight: 700;
    color: #1a1a2e;
    margin-bottom: 6px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* --- Location --- */
.sws-gc-location {
    font-size: 0.82rem;
    color: #999;
    margin-bottom: 14px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* --- Score / time --- */
.sws-gc-score {
    font-family: 'Oswald', 'Inter', sans-serif;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    padding: 6px 14px;
    border-radius: 5px;
    display: inline-block;
}
.sws-gc-win {
    background: #e8f5e9;
    color: #2e7d32;
}
.sws-gc-loss {
    background: #ffebee;
    color: #c62828;
}
.sws-gc-tie {
    background: #fff3e0;
    color: #e65100;
}
.sws-gc-upcoming {
    background: #f5f5f5;
    color: #555;
}

/* --- NEXT badge --- */
.sws-gc-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    background: #f57c00;
    color: #fff;
    font-family: 'Oswald', 'Inter', sans-serif;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    padding: 3px 9px;
    border-radius: 4px;
    text-transform: uppercase;
}

/* --- Sub-score (set-by-set line under the main score, e.g. volleyball "(25-8, 25-7)") --- */
.sws-gc-subscore {
    margin-top: 6px;
    font-family: 'Oswald', 'Inter', sans-serif;
    font-size: 0.78rem;
    font-weight: 500;
    color: #666;
    letter-spacing: 0.02em;
}

/* --- Level badge (top-left banner shown on every card) --- */
.sws-gc-level {
    position: absolute;
    top: 10px;
    left: 10px;
    background: #5c1230;
    color: #fff;
    font-family: 'Oswald', 'Inter', sans-serif;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    padding: 4px 9px;
    border-radius: 4px;
    text-transform: uppercase;
    line-height: 1.4;
    box-shadow: 0 1px 3px rgba(0,0,0,.12);
}
.sws-gc-card--next .sws-gc-level {
    background: #f57c00;
}

/* --- Arrow buttons --- */
.sws-gc-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-60%);
    z-index: 2;
    width: 42px;
    height: 42px;
    border: none;
    border-radius: 50%;
    background: #5c1230;
    color: #fff;
    font-size: 1.2rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .2s, opacity .2s;
    box-shadow: 0 2px 8px rgba(0,0,0,.18);
}
.sws-gc-arrow:hover {
    background: #f57c00;
}
.sws-gc-arrow--left  { left: 4px; }
.sws-gc-arrow--right { right: 4px; }

/* --- Progress bar --- */
.sws-gc-progress {
    height: 4px;
    background: #e0e0e0;
    border-radius: 2px;
    margin-top: 6px;
    overflow: hidden;
}
.sws-gc-progress-bar {
    height: 100%;
    width: 0;
    background: #f57c00;
    border-radius: 2px;
    transition: width .15s ease;
}

/* --- "No games" notice --- */
.sws-gc-notice {
    text-align: center;
    color: #888;
    font-style: italic;
    padding: 24px 0;
}

/* ============================================================
   Responsive
   ============================================================ */

@media (max-width: 768px) {
    .sws-gc-wrapper {
        padding: 0 38px;
    }
    .sws-gc-card {
        flex: 0 0 200px;
        min-width: 200px;
        padding: 20px 16px 18px;
    }
    .sws-gc-logo {
        width: 56px;
        height: 56px;
    }
    .sws-gc-logo-letter {
        font-size: 1.4rem;
    }
    .sws-gc-opponent {
        font-size: 0.95rem;
    }
    .sws-gc-arrow {
        width: 34px;
        height: 34px;
        font-size: 1rem;
    }
}

@media (max-width: 480px) {
    .sws-gc-wrapper {
        padding: 0 30px;
    }
    .sws-gc-card {
        flex: 0 0 170px;
        min-width: 170px;
        padding: 16px 12px 14px;
    }
    .sws-gc-logo {
        width: 46px;
        height: 46px;
    }
    .sws-gc-logo-letter {
        font-size: 1.2rem;
    }
    .sws-gc-opponent {
        font-size: 0.85rem;
    }
    .sws-gc-score {
        font-size: 0.85rem;
    }
}

/* OL-2026-08-21-level-fix: keep long level banner (e.g. VARSITY GIRLS) from overlapping the date */
.sws-gc-level{font-size:0.56rem;letter-spacing:0.06em;padding:3px 7px;max-width:calc(100% - 46px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sws-gc-date{margin-top:20px;}
.sws-gc-card--next .sws-gc-date{margin-top:20px;}

/* OL-2026-08-21-pills-bottom: move FALL descriptor chip to card bottom to remove top-right collisions with sport icon and date */
.sws-gc-card{padding-bottom:36px !important;}
.sws-gc-descriptor,.sws-descriptor-chip{position:absolute !important;top:auto !important;bottom:10px !important;left:10px !important;right:auto !important;transform:none !important;z-index:3;}

/* OL-2026-08-21-slider-tune: restore compact aspect ratio; sport ball lower-right, FALL chip lower-left */
.sws-gc-card{padding-bottom:30px !important;}
.sws-gc-date{margin-top:10px !important;}
.sws-gc-card--next .sws-gc-date{margin-top:10px !important;}
.sws-gc-sport{position:absolute !important;top:10px !important;bottom:auto !important;right:10px !important;left:auto !important;width:22px !important;height:22px !important;opacity:1 !important;}
.sws-gc-card--next .sws-gc-sport{top:10px !important;bottom:auto !important;right:10px !important;}
.sws-gc-descriptor,.sws-descriptor-chip{position:absolute !important;top:auto !important;bottom:8px !important;left:10px !important;right:auto !important;transform:none !important;}
