/*
Theme Name: Radio Antenna
Theme URI: https://radioantennaonair.it
Author: Salvatore Miceli
Description: Tema WordPress su misura per Radio Antenna, webradio e radio FM di Palermo. Stile "Dark Beat": sfondo scuro con accenti neon magenta-ciano in tutto il sito. Player streaming sempre in vista in ogni pagina, con copertina, descrizione a scorrimento, controllo del volume, ed equalizzatore realmente collegato all'audio in diretta (non un'animazione finta). Palinsesto intelligente che riconosce da solo il programma in onda in ogni istante, gestisce automaticamente i programmi "inseriti" dentro fasce più ampie (facendo vincere sempre il più specifico), con rientro visivo e connettore grafico per i programmi annidati, riempimento automatico delle fasce scoperte, e scorrimento automatico al programma in onda quando si apre la pagina. Gestione completa di Sponsor, con schede vetrina in rotazione automatica sulla Home, pagine dedicate opzionali (banner, descrizione, mappa con indirizzo o coordinate GPS, icone social, video collegati) attivabili singolarmente per ciascuno. Gestione di Puntate audio o video (file caricato o link YouTube), con categorie, e possibilità di creare contenuti esclusivi per uno sponsor (visibili solo nella sua pagina, invisibili nel resto del sito). Pagina "La nostra storia" con racconto libero e linea del tempo delle tappe principali. Pagina Team con schede di altezza uniforme e biografie complete in un pop-up dedicato. Mappa interattiva della copertura FM. Installabile come app vera e propria su telefono e computer (PWA), con icone personalizzabili, funzionamento offline di base, e controlli play/pausa sulla schermata di blocco e dalle cuffie Bluetooth (Media Session API). Modalità manutenzione e pagina di countdown pre-lancio con animazione di fuochi d'artificio, entrambe attivabili da Personalizza senza toccare codice. Pop-up di benvenuto personalizzabile per annunci importanti, pulsante WhatsApp fluttuante su tutto il sito, statistiche interne dei visitatori unici, pagina 404 personalizzata, e una modalità "statica" opzionale per dispositivi mobili che disattiva le animazioni continue mantenendo aggiornato il programma in onda. Struttura pensata per il posizionamento sui motori di ricerca, compatibile con i principali plugin di gestione cookie/privacy.
Version: 1.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: radio-antenna
*/

/* ===================== VARIABILI ===================== */
:root{
  --bg-0:#07040d;
  --bg-1:#0f0918;
  --bg-2:#161022;
  --surface:#1b1430;
  --border:#2c2245;
  --magenta:#e879f9;
  --magenta-strong:#c026d3;
  --violet:#a855f7;
  --cyan:#22d3ee;
  --text-primary:#f5f3ff;
  --text-secondary:#c4bde0;
  --text-muted:#8b83a8;
  --font-display:'Poppins', Arial, sans-serif;
  --font-body:'Inter', Arial, sans-serif;
  --radius:14px;
}

/* ===================== RESET BASE ===================== */
*,*::before,*::after{ box-sizing:border-box; }

/* NOTA (18 settembre 2026): "hidden" rompeva il menu fisso in alto durante
 * lo scroll (confermato su segnalazione diretta) — si torna a "clip", che
 * NON rompe il menu fisso. Il compromesso accettato: "clip" ha un bug noto
 * di Safari/Chrome su iPhone durante uno scroll molto veloce e ripetuto
 * (parti della pagina possono sparire momentaneamente, si risistemano da
 * sole dopo pochi secondi senza bisogno di ricaricare — verificato meno
 * grave del previsto). Il menu fisso, visibile su ogni pagina in ogni
 * momento, ha priorità su questo bug più raro e meno grave. SE in futuro
 * si trova un modo per risolvere entrambi i problemi insieme, aggiornare
 * qui. */
html{ scroll-behavior:smooth; overflow-x:clip; }
body{
  margin:0;
  overflow-x:clip;
  background:var(--bg-0);
  color:var(--text-primary);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:var(--cyan); text-decoration:none; }
a:hover{ color:var(--magenta); }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:700;
  line-height:1.2;
  margin:0 0 .6em;
  color:var(--text-primary);
}
h1{ font-size:2.6rem; }
h2{ font-size:2rem; }
h3{ font-size:1.3rem; }
p{ margin:0 0 1.2em; color:var(--text-secondary); }
.container{
  max-width:1180px;
  margin:0 auto;
  padding:0 24px;
}
section{ padding:80px 0; }

/* ===================== BOTTONI ===================== */
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:14px 30px;
  border-radius:999px;
  font-family:var(--font-display);
  font-weight:600;
  font-size:.95rem;
  letter-spacing:.03em;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease;
}
.btn-primary{
  background:linear-gradient(90deg,var(--magenta-strong),var(--violet));
  color:#fff;
  box-shadow:0 0 0 rgba(232,121,249,0);
}
.btn-primary:hover{
  color:#fff;
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(168,85,247,.35);
}
.btn-outline{
  background:transparent;
  border-color:var(--border);
  color:var(--text-primary);
}
.btn-outline:hover{
  border-color:var(--cyan);
  color:var(--cyan);
}

/* ===================== HEADER / NAV ===================== */
.site-header{
  position:sticky;
  top:0;
  z-index:100;
  border-bottom:1px solid var(--border);
}
.site-header::before{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(7,4,13,.85);
  backdrop-filter:blur(10px);
  z-index:-1;
}
.site-header .container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-top:14px;
  padding-bottom:14px;
}
.site-logo img,.site-logo svg{ height:46px; width:auto; }
.main-nav ul{ display:flex; gap:32px; }
.main-nav a{
  color:var(--text-secondary);
  font-family:var(--font-display);
  font-weight:600;
  font-size:.92rem;
  letter-spacing:.02em;
  text-transform:uppercase;
}
.main-nav a:hover,.main-nav .current-menu-item a{ color:var(--magenta); }
.nav-toggle{
  display:none;
  background:none;
  border:none;
  color:var(--text-primary);
  font-size:1.6rem;
  cursor:pointer;
}
.header-live-btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:9px 18px;
  border-radius:999px;
  background:var(--surface);
  border:1px solid var(--border);
  color:var(--text-primary);
  font-family:var(--font-display);
  font-size:.85rem;
  font-weight:600;
}
.live-dot{
  width:8px; height:8px; border-radius:50%;
  background:var(--magenta);
  box-shadow:0 0 8px var(--magenta);
  animation:pulse 1.6s infinite;
}
@keyframes pulse{
  0%,100%{ opacity:1; transform:scale(1); }
  50%{ opacity:.4; transform:scale(1.4); }
}

@media (max-width: 1200px){
  .main-nav{
    position:fixed; top:70px; left:0; right:0;
    height:calc(100dvh - 70px);
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    z-index:99;
    background:var(--bg-1);
    padding:40px 24px;
    visibility:hidden;
    opacity:0;
    pointer-events:none;
    transform:translateY(-20px);
    transition:transform .25s ease, opacity .25s ease, visibility 0s linear .25s;
  }
  .main-nav.is-open{
    visibility:visible;
    opacity:1;
    pointer-events:auto;
    transform:translateY(0);
    transition:transform .25s ease, opacity .25s ease, visibility 0s linear 0s;
  }
  .main-nav ul{ flex-direction:column; gap:22px; }
  .nav-toggle{ display:block; }
}

/* ===================== HERO ===================== */
.hero{
  padding:110px 0 90px;
  background:
    radial-gradient(circle at 20% 20%, rgba(168,85,247,.25), transparent 45%),
    radial-gradient(circle at 80% 30%, rgba(34,211,238,.18), transparent 40%),
    var(--bg-0);
  text-align:center;
}
.hero-photo{
  position:relative;
  background-size:cover;
  background-position:center;
}
.hero-eyebrow{
  font-family:var(--font-display);
  font-size:.8rem;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--cyan);
  margin-top:70px;
  margin-bottom:18px;
}
.hero h1{
  font-size:3.4rem;
  background:linear-gradient(90deg,var(--magenta),var(--violet) 50%,var(--cyan));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  margin-bottom:.4em;
}
.hero p.lead{
  max-width:620px;
  margin:0 auto 34px;
  font-size:1.1rem;
  color:var(--text-secondary);
}
.hero.hero-photo h1{
  background:none;
  -webkit-background-clip:initial;
  background-clip:initial;
  color:#ffffff;
  text-shadow:0 2px 14px rgba(0,0,0,.65);
}
.hero.hero-photo .hero-eyebrow{
  margin-top:0;
  color:var(--cyan);
  text-shadow:0 1px 8px rgba(0,0,0,.7);
}
.hero.hero-photo p.lead{
  color:#ffffff;
  text-shadow:0 1px 8px rgba(0,0,0,.7);
}
.hero-actions{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

.equalizer{
  display:flex; align-items:flex-end; justify-content:center;
  gap:6px; height:60px; margin:50px 0 10px;
}
.equalizer span{
  width:8px; border-radius:6px;
  background:linear-gradient(180deg,var(--magenta),var(--cyan));
  animation:eq 1.1s ease-in-out infinite;
}
.equalizer span:nth-child(1){ height:20px; animation-delay:0s; }
.equalizer span:nth-child(2){ height:40px; animation-delay:.15s; }
.equalizer span:nth-child(3){ height:60px; animation-delay:.3s; }
.equalizer span:nth-child(4){ height:34px; animation-delay:.45s; }
.equalizer span:nth-child(5){ height:50px; animation-delay:.6s; }
.equalizer span:nth-child(6){ height:24px; animation-delay:.75s; }
@keyframes eq{
  0%,100%{ transform:scaleY(.4); }
  50%{ transform:scaleY(1); }
}

/* ===================== SEZIONI GENERICHE ===================== */
.section-title{ text-align:center; margin-bottom:50px; }
.section-title .eyebrow{
  display:block;
  font-family:var(--font-display);
  font-size:.8rem;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--magenta);
  margin-bottom:10px;
}
.section-title p{ max-width:560px; margin:12px auto 0; }

.card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:32px;
}

/* ===================== ABOUT / HOME ===================== */
.about-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  align-items:center;
}
.about-grid img{ border-radius:var(--radius); border:1px solid var(--border); }
@media (max-width:820px){ .about-grid{ grid-template-columns:1fr; } }

.stats-row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  margin-top:40px;
}
.stat{ text-align:center; }
.stat b{
  display:block;
  font-family:var(--font-display);
  font-size:2.2rem;
  color:var(--cyan);
}
.stat span{ color:var(--text-muted); font-size:.9rem; }

/* ===================== FREQUENZE FM ===================== */
#frequenze-fm{ scroll-margin-top:100px; }
#programma-in-onda{ scroll-margin-top:100px; }
.fm-frequenze{
  display:flex; flex-wrap:wrap; justify-content:center; gap:14px;
  margin-top:18px;
}
.fm-frequenza-item{
  display:flex; align-items:center; gap:10px;
  padding:12px 22px; border-radius:999px;
  background:var(--surface); border:1px solid var(--border);
  font-family:var(--font-display);
}
.fm-citta{ color:var(--text-muted); font-size:.9rem; }
.fm-frequenza-item strong{ color:var(--cyan); }

/* ===================== MAPPA DI COPERTURA FM ===================== */
.mappa-copertura{
  width:100%; height:380px; border-radius:14px; overflow:hidden;
  border:1px solid var(--border); text-align:left;
  position:relative; isolation:isolate;
}
.mappa-copertura .radioantenna-tiles-scure{
  filter:invert(92%) hue-rotate(200deg) brightness(.85) contrast(.9) saturate(.5);
}
.mappa-copertura .leaflet-popup-content-wrapper{
  background:#1b1430; color:var(--text-primary); border-radius:10px;
}
.mappa-copertura .leaflet-popup-tip{ background:#1b1430; }

/* ===================== PLAYER ===================== */
.player-box{
  max-width:640px;
  margin:0 auto;
  text-align:center;
  padding:50px 40px;
}
.player-box .now-playing{
  font-family:var(--font-display);
  font-size:.85rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--text-muted);
  margin-bottom:6px;
}
.player-box .track-title{ font-size:1.4rem; margin-bottom:26px; }
.player-controls{ display:flex; align-items:center; justify-content:center; gap:24px; margin-bottom:20px; }

/* ===================== ASCOLTA LIVE: layout a due colonne ===================== */
.ascolta-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:32px;
  align-items:stretch;
}
@media (max-width:900px){ .ascolta-grid{ grid-template-columns:1fr; } }

.player-box-big{ padding:40px; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; }
.player-box-big-top{ display:flex; flex-direction:column; align-items:center; gap:24px; }
.player-box-big-cover{
  position:relative;
  width:260px; height:260px; border-radius:22px; flex-shrink:0;
  background:var(--bg-2); border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  transition:opacity .25s ease;
}
.player-box-big-cover img{ width:100%; height:100%; object-fit:cover; display:block; border-radius:22px; }
.player-box-big-cover .mini-player-cover-placeholder{ font-size:4rem; }
.player-box-big-cover .mini-player-cover-eq{ bottom:14px; right:14px; height:26px; gap:3px; }
.player-box-big-cover .mini-player-cover-eq span{ width:3px; }
.player-box-big-info{ text-align:center; }
.player-box-big-info .now-playing{
  font-family:var(--font-display); font-size:.85rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--text-muted); margin-bottom:6px;
}
.player-box-big-info .track-title{ font-size:1.6rem; font-weight:800; margin-bottom:10px; }
.player-box-big-info .track-desc{
  margin:0 0 16px; font-size:.95rem; color:var(--text-secondary);
  max-width:420px; transition:opacity .2s ease;
}
.player-box-big-info .player-controls{ justify-content:center; margin-bottom:0; margin-top:16px; }
.player-box-big .equalizer{ margin:30px 0 0; }

.video-live-box{ padding:40px; }
.chat-embed-wrap{
  margin-top:20px;
  border-radius:12px; overflow:hidden;
  border:1px solid var(--border);
  height:420px;
}
.chat-embed-wrap iframe{ width:100%; height:100%; border:0; display:block; }
.video-embed-wrap{
  position:relative; width:100%; padding-bottom:56.25%; /* 16:9 */
  border-radius:12px; overflow:hidden; background:#000;
  border:1px solid var(--magenta);
  box-shadow:0 0 0 1px var(--magenta), 0 0 24px rgba(232,121,249,.25);
}
.video-embed-wrap iframe{
  position:absolute; inset:0; width:100%; height:100%; border:0;
}
.video-embed-placeholder{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:14px; padding:50px 20px; text-align:center;
  border:1px dashed var(--border); border-radius:12px;
  min-height:220px;
}
.video-embed-placeholder span{ font-size:2rem; }
.video-embed-placeholder p{ margin:0; max-width:320px; font-size:.9rem; }

/* ===================== CAROSELLO VINILI (palinsesto di oggi, Home) =====================
   Le dimensioni di copertina/disco vengono impostate dinamicamente via
   JavaScript per ogni programma, in base alla distanza da quello in onda
   (effetto "campana di Gauss": più lontano, più piccolo, in modo graduale
   e non a scatti). I valori qui sotto sono solo un fallback iniziale. */
.vinili-carosello{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:stretch;
  gap:20px;
  padding:40px 20px;
}

.vinile-item{
  flex:0 0 190px;
  width:190px;
}

.vinile-visual{
  height:100%;
  display:flex;
  flex-direction:column;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 14px 30px rgba(0,0,0,.45);
  transition:box-shadow .35s ease, border-color .35s ease;
}
.vinile-item.is-current .vinile-visual{
  border-color:var(--magenta);
  box-shadow:0 0 0 2px rgba(232,121,249,.4), 0 20px 45px rgba(232,121,249,.35);
}

.vinile-cover{
  width:100%; aspect-ratio:1/1; flex-shrink:0;
  background:var(--bg-2);
  display:flex; align-items:center; justify-content:center;
}
.vinile-cover img{ width:100%; height:100%; object-fit:cover; display:block; }
.vinile-cover .mini-player-cover-placeholder{ font-size:2.2rem; }

.vinile-corpo{ padding:14px 16px 18px; text-align:left; flex:1; display:flex; flex-direction:column; }
.vinile-orario{
  font-family:var(--font-display); font-size:.72rem;
  color:var(--cyan); letter-spacing:.05em; margin-bottom:4px;
}
.vinile-titolo{
  margin:0 0 4px; font-size:.95rem; color:var(--text-secondary);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.vinile-item.is-current .vinile-titolo{ color:var(--text-primary); font-weight:700; font-size:1.05rem; }
.vinile-descrizione{
  margin:0; font-size:.8rem; color:var(--text-muted);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.play-btn{
  width:72px; height:72px; border-radius:50%;
  background:linear-gradient(135deg,var(--magenta-strong),var(--violet));
  border:none; color:#fff; font-size:1.6rem;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  box-shadow:0 0 30px rgba(168,85,247,.4);
}
.volume-row{ display:flex; align-items:center; gap:10px; justify-content:center; color:var(--text-muted); }
.volume-row input[type=range]{ accent-color:var(--cyan); }

/* ===================== PALINSESTO ===================== */
.schedule-tabs{
  display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-bottom:40px;
}
.schedule-tabs button{
  padding:10px 20px; border-radius:999px;
  background:var(--surface); border:1px solid var(--border);
  color:var(--text-secondary); font-family:var(--font-display);
  font-size:.85rem; cursor:pointer;
}
.schedule-tabs button.active{
  background:linear-gradient(90deg,var(--magenta-strong),var(--violet));
  color:#fff; border-color:transparent;
}
.schedule-list{ display:flex; flex-direction:column; gap:14px; }
.schedule-item{
  display:flex; align-items:center; gap:22px;
  padding:6px 24px;
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius);
  transition:border-color .2s ease, box-shadow .2s ease, margin-left .2s ease;
}
.schedule-item-annidato{
  position:relative;
  margin-left:40px;
  background:#150f26;
}
.schedule-item-annidato::before{
  content:'';
  position:absolute;
  left:-22px;
  top:-14px;
  width:18px;
  height:calc(50% + 14px);
  border-left:2px solid rgba(232,121,249,.45);
  border-bottom:2px solid rgba(232,121,249,.45);
  border-bottom-left-radius:10px;
  pointer-events:none;
}
.schedule-item.on-air{
  background:linear-gradient(90deg, rgba(232,121,249,.16), rgba(34,211,238,.10));
  border-color:var(--magenta);
  box-shadow:0 0 0 1px var(--magenta), 0 0 24px rgba(232,121,249,.25);
}
.schedule-thumb{
  width:88px; height:88px; border-radius:12px; overflow:hidden; flex-shrink:0;
  background:var(--bg-2); border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  cursor:zoom-in; transition:transform .2s ease;
}
.schedule-thumb:hover{ transform:scale(1.04); }
.schedule-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.schedule-thumb-placeholder{ font-size:1.6rem; color:var(--text-muted); cursor:default; }
.schedule-thumb-placeholder:hover{ transform:none; }
.schedule-item .time{
  font-family:var(--font-display); font-weight:700; color:var(--cyan);
  min-width:110px;
}
.schedule-item .info{ flex:1; }
.schedule-item .info h4{ margin:0 0 4px; display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.schedule-item .info p{ margin:0; font-size:.9rem; }
.on-air-badge{
  display:inline-flex; align-items:center; gap:6px;
  font-family:var(--font-display); font-size:.72rem; font-weight:700;
  letter-spacing:.05em; text-transform:uppercase; color:var(--magenta);
  background:rgba(232,121,249,.12); padding:4px 10px; border-radius:999px;
}
.tab-oggi-dot{
  display:inline-block; width:6px; height:6px; border-radius:50%;
  background:var(--cyan); margin-left:4px; vertical-align:middle;
}

/* ===================== WIDGET "IN ONDA ORA" (dinamico, usabile ovunque) ===================== */
.onair-widget{
  display:inline-flex; align-items:center; gap:10px;
  padding:10px 20px; border-radius:999px;
  background:var(--surface); border:1px solid var(--border);
  font-family:var(--font-display); font-size:.9rem;
}
.onair-widget-wrap{ text-align:center; margin-bottom:30px; }
.onair-widget-label{ color:var(--text-muted); }
.onair-widget strong{ color:var(--magenta); }

/* ===================== SPONSOR ===================== */
.sponsor-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:26px;
}
@media (max-width:820px){ .sponsor-grid{ grid-template-columns:1fr; } }
.sponsor-card{ position:relative; text-align:center; display:flex; flex-direction:column; }
.sponsor-card h3 a{ color:inherit; text-decoration:none; transition:color .2s ease; }
.sponsor-card h3 a:hover{ color:var(--cyan); }
.sponsor-pulsanti{ margin-top:auto; padding-top:18px; display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }
.puntata-card{ text-align:center; display:flex; flex-direction:column; }
.puntata-card .btn{ margin-top:auto; align-self:center; }

/* ===================== PAGINA PUNTATE (griglia di schede) ===================== */
.puntate-filtri{ margin-bottom:40px; }
.puntate-gruppo{ margin-bottom:50px; }
.puntate-gruppo-titolo{
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
  font-size:1.3rem; margin-bottom:20px;
  padding-bottom:12px; border-bottom:1px solid var(--border);
}
.puntate-gruppo-link{
  font-family:var(--font-display); font-size:.8rem; font-weight:600;
  color:var(--cyan);
}
.puntata-badge-episodio{
  display:inline-block; margin-left:8px; padding:2px 10px; border-radius:999px;
  background:rgba(232,121,249,.15); color:var(--magenta);
  font-family:var(--font-display); font-size:.7rem; font-weight:700; vertical-align:middle;
}

.puntate-grid{
  display:flex;
  flex-wrap:wrap;
  gap:28px;
}
.puntata-card-grande{
  display:flex; flex-direction:column;
  flex:1 1 300px;
  max-width:360px;
}
@media (max-width:640px){
  .puntata-card-grande{ max-width:none; flex-basis:100%; }
}
.puntata-card-grande h3{ margin:0 0 12px; font-size:1.1rem; }
.puntata-percorso{
  margin:0 0 8px; font-size:.75rem; font-weight:700;
  color:var(--magenta); text-transform:uppercase; letter-spacing:.03em;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.puntata-riga-desc{
  margin:12px 0; font-size:.9rem; color:var(--text-secondary);
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}
.puntata-riga-audio{ margin-top:auto; }
.puntata-riga-audio audio{ display:block; width:100%; }
.puntata-riga-footer{
  display:flex; align-items:center; justify-content:space-between;
  margin-top:auto; padding-top:12px;
}
.puntata-riga-data{ color:var(--text-muted); font-size:.8rem; }

.puntata-media-grande{
  width:100%; aspect-ratio:16/9; border-radius:12px; overflow:hidden;
  margin-bottom:16px; background:var(--bg-2);
  display:flex; align-items:center; justify-content:center;
  font-size:2.4rem;
}
.puntata-media-grande img{ width:100%; height:100%; object-fit:cover; display:block; }

.puntata-play-video{
  position:relative; padding:0; border:none; cursor:pointer;
  display:block; width:100%; text-align:left;
}
.puntata-play-overlay{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  background:rgba(4,1,8,.3);
}
.puntata-play-icon{
  width:60px; height:60px; border-radius:50%;
  background:linear-gradient(135deg,var(--magenta-strong),var(--violet));
  color:#fff; font-size:1.4rem;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 24px rgba(168,85,247,.45);
}

/* ---------- Lightbox video (quasi a tutto schermo) ---------- */
.puntata-video-lightbox{
  position:fixed; inset:0; z-index:1000;
  background:rgba(4,1,8,.92);
  display:flex; align-items:center; justify-content:center;
  padding:5vh 4vw; cursor:zoom-out;
  opacity:0; animation:sponsorLightboxIn .2s ease forwards;
}
.puntata-video-lightbox-inner{
  position:relative; width:min(94vw,1100px); aspect-ratio:16/9;
  cursor:default;
}
.puntata-video-lightbox-inner iframe,
.puntata-video-lightbox-inner video{
  position:absolute; inset:0; width:100%; height:100%; border:0; border-radius:10px;
}
.puntata-video-lightbox-chiudi{
  position:absolute; top:-42px; right:0;
  background:none; border:none; color:#fff; font-size:1.8rem; cursor:pointer; line-height:1;
}
.sponsor-card .logo-placeholder{
  height:90px; border-radius:10px;
  background:var(--bg-2); border:1px dashed var(--border);
  display:flex; align-items:center; justify-content:center;
  color:var(--text-muted); font-family:var(--font-display); font-size:.85rem;
  margin-bottom:18px;
}
.sponsor-cta{
  text-align:center; margin-top:50px; padding:40px; border-radius:var(--radius);
  background:linear-gradient(90deg, rgba(192,38,211,.15), rgba(34,211,238,.15));
  border:1px solid var(--border);
}

/* ---------- Banner sponsor cliccabile (effetto zoom) ---------- */
.sponsor-banner{ position:relative; cursor:zoom-in; margin-bottom:18px; border-radius:10px; overflow:hidden; }

/* Nella scheda sponsor (pagina Sponsor e carosello Home) il banner esce dal
   solito bordo interno della scheda, occupando tutta la larghezza in alto. */
.sponsor-card,
.sponsor-slide-item{ overflow:hidden; } /* sicurezza: segue gli angoli arrotondati della scheda */
.sponsor-card .sponsor-banner,
.sponsor-slide-item .sponsor-banner{
  margin:14px -32px 20px -32px;
  border-radius:0;
}
.sponsor-slide-item .sponsor-banner{ margin:10px -24px 20px -24px; } /* il carosello Home ha un padding diverso */
.sponsor-linguetta-sito{
  position:absolute;
  top:14px; right:14px;
  z-index:3;
  width:34px; height:34px;
  border-radius:50%;
  background:var(--cyan);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 12px rgba(0,0,0,.35);
  cursor:pointer;
  transition:transform .2s ease;
}
.sponsor-linguetta-sito:hover{ transform:scale(1.1); }
.sponsor-linguetta-sito svg{ width:16px; height:16px; }
.sponsor-banner img{
  width:100%; display:block; border-radius:10px;
  transition:transform .25s ease;
}
.sponsor-banner:hover img{ transform:scale(1.04); }

.sponsor-lightbox{
  position:fixed; inset:0; z-index:1000;
  background:rgba(4,1,8,.9);
  display:flex; align-items:center; justify-content:center;
  padding:40px; cursor:zoom-out;
  opacity:0; animation:sponsorLightboxIn .2s ease forwards;
}
@keyframes sponsorLightboxIn{ from{ opacity:0; } to{ opacity:1; } }
.sponsor-lightbox img{
  width:min(92vw, 1000px); height:auto; max-height:88vh;
  object-fit:contain;
  border-radius:14px;
  box-shadow:0 0 60px rgba(232,121,249,.35);
  transform:scale(.92); animation:sponsorLightboxZoom .25s ease forwards;
}
@keyframes sponsorLightboxZoom{ from{ transform:scale(.92); } to{ transform:scale(1); } }

/* ---------- Lightbox "al doppio" per copertine (Palinsesto, player fisso) ---------- */
.copertina-lightbox{
  position:fixed; inset:0; z-index:1000;
  background:rgba(4,1,8,.9);
  display:flex; align-items:center; justify-content:center;
  cursor:zoom-out;
  opacity:0; animation:sponsorLightboxIn .2s ease forwards;
}
.copertina-lightbox img{
  border-radius:14px; object-fit:cover;
  box-shadow:0 0 50px rgba(232,121,249,.4);
  transform:scale(.6); opacity:0;
  animation:copertinaLightboxApri .25s ease forwards;
}
@keyframes copertinaLightboxApri{ from{ transform:scale(.6); opacity:0; } to{ transform:scale(1); opacity:1; } }

/* ---------- Carosello sponsor in rotazione (Home), a gruppi affiancati ---------- */
.sponsor-slider{
  position:relative;
  max-width:1080px; margin:0 auto;
  min-height:360px;
}
.sponsor-slide{
  position:absolute; inset:0;
  opacity:0; visibility:hidden;
  transition:opacity .6s ease;
}
.sponsor-slide.active{ position:relative; opacity:1; visibility:visible; }
.sponsor-slide-row{
  display:flex; gap:24px; flex-wrap:wrap; justify-content:center;
}
.sponsor-slide-item{
  position:relative;
  flex:1 1 280px; max-width:320px;
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius);
  padding:24px; text-align:center;
  display:flex; flex-direction:column;
}

.sponsor-slide-item h3 a{ color:inherit; text-decoration:none; transition:color .2s ease; }
.sponsor-slide-item h3 a:hover{ color:var(--cyan); }
.sponsor-slide-banner{ margin-bottom:16px; border-radius:10px; overflow:hidden; }
.sponsor-slide-banner img{ width:100%; display:block; border-radius:10px; }
.sponsor-slide-dots{ display:flex; justify-content:center; gap:8px; margin-top:24px; }
.sponsor-slide-dots button{
  width:9px; height:9px; border-radius:50%;
  background:var(--border); border:none; padding:0; cursor:pointer;
}
.sponsor-slide-dots button.active{ background:var(--magenta); }

/* ===================== CONTATTI ===================== */
.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:50px;
}
@media (max-width:820px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-info-item{ display:flex; gap:16px; margin-bottom:26px; }

.btn-whatsapp{
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 24px; border-radius:999px;
  background:#25D366; color:#08130c; font-weight:700;
  box-shadow:0 10px 24px rgba(37,211,102,.35);
  transition:transform .2s ease, box-shadow .2s ease;
}
.btn-whatsapp:hover{ transform:translateY(-2px); box-shadow:0 14px 30px rgba(37,211,102,.45); color:#08130c; }
.contact-info-item .ico{
  width:44px; height:44px; border-radius:10px;
  background:var(--surface); border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  color:var(--cyan); flex-shrink:0;
}
.social-row{ display:flex; gap:12px; margin-top:20px; }
.social-row a{
  width:46px; height:46px; border-radius:50%;
  background:var(--surface); border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  transition:transform .2s ease, border-color .2s ease;
}
.social-row a:hover{ transform:translateY(-3px); border-color:var(--magenta); }

/* Campo trappola antispam: nascosto alla vista ma presente nel codice per i bot */
.hp-field{
  position:absolute !important;
  left:-9999px !important;
  top:-9999px !important;
  width:1px; height:1px;
  overflow:hidden;
}

form.contact-form label{
  display:block; font-family:var(--font-display); font-size:.85rem;
  margin-bottom:8px; color:var(--text-secondary);
}
form.contact-form input,form.contact-form textarea{
  width:100%; padding:14px 16px; margin-bottom:20px;
  background:var(--bg-2); border:1px solid var(--border); border-radius:10px;
  color:var(--text-primary); font-family:var(--font-body); font-size:.95rem;
}
form.contact-form textarea{
  resize:none;
  overflow-y:auto;
}
form.contact-form input:focus,form.contact-form textarea:focus{
  outline:none; border-color:var(--cyan);
}
.form-note{ font-size:.85rem; color:var(--text-muted); margin-top:-8px; }

/* ===================== FOOTER ===================== */
.site-footer{
  background:var(--bg-1);
  border-top:1px solid var(--border);
  padding:60px 0 30px;
}
.footer-grid{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:40px;
  margin-bottom:40px;
  align-items:stretch;
}
@media (max-width:820px){ .footer-grid{ grid-template-columns:1fr; } }
.footer-grid img,.footer-grid svg{ height:40px; width:auto; margin-bottom:14px; }
.footer-col{ display:flex; flex-direction:column; }
.footer-col h4{ font-size:1.2rem; margin-bottom:16px; text-align:center; }
.footer-col ul li{ margin-bottom:10px; }
.footer-col ul a{ color:var(--text-secondary); }

.footer-map{
  border-radius:12px; overflow:hidden; border:1px solid var(--border);
}
.footer-map iframe{
  display:block;
  filter:invert(92%) hue-rotate(180deg) brightness(95%) contrast(90%);
}
.footer-info-box{
  flex:1;
  padding:20px; border-radius:12px;
  background:var(--surface);
  border:1px solid var(--magenta);
  box-shadow:0 0 0 1px var(--magenta), 0 0 24px rgba(232,121,249,.25);
}
.footer-info-line{
  display:flex; align-items:center; gap:10px;
  font-size:.9rem; color:var(--text-secondary); margin-bottom:14px;
}
.footer-info-line .ico{ color:var(--cyan); flex-shrink:0; }
.footer-info-line a{ color:var(--text-secondary); }
.footer-info-line a:hover{ color:var(--cyan); }
.footer-nav-list li{ margin-bottom:12px; }
.footer-nav-list li:last-child{ margin-bottom:0; }
.footer-nav-list a{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--text-secondary);
  font-size:.92rem;
  transition:color .25s ease;
}
.footer-nav-list a::before{
  content:'\203A';
  color:var(--cyan);
  font-family:var(--font-display);
  font-size:1rem;
  line-height:1;
  opacity:0;
  transform:translateX(-6px);
  transition:opacity .25s ease, transform .25s ease;
}
.footer-nav-list a:hover{ color:var(--text-primary); }
.footer-nav-list a:hover::before{ opacity:1; transform:translateX(0); }

.footer-wisp-big{
  flex:1;
  display:flex; flex-direction:column; align-items:center; text-align:center;
  padding:28px 24px; border-radius:14px;
  background:linear-gradient(160deg, rgba(192,38,211,.12), rgba(34,211,238,.08));
  border:1px solid var(--magenta);
  box-shadow:0 0 0 1px var(--magenta), 0 0 24px rgba(232,121,249,.25);
}
.footer-wisp-corpo{
  flex:1;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px;
}
.footer-wisp-logo-big{
  display:flex; align-items:center; justify-content:center;
  background:#ffffff; border-radius:10px; padding:12px 18px;
}
.footer-wisp-logo-big img{ height:34px; width:auto; display:block; }
.footer-wisp-effect{
  margin:0; font-family:var(--font-display); font-weight:600;
  font-size:1.05rem; color:var(--text-primary); line-height:1.4;
}
.footer-wisp-effect strong{ color:var(--cyan); }

.footer-bottom{
  border-top:1px solid var(--border);
  padding-top:24px;
  text-align:center;
  color:var(--text-muted);
  font-size:.85rem;
}
.footer-bottom-riga{ margin:0 0 8px; }
.footer-bottom-riga:last-child{ margin-bottom:0; }
.footer-bottom-riga a{ color:var(--cyan); text-decoration:underline; text-decoration-color:rgba(34,211,238,.4); }
.footer-bottom-riga a:hover{ color:var(--magenta); }
.credito-team-link{
  color:var(--cyan);
  text-decoration:underline;
  text-decoration-color:rgba(34,211,238,.4);
  cursor:pointer;
  transition:color .2s ease;
}
.credito-team-link:hover{ color:var(--magenta); }

/* ===================== MINI PLAYER FISSO ===================== */
body{ padding-bottom:76px; }
.mini-player{
  position:fixed !important;
  left:0 !important; right:0 !important; bottom:0 !important; top:auto !important;
  z-index:999999;
  width:100%;
  background:rgba(15,9,24,.97);
  backdrop-filter:none; /* niente sfocatura qui: rompe gli elementi fissi nei browser */
  border-top:1px solid var(--border);
}
.mini-player-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:6px 24px;
}
.mini-player-info{ display:flex; align-items:center; gap:14px; min-width:0; }
.mini-player-cover{
  position:relative;
  width:64px; height:64px; border-radius:8px; flex-shrink:0;
  background:var(--bg-2); border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  transition:box-shadow .3s ease, opacity .25s ease;
}
.mini-player-cover.is-playing,
.player-box-big-cover.is-playing{
  animation:mpCoverGlow 1.8s ease-in-out infinite;
}
@keyframes mpCoverGlow{
  0%,100%{ box-shadow:0 0 0 0 rgba(232,121,249,.35); }
  50%{ box-shadow:0 0 10px 3px rgba(232,121,249,.45); }
}
.mini-player-cover img{ width:100%; height:100%; object-fit:cover; display:block; border-radius:8px; }
.mini-player-cover-placeholder{ font-size:1.1rem; color:var(--text-muted); }
.mini-player-cover-eq{
  position:absolute; bottom:4px; right:4px;
  display:flex; align-items:flex-end; gap:2px; height:14px;
  opacity:0; transition:opacity .2s ease;
}
.mini-player-cover.is-playing .mini-player-cover-eq,
.player-box-big-cover.is-playing .mini-player-cover-eq{ opacity:1; }
.mini-player-cover-eq span{
  width:2px; border-radius:1px;
  background:var(--cyan);
  animation:eq .9s ease-in-out infinite;
}
.mini-player-cover-eq span:nth-child(1){ height:6px; animation-delay:0s; }
.mini-player-cover-eq span:nth-child(2){ height:12px; animation-delay:.2s; }
.mini-player-cover-eq span:nth-child(3){ height:8px; animation-delay:.4s; }
.mini-play-btn{
  width:34px; height:34px; border-radius:50%;
  background:linear-gradient(135deg,var(--magenta-strong),var(--violet));
  border:none; color:#fff; font-size:.9rem; flex-shrink:0;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
}
.mini-player-text{ display:flex; flex-direction:column; min-width:0; max-width:280px; }
.mini-player-live{
  display:flex; align-items:center; gap:8px;
  font-family:var(--font-display); font-weight:600; font-size:.7rem;
  letter-spacing:.03em; text-transform:uppercase;
  color:var(--text-muted);
}
.mini-player-track{
  font-size:.95rem; font-weight:700; color:var(--text-primary);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  transition:opacity .2s ease;
}
.mini-player-desc{
  font-size:.75rem; color:var(--text-muted);
  white-space:nowrap; overflow:hidden;
  transition:opacity .2s ease;
  display:block;
}
.mini-player-desc-testo{ display:inline-block; }
.mini-player-desc.scorre .mini-player-desc-testo{
  animation:scorriTestoDescrizione linear infinite;
  animation-duration:var(--durata-scorrimento, 12s);
  padding-right:50px;
}
@keyframes scorriTestoDescrizione{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}
.mini-player-visualizer-wrap{
  position:relative;
  flex:1 1 50%;
  max-width:500px;
  height:50px;
  margin:0 16px 0 auto;
  min-width:0;
}
.mini-player-visualizer-wrap canvas{ width:100%; height:100%; display:block; }
.mini-player-visualizer-suggerimento{
  position:absolute; inset:0;
  display:none;
  align-items:center; justify-content:center;
  font-size:.72rem; color:var(--text-muted);
  text-align:center; white-space:nowrap;
  pointer-events:none;
}
.mini-player-visualizer-suggerimento.visibile{ display:flex; }

.mini-player-volume{ display:flex; align-items:center; gap:10px; color:var(--text-muted); flex-shrink:0; }
.mini-player-volume input[type=range]{
  -webkit-appearance:none;
  appearance:none;
  width:100px;
  height:4px;
  background:rgba(255,255,255,.3);
  border-radius:999px;
  outline:none;
  cursor:pointer;
}
.mini-player-volume input[type=range]::-webkit-slider-runnable-track{
  height:4px;
  background:rgba(255,255,255,.3);
  border-radius:999px;
}
.mini-player-volume input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;
  width:14px; height:14px;
  border-radius:50%;
  background:var(--cyan);
  box-shadow:0 0 4px rgba(34,211,238,.6);
  margin-top:-5px;
  cursor:pointer;
}
.mini-player-volume input[type=range]::-moz-range-track{
  height:4px;
  background:rgba(255,255,255,.3);
  border-radius:999px;
}
.mini-player-volume input[type=range]::-moz-range-thumb{
  width:14px; height:14px;
  border-radius:50%;
  background:var(--cyan);
  box-shadow:0 0 4px rgba(34,211,238,.6);
  border:none;
  cursor:pointer;
}

/* Riproduzione automatica bloccata dal browser: il pulsante lampeggia per farsi notare */
.mini-player.needs-resume{ cursor:pointer; }
.mini-player.needs-resume .mini-play-btn{
  animation:mpPulseResume 1.2s ease-in-out infinite;
  box-shadow:0 0 0 0 rgba(232,121,249,.6);
}
@keyframes mpPulseResume{
  0%   { box-shadow:0 0 0 0 rgba(232,121,249,.55); }
  70%  { box-shadow:0 0 0 12px rgba(232,121,249,0); }
  100% { box-shadow:0 0 0 0 rgba(232,121,249,0); }
}

@media (max-width:600px){
  .mini-player-volume{ display:none; }
  .mini-player-visualizer-wrap{ display:none; }
  .mini-player-inner{ padding:10px 16px; }
}

/* ===================== UTILS ===================== */
.text-center{ text-align:center; }
.mt-40{ margin-top:40px; }
.screen-reader-text{
  position:absolute !important;
  clip:rect(1px,1px,1px,1px);
  overflow:hidden;
  height:1px; width:1px;
}

/* ===================== BLOCCHI GUTENBERG (contenuto editabile) =====================
   Queste regole applicano lo stile "Dark Beat" a qualsiasi contenuto scritto
   con l'editor a blocchi standard di WordPress (titoli, testi, immagini,
   pulsanti, colonne, gruppi) usato nella Home e nelle altre pagine. */

.entry-content, .page-content-blocks{ padding:80px 0; }
.entry-content .container, .page-content-blocks > .container{ max-width:1180px; margin:0 auto; padding:0 24px; }

.page-content-blocks .alignwide{
  max-width:1400px;
  margin-left:calc(50% - 700px);
  margin-right:calc(50% - 700px);
  width:auto;
}
.page-content-blocks .alignfull{
  max-width:100vw;
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
}
@media (max-width:1450px){
  .page-content-blocks .alignwide{ margin-left:0; margin-right:0; max-width:100%; }
}
.page-content-blocks .hero-block.alignfull{ padding-left:24px; padding-right:24px; margin-top:-80px; }

.wp-block-buttons{ display:flex; gap:16px; flex-wrap:wrap; justify-content:center; margin:30px 0; }
.wp-block-button__link{
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 30px; border-radius:999px;
  font-family:var(--font-display); font-weight:600; font-size:.95rem;
  letter-spacing:.03em; text-decoration:none;
  background:linear-gradient(90deg,var(--magenta-strong),var(--violet));
  color:#fff !important; border:none;
  transition:transform .15s ease, box-shadow .15s ease;
}
.wp-block-button__link:hover{ transform:translateY(-2px); box-shadow:0 8px 24px rgba(168,85,247,.35); }
.wp-block-button.is-style-outline .wp-block-button__link{
  background:rgba(7,4,13,.55);
  backdrop-filter:blur(6px);
  border:1.5px solid rgba(255,255,255,.55);
  color:#fff !important;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover{
  background:rgba(7,4,13,.75);
  border-color:var(--cyan); color:var(--cyan) !important;
}

.wp-block-group{
  border-radius:var(--radius);
}
.wp-block-group.has-background{ padding:50px 40px; }

.wp-block-columns{ gap:50px; align-items:center; }
.wp-block-column img{ border-radius:var(--radius); border:1px solid var(--border); }

.wp-block-separator{ border-top:1px solid var(--border); opacity:1; margin:50px auto; }

.wp-block-image{ margin:30px 0; }
.wp-block-image img{ border-radius:var(--radius); }
.wp-block-image figcaption{ color:var(--text-muted); font-size:.85rem; }

.wp-block-quote{
  border-left:3px solid var(--magenta);
  padding-left:24px; font-style:italic; color:var(--text-secondary);
}
.wp-block-quote.is-style-large p{
  font-size:1.5rem;
  line-height:1.5;
}
.wp-block-quote.is-style-large cite{
  display:block;
  text-align:right;
  font-size:1.5rem;
}

/* Sezione con sfondo scuro a tutta larghezza, utile per creare blocchi "a fasce" nella home */
.wp-block-group.is-style-fascia-scura{
  background:var(--bg-1);
  border-radius:0;
}

/* ===================== HERO RIUTILIZZABILE (blocco pronto) =====================
   Markup usato dal blocco riutilizzabile "Hero Radio Antenna": lo stesso
   stile dell'hero originale, ma i testi restano modificabili dall'editor. */
.hero-block{
  position:relative;
  padding:110px 0 90px;
  background:
    radial-gradient(circle at 20% 20%, rgba(168,85,247,.25), transparent 45%),
    radial-gradient(circle at 80% 30%, rgba(34,211,238,.18), transparent 40%),
    var(--bg-0);
  text-align:center;
  overflow:hidden;
}

/* ===================== SCHEDE PROGRAMMI SCORREVOLI (hero Home) ===================== */
.hero-programmi-scorrevoli{
  position:absolute;
  top:38%;
  right:5%;
  transform:translateY(-50%);
  width:210px;
  height:300px;
  z-index:3;
  pointer-events:none;
}
.hero-programma-scorrevole-card{
  position:absolute; inset:0;
  text-decoration:none;
  pointer-events:auto;
  transform:translateX(160%);
  opacity:0;
  transition:transform .6s ease, opacity .6s ease;
}
.hero-programma-scorrevole-card.visibile{ transform:translateX(0); opacity:1; }
@media (max-width:900px){ .hero-programmi-scorrevoli{ display:none; } }
.hero-block .hero-eyebrow{
  display:inline-block; font-family:var(--font-display); font-size:.8rem;
  letter-spacing:.15em; text-transform:uppercase; color:var(--cyan); margin-top:0; margin-bottom:18px;
}
.hero-block h1{
  font-size:3.4rem;
  background:linear-gradient(90deg,var(--magenta),var(--violet) 50%,var(--cyan));
  -webkit-background-clip:text; background-clip:text; color:transparent;
  margin-bottom:.4em;
}
.hero-block p{ max-width:620px; margin:0 auto 34px; font-size:1.1rem; color:var(--text-secondary); }

/* ===================== PAGINA TEAM ===================== */
.team-grid{
  display:flex; flex-wrap:wrap; justify-content:center; gap:28px;
  align-items:stretch;
}
.team-card{
  flex:1 1 260px; max-width:300px;
  text-align:center;
  display:flex; flex-direction:column;
}
.team-foto{
  width:100%; aspect-ratio:1/1; border-radius:14px; overflow:hidden;
  background:var(--bg-2); border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:18px; font-size:2.4rem;
  flex-shrink:0;
}
.team-foto img{ width:100%; height:100%; object-fit:cover; display:block; }
.team-nome{ margin:0 0 4px; font-size:1.15rem; }
.team-ruolo{
  margin:0 0 12px; font-family:var(--font-display); font-size:.8rem;
  color:var(--cyan); text-transform:uppercase; letter-spacing:.04em;
}
.team-descrizione{
  margin:0 0 14px; font-size:.9rem; color:var(--text-secondary);
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}
.team-continua-leggere{
  margin-top:auto; align-self:center;
  background:transparent;
  border:1px solid var(--cyan);
  border-radius:999px;
  padding:8px 20px;
  color:var(--cyan); font-size:.78rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.03em;
  cursor:pointer;
  transition:background .2s ease, color .2s ease;
}
.team-continua-leggere:hover{ background:var(--cyan); color:var(--bg-0); }

.popup-team-box{ max-width:480px; padding:26px; text-align:center; }
.popup-team-foto{
  width:100%; max-width:260px; aspect-ratio:1/1;
  margin:0 auto 16px; border-radius:14px; overflow:hidden;
  flex-shrink:0;
}
.popup-team-foto img{ width:100%; height:100%; object-fit:cover; display:block; }
.popup-team-intestazione{ margin-bottom:14px; }
.popup-team-descrizione-wrap p{ margin:0; color:var(--text-secondary); }

@media (min-width:700px){
  .popup-team-box{
    max-width:820px;
    max-height:80vh;
    display:grid;
    grid-template-columns:150px 1fr;
    grid-template-rows:auto auto;
    gap:0 24px;
    text-align:left;
    padding:30px;
    overflow-y:auto;
  }
  .popup-team-box .popup-team-foto{
    grid-column:1; grid-row:1;
    width:150px; max-width:150px; height:150px;
    margin:0;
  }
  .popup-team-intestazione{
    grid-column:2; grid-row:1;
    display:flex; flex-direction:column; justify-content:center;
    margin-bottom:0;
  }
  .popup-team-descrizione-wrap{
    grid-column:1 / span 2; grid-row:2;
    margin-top:24px;
  }
}

/* ===================== PAGINA 404 ===================== */
.pagina-404-titolo{
  font-size:3.4rem;
  background:linear-gradient(90deg,var(--magenta),var(--violet) 50%,var(--cyan));
  -webkit-background-clip:text; background-clip:text; color:transparent;
  margin-bottom:.4em;
}
.pagina-404-onda{
  display:flex; align-items:flex-end; justify-content:center; gap:4px;
  height:50px; margin:36px 0;
}
.pagina-404-onda span{
  width:6px; border-radius:3px;
  background:linear-gradient(180deg, #22d3ee, #c026d3);
  animation:pagina404Onda 1.2s ease-in-out infinite;
}
.pagina-404-onda span:nth-child(1){ height:20%; animation-delay:0s; }
.pagina-404-onda span:nth-child(2){ height:60%; animation-delay:.1s; }
.pagina-404-onda span:nth-child(3){ height:90%; animation-delay:.2s; }
.pagina-404-onda span:nth-child(4){ height:40%; animation-delay:.3s; }
.pagina-404-onda span:nth-child(5){ height:75%; animation-delay:.4s; }
.pagina-404-onda span:nth-child(6){ height:30%; animation-delay:.5s; }
.pagina-404-onda span:nth-child(7){ height:65%; animation-delay:.6s; }
.pagina-404-onda span:nth-child(8){ height:15%; animation-delay:.7s; }
@keyframes pagina404Onda{
  0%, 100% { transform:scaleY(.6); }
  50% { transform:scaleY(1.3); }
}

/* ===================== PAGINA COUNTDOWN ===================== */
.countdown-box{
  display:flex; justify-content:center; flex-wrap:wrap; gap:20px;
  margin:40px 0;
}
.countdown-unita{
  background:var(--surface); border:1px solid var(--border); border-radius:14px;
  padding:20px 26px; min-width:90px; text-align:center;
}
.countdown-unita span{
  display:block; font-family:var(--font-display); font-size:2.6rem; font-weight:700;
  background:linear-gradient(180deg,var(--cyan),var(--magenta));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.countdown-unita small{
  display:block; margin-top:6px; font-size:.72rem; text-transform:uppercase; letter-spacing:.08em;
  color:var(--text-muted);
}

/* ===================== POP-UP ANNUNCIO (Home) ===================== */
.popup-annuncio-overlay{
  position:fixed; inset:0; z-index:100000;
  background:rgba(4,1,8,.85);
  display:flex; align-items:center; justify-content:center;
  padding:20px;
  opacity:0; visibility:hidden;
  transition:opacity .25s ease, visibility 0s linear .25s;
}
.popup-annuncio-overlay.visibile{
  opacity:1; visibility:visible;
  transition:opacity .25s ease, visibility 0s linear 0s;
}
.popup-annuncio-box{
  position:relative;
  background:var(--surface); border:1px solid var(--magenta); border-radius:16px;
  box-shadow:0 0 0 1px var(--magenta), 0 25px 60px rgba(232,121,249,.3);
  max-width:440px; width:100%;
  overflow:hidden;
  transform:scale(.92); transition:transform .25s ease;
}
.popup-annuncio-overlay.visibile .popup-annuncio-box{ transform:scale(1); }
.popup-annuncio-chiudi{
  position:absolute; top:12px; right:12px; z-index:1;
  width:32px; height:32px; border-radius:50%; border:none;
  background:rgba(7,4,13,.6); color:#fff; font-size:1.3rem; line-height:1;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
}
.popup-annuncio-immagine{ width:100%; aspect-ratio:16/9; object-fit:cover; display:block; }
.popup-annuncio-testo{ padding:26px; text-align:center; }
.popup-annuncio-testo h3{ margin:0 0 10px; font-size:1.4rem; }
.popup-annuncio-testo p{ margin:0; color:var(--text-secondary); }

/* ===================== PULSANTE WHATSAPP FLUTTUANTE ===================== */
.whatsapp-flottante{
  position:fixed;
  right:20px; bottom:90px;
  z-index:99998;
  width:56px; height:56px; border-radius:50%;
  background:#25D366;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 20px rgba(37,211,102,.45);
  transition:transform .2s ease, box-shadow .2s ease;
}
.whatsapp-flottante:hover{ transform:translateY(-3px); box-shadow:0 10px 26px rgba(37,211,102,.55); }
@media (max-width:600px){
  .whatsapp-flottante{ right:14px; bottom:85px; width:50px; height:50px; }
}

/* ===================== PAGINA STORIA ===================== */
.storia-layout{
  display:grid;
  grid-template-columns:1fr 340px;
  gap:60px;
  align-items:start;
}
.storia-racconto{
  font-size:1.05rem;
  line-height:1.8;
  color:var(--text-secondary);
}
.storia-racconto p{ margin-bottom:1.4em; }
.storia-racconto ul{ margin:0 0 1.4em; padding-left:1.4em; }
.storia-racconto li{ margin-bottom:.5em; }
.storia-racconto img{ border-radius:14px; margin:1.5em 0; }
.storia-racconto h2, .storia-racconto h3{ color:var(--text-primary); margin-top:1.6em; }

.storia-foto-placeholder{
  margin:1.5em 0; padding:30px 20px; border-radius:14px;
  background:var(--bg-2); border:1px dashed var(--border);
  text-align:center; color:var(--text-muted); font-size:.9rem;
}
.storia-foto-placeholder span{ display:block; margin-top:4px; font-size:.78rem; opacity:.7; }

.storia-timeline-colonna{
  position:sticky;
  top:100px;
}

.timeline{
  position:relative;
  padding-left:32px;
}
.timeline::before{
  content:'';
  position:absolute;
  left:5px; top:6px; bottom:6px;
  width:2px;
  background:linear-gradient(180deg, var(--magenta), var(--cyan));
}
.timeline-item{
  position:relative;
  padding-bottom:36px;
}
.timeline-item:last-child{ padding-bottom:0; }
.timeline-item::before{
  content:'';
  position:absolute;
  left:-32px; top:6px;
  width:12px; height:12px; border-radius:50%;
  background:var(--bg-0); border:2px solid var(--magenta);
}
.timeline-anno{
  font-family:var(--font-display); font-weight:700; font-size:1.05rem;
  color:var(--cyan); margin-bottom:4px;
}
.timeline-contenuto h3{ margin:0 0 6px; font-size:1.05rem; }
.timeline-contenuto p{ margin:0; color:var(--text-secondary); font-size:.9rem; }
.timeline-foto{
  width:100%; aspect-ratio:16/9; object-fit:cover;
  border-radius:12px; display:block; margin-bottom:10px;
}

@media (max-width:900px){
  .storia-layout{ grid-template-columns:1fr; }
  .storia-timeline-colonna{ position:static; }
}

/* ===================== MESSAGGIO DI LANCIO (fine countdown) ===================== */
.countdown-lancio-titolo{
  font-size:2.4rem;
  background:linear-gradient(90deg,var(--magenta),var(--violet) 50%,var(--cyan));
  -webkit-background-clip:text; background-clip:text; color:transparent;
  margin:20px 0 0;
}

/* ===================== SFONDO CON LOGO (pagina countdown) ===================== */
.countdown-logo-sfondo{
  position:absolute;
  top:50%; left:50%;
  transform:translate(-50%,-50%);
  width:min(70vw, 700px);
  opacity:.08;
  filter:drop-shadow(0 0 60px rgba(232,121,249,.5));
  pointer-events:none;
  z-index:0;
}

/* ===================== PAGINA DEDICATA SPONSOR ===================== */
.sponsor-banner-intestazione{
  padding:130px 0 40px;
  background:var(--bg-0);
  text-align:center;
}
.sponsor-banner-grande{
  max-width:100%;
  max-height:340px;
  width:auto; height:auto;
  margin:0 auto;
  border-radius:var(--radius);
  display:block;
}

.sponsor-dettaglio-layout{
  display:grid;
  grid-template-columns:1fr 340px;
  gap:50px;
  align-items:start;
}
.sponsor-dettaglio-info h1{ margin-top:0; }
.sponsor-dettaglio-descrizione{ color:var(--text-secondary); line-height:1.7; margin-bottom:24px; }
.sponsor-dettaglio-descrizione p{ margin-bottom:1.2em; }
.sponsor-dettaglio-contatti{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.sponsor-dettaglio-contatti li{ display:flex; align-items:center; gap:8px; color:var(--text-secondary); }
.sponsor-dettaglio-contatti a{ color:var(--cyan); text-decoration:none; }
.sponsor-dettaglio-contatti a:hover{ text-decoration:underline; }
.sponsor-dettaglio-social{ display:flex; gap:14px; margin-top:20px; }
.sponsor-dettaglio-social a{ display:block; transition:transform .2s ease; }
.sponsor-dettaglio-social a:hover{ transform:translateY(-3px); }

.sponsor-dettaglio-mappa{
  width:100%;
  aspect-ratio:1/1;
  border-radius:var(--radius);
  overflow:hidden;
  border:1px solid var(--magenta);
  box-shadow:0 0 0 1px var(--magenta), 0 0 24px rgba(232,121,249,.25);
}
.sponsor-dettaglio-mappa iframe{ width:100%; height:100%; border:0; display:block; }

@media (max-width:820px){
  .sponsor-dettaglio-layout{ grid-template-columns:1fr; }
}

/* ===================== MODALITA' STATICA SU MOBILE =====================
 * Disattiva le animazioni CSS continue (non quelle brevi, tipo l'apertura
 * di un lightbox al clic, che terminano da sole in una frazione di secondo).
 * La classe viene aggiunta via JavaScript solo su schermi stretti, quando
 * l'interruttore in Personalizza è attivo — su desktop non si applica mai. */
.modalita-statica-mobile .live-dot,
.modalita-statica-mobile .equalizer span,
.modalita-statica-mobile .mini-player-cover.is-playing,
.modalita-statica-mobile .player-box-big-cover.is-playing,
.modalita-statica-mobile .mini-player-cover-eq span,
.modalita-statica-mobile .mini-player-desc.scorre .mini-player-desc-testo,
.modalita-statica-mobile .mini-player.needs-resume .mini-play-btn{
  animation:none !important;
}

/* ===================== COPPIA DI FOTO AFFIANCATE (pagina Storia) ===================== */
.storia-foto-coppia{
  display:grid; grid-template-columns:1fr 1fr; gap:14px;
  margin:1.5em 0;
}
.storia-foto-coppia img{
  width:100%; aspect-ratio:4/3; object-fit:cover;
  border-radius:14px; display:block;
}
@media (max-width:600px){
  .storia-foto-coppia{ grid-template-columns:1fr; }
}

/* ===================== BANNER COOKIE (Complianz) =====================
 * Il player fisso in basso usa un livello altissimo (999999) per stare
 * sempre sopra tutto — il banner dei cookie va sollevato ancora di più
 * (altrimenti resta parzialmente nascosto dietro al player) e spostato
 * un po' più in alto, per non toccarlo visivamente. */
.cmplz-cookiebanner{
  z-index:9999999 !important;
  margin-bottom:80px !important;
}

/* ===================== FILTRI PUNTATE: CATEGORIA + SOGGETTO ===================== */
.puntate-filtri-riga{
  display:flex; align-items:center; justify-content:center;
  gap:20px; flex-wrap:wrap; margin-bottom:40px;
}
.puntate-filtri-riga .puntate-filtri{ margin-bottom:0; }
.puntate-filtro-soggetto{
  padding:10px 36px 10px 20px; border-radius:999px;
  background:var(--surface); border:1px solid var(--border);
  color:var(--text-secondary); font-family:var(--font-display);
  font-size:.85rem; cursor:pointer;
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center; background-size:16px;
}
.puntate-filtro-soggetto:focus{ outline:none; border-color:var(--cyan); }
