/*
 * theme-spotlight.css
 * Fase 1 fundament voor de OmniGuide "Spotlight"-restyle.
 * Bron: design_handoff_omniguide_restyle/README.md
 *
 * Nog NIET gekoppeld aan live pagina's. Alles is genest onder body.theme-spotlight
 * zodat dit stylesheet veilig naast screen4.css/screen2.css kan bestaan zonder
 * iets bestaands te raken (zelfde aanpak als css/theme-v2.css op stoepbordenshop.nl).
 */

@import url('https://fonts.googleapis.com/css2?family=Cormorant:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root {
    /* Kleuren */
    --bg: #100c08;
    --surface: #1b1510;
    --surface2: #241d15;
    --line: rgba(255, 244, 228, .09);
    --line2: rgba(255, 244, 228, .14);
    --text: #f3ece1;
    --muted: #a79c8c;
    --accent: #e9a64c;
    --on-accent: #141414;

    /* Secundaire body-copy tinten (afnemend contrast) */
    --copy-1: #d8cfbf;
    --copy-2: #d1c7b6;
    --copy-3: #c9bfae;
    --copy-4: #b8ae9d;

    /* Accent-alternatieven (tweak-opties, NIET default) */
    --accent-copper: #d98a3d;
    --accent-bronze: #c79a5b;
    --accent-teal: #4f9d8f;

    /* Typografie */
    --font-serif: "Cormorant", serif;
    --font-body: "IBM Plex Sans", sans-serif;
    --font-mono: "IBM Plex Mono", monospace;

    --fs-hero: 82px;
    --fs-section: 36px;
    --fs-card-title: 16.5px;
    --fs-body: 16px;
    --fs-meta: 12px;

    /* Radius */
    --radius-pill: 999px;
    --radius-card: 15px;
    --radius-panel: 20px;
    --radius-tile: 12px;

    /* Spacing */
    --content-max: 1280px;
    --content-pad: 32px;
    --section-pad-y: 60px;
    --grid-gap-row: 24px;
    --grid-gap-col: 20px;

    /* Schaduwen */
    --shadow-poster: 0 40px 90px -30px rgba(0, 0, 0, .8);
    --shadow-search: 0 6px 20px -12px rgba(0, 0, 0, .7);

    /* Poster-verhouding */
    --poster-ratio: 2 / 3;
}

/* ---------- Basisreset, alleen binnen de scope ---------- */
.theme-spotlight,
.theme-spotlight *,
.theme-spotlight *::before,
.theme-spotlight *::after {
    box-sizing: border-box;
}

body.theme-spotlight {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    font-size: var(--fs-body);
    line-height: 1.65;
}

.theme-spotlight img {
    max-width: 100%;
    display: block;
}

.theme-spotlight .content {
    max-width: var(--content-max);
    margin: 0 auto;
    padding: 0 var(--content-pad);
}

.theme-spotlight section {
    padding: var(--section-pad-y) 0;
}

/* ---------- Typografieschaal ---------- */
.theme-spotlight h1,
.theme-spotlight .fs-hero {
    font-family: var(--font-serif);
    font-weight: 700;
    font-size: var(--fs-hero);
    line-height: .92;
    letter-spacing: -.02em;
    margin: 0;
}

.theme-spotlight h2,
.theme-spotlight .fs-section {
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: var(--fs-section);
    letter-spacing: -.01em;
    margin: 0;
}

.theme-spotlight .card-title {
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: var(--fs-card-title);
    margin: 0;
}

.theme-spotlight .fs-meta {
    font-family: var(--font-mono);
    font-weight: 500;
    font-size: var(--fs-meta);
    text-transform: uppercase;
    letter-spacing: .24em;
    color: var(--muted);
}

.theme-spotlight p {
    color: var(--copy-1);
    margin: 0 0 1em;
}

/* ---------- Bouwstenen ---------- */
.theme-spotlight .btn-accent,
.theme-spotlight .btn-ghost {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5em;
    min-height: 44px;
    padding: .6em 1.6em;
    border-radius: var(--radius-pill);
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 14px;
    text-decoration: none;
    border: 1px solid transparent;
    cursor: pointer;
}

.theme-spotlight .btn-accent {
    background: var(--accent);
    color: var(--on-accent);
}

.theme-spotlight .btn-ghost {
    background: transparent;
    color: var(--text);
    border-color: var(--line2);
}

.theme-spotlight .card-skeleton {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    overflow: hidden;
    width: 168px;
}

.theme-spotlight .poster-skeleton {
    aspect-ratio: var(--poster-ratio);
    background: var(--surface2);
    box-shadow: var(--shadow-poster);
}

.theme-spotlight .card-skeleton .card-body {
    padding: 10px 12px 14px;
}

.theme-spotlight a.spotlight-card {
    display: block;
    text-decoration: none;
    color: inherit;
}

.theme-spotlight .type-label {
    position: absolute;
    top: 8px;
    left: 8px;
    z-index: 1;
    background: rgba(16, 12, 8, .72);
    backdrop-filter: blur(4px);
    color: var(--text);
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .16em;
    padding: .3em .7em;
    border-radius: var(--radius-pill);
}

/* ---------- Outline-rangnummer (channel Top 10) ---------- */
.theme-spotlight .rank-outline {
    font-family: var(--font-serif);
    font-weight: 700;
    font-size: 88px;
    line-height: 1;
    color: transparent;
    -webkit-text-stroke: 2px var(--line2);
}

.theme-spotlight .card-synopsis {
    font-family: var(--font-body);
    font-size: 13px;
    color: var(--copy-3);
    margin: 6px 0 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ---------- Platform-badges (pills/stippen) ---------- */
.theme-spotlight .badge-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 10px;
}

.theme-spotlight .badge-pill {
    display: inline-flex;
    align-items: center;
    padding: .3em .8em;
    border-radius: var(--radius-pill);
    font-family: var(--font-mono);
    font-size: 10.5px;
    font-weight: 500;
    line-height: 1.6;
}

.theme-spotlight .badge-row-dots {
    gap: 5px;
}

.theme-spotlight .badge-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    display: inline-block;
}

/* ---------- Dienst-tegel (logo of tegel-letter-fallback) ---------- */
.theme-spotlight .service-tile {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-tile);
    overflow: hidden;
    background: var(--surface2);
    border: 1px solid var(--line);
}

.theme-spotlight .service-tile img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.theme-spotlight .service-tile-fallback {
    font-family: var(--font-mono);
    font-weight: 600;
    font-size: 14px;
    border: none;
}

/* ---------- Layout-hulpklassen (hero/featured met poster+tekst) ---------- */
.theme-spotlight .split-layout {
    display: flex;
    gap: 48px;
    flex-wrap: wrap;
}

.theme-spotlight .split-media {
    flex-shrink: 0;
}

.theme-spotlight .split-text {
    flex: 1;
    min-width: 280px;
}

/* ---------- Nav ---------- */
.theme-spotlight .nav-links-text {
    display: block;
}

.theme-spotlight .nav-search {
    width: 320px;
}

/* ---------- Mobile / smal scherm (< 700px) ---------- */
@media (max-width: 700px) {
    :root {
        --fs-hero: 44px;
        --fs-section: 26px;
        --content-pad: 20px;
    }

    /* Tekst boven poster bij het stapelen, ongeacht bron-volgorde in de HTML
       (nodig omdat detail-hero en channel-"uitgelicht" de poster eerst in de
       DOM hebben staan, voor de gewenste poster-links/tekst-rechts-indeling
       op desktop). */
    .theme-spotlight .split-layout .split-text {
        order: 1;
    }

    .theme-spotlight .split-layout .split-media {
        order: 2;
    }

    /* Nav: navlinks en het vaste-breedte-zoekveld passen niet naast logo +
       knop op een telefoonbreedte -- val terug op alleen logo + knop.
       Een volwaardig hamburger-menu (met JS) is nog niet gebouwd. */
    .theme-spotlight .nav-links-text,
    .theme-spotlight .nav-search {
        display: none;
    }
}

.theme-spotlight .swatch {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--muted);
}

.theme-spotlight .swatch-color {
    width: 64px;
    height: 64px;
    border-radius: var(--radius-tile);
    border: 1px solid var(--line2);
}

/* ---------- Rating-widget (includes/my_rating.php / omni_rating.php) ----------
   Deze includes blijven functioneel ongewijzigd (AJAX naar did_watch.php/
   did_rate.php/did_review.php, jQuery-handlers op #stars/.my_watchlist) --
   hier alleen hun bestaande classes/elementen visueel aangepast, gescoped
   onder .rating-widget zodat de generieke .table_td_*-classes elders (bv.
   includes/faq_movie.php) niet worden geraakt. */
.theme-spotlight .rating-widget {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-panel);
    padding: 28px;
}

.theme-spotlight .rating-widget h4 {
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: 17px;
    margin: 28px 0 14px;
}

.theme-spotlight .rating-widget h4:first-child {
    margin-top: 0;
}

.theme-spotlight .rating-widget hr {
    display: none;
}

.theme-spotlight .rating-widget .rated-stars ul,
.theme-spotlight .rating-widget .rating-stars ul {
    list-style: none;
    display: flex;
    gap: 8px;
    padding: 0;
    margin: 0;
}

.theme-spotlight .rating-widget .star {
    color: var(--line2);
    font-size: 24px;
    transition: color .15s ease;
}

.theme-spotlight .rating-widget .rating-stars .star {
    cursor: pointer;
}

.theme-spotlight .rating-widget .star.selected,
.theme-spotlight .rating-widget .star.hover {
    color: var(--accent);
}

/* Elke widget-"rij" (gezien-checkbox, sterren, mening, opslaan) krijgt
   consistente verticale ruimte via margin i.p.v. een doorlopende rand. */
.theme-spotlight .rating-widget form {
    margin: 0;
}

.theme-spotlight .rating-widget .table_td_100 {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 20px;
}

.theme-spotlight .rating-widget .table_td_100:last-child {
    margin-bottom: 0;
}

.theme-spotlight .rating-widget .table_td_30 {
    font-family: var(--font-mono);
    font-size: 11.5px;
    text-transform: uppercase;
    letter-spacing: .12em;
    color: var(--muted);
    flex: 0 0 140px;
}

.theme-spotlight .rating-widget .table_td_70 {
    flex: 1;
}

.theme-spotlight .rating-widget input[type="checkbox"] {
    width: 20px;
    height: 20px;
    accent-color: var(--accent);
}

.theme-spotlight .rating-widget textarea {
    width: 100%;
    min-height: 90px;
    padding: 12px 14px;
    font-family: var(--font-body);
    font-size: 14px;
    background: var(--surface2);
    border: 1px solid var(--line2);
    border-radius: var(--radius-tile);
    color: var(--text);
    box-sizing: border-box;
    resize: vertical;
}

.theme-spotlight .rating-widget input[type="submit"] {
    background: var(--accent);
    color: var(--on-accent);
    border: none;
    min-height: 44px;
    padding: 0 1.8em;
    border-radius: var(--radius-pill);
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
}

.theme-spotlight .rating-widget input[type="submit"]:hover {
    background: var(--accent-copper);
}

/* ---------- FAQ-widget (includes/faq_movie.php) ----------
   De include blijft functioneel ongewijzigd (genereert h3.color_cherry +
   button.accordion/div.panel-paren + JSON-LD script); de bestaande
   accordion-JS onderin stream.php blijft ook ongewijzigd (toggle van
   .active + inline max-height op nextElementSibling, dus button+panel
   moeten adjacent blijven). Hier alleen de bestaande output visueel
   overschreven, gescoped onder .faq-widget zodat de generieke
   .accordion/.panel/h3-regels uit screen4.css elders niet worden geraakt. */

.theme-spotlight .faq-widget h3.color_cherry {
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: 22px;
    color: var(--text);
    margin: 0 0 22px;
}

.theme-spotlight .faq-widget .accordion {
    background: var(--surface2);
    color: var(--text);
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 15px;
    padding: 18px 24px;
    margin: 0;
    border: 1px solid var(--line);
    border-bottom: none;
    border-radius: var(--radius-card) var(--radius-card) 0 0;
    transition: background .15s ease, border-color .15s ease;
}

.theme-spotlight .faq-widget .accordion.active,
.theme-spotlight .faq-widget .accordion:hover {
    background: var(--surface);
    border-color: var(--line2);
}

.theme-spotlight .faq-widget .accordion:after {
    color: var(--muted);
    transition: color .15s ease;
}

.theme-spotlight .faq-widget .accordion.active:after,
.theme-spotlight .faq-widget .accordion:hover:after {
    color: var(--accent);
}

/* Geen border-top/bottom op .panel: de JS zet max-height = scrollHeight,
   wat borders niet meerekent -- een verticale border zou dus een paar px
   afgeknipt worden tijdens het openklappen. Links/rechts is wel veilig
   (telt niet mee in de hoogte). De "één kaart"-illusie komt van de
   kleurtint-overgang (surface2 -> surface) + radius alleen op de
   buitenste hoeken, niet van een omsluitende rand. */
.theme-spotlight .faq-widget .panel {
    background: var(--surface);
    border-left: 1px solid var(--line);
    border-right: 1px solid var(--line);
    border-radius: 0 0 var(--radius-card) var(--radius-card);
    padding: 20px 24px;
    margin: 0 0 18px;
}

.theme-spotlight .faq-widget .panel:last-of-type {
    margin-bottom: 0;
}

.theme-spotlight .faq-widget .panel p {
    font-family: var(--font-body);
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--copy-2);
    margin: 0 0 10px;
}

.theme-spotlight .faq-widget .panel p:last-child {
    margin-bottom: 0;
}

.theme-spotlight .faq-widget .panel ul {
    margin: 10px 0 0;
    padding-left: 20px;
}

.theme-spotlight .faq-widget .panel li {
    font-family: var(--font-body);
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--copy-3);
    margin-bottom: 6px;
}

.theme-spotlight .faq-widget .panel li::marker {
    color: var(--accent);
}

.theme-spotlight .faq-widget .panel li:last-child {
    margin-bottom: 0;
}
