/*
 * Light/dark-mode toggle.
 *
 * De site is oorspronkelijk uitsluitend als donker thema gebouwd: alle
 * Disco-Train plugins (Locaties, Fotogalleries, Artiesten, DJ Mixes,
 * Video's, deze MEC-styling-plugin, de events-ticker) definiëren dezelfde
 * --discotrain-*-variabelen in hun eigen :root-blok (bewust gedupliceerd,
 * zie de losse plugin-bestanden). Omdat :root in elk bestand hetzelfde
 * <html>-element target, hoeft dit ene bestand die variabelen maar ÉÉN keer
 * te herdefiniëren onder html[data-theme="light"] — de hogere specificiteit
 * van een attribuut-selector (0-1-1) t.o.v. :root (0-1-0) wint dan overal,
 * ongeacht laad-volgorde, en werkt zo automatisch door in alle plugins die
 * er al op bouwen (verreweg de meeste kaarten/knoppen/badges/grids).
 *
 * Wat NIET via die variabelen loopt (Betheme's eigen header/footer/tekst-
 * kleur, de custom Pagina-achtergrond-laag, en een handvol losse
 * hardcoded kleuren die ik onderweg ben tegengekomen) staat hieronder apart
 * overruled.
 */

/* ---------------------------------------------------------------------- */
/* 1. Kernpalet — licht                                                   */
/* ---------------------------------------------------------------------- */
html[data-theme="light"] {
    --discotrain-accent: #ff007f;
    --discotrain-accent-hover: #e6006f;
    --discotrain-teal: #006b7d;
    --discotrain-teal-hover: #005866;
    --discotrain-dark: #ffffff;
    --discotrain-dark-alt: #f4f4f7;
    --discotrain-input-bg: #ffffff;
    --discotrain-text: #15151a;
    --discotrain-text-muted: #62626c;
    --discotrain-border: rgba(0, 0, 0, 0.1);
}

/* ---------------------------------------------------------------------- */
/* 2. Betheme's eigen basis-chrome (gebruikt geen --discotrain-variabelen,   */
/*    dus apart overruled). !important nodig: Betheme's eigen, via de       */
/*    Customizer gegenereerde inline <style> in <head> heeft dezelfde of    */
/*    hogere specificiteit en zou anders winnen op laad-volgorde.           */
/* ---------------------------------------------------------------------- */
html[data-theme="light"] body {
    color: var(--discotrain-text) !important;
}

/* Let op: BEWUST geen blanket "a { color: ... }" hier. Veel knoppen op de
   site zijn <a>-elementen die hun eigen tekstkleur zetten via een enkele
   class (bv. .discotrain-ticket-button: roze achtergrond + witte tekst).
   Een generieke html[data-theme="light"] a-regel heeft specificiteit
   (0,1,2) — hoger dan zo'n class-selector (0,1,0) — en zou dus altijd
   winnen, ongeacht laad-volgorde, en de tekst van elke roze CTA-knop roze-
   op-roze (onleesbaar) maken. Gewone tekstlinks vallen daardoor terug op de
   geërfde body-tekstkleur (leesbaar, alleen niet roze-geaccentueerd) — een
   bewuste, veilige trade-off. */

html[data-theme="light"] #Top_bar,
html[data-theme="light"] #Footer,
html[data-theme="light"] #Side_slide {
    background: #ffffff !important;
    color: var(--discotrain-text) !important;
}

html[data-theme="light"] #Top_bar #menu-main-menu > li > a > span,
html[data-theme="light"] #Side_slide #menu-main-menu a,
html[data-theme="light"] .footer_copy,
html[data-theme="light"] .footer_copy a {
    color: var(--discotrain-text) !important;
}

html[data-theme="light"] #Top_bar,
html[data-theme="light"] #Footer {
    border-color: var(--discotrain-border) !important;
}

/* Paginatitel-balk (#Subheader): Betheme print per pagina/layout een eigen
   <style>-blok in <head> voor de achtergrond- en tekstkleur hiervan
   (Pagina-instellingen > Subheader), los van welk thema actief is. Een
   aantal pagina's heeft daar een donkere achtergrond + witte tekst voor
   gekozen (bedoeld voor het donkere thema) die in licht thema niet
   meebeweegt — resultaat: onleesbare of verkeerd gekleurde titel (bv.
   /agenda/, Music Mix). Forceer hier de site-brede lichte kleuren,
   ongeacht wat er per pagina staat ingesteld. */
html[data-theme="light"] #Subheader {
    background-color: var(--discotrain-dark-alt) !important;
}

html[data-theme="light"] #Subheader .title {
    color: var(--discotrain-text) !important;
}

/* Een deel van de pagina's (Agenda, Locaties, DiscoTrain DJs, Music Mix,
   ...) gebruikt niet Betheme's #Subheader maar Elementor's eigen "Page
   Title"-widget (.elementor-widget-theme-page-title). Elementor genereert
   voor elke pagina/widget-instantie een eigen, specifiekere regel
   (".elementor-<page-id> .elementor-element-<element-id> .elementor-
   heading-title { color: #fff; }") die de kleur per pagina hardcodeert —
   sommige op wit (bedoeld voor het donkere thema), andere niet. Omdat die
   per-pagina selector qua specificiteit kan wisselen (afhankelijk van
   hoeveel classes Elementor toevoegt), hier bewust met !important i.p.v.
   op specificiteit vertrouwen. Bewust gescoped tot alleen de page-title-
   widget — een blanket ".elementor-heading-title"-regel zou ook gewone
   Heading-widgets raken die soms bewust wit-op-donkere-sectie staan. */
html[data-theme="light"] .elementor-widget-theme-page-title .elementor-heading-title {
    color: var(--discotrain-text) !important;
}

/* Logo: het huidige logo-bestand is wit getekend, bedoeld voor een donkere
   balk — op een witte balk zou het onzichtbaar worden. Is er via
   Instellingen > Lightmode logo een eigen lichte variant ingesteld, dan
   wisselt discotrain-theme-toggle.js de logo-afbeelding zelf om. Zonder
   eigen upload blijft het gewone logo staan met een kleine donkere
   achtergrond-"chip" erachter, zodat het leesbaar blijft.
   Of er een lightmode-logo is, staat al op de server vast — vandaar
   [data-light-logo] (gezet door het inline <head>-script vóór de eerste
   paint, zie discotrain-theme-toggle.php) i.p.v. de ".discotrain-has-
   light-logo" class die pas na DOMContentLoaded via de footer-JS gezet
   werd. Die class kwam te laat: de chip verscheen even bij elke
   paginalading en verdween daarna weer zodra de JS klaar was. */
html[data-theme="light"][data-light-logo="0"] #logo {
    background: #0d0d0d;
    border-radius: 8px;
    padding: 6px 12px;
}

/* ---------------------------------------------------------------------- */
/* 3. Custom Pagina-achtergrond (discotrain-page-background). Sinds de      */
/*    lightmode-uitbreiding (2026-08-07, discotrain-pbg-frontend.php)      */
/*    kunnen er twee wrappers tegelijk in de DOM staan: #discotrain-pbg    */
/*    (donker) en #discotrain-pbg-light (licht, optioneel — alleen als     */
/*    er expliciet een lichte achtergrond is ingesteld). Puur op CSS       */
/*    steeds maar één tonen, geen JS/flash nodig (zelfde flash-vrije       */
/*    aanpak als de rest van deze toggle). Is er geen lichte variant       */
/*    ingesteld, dan bestaat #discotrain-pbg-light simpelweg niet — licht  */
/*    thema toont dan gewoon de vlakke lichte achtergrondkleur hieronder.  */
/* ---------------------------------------------------------------------- */
html[data-theme="light"] #discotrain-pbg {
    display: none !important;
}

#discotrain-pbg-light {
    display: none !important;
}

html[data-theme="light"] #discotrain-pbg-light {
    display: block !important;
}

html[data-theme="light"] body {
    background: #ffffff !important;
}

/* ---------------------------------------------------------------------- */
/* 4. Losse hardcoded kleuren (niet via variabelen) die op een lichte       */
/*    achtergrond niet meer werken.                                       */
/* ---------------------------------------------------------------------- */

/* Hero-slider datum/tijd-regel: hardcoded wit, bedoeld voor bovenop een
   donkere foto-overlay (die overlay blijft in beide thema's donker, dus dit
   hoeft NIET mee te veranderen — expliciet NIET overruled, ter
   documentatie). */

/* FAQ-accordion (Betheme's ".accordion"): forceerde eerder een donkere
   achtergrond + witte tekst omdat Betheme's eigen lichte kaart anders
   wit-op-wit werd (zie de regel verderop in discotrain-mec.css). In licht
   thema is Betheme's eigen lichte kaart weer prima leesbaar — eigen
   override hier weer ongedaan maken. */
html[data-theme="light"] .accordion .question > .title,
html[data-theme="light"] .accordion .question > .answer {
    background: #ffffff !important;
    color: #15151a !important;
}

/* Elementor/BeBuilder-knoppen (Contact-pagina's e.d.): outline-stijl met
   een halfdoorzichtig WIT randje, bedoeld voor een donkere achtergrond —
   op licht bijna onzichtbaar. */
html[data-theme="light"] .elementor-widget-button .elementor-button,
html[data-theme="light"] .e-button-base {
    border-color: rgba(0, 0, 0, 0.35) !important;
}

/* Social-icoontjes met een witte cirkel-rand (artiesten-profiel, footer,
   mobiel zijmenu) — zelfde reden. */
html[data-theme="light"] .discotrain-fb-icon,
html[data-theme="light"] .discotrain-artiesten-social-link {
    border-color: var(--discotrain-border) !important;
}

/* Events-ticker (discotrain-events-ticker plugin): onderrand hardcoded op
   een halfdoorzichtig wit randje, bedoeld voor de donkere achtergrond. */
html[data-theme="light"] .discotrain-ticker {
    border-bottom-color: var(--discotrain-border) !important;
}

/* ---------------------------------------------------------------------- */
/* 5. De schakel-knop zelf — zwevend linksonder (WhatsApp-knop staat al     */
/*    rechtsonder), zelfde maat/schaduw-stijl.                            */
/* ---------------------------------------------------------------------- */
.discotrain-theme-toggle {
    position: fixed;
    left: 20px;
    bottom: 20px;
    z-index: 999;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    border: 1px solid var(--discotrain-border, rgba(255, 255, 255, 0.12));
    background: var(--discotrain-dark-alt, #1a1a1a);
    color: var(--discotrain-text, #fff);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
    cursor: pointer;
    padding: 0;
    transition: transform 0.15s ease, border-color 0.15s ease;
}

.discotrain-theme-toggle:hover {
    transform: translateY(-2px);
    border-color: var(--discotrain-accent, #ff007f);
}

.discotrain-theme-toggle-icon {
    width: 24px;
    height: 24px;
}

/* Standaard (donker thema, geen data-theme-attribuut of expliciet "dark"):
   maan-icoon tonen ("schakel naar licht"), zon verbergen. */
.discotrain-theme-toggle-icon-sun {
    display: none;
}

/* Licht thema: omgekeerd — zon tonen ("schakel naar donker"), maan
   verbergen. */
html[data-theme="light"] .discotrain-theme-toggle-icon-moon {
    display: none;
}

html[data-theme="light"] .discotrain-theme-toggle-icon-sun {
    display: block;
}

@media only screen and (max-width: 767px) {
    .discotrain-theme-toggle {
        left: 14px;
        bottom: 14px;
        width: 50px;
        height: 50px;
    }

    .discotrain-theme-toggle-icon {
        width: 20px;
        height: 20px;
    }
}

/* ---------------------------------------------------------------------- */
/* 6. Elementor-hulpklassen — handmatig toe te voegen via Advanced > CSS    */
/*    Classes op een sectie/kolom/widget, i.p.v. daar zelf een vaste       */
/*    kleur in te stellen via Elementor's eigen Style-tab. Elementor blijft */
/*    losstaand van deze --discotrain-*-variabelen (zie de toelichting     */
/*    bovenaan dit bestand) — wie in de Style-tab bv. witte tekst op een   */
/*    blauwe achtergrond zet, houdt die kleuren vast in beide thema's.     */
/*    Met een class hieronder i.p.v. een handmatige kleur beweegt het blok  */
/*    wél mee met de schakelaar. !important nodig omdat Elementor voor elk  */
/*    element een eigen, specifiekere ID-gebonden regel genereert           */
/*    (.elementor-<page-id> .elementor-element-<element-id> {...}) die     */
/*    anders zou winnen op specificiteit.                                  */
/* ---------------------------------------------------------------------- */

/* Achtergrond: subtiel kaart-grijs (donker thema) / lichtgrijs (licht
   thema) — voor een sectie/container-achtergrond. */
.discotrain-theme-bg {
    background-color: var(--discotrain-dark-alt) !important;
}

/* Achtergrond: iets donkerder/effener dan hierboven (bv. voor een blok
   bóven op .discotrain-theme-bg, of losstaand als het echte pagina-
   achtergrond-vlak gewenst is). */
.discotrain-theme-bg-solid {
    background-color: var(--discotrain-dark) !important;
}

/* Gewone leestekst. */
.discotrain-theme-text {
    color: var(--discotrain-text) !important;
}

/* Gedempte/secundaire tekst (labels, bijschriften). */
.discotrain-theme-text-muted {
    color: var(--discotrain-text-muted) !important;
}

/* Accentkleur (roze) voor tekst/iconen — blijft in beide thema's hetzelfde
   roze, maar expliciet via de variabele i.p.v. een hardcoded hexcode zodat
   een toekomstige kleurwijziging via deze ene plek blijft lopen. */
.discotrain-theme-text-accent {
    color: var(--discotrain-accent) !important;
}

/* Rand — vervangt zelf ook de rand-stijl (niet alleen de kleur), dus geen
   losse border-width/style meer nodig via Elementor's eigen Style-tab. */
.discotrain-theme-border {
    border: 1px solid var(--discotrain-border) !important;
}

/* Kant-en-klare kaart-look: achtergrond + tekstkleur + rand + afronding +
   binnenruimte in één keer, zelfde opzet als .discotrain-card (gebruikt
   door de andere Disco-Train plugins) — snelste manier om een heel
   Elementor-blok (sectie/kolom) mee te laten bewegen met light/dark. */
.discotrain-theme-card {
    background-color: var(--discotrain-dark-alt) !important;
    color: var(--discotrain-text) !important;
    border: 1px solid var(--discotrain-border) !important;
    border-radius: var(--discotrain-radius) !important;
    padding: 24px !important;
}
