﻿/* =============================================
   MusicRadioForAll – Public stylesheet
   Dark-only · Orange/black broadcast theme
   ============================================= */

/* === Reset === */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

/* === Theme variables (dark only) === */
:root {
    /* Warmere donkere tonen zoals de vorige live site */
    --bg-body: #151518;
    --bg-surface: #1e1e22;
    --bg-card: #252528;
    --bg-card-hover: #2e2e32;
    --bg-input: #28282c;
    --text: #e4e2dc;
    --text-primary: var(--text);
    --text-secondary: #a09e98;
    --text-muted: #6e6c68;
    --border: rgba(255,255,255,0.08);
    --border-strong: rgba(255,255,255,0.14);
    --accent: #C05810;
    --accent-light: #D06A22;
    --accent-rgb: 192,88,16;
    --pink: var(--accent-light);
    --gradient: linear-gradient(135deg, var(--accent), var(--accent-light));
    --gradient-warm: linear-gradient(135deg, var(--accent), var(--accent-light));
    --shadow: none;
    --shadow-lg: none;
    --glow: none;
    --nav-bg: rgba(21,21,24,0.7);
    --nav-bg-solid: rgba(21,21,24,0.95);
    --player-bg: rgba(24,24,28,0.95);
    --overlay: rgba(21,21,24,0.6);
    --img-filter: none;
    --font-ui: 'Satoshi', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-display: 'Satoshi', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-body: 'Satoshi', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --dim: #6e6c68;
    --radius-sm: 10px;
    --radius-md: 16px;
    --radius-lg: 24px;
    --player-h: 80px;
    --nav-h: 70px;
    --banner-h: 42px;
    /* --top-banners-h is set by first-paint + body.has-* classes — do NOT reset to 0 here (F5 jump) */
    --space-section: 52px;
    /* Banner under transparent nav — slightly deeper than logo accent (less loud) */
    --banner-bg: #A04A0E;
    /* Large diagonal facets — same language as stream/fallback.svg */
    --banner-stripe: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201200%20320%22%20preserveAspectRatio%3D%22none%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22a%22%20x1%3D%220%22%20y1%3D%220%22%20x2%3D%221%22%20y2%3D%221%22%3E%3Cstop%20offset%3D%220%25%22%20stop-color%3D%22%23C65A10%22%2F%3E%3Cstop%20offset%3D%22100%25%22%20stop-color%3D%22%23E4782E%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Cpath%20d%3D%22M0%200%20H1200%20V115%20L0%20320%20Z%22%20fill%3D%22%236e3510%22%20opacity%3D%22.92%22%2F%3E%3Cpath%20d%3D%22M0%200%20H1200%20V115%20L0%20320%20Z%22%20fill%3D%22url%28%23a%29%22%20opacity%3D%22.32%22%2F%3E%3Cpath%20d%3D%22M0%200%20L780%200%20L0%20215%20Z%22%20fill%3D%22%23fff%22%20opacity%3D%22.05%22%2F%3E%3Cpath%20d%3D%22M520%200%20H1200%20V255%20L640%200%20Z%22%20fill%3D%22%23000%22%20opacity%3D%22.17%22%2F%3E%3C%2Fsvg%3E");
    --banner-stripe-right: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201200%20320%22%20preserveAspectRatio%3D%22none%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22a%22%20x1%3D%221%22%20y1%3D%220%22%20x2%3D%220%22%20y2%3D%221%22%3E%3Cstop%20offset%3D%220%25%22%20stop-color%3D%22%23C65A10%22%2F%3E%3Cstop%20offset%3D%22100%25%22%20stop-color%3D%22%23E4782E%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Cpath%20d%3D%22M1200%200%20H0%20V115%20L1200%20320%20Z%22%20fill%3D%22%236e3510%22%20opacity%3D%22.92%22%2F%3E%3Cpath%20d%3D%22M1200%200%20H0%20V115%20L1200%20320%20Z%22%20fill%3D%22url%28%23a%29%22%20opacity%3D%22.32%22%2F%3E%3Cpath%20d%3D%22M1200%200%20L420%200%20L1200%20215%20Z%22%20fill%3D%22%23fff%22%20opacity%3D%22.05%22%2F%3E%3Cpath%20d%3D%22M680%200%20H0%20V255%20L560%200%20Z%22%20fill%3D%22%23000%22%20opacity%3D%22.17%22%2F%3E%3C%2Fsvg%3E");
}

/* === Base === */
html {
    scroll-behavior:smooth;
    scroll-padding-top:calc(var(--nav-h) + 16px);
    /* Do NOT set overflow-x on html — with fixed nav it causes a 1px top gap in Chromium */
    scrollbar-gutter:stable;
    font-size:17.5px;
    /* Match page fill — orange only on .page-header / hero banners, not the nav
       (otherwise 4K / short pages show orange at edges & under the player) */
    background-color:var(--bg-body);
    min-height:100%;
}

body {
    font-family:var(--font-ui);
    font-size:1.125rem;
    background:var(--bg-body);
    color:var(--text);
    line-height:1.72;
    letter-spacing:.01em;
    overflow-x:hidden;
    min-height:100dvh;
    padding-bottom:calc(var(--player-h) + env(safe-area-inset-bottom, 0px));
    -webkit-font-smoothing:antialiased;
    transition:background .3s, color .3s;
}

h1, h2, h3, h4, .page-title, .section-title, .hero-player-track,
.nav-links a, .player-title, .footer-col h4, .stat-value, .hit-title,
.btn, .hero-listen-btn, .hero-live-badge, .news-card-title, .schedule-show-name {
    font-family:var(--font-display);
    letter-spacing:-.01em;
}

/* Long-form reading */
.article-body, .article-content, .news-card-excerpt, .page-sub,
.footer-tagline, .cookie-banner-text p, .content-card p,
.team-bio, .about-text, .form-group label + input,
.form-group textarea, .form-group input, .form-group select {
    font-family:var(--font-body);
    letter-spacing:.015em;
}

a { text-decoration:none; color:inherit; transition:color .2s }
img { max-width:100%; display:block; filter:var(--img-filter) }
button { border:none; background:none; cursor:pointer; font-family:inherit; color:inherit }
ul { list-style:none }

.container { max-width:1120px; margin:0 auto; padding:0 24px }
.hero-player .container, .gedraaid-section .container { overflow:visible }

/* === Navigation ===
   Always dark menu bar. Orange zigzag stays on hero / page-header / article banners.
   When announcement/holiday banners are on, they sit ABOVE the nav. */
/* Prefer body classes (set in PHP) over :has() — :has fails mid-parse on F5 and causes layout jump */
body.has-announcement,
body.has-holiday,
body:has(.announcement-banner),
body:has(.holiday-banner) {
    --top-banners-h: var(--banner-h);
}
body.has-announcement.has-holiday,
body:has(.announcement-banner):has(.holiday-banner) {
    --top-banners-h: calc(var(--banner-h) * 2);
}

.navbar {
    position:fixed; top:var(--top-banners-h); left:0; right:0; z-index:1000;
    height:calc(var(--nav-h) + env(safe-area-inset-top, 0px));
    padding-top:env(safe-area-inset-top, 0px);
    background-color:rgba(10,10,11,1);
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    border-bottom:1px solid var(--border);
    box-shadow:none;
    transition:top .25s ease;
}
.navbar.scrolled {
    /* Kept for backwards compatibility; same as default */
    background-color:rgba(10,10,11,1);
    border-bottom-color:var(--border);
    box-shadow:none;
}
#pageContent {
    min-height:60vh;
}
@keyframes pageIn {
    from { opacity: 0 }
    to   { opacity: 1 }
}
/* Keep drawer above backdrop (backdrop is a sibling; navbar creates a stacking context) */
.navbar.menu-open { z-index:1110 }
.nav-container {
    max-width:1120px; margin:0 auto; padding:0 24px;
    height:var(--nav-h); display:flex; align-items:center; gap:12px;
}
.nav-logo { display:flex; align-items:center; z-index:1001; flex-shrink:0; position:relative }
.nav-logo-img {
    height:36px; width:auto; max-width:180px;
    object-fit:contain; object-position:left center;
    /* White rim around logo */
    filter: drop-shadow(0 0 .7px rgba(255,255,255,.95))
            drop-shadow(0 0 1.2px rgba(255,255,255,.7))
            drop-shadow(0 0 2px rgba(255,255,255,.35));
}
.nav-links { display:flex; gap:0; list-style:none; margin-left:8px; flex-wrap:nowrap; min-width:0 }
.nav-links li { display:flex }
.nav-links a {
    display:flex; align-items:center; padding:8px 14px; font-size:.95rem; font-weight:600;
    color:var(--text-secondary); border-radius:10px; transition:all .2s; white-space:nowrap;
    letter-spacing:0;
}
.nav-links a:hover,
.nav-links a.active {
    color:var(--accent-light);
    background:rgba(var(--accent-rgb),.1);
}
.nav-item-dropdown {
    position:relative;
    display:flex;
}
.nav-dropdown-head {
    display:flex;
    align-items:center;
    min-width:0;
}
.nav-dropdown-toggle {
    display:none;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    margin:0;
    border:none;
    border-radius:12px;
    background:transparent;
    color:var(--text-secondary);
    cursor:pointer;
    flex-shrink:0;
}
.nav-dropdown-toggle i {
    font-size:.72rem;
    transition:transform .2s;
}
.nav-item-dropdown.open .nav-dropdown-toggle i {
    transform:rotate(180deg);
}
.nav-dropdown {
    list-style:none;
    margin:0;
    padding:10px 8px 8px;
    min-width:180px;
    position:absolute;
    top:100%;
    left:0;
    background:var(--bg-surface, #1a1a1d);
    border:1px solid var(--border);
    border-radius:12px;
    box-shadow:none;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(4px);
    transition:opacity .18s ease, transform .18s ease, visibility .18s;
    z-index:1200;
}
/* Invisible hover bridge so the menu stays open while moving the cursor */
.nav-dropdown::before {
    content:'';
    position:absolute;
    left:0; right:0; bottom:100%;
    height:10px;
}
.nav-item-dropdown:hover > .nav-dropdown,
.nav-item-dropdown:focus-within > .nav-dropdown {
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateY(0);
}
.nav-dropdown a {
    display:flex;
    width:100%;
    padding:10px 12px;
    border-radius:8px;
    font-size:.9rem;
    font-weight:600;
    color:var(--text-secondary);
}
.nav-dropdown a:hover,
.nav-dropdown a:focus-visible {
    color:var(--accent-light);
    background:rgba(var(--accent-rgb),.1);
}
.nav-actions { display:flex; align-items:center; gap:6px; z-index:10; margin-left:auto }

/* Nav bell (notifications + install menu) */
.nav-bell-wrap { position:relative }
.nav-bell-btn {
    width:44px; height:44px; border-radius:12px;
    display:flex; align-items:center; justify-content:center;
    font-size:.95rem; color:var(--text-secondary);
    transition:all .2s; background:none; border:none; cursor:pointer;
}
.nav-bell-btn:hover { color:var(--accent-light); background:rgba(var(--accent-rgb),.1) }
.nav-bell-btn.push-active { color:var(--accent-light) }
.nav-bell-btn.push-active i { animation:bellRing 2s ease-in-out }
.nav-bell-menu {
    position:absolute; top:calc(100% + 10px); right:0;
    min-width:260px; padding:6px;
    background:var(--bg-card); border:1px solid var(--border);
    border-radius:12px; box-shadow:none;
    opacity:0; visibility:hidden; transform:translateY(-6px);
    transition:all .2s cubic-bezier(.4,0,.2,1);
    z-index:1100;
}
.nav-bell-menu.open {
    opacity:1; visibility:visible; transform:translateY(0);
}
.nav-bell-menu-item {
    display:flex; align-items:flex-start; gap:12px;
    width:100%; padding:12px; border:none; border-radius:8px;
    background:none; color:var(--text-secondary); text-align:left;
    font-family:inherit; cursor:pointer; transition:all .15s;
}
.nav-bell-menu-item:hover { background:rgba(var(--accent-rgb),.08); color:var(--text-primary) }
.nav-bell-menu-item > i {
    width:18px; margin-top:2px; flex-shrink:0;
    color:var(--accent-light); text-align:center;
}
.nav-bell-menu-text { display:flex; flex-direction:column; gap:2px; min-width:0 }
.nav-bell-menu-text strong { font-size:.85rem; font-weight:700; color:var(--text-primary); line-height:1.3 }
.nav-bell-menu-text small { font-size:.75rem; color:var(--text-secondary); line-height:1.35 }

/* Hamburger */
.nav-toggle {
    display:none; flex-direction:column; justify-content:center; align-items:center; gap:5px;
    width:44px; height:44px; padding:0; border-radius:12px;
}

/* Nav search button */
.nav-search-btn {
    width:44px; height:44px; border-radius:12px;
    display:flex; align-items:center; justify-content:center;
    font-size:.95rem; color:var(--text-secondary);
    transition:all .2s; background:none; border:none; cursor:pointer;
}
.nav-search-btn:hover { color:var(--accent-light); background:rgba(var(--accent-rgb),.1) }

/* Mobile nav backdrop – below open navbar/drawer */
.nav-backdrop {
    display:none;
    position:fixed; inset:0; z-index:1100;
    background:rgba(0,0,0,.55);
    -webkit-backdrop-filter:blur(3px);
    backdrop-filter:blur(3px);
    opacity:0; visibility:hidden; pointer-events:none;
    transition:opacity .3s ease, visibility .3s;
}
.nav-backdrop.open {
    opacity:1; visibility:visible; pointer-events:auto;
}

/* =============================================
   ANNOUNCEMENT BANNER — above navbar, solid fill
   ============================================= */
.announcement-banner {
    position:fixed; top:0; left:0; right:0; z-index:1002;
    padding:0 24px;
    min-height:var(--banner-h);
    height:var(--banner-h);
    font-size:.9rem; font-weight:600;
    text-align:center;
    display:flex; align-items:center; justify-content:center;
    border-bottom:none;
}
.announcement-inner {
    max-width:1200px; width:100%; margin:0 auto;
    display:flex; align-items:center; justify-content:center; gap:10px;
}
.announcement-banner i { flex-shrink:0; font-size:1rem }
.announcement-info {
    background:#2a4060;
    color:var(--text);
}
.announcement-warning {
    background:#7a5a1e;
    color:var(--text);
}
.announcement-danger {
    background:#7a3030;
    color:var(--text);
}

/* =============================================
   HOLIDAY BANNER — above navbar, solid + seasonal deco
   ============================================= */
.holiday-banner {
    position:fixed; top:0; left:0; right:0; z-index:1001;
    padding:0 56px;
    min-height:var(--banner-h);
    height:var(--banner-h);
    font-size:.9rem; font-weight:700;
    text-align:center;
    display:flex; align-items:center; justify-content:center;
    gap:12px;
    overflow:hidden;
    letter-spacing:.01em;
    background:#A04A0E;
    color:var(--text);
}
body.has-announcement .holiday-banner,
body:has(.announcement-banner) .holiday-banner {
    top:var(--banner-h);
}
.holiday-inner {
    position:relative; z-index:1;
    max-width:720px; margin:0 auto;
    display:flex; align-items:center; justify-content:center; gap:10px;
}
.holiday-inner i { flex-shrink:0; font-size:1.05rem }
.holiday-deco {
    position:absolute; top:50%; transform:translateY(-50%);
    display:flex; gap:14px; align-items:center;
    pointer-events:none; z-index:0;
    opacity:.9;
}
.holiday-deco--left { left:16px }
.holiday-deco--right { right:16px }
.holiday-deco i {
    font-size:.95rem;
    animation:holidayTwinkle 2.4s ease-in-out infinite;
}
.holiday-deco i:nth-child(2) { animation-delay:.6s; font-size:.8rem; opacity:.75 }
@keyframes holidayTwinkle {
    0%, 100% { transform:translateY(0) scale(1); opacity:.85 }
    50% { transform:translateY(-2px) scale(1.12); opacity:1 }
}

/* Sharp facets — same as hero / section / popup (fallback.svg geometry) */
.holiday-banner::before {
    content:'';
    position:absolute; inset:0;
    pointer-events:none;
    opacity:1;
    background-image:var(--banner-stripe);
    background-size:100% 100%;
    background-repeat:no-repeat;
}

/* Solid seasonal themes — muted, not neon */
.holiday-christmas {
    background:linear-gradient(90deg, #1a3d28 0%, #245536 40%, #7a2a2a 100%);
    color:var(--text);
}
.holiday-christmas .holiday-deco i { color:#d4c48a }
.holiday-christmas::after {
    content:'';
    position:absolute; inset:0;
    pointer-events:none;
    background:repeating-linear-gradient(
        -55deg,
        transparent,
        transparent 10px,
        rgba(255,255,255,.05) 10px,
        rgba(255,255,255,.05) 12px
    );
}

.holiday-newyear {
    background:linear-gradient(90deg, #1a1838 0%, #2a2758 50%, #6a4a18 100%);
    color:var(--text);
}
.holiday-newyear .holiday-deco i { color:#dcc98a }
.holiday-newyear::before {
    opacity:.22;
    background-image:
        radial-gradient(circle, #dcc98a 1px, transparent 2px),
        radial-gradient(circle, #fff 1px, transparent 2px);
    background-size:28px 28px, 44px 44px;
}

.holiday-kingsday {
    background:linear-gradient(90deg, #8a4512 0%, #9a5a18 50%, #8a4512 100%);
    color:var(--text);
}
.holiday-kingsday .holiday-deco i { color:#e8dcc8 }
.holiday-kingsday::before {
    opacity:.15;
    background-image:radial-gradient(circle, #fff 2px, transparent 3px);
    background-size:22px 22px;
}

.holiday-easter {
    background:linear-gradient(90deg, #4a3560 0%, #5a4570 45%, #8a6a2a 100%);
    color:var(--text);
}
.holiday-easter .holiday-deco i { color:#d8c890 }

.holiday-sinterklaas {
    background:linear-gradient(90deg, #5a1e1e 0%, #7a2a2a 55%, #8a6a1e 100%);
    color:var(--text);
}
.holiday-sinterklaas .holiday-deco i { color:#d4c48a }

.holiday-halloween {
    background:linear-gradient(90deg, #1a1228 0%, #3a2a58 40%, #8a4a1e 100%);
    color:var(--text);
}
.holiday-halloween .holiday-deco i { color:#d4a878 }
.holiday-halloween::before {
    opacity:.2;
    background-image:
        radial-gradient(circle, #d4a878 1.5px, transparent 2px),
        radial-gradient(circle, #a890c8 1px, transparent 2px);
    background-size:32px 32px, 48px 48px;
}

.holiday-valentines {
    background:linear-gradient(90deg, #5a2030 0%, #7a3040 50%, #8a4a58 100%);
    color:var(--text);
}
.holiday-valentines .holiday-deco i { color:#d8b0b8 }
.holiday-valentines .holiday-deco i:first-child {
    animation:holidayHeartbeat 1.2s ease-in-out infinite;
}
@keyframes holidayHeartbeat {
    0%, 100% { transform:scale(1) }
    15% { transform:scale(1.25) }
    30% { transform:scale(1) }
    45% { transform:scale(1.18) }
}

.holiday-custom {
    background:linear-gradient(90deg, var(--banner-bg) 0%, var(--accent) 100%);
    color:var(--text);
}
.holiday-custom .holiday-deco i { color:var(--text) }

/* Banner clearance uses --top-banners-h (first-paint + body.has-*) — no separate :has padding overrides */

@media (max-width:720px) {
    .holiday-deco { display:none }
    .holiday-banner { padding:0 16px }
}

/* =============================================
   SEASONAL EFFECTS
   ============================================= */
.seasonal-canvas {
    position:fixed; top:0; left:0; right:0; height:100vh;
    pointer-events:none; z-index:50; overflow:hidden;
}
.seasonal-particle {
    position:absolute; pointer-events:none;
}
/* Snow */
.sp-snow {
    width:6px; height:6px; background:#fff; border-radius:50%;
    opacity:.7; filter:blur(0.5px);
    animation:snowFall linear infinite;
}
@keyframes snowFall {
    0% { transform:translateX(0) rotate(0deg) }
    25% { transform:translateX(15px) rotate(90deg) }
    50% { transform:translateX(-10px) rotate(180deg) }
    75% { transform:translateX(20px) rotate(270deg) }
    100% { transform:translateX(5px) rotate(360deg) }
}
/* Leaves */
.sp-leaf {
    font-size:16px; opacity:.6;
    animation:leafFall linear infinite;
}
@keyframes leafFall {
    0% { transform:translateX(0) rotate(0deg) }
    25% { transform:translateX(30px) rotate(90deg) }
    50% { transform:translateX(-20px) rotate(180deg) }
    75% { transform:translateX(40px) rotate(270deg) }
    100% { transform:translateX(10px) rotate(360deg) }
}
/* Hearts */
.sp-heart {
    font-size:14px; color:rgba(244,67,54,.7); opacity:.6;
    animation:heartFloat linear infinite;
}
@keyframes heartFloat {
    0% { transform:translateX(0) scale(1) }
    50% { transform:translateX(20px) scale(1.2) }
    100% { transform:translateX(-10px) scale(1) }
}
/* Confetti */
.sp-confetti {
    width:6px; height:12px; border-radius:1px; opacity:.7;
    animation:confettiFall linear infinite;
}
@keyframes confettiFall {
    0% { transform:rotateX(0) rotateZ(0) }
    100% { transform:rotateX(720deg) rotateZ(360deg) }
}
/* Fireworks */
.sp-firework {
    width:3px; height:3px; border-radius:50%; opacity:.8;
    animation:fwSparkle ease-out forwards;
}
@keyframes fwSparkle {
    0% { transform:scale(0); opacity:1 }
    50% { transform:scale(1); opacity:.8 }
    100% { transform:scale(0); opacity:0 }
}
/* Rain */
.sp-rain {
    width:1px; height:12px; background:rgba(100,181,246,.5); border-radius:1px;
    animation:rainFall linear infinite;
}
@keyframes rainFall {
    0% { transform:translateX(0) }
    100% { transform:translateX(-5px) }
}
/* Blossoms */
.sp-blossom {
    font-size:14px; opacity:.5;
    animation:blossomFall linear infinite;
}
@keyframes blossomFall {
    0% { transform:translateX(0) rotate(0deg) }
    33% { transform:translateX(25px) rotate(120deg) }
    66% { transform:translateX(-15px) rotate(240deg) }
    100% { transform:translateX(10px) rotate(360deg) }
}

/* =============================================
   SEARCH OVERLAY
   ============================================= */
.search-overlay {
    position:fixed; inset:0; z-index:2000;
    opacity:0; pointer-events:none;
    transition:opacity .25s;
}
.search-overlay.open {
    opacity:1; pointer-events:auto;
}
.search-overlay-bg {
    position:absolute; inset:0;
    background:rgba(0,0,0,.6);
    backdrop-filter:blur(8px);
}
.search-overlay-content {
    position:relative; z-index:1;
    max-width:640px; width:92%; margin:80px auto 0;
    background:var(--bg-surface);
    border:1px solid var(--border-strong);
    border-radius:20px;
    box-shadow:none;
    overflow:hidden;
    transform:translateY(-12px);
    transition:transform .25s;
}
.search-overlay.open .search-overlay-content {
    transform:translateY(0);
}
.search-overlay-header {
    display:flex; align-items:center; gap:12px;
    padding:4px 4px 4px 0;
    border-bottom:1px solid var(--border);
}
.search-overlay-input-wrap {
    flex:1; display:flex; align-items:center; gap:12px;
    padding:14px 20px;
}
.search-overlay-input-wrap i {
    color:var(--accent-light); font-size:1rem; flex-shrink:0;
}
.search-overlay-input-wrap input {
    flex:1; background:none; border:none; outline:none;
    font-size:1.05rem; color:var(--text); font-family:inherit;
}
.search-overlay-input-wrap input::placeholder {
    color:var(--text-muted);
}
.search-overlay-input-wrap kbd {
    padding:2px 8px; border-radius:6px;
    background:var(--bg-card); border:1px solid var(--border);
    font-size:.7rem; font-family:inherit; color:var(--text-muted);
    flex-shrink:0;
}
.search-overlay-close {
    width:40px; height:40px; border-radius:10px; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    color:var(--text-muted); font-size:1.1rem;
    background:none; border:none; cursor:pointer;
    transition:all .2s; margin-right:8px;
}
.search-overlay-close:hover {
    color:var(--text); background:rgba(var(--accent-rgb),.1);
}
.search-overlay-results {
    max-height:420px; overflow-y:auto;
    padding:8px;
}
.search-overlay-hint {
    text-align:center; padding:40px 20px;
    color:var(--text-muted); font-size:.9rem;
}
.search-overlay-hint i { margin-right:6px; color:var(--accent-light) }
.search-overlay-empty {
    text-align:center; padding:40px 20px;
    color:var(--text-muted); font-size:.9rem;
}
.search-overlay-empty i { display:block; font-size:1.5rem; margin-bottom:8px; opacity:.4 }
.search-result-item {
    display:flex; align-items:center; gap:14px;
    padding:12px 14px; border-radius:12px;
    text-decoration:none; color:inherit;
    transition:background .15s;
}
.search-result-item:hover {
    background:rgba(var(--accent-rgb),.08);
}
.search-result-img {
    width:56px; height:56px; flex-shrink:0;
    border-radius:10px; overflow:hidden;
    background:var(--bg-card);
}
.search-result-img img {
    width:100%; height:100%; object-fit:cover;
}
.search-result-img-placeholder {
    width:100%; height:100%;
    display:flex; align-items:center; justify-content:center;
    background:var(--gradient); color:var(--text-muted); font-size:1rem;
}
.search-result-body { flex:1; min-width:0 }
.search-result-cat {
    font-size:.68rem; font-weight:600; text-transform:uppercase; letter-spacing:.5px;
    color:var(--accent-light); margin-bottom:2px;
}
.search-result-title {
    font-size:.92rem; font-weight:600;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.search-result-meta {
    font-size:.78rem; color:var(--text-muted); margin-top:2px;
}
.search-result-arrow {
    color:var(--text-muted); font-size:.75rem; flex-shrink:0;
    transition:all .2s;
}
.search-result-item:hover .search-result-arrow {
    color:var(--accent); transform:translateX(3px);
}
.search-overlay-footer {
    padding:10px 16px; border-top:1px solid var(--border);
    text-align:center;
}
.search-overlay-footer a {
    font-size:.85rem; font-weight:600; color:var(--accent-light);
    text-decoration:none; transition:color .2s;
}
.search-overlay-footer a:hover { color:var(--accent) }

@media(max-width:480px) {
    .search-overlay-content { margin:16px auto 0; width:96%; border-radius:16px }
    .search-overlay-results { max-height:60vh }
}
.nav-toggle span {
    display:block; width:22px; height:2px;
    background:var(--text); border-radius:2px; transition:all .3s;
}
.nav-toggle.active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.nav-toggle.active span:nth-child(2){opacity:0}
.nav-toggle.active span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}

/* === Hero: compact live player card === */
.hero-player {
    padding:calc(var(--nav-h) + var(--top-banners-h, 0px) + env(safe-area-inset-top, 0px) + 46px) 0 80px;
    position:relative;
    border-bottom:1px solid var(--border);
}
/* Banner paints in style.css already — avoids black flash if theme CSS loads later */
.hero-player-bg {
    position:absolute; inset:auto; top:0; left:0; right:0; bottom:90px;
    z-index:0;
    background-color:var(--banner-bg);
    background-image:var(--banner-stripe);
    background-size:100% 100%;
    background-repeat:no-repeat;
    background-position:0 0;
}
.hero-player-bg::after {
    display:none;
}
.hero-player-banner {
    position:absolute; inset:0;
    background-size:cover; background-position:center;
    filter:blur(12px) brightness(.35) saturate(1.35);
    transform:scale(1.08);
    z-index:1;
    opacity:.85;
}
/* News/team/show: orange banner + cover clip handled in theme-broadcast */
.article-hero {
    background: transparent;
}
.hero-player-card {
    position:relative; z-index:1;
    display:grid;
    grid-template-columns:auto minmax(0, 1fr);
    align-items:stretch;
    width:100%;
    max-width:none;
    margin:0;
    background:var(--bg-card);
    border:1px solid var(--border);
    border-radius:var(--radius-md);
    overflow:hidden;
    box-shadow:none;
}
.hero-player-art {
    position:relative;
    overflow:hidden;
    padding:0;
    min-width:240px;
    max-width:400px;
    width:auto;
    height:auto;
    aspect-ratio:1;
    background:#0a0a0b;
    z-index:1;
}
.hero-player-art::after { display:none }
.hero-art-wrap {
    position:absolute; inset:0;
    width:100%; height:100%;
    max-width:none;
    overflow:hidden;
    border-radius:0;
    box-shadow:none;
}
.hero-player-art-img {
    position:relative; z-index:1;
    width:100%; height:100%;
    object-fit:cover;
    border-radius:0;
    aspect-ratio:auto;
    transition:transform .6s cubic-bezier(.22,1,.36,1), opacity .8s ease;
    display:block;
}
.hero-player-art:hover .hero-player-art-img { transform:scale(1.03) }

.hero-player-body {
    min-width:0;
    padding:24px 28px 22px;
    display:flex; flex-direction:column;
    position:relative; z-index:1;
    background:var(--bg-card);
}
.hero-player-art::before { display:none }
.hero-player-show-info {
    font-size:.88rem; color:var(--text-secondary); margin:0 0 12px;
    font-weight:500;
}
.hero-player-show-info:empty { display:none }

.hero-now-row {
    display:flex; align-items:center; gap:16px;
    margin-bottom:8px; min-width:0;
}
.hero-now-text { flex:1; min-width:0 }
.hero-title-row {
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
    margin-bottom:6px;
}
.hero-play-circle {
    width:56px; height:56px; border-radius:50%;
    background:var(--gradient);
    display:inline-flex; align-items:center; justify-content:center;
    font-size:1.15rem; color:var(--text); flex-shrink:0;
    box-shadow:none;
    transition:transform .25s, box-shadow .25s;
    border:none;
    cursor:pointer;
    padding:0;
    line-height:1;
    align-self:center;
}
.hero-play-circle i {
    display:block;
    line-height:1;
    /* Font Awesome play triangle is optically left-heavy */
    transform: translateX(1px);
}
.hero-play-circle:hover {
    transform:scale(1.06);
    box-shadow:none;
}
.hero-play-circle:active { transform:scale(.95) }
.hero-play-circle.is-playing {
    animation:playPulse 2.4s ease-in-out infinite;
}
.hero-play-label { display:none !important }
.hero-listen-btn { display:none } /* legacy pill CTA removed */
.hero-live-badge, .hero-live-tag { display:none !important }
.hero-live-pill { display:none !important }
.hero-live-row.is-live .hero-live-pill { display:inline-flex !important }

.live-dot {
    width:8px; height:8px; background:#b84a4a; border-radius:50%;
    animation:pulseDot 2s ease-in-out infinite;
}
@keyframes pulseDot {
    0%,100%{ opacity:1 }
    50%{ opacity:.55 }
}
@keyframes playPulse {
    0%,100% { opacity:1 }
    50% { opacity:.88 }
}

.hero-player-track {
    font-family:var(--font-display);
    font-size:clamp(1.4rem, 2.6vw, 1.95rem); font-weight:700; letter-spacing:-.3px;
    line-height:1.15; margin:0 0 4px;
    min-width:0;
    display:flex; align-items:center; gap:10px;
    overflow:hidden; white-space:nowrap;
    text-overflow:ellipsis;
}
.hero-player-track .marquee-text { flex:1; min-width:0 }
.hero-player-artist {
    font-size:1.05rem; color:var(--text-secondary);
    overflow:hidden; white-space:nowrap;
    text-overflow:ellipsis;
    display:flex; align-items:center;
    font-weight:500;
}
.hero-player-artist .marquee-text { flex:1; min-width:0 }

@keyframes marqueeScroll {
    0% { transform:translateX(0) }
    10% { transform:translateX(0) }
    90% { transform:translateX(var(--marquee-dist)) }
    100% { transform:translateX(var(--marquee-dist)) }
}
.marquee-text {
    display:inline-block;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    max-width:100%;
}
.marquee-text.marquee-scroll {
    overflow:visible;
    text-overflow:clip;
    animation:marqueeScroll var(--marquee-dur, 12s) linear infinite alternate;
}
.marquee-active {
    -webkit-mask-image:linear-gradient(90deg, transparent 0%, #000 4%, #000 92%, transparent 100%);
    mask-image:linear-gradient(90deg, transparent 0%, #000 4%, #000 92%, transparent 100%);
}

.hero-player-tracks {
    display:flex; flex-direction:column;
    margin-top:auto;
}
.hero-track-item {
    display:flex; align-items:center; gap:12px;
    padding:9px 10px;
    margin:0 -10px;
    border-top:1px solid var(--border);
    border-radius:10px;
    text-decoration:none; color:inherit;
    transition:background .2s;
    cursor:pointer;
}
.hero-track-item:hover { background:rgba(var(--accent-rgb),.06) }
.hero-track-item-time {
    flex-shrink:0; width:44px;
    font-size:.85rem; font-weight:700; color:var(--accent-light);
    font-variant-numeric:tabular-nums;
}
.hero-track-item-art {
    width:52px; height:52px; flex-shrink:0;
    border-radius:10px; overflow:hidden;
    background:var(--bg-card);
}
.hero-track-item-art img {
    width:100%; height:100%; object-fit:cover;
    transition:transform .35s ease;
}
.hero-track-item:hover .hero-track-item-art img { transform:scale(1.06) }
.hero-track-item-meta { display:flex; flex-direction:column; min-width:0 }
.hero-track-item-title {
    font-size:1.02rem; font-weight:650;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
    display:flex; align-items:center;
}
.hero-track-item-title .marquee-text { flex:1; min-width:0 }
.hero-track-item-artist {
    font-size:.92rem; color:var(--text-secondary); margin-top:1px;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
    display:flex; align-items:center;
}
.hero-track-item-artist .marquee-text { flex:1; min-width:0 }

.hero-all-link {
    display:flex; align-items:center; justify-content:flex-end;
    gap:10px;
    margin-top:16px; padding-top:16px;
    border-top:1px solid var(--border);
    font-size:.95rem; font-weight:650; color:var(--text);
    text-decoration:none; transition:color .2s, gap .2s;
}
.hero-all-link:hover { color:var(--accent-light); gap:14px }
.hero-link-arrow {
    width:28px; height:28px; border-radius:50%;
    background:rgba(var(--accent-rgb),.12); color:var(--accent-light);
    display:inline-flex; align-items:center; justify-content:center;
    font-size:.75rem;
}

/* Recent + Highlight row (home) */
.home-row {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:40px;
    align-items:start;
}
.home-row-col {
    min-width:0;
    overflow:hidden;
    display:flex;
    flex-direction:column;
}
.home-row-col h3 {
    font-family:var(--font-display);
    font-size:clamp(1.65rem,3.2vw,2.15rem);
    font-weight:700;
    letter-spacing:-.02em;
    margin-bottom:20px;
    flex-shrink:0;
    display:inline-block;
    width:fit-content;
    max-width:100%;
    align-self:flex-start;
}
.home-row-col h3::after {
    content:'';
    display:block;
    width:100%;
    height:3px;
    margin:6px 0 0;
    background:var(--accent-light);
    border-radius:2px;
}
/* Recent tracks list — compact (match poll) */
.home-recent-list {
    display:flex; flex-direction:column; gap:0;
}
.home-recent-item {
    display:flex; align-items:center; gap:10px;
    padding:8px 10px;
    background:var(--bg-card);
    border:1px solid var(--border);
    text-decoration:none; color:inherit;
    transition:all .2s;
    min-width:0;
}
.home-recent-item:first-child { border-radius:12px 12px 0 0 }
.home-recent-item:last-child { border-radius:0 0 12px 12px }
.home-recent-item:only-child { border-radius:12px }
.home-recent-item + .home-recent-item { border-top:none }
.home-recent-item:hover {
    background:rgba(var(--accent-rgb),.06);
    border-color:rgba(var(--accent-rgb),.2);
}
.home-recent-item:hover + .home-recent-item { border-top-color:rgba(var(--accent-rgb),.2) }
.home-recent-rank {
    width:24px; height:24px; border-radius:50%;
    color:var(--text);
    font-size:.72rem; font-weight:700;
    display:flex; align-items:center; justify-content:center;
    flex-shrink:0;
}
.home-recent-rank.rank-1 { background:linear-gradient(135deg,#c4a035,#a07820); box-shadow:none }
.home-recent-rank.rank-2 { background:linear-gradient(135deg,#C0C0C0,#8E8E8E); box-shadow:none }
.home-recent-rank.rank-3 { background:linear-gradient(135deg,#CD7F32,#A0522D); box-shadow:none }
.home-recent-rank.rank-4 { background:var(--bg-surface); color:var(--text-secondary); box-shadow:none }
.home-recent-art {
    width:40px; height:40px; flex-shrink:0;
    border-radius:8px; overflow:hidden;
    background:var(--bg-surface);
}
.home-recent-art img { width:100%; height:100%; object-fit:cover }
.home-recent-meta { min-width:0; flex:1 }
.home-recent-track {
    font-size:.88rem; font-weight:600; line-height:1.25;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.home-recent-artist {
    font-size:.75rem; color:var(--text-secondary); line-height:1.25;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.home-recent-link {
    display:inline-flex; align-items:center; gap:6px;
    margin-top:auto; padding-top:16px; font-size:.88rem; font-weight:600;
    color:var(--text-secondary); text-decoration:none;
    transition:color .2s;
}
.home-recent-link:hover { color:var(--accent) }
.home-recent-link i {
    display:inline-flex; align-items:center; justify-content:center;
    width:24px; height:24px; border-radius:50%;
    background:var(--accent); color:var(--text); font-size:.6rem;
    transition:transform .2s;
}
.home-recent-link:hover i { transform:translateX(3px) }

/* Home hit poll — compact, scroll if many nominees */
.home-poll {
    display:flex;
    flex-direction:column;
    min-width:0;
}
.home-poll-list {
    display:flex;
    flex-direction:column;
    gap:0;
    max-height:min(268px, 52vh);
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-width:thin;
    scrollbar-color:rgba(var(--accent-rgb),.35) transparent;
}
.home-poll-list::-webkit-scrollbar { width:5px }
.home-poll-list::-webkit-scrollbar-thumb {
    background:rgba(var(--accent-rgb),.35); border-radius:4px;
}
.home-poll-item {
    display:flex;
    align-items:center;
    gap:10px;
    padding:8px 10px;
    background:var(--bg-card);
    border:1px solid var(--border);
    transition:background .2s, border-color .2s;
    min-width:0;
}
.home-poll-item:first-child { border-radius:12px 12px 0 0 }
.home-poll-item:last-child { border-radius:0 0 12px 12px }
.home-poll-item:only-child { border-radius:12px }
.home-poll-item + .home-poll-item { border-top:none }
.home-poll-item.is-voted {
    background:rgba(var(--accent-rgb), .08);
}
.home-poll-art {
    width:40px; height:40px; border-radius:8px; overflow:hidden; flex-shrink:0;
    background:var(--bg-surface);
}
.home-poll-art img { width:100%; height:100%; object-fit:cover }
.home-poll-meta { min-width:0; flex:1 }
.home-poll-track {
    font-weight:600; font-size:.88rem; line-height:1.25;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.home-poll-artist {
    color:var(--text-secondary); font-size:.75rem; line-height:1.25;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.home-poll-bar {
    margin-top:4px; height:3px; border-radius:2px; background:rgba(var(--accent-rgb),.12); overflow:hidden;
}
.home-poll-bar span {
    display:block; height:100%; border-radius:2px;
    background:var(--accent); transition:width .4s ease;
}
.home-poll-side {
    display:flex; flex-direction:row; align-items:center; justify-content:flex-end;
    gap:8px; flex-shrink:0;
}
.home-poll-pct {
    font-size:.72rem; font-weight:700; color:var(--text-secondary); min-width:2.2em; text-align:right;
}
.home-poll-vote-btn {
    appearance:none; border:1px solid var(--border); background:var(--bg-surface);
    color:var(--text); border-radius:7px; padding:5px 10px; font-size:.72rem; font-weight:600;
    cursor:pointer; transition:background .2s, border-color .2s, color .2s;
    white-space:nowrap;
}
.home-poll-vote-btn:hover {
    border-color:var(--accent); color:var(--accent);
}
.home-poll-vote-btn:disabled {
    opacity:.55; cursor:default;
}
.home-poll-voted-label {
    font-size:.7rem; font-weight:600; color:var(--accent); white-space:nowrap;
}
.home-poll-status {
    position:absolute;
    width:1px;height:1px;padding:0;margin:-1px;
    overflow:hidden;clip:rect(0,0,0,0);border:0;
}
.home-poll-status.is-empty { visibility:hidden }
.home-poll--empty {
    padding:24px 14px; text-align:center; color:var(--text-muted); font-size:.88rem;
    border:1px dashed var(--border); border-radius:12px;
}

/* === Sections – clear visual separation === */
.section {
    padding:var(--space-section) 0;
    position:relative;
    border-top:1px solid var(--border);
}
.section-alt {
    background:var(--bg-surface);
}
.section + .section { border-top-color:var(--border-strong) }
.section-header { text-align:center; margin-bottom:22px }
.section-tag { display:none }
.section-title {
    font-family:var(--font-display);
    font-size:clamp(1.65rem,3.2vw,2.15rem); font-weight:700; letter-spacing:-.02em;
}
.section-lead {
    margin:10px 0 0;
    font-size:.95rem;
    color:var(--text-secondary);
    font-weight:500;
}

/* === Partners marquee === */
.section--partners .section-header { margin-bottom:16px }
.partners-marquee {
    overflow:hidden; position:relative;
    padding:18px 0; cursor:grab;
    --partners-fade: var(--bg-body);
}
.section-alt .partners-marquee,
.section--partners.section-alt .partners-marquee {
    --partners-fade: var(--bg-surface);
}
.partners-marquee:active { cursor:grabbing }
.partners-marquee::before,
.partners-marquee::after {
    content:''; position:absolute; top:0; bottom:0; width:min(96px, 12vw); z-index:2; pointer-events:none;
}
.partners-marquee::before { left:0; background:linear-gradient(to right,var(--partners-fade),transparent) }
.partners-marquee::after { right:0; background:linear-gradient(to left,var(--partners-fade),transparent) }
.partners-track {
    display:flex; gap:56px; align-items:center;
    width:max-content; will-change:transform;
    animation:marquee 42s linear infinite;
    user-select:none; -webkit-user-select:none;
}
.partners-track:hover { animation-play-state:paused }
@keyframes marquee {
    0%{transform:translateX(0)}
    100%{transform:translateX(-33.333%)}
}
.partner-item {
    flex-shrink:0; height:60px; opacity:.72;
    transition:opacity .25s, filter .25s, transform .25s;
    display:flex; align-items:center;
    filter:grayscale(1) brightness(1.15) contrast(1.05);
}
.partner-item:hover,
.partner-item:focus-visible {
    opacity:1;
    filter:none;
    transform:translateY(-1px);
    outline:none;
}
.partner-item img {
    height:100%; width:auto; max-width:160px;
    object-fit:contain; display:block; pointer-events:none;
}
@media (prefers-reduced-motion: reduce) {
    .partners-track {
        animation:none;
        flex-wrap:wrap;
        justify-content:center;
        width:100%;
        max-width:920px;
        margin:0 auto;
        gap:28px 40px;
    }
    .partners-marquee { cursor:default; padding:8px 0 }
    .partners-marquee::before,
    .partners-marquee::after { display:none }
    /* Hide duplicate sets used for seamless loop */
    .partner-item[aria-hidden="true"] { display:none }
}
.section-title::after {
    content:''; display:block; width:36px; height:3px;
    background:var(--accent); border-radius:2px;
    margin:14px auto 0;
}
.section-cta { text-align:center; margin-top:22px }
.empty-section-placeholder {
    padding:48px 20px; text-align:center; color:var(--text-muted);
    background:transparent; border-radius:var(--radius-md);
    border:1px dashed var(--border);
}
.empty-section-placeholder i {
    font-size:1.4rem; margin-bottom:10px; display:block; opacity:.4;
}
.empty-section-placeholder p {
    font-size:.95rem;
}

/* === Page Headers === */
.page-header {
    padding:calc(var(--nav-h) + var(--top-banners-h, 0px) + env(safe-area-inset-top, 0px) + 56px) 0 48px;
    background-color:var(--banner-bg);
    background-image:var(--banner-stripe);
    background-size:100% 100%;
    background-repeat:no-repeat;
    border-bottom:none;
    text-align:center;
}
.page-title {
    font-family:var(--font-display);
    font-size:clamp(1.85rem,4vw,2.5rem); font-weight:700; letter-spacing:-.02em;
    margin-bottom:8px;
}
.page-title::after {
    content:''; display:block; width:36px; height:3px;
    background:var(--accent); border-radius:2px;
    margin:14px auto 0;
}
.page-sub { font-size:1.05rem; color:rgba(228, 226, 220, 0.9); margin-top:14px; line-height:1.5 }

/* === Buttons === */
.btn {
    display:inline-flex; align-items:center; gap:8px;
    padding:12px 24px; border-radius:12px;
    font-size:.95rem; font-weight:600; transition:all .25s;
}
.btn-accent {
    background:var(--gradient); color:var(--text);
    box-shadow:none;
}
.btn-accent:hover {
    transform:translateY(-1px);
    box-shadow:none;
    color:var(--text);
    filter:brightness(1.08);
}
.btn-outline:hover { border-color:var(--accent); color:var(--accent-light); background:rgba(var(--accent-rgb),.06) }
.btn-lg { padding:14px 28px; font-size:1rem }
.btn-sm { padding:8px 16px; font-size:.82rem }
.btn-xs { padding:6px 12px; font-size:.78rem; border-radius:10px }
.btn-whatsapp {
    background:#25d366; color:var(--text);
    box-shadow:none;
}
.btn-whatsapp:hover { transform:translateY(-1px); box-shadow:none; border:1px solid var(--border);
    border-radius:16px; padding:36px; box-shadow:none;
    transition:border-color .3s;
}
.content-card:hover {
    border-color:rgba(var(--accent-rgb),.12);
}

/* === Hit van de Week === */
.hit-card {
    display:grid; grid-template-columns:auto 1fr; gap:36px;
    background:var(--bg-card); border:1px solid var(--border);
    border-radius:20px; overflow:hidden;
    box-shadow:none;
    transition:border-color .3s, box-shadow .3s;
}
.hit-card:hover {
    border-color:rgba(var(--accent-rgb),.25);
    box-shadow:none;
}
.hit-cover {
    width:280px; min-height:280px;
    display:flex; align-items:center; justify-content:center;
    background:var(--bg-surface);
}
.hit-cover-img {
    width:100%; height:100%; object-fit:cover;
}
.hit-cover-placeholder {
    width:100%; height:100%;
    display:flex; align-items:center; justify-content:center;
    font-size:3rem; color:var(--text-muted); opacity:.3;
}
.hit-info { padding:32px 32px 32px 0; display:flex; flex-direction:column; justify-content:center }
.hit-badge {
    display:inline-flex; align-items:center; gap:4px;
    padding:0; border-radius:0; width:fit-content;
    background:transparent; color:var(--accent-light);
    font-size:.78rem; font-weight:600; margin-bottom:10px;
    letter-spacing:.02em;
}
.hit-title { font-size:1.6rem; font-weight:800; margin-bottom:4px }
.hit-artist { font-size:1.05rem; color:var(--accent-light); font-weight:500; margin-bottom:14px }
.hit-desc { color:var(--text-secondary); line-height:1.7; font-size:.95rem }
.hit-actions {
    display:flex; align-items:center; gap:16px; margin-top:16px; flex-wrap:wrap;
}
.hit-search-links {
    display:flex; gap:10px;
}
.btn-xs { padding:6px 14px; font-size:.76rem }
.hit-search-links a {
    display:flex; align-items:center; justify-content:center;
    width:36px; height:36px; border-radius:50%;
    background:var(--bg-surface); border:1px solid var(--border);
    color:var(--text-secondary); font-size:1rem; transition:all .25s;
}
.hit-search-links a:hover {
    color:var(--accent-light); border-color:var(--accent);
    background:rgba(var(--accent-rgb),.08);
}
.hit-play-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.22);
    opacity: 1;
    transition: background 0.25s, opacity 0.25s;
    cursor: pointer;
    z-index: 2;
    border: none;
    padding: 0;
}
.hit-cover:hover .hit-play-overlay {
    background: rgba(0, 0, 0, 0.38);
}
.hit-play-overlay.playing {
    opacity: 1;
    background: rgba(0, 0, 0, 0.45);
}
.hit-play-overlay i {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--gradient);
    color:var(--text);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.35rem;
    padding-left: 3px; /* optical center for play triangle */
    box-shadow:none;
    transition: transform 0.2s, box-shadow 0.2s;
}
.hit-play-overlay.playing i {
    padding-left: 0;
}
.hit-play-overlay:hover i {
    transform: scale(1.08);
}
.hit-cover { position: relative }

/* === Hit Carousel === */
.hit-carousel {
    position:relative;
}
.hit-carousel--multi .hit-carousel-track {
    position:relative; overflow:hidden;
}
.hit-carousel--multi .hit-slide {
    display:grid; position:absolute; top:0; left:0; width:100%;
    opacity:0; pointer-events:none;
    transform:scale(.97) translateY(8px);
    transition:opacity .65s cubic-bezier(.4,0,.2,1), transform .65s cubic-bezier(.4,0,.2,1);
}
.hit-carousel--multi .hit-slide--active {
    position:relative;
    opacity:1; pointer-events:auto;
    transform:scale(1) translateY(0);
}
.hit-carousel--multi .hit-slide--exit {
    opacity:0;
    transform:scale(.97) translateY(-8px);
}
.hit-carousel-nav {
    display:flex; justify-content:center; align-items:center; gap:16px; margin-top:18px;
}
.hit-carousel-arrow {
    width:44px; height:44px; border-radius:50%;
    background:var(--bg-card); border:1px solid var(--border);
    color:var(--text-secondary); font-size:.8rem; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    transition:all .25s; flex-shrink:0;
}
.hit-carousel-arrow:hover {
    background:var(--accent); color:var(--text);
    border-color:var(--accent);
    box-shadow:none;
}
.hit-carousel-dots {
    display:flex; justify-content:center; gap:4px;
}
.hit-carousel-dot {
    width:44px; height:44px; border-radius:50%;
    background:transparent; border:none; cursor:pointer;
    transition:all .3s cubic-bezier(.4,0,.2,1); padding:0;
    display:flex; align-items:center; justify-content:center;
    position:relative;
}
.hit-carousel-dot::after {
    content:''; width:10px; height:10px; border-radius:50%;
    background:var(--border); transition:all .3s cubic-bezier(.4,0,.2,1);
}
.hit-carousel-dot.active::after {
    background:var(--accent); width:28px; border-radius:10px;
}

/* === About grid === */
.about-stats {
    display:grid; grid-template-columns:repeat(4, 1fr); gap:16px;
    margin-bottom:0;
}
.about-stat {
    text-align:center; padding:28px 16px;
    background:var(--bg-card); border:1px solid var(--border);
    border-radius:14px; transition:all .25s;
}
.about-stat:hover {
    border-color:rgba(var(--accent-rgb),.2);
    transform:translateY(-3px);
    box-shadow:none;
}
.about-stat-value {
    display:block; font-size:2rem; font-weight:800;
    color:var(--accent-light); line-height:1;
    margin-bottom:6px;
}
.about-stat-label {
    font-size:.82rem; color:var(--text-muted); font-weight:500;
}

/* === Schedule === */
.schedule-tabs {
    display:flex; gap:4px; margin-bottom:32px;
    overflow-x:auto; -webkit-overflow-scrolling:touch;
    scrollbar-width:none; padding:4px;
    background:var(--bg-card); border-radius:14px;
    border:1px solid var(--border);
}
.schedule-tabs::-webkit-scrollbar{display:none}
.schedule-tab {
    flex:1; min-width:0; padding:10px 8px; border-radius:10px;
    font-weight:600;
    background:transparent; border:none;
    color:var(--text-secondary); transition:all .25s ease; cursor:pointer;
    position:relative; display:flex; flex-direction:column; align-items:center; gap:1px;
}
.schedule-tab-day {
    font-size:.65rem; text-transform:uppercase; letter-spacing:.5px;
    opacity:.7;
}
.schedule-tab-full {
    font-size:.82rem;
}
.schedule-tab--empty { opacity:.5 }
.schedule-tab:hover {
    color:var(--text);
    background:rgba(var(--accent-rgb),.08);
}
.schedule-tab:hover .schedule-tab-day { opacity:1 }
.schedule-tab.active {
    background:var(--gradient); color:var(--text);
    box-shadow:none;
}
.schedule-tab.active .schedule-tab-day { opacity:1 }
.schedule-tab.active.schedule-tab--empty { opacity:1 }
.schedule-tab.today:not(.active)::after {
    content:''; position:absolute; bottom:4px; left:50%; transform:translateX(-50%);
    width:5px; height:5px; border-radius:50%;
    background:var(--accent);
}
.schedule-empty {
    text-align:center; padding:60px 20px;
    color:var(--text-muted);
}
.schedule-empty-icon {
    font-size:2.5rem; margin-bottom:16px;
    color:var(--text-muted); opacity:.4;
}
.schedule-empty h3 {
    font-size:1.1rem; font-weight:700; color:var(--text-secondary);
    margin-bottom:8px;
}
.schedule-empty p {
    font-size:.9rem; line-height:1.6;
    max-width:400px; margin:0 auto;
}
.schedule-panel { display:none }
.schedule-panel.active { display:block; animation:pageIn .35s ease }
.schedule-list.news-grid {
    display:grid;
}
.schedule-item.news-card {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    background:var(--bg-card);
    border:1px solid var(--border);
    border-radius:var(--radius-md);
    overflow:hidden;
    position:relative;
    text-decoration:none;
    color:inherit;
    transition:transform .25s, border-color .25s;
}
.schedule-item.news-card:hover {
    transform:translateY(-3px);
    border-color:rgba(var(--accent-rgb),.22);
    background:var(--bg-card);
}
.schedule-item.news-card.now-playing {
    border-color:rgba(var(--accent-rgb),.4);
    background:var(--bg-card);
    box-shadow:none;
}
.schedule-item.news-card.now-playing::before { display:none }
.schedule-item .schedule-img.news-card-img {
    position:relative;
    width:100%;
    min-height:0;
    aspect-ratio:16/9;
    overflow:hidden;
    background:var(--bg-surface);
    display:block;
    border-radius:0;
    border:none;
}
.schedule-item .schedule-img.news-card-img::after { display:none }
.schedule-item .schedule-img img {
    width:100%; height:100%;
    object-fit:cover;
    object-position:center;
    transition:transform .4s;
    background:transparent;
}
.schedule-item.news-card:hover .schedule-img img {
    transform:scale(1.06);
}
.schedule-item .schedule-img-placeholder,
.schedule-item .news-card-placeholder {
    width:100%; height:100%;
    min-height:0;
    display:flex; align-items:center; justify-content:center;
    background:linear-gradient(160deg, var(--bg-card-hover), var(--bg-card));
    color:rgba(var(--accent-rgb),.45);
    font-size:2rem;
}
.schedule-item .schedule-badges {
    position: static;
    z-index: 2;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    max-width: 100%;
    width: 100%;
    margin: 0 0 6px;
}
@media (min-width: 1025px) {
    .schedule-item .schedule-badges {
        position: absolute;
        top: 12px;
        left: 12px;
        width: auto;
        max-width: min(220px, calc(100% - 24px));
        margin: 0;
    }
}
.schedule-item .schedule-time.news-card-cat {
    position:static;
    width:auto;
    flex-shrink:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:4px 12px;
    border-radius:var(--radius-sm);
    border-right:none;
    background:rgba(0,0,0,.6);
    backdrop-filter:blur(8px);
    color:var(--text);
    font-size:.72rem;
    font-weight:700;
    font-variant-numeric:tabular-nums;
    text-transform:none;
    letter-spacing:.02em;
    white-space:nowrap;
    max-width:100%;
    box-sizing:border-box;
}
.schedule-item.now-playing .schedule-time.news-card-cat {
    background:var(--accent);
    color:var(--text);
    backdrop-filter:none;
}
.schedule-item .schedule-now-badge {
    position:static;
    flex-shrink:0;
    padding:4px 10px;
    border-radius:var(--radius-sm);
    background:rgba(184,74,74,.88);
    border:none;
    color:var(--text);
    font-size:.68rem; font-weight:700; text-transform:uppercase;
    letter-spacing:.5px;
    display:inline-flex; align-items:center; gap:6px;
}
.schedule-item .schedule-now-badge .live-dot { width:6px; height:6px; background:var(--text) }
.schedule-item .schedule-now-badge--onair {
    background:var(--accent);
    color:var(--text);
}
.schedule-item-body.news-card-title-wrap {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:0;
    padding:14px 16px 18px;
    flex:1;
    min-width:0;
}
.schedule-show { flex:1; min-width:0; width:100% }
.schedule-item .news-card-title {
    margin:0;
    font-size:.95rem;
    font-weight:650;
    line-height:1.45;
}
.schedule-item.news-card:hover .news-card-title { color:var(--accent-light) }
.schedule-host {
    font-size:.84rem; color:var(--text-muted); margin:6px 0 0;
}
.schedule-host i { display:none }
.schedule-live-tag {
    display:inline-flex;
    align-items:center;
    gap:6px;
    margin-top:8px;
    padding:3px 10px;
    border-radius:4px;
    background:rgba(var(--accent-rgb),.12);
    color:var(--accent-light);
    font-size:.72rem;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.schedule-day-select-wrap { display:none; margin-bottom:16px; }
.schedule-day-select,
.gedraaid-time-select {
    width:100%;
    padding:12px 14px;
    border-radius:8px;
    background:var(--bg-input);
    border:1.5px solid var(--border);
    color:var(--text);
    font-family:inherit;
    font-size:.95rem;
}
.gedraaid-time-select-wrap { display:none; width:100%; }
.visually-hidden {
    position:absolute !important;
    width:1px; height:1px;
    padding:0; margin:-1px;
    overflow:hidden; clip:rect(0,0,0,0);
    white-space:nowrap; border:0;
}
a.schedule-item-linked {
    text-decoration:none; color:inherit; cursor:pointer;
}
.schedule-show-arrow { display:none }

/* === Forms === */
.form-layout {
    display:grid; grid-template-columns:1.4fr 1fr; gap:32px; align-items:start;
}
.form { display:flex; flex-direction:column; gap:20px }
.form-group { display:flex; flex-direction:column; gap:6px }
.form-group label { font-size:.88rem; font-weight:600; color:var(--text-secondary) }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px }
.form-row > .form-group { min-width:0 }
.turnstile-wrap {
    margin-top:4px;
    min-height:65px;
    max-width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
}
.required { color:var(--pink) }
.form input,
.form select,
.form textarea {
    padding:10px 14px; border-radius:10px;
    background:var(--bg-input); border:2px solid var(--border);
    color:var(--text); font-family:inherit; font-size:16px;
    transition:border-color .2s, box-shadow .2s;
    outline:none;
    width:100%;
    max-width:100%;
    min-width:0;
}
.form input:focus,
.form select:focus,
.form textarea:focus,
.form input:focus-visible,
.form select:focus-visible,
.form textarea:focus-visible {
    border-color:var(--accent);
    border-width:2px;
    box-shadow:none;
    outline:none;
}
.form textarea { resize:vertical; min-height:100px }
.form select { cursor:pointer }
.form-msg {
    padding:12px 16px; border-radius:10px;
    font-size:.9rem; display:none;
}
.form-msg.success { display:block; background:rgba(0,207,93,.1); color:#00cf5d; border:1px solid rgba(0,207,93,.2) }
.form-msg.error   { display:block; background:rgba(184,90,90,.1); color:#b85a5a; border:1px solid rgba(184,90,90,.2) }

/* File upload area */
.file-upload-area {
    position:relative;
    border:2px dashed var(--border);
    border-radius:12px;
    transition:border-color .2s, background .2s;
    overflow:hidden;
}
.file-upload-area:hover { border-color:rgba(var(--accent-rgb),.4) }
.file-upload-input {
    position:absolute; inset:0; width:100%; height:100%;
    opacity:0; cursor:pointer; z-index:2;
}
.file-upload-label {
    display:flex; flex-direction:column; align-items:center; gap:6px;
    padding:24px 16px; text-align:center; color:var(--text-secondary);
}
.file-upload-label i { font-size:1.5rem; color:var(--accent-light); opacity:.7 }
.file-upload-label span { font-size:.9rem; font-weight:500 }
.file-upload-label small { font-size:.8rem; color:var(--dim) }
.file-upload-preview {
    display:flex; align-items:center; gap:10px;
    padding:14px 16px; background:rgba(var(--accent-rgb),.08);
    position:relative; z-index:3;
}
.file-upload-preview i { font-size:1.2rem; color:var(--accent-light) }
.file-upload-name { font-size:.88rem; font-weight:500; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.file-upload-remove {
    background:none; border:none; color:var(--dim); cursor:pointer;
    padding:4px 8px; font-size:1rem; transition:color .2s;
}
.file-upload-remove:hover { color:#b85a5a }

/* Upload progress bar */
.upload-progress {
    display:flex; align-items:center; gap:10px;
    padding:10px 16px; background:rgba(var(--accent-rgb),.05);
}
.upload-progress-bar {
    flex:1; height:6px; border-radius:3px;
    background:var(--border); overflow:hidden; position:relative;
}
.upload-progress-bar::after {
    content:''; position:absolute; inset:0;
    width:var(--w, 0%); background:var(--accent);
    border-radius:3px; transition:width .15s ease;
}
.upload-progress-text {
    font-size:.8rem; font-weight:600; color:var(--accent-light);
    min-width:36px; text-align:right;
}

/* Optional label hint */
.optional-label { font-weight:400; color:var(--dim); font-size:.85em }
.form-hint { font-size:.82rem; color:var(--dim); margin:-4px 0 8px; line-height:1.4 }

/* Press release toggle card */
.contact-quick-card--press:hover {
    border-color:rgba(37,99,235,.3);
    background:rgba(37,99,235,.05);
}

/* Sidebar cards */
.form-sidebar { display:flex; flex-direction:column; gap:20px }
.sidebar-card {
    padding:28px; background:var(--bg-card); border:1px solid var(--border);
    border-radius:16px; transition:border-color .3s;
}
.sidebar-card:hover { border-color:rgba(var(--accent-rgb),.15) }
.sidebar-icon {
    width:48px; height:48px; margin-bottom:14px;
    background:var(--gradient); border-radius:12px;
    display:flex; align-items:center; justify-content:center;
    font-size:1.2rem; color:var(--text);
}
.sidebar-card h3 { font-size:1.05rem; font-weight:700; margin-bottom:8px }
.sidebar-card p { font-size:.9rem; color:var(--text-secondary); margin-bottom:14px; line-height:1.5 }
.info-list { display:flex; flex-direction:column; gap:8px }
.info-list li { font-size:.88rem; color:var(--text-secondary); padding-left:18px; position:relative }
.info-list li::before {
    content:'•'; position:absolute; left:0; color:var(--accent-light); font-weight:700;
}
.sidebar-socials { display:flex; gap:10px }
.sidebar-socials a {
    width:42px; height:42px; border-radius:10px;
    background:var(--bg-input); border:1px solid var(--border);
    display:flex; align-items:center; justify-content:center;
    font-size:1rem; color:var(--text-secondary); transition:all .2s;
}
.sidebar-socials a:hover {
    background:var(--accent); border-color:var(--accent); color:var(--text);
}

/* === Content prose === */
.content-prose h2 { font-size:1.35rem; font-weight:700; margin:36px 0 12px }
.content-prose h2:first-child { margin-top:0 }
.content-prose h3 { font-size:1.1rem; font-weight:600; margin:28px 0 10px }
.content-prose p { color:var(--text-secondary); line-height:1.75; margin-bottom:14px }
.content-prose a { color:var(--accent-light); text-decoration:underline }
.content-prose a:hover { color:var(--accent) }
.content-prose ul,.content-prose ol { margin:0 0 16px 20px }
.content-prose li { color:var(--text-secondary); margin-bottom:6px; line-height:1.6 }
.content-prose code { font-size:.85em; background:rgba(255,255,255,.06); padding:1px 5px; border-radius:4px }
.privacy-updated {
    color:var(--text-muted); font-size:.88rem; margin-bottom:28px;
}

/* Content body (over-ons) */
.content-body h2 { font-size:1.5rem; font-weight:800; margin-bottom:14px }
.content-body h3 { font-size:1.2rem; font-weight:700; margin:28px 0 12px; color:var(--text) }
.content-body p { color:var(--text-secondary); line-height:1.8; margin-bottom:16px }
.feature-list { display:flex; flex-direction:column; gap:10px; margin-bottom:20px }
.feature-list li {
    display:flex; align-items:flex-start; gap:10px;
    font-size:.95rem; color:var(--text-secondary); line-height:1.5;
}
.feature-list i { color:var(--accent-light); margin-top:3px; flex-shrink:0 }

/* CTA banner */
.cta-banner {
    margin-top:36px; padding:32px;
    background:var(--gradient); border-radius:16px;
    color:var(--text);
}
.cta-banner h3 { font-size:1.3rem; font-weight:700; margin-bottom:8px; color:var(--text) }
.cta-banner p { color:var(--text); margin-bottom:18px; line-height:1.6 }
.cta-banner .btn { background:rgba(255,255,255,.2); color:var(--text); border:1px solid rgba(255,255,255,.3) }
.cta-banner .btn:hover { background:rgba(255,255,255,.3) }

/* About CTA cards */
.about-cta-links { display:flex; gap:20px; justify-content:center; flex-wrap:wrap }
.about-cta-card {
    display:flex; align-items:center; gap:16px;
    padding:20px 24px; border-radius:16px;
    background:var(--bg-card); border:1px solid var(--border);
    text-decoration:none; color:inherit;
    transition:all .3s; flex:1; min-width:280px; max-width:420px;
}
.about-cta-card:hover {
    border-color:rgba(var(--accent-rgb),.3);
    box-shadow:none;
    transform:translateY(-3px);
}
.about-cta-icon {
    width:48px; height:48px; border-radius:14px; flex-shrink:0;
    background:var(--gradient); color:var(--text);
    display:flex; align-items:center; justify-content:center;
    font-size:1.1rem;
}
.about-cta-text { flex:1; min-width:0 }
.about-cta-text strong { display:block; font-size:1rem; font-weight:700; margin-bottom:2px }
.about-cta-text span { font-size:.84rem; color:var(--text-secondary); line-height:1.4 }
.about-cta-arrow { color:var(--text-muted); font-size:.8rem; transition:transform .25s }
.about-cta-card:hover .about-cta-arrow { transform:translateX(4px); color:var(--accent-light) }

/* === Footer === */
.footer {
    padding:56px 0 28px;
    margin-bottom:0;
    background:var(--bg-surface);
    border-top:1px solid var(--border);
    border-bottom:none;
    position:relative;
    z-index:1;
}
.footer .container { overflow:visible }
.footer-grid {
    display:grid; grid-template-columns:minmax(0,1.5fr) repeat(4, minmax(0,1fr));
    gap:32px 28px; margin-bottom:40px;
    align-items:start;
}
.footer-brand, .footer-col { min-width:0 }
@media(max-width:1024px) {
    .footer {
        padding:40px 0 24px;
    }
    .footer-grid {
        grid-template-columns:1fr 1fr;
        gap:28px 20px;
        margin-bottom:28px;
    }
    .footer-brand {
        grid-column:1 / -1;
        padding-bottom:8px;
        border-bottom:1px solid var(--border);
        margin-bottom:4px;
    }
    .footer-logo-link { margin-bottom:8px }
    .footer-col h4 { margin-bottom:12px }
    .footer-socials { margin-bottom:16px }
}
@media(max-width:640px) {
    .footer {
        padding:32px 0 20px;
    }
    .footer-grid {
        grid-template-columns:1fr;
        gap:24px;
        margin-bottom:24px;
    }
    .footer-brand {
        grid-column:auto;
        padding-bottom:16px;
        margin-bottom:0;
        text-align:center;
    }
    .footer-brand a { display:inline-block }
    .footer-socials { justify-content:flex-start }
    .footer-players {
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:6px 10px;
    }
    .footer-player-link { padding:8px 6px }
    .footer-bottom { padding-top:20px }
}
.footer-logo-link {
    display: inline-block;
    line-height: 0;
    margin-bottom: 10px;
}
.footer-logo-img {
    height: 36px;
    width: auto;
    margin-bottom: 0;
    /* Same white rim as .nav-logo-img */
    filter: drop-shadow(0 0 .7px rgba(255,255,255,.95))
            drop-shadow(0 0 1.2px rgba(255,255,255,.7))
            drop-shadow(0 0 2px rgba(255,255,255,.35));
}
.footer-tagline { font-size:.95rem; color:var(--text-muted) }
.footer-col h4 { font-size:.9rem; font-weight:700; text-transform:uppercase; letter-spacing:.8px; margin-bottom:14px; color:var(--text-muted) }
.footer-col ul { display:flex; flex-direction:column; gap:8px }
.footer-col a { font-size:.98rem; color:var(--text-secondary); transition:color .2s }
.footer-col a:hover { color:var(--accent-light) }
.footer-socials { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:20px }
.footer-socials a,
.footer-social {
    width:40px; height:40px; border-radius:12px;
    background:var(--bg-card); border:1px solid var(--border);
    display:flex; align-items:center; justify-content:center;
    font-size:1rem; color:var(--text-secondary); transition:all .2s;
}
.footer-socials a:hover { color:var(--text); transform:translateY(-1px) }
.footer-social--facebook:hover { background:#1877F2; border-color:#1877F2 }
.footer-social--x:hover { background:#111; border-color:#111 }
.footer-social--instagram:hover {
    background:linear-gradient(135deg,#f58529,#dd2a7b 50%,#8134af);
    border-color:transparent;
}
.footer-social--whatsapp:hover { background:#25D366; border-color:#25D366 }
.footer-social--mail:hover { background:var(--accent); border-color:var(--accent) }
.footer-grid--no-players {
    grid-template-columns:minmax(0,1.5fr) repeat(3, minmax(0,1fr));
}

.footer-bottom { padding-top:24px; border-top:1px solid var(--border); text-align:center; display:flex; flex-direction:column; align-items:center; gap:4px }
.footer-bottom p { font-size:.82rem; color:var(--text-muted) }

/* Language selector */
.footer-lang { position:relative; display:inline-block }
.footer-lang-btn {
    display:inline-flex; align-items:center; gap:6px;
    background:var(--bg-card); border:1px solid var(--border);
    border-radius:8px; padding:6px 12px;
    color:var(--text-secondary); font-size:.8rem; font-weight:600;
    cursor:pointer; transition:all .2s; font-family:inherit;
    white-space:nowrap;
}
.footer-lang-btn:hover { border-color:var(--accent); color:var(--text-primary) }
.footer-lang-btn i:first-child { color:var(--accent); font-size:.85rem }
.footer-lang-btn #langCode { color:var(--accent); font-weight:800; font-size:.75rem; letter-spacing:.5px }
.footer-lang-menu {
    position:absolute; bottom:calc(100% + 8px); left:0;
    background:var(--bg-card); border:1px solid var(--border);
    border-radius:12px; padding:6px;
    min-width:180px;
    box-shadow:none;
    opacity:0; visibility:hidden; transform:translateY(8px);
    transition:all .25s cubic-bezier(.4,0,.2,1);
    z-index:100;
}
.footer-lang-menu.open {
    opacity:1; visibility:visible; transform:translateY(0);
}
.footer-lang-option {
    display:flex; align-items:center; gap:10px;
    width:100%; padding:8px 12px; border:none;
    background:none; color:var(--text-secondary); font-size:.82rem; font-weight:500;
    cursor:pointer; border-radius:8px; transition:all .15s;
    font-family:inherit; text-align:left; white-space:nowrap;
}
.footer-lang-option:hover { background:rgba(var(--accent-rgb),.08); color:var(--text-primary) }
.footer-lang-option.active { color:var(--accent); font-weight:700 }
.footer-lang-option.active::after { content:'✓'; margin-left:auto; font-size:.7rem }
.lang-flag { font-size:1.1rem; line-height:1 }

/* =============================================
   PLAYER BAR – Centered play controls
   ============================================= */
.player-bar {
    position:fixed; bottom:0; left:0; right:0; z-index:1010;
    height:calc(var(--player-h) + env(safe-area-inset-bottom, 0px));
    padding-bottom:env(safe-area-inset-bottom, 0px);
    background:var(--bg-surface);
    backdrop-filter:blur(24px);
    -webkit-backdrop-filter:blur(24px);
    border-top:1px solid var(--border);
    box-shadow:none;
    transition: background .3s;
    /* allow volume popover to rise above the bar */
    overflow:visible;
}
.player-container {
    max-width:100%; margin:0; padding:0 16px 0 0;
    height:var(--player-h);
    display:grid;
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
    align-items:center;
    column-gap:12px;
    min-width:0;
}

/* Left: Album art (full height) + track info */
.player-info {
    display:flex; align-items:center; gap:14px; min-width:0;
    justify-self:start;
}
.player-album {
    width:var(--player-h); height:var(--player-h); flex-shrink:0;
    overflow:hidden; position:relative;
    background:var(--bg-card);
    transition:transform .3s;
    border-radius:0;
    cursor:pointer;
}
.player-album:focus-visible {
    outline:2px solid rgba(var(--accent-rgb),.7);
    outline-offset:-2px;
}
.player-album img { border-radius:0 }
.player-cover-img { width:100%; height:100%; object-fit:cover; position:relative; z-index:1; transition:opacity .8s ease, transform .3s ease }
.player-album-fallback {
    position:absolute; inset:0;
    display:flex; align-items:center; justify-content:center;
    background:var(--bg-card); color:var(--text-muted); font-size:1.3rem;
    pointer-events:none; z-index:0;
}
.player-album-hint {
    position:absolute;
    inset:0;
    z-index:2;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:4px;
    padding:6px;
    background:rgba(0, 0, 0, 0.55);
    opacity:0;
    transition:opacity .22s ease;
    pointer-events:none;
}
.player-album-hint i {
    font-size:.95rem;
    color:var(--text);
    line-height:1;
    filter:drop-shadow(0 1px 2px rgba(0,0,0,.45));
}
.player-album-hint span {
    display:block;
    max-width:100%;
    color:var(--text);
    font-size:.58rem;
    font-weight:700;
    letter-spacing:.02em;
    text-align:center;
    line-height:1.15;
    text-shadow:0 1px 2px rgba(0,0,0,.45);
}
@media (hover: hover) and (pointer: fine) {
    .player-album:hover .player-cover-img { transform:scale(1.04) }
    .player-album:hover .player-album-hint { opacity:1 }
}
.player-album:focus-visible .player-album-hint { opacity:1 }

.player-text { display:flex; flex-direction:column; min-width:0; gap:1px; justify-content:center }

/* Player live badge */
.player-live-badge {
    display:inline-flex; align-items:center; gap:4px;
    padding:2px 7px; border-radius:50px;
    background:rgba(184,74,74,.12); color:#b84a4a;
    font-size:.62rem; font-weight:700; letter-spacing:.5px;
    flex-shrink:0;
}
.player-live-badge .live-dot { width:5px; height:5px }

/* Player fallback badge */
.player-fallback-badge {
    display:inline-flex; align-items:center; gap:4px;
    padding:2px 7px; border-radius:50px;
    background:rgba(var(--accent-rgb),.12); color:var(--accent-light);
    font-size:.62rem; font-weight:700; letter-spacing:.5px;
    flex-shrink:0; animation:fallbackPulse 3s ease-in-out infinite;
}
@keyframes fallbackPulse { 0%,100%{opacity:1} 50%{opacity:.5} }

/* Art rotation progress bar */
.art-rotate-bar {
    position:absolute; bottom:0; left:0; right:0;
    height:3px; z-index:10;
    background:var(--accent-light);
    opacity:0; pointer-events:none;
    transform-origin:left; transform:scaleX(0);
    border-radius:0 0 4px 4px;
}
.art-rotate-bar.active { opacity:1 }
.hero-art-wrap .art-rotate-bar {
    border-radius:0;
}
@keyframes artRotateProgress { from{transform:scaleX(0)} to{transform:scaleX(1)} }

.player-title {
    font-size:1.05rem; font-weight:700;
    white-space:nowrap; overflow:hidden;
    text-overflow:ellipsis;
    display:flex; align-items:center; gap:6px;
}
.player-title .marquee-text { flex:1; min-width:0 }
.player-artist {
    font-size:.9rem; color:var(--text-muted);
    white-space:nowrap; overflow:hidden;
    text-overflow:ellipsis;
    margin-top:1px;
    display:flex; align-items:center;
}
.player-artist .marquee-text { flex:1; min-width:0 }

/* EQ visualizer */
.player-eq {
    display:flex; align-items:flex-end; gap:3px;
    height:20px; flex-shrink:0; margin-left:4px;
    opacity:0; transition:opacity .3s;
}
.player-eq.active { opacity:1 }
.player-eq span {
    display:block; width:3px; border-radius:2px;
    background:var(--accent);
}
.player-eq span:nth-child(1) { height:8px; animation:eqBar 0.8s ease-in-out infinite alternate }
.player-eq span:nth-child(2) { height:14px; animation:eqBar 0.6s ease-in-out infinite alternate 0.15s }
.player-eq span:nth-child(3) { height:10px; animation:eqBar 0.7s ease-in-out infinite alternate 0.3s }
@keyframes eqBar {
    0% { height:4px }
    100% { height:18px }
}

/* Center: Gedraaid · Play · Volume */
.player-controls {
    display:flex; align-items:center; justify-content:center; gap:10px;
    justify-self:center;
    flex-shrink:0;
}

.player-icon-btn {
    position:relative;
    width:44px; height:44px; border-radius:12px;
    display:inline-flex; align-items:center; justify-content:center;
    color:var(--text-secondary); background:transparent; border:none;
    font-size:1rem; cursor:pointer; text-decoration:none;
    transition:color .2s, background .2s;
    flex-shrink:0;
}
.player-icon-btn:hover {
    color:var(--accent-light);
    background:rgba(var(--accent-rgb),.1);
}
.player-icon-label {
    position:absolute;
    width:1px; height:1px;
    padding:0; margin:-1px;
    overflow:hidden; clip:rect(0,0,0,0);
    white-space:nowrap; border:0;
}

/* Gedraaid recent popover (mirrors volume popover pattern) */
.player-gedraaid {
    position:relative;
    display:flex; align-items:center; justify-content:center;
}
.player-gedraaid-popover {
    position:absolute;
    bottom:calc(100% + 12px);
    left:50%;
    transform:translateX(-50%);
    width:min(320px, calc(100vw - 24px));
    padding:12px;
    background:var(--bg-card);
    border:1px solid var(--border);
    border-radius:16px;
    box-shadow:none;
    z-index:1020;
    display:flex;
    flex-direction:column;
    gap:10px;
}
.player-gedraaid-popover[hidden] { display:none !important }
.player-gedraaid-popover::after {
    content:'';
    position:absolute; top:100%; left:50%; transform:translateX(-50%);
    border:7px solid transparent;
    border-top-color:var(--bg-card);
}
.player-gedraaid-head {
    padding:0 4px 2px;
    font-size:.78rem;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:var(--text-muted);
    flex-shrink:0;
}
.player-gedraaid-list {
    display:flex;
    flex-direction:column;
    gap:4px;
    max-height:min(420px, 55vh);
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
    scrollbar-color:rgba(var(--accent-rgb),.45) transparent;
    padding-right:2px;
}
.player-gedraaid-list::-webkit-scrollbar { width:6px }
.player-gedraaid-list::-webkit-scrollbar-track { background:transparent }
.player-gedraaid-list::-webkit-scrollbar-thumb {
    background:rgba(var(--accent-rgb),.4);
    border-radius:999px;
}
.player-gedraaid-loading,
.player-gedraaid-empty {
    padding:18px 8px;
    text-align:center;
    color:var(--text-muted);
    font-size:.85rem;
}
.player-gedraaid-item {
    display:flex;
    align-items:center;
    gap:10px;
    width:100%;
    padding:8px;
    border:none;
    border-radius:12px;
    background:transparent;
    color:inherit;
    text-align:left;
    cursor:pointer;
    transition:background .15s ease;
}
.player-gedraaid-item:hover {
    background:rgba(var(--accent-rgb),.12);
}
.player-gedraaid-art {
    width:40px; height:40px;
    border-radius:8px;
    overflow:hidden;
    flex-shrink:0;
    background:var(--bg-input);
}
.player-gedraaid-art img {
    width:100%; height:100%;
    object-fit:cover;
}
.player-gedraaid-meta {
    min-width:0;
    flex:1;
    display:flex;
    flex-direction:column;
    gap:2px;
}
.player-gedraaid-track {
    font-size:.88rem;
    font-weight:600;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.player-gedraaid-artist {
    font-size:.78rem;
    color:var(--text-secondary);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.player-gedraaid-time {
    flex-shrink:0;
    font-size:.72rem;
    color:var(--text-muted);
    font-variant-numeric:tabular-nums;
}
.player-gedraaid-more {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:10px 12px;
    border-radius:12px;
    background:rgba(var(--accent-rgb),.14);
    color:var(--accent-light);
    font-size:.88rem;
    font-weight:600;
    text-decoration:none;
    transition:background .15s ease, color .15s ease;
    flex-shrink:0;
}
.player-gedraaid-more:hover {
    background:rgba(var(--accent-rgb),.22);
    color:var(--text);
}

/* Narrow screens: keep popover + "Zie meer" inside viewport */
@media (max-width: 768px) {
    .player-gedraaid-popover {
        position: fixed;
        left: 12px;
        right: 12px;
        bottom: calc(var(--player-h) + env(safe-area-inset-bottom, 0px) + 10px);
        width: auto;
        max-width: none;
        max-height: calc(100dvh - var(--player-h) - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 24px);
        transform: none;
        z-index: 1025;
        overflow: hidden;
    }
    .player-gedraaid-popover::after {
        display: none;
    }
    .player-gedraaid-list {
        flex: 1 1 auto;
        min-height: 0;
        max-height: none;
    }
}

@media (max-width: 400px), (max-height: 560px) {
    .player-gedraaid-popover {
        left: 8px;
        right: 8px;
        bottom: calc(var(--player-h) + env(safe-area-inset-bottom, 0px) + 8px);
        max-height: calc(100dvh - var(--player-h) - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 16px);
        padding: 10px;
        gap: 8px;
    }
    .player-gedraaid-more {
        padding: 9px 10px;
        font-size: .84rem;
    }
}

/* Player action buttons (right: open window) */
.player-action-btn {
    display:flex; align-items:center; gap:7px;
    min-height:44px; padding:8px 14px; border-radius:12px;
    font-size:.92rem; font-weight:500;
    color:var(--text-secondary); background:none; border:none;
    cursor:pointer; transition:all .2s; white-space:nowrap;
    text-decoration:none;
}
.player-action-btn i { font-size:.88rem }
.player-action-btn:hover { color:var(--accent-light); background:rgba(var(--accent-rgb),.1) }
.player-action-btn.active { color:var(--accent-light); background:rgba(var(--accent-rgb),.12) }
.player-action-btn--popup { margin-left:auto }
.push-bell-btn.push-active { color:var(--accent-light) }
.push-bell-btn.push-active i { animation:bellRing 2s ease-in-out }
@keyframes bellRing { 0%,100%{transform:rotate(0)} 10%{transform:rotate(14deg)} 20%{transform:rotate(-12deg)} 30%{transform:rotate(8deg)} 40%{transform:rotate(-4deg)} 50%{transform:rotate(0)} }

/* =============================================
   PWA INSTALL PROMPT (centered modal)
   ============================================= */
.pwa-install-overlay {
    position:fixed; inset:0;
    z-index:10002;
    background:rgba(0,0,0,.55);
    display:flex; align-items:center; justify-content:center;
    padding:20px;
    animation:pwaFadeIn .3s ease;
    -webkit-backdrop-filter:blur(4px);
    backdrop-filter:blur(4px);
}
@keyframes pwaFadeIn { from { opacity:0 } to { opacity:1 } }
@keyframes pwaFadeOut { from { opacity:1 } to { opacity:0 } }
.pwa-install-card {
    background:var(--bg-surface);
    border:1px solid var(--border);
    border-radius:20px;
    padding:40px 32px 32px;
    max-width:400px;
    width:100%;
    text-align:center;
    box-shadow:none;
    animation:pwaCardIn .4s cubic-bezier(.16,1,.3,1);
}
@keyframes pwaCardIn {
    from { transform:translateY(30px) scale(.96); opacity:0 }
    to   { transform:translateY(0) scale(1); opacity:1 }
}
.pwa-install-icon {
    width:72px; height:72px;
    border-radius:18px;
    background:var(--gradient);
    color:var(--text);
    display:inline-flex; align-items:center; justify-content:center;
    font-size:1.8rem;
    margin-bottom:20px;
    box-shadow:none;
}
.pwa-install-card h3 {
    font-size:1.25rem; font-weight:700; margin-bottom:8px;
}
.pwa-install-card p {
    font-size:.9rem; color:var(--text-secondary);
    line-height:1.6;
    margin-bottom:24px;
}
.pwa-install-features {
    display:flex; gap:20px; justify-content:center;
    margin-bottom:28px;
}
.pwa-install-feature {
    display:flex; flex-direction:column; align-items:center; gap:6px;
    font-size:.78rem; color:var(--text-muted); font-weight:500;
}
.pwa-install-feature i {
    font-size:1.15rem; color:var(--accent-light);
}
.pwa-install-actions {
    display:flex; gap:12px; justify-content:center;
}
.btn-pwa-dismiss {
    padding:12px 28px; border-radius:50px;
    font-size:.9rem; font-weight:600;
    background:var(--bg-card); border:1px solid var(--border);
    color:var(--text-secondary); cursor:pointer;
    font-family:inherit; transition:all .2s;
}
.btn-pwa-dismiss:hover {
    border-color:var(--text-muted); color:var(--text);
    background:var(--bg-card-hover);
}
.btn-pwa-install {
    padding:12px 28px; border-radius:50px;
    font-size:.9rem; font-weight:600;
    background:var(--gradient); border:none;
    color:var(--text); cursor:pointer;
    font-family:inherit; transition:all .2s;
    box-shadow:none;
    display:flex; align-items:center; gap:8px;
}
.btn-pwa-install:hover {
    transform:translateY(-1px);
    box-shadow:none;
}
@media(max-width:480px) {
    .pwa-install-card { padding:28px 20px 24px; border-radius:16px }
    .pwa-install-features { gap:14px }
    .pwa-install-actions { flex-direction:column }
    .btn-pwa-dismiss, .btn-pwa-install { width:100%; text-align:center; justify-content:center }
}

/* PWA manual install instructions (mobile) */
.pwa-instructions {
    display:flex; flex-direction:column; gap:14px;
    margin-bottom:28px;
    text-align:left;
}
.pwa-instruction-step {
    display:flex; align-items:center; gap:14px;
    background:rgba(255,255,255,.04);
    border:1px solid var(--border);
    border-radius:12px;
    padding:14px 16px;
    font-size:.88rem;
    color:var(--text);
    line-height:1.5;
}
.pwa-step-num {
    flex-shrink:0;
    width:30px; height:30px;
    border-radius:50%;
    background:var(--gradient);
    color:var(--text);
    display:flex; align-items:center; justify-content:center;
    font-size:.8rem; font-weight:700;
}
.pwa-inline-icon {
    color:var(--accent-light);
    margin:0 2px;
    font-size:.95em;
}

.player-btn {
    width:52px; height:52px; border-radius:50%;
    background:var(--gradient); display:flex; align-items:center; justify-content:center;
    font-size:1.05rem; color:var(--text);
    box-shadow:none;
    transition:all .2s;
}
.player-btn:hover { transform:scale(1.08); box-shadow:none }
.player-btn:active { transform:scale(.93) }
.hero-listen-btn.is-loading,
.player-btn.is-loading {
    pointer-events:auto; opacity:.85;
    animation:pulse-loading 1.2s ease-in-out infinite;
}
.hero-play-circle.is-loading {
    pointer-events:auto; opacity:.85;
    animation:pulse-loading 1.2s ease-in-out infinite;
}
@keyframes pulse-loading {
    0%,100% { opacity:.85 }
    50% { opacity:1 }
}

/* Right: Open in apart venster */
.player-right {
    display:flex; align-items:center; justify-content:flex-end;
    gap:8px; min-width:0; justify-self:end;
}
.player-volume {
    position:relative;
    display:flex; align-items:center; justify-content:center;
}
/* Phone/tablet OS only — hide volume (hardware keys). Narrow desktop windows keep the control. */
body.is-mobile .player-volume {
    display:none !important;
}
.player-volume-popover {
    position:absolute;
    bottom:calc(100% + 12px);
    left:50%;
    transform:translateX(-50%);
    display:flex; align-items:center; justify-content:center;
    padding:14px 10px;
    width:44px; min-width:44px;
    height:148px;
    background:var(--bg-card);
    border:1px solid var(--border);
    border-radius:999px;
    box-shadow:none;
    z-index:1020;
    overflow:visible;
}
.player-volume-popover[hidden] { display:none !important }
.player-volume-popover::after {
    content:'';
    position:absolute; top:100%; left:50%; transform:translateX(-50%);
    border:7px solid transparent;
    border-top-color:var(--bg-card);
}
.volume-slider-wrap {
    width:28px; height:112px;
    display:flex; align-items:center; justify-content:center;
    position:relative;
    overflow:visible;
}
.volume-percent {
    position:absolute;
    left:calc(100% + 12px);
    bottom:calc(8px + (100% - 16px) * var(--vol-pct, 50) / 100);
    transform:translateY(50%);
    z-index:2;
    padding:5px 8px;
    border-radius:8px;
    background:var(--bg-card);
    border:1px solid var(--border);
    box-shadow:none;
    font-family:var(--font-display);
    font-size:.75rem; font-weight:700;
    color:var(--accent-light);
    font-variant-numeric:tabular-nums;
    letter-spacing:-.02em;
    white-space:nowrap;
    pointer-events:none;
    user-select:none;
    opacity:0;
    visibility:hidden;
    /* No position transition — tip must stick to the thumb while dragging */
    transition:opacity .12s ease, visibility .12s ease;
}
.volume-percent::before {
    content:'';
    position:absolute; right:100%; top:50%; transform:translateY(-50%);
    border:5px solid transparent;
    border-right-color:var(--bg-card);
}
.volume-percent.is-visible {
    opacity:1; visibility:visible;
}
.volume-slider {
    /* Horizontale slider, 90° gedraaid → betrouwbare oranje custom styles */
    -webkit-appearance:none; appearance:none;
    width:112px; height:6px;
    margin:0; padding:0;
    transform:rotate(-90deg);
    background:transparent;
    outline:none; cursor:pointer;
    accent-color:var(--accent-light);
}
.volume-slider::-webkit-slider-runnable-track {
    height:6px; border-radius:3px;
    background:rgba(255,255,255,.18);
}
.volume-slider::-webkit-slider-thumb {
    -webkit-appearance:none; appearance:none;
    width:16px; height:16px; margin-top:-5px;
    background:var(--accent-light); border-radius:50%;
    border:2px solid #fff;
    box-shadow:none;
    cursor:pointer; transition:transform .15s;
}
.volume-slider::-webkit-slider-thumb:hover { transform:scale(1.12) }
.volume-slider::-moz-range-track {
    height:6px; border-radius:3px;
    background:rgba(255,255,255,.18);
}
.volume-slider::-moz-range-thumb {
    width:16px; height:16px;
    background:var(--accent-light); border-radius:50%;
    border:2px solid #fff; cursor:pointer;
}
.volume-slider::-moz-range-progress {
    height:6px; border-radius:3px;
    background:var(--accent);
}

/* =============================================
   TRACK INFO MODAL
   ============================================= */
.track-info-modal {
    position:fixed; inset:0; z-index:2000;
    display:flex; align-items:center; justify-content:center;
    opacity:0; pointer-events:none; transition:opacity .3s;
}
.track-info-modal.open {
    opacity:1; pointer-events:auto;
}
.track-info-overlay {
    position:absolute; inset:0;
    background:rgba(0,0,0,.6);
    backdrop-filter:blur(8px);
}
.track-info-content {
    position:relative; z-index:1;
    background:var(--bg-surface);
    border:1px solid var(--border-strong);
    border-radius:20px; padding:32px;
    max-width:420px; width:90%;
    box-shadow:none;
    transform:translateY(20px);
    transition:transform .3s;
    text-align:center;
}
.track-info-modal.open .track-info-content {
    transform:translateY(0);
}
.track-info-close {
    position:absolute; top:12px; right:12px;
    width:32px; height:32px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    color:var(--text-muted); font-size:1rem;
    transition:all .2s;
}
.track-info-close:hover { color:var(--text); background:rgba(var(--accent-rgb),.1) }
.track-info-art {
    width:200px; height:200px; border-radius:16px;
    overflow:hidden; margin:0 auto 20px;
    box-shadow:none;
    background:var(--bg-card);
}
.track-info-art img { width:100%; height:100%; object-fit:cover }
.track-info-title {
    font-size:1.3rem; font-weight:700; margin-bottom:4px;
}
.track-info-artist {
    font-size:1rem; color:var(--text-secondary); margin-bottom:8px;
}
.track-info-page-link {
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    margin:0 0 16px; font-size:.88rem; font-weight:600;
    color:var(--accent-light); text-decoration:none;
}
.track-info-page-link:hover { color:var(--text) }
.track-info-page-link[hidden] { display:none !important }
.track-info-page-link.is-busy { opacity:.65; pointer-events:none }
.track-info-page-link i { font-size:.75rem }
.track-info-meta {
    display:flex; flex-direction:column; gap:8px;
    margin-bottom:20px;
}
.track-info-badge {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    align-self:center;
    padding:5px 10px;
    border-radius:var(--radius-sm);
    background:rgba(var(--accent-rgb),.18);
    color:var(--accent-light);
    font-size:.75rem;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;
}
.track-info-desc {
    margin:4px 0 0;
    color:var(--text-secondary);
    font-size:.92rem;
    line-height:1.55;
    text-align:left;
}
.track-info-hit-link {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    margin-top:4px;
    color:var(--accent-light);
    font-weight:600;
    font-size:.9rem;
}
.track-info-hit-link:hover { color:var(--text) }
.track-info-row {
    display:flex; align-items:center; justify-content:center; gap:8px;
    font-size:.88rem; color:var(--text-secondary);
}
.track-info-row i {
    color:var(--accent-light); font-size:.8rem; width:16px; text-align:center;
}
.track-info-actions {
    display:flex; gap:8px;
}
.btn-music-search {
    flex:1 1 0; min-width:0;
    display:inline-flex; align-items:center; justify-content:center;
    background:#555; border:none;
    color:var(--text); transition:all .25s; border-radius:10px;
    width:auto; min-height:42px; height:42px;
    padding:0; font-size:1.15rem; font-weight:600;
}
.btn-music-search i { line-height:1; }
.btn-music-search:hover {
    filter:brightness(1.15); transform:translateY(-1px);
}
#trackSearchSpotify { background:#1DB954 }
#trackSearchApple   { background:#fc3c44 }
#trackSearchDeezer  { background:#A238FF }
#trackSearchYoutube { background:#FF0000 }
.btn-meer-info {
    flex:1 1 0; min-width:0;
    background:var(--gradient); color:var(--text); border:none;
    border-radius:6px; padding:9px 6px; font-weight:600;
    cursor:pointer; transition:all .25s; font-size:.82rem;
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
}
.btn-meer-info:hover {
    transform:translateY(-1px); box-shadow:none;
}

/* =============================================
   GEDRAAID PAGE
   ============================================= */
.gedraaid-section { padding-top:40px }

/* Now playing banner */
.gedraaid-nowplaying {
    display:flex; align-items:center; gap:16px;
    padding:16px 20px;
    background:var(--bg-card); border:1px solid var(--border);
    border-radius:14px;
    border-left:4px solid var(--accent);
}
.gedraaid-nowplaying-art {
    width:56px; height:56px; flex-shrink:0;
    border-radius:10px; overflow:hidden;
    background:var(--bg-card);
}
.gedraaid-nowplaying-art img { width:100%; height:100%; object-fit:cover }
.gedraaid-nowplaying-info { display:flex; flex-direction:column; min-width:0 }
.gedraaid-nowplaying-label {
    display:flex; align-items:center; gap:8px;
    font-size:.78rem; font-weight:600; text-transform:uppercase;
    letter-spacing:.5px; color:var(--accent-light); margin-bottom:2px;
}
.gedraaid-nowplaying-track {
    font-size:1.05rem; font-weight:700;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.gedraaid-nowplaying-artist {
    font-size:.88rem; color:var(--text-secondary);
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}

.gedraaid-controls {
    background:transparent; border:none;
    border-radius:0; padding:0 0 8px;
    margin-bottom:20px; box-shadow:none;
    display:flex; flex-direction:column; gap:14px;
    position:relative; z-index:10;
}
.gedraaid-controls-row {
    display:flex; gap:12px; align-items:center;
    flex-wrap:wrap;
}

/* Custom date picker button */
.gedraaid-datepicker {
    position:relative;
}
.gedraaid-datepicker-btn {
    display:inline-flex; align-items:center; gap:8px;
    padding:10px 16px; border-radius:12px;
    background:var(--bg-surface); border:1.5px solid var(--border);
    color:var(--text); font-family:inherit; font-size:.88rem; font-weight:600;
    cursor:pointer; transition:all .25s; white-space:nowrap;
}
.gedraaid-datepicker-btn:hover {
    border-color:var(--accent); background:rgba(var(--accent-rgb),.06);
}
.gedraaid-datepicker-btn i:first-child { color:var(--accent-light); font-size:.82rem }
.gedraaid-datepicker-caret {
    font-size:.6rem; color:var(--text-muted);
    transition:transform .25s;
}
.gedraaid-datepicker.open .gedraaid-datepicker-caret { transform:rotate(180deg) }

/* Calendar dropdown */
.gedraaid-datepicker-dropdown {
    position:absolute; top:calc(100% + 8px); left:0; z-index:100;
    background:var(--bg-card); border:1px solid var(--border);
    border-radius:14px; padding:16px; min-width:280px;
    box-shadow:none;
    opacity:0; transform:translateY(-8px) scale(.97);
    pointer-events:none;
    transition:opacity .2s ease, transform .2s ease;
}
.gedraaid-datepicker.open .gedraaid-datepicker-dropdown {
    opacity:1; transform:translateY(0) scale(1);
    pointer-events:auto;
}
.gedraaid-cal-header {
    display:flex; align-items:center; justify-content:space-between;
    margin-bottom:12px;
}
.gedraaid-cal-title {
    font-weight:700; font-size:.9rem; color:var(--text);
    text-transform:capitalize;
}
.gedraaid-cal-nav {
    width:32px; height:32px; border-radius:8px;
    background:var(--bg-surface); border:1px solid var(--border);
    color:var(--text-secondary); cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    font-size:.7rem; transition:all .2s;
}
.gedraaid-cal-nav:hover {
    background:var(--accent); color:var(--text); border-color:var(--accent);
}
.gedraaid-cal-weekdays {
    display:grid; grid-template-columns:repeat(7,1fr); gap:2px;
    margin-bottom:4px;
}
.gedraaid-cal-weekdays span {
    text-align:center; font-size:.7rem; font-weight:700;
    color:var(--text-muted); text-transform:uppercase;
    padding:4px 0; letter-spacing:.5px;
}
.gedraaid-cal-grid {
    display:grid; grid-template-columns:repeat(7,1fr); gap:2px;
}
.gedraaid-cal-day {
    width:100%; aspect-ratio:1; border-radius:8px;
    background:transparent; border:none;
    color:var(--text-secondary); font-family:inherit; font-size:.82rem;
    cursor:pointer; transition:all .2s; font-weight:500;
    display:flex; align-items:center; justify-content:center;
}
.gedraaid-cal-day:hover {
    background:rgba(var(--accent-rgb),.1); color:var(--text);
}
.gedraaid-cal-day.today {
    border:1.5px solid var(--accent); color:var(--accent); font-weight:700;
}
.gedraaid-cal-day.selected {
    background:var(--accent); color:var(--text); font-weight:700;
}
.gedraaid-cal-day.other-month {
    color:var(--text-muted); opacity:.35;
}
.gedraaid-cal-day.future {
    opacity:.25; pointer-events:none;
}
.gedraaid-cal-today {
    display:flex; align-items:center; justify-content:center; gap:6px;
    width:100%; margin-top:10px; padding:8px;
    border:none; border-radius:8px;
    background:rgba(var(--accent-rgb),.08); color:var(--accent);
    font-family:inherit; font-size:.78rem; font-weight:600;
    cursor:pointer; transition:all .2s;
}
.gedraaid-cal-today:hover {
    background:rgba(var(--accent-rgb),.16);
}

/* Time chips */
.gedraaid-timechips {
    display:flex; gap:6px; flex-wrap:wrap;
}
.gedraaid-chip {
    padding:8px 16px; border-radius:50px;
    background:var(--bg-surface); border:1.5px solid var(--border);
    color:var(--text-secondary); font-family:inherit;
    font-size:.8rem; font-weight:600; cursor:pointer;
    transition:all .25s; white-space:nowrap;
}
.gedraaid-chip:hover {
    border-color:rgba(var(--accent-rgb),.4);
    color:var(--text); background:rgba(var(--accent-rgb),.06);
}
.gedraaid-chip.active {
    background:var(--accent); border-color:var(--accent);
    color:var(--text); box-shadow:none;
}

/* Search bar */
.gedraaid-search {
    display:flex; align-items:center; gap:10px;
    flex:1; min-width:200px;
    background:var(--bg-surface); border:1.5px solid var(--border);
    border-radius:50px; padding:0 18px; height:42px;
    transition:all .25s;
}
.gedraaid-search:focus-within {
    border-color:var(--accent);
    box-shadow:0 0 0 3px rgba(var(--accent-rgb),.12);
}
.gedraaid-search i { color:var(--text-muted); font-size:.85rem; flex-shrink:0 }
.gedraaid-search input {
    flex:1; background:transparent; border:none;
    padding:10px 0; font-size:.88rem; color:var(--text);
    font-family:inherit; outline:none; min-width:0;
}
.gedraaid-search input::placeholder { color:var(--text-muted) }
.gedraaid-search-clear {
    background:none; border:none; color:var(--text-muted);
    cursor:pointer; font-size:.8rem; padding:4px;
    display:flex; align-items:center; transition:color .2s;
}
.gedraaid-search-clear:hover { color:var(--text) }

/* Download button */
.gedraaid-download-btn {
    display:inline-flex; align-items:center; gap:8px;
    padding:10px 20px; border-radius:50px;
    background:var(--gradient); border:none;
    color:var(--text); font-family:inherit; font-size:.82rem; font-weight:600;
    cursor:pointer; transition:all .3s; white-space:nowrap;
    box-shadow:none;
}
.gedraaid-download-btn:hover {
    transform:translateY(-1px);
    box-shadow:none;
}

.gedraaid-stats {
    display:flex; align-items:center; gap:16px;
    padding:12px 0; margin-bottom:8px;
    border-bottom:1px solid var(--border);
    font-size:.85rem; color:var(--text-secondary);
}
.gedraaid-stats span:first-child {
    font-weight:600; color:var(--text);
}

/* Track grid - 4×2 per page */
.gedraaid-grid {
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:16px;
    min-height:200px;
}

.gedraaid-card {
    display:flex; flex-direction:column;
    background:var(--bg-card); border:1px solid var(--border);
    border-radius:14px; overflow:hidden;
    text-decoration:none; color:inherit;
    transition:all .25s;
}
.gedraaid-card:hover {
    transform:translateY(-4px);
    border-color:rgba(var(--accent-rgb),.25);
    box-shadow:none;
}
.gedraaid-card-art {
    position:relative; width:100%;
    aspect-ratio:1; overflow:hidden;
    background:var(--bg-card);
}
.gedraaid-card-art img {
    width:100%; height:100%; object-fit:cover;
    transition:transform .3s;
}
.gedraaid-card:hover .gedraaid-card-art img {
    transform:scale(1.05);
}
/* Time badge on cover — same idea as programmering schedule-time */
.gedraaid-card-time {
    position:absolute;
    top:10px;
    left:10px;
    z-index:2;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:4px 10px;
    border-radius:var(--radius-sm, 6px);
    background:rgba(10, 10, 11, 0.82);
    color:var(--text);
    font-size:.76rem;
    font-weight:700;
    font-variant-numeric:tabular-nums;
    letter-spacing:.01em;
    line-height:1.2;
    pointer-events:none;
}
.gedraaid-card[data-live="1"] .gedraaid-card-time {
    background:var(--accent);
    color:var(--text);
}
/* Hover hint removed — not useful on touch devices */
.gedraaid-card-hint,
.nummer-card-hint { display: none !important; }

.gedraaid-card-info {
    padding:12px 14px 14px;
}
.gedraaid-card-track {
    font-size:.88rem; font-weight:600;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
    margin-bottom:2px;
}
.gedraaid-card-artist {
    font-size:.8rem; color:var(--text-secondary);
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}

.gedraaid-loading,
.gedraaid-empty {
    grid-column:1/-1;
    text-align:center; padding:60px 20px;
    color:var(--text-muted); font-size:.95rem;
}
.gedraaid-loading i { margin-right:8px }
.gedraaid-empty i { margin-right:6px }

.gedraaid-loadmore {
    display:flex; justify-content:center;
    margin-top:32px;
}

/* Pagination */
.gedraaid-pagination {
    display:flex; align-items:center; justify-content:center;
    gap:6px; margin-top:32px; flex-wrap:wrap;
}
.gedraaid-pagination button {
    min-width:40px; height:40px;
    padding:0 12px;
    border:1.5px solid var(--border);
    border-radius:10px;
    background:var(--bg-card);
    color:var(--text);
    font-family:inherit; font-size:.88rem; font-weight:500;
    cursor:pointer;
    transition:all .2s;
    display:flex; align-items:center; justify-content:center; gap:6px;
}
.gedraaid-pagination button:hover {
    border-color:var(--accent);
    color:var(--accent);
}
.gedraaid-pagination button.active {
    background:var(--gradient);
    color:var(--text); border-color:transparent;
    box-shadow:none;
}
.gedraaid-pagination button:disabled {
    opacity:.4; cursor:default;
    border-color:var(--border); color:var(--text-muted);
}
.gedraaid-pagination-ellipsis {
    color:var(--text-muted); font-size:.88rem;
    padding:0 4px;
}

/* === Reveal animations === */
.reveal {
    opacity:0; transform:translateY(24px);
    transition:opacity .6s ease, transform .6s ease;
}
.reveal.visible { opacity:1; transform:translateY(0) }

/* === Responsive === */
@media(max-width:1024px) {
    :root { --player-h: 72px; --space-section: 40px; }
    /* Tablet/mobile: hamburger + drawer above backdrop */
    .nav-backdrop { display:block }
    .navbar { z-index:1000 }
    .navbar.menu-open { z-index:1110 }
    .nav-links {
        position:fixed; top:0; right:0; left:auto;
        width:min(360px, 88vw); height:100dvh; height:100vh;
        background:var(--bg-surface);
        flex-direction:column; align-items:stretch; justify-content:flex-start;
        gap:4px; z-index:1111;
        transform:translateX(100%);
        transition:transform .35s cubic-bezier(.4,0,.2,1);
        padding:calc(var(--nav-h) + env(safe-area-inset-top, 0px) + 16px) 16px calc(32px + env(safe-area-inset-bottom, 0px));
        overflow-y:auto; -webkit-overflow-scrolling:touch;
        margin:0;
        border-left:1px solid var(--border);
        box-shadow:none;
        pointer-events:auto;
    }
    .nav-links.open { transform:translateX(0) }
    .nav-links li { width:100%; display:flex }
    .nav-links a {
        font-size:1.05rem; padding:14px 16px; width:100%; text-align:left;
        color:var(--text); border-radius:12px; min-height:48px;
        pointer-events:auto;
    }
    .nav-links a:hover,
    .nav-links a.active { background:rgba(var(--accent-rgb),.12); color:var(--accent-light) }
    .nav-item-dropdown {
        width:100%;
        flex-direction:column;
        align-items:stretch;
    }
    .nav-dropdown-head {
        width:100%;
    }
    .nav-dropdown-head > a {
        flex:1;
    }
    .nav-dropdown-toggle {
        display:inline-flex;
    }
    .nav-dropdown-toggle:hover,
    .nav-item-dropdown.open .nav-dropdown-toggle {
        color:var(--accent-light);
        background:rgba(var(--accent-rgb),.12);
    }
    .nav-dropdown {
        position:static;
        min-width:0;
        width:100%;
        margin:0 0 4px;
        padding:0 0 0 12px;
        border:none;
        border-radius:0;
        box-shadow:none;
        background:transparent;
        opacity:1;
        visibility:visible;
        pointer-events:auto;
        transform:none;
        display:none;
    }
    .nav-item-dropdown.open > .nav-dropdown {
        display:block;
    }
    /* Disable desktop hover-open on mobile drawer */
    .nav-item-dropdown:hover > .nav-dropdown,
    .nav-item-dropdown:focus-within > .nav-dropdown {
        display:none;
    }
    .nav-item-dropdown.open:hover > .nav-dropdown,
    .nav-item-dropdown.open:focus-within > .nav-dropdown {
        display:block;
    }
    .nav-dropdown::before { display:none }
    .nav-dropdown a {
        font-size:1rem;
        padding:12px 16px;
        min-height:44px;
        color:var(--text-secondary);
    }
    .nav-toggle { display:flex; z-index:1112; position:relative }
    .nav-actions { z-index:1112; flex-shrink:0; position:relative }

    /* Hero card — compact side-by-side (no full-width square) */
    .hero-player { padding:calc(var(--nav-h) + env(safe-area-inset-top, 0px) + 36px) 0 56px }
    .page-header { padding:calc(var(--nav-h) + env(safe-area-inset-top, 0px) + 36px) 0 32px }
    .hero-player-card { grid-template-columns:140px minmax(0, 1fr); }
    .hero-player-art {
        width:140px; min-width:140px; max-width:140px;
        aspect-ratio:auto; height:auto; align-self:stretch;
    }
    .hero-player-art::before,
    .hero-player-art::after { display:none }
    .hero-art-wrap {
        position:absolute; inset:0;
        width:100%; height:100%; aspect-ratio:auto; border-radius:0;
    }
    .hero-player-art-img {
        width:100%; height:100%; aspect-ratio:auto;
        object-fit:cover; border-radius:0;
    }
    .hero-player-body { padding:16px 18px }
    .hero-player-track { font-size:1.2rem }
    .hero-play-circle { width:54px; height:54px; font-size:1.1rem }
    .hero-now-row { gap:12px }

    /* Player bar tablet */
    .player-bar { height:calc(var(--player-h) + env(safe-area-inset-bottom, 0px)); overflow:visible }
    .player-container { height:var(--player-h); padding-right:10px; column-gap:8px }
    .player-action-btn--popup span { display:none }
    .player-action-btn--popup { padding:0; width:44px; height:44px; justify-content:center; border-radius:12px }
    .player-album { width:var(--player-h); height:var(--player-h) }

    .hit-card { grid-template-columns:1fr }
    .hit-cover { width:100%; min-height:220px; max-height:300px }
    .hit-info { padding:24px }

    .gedraaid-grid { grid-template-columns:1fr; gap:12px }
    .gedraaid-card { flex-direction:row; border-radius:12px; align-items:stretch }
    .gedraaid-card-art {
        width:96px; height:auto; min-height:96px; aspect-ratio:1; flex-shrink:0;
        border-radius:0; align-self:stretch;
    }
    .gedraaid-card-art img { height:100%; }
    .gedraaid-card-time {
        top:8px; left:8px;
        padding:3px 8px;
        font-size:.68rem;
    }
    .gedraaid-card-info {
        padding:12px 14px;
        justify-content:center;
        display:flex;
        flex-direction:column;
        flex:1;
        min-width:0;
        background:var(--bg-card);
    }
    .news-grid-3 { grid-template-columns:1fr }
    .article-layout { grid-template-columns:1fr; }
    .article-sidebar { position:static }
    .home-row { gap:28px }

    /* Announcement / holiday banners tablet — clearance already via --top-banners-h */
    .announcement-banner,
    .holiday-banner { font-size:.84rem }
    .hero-player .container {
        padding-top:calc(var(--nav-h) + var(--top-banners-h, 0px) + env(safe-area-inset-top, 0px) + 40px);
    }
    .page-header {
        padding-top:calc(var(--nav-h) + var(--top-banners-h, 0px) + env(safe-area-inset-top, 0px) + 24px);
    }
}

@media(max-width:768px) {
    :root { --player-h: 64px; --space-section: 32px; }
    .nav-links a {
        font-size:1.1rem; padding:16px;
    }
    .nav-logo-img { height:32px; max-width:140px }

    /* Full-page mobile menu */
    .nav-links {
        left:0; right:0; width:100%;
        border-left:none;
        padding-top:calc(var(--nav-h) + env(safe-area-inset-top, 0px) + 24px);
        background:var(--bg-body);
    }

    .hero-player .container { padding-top:calc(var(--nav-h) + var(--top-banners-h, 0px) + env(safe-area-inset-top, 0px) + 36px) }
    .page-header { padding:calc(var(--nav-h) + var(--top-banners-h, 0px) + env(safe-area-inset-top, 0px) + 32px) 0 28px }
    .hero-player-card { grid-template-columns:112px minmax(0, 1fr); }
    .hero-player-art { width:112px; min-width:112px; max-width:112px; }
    .hero-player-body { padding:14px 14px 12px }
    .hero-player-track { font-size:1.1rem }
    .hero-track-item { padding:8px 6px; gap:10px; margin:0 -6px }
    .hero-track-item-art { width:36px; height:36px }
    .hero-play-circle { width:50px; height:50px; font-size:1.05rem }


    .about-stats { grid-template-columns:repeat(2, 1fr) }
    .form-layout { grid-template-columns:1fr }
    .form-row { grid-template-columns:1fr }
    /* iOS: keep 16px so focus never zooms (also set on base .form rules) */
    .form input,
    .form select,
    .form textarea,
    .form-group input,
    .form-group select,
    .form-group textarea {
        font-size:16px;
    }
    .section--contact,
    .contact-page,
    .contact-panels,
    .contact-intent-panel,
    .form {
        max-width:100%;
        overflow-x:clip;
    }
    .form-consent .consent-label {
        max-width:100%;
        overflow-wrap:anywhere;
        word-break:break-word;
    }

    .contact-quick { grid-template-columns:1fr }
    .contact-quick-links { grid-template-columns:1fr }
    .contact-intent-grid { grid-template-columns:1fr }
    .contact-methods { grid-template-columns:1fr }
    .how-it-works { flex-direction:column; gap:10px }
    .how-step-arrow { transform:rotate(90deg) }
    .how-step { max-width:100% }
    .form-steps { flex-direction:column; gap:0; align-items:center }
    .form-steps-item { flex-direction:row; gap:12px; width:100%; max-width:280px }
    .form-steps-item span { max-width:none; text-align:left }
    .form-steps-line { width:2px; height:24px; min-width:2px; max-width:2px; margin:0; margin-left:23px; margin-bottom:0 }
    .form-steps-icon { width:44px; height:44px; min-width:44px; font-size:.9rem }
    .form-tabs { width:100% }
    .form-tab { flex:1; justify-content:center; padding:10px 12px }

    /* News / schedule listing — horizontal rows on tablet & phone */
    .news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
    .news-grid-3,
    .news-grid-4,
    .news-grid-home,
    .schedule-list.news-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    .news-card-body { padding: 14px 14px 16px; }
    .news-card--title .news-card-title-wrap { padding: 10px 12px 12px; }
    .news-card-title { font-size: 0.92rem; line-height: 1.3; }
    .news-card--title .news-card-title { font-size: 0.88rem; }
    .news-card-cat { top: 8px; left: 8px; padding: 3px 8px; font-size: 0.65rem; }
    .home-row { grid-template-columns:1fr; gap:32px }
    .home-recent-item:last-child { flex:none }
    .home-recent-art { width:48px; height:48px }
    .home-recent-item { gap:12px; padding:10px 12px }

    /* Player bar responsive – prevent text clipping */
    .player-bar { height:calc(var(--player-h) + env(safe-area-inset-bottom, 0px)); overflow:visible }
    .player-container {
        height:var(--player-h);
        grid-template-columns:minmax(0,1fr) auto auto;
        column-gap:4px;
        padding-right:6px;
    }
    .player-controls { gap:4px }
    .player-icon-btn { width:40px; height:40px }
    .player-btn { width:46px; height:46px; font-size:.9rem }
    .player-eq { display:none }
    .player-info { gap:10px; overflow:hidden }
    .player-text {
        gap:0; min-width:0; overflow:hidden;
        display:flex; flex-direction:column; justify-content:center;
    }
    .player-title,
    .player-artist {
        display:block;
        white-space:nowrap;
        overflow:hidden;
        text-overflow:ellipsis;
        flex-wrap:nowrap;
        width:100%;
        max-width:100%;
    }
    .player-title { font-size:.92rem; line-height:1.25 }
    .player-artist { font-size:.78rem }
    .player-title .marquee-text,
    .player-artist .marquee-text {
        display:block; width:100%; max-width:100%;
        overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
        flex:unset;
    }
    .player-album { width:var(--player-h); height:var(--player-h); flex-shrink:0 }
    .player-right { min-width:40px }
    .player-action-btn--popup span { display:none }
    .player-action-btn--popup { padding:0; width:40px; height:40px; justify-content:center; border-radius:12px }
    .player-volume-popover { width:42px; min-width:42px; height:136px; padding:12px 8px }
    .volume-slider-wrap { height:100px; width:28px }
    .volume-slider { width:100px }

    /* Gedraaid page responsive */
    .gedraaid-controls { padding:16px }
    .gedraaid-controls-row { flex-direction:column; align-items:stretch }
    .gedraaid-datepicker { width:100% }
    .gedraaid-datepicker-btn { width:100%; justify-content:center }
    .gedraaid-timechips { justify-content:center }
    .gedraaid-search { min-width:auto; width:100% }
    .gedraaid-download-btn { width:100%; justify-content:center }
    .gedraaid-grid { grid-template-columns:1fr; gap:10px }
    .gedraaid-card { flex-direction:row; border-radius:12px }
    .gedraaid-card-art {
        width:84px; min-width:84px; height:auto; min-height:84px;
        aspect-ratio:1; flex-shrink:0; border-radius:0; align-self:stretch;
    }
    .gedraaid-card-time {
        top:6px; left:6px;
        padding:2px 7px;
        font-size:.62rem;
    }
    .gedraaid-card-info { padding:10px 12px; justify-content:center; display:flex; flex-direction:column; flex:1; min-width:0 }
    .gedraaid-nowplaying { flex-wrap:wrap }

    /* Pagination responsive */
    .pagination { flex-wrap:wrap; gap:6px }

    /* Announcement / holiday banners mobile — clearance via --top-banners-h */
    .announcement-banner,
    .holiday-banner { font-size:.82rem }
    .hero-player .container,
    .page-header {
        padding-top:calc(var(--nav-h) + var(--top-banners-h, 0px) + env(safe-area-inset-top, 0px) + 32px);
    }
}

@media(max-width:480px) {
    .container { padding:0 16px }
    .section { padding:var(--space-section) 0 }
    .page-header { padding:calc(var(--nav-h) + var(--top-banners-h, 0px) + env(safe-area-inset-top, 0px) + 20px) 0 24px }
    .hero-player-card { grid-template-columns:96px minmax(0, 1fr); }
    .hero-player-art { width:96px; min-width:96px; max-width:96px; }
    .hero-player-body { padding:12px }
    .hero-player-track { font-size:1.05rem }
    .hero-play-circle { width:48px; height:48px; font-size:1rem }
    .hero-track-item-art { width:32px; height:32px }
    .hero-track-item-time { width:36px; font-size:.78rem }
    .cookie-banner-inner { padding:16px }
    .cookie-banner-text p { font-size:.82rem }
    .content-card { padding:24px }
    .hit-info { padding:20px }
    .gedraaid-card-track { font-size:.88rem }
    .gedraaid-card-artist { font-size:.8rem }
    .about-stats { grid-template-columns:repeat(2, 1fr); gap:10px }
    .about-stat { padding:20px 12px }
    .about-stat-value { font-size:1.5rem }
    .schedule-item .schedule-badges { position:static; top:auto; left:auto; max-width:none; margin:0 0 6px; gap:6px }
    .schedule-item .schedule-time.news-card-cat { padding:3px 8px; font-size:.68rem }
    .schedule-item .schedule-now-badge { padding:3px 8px; font-size:.62rem }
    .schedule-item-body.news-card-title-wrap { padding:10px 12px 12px }
    .schedule-tab { padding:8px 4px; border-radius:8px }
    .schedule-tab-full { display:none }
    .schedule-tab-day { font-size:.75rem }
    .contact-quick { grid-template-columns:1fr }
    .contact-methods { grid-template-columns:1fr }
    .form-steps-icon { width:40px; height:40px; font-size:.88rem }
    .form-steps-item span { font-size:.78rem }
    .form-card-header-icon { width:40px; height:40px; font-size:.95rem; border-radius:12px }
    .form-card-header h3 { font-size:1rem }
}

/* === Footer additions === */
.footer-dev {
    margin-top:6px; font-size:.78rem; color:var(--text-muted); opacity:.7;
}
.footer-dev a {
    color:inherit; text-decoration:underline; text-underline-offset:2px;
}
.footer-dev a:hover {
    color:var(--accent-light); opacity:1;
}

/* =============================================
   NEWS CARDS & GRID
   ============================================= */
.news-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(min(300px, 100%), 1fr));
    gap:24px;
}
.news-grid-3 {
    grid-template-columns:repeat(3, 1fr);
}
.news-grid-4 {
    grid-template-columns:repeat(4, 1fr);
    gap:20px;
}
.news-grid-home {
    grid-template-columns:repeat(4, 1fr);
    gap:20px;
}
@media(max-width:1024px) {
    .news-grid-home > .news-card:nth-child(n+6) {
        display: none !important;
    }
    /* Listing + home + related news: stacked rows */
    .news-grid-3,
    .news-grid-4,
    .news-grid-home,
    .schedule-list.news-grid {
        grid-template-columns:1fr;
        gap:12px;
    }
}
@media(max-width:768px) {
    .news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
    .news-grid-3,
    .news-grid-4,
    .news-grid-home,
    .schedule-list.news-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }
}
@media(max-width:480px) {
    .news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .news-grid-3,
    .news-grid-4,
    .news-grid-home,
    .schedule-list.news-grid {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    .news-card-title { font-size: 0.84rem; }
    .news-card--title .news-card-title { font-size: 0.8rem; }
    .news-card--title .news-card-title-wrap { padding: 8px 10px 10px; }
}
.news-card {
    display:flex; flex-direction:column;
    background:var(--bg-card); border:1px solid var(--border);
    border-radius:var(--radius-md); overflow:hidden;
    text-decoration:none; color:inherit;
    transition:transform .25s, border-color .25s, box-shadow .25s;
    box-shadow:none;
}
.news-card:hover {
    transform:translateY(-3px);
    border-color:rgba(var(--accent-rgb),.22);
    box-shadow:none;
}
.news-card-img {
    position:relative; width:100%;
    aspect-ratio:16/9; overflow:hidden;
    background:var(--bg-surface);
}
.news-card-img::after {
    content:''; position:absolute; bottom:0; left:0; right:0;
    height:40%; background:linear-gradient(transparent, rgba(0,0,0,.15));
    pointer-events:none;
}
.news-card-img img {
    width:100%; height:100%; object-fit:cover;
    transition:transform .4s;
}
.news-card:hover .news-card-img img {
    transform:scale(1.06);
}
.news-card-placeholder {
    width:100%; height:100%;
    display:flex; align-items:center; justify-content:center;
    background:var(--gradient); color:var(--text-muted);
    font-size:2rem;
}
.news-card-cat {
    position:absolute; top:12px; left:12px;
    padding:4px 12px; border-radius:50px;
    background:rgba(0,0,0,.6); backdrop-filter:blur(8px);
    color:var(--text); font-size:.72rem; font-weight:600;
    text-transform:uppercase; letter-spacing:.5px;
}
.news-card-body {
    padding:20px 22px 22px;
    display:flex; flex-direction:column; flex:1;
}
.news-card-title {
    font-size:1.18rem; font-weight:700; margin-bottom:10px;
    line-height:1.35;
    display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.news-card--title {
    background:var(--bg-card); border:1px solid var(--border);
    border-radius:var(--radius-md); overflow:hidden;
    box-shadow:none;
}
.news-card--title:hover {
    transform:translateY(-3px);
    border-color:rgba(var(--accent-rgb),.22);
    box-shadow:none;
}
.news-card--title .news-card-img {
    border-radius:0; border:none;
    overflow:hidden; background:var(--bg-surface);
}
.news-card--title:hover .news-card-img {
    border-color:transparent;
}
.news-card--title .news-card-img::after { display:none }
.news-card--title .news-card-title-wrap {
    padding:14px 16px 18px;
    flex:1;
    display:flex;
    align-items:flex-start;
}
.news-card--title .news-card-title {
    margin:0;
    padding:0;
    font-size:.95rem; font-weight:650;
    line-height:1.45;
    display:-webkit-box;
    -webkit-line-clamp:2;
    line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
    max-height:calc(1.45em * 2);
}
.news-card--title:hover .news-card-title { color:var(--accent-light) }
.news-card-excerpt {
    font-size:.95rem; color:var(--text-secondary); line-height:1.65;
    margin-bottom:14px; flex:1;
    display:-webkit-box; -webkit-line-clamp:3; line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}
.news-card-footer {
    display:flex; align-items:center; justify-content:space-between;
    margin-top:auto; padding-top:14px;
    border-top:1px solid var(--border);
}
.news-card-meta {
    display:flex; gap:14px; font-size:.76rem; color:var(--text-muted);
}
.news-card-meta span {
    display:flex; align-items:center; gap:4px;
}
.news-card-meta i { font-size:.68rem; color:var(--accent-light) }
.news-card-arrow {
    color:var(--text-muted); font-size:.8rem;
    transition:all .2s;
}
.news-card:hover .news-card-arrow {
    color:var(--accent); transform:translateX(3px);
}

/* News list page header */
.news-list-header {
    display:flex; align-items:center; justify-content:space-between;
    margin-bottom:32px;
}
.news-count {
    font-size:.88rem; color:var(--text-muted);
}

/* Pagination */
.pagination {
    display:flex; align-items:center; justify-content:center;
    gap:8px; margin-top:40px;
}
.pagination-btn {
    display:flex; align-items:center; justify-content:center;
    min-width:40px; height:40px; padding:0 12px;
    border-radius:10px; font-size:.88rem; font-weight:600;
    background:var(--bg-card); border:1px solid var(--border);
    color:var(--text-secondary); text-decoration:none;
    transition:all .2s; cursor:pointer;
}
.pagination-btn:hover { color:var(--text); border-color:var(--accent); background:rgba(var(--accent-rgb),.06) }
.pagination-btn.active {
    background:var(--gradient); color:var(--text); border-color:transparent;
    box-shadow:none;
    cursor:default;
}

/* =============================================
   NEWS ARTICLE DETAIL
   ============================================= */
.article-breadcrumb {
    display:flex; align-items:center; gap:8px;
    padding:96px 0 0;
    font-size:.85rem; color:var(--text-muted);
}
.article-breadcrumb a {
    color:var(--text-secondary); transition:color .2s; text-decoration:none;
}
.article-breadcrumb a:hover { color:var(--accent-light) }
.article-breadcrumb i { font-size:.6rem; opacity:.5 }

.article-header {
    padding:calc(var(--nav-h) + env(safe-area-inset-top, 0px) + 48px) 0 36px;
}
.article-category { display:none }
.article-title {
    font-size:clamp(1.8rem,4vw,2.8rem); font-weight:800;
    letter-spacing:-.02em; line-height:1.2; margin-bottom:14px;
}
.article-meta {
    display:flex; gap:16px; font-size:.9rem; color:var(--text-secondary);
    flex-wrap:wrap;
}
.article-meta span { display:inline }
.article-meta i { display:none }

.article-hero-img {
    margin-bottom:36px; border-radius:16px; overflow:hidden;
    max-height:480px;
}
.article-hero-img img {
    width:100%; height:100%; object-fit:cover;
    border-radius:16px;
}

.article-layout {
    display:grid; grid-template-columns:minmax(0, 1fr) 200px; gap:56px;
    padding-bottom:60px;
}
.article-content {
    font-size:1rem; line-height:1.85; color:var(--text-secondary);
}
.article-content h2 { font-size:1.4rem; font-weight:700; color:var(--text); margin:32px 0 12px }
.article-content h3 { font-size:1.15rem; font-weight:600; color:var(--text); margin:24px 0 10px }
.article-content p { margin-bottom:16px }
.article-content a { color:var(--accent-light); text-decoration:underline }
.article-content a:hover { color:var(--accent) }
.article-content img { border-radius:12px; margin:20px 0 }
.article-content blockquote {
    padding:16px 24px; margin:20px 0;
    border-left:4px solid var(--accent);
    background:var(--bg-surface); border-radius:0 12px 12px 0;
    color:var(--text); font-style:italic;
}
.article-content ul, .article-content ol { margin:0 0 16px 20px }
.article-content li { margin-bottom:8px }

/* Article sidebar */
.article-sidebar {
    position:sticky; top:86px;
    display:flex; flex-direction:column; gap:20px;
}
.article-share {
    background:transparent; border:none;
    border-radius:0; padding:0;
}
.article-share h4 {
    display:block;
    font-size:.8rem; font-weight:600; margin-bottom:12px;
    text-transform:none; letter-spacing:0; color:var(--text-muted);
}
.article-share h4 i { display:none }
.share-buttons {
    display:flex; flex-direction:row; gap:8px;
}
.share-btn {
    display:flex; align-items:center; justify-content:center;
    width:42px; height:42px; padding:0; border-radius:12px;
    background:var(--bg-card); border:1px solid var(--border);
    color:var(--text-secondary); font-size:1rem; font-weight:500;
    text-decoration:none; transition:border-color .2s, color .2s, background .2s;
}
.share-btn:hover { border-color:var(--accent); color:var(--accent-light); background:rgba(var(--accent-rgb),.06) }
.share-btn i { width:auto; text-align:center; font-size:1rem }
.share-btn span { display:none }
.share-btn.share-fb:hover { border-color:#1877f2; color:#1877f2 }
.share-btn.share-tw:hover { border-color:var(--text); color:var(--text) }
.share-btn.share-wa:hover { border-color:#25d366; color:#25d366 }

/* Article info card */
.article-info-card {
    background:var(--bg-card); border:1px solid var(--border);
    border-radius:16px; padding:24px;
}
.article-info-card h4 {
    display:flex; align-items:center; gap:8px;
    font-size:.88rem; font-weight:700; margin-bottom:14px;
    text-transform:uppercase; letter-spacing:1px; color:var(--text-muted);
}
.article-info-card h4 i { font-size:.82rem; color:var(--accent-light) }
.article-info-card ul {
    list-style:none; padding:0; margin:0;
    display:flex; flex-direction:column; gap:10px;
}
.article-info-card li {
    font-size:.85rem; color:var(--text-secondary);
    display:flex; flex-direction:column; gap:2px;
}
.article-info-card strong {
    font-size:.72rem; font-weight:600; color:var(--text-muted);
    text-transform:uppercase; letter-spacing:.5px;
}

/* Related articles */
.article-related {
    padding:60px 0;
    border-top:1px solid var(--border);
}
.article-related h3 {
    font-size:1.3rem; font-weight:700; margin-bottom:24px;
}

/* (Old home-tracks-highlight removed – now part of hero-player-card) */

/* Empty/loading states */
.recent-tracks-empty,
.recent-tracks-loading {
    text-align:center; padding:40px 20px;
    color:var(--text-muted); font-size:.9rem;
}

/* === Footer: Speel af in === */
.footer-players {
    display:flex; flex-direction:column; gap:6px;
}
.footer-player-link {
    display:flex; align-items:center; gap:10px;
    font-size:.88rem; color:var(--text-secondary);
    text-decoration:none; padding:6px 8px;
    border-radius:8px; transition:all .2s;
}
.footer-player-link:hover {
    color:var(--accent-light); background:rgba(var(--accent-rgb),.06);
}
.footer-player-icon {
    width:28px; height:28px; border-radius:7px;
    background:var(--bg-card); border:1px solid var(--border);
    display:flex; align-items:center; justify-content:center;
    font-size:.75rem; flex-shrink:0; transition:all .2s;
}
.footer-player-link:hover .footer-player-icon {
    background:var(--accent); border-color:var(--accent); color:var(--text);
}

/* === About page === */
.about-page { padding-top:calc(var(--space-section) * .7) }
.about-page-inner {
    max-width:1100px;
    margin:0 auto;
}
.about-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(240px, .85fr);
    gap: 40px 48px;
    align-items: start;
    margin-bottom: 48px;
}
.about-hero-copy { min-width: 0 }
.about-kicker {
    font-family: var(--font-display);
    font-size: .82rem; font-weight: 700;
    letter-spacing: .12em; text-transform: uppercase;
    color: var(--accent-light); margin: 0 0 12px;
}
.about-headline {
    font-family: var(--font-display);
    font-size: clamp(1.75rem, 3.6vw, 2.45rem);
    font-weight: 750; letter-spacing: -.02em;
    line-height: 1.15; margin: 0 0 22px;
}
.about-lead {
    display: flex; flex-direction: column; gap: 14px;
    max-width: 62ch;
}
.about-lead p {
    margin: 0;
    font-size: 1.05rem; line-height: 1.7;
    color: var(--text-secondary);
}

.about-metrics {
    list-style: none; margin: 0; padding: 8px 0 0;
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 18px 16px;
}
.about-metrics li { display: flex; flex-direction: column; gap: 6px; min-width: 0 }
.about-metrics strong {
    font-family: var(--font-display);
    font-size: clamp(1.35rem, 2.4vw, 1.7rem);
    font-weight: 750; color: var(--accent-light);
    letter-spacing: -.02em; line-height: 1;
}
.about-metrics span {
    font-size: .85rem; color: var(--text-muted); font-weight: 500;
}

.about-section-title {
    font-family: var(--font-display);
    font-size: clamp(1.25rem, 2.4vw, 1.55rem);
    font-weight: 700; letter-spacing: -.02em;
    margin: 0 0 18px;
}
.about-stand-for { margin-bottom: 44px }
.about-stand-list {
    list-style: none; margin: 0; padding: 0;
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 20px;
}
.about-stand-list li {
    position: relative;
    padding: 14px 16px 14px 42px;
    border-top: 1px solid var(--border);
    color: var(--text-secondary);
    font-size: .98rem; line-height: 1.5;
}
.about-stand-list li::before {
    content: "";
    position: absolute; left: 16px; top: 1.15em;
    width: 10px; height: 10px;
    background: var(--accent);
    transform: rotate(45deg);
}

.about-pillars {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 28px 24px;
    margin-bottom: 48px;
    padding-top: 8px;
    border-top: 1px solid var(--border);
}
.about-pillar {
    padding: 0;
    border: none; background: none;
}
.about-pillar h3 {
    font-family: var(--font-display);
    font-size: 1.05rem; font-weight: 700;
    margin: 0 0 8px;
}
.about-pillar p {
    margin: 0;
    font-size: .92rem; line-height: 1.55;
    color: var(--text-secondary);
}

.about-split {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: 24px;
    margin-bottom: 40px;
    align-items: stretch;
}
.about-rights {
    border: 1px solid var(--border);
    background: var(--bg-card);
    border-radius: var(--radius-md, 14px);
    padding: 22px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.about-rights h3 {
    font-family: var(--font-display);
    margin: 0;
    font-size: 1.2rem;
}
.about-rights-lead,
.about-rights-note {
    margin: 0;
    color: var(--text-secondary);
    font-size: .92rem;
    line-height: 1.55;
}
.about-rights-grid {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.about-rights-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 14px 0;
    border-top: 1px solid var(--border);
    text-decoration: none;
    color: inherit;
    transition: color .2s;
}
.about-rights-item:first-child { border-top: none; padding-top: 0 }
.about-rights-item strong {
    font-family: var(--font-display);
    font-size: 1rem;
    color: var(--accent-light);
}
.about-rights-item span {
    font-size: .88rem;
    line-height: 1.45;
    color: var(--text-secondary);
}
.about-rights-item:hover strong { color: var(--text) }

.about-links {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 40px;
}
.about-link {
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    padding: 18px 20px;
    background: var(--bg-card); border: 1px solid var(--border);
    border-radius: 14px;
    text-decoration: none; color: inherit;
    transition: border-color .2s, background .2s;
}
.about-link:hover {
    border-color: rgba(var(--accent-rgb), .35);
    background: rgba(var(--accent-rgb), .05);
}
.about-link strong {
    display: block;
    font-family: var(--font-display);
    font-size: 1rem; font-weight: 650; margin-bottom: 3px;
}
.about-link small {
    display: block;
    font-size: .84rem; color: var(--text-secondary); line-height: 1.4;
}
.about-link > i {
    color: var(--accent-light); font-size: .85rem; flex-shrink: 0;
    transition: transform .2s;
}
.about-link:hover > i { transform: translateX(3px) }

.about-join {
    text-align: center;
    padding: 36px 28px;
    border: 1px solid var(--border);
    border-radius: 16px;
    background: rgba(var(--accent-rgb), .06);
}
.about-join h3 {
    font-family: var(--font-display);
    font-size: 1.35rem; font-weight: 700;
    margin: 0 0 10px;
}
.about-join p {
    margin: 0 auto 20px;
    max-width: 54ch;
    font-size: .98rem; line-height: 1.65;
    color: var(--text-secondary);
}

@media (max-width: 960px) {
    .about-hero { grid-template-columns: 1fr; gap: 28px }
    .about-pillars { grid-template-columns: repeat(2, minmax(0, 1fr)) }
    .about-split { grid-template-columns: 1fr }
    .about-links { grid-template-columns: 1fr }
}
@media (max-width: 768px) {
    .about-stand-list { grid-template-columns: 1fr }
    .about-pillars { grid-template-columns: 1fr; gap: 22px }
    .about-metrics { gap: 14px }
    .about-join { padding: 28px 18px }
}
@media (max-width: 480px) {
    .about-metrics { grid-template-columns: 1fr 1fr }
}

/* === Team Grid === */
.team-grid {
    display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)); gap:20px;
}
.team-card {
    display:flex; flex-direction:column; text-decoration:none; color:inherit;
    background:var(--bg-card); border:1px solid var(--border); border-radius:16px;
    overflow:hidden; transition:border-color .2s, transform .2s;
    box-shadow:none;
}
.team-card:hover {
    transform:translateY(-3px); border-color:rgba(var(--accent-rgb),.28);
    box-shadow:none;
}
.team-card-img {
    width:100%; aspect-ratio:1/1; overflow:hidden; background:var(--bg-surface);
}
.team-card-img img {
    width:100%; height:100%; object-fit:cover; transition:transform .4s;
}
.team-card:hover .team-card-img img { transform:scale(1.05); }
.team-card-placeholder {
    width:100%; height:100%; display:flex; align-items:center; justify-content:center;
    font-size:3rem; color:var(--text-muted); background:var(--bg-surface);
}
.team-card-info { padding:16px; text-align:center; }
.team-card-name { font-size:1rem; font-weight:700; margin-bottom:4px; }
.team-card-role { font-size:.82rem; color:var(--accent-light); font-weight:500; }

@media(max-width:768px) {
    .team-grid { grid-template-columns:repeat(2, 1fr); gap:16px; }
}
@media(max-width:480px) {
    .team-grid { grid-template-columns:repeat(2, 1fr); gap:12px; }
    .team-card-info { padding:12px; }
    .team-card-name { font-size:.9rem; }
}

/* === Shows Grid === */
.shows-grid {
    display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:20px;
}
.show-card {
    display:flex; flex-direction:column; text-decoration:none; color:inherit;
    background:var(--bg-card); border:1px solid var(--border); border-radius:16px;
    overflow:hidden; transition:border-color .2s, transform .2s;
    box-shadow:none;
}
.show-card:hover {
    transform:translateY(-3px); border-color:rgba(var(--accent-rgb),.28);
    box-shadow:none;
}
.show-card-img {
    width:100%; aspect-ratio:16/9; overflow:hidden; background:var(--bg-surface);
}
.show-card-img img {
    width:100%; height:100%; object-fit:cover; transition:transform .4s;
}
.show-card:hover .show-card-img img { transform:scale(1.05); }
.show-card-placeholder {
    width:100%; height:100%; display:flex; align-items:center; justify-content:center;
    font-size:2.5rem; color:var(--text-muted); background:var(--bg-surface);
}
.show-card-info { padding:16px; display:flex; flex-direction:column; gap:4px; }
.show-card-name { font-size:1.05rem; font-weight:700; }
.show-card-host { font-size:.84rem; color:var(--text-secondary); }
.show-card-host i { display:none }
.show-card-schedule { font-size:.8rem; color:var(--text-muted); }
.show-card-schedule i { display:none }

/* Show detail — layout in theme-broadcast.css (float wrap) */
@media(max-width:768px) {
    .shows-grid { grid-template-columns:1fr; }
}

/* Empty content state */
.empty-content { text-align:center; padding:60px 20px; }

/* Button sizes */
.btn-lg { padding:14px 28px; font-size:1rem; }

/* === How it works (verzoek) === */
.how-it-works {
    display:flex; align-items:center; justify-content:center;
    gap:16px; margin-bottom:40px;
    flex-wrap:wrap;
}
.how-step {
    text-align:center; padding:24px 20px;
    background:var(--bg-card); border:1px solid var(--border);
    border-radius:14px; flex:1; min-width:160px; max-width:240px;
}
.how-step-num {
    width:36px; height:36px; margin:0 auto 10px;
    border-radius:50%; background:var(--gradient);
    display:flex; align-items:center; justify-content:center;
    font-size:.9rem; font-weight:800; color:var(--text);
}
.how-step h4 { font-size:.92rem; font-weight:700; margin-bottom:4px }
.how-step p { font-size:.8rem; color:var(--text-secondary); line-height:1.4 }
.how-step-arrow {
    color:var(--text-muted); font-size:.85rem;
}

/* === Form card title === */
.form-card-title {
    font-size:1.1rem; font-weight:700; margin-bottom:20px;
    display:flex; align-items:center; gap:10px;
}
.form-card-title i {
    color:var(--accent-light); font-size:1rem;
}

/* === Sidebar card accent variant === */
.sidebar-card--accent {
    background:linear-gradient(135deg, rgba(37,211,102,.06), rgba(37,211,102,.02));
    border-color:rgba(37,211,102,.15);
}

/* === Contact quick cards === */
.contact-quick {
    display:grid; grid-template-columns:repeat(3, 1fr);
    gap:16px; margin-bottom:40px;
}
.contact-quick-card {
    text-align:center; padding:28px 20px;
    background:var(--bg-card); border:1px solid var(--border);
    border-radius:14px; transition:all .25s;
}
.contact-quick-card:hover {
    border-color:rgba(var(--accent-rgb),.25);
    transform:translateY(-3px);
    box-shadow:none;
}
.contact-quick-icon {
    width:48px; height:48px; margin:0 auto 12px;
    border-radius:12px; background:var(--gradient);
    display:flex; align-items:center; justify-content:center;
    font-size:1.1rem; color:var(--text);
}
.contact-quick-card h4 {
    font-size:.95rem; font-weight:700; margin-bottom:4px;
}
.contact-quick-card p {
    font-size:.82rem; color:var(--text-secondary);
}

/* === Form Steps (verzoek timeline) === */
.form-steps {
    display:flex; align-items:center; justify-content:center;
    gap:0; margin-bottom:40px; padding:0 20px;
}
.form-steps-item {
    display:flex; flex-direction:column; align-items:center;
    gap:8px; text-align:center; flex-shrink:0;
}
.form-steps-item span {
    font-size:.82rem; font-weight:600; color:var(--text-secondary);
    max-width:120px; line-height:1.3;
}
.form-steps-icon {
    width:48px; height:48px; border-radius:50%;
    background:var(--gradient); color:var(--text);
    display:flex; align-items:center; justify-content:center;
    font-size:1rem; box-shadow:none;
}
.form-steps-line {
    flex:1; max-width:80px; min-width:32px;
    height:2px; background:var(--border-strong);
    margin:0 12px; margin-bottom:28px;
}

/* === Form Card Header === */
.form-card-header {
    display:flex; align-items:flex-start; gap:14px;
    margin-bottom:24px; padding-bottom:18px;
    border-bottom:1px solid var(--border);
}
.form-card-header-icon {
    display:flex; align-items:center; justify-content:center;
    width:44px; height:44px; border-radius:12px; flex-shrink:0;
    background:var(--gradient); color:var(--text); font-size:1rem;
}
.form-card-header h3 {
    font-family:var(--font-display);
    font-size:1.2rem; font-weight:700; margin:0 0 4px; letter-spacing:-.02em;
}
.form-card-header p {
    font-size:.9rem; color:var(--text-secondary); line-height:1.45; margin:0;
}

/* === Form Section Dividers === */
.form-section {
    display:flex; flex-direction:column; gap:14px;
    padding:16px 0;
    border-bottom:1px solid rgba(255,255,255,.04);
}
.form-section:last-of-type { border-bottom:0; padding-bottom:0 }
.form-section-label {
    display:flex; align-items:center; gap:8px;
    font-size:.75rem; font-weight:700; text-transform:uppercase;
    letter-spacing:.06em; color:var(--text-muted);
}
.form-section-label i { display:inline-block; color:var(--accent-light); font-size:.8rem; opacity:.9 }

.form-consent[hidden] { display:none !important }

/* === Full-width Button === */
.btn-full { width:100%; justify-content:center }

/* === Contact page === */
.section--contact {
    padding-top: 12px;
}
.contact-page {
    max-width: 1080px;
}
.contact-intent {
    margin-bottom: 28px;
}
.contact-intent-title {
    font-family: var(--font-display);
    font-size: clamp(1.15rem, 2vw, 1.35rem);
    font-weight: 700;
    margin: 0 0 16px;
    letter-spacing: -0.02em;
}
.contact-intent-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}
.contact-intent-card {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    min-height: 100%;
    padding: 16px 16px 18px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 14px;
    cursor: pointer;
    text-align: left;
    color: inherit;
    font-family: inherit;
    transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
}
.contact-intent-card:hover {
    border-color: rgba(var(--accent-rgb), 0.4);
    background: var(--bg-card-hover, #1e1e22);
}
.contact-intent-card.active {
    border-color: rgba(var(--accent-rgb), 0.65);
    background: rgba(var(--accent-rgb), 0.1);
    box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.2);
}
.contact-intent-icon {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(var(--accent-rgb), 0.14);
    color: var(--accent-light);
    font-size: 1rem;
}
.contact-intent-card.active .contact-intent-icon {
    background: var(--gradient);
    color:var(--text);
}
.contact-intent-copy {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.contact-intent-label {
    font-family: var(--font-display);
    font-size: 1.02rem;
    font-weight: 700;
    line-height: 1.25;
}
.contact-intent-desc {
    font-size: 0.84rem;
    color: var(--text-secondary);
    line-height: 1.4;
}

.contact-direct {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 18px;
    margin-bottom: 22px;
    padding: 14px 16px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 14px;
}
.contact-direct-label {
    margin: 0;
    font-family: var(--font-display);
    font-size: 0.95rem;
    font-weight: 700;
    white-space: nowrap;
}
.contact-direct-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    flex: 1;
    min-width: 0;
}
.contact-direct-links .contact-quick-link {
    flex: 1 1 220px;
    background: rgba(0, 0, 0, 0.2);
}

/* Only one panel visible — no side-by-side height jump */
.contact-panels {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 16px;
    overflow: hidden;
}
.contact-panels > .contact-intent-panel {
    padding: 26px 24px 28px;
    min-width: 0;
}
.contact-panels > .contact-intent-panel[hidden] {
    display: none !important;
}

.contact-panel-header {
    margin-bottom: 8px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--border);
}
.contact-panel-header h3 {
    font-family: var(--font-display);
    font-size: 1.25rem;
    font-weight: 700;
    margin: 0 0 6px;
    letter-spacing: -0.02em;
}
.contact-panel-header p {
    margin: 0;
    font-size: 0.92rem;
    color: var(--text-secondary);
    line-height: 1.45;
}
.contact-panels .form {
    gap: 8px;
}

/* Legacy contact helpers still used elsewhere */
.contact-sidebar-card {
    background:var(--bg-card);
    border:1px solid var(--border);
    border-radius:16px;
    padding:20px 18px;
    position:sticky; top:calc(var(--nav-h) + 16px);
}
.contact-sidebar-title {
    font-family:var(--font-display);
    font-size:1.05rem; font-weight:700; margin:0 0 6px;
}
.contact-sidebar-text {
    font-size:.88rem; color:var(--text-secondary); line-height:1.45; margin:0 0 16px;
}
.contact-sidebar-links {
    display:flex; flex-direction:column; gap:10px;
}
.contact-quick-links {
    display:grid; grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:14px; margin-bottom:36px;
}
.contact-quick-link {
    display:flex; align-items:center; gap:14px;
    padding:14px 16px;
    background:var(--bg-body); border:1px solid var(--border);
    border-radius:12px; text-decoration:none; color:inherit;
    transition:border-color .2s, background .2s;
}
.contact-quick-link:hover { border-color:rgba(var(--accent-rgb),.35); background:rgba(var(--accent-rgb),.05) }
.contact-quick-link i {
    width:42px; height:42px; border-radius:11px; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    background:var(--gradient); color:var(--text); font-size:1.1rem;
}
.contact-quick-link--wa i { background:#25d366 }
.contact-quick-link strong {
    display:block; font-family:var(--font-display);
    font-size:.95rem; font-weight:650; margin-bottom:2px;
}
.contact-quick-link small {
    display:block; font-size:.82rem; color:var(--text-secondary);
    word-break:break-word;
}

/* === Contact Method Cards === */
.contact-methods {
    display:grid; grid-template-columns:repeat(3, 1fr);
    gap:16px; margin-bottom:32px;
}
.contact-method-card {
    display:flex; flex-direction:column; align-items:center; gap:10px;
    padding:28px 20px; text-align:center;
    background:var(--bg-card); border:1px solid var(--border);
    border-radius:16px; transition:all .25s;
    text-decoration:none; color:inherit;
}
.contact-method-card:hover {
    border-color:rgba(var(--accent-rgb),.25);
    transform:translateY(-3px);
    box-shadow:none;
}
.contact-method-icon {
    width:48px; height:48px; border-radius:14px;
    background:var(--gradient);
    display:flex; align-items:center; justify-content:center;
    font-size:1.1rem; color:var(--text);
    transition:transform .25s;
}
.contact-method-card:hover .contact-method-icon { transform:scale(1.08) }
.contact-method-card h4 {
    font-size:.95rem; font-weight:700;
}
.contact-method-card p {
    font-size:.82rem; color:var(--text-secondary); line-height:1.4;
}

/* === Form Tabs === */
.form-tabs {
    display:flex; gap:4px; margin-bottom:28px;
    background:var(--bg-card); border:1px solid var(--border);
    border-radius:14px; padding:5px; width:fit-content;
}
.form-tab {
    display:flex; align-items:center; gap:8px;
    padding:10px 22px; border-radius:10px;
    font-size:.88rem; font-weight:600;
    color:var(--text-secondary); background:transparent;
    border:none; cursor:pointer; transition:all .2s;
    font-family:inherit;
}
.form-tab:hover {
    color:var(--text); background:rgba(var(--accent-rgb),.05);
}
.form-tab.active {
    color:var(--text); background:var(--gradient);
    box-shadow:none;
}
.form-tab.active[data-tab=\"press\"] {
    background:linear-gradient(135deg, #3A5A80, #5A7A9E);
    box-shadow:none;
}
.form-tab i {
    font-size:.82rem;
}

/* === Selection & Scrollbar === */
::selection { background:rgba(var(--accent-rgb),.3); color:var(--text) }
::-webkit-scrollbar { width:8px }
::-webkit-scrollbar-track { background:var(--bg-body) }
::-webkit-scrollbar-thumb { background:var(--bg-card); border-radius:4px }
::-webkit-scrollbar-thumb:hover { background:var(--text-muted) }

/* === Mobile overrides for late-defined components === */
@media(max-width:768px) {
    .contact-quick { grid-template-columns:1fr }
    .contact-quick-links { grid-template-columns:1fr }
    .contact-intent-grid { grid-template-columns:1fr }
    .contact-methods { grid-template-columns:1fr }
    .contact-panels > .contact-intent-panel { padding:22px 18px 24px }
    .contact-direct { align-items: stretch; flex-direction: column }
}
@media(max-width:480px) {
    .contact-quick { grid-template-columns:1fr }
    .contact-quick-links { grid-template-columns:1fr }
    .contact-intent-grid { grid-template-columns:1fr }
    .contact-methods { grid-template-columns:1fr }
}

/* =============================================
   COOKIE CONSENT BANNER (EU GDPR)
   ============================================= */
.cookie-banner {
    position:fixed;
    bottom:calc(var(--player-h) + env(safe-area-inset-bottom, 0px));
    left:0; right:0;
    z-index:1002;
    background:var(--bg-surface);
    border-top:1px solid var(--border);
    box-shadow:none;
    animation:cookieSlideUp .4s ease;
    padding:0;
}
@keyframes cookieSlideUp {
    from { transform:translateY(100%); opacity:0 }
    to { transform:translateY(0); opacity:1 }
}
@keyframes cookieSlideDown {
    from { transform:translateY(0); opacity:1 }
    to { transform:translateY(100%); opacity:0 }
}
.cookie-banner-inner {
    max-width:1120px; margin:0 auto;
    padding:18px 24px;
    display:flex; align-items:center; gap:20px;
    flex-wrap:wrap;
}
.cookie-banner-text {
    flex:1; min-width:0;
    display:flex; align-items:flex-start; gap:16px;
}
.cookie-banner-icon {
    width:44px; height:44px; border-radius:12px;
    background:var(--gradient); color:var(--text);
    display:flex; align-items:center; justify-content:center;
    font-size:1.2rem; flex-shrink:0;
}
.cookie-banner-text h4 {
    font-size:1rem; font-weight:700; margin-bottom:4px;
}
.cookie-banner-text p {
    font-size:.88rem; color:var(--text-secondary); line-height:1.55; margin-bottom:6px;
}
.cookie-privacy-link {
    font-size:.82rem; font-weight:600; color:var(--accent-light);
    text-decoration:underline; text-underline-offset:2px;
}
.cookie-privacy-link:hover { color:var(--accent) }
.cookie-banner-actions {
    display:flex; gap:10px; flex-shrink:0;
}
.btn-cookie-reject {
    padding:12px 22px; border-radius:12px;
    font-size:.88rem; font-weight:600;
    background:var(--bg-card); border:1px solid var(--border);
    color:var(--text-secondary); cursor:pointer;
    font-family:inherit; transition:all .2s;
}
.btn-cookie-reject:hover {
    border-color:var(--text-muted); color:var(--text);
    background:var(--bg-card-hover);
}
.btn-cookie-accept {
    padding:12px 22px; border-radius:12px;
    font-size:.88rem; font-weight:600;
    background:var(--gradient); border:none;
    color:var(--text); cursor:pointer;
    font-family:inherit; transition:all .2s;
    box-shadow:none;
}
.btn-cookie-accept:hover {
    transform:translateY(-1px);
    box-shadow:none;
}

@media(max-width:768px) {
    .cookie-banner-inner { flex-direction:column; align-items:stretch; gap:16px; padding:20px 16px }
    .cookie-banner-text { gap:12px }
    .cookie-banner-icon { width:36px; height:36px; font-size:1rem }
    .cookie-banner-actions { flex-direction:column; gap:8px }
    .btn-cookie-reject, .btn-cookie-accept { width:100%; text-align:center; justify-content:center }
}

/* Article layout responsive (must come after base definition) */
@media(max-width:1024px) {
    .article-layout { grid-template-columns:1fr; gap:32px }
    .article-sidebar { position:static }
}
@media(max-width:768px) {
    .article-layout { gap:24px; padding-bottom:32px }
    .article-header { padding:calc(var(--nav-h) + env(safe-area-inset-top, 0px) + 32px) 0 24px }
    .article-title { font-size:1.45rem }
    .article-cover { border-radius:12px }
}
