/*
Theme Name: Faradio
Theme URI: https://faradio.org/
Author: Sabina Smart Hub
Author URI: https://faradio.org/
Description: Tema WordPress per Faradio, la web radio della Sabina.
Version: 2.2.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: faradio
*/

:root{
  --bg:#141414;
  --bg-alt:#1b1b1b;
  --bg-dark:#0c0c0c;
  --border:#2a2a2a;
  --red:#e2231a;
  --red-dark:#9c130c;
  --white:#f5f5f5;
  --gray:#9a9a9a;
  --gray-dim:#6e6e6e;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{
  background:var(--bg);
  color:var(--white);
  font-family:'Inter',sans-serif;
  line-height:1.4;
}
h1,h2,h3,.logo,nav a,.btn-red,.btn-outline,.section-title{
  font-family:'Oswald',sans-serif;
  text-transform:uppercase;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
ul{list-style:none;}

/* ---------- Placeholder blocks (stand-in when no image is set) ---------- */
.placeholder{
  background:repeating-linear-gradient(45deg,#232323,#232323 12px,#292929 12px,#292929 24px);
  display:flex;align-items:center;justify-content:center;
  color:var(--gray-dim);
  font-family:'Inter',sans-serif;
  font-size:.7rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  text-align:center;
  padding:.5rem;
  min-height:150px;
}

/* ---------- Topbar ---------- */
.topbar{
  background:var(--bg-dark);
  display:flex;align-items:center;justify-content:space-between;
  padding:.5rem 1.5rem;
  font-size:.78rem;
  border-bottom:1px solid var(--border);
}
.topbar-left a{color:var(--white);}
.topbar-left a:hover{color:var(--red);}
.review-link{text-transform:uppercase;letter-spacing:.04em;display:inline-flex;align-items:center;gap:.45rem;vertical-align:middle;}
.google-g{width:14px;height:14px;display:block;flex-shrink:0;}
.topbar-onair{
  display:flex;align-items:center;gap:.5rem;
  font-family:'Oswald',sans-serif;
  letter-spacing:.03em;
}
.dot{
  width:8px;height:8px;border-radius:50%;background:var(--red);
  animation:pulse 1.4s infinite;
}
@keyframes pulse{0%{opacity:1;}50%{opacity:.3;}100%{opacity:1;}}
.topbar-onair .tag{color:var(--red);font-weight:600;}
.topbar-right{display:flex;align-items:center;gap:.6rem;}
.btn-mini{
  background:var(--red);color:var(--white);
  font-family:'Oswald',sans-serif;font-size:.72rem;font-weight:600;
  padding:.4rem .8rem;border-radius:3px;
}
.btn-mini.outline{background:transparent;border:1px solid var(--gray-dim);}
.hamburger{
  background:none;border:none;color:var(--white);font-size:1.3rem;cursor:pointer;
}
@media (min-width:841px){.hamburger{display:none;}}

/* ---------- Header ---------- */
.site-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:1.1rem 1.5rem;
  background:var(--bg-alt);
}
.social-icons{display:flex;gap:.9rem;font-size:.95rem;color:var(--gray);}
.social-icons a:hover{color:var(--red);}
.logo{
  font-size:1.9rem;font-weight:700;letter-spacing:.02em;color:var(--white);
}
.logo .red{color:var(--red);}
.onair-widget{display:flex;align-items:center;gap:.8rem;}
.onair-info{text-align:right;font-size:.78rem;line-height:1.3;}
.onair-info .tag{color:var(--red);font-weight:700;letter-spacing:.05em;font-family:'Oswald',sans-serif;font-size:.7rem;}
.onair-info strong{display:block;font-family:'Oswald',sans-serif;font-size:.95rem;letter-spacing:.02em;}
.onair-photo{
  width:56px;height:56px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,#3a3a3a,#1c1c1c);
  border:2px solid var(--red);
}

/* ---------- Nav ---------- */
.main-nav{
  background:var(--bg-dark);
  border-top:1px solid var(--border);
  border-bottom:2px solid var(--red);
  padding:.8rem 1rem;
}
.main-nav-list{
  display:flex;justify-content:center;gap:.6rem 1.9rem;flex-wrap:wrap;
  font-size:.85rem;font-weight:500;letter-spacing:.04em;
}
.main-nav-list a{padding:.2rem 0;border-bottom:2px solid transparent;text-transform:uppercase;font-family:'Oswald',sans-serif;}
.main-nav-list a:hover,.main-nav-list a.active,.main-nav-list .current-menu-item a{border-color:var(--red);color:var(--red);}

/* ---------- Hero ---------- */
.hero{position:relative;height:min(62vh,520px);overflow:hidden;background-size:cover;background-position:center;}
.hero .placeholder{height:100%;min-height:100%;}
.hero-overlay{
  position:absolute;left:0;bottom:0;width:100%;
  padding:2.2rem 2rem 1.6rem;
  background:linear-gradient(0deg,rgba(0,0,0,.92) 10%,rgba(0,0,0,.45) 60%,transparent 100%);
}
.hero-line{display:block;width:46px;height:3px;background:var(--red);margin-bottom:.9rem;}
.hero-overlay h1{font-size:clamp(1.4rem,3vw,2.3rem);font-weight:600;max-width:820px;text-transform:none;}
.hero-overlay p{margin-top:.5rem;color:var(--gray);font-size:.95rem;max-width:640px;}

/* ---------- Carousel row ---------- */
.carousel-row{position:relative;background:var(--bg-alt);padding:1.4rem 0;}
.carousel{
  display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;
  padding:0 1.5rem;scrollbar-width:none;
}
.carousel::-webkit-scrollbar{display:none;}
.car-card{
  flex:0 0 280px;scroll-snap-align:start;position:relative;
  height:170px;border-radius:2px;overflow:hidden;
}
.car-card .placeholder,.car-card img{height:100%;width:100%;object-fit:cover;}
.car-caption{
  position:absolute;left:0;bottom:0;width:100%;
  background:linear-gradient(0deg,rgba(0,0,0,.9),transparent);
  padding:.7rem .8rem .6rem;font-size:.85rem;font-weight:600;
}
.car-arrow{
  position:absolute;top:50%;transform:translateY(-50%);
  background:rgba(0,0,0,.55);color:var(--white);border:none;
  width:34px;height:34px;border-radius:50%;cursor:pointer;font-size:1.1rem;z-index:2;
}
.car-arrow.left{left:.4rem;}
.car-arrow.right{right:.4rem;}

/* ---------- Sections ---------- */
.section{padding:2.6rem 1.5rem;}
.section.alt{background:var(--bg-alt);}
.section-title{
  font-size:1.7rem;font-weight:700;letter-spacing:.02em;margin-bottom:1.6rem;
  border-left:5px solid var(--red);padding-left:.7rem;
}
.section-text{max-width:760px;color:var(--gray);font-size:.95rem;margin-bottom:1.2rem;}

.grid-cards{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1.4rem;
}
.card{background:var(--bg-alt);border:1px solid var(--border);display:block;}
.card .placeholder,.card img{height:150px;width:100%;object-fit:cover;}
.card-body{padding:.9rem 1rem 1.1rem;}
.card-tag{color:var(--red);font-size:.68rem;font-weight:700;letter-spacing:.06em;font-family:'Oswald',sans-serif;}
.card h3{font-size:1rem;font-weight:500;text-transform:none;margin-top:.4rem;line-height:1.35;font-family:'Inter',sans-serif;}
.card p.excerpt{font-size:.83rem;color:var(--gray);margin-top:.5rem;line-height:1.5;text-transform:none;}

.btn-red{
  display:inline-block;background:var(--red);color:var(--white);
  font-size:.8rem;font-weight:600;letter-spacing:.05em;
  padding:.75rem 1.6rem;border-radius:3px;margin-top:.4rem;
}
.btn-red:hover{background:var(--red-dark);}
.btn-outline{
  display:inline-block;border:1px solid var(--white);color:var(--white);
  font-size:.8rem;font-weight:600;letter-spacing:.05em;
  padding:.75rem 1.6rem;border-radius:3px;margin-top:1rem;
}
.btn-outline:hover{border-color:var(--red);color:var(--red);}

/* ---------- Show banner ---------- */
.show-banner{
  text-align:center;
  background:
    linear-gradient(160deg,rgba(20,20,20,.55),rgba(20,20,20,.92)),
    repeating-linear-gradient(45deg,#3a0f0d,#3a0f0d 14px,#2a0a08 14px,#2a0a08 28px);
  padding:3.4rem 1.5rem;
}
.show-banner h2{font-size:2rem;font-weight:700;}
.show-banner p{color:var(--gray);margin-top:.5rem;font-size:1rem;}

/* ---------- Sostenitori ---------- */
.logo-row{display:flex;flex-wrap:wrap;gap:1.2rem;}
.logo-box{
  flex:0 0 150px;height:80px;background:var(--bg-alt);border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;color:var(--gray-dim);
  font-family:'Oswald',sans-serif;font-size:.75rem;letter-spacing:.04em;overflow:hidden;
}
.logo-box img{width:100%;height:100%;object-fit:contain;padding:.6rem;}
.sostenitori .logo-row{gap:1rem;}
.sostenitori .logo-box{flex:0 0 140px;height:140px;background:#f4f4f4;border:0;border-radius:12px;transition:transform .15s ease;}
.sostenitori a.logo-box:hover{transform:translateY(-3px);}
.sostenitori .logo-box img{padding:.5rem;}

/* ---------- Footer ---------- */
footer{background:var(--bg-dark);padding:2.6rem 1.5rem 1.4rem;margin-top:1rem;}
.footer-app{
  display:flex;align-items:center;gap:1.4rem;
  max-width:640px;margin:0 auto 2rem;text-align:left;
}
.footer-app-logo{display:block;width:220px;flex-shrink:0;}
.footer-app-logo img{display:block;width:100%;height:auto;}
.footer-app-text p{font-size:.85rem;color:var(--gray);letter-spacing:.03em;margin-bottom:.5rem;text-transform:uppercase;font-family:'Oswald',sans-serif;}
.footer-social-icons{display:flex;gap:.8rem;margin-top:.7rem;font-size:.85rem;color:var(--gray);}
.footer-social-icons a:hover{color:var(--red);}

.footer-contacts{
  text-align:center;font-size:.85rem;color:var(--gray);
  border-top:1px solid var(--border);padding:1.4rem 0;max-width:820px;margin:0 auto;
}
.footer-contacts b{color:var(--white);}
.footer-contacts .iban{display:block;margin-top:.4rem;color:var(--gray-dim);font-size:.78rem;}

.legal-text{
  text-align:center;font-size:.72rem;color:var(--gray-dim);
  max-width:760px;margin:1.4rem auto;line-height:1.6;
}
.footer-links{
  display:flex;flex-wrap:wrap;justify-content:center;gap:1.4rem;
  font-size:.75rem;color:var(--gray);padding-top:1rem;border-top:1px solid var(--border);
}
.footer-links a:hover{color:var(--red);}
.footer-credit{text-align:center;font-size:.72rem;color:var(--gray-dim);letter-spacing:.03em;margin-top:1.2rem;}
.footer-credit a{display:inline-flex;align-items:center;gap:.35rem;color:var(--gray);font-weight:600;transition:color .15s;}
.footer-credit a:hover,.footer-credit a:focus-visible{color:var(--red);}
.footer-credit svg{width:13px;height:13px;fill:currentColor;}

/* ---------- Page hero (sub-pages) ---------- */
.page-hero{
  padding:3rem 1.5rem 2.2rem;
  background:linear-gradient(160deg,#1b1b1b,#0c0c0c);
  border-bottom:2px solid var(--red);
}
.page-hero .hero-line{margin-bottom:.9rem;}
.page-hero h1{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:700;}
.page-hero p{color:var(--gray);margin-top:.6rem;max-width:680px;font-size:1rem;text-transform:none;}

/* ---------- Schedule table (Palinsesto) ---------- */
.schedule{width:100%;border-collapse:collapse;margin-top:1rem;font-size:.85rem;}
.schedule th{background:var(--bg-dark);color:var(--red);text-transform:uppercase;font-family:'Oswald',sans-serif;font-size:.72rem;letter-spacing:.05em;padding:.7rem .6rem;text-align:left;border-bottom:2px solid var(--red);}
.schedule td{padding:.65rem .6rem;border-bottom:1px solid var(--border);color:var(--gray);}
.schedule tr:hover td{background:var(--bg-alt);}
.schedule-wrap{overflow-x:auto;}

/* ---------- Speaker grid ---------- */
.speaker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.4rem;}
.speaker-card{background:var(--bg-alt);border:1px solid var(--border);padding:1.2rem;display:flex;gap:1rem;}
.speaker-photo{width:64px;height:64px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,#3a3a3a,#1c1c1c);border:2px solid var(--red);overflow:hidden;object-fit:cover;}
.speaker-info h4{font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:.9rem;letter-spacing:.02em;}
.speaker-info .role{color:var(--red);font-size:.68rem;text-transform:uppercase;font-family:'Oswald',sans-serif;letter-spacing:.05em;margin:.25rem 0 .4rem;display:block;}
.speaker-info p{font-size:.8rem;color:var(--gray);line-height:1.5;}

.badge-wip{
  display:inline-block;background:var(--red-dark);color:var(--white);
  font-family:'Oswald',sans-serif;font-size:.68rem;letter-spacing:.05em;
  padding:.35rem .8rem;border-radius:3px;margin-bottom:1rem;text-transform:uppercase;
}

.contest-box{
  background:var(--bg-alt);border:1px solid var(--border);border-left:4px solid var(--red);
  padding:1.4rem 1.6rem;max-width:640px;margin-top:1.4rem;
}
.contest-box h3{font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:1rem;letter-spacing:.03em;margin-bottom:.5rem;}
.contest-box p{font-size:.88rem;color:var(--gray);line-height:1.6;}

/* ---------- Single article/programma/speaker ---------- */
.single-header{padding:2.4rem 1.5rem 1rem;max-width:820px;margin:0 auto;}
.single-header h1{font-size:clamp(1.6rem,3.4vw,2.2rem);font-weight:700;text-transform:none;}
.single-meta{color:var(--red);font-size:.75rem;text-transform:uppercase;font-family:'Oswald',sans-serif;letter-spacing:.05em;margin-bottom:.6rem;display:block;}
.single-thumb{max-width:960px;margin:0 auto 1.6rem;}
.single-thumb img{width:100%;height:auto;max-height:560px;object-fit:contain;background:#000;}

/* ---------- Free-form editor content (Gutenberg) kept on-brand ---------- */
.entry-content{max-width:820px;margin:0 auto;padding:0 1.5rem 2rem;font-size:.98rem;color:var(--gray);line-height:1.7;}
.entry-content h2{color:var(--white);font-size:1.5rem;margin:1.8rem 0 1rem;border-left:5px solid var(--red);padding-left:.7rem;}
.entry-content h3{color:var(--white);font-size:1.15rem;margin:1.4rem 0 .7rem;}
.entry-content p{margin-bottom:1rem;}
.entry-content a{color:var(--red);text-decoration:underline;}
.entry-content ul,.entry-content ol{margin:0 0 1rem 1.2rem;list-style:revert;}
.entry-content img{border-radius:2px;margin:1rem 0;}
.entry-content table{width:100%;border-collapse:collapse;margin:1rem 0;font-size:.85rem;}
.entry-content table th{background:var(--bg-dark);color:var(--red);text-transform:uppercase;font-family:'Oswald',sans-serif;font-size:.72rem;letter-spacing:.05em;padding:.7rem .6rem;text-align:left;border-bottom:2px solid var(--red);}
.entry-content table td{padding:.65rem .6rem;border-bottom:1px solid var(--border);}
.entry-content .wp-block-button__link{
  display:inline-block;background:var(--red);color:var(--white) !important;text-decoration:none;
  font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:.8rem;font-weight:600;letter-spacing:.05em;
  padding:.75rem 1.6rem;border-radius:3px;
}
.entry-content .wp-block-quote{border-left:4px solid var(--red);padding-left:1rem;font-style:italic;color:var(--white);}
.entry-content .wp-block-columns{gap:1.4rem;}

/* ---------- Header / topbar additions ---------- */
.topbar{flex-wrap:wrap;gap:.5rem 1rem;}
.topbar-right{flex-wrap:wrap;}
.social-icons{align-items:center;flex-wrap:wrap;}
/* Header: icone social e pulsanti sotto; il logo resta sempre al centro */
.site-header{display:grid;grid-template-columns:1fr auto 1fr;}
.site-header .social-icons{justify-self:start;row-gap:.6rem;}
.site-header .onair-widget{justify-self:end;}
.header-cta{flex:0 0 100%;display:flex;flex-wrap:wrap;gap:.6rem;}
.social-icons a.btn-red:hover{color:var(--white);}
.social-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;color:var(--gray);transition:color .2s,transform .2s;}
.social-icon svg{display:block;width:22px;height:22px;fill:currentColor;}
.social-icon:hover{color:var(--red);transform:translateY(-2px);}
.btn-sm{padding:.5rem 1rem;font-size:.72rem;margin-top:0;}
.caps,.onair-info strong{text-transform:uppercase;}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.hero-banner{height:auto;}
.hero-link{display:block;line-height:0;}
.hero-banner img{display:block;width:100%;height:auto;}
@media (max-width:600px){.hero-banner img{aspect-ratio:9/5;object-fit:cover;object-position:88.2% center;}}
.logo-img{display:block;line-height:0;}
.logo-img img{display:block;height:72px;width:auto;max-width:100%;margin:0 auto;}
.hero-actions{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center;margin-top:1.2rem;}
.hero-actions a{margin-top:0;}
[hidden]{display:none !important;}

/* ---------- Chi Siamo (blocchi HTML) ---------- */
.method-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1.2rem;margin-top:1.4rem;}
.method-card{background:var(--bg-alt);border:1px solid var(--border);border-top:3px solid var(--red);padding:1.2rem 1rem;}
.method-card .letter{font-family:'Oswald',sans-serif;font-size:1.8rem;font-weight:700;color:var(--red);}
.method-card h4{font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:.85rem;margin-top:.3rem;letter-spacing:.04em;}
.method-card p{font-size:.8rem;color:var(--gray);margin-top:.4rem;line-height:1.5;}
.feature-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.2rem;margin-top:1.4rem;}
.feature-item{background:var(--bg-alt);border:1px solid var(--border);padding:1.1rem 1.2rem;font-size:.9rem;color:var(--gray);}
.feature-item strong{display:block;color:var(--white);font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:.82rem;margin-bottom:.3rem;letter-spacing:.03em;}
.page-blocks > *:not(section){max-width:820px;margin-left:auto;margin-right:auto;padding-left:1.5rem;padding-right:1.5rem;margin-bottom:1rem;color:var(--gray);line-height:1.7;}
.page-blocks > h2,.page-blocks > h3{color:var(--white);}
.page-blocks > *:first-child:not(section){margin-top:2rem;}

/* ---------- Palinsesto (tabella dell'editor) ---------- */
.schedule-wrap figure{margin:0;}
.schedule-wrap table{width:100%;border-collapse:collapse;margin-top:1rem;font-size:.85rem;}
.schedule-wrap th{background:var(--bg-dark);color:var(--red);text-transform:uppercase;font-family:'Oswald',sans-serif;font-size:.72rem;letter-spacing:.05em;padding:.7rem .6rem;text-align:left;border:0;border-bottom:2px solid var(--red);}
.schedule-wrap td{padding:.65rem .6rem;border:0;border-bottom:1px solid var(--border);color:var(--gray);}
.schedule-wrap td:nth-child(1),.schedule-wrap td:nth-child(2){color:var(--white);font-family:'Oswald',sans-serif;white-space:nowrap;}
.schedule-wrap tr:hover td{background:var(--bg-alt);}
.schedule-wrap .wp-block-table thead{border-bottom:0;}

/* ---------- Schede cliccabili (podcast, programmi) ---------- */
.card{transition:border-color .2s;}
.card:hover{border-color:var(--red);}
.card .more,.car-caption .more{display:inline-block;margin-top:.7rem;color:var(--red);font-family:'Oswald',sans-serif;font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;}
.car-caption .more{display:block;margin-top:.3rem;font-size:.66rem;}

/* Loghi dei programmi: quadrati, mostrati interi (non ritagliati) */
.card-prog img,.card-prog .placeholder,.card-art img,.card-art .placeholder{height:auto;aspect-ratio:1/1;width:100%;object-fit:cover;}
.card-art img{object-position:center 20%;}
.car-card-prog,.car-card-art{flex:0 0 220px;height:auto;background:var(--bg-alt);border:1px solid var(--border);transition:border-color .2s;}
.car-card-prog:hover,.car-card-art:hover{border-color:var(--red);}
.car-card-prog img,.car-card-prog .placeholder,.car-card-art img,.car-card-art .placeholder{height:auto;aspect-ratio:1/1;width:100%;object-fit:cover;}
.car-card-art img{object-position:center 20%;}
.car-card-prog .car-caption,.car-card-art .car-caption{position:static;background:none;padding:.7rem .8rem .85rem;}

/* ---------- Speaker cliccabili + finestra ---------- */
.speaker-card{cursor:pointer;transition:border-color .2s;}
.speaker-card:hover,.speaker-card:focus-visible{border-color:var(--red);outline:none;}
.speaker-photo{background-size:cover;background-position:center 22%;}
.speaker-info .more{display:inline-block;margin-top:.5rem;color:var(--red);font-family:'Oswald',sans-serif;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.88);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000;}
.modal-panel{position:relative;background:var(--bg-alt);border-top:3px solid var(--red);max-width:900px;width:100%;max-height:90vh;overflow:auto;display:grid;grid-template-columns:minmax(240px,340px) 1fr;}
.modal-photo{min-height:380px;background:repeating-linear-gradient(45deg,#232323,#232323 12px,#292929 12px,#292929 24px);background-size:cover;background-position:center 20%;display:flex;align-items:center;justify-content:center;color:var(--gray-dim);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;}
.modal-photo.has-img{background-color:#000;background-repeat:no-repeat;}
.modal-body{padding:2rem;}
.modal-body .role{color:var(--red);font-family:'Oswald',sans-serif;font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;}
.modal-body h3{font-size:1.7rem;margin:.3rem 0 1.1rem;text-transform:uppercase;}
.modal-body p{color:var(--gray);line-height:1.7;margin-bottom:.9rem;font-size:.95rem;}
.modal-close{position:absolute;top:.4rem;right:.8rem;background:none;border:none;color:var(--white);font-size:2rem;line-height:1;cursor:pointer;z-index:2;}

/* ---------- Programmi cliccabili (pagina Radio): finestra con logo, testo, link e speaker ---------- */
.prog-card{cursor:pointer;}
.prog-card:focus-visible{border-color:var(--red);outline:none;}
.modal-photo-prog.has-img{background-size:contain;background-position:center;}
.modal-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin:1.4rem 0 1.1rem;}
.modal-actions .btn-red,.modal-actions .btn-outline{margin-top:0;padding:.7rem 1.3rem;font-size:.76rem;text-decoration:none;}
.modal-body p.modal-speakers{color:var(--gray);font-size:.9rem;margin:.4rem 0 0;}
.speaker-link{background:none;border:0;padding:0;color:var(--white);font:inherit;font-weight:600;cursor:pointer;text-decoration:underline;text-decoration-color:var(--red);text-underline-offset:3px;}
.speaker-link:hover,.speaker-link:focus-visible{color:var(--red);outline:none;}
.sched-link{color:var(--white);font-weight:600;cursor:pointer;text-decoration:underline;text-decoration-color:var(--red);text-underline-offset:3px;}
.sched-link:hover,.sched-link:focus-visible{color:var(--red);outline:none;}

/* ---------- On Air: brano in onda (testo lungo con puntini, copertina nel cerchio) ---------- */
.onair-info{max-width:340px;}
.onair-info strong,.onair-info > span:not(.tag){display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.onair-photo{background-size:cover;background-position:center;background-repeat:no-repeat;}
.onair-photo.is-logo{background-size:112% 112%;background-position:-3.5px -1.3px;}
.topbar-onair > span:last-child{max-width:460px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
@media (max-width:840px){.onair-info{max-width:min(300px,62vw);}}

/* ---------- On Air cliccabile: ascolta la diretta ---------- */
.onair-widget.is-playable{cursor:pointer;border-radius:60px;padding:.3rem .35rem .3rem 1rem;transition:background .2s;}
.onair-widget.is-playable:hover{background:rgba(255,255,255,.06);}
.onair-widget.is-playable:focus-visible{outline:2px solid var(--red);outline-offset:3px;}
.onair-photo{position:relative;}
.onair-play{position:absolute;inset:0;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.45);transition:background .2s;}
.onair-play::before{content:'';width:0;height:0;margin-left:4px;border-left:15px solid #fff;border-top:9px solid transparent;border-bottom:9px solid transparent;}
.onair-widget:hover .onair-play{background:rgba(226,35,26,.72);}
.onair-widget[data-state="playing"] .onair-play{background:rgba(0,0,0,.28);}
.onair-widget[data-state="playing"] .onair-play::before{width:11px;height:16px;margin-left:0;border:0;border-left:4px solid #fff;border-right:4px solid #fff;}
.onair-widget[data-state="loading"] .onair-play::before{width:18px;height:18px;margin:0;border:3px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:onairspin .8s linear infinite;}
.onair-widget[data-state="stopped"] .onair-photo{animation:onairhint 2.6s ease-out infinite;}
.onair-widget[data-state="playing"] .onair-photo{animation:onairpulse 1.6s ease-out infinite;}
@keyframes onairspin{to{transform:rotate(360deg);}}
@keyframes onairhint{0%{box-shadow:0 0 0 0 rgba(255,255,255,.35);}70%,100%{box-shadow:0 0 0 12px rgba(255,255,255,0);}}
@keyframes onairpulse{0%{box-shadow:0 0 0 0 rgba(226,35,26,.65);}100%{box-shadow:0 0 0 14px rgba(226,35,26,0);}}
@media (prefers-reduced-motion:reduce){.onair-widget .onair-photo{animation:none !important;}}

/* ---------- Release / Reveal ---------- */
.feature-head{display:grid;grid-template-columns:minmax(220px,360px) 1fr;gap:1.6rem;align-items:center;}
.graphic{aspect-ratio:3/4;width:100%;overflow:hidden;border:1px solid var(--border);}
.graphic img{width:100%;height:100%;object-fit:cover;}
.graphic .placeholder{height:100%;}

/* ---------- Gallery ---------- */
.gallery .carousel-row{background:transparent;padding:0;}
.gallery .carousel{gap:1.1rem;padding:0 0 1rem;cursor:grab;scrollbar-width:thin;scrollbar-color:var(--red) var(--bg-dark);}
.gallery .carousel::-webkit-scrollbar{display:block;height:6px;}
.gallery .carousel::-webkit-scrollbar-track{background:var(--bg-dark);}
.gallery .carousel::-webkit-scrollbar-thumb{background:var(--red);border-radius:3px;}
.gallery .carousel.dragging{scroll-snap-type:none;cursor:grabbing;user-select:none;}
.g-item{flex:0 0 340px;aspect-ratio:4/3;margin:0;position:relative;overflow:hidden;scroll-snap-align:start;border:1px solid var(--border);cursor:zoom-in;}
.g-item img,.g-item .placeholder{width:100%;height:100%;object-fit:cover;transition:transform .5s;-webkit-user-drag:none;user-select:none;}
.g-item:hover img,.g-item:hover .placeholder{transform:scale(1.06);}
.g-item::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:0;background:var(--red);transition:width .3s;}
.g-item:hover::after,.g-item:focus-visible::after{width:100%;}
.g-item:focus-visible{outline:2px solid var(--red);outline-offset:-2px;}
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.93);display:flex;align-items:center;justify-content:center;z-index:1000;}
.lb-stage{max-width:min(92vw,1100px);}
.lb-stage img{max-width:100%;max-height:82vh;object-fit:contain;display:block;margin:0 auto;}
.lb-ph{width:min(86vw,900px);aspect-ratio:4/3;font-size:.85rem;}
.lb-btn{position:absolute;background:rgba(0,0,0,.55);border:1px solid var(--border);color:var(--white);cursor:pointer;width:46px;height:46px;border-radius:50%;font-size:1.6rem;line-height:1;display:flex;align-items:center;justify-content:center;}
.lb-btn:hover{background:var(--red);border-color:var(--red);}
.lb-close{top:1rem;right:1rem;}
.lb-prev{left:1rem;top:50%;transform:translateY(-50%);}
.lb-next{right:1rem;top:50%;transform:translateY(-50%);}
.lb-count{position:absolute;bottom:1rem;left:0;right:0;text-align:center;color:var(--gray);font-family:'Oswald',sans-serif;letter-spacing:.06em;font-size:.85rem;}

/* ---------- Paginazione e menu footer ---------- */
.pagination{margin-top:2rem;}
.pagination .page-numbers{display:inline-block;padding:.4rem .8rem;border:1px solid var(--border);margin-right:.3rem;font-size:.8rem;color:var(--gray);}
.pagination .page-numbers.current{background:var(--red);border-color:var(--red);color:var(--white);}
.footer-links ul{display:flex;flex-wrap:wrap;justify-content:center;gap:1.4rem;}
/* ---------- Responsive ---------- */
@media (max-width:840px){
  .topbar-onair{display:none;}
  .topbar{justify-content:center;}
  .topbar-left,.topbar-right{width:100%;justify-content:center;text-align:center;}
  .btn-mini{font-size:.66rem;padding:.4rem .6rem;}
  .feature-head{grid-template-columns:1fr;}
  .feature-head .graphic{max-width:420px;margin:0 auto;}
  .site-header{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center;}
  .site-header .social-icons,.header-cta{justify-content:center;}
  .social-icons{order:2;}
  .onair-widget{order:3;}
  .logo{order:1;width:100%;text-align:center;}
  .main-nav-list{display:none;flex-direction:column;text-align:center;gap:0;}
  .main-nav-list.open{display:flex;}
  .main-nav-list a{padding:.7rem 0;border-bottom:1px solid var(--border);display:block;}
  .footer-app{flex-direction:column;text-align:center;}
  .footer-app-text p{text-align:center;}
  .speaker-card{flex-direction:column;text-align:center;}
  .speaker-photo{margin:0 auto;}
}

@media (max-width:700px){
  .modal-panel{grid-template-columns:1fr;}
  .modal-photo{min-height:280px;}
  .modal-body{padding:1.4rem;}
}
@media (max-width:600px){
  .g-item{flex-basis:78vw;}
}
