/**
 * Veckans TV — modal-overlay för Topp ikväll + Försvinner snart (v0.10.93).
 *
 * Lättviktig replikering av tablåns modal-UX, anpassad för Veckans TV-kontext.
 * Klick på kort → JS preventDefault → modal med detaljer + CTA-knappar.
 *
 * Failsafe: utan JS följer <a href> som vanligt (direkt till programsida/aff).
 */

/* ====== Overlay (fixed bakgrund) ====== */
.vtv-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(20, 22, 26, 0.78);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    z-index: 999999;
    display: none;
    align-items: flex-start;
    justify-content: center;
    overflow-y: auto;
    padding: 40px 20px;
}
.vtv-modal-overlay.is-active {
    display: flex;
    animation: vtvFadeIn 180ms ease-out;
}
@keyframes vtvFadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}

body.vtv-modal-open {
    overflow: hidden;
}
body.vtv-modal-open [id^="ubermenu-main"],
body.vtv-modal-open header.main.border {
    z-index: 1;
}

/* ====== Modal-kapsel ====== */
.vtv-modal {
    background: #fff;
    border-radius: 16px;
    max-width: 640px;
    width: 100%;
    margin: auto;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
    position: relative;
    animation: vtvSlideUp 220ms cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes vtvSlideUp {
    from { transform: translateY(20px); opacity: 0; }
    to   { transform: translateY(0); opacity: 1; }
}

/* ====== Stäng-knapp ====== */
/* Hård specificity + !important för att överstyra KiteTheme:s button-defaults
   som annars rensar background/color → vit cirkel utan synligt ×. */
.vtv-modal-overlay .vtv-modal-close {
    position: absolute !important;
    top: 12px !important;
    right: 12px !important;
    width: 36px !important;
    height: 36px !important;
    border-radius: 50% !important;
    background: rgba(0, 0, 0, 0.65) !important;
    color: #fff !important;
    border: none !important;
    box-shadow: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    font-family: Arial, sans-serif !important;
    font-size: 22px !important;
    font-weight: 400 !important;
    line-height: 36px !important;
    padding: 0 !important;
    margin: 0 !important;
    text-align: center !important;
    text-indent: 0 !important;
    text-shadow: none !important;
    cursor: pointer !important;
    z-index: 10 !important;
    transition: background 150ms !important;
    display: block !important;
}
.vtv-modal-overlay .vtv-modal-close:hover,
.vtv-modal-overlay .vtv-modal-close:focus {
    background: rgba(0, 0, 0, 0.85) !important;
    color: #fff !important;
    outline: none !important;
}

/* ====== Hero (bild + titel) ====== */
.vtv-modal-hero {
    position: relative;
    width: 100%;
    aspect-ratio: 40 / 21;
    background: #1a1a1a;
    overflow: hidden;
}
.vtv-modal-hero img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* v0.11.43: hero-overlay borttagen — title visas nu under hero som h2
 * (vtv-modal-title-outside). Behåller .vtv-modal-title för bildlös
 * fallback (sällsynt). */
.vtv-modal-hero-overlay {
    /* deprecated v0.11.43 — kvar för ev. cache-baserad HTML */
    display: none;
}
.vtv-modal-title {
    /* Endast i bildlös fallback — på blå bakgrund inom hero */
    color: #fff;
    font-size: 28px;
    font-weight: 600;
    margin: 0;
    line-height: 1.15;
    text-shadow: 0 2px 8px rgba(0,0,0,0.6);
}
.vtv-modal-title-outside {
    /* v0.11.43: title som h2 under hero när bild finns.
     * Ligger inom .vtv-modal-content (padding 20px 24px 24px) → ingen
     * horisontell margin behövs. Bottom-margin separerar från meta-raden. */
    color: #1a1a1a;
    font-size: 26px;
    font-weight: 600;
    margin: 0 0 12px;
    line-height: 1.2;
}

/* ====== Content-area ====== */
.vtv-modal-content {
    padding: 20px 24px 24px;
}

.vtv-modal-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    align-items: center;
    margin: 0 0 16px;
    font-size: 14px;
    color: #555;
}
.vtv-modal-meta-channel {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: 600;
    color: #222;
}
.vtv-modal-meta-channel img {
    width: 20px;
    height: 20px;
    object-fit: contain;
}
.vtv-modal-meta-time {
    /* v0.11.40: röd accent borttagen — inkonsekvent med övrig sajt där tid
     * är grå/svart. Fet vikt räcker för visuell hierarki utan att
     * urvattna orange-accenten som är reserverad för CTA + live-dot. */
    font-weight: 600;
}
.vtv-modal-meta-imdb {
    background: #f5c518;
    color: #000;
    padding: 2px 8px;
    border-radius: 4px;
    font-weight: 600;
    font-size: 13px;
    cursor: pointer;
}
.vtv-modal-meta-imdb:hover {
    background: #e6b400;
}
.vtv-modal-meta-betal {
    background: #444;
    color: #fff;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
}
.vtv-modal-meta-lastday {
    color: #888;
    font-style: italic;
}

.vtv-modal-desc {
    font-size: 15px;
    line-height: 1.55;
    color: #333;
    margin: 0 0 20px;
}

/* ====== CTA-knappar ====== */
.vtv-modal-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.vtv-modal-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 20px;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none !important;
    border: none;
    cursor: pointer;
    transition: opacity 150ms;
}
.vtv-modal-btn:hover {
    opacity: 0.9;
    text-decoration: none !important;
}
.vtv-modal-btn-primary {
    background: #d94e2a;
    color: #fff !important;
}
.vtv-modal-btn-primary:visited {
    color: #fff !important;
}
.vtv-modal-btn-secondary {
    background: #f0f0f1;
    color: #2c5b87 !important;
}
.vtv-modal-btn-secondary:visited {
    color: #2c5b87 !important;
}
/* v0.11.15: outlined-stil för "Sök på Viaplay/HBO Max" — vi har bara rotsida,
   inte exakt programlänk. Visuellt svagare än primary för att signalera att
   knappen inte är en direktlänk till programmet. Ingen ikon (Per's val). */
.vtv-modal-btn-search {
    background: transparent;
    color: #2c5b87 !important;
    border: 2px solid #2c5b87;
    padding: 10px 18px;
}
.vtv-modal-btn-search:visited {
    color: #2c5b87 !important;
}
.vtv-modal-btn-search:hover {
    background: rgba(44, 91, 135, 0.08);
    opacity: 1;
}

/* SVG-play-ikon (v0.10.101) — ersätter Unicode ▶ som renderas som färg-emoji
   på iOS Safari. SVG ger konsekvent rendering på alla plattformar, inheritar
   färg från knappen via currentColor på <polygon fill>. */
.vtv-play-icon {
    display: inline-block;
    width: 11px;
    height: 13px;
    vertical-align: -1px;
    margin-right: 7px;
}

/* ====== Mobile (modal-känsla, inte full-screen) ====== */
/* v0.10.108: behåll rounded corners + padding kring så modalen känns som en
   modal, inte som ny sida. Info-modal-mönster, inte task-modal. */
@media (max-width: 768px) {
    .vtv-modal-overlay {
        padding: 20px 14px;
        align-items: center;
    }
    .vtv-modal {
        border-radius: 14px;
        max-width: 100%;
        max-height: calc(100vh - 40px);
        overflow-y: auto;
    }
    .vtv-modal-title,
    .vtv-modal-title-outside {
        font-size: 22px;
    }
    .vtv-modal-content {
        padding: 16px 18px 22px;
    }
    /* Trunkera beskrivning till 5 rader på mobil — så CTA-knappar alltid
       får plats över bottennavet. Ellipsis (…) signalerar att text fortsätter
       — användaren klickar "Läs mer" för fullständig text på programsidan. */
    .vtv-modal-desc {
        display: -webkit-box;
        -webkit-line-clamp: 5;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
}

/* ====== Cursor pointer på modal-triggers ====== */
.vtv-modal-trigger {
    cursor: pointer;
}
