* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: 'Montserrat', Arial, sans-serif;
  background: #05080b;
  color: #fff;
}

/* HERO */
.hero {
  min-height: 720px;
  padding-top: 120px;
  position: relative;
  background-image:
    linear-gradient(
      90deg,
      rgba(0,0,0,1) 0%,
      rgba(0,0,0,.98) 18%,
      rgba(0,0,0,.92) 35%,
      rgba(0,0,0,.65) 50%,
      rgba(0,0,0,.25) 68%,
      rgba(0,0,0,.05) 100%
    ),
    linear-gradient(
      180deg,
      rgba(0,0,0,0) 65%,
      rgba(0,0,0,.25) 78%,
      rgba(0,0,0,.70) 90%,
      rgba(0,0,0,1) 100%
    ),
    url('/assets/img/hero.jpg');
  background-repeat: no-repeat;
  background-size: 88% auto;
  background-position: 100% top;
}

/* HEADER */
.header {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 120px;
  padding: 0 55px;
  background: #03070a;
  display: flex;
  align-items: center;
  justify-content: space-between;
  z-index: 20;
}

.logo img {
  height: 95px;
  width: auto;
  display: block;
}

.nav {
  display: flex;
  align-items: center;
  gap: 34px;
}

.nav a {
  color: #fff;
  text-decoration: none;
  font-size: 15px;
  font-weight: 600;
}

.nav a:hover {
  color: #d71920;
}

/* HERO TEXT */
.hero-text {
  max-width: none;
  margin-left: 110px;
  margin-right: auto;
  padding: 120px 55px 0 0;
}

.hero-text h1 {
  margin: 0;
  max-width: 950px;
  white-space: nowrap;
  font-size: 64px;
  line-height: 1.05;
  font-weight: 800;
  letter-spacing: -1.5px;
}

.hero-text p {
  margin-top: 18px;
  font-size: 24px;
  color: #e6e6e6;
}

/* PLAYER */
.player-area{
    max-width:1220px;
    margin:-285px 0 0 110px;
    padding:0;
    position:relative;
    z-index:100;
}

.rlw-player {
  background: rgba(8,10,14,.76);
  backdrop-filter: blur(12px);
  border-radius: 24px;
  padding: 22px 34px;
  box-shadow: 0 25px 70px rgba(0,0,0,.55);
  border: 1px solid rgba(255,255,255,.08);
}

.rlw-live {
  display: inline-block;
  background: rgba(215,25,32,.18);
  border: 1px solid rgba(215,25,32,.8);
  color: #fff;
  padding: 7px 14px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 18px;
}

.rlw-player-wrap {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}

.rlw-cover {
  width: 115px;
  height: 115px;
  object-fit: cover;
  border-radius: 18px;
  background: #333;
}

.rlw-info {
  flex: 1;
  min-width: 260px;
}

.rlw-title {
  font-size: 22px;
  font-weight: 600;
  letter-spacing: -0.3px;
  line-height: 1.25;
}

.rlw-artist {
  margin-top: 8px;
  font-size: 16px;
  font-weight:400;
  color:#bdbdbd;
}

.rlw-controls-line {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: nowrap;
  margin-top: 16px;
}

.rlw-button {
  flex: 0 0 270px;
  margin: 0;
  background: #d71920;
  color: #fff;
  border: 0;
  padding: 15px 28px;
  border-radius: 999px;
  font-weight: 800;
  cursor: pointer;
}

.rlw-spectrum {
  flex: 1 1 auto;
  margin-left: 50px;
  margin-right: 25px;
  display: flex;
  align-items: end;
  gap: 5px;
  height: 34px;
  min-width: 220px;
}

.rlw-spectrum span{
    width:6px;
    height:8px;
    background:#6f6f6f;
    border-radius:999px;
    opacity:.55;
}

.rlw-player.playing .rlw-spectrum span {
    background:#d71920;
  opacity: 1;
  animation: wave 1s infinite ease-in-out;
}

.rlw-player.playing .rlw-spectrum span:nth-child(2) { animation-delay: .1s; }
.rlw-player.playing .rlw-spectrum span:nth-child(3) { animation-delay: .2s; }
.rlw-player.playing .rlw-spectrum span:nth-child(4) { animation-delay: .3s; }
.rlw-player.playing .rlw-spectrum span:nth-child(5) { animation-delay: .4s; }
.rlw-player.playing .rlw-spectrum span:nth-child(6) { animation-delay: .5s; }
.rlw-player.playing .rlw-spectrum span:nth-child(7) { animation-delay: .6s; }

@keyframes wave {
  0%,100% { height: 8px; }
  50% { height: 34px; }
}

.rlw-volume {
  flex: 0 0 170px;
  margin: 0;
  display: flex;
  align-items: center;
  color: #bbb;
  font-size: 0;
}

.rlw-volume input {
  width: 160px;
}

.rlw-meta {
  margin-top: 12px;
  color: #aaa;
  font-size: 13px;
}

/* FASCIA BIANCA */
.quick-menu {
  background: #fff;
  color: #111;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  padding: 32px 50px;
  border-top: 1px solid #eee;
}

.quick-item {
  text-align: center;
  padding: 0 22px;
  border-right: 1px solid #ddd;
}

.quick-item:last-child {
  border-right: 0;
}

.quick-icon {
  font-size: 34px;
  color: #d71920;
  margin-bottom: 10px;
}

.quick-item h3 {
  margin: 0 0 8px;
  text-transform: uppercase;
  font-size: 15px;
}

.quick-item p {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
}

/* FOOTER */
.site-footer {
  background: #05080b;
  color: #bdbdbd;
  padding: 28px 60px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 30px;
  border-top: 1px solid rgba(255,255,255,.08);
}

.footer-logo img {
  height: 65px;
  width: auto;
}

.footer-copy {
  text-align: center;
  line-height: 1.8;
  font-size: 14px;
}

.footer-links {
  display: flex;
  gap: 18px;
  margin-top: 8px;
}

.footer-links a {
  color: #bdbdbd;
  text-decoration: none;
}

.footer-links a:hover {
  color: #d71920;
}

.footer-made {
  width: 100%;
  text-align: center;
  margin-top: 15px;
  color: #888;
  font-size: 13px;
}

/* FIX - spazio sotto player senza muovere il player */
.quick-menu {
  margin-top: 138px !important;
}


/* Prossimo in programma nel player */
.next-on-air {
  min-width: 210px;
  max-width: 260px;
  padding-left: 18px;
  border-left: 1px solid rgba(255,255,255,.18);
}

.next-label {
  color: #d71920;
  font-size: 13px;
  font-weight: 800;
  margin-bottom: 6px;
}

.next-title {
  color: #fff;
  font-size: 14px;
  line-height: 1.35;
  font-weight: 600;
}


/* Allinea "Prossimo in programma" al titolo */
.next-on-air{
    align-self:flex-start !important;
    margin-top:-48px !important;
    margin-left:35px !important;
    border-left:1px solid rgba(255,255,255,.15);
    padding-left:20px;
}


/* PLAYER - griglia ora/prossimo programma */
.player-info-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:35px;
  align-items:start;
}

.next-block{
  border-left:1px solid rgba(255,255,255,.16);
  padding-left:28px;
}

.next-label{
  color:#d71920;
  font-size:13px;
  font-weight:800;
  margin-bottom:18px;
  white-space:nowrap;
}

.next-title{
  color:#fff;
  font-size:22px;
  font-weight:600;
  letter-spacing:-0.3px;
  line-height:1.25;
}

.next-artist{
  margin-top:8px;
  font-size:16px;
  font-weight:400;
  color:#bdbdbd;
}

.rlw-live{
  margin-bottom:18px;
}


/* Volume stile sottile rosso */
.rlw-volume{
  gap:10px;
}

.rlw-volume::before{
  content:"🔊";
  font-size:16px;
  color:#d71920;
}

.rlw-volume input[type="range"]{
  -webkit-appearance:none;
  appearance:none;
  width:160px;
  height:4px;
  background:rgba(255,255,255,.22);
  border-radius:999px;
  outline:none;
}

.rlw-volume input[type="range"]::-webkit-slider-runnable-track{
  height:4px;
  background:#d71920;
  border-radius:999px;
}

.rlw-volume input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none;
  appearance:none;
  width:12px;
  height:12px;
  background:#fff;
  border-radius:50%;
  margin-top:-4px;
  cursor:pointer;
}

.rlw-volume input[type="range"]::-moz-range-track{
  height:4px;
  background:#d71920;
  border-radius:999px;
}

.rlw-volume input[type="range"]::-moz-range-thumb{
  width:12px;
  height:12px;
  background:#fff;
  border:0;
  border-radius:50%;
  cursor:pointer;
}

/* Volume sotto prossimo programma */
.next-volume{
  margin-top:18px;
  width:100%;
  display:flex;
  align-items:center;
  gap:10px;
}

.next-volume::before{
  content:"🔊";
  font-size:16px;
  color:#d71920;
}

.next-volume input[type="range"]{
  width:220px;
}


/* Player controlli allineati alle due colonne */
.player-controls-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:35px;
  align-items:center;
  margin-top:22px;
}

.left-controls{
  display:flex;
  align-items:center;
  gap:24px;
}

.right-controls{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  border-left:1px solid rgba(255,255,255,.16);
  padding-left:28px;
}

.left-controls .rlw-button{
  flex:0 0 250px;
  margin:0;
}

.left-controls .rlw-spectrum{
  flex:1;
  margin:0;
}

.right-controls .next-volume{
  margin:0;
  width:260px;
}

.right-controls .next-volume input{
  width:220px;
}


/* FIX pulsante Play su una sola riga */
.left-controls .rlw-button{
    flex:0 0 330px !important;
    width:330px !important;
    white-space:nowrap;
    font-size:16px;
}


/* PLAYER stile moderno */

.rlw-button{

    width:185px !important;
    height:54px !important;

    border-radius:999px;

    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;

    background:#d71920;

    font-size:15px;
    font-weight:700;

    transition:.25s;
}

.rlw-button:hover{

    transform:translateY(-1px);

    box-shadow:0 8px 22px rgba(215,25,32,.35);

}

.play-icon{

    font-size:18px;

}

.play-text{

    letter-spacing:.5px;

}


/* Cover player più elegante */
.rlw-cover{
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 10px 24px rgba(0,0,0,.45);
  transition:.3s ease;
}

.rlw-player.playing .rlw-cover{
  transform:scale(1.025);
  box-shadow:0 14px 30px rgba(215,25,32,.22);
}

/* ===== PLAYER PIU' COMPATTO ===== */

/* Riduce il padding generale */
.rlw-player{
    padding:22px 28px !important;
}

/* Cover leggermente più grande */
.rlw-cover{
    width:110px !important;
    height:110px !important;
}

/* Meno spazio sotto le intestazioni */
.next-label,
.rlw-live{
    margin-bottom:10px !important;
}

/* Meno spazio tra titolo e artista */
.rlw-title,
.next-title{
    margin-bottom:4px !important;
}

/* Controlli più vicini */
.player-controls-grid{
    margin-top:14px !important;
}

/* Elimina spazio finale */
.rlw-info{
    padding-bottom:0 !important;
}

/* Player leggermente più basso */
.rlw-player-wrap{
    align-items:center;
}


/* HEADER ritocco */
.header{
  height:95px !important;
}

.logo img{
  height:78px !important;
}

.nav{
  gap:24px !important;
}

.nav-icon,
.nav-admin{
  font-size:18px !important;
}

.nav-admin{
  background:rgba(255,255,255,.10);
  padding:8px 10px;
  border-radius:999px;
}

/* STEP - riallineamento dopo riduzione header */

/* Hero più in alto */
.hero{
    padding-top:65px !important;
}

/* Titolo principale più in alto */
.hero-text{
    padding-top:145px !important;
}

/* Player più in alto */
.player-area{
    margin-top:-305px !important;
}


/* FIX - immagine hero più alta */
.hero{
  padding-top:40px !important;
  background-position:100% -45px !important;
}

.hero-text{
  padding-top:120px !important;
}

.player-area{
  margin-top:-330px !important;
}


/* ===== FASCIA BIANCA SOVRAPPOSTA ALLA HERO ===== */

.quick-menu{

    position:relative;
    z-index:20;

    margin-top:72px !important;

    border-radius:20px 20px 0 0;

    box-shadow:0 -8px 28px rgba(0,0,0,.18);

}


/* FIX fascia bianca con icone */
.quick-menu{
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  gap:32px !important;
  background:#fff !important;
  padding:22px 35px !important;
  margin-top:72px !important;
  border-radius:20px 20px 0 0;
  box-shadow:0 -8px 28px rgba(0,0,0,.18);
}

.quick-menu a{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  color:#222 !important;
  font-size:15px !important;
  font-weight:600 !important;
  text-decoration:none !important;
  transition:.25s;
}

.quick-menu a i{
  color:#d71920 !important;
  font-size:20px !important;
}

.quick-menu a:hover{
  color:#d71920 !important;
  transform:translateY(-2px);
}

/* QUICK MENU - card definitive */
.cards-menu{
  display:grid !important;
  grid-template-columns:repeat(7, 1fr) !important;
  gap:0 !important;
  background:#fff !important;
  color:#111 !important;
  padding:34px 36px !important;
  margin-top:72px !important;
  border-radius:20px 20px 0 0;
  box-shadow:0 -8px 28px rgba(0,0,0,.18);
}

.quick-card{
  text-align:center;
  padding:0 16px;
  color:#111 !important;
  text-decoration:none !important;
  border-right:1px solid #ddd;
  transition:.25s;
}

.quick-card:last-child{
  border-right:0;
}

.quick-card i{
  color:#d71920 !important;
  font-size:30px !important;
  display:block;
  margin-bottom:10px;
}

.quick-card h3{
  margin:0 0 7px;
  font-size:14px;
  text-transform:uppercase;
}

.quick-card p{
  margin:0;
  font-size:12px;
  line-height:1.4;
  color:#555;
}

.quick-card:hover{
  transform:translateY(-3px);
}

.admin-card{
  background:#f5f5f5;
  border-radius:14px;
  padding-top:8px;
  padding-bottom:8px;
}

/* ===== Card menu allineamento ===== */

.quick-card{

    display:flex !important;
    flex-direction:column;
    justify-content:flex-start;
    align-items:center;

    text-align:center;

    padding:12px 18px 18px;

}

.quick-card i{

    display:block;
    font-size:34px !important;

    margin:0 0 14px 0 !important;

}

.quick-card h3{

    margin:0 0 10px 0 !important;

    font-size:15px !important;

    font-weight:700;

    text-transform:uppercase;

}

.quick-card p{

    margin:0;

    max-width:170px;

    font-size:13px !important;

    line-height:1.45;

    font-weight:400;

    color:#777 !important;

}


/* ===== FASCIA BIANCA DEFINITIVA COMPATTA ===== */

.cards-menu{
  display:grid !important;
  grid-template-columns:repeat(6, 1fr) !important;
  gap:0 !important;
  background:#fff !important;
  color:#111 !important;
  padding:18px 34px !important;
  margin-top:72px !important;
  border-radius:16px 16px 0 0 !important;
  box-shadow:0 -6px 22px rgba(0,0,0,.14) !important;
}

.quick-card{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:flex-start !important;
  text-align:center !important;
  padding:6px 16px !important;
  color:#111 !important;
  text-decoration:none !important;
  border-right:1px solid #ddd !important;
  transition:.25s !important;
}

.quick-card:last-child{
  border-right:0 !important;
}

.quick-card i{
  color:#d71920 !important;
  font-size:26px !important;
  margin-bottom:7px !important;
}

.quick-card h3{
  margin:0 0 4px !important;
  font-size:14px !important;
  font-weight:700 !important;
  text-transform:uppercase !important;
}

.quick-card p{
  margin:0 !important;
  max-width:155px !important;
  font-size:12px !important;
  line-height:1.3 !important;
  font-weight:400 !important;
  color:#666 !important;
}

.quick-card:hover{
  transform:translateY(-2px) !important;
}

.admin-card{
  background:#f6f6f6 !important;
  border-radius:12px !important;
}

/* ===== Hero slogan ===== */

.hero-second-line{

    display:block;

    font-size:.82em;

    font-weight:500;

    margin-top:6px;

    letter-spacing:.4px;

    opacity:.96;

}

.hero-subtitle{

    margin-top:22px !important;

    font-size:21px !important;

    letter-spacing:1px;

    font-weight:400;

}


/* ===== Titolo Hero definitivo ===== */

.hero-text h1{
    line-height:1.05;
}

.hero-second-line{
    display:block;
    margin-top:8px;
    font-size:.82em;
    font-weight:500;
    color:rgba(255,255,255,.92);
    letter-spacing:.5px;
}

.hero-subtitle{
    margin-top:22px !important;
    font-size:22px !important;
    font-weight:400;
    letter-spacing:1px;
    color:rgba(255,255,255,.88);
}



/* ==================================================
   HEADER + FOOTER - CONTROLLO v1
   ================================================== */

/* HEADER */
.header{
  height:95px !important;
  padding:0 55px !important;
  background:#03070a !important;
}

.logo img{
  height:78px !important;
}

.nav{
  display:flex !important;
  align-items:center !important;
  gap:24px !important;
}

.nav a{
  color:#fff !important;
  font-size:15px !important;
  font-weight:600 !important;
  text-decoration:none !important;
  white-space:nowrap !important;
}

.nav a:hover{
  color:#d71920 !important;
}

.nav-icon,
.nav-admin{
  font-size:18px !important;
}

.nav-admin{
  background:rgba(255,255,255,.10) !important;
  padding:8px 10px !important;
  border-radius:999px !important;
}

/* FOOTER */
.site-footer{
  background:#05080b !important;
  color:#bdbdbd !important;
  padding:34px 60px 28px !important;
  display:flex !important;
  justify-content:space-between !important;
  align-items:center !important;
  flex-wrap:wrap !important;
  gap:28px !important;
  border-top:1px solid rgba(255,255,255,.08) !important;
}

.footer-logo img{
  height:62px !important;
  width:auto !important;
}

.footer-copy{
  flex:1 !important;
  text-align:center !important;
  line-height:1.7 !important;
  font-size:14px !important;
  padding-left:40px !important;
}

.footer-links{
  display:flex !important;
  gap:18px !important;
  margin-top:0 !important;
}

.footer-links a{
  color:#bdbdbd !important;
  text-decoration:none !important;
  font-size:14px !important;
}

.footer-links a:hover{
  color:#d71920 !important;
}

.footer-made{
  width:100% !important;
  text-align:center !important;
  margin-top:4px !important;
  color:#888 !important;
  font-size:13px !important;
}



/* ==================================================
   FOOTER - ALLINEAMENTO DEFINITIVO v2
   ================================================== */

.footer-logo,
.footer-links{
  width:320px !important;
}

.footer-logo{
  display:flex !important;
  justify-content:flex-start !important;
  align-items:center !important;
}

.footer-links{
  display:flex !important;
  justify-content:flex-end !important;
  align-items:center !important;
  gap:18px !important;
}

.footer-copy{
  flex:1 !important;
  text-align:center !important;
  padding-left:0 !important;
}


/* ==================================================
   FOOTER - FIX LINK SU UNA RIGA
   ================================================== */

.footer-logo,
.footer-links{
    width:380px !important;
}

.footer-links{
    flex-wrap:nowrap !important;
    white-space:nowrap !important;
}


/* ==================================================
   RLW UPDATE 1.01
   HEADER DEFINITIVO
   ================================================== */

.header{
    height:95px !important;
}

.nav{
    gap:30px !important;
    transform:translateY(-2px);
}

.nav a{
    letter-spacing:.2px;
}

.nav-icon{
    margin-left:8px !important;
}


/* RLW DESKTOP - SEZIONI EDITORIALI */

.desktop-editorial{
  max-width:1180px;
  margin:56px auto 0;
  padding:0 28px;
}

.desktop-section-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:22px;
}

.desktop-section-head h2{
  color:#fff;
  font-size:28px;
  margin:0;
}

.desktop-section-head a{
  color:#d71920;
  font-weight:800;
  text-decoration:none;
}

.desktop-card-grid{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:22px;
}

.desktop-card-grid.small-grid{
  grid-template-columns:repeat(2, 220px);
}

.desktop-media-card{
  display:block;
  text-decoration:none;
  color:#fff;
}

.desktop-media-card img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:22px;
  box-shadow:0 18px 40px rgba(0,0,0,.35);
  transition:.25s;
}

.desktop-media-card:hover img{
  transform:translateY(-5px);
}

.desktop-media-card h3{
  font-size:17px;
  line-height:1.15;
  margin:14px 0 6px;
  color:#fff;
}

.desktop-media-card p{
  font-size:14px;
  line-height:1.35;
  color:rgba(255,255,255,.68);
  margin:0;
}

@media(max-width:900px){
  .desktop-card-grid,
  .desktop-card-grid.small-grid{
    grid-template-columns:repeat(2, 1fr);
  }
}


/* RLW Desktop v1.0 - spazio dopo rimozione fascia quick-menu */
.desktop-section:first-of-type {
  padding-top: 90px;
}

/* RLW Desktop v1.0 - fix spazio Biblioteca dopo rimozione quick-menu */
#biblioteca {
  margin-top: 140px !important;
}

/* RLW Desktop v1.1 - Transizione Home verso Biblioteca */
.rlw-red-divider {
  width: 100%;
  height: 2px;
  max-width: 1180px;
  margin: 0 auto 28px auto;
  background: #d71920;
  opacity: .85;
  border-radius: 999px;
}

.editorial-title h2 {
  letter-spacing: .08em;
}

.editorial-title p {
  margin-top: 7px;
  color: rgba(255,255,255,.68);
  font-size: .95rem;
  font-weight: 500;
}

/* RLW Desktop v1.1 - sfumatura finale Hero verso contenuti */
.hero::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 180px;
  background: linear-gradient(
    to bottom,
    rgba(3,7,10,0) 0%,
    rgba(3,7,10,.65) 58%,
    #03070a 100%
  );
  pointer-events: none;
  z-index: 1;
}

.hero > * {
  position: relative;
  z-index: 2;
}

/* RLW Desktop v1.1 - riduzione spazio tra player e Biblioteca */
#biblioteca {
  margin-top: 70px !important;
}

/* RLW Desktop v1.1 - FIX DEFINITIVO grafica Hero / Player / Biblioteca */

.hero {
  position: relative !important;
  min-height: 690px !important;
  height: 690px !important;
  overflow: hidden !important;
}

.hero::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 260px;
  background: linear-gradient(
    to bottom,
    rgba(3,7,10,0) 0%,
    rgba(3,7,10,.72) 62%,
    #03070a 100%
  );
  pointer-events: none;
  z-index: 1;
}

.hero > * {
  position: relative;
  z-index: 2;
}

.player-area {
  position: relative !important;
  z-index: 10 !important;
  margin-top: -150px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  background: transparent !important;
}

.rlw-player {
  position: relative !important;
  z-index: 11 !important;
}

#biblioteca {
  position: relative !important;
  z-index: 20 !important;
  margin-top: 48px !important;
  padding-top: 0 !important;
}

.rlw-red-divider {
  margin-top: 0 !important;
  margin-bottom: 26px !important;
}

.editorial-title {
  position: relative !important;
  z-index: 21 !important;
}


/* RLW Desktop v1.1 - rifinitura posizione player */
.player-area {
  margin-top: -170px !important;
}




/* RLW Desktop v1.1 - Player 2.0 avanzamento brano */
.track-progress-box {
  min-width: 260px;
  max-width: 320px;
  width: 100%;
}

.track-progress-label {
  color: rgba(255,255,255,.62);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .12em;
  margin-bottom: 9px;
}

.track-progress-bar {
  width: 100%;
  height: 7px;
  background: rgba(255,255,255,.16);
  border-radius: 999px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
}

.track-progress-bar span {
  display: block;
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, #d71920, #ff4b55);
  border-radius: 999px;
  transition: width .8s ease;
}

.track-progress-times {
  display: flex;
  justify-content: space-between;
  margin-top: 7px;
  color: rgba(255,255,255,.66);
  font-size: .78rem;
  font-weight: 600;
}

/* RLW Desktop v1.1 - allineamento barra avanzamento */
.right-controls{
    justify-content:flex-start !important;
    align-items:flex-start !important;
}

.track-progress-box{
    width:100%;
    max-width:340px;
    margin-left:0 !important;
    padding-left:0 !important;
}


/* RLW Desktop v1.1 - progress bar integrata nel prossimo programma */
.next-block-progress .track-progress-box {
  margin-top: 16px !important;
  width: 100% !important;
  max-width: 360px !important;
}

.next-block-progress .track-progress-label {
  margin-bottom: 8px !important;
}

.player-controls-grid {
  grid-template-columns: 1fr !important;
}

.right-controls {
  display: none !important;
}

/* RLW Desktop v1.1 - riallineamento Player */
.left-controls{
    display:flex !important;
    align-items:flex-start !important;
    gap:18px;
}

.rlw-button{
    margin-top:-8px !important;
}

.rlw-spectrum{
    margin-top:-2px !important;
}


/* RLW Desktop v1.1 - Fine tuning pulsante ASCOLTA */
.rlw-button{
    margin-top:-16px !important;
}

.rlw-spectrum{
    margin-top:-8px !important;
}

/* RLW Desktop v1.1 - Pulsante ASCOLTA più alto */
.rlw-button{
    margin-top:-32px !important;
}

.rlw-spectrum{
    margin-top:-16px !important;
}

/* RLW Desktop v1.1 - Rifinitura finale pulsante ASCOLTA */
.rlw-button{
    margin-top:-48px !important;
}

.rlw-spectrum{
    margin-top:-24px !important;
}


/* =========================================================
   RLW DESKTOP - In Programma dentro Home
   Solo Home Desktop. Non tocca mobile.css.
========================================================= */

.home-schedule-section {
  background: #03070a;
  padding: 76px 24px 88px;
  color: #fff;
  border-top: 1px solid rgba(255,255,255,.08);
}

.home-schedule-container {
  max-width: 1120px;
  margin: 0 auto;
}

.home-schedule-heading {
  margin-bottom: 34px;
}

.home-schedule-kicker {
  color: #d71920;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
  margin-bottom: 12px;
}

.home-schedule-heading h2 {
  font-size: clamp(34px, 4vw, 54px);
  line-height: 1;
  margin: 0 0 16px;
  font-weight: 800;
  letter-spacing: -0.04em;
}

.home-schedule-heading p {
  max-width: 740px;
  color: rgba(255,255,255,.72);
  font-size: 17px;
  line-height: 1.65;
  margin: 0;
}

.schedule-list {
  display: grid;
  gap: 18px;
}

.schedule-card {
  position: relative;
  display: grid;
  grid-template-columns: 135px 1fr;
  gap: 28px;
  align-items: center;
  padding: 26px 28px;
  border-radius: 26px;
  background: linear-gradient(135deg, rgba(255,255,255,.08), rgba(255,255,255,.035));
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 24px 54px rgba(0,0,0,.32);
  overflow: hidden;
}

.schedule-card:first-child {
  border-color: rgba(215,25,32,.65);
  background: linear-gradient(135deg, rgba(215,25,32,.18), rgba(255,255,255,.045));
}

.schedule-card:first-child::before {
  content: "PROSSIMO APPUNTAMENTO";
  position: absolute;
  top: 18px;
  right: 22px;
  color: #fff;
  background: #d71920;
  border-radius: 999px;
  padding: 7px 12px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .10em;
}

.schedule-time {
  color: #fff;
  font-size: 34px;
  font-weight: 800;
  letter-spacing: -.04em;
}

.schedule-date {
  color: rgba(255,255,255,.58);
  font-size: 13px;
  margin-top: 5px;
}

.schedule-name {
  font-size: 27px;
  font-weight: 800;
  margin-bottom: 8px;
  letter-spacing: -.02em;
}

.schedule-desc {
  color: rgba(255,255,255,.70);
  font-size: 15.5px;
  line-height: 1.55;
  max-width: 720px;
}

.schedule-now {
  display: inline-block;
  margin-top: 14px;
  padding: 7px 12px;
  border-radius: 999px;
  background: #d71920;
  color: #fff;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .08em;
}

.schedule-empty {
  padding: 30px;
  border-radius: 24px;
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.72);
  border: 1px solid rgba(255,255,255,.10);
}


/* RLW DESKTOP - Rifinitura grafica In Programma Home */
.home-schedule-section {
  background:
    radial-gradient(circle at top left, rgba(215,25,32,.16), transparent 34%),
    linear-gradient(180deg, #050b10 0%, #03070a 72%);
  border-top: 1px solid rgba(215,25,32,.45);
}

.home-schedule-heading {
  text-align: left;
  position: relative;
}

.home-schedule-heading h2::after {
  content: "";
  display: block;
  width: 86px;
  height: 3px;
  background: #d71920;
  margin-top: 18px;
  border-radius: 999px;
}

.home-schedule-section .schedule-card {
  backdrop-filter: blur(10px);
}


/* =========================================================
   RLW DESKTOP - Header fisso per navigazione radio
   Solo desktop. Non tocca mobile.css.
========================================================= */

@media (min-width: 769px) {
  .header {
    position: fixed;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: min(1180px, calc(100% - 48px));
    z-index: 9999;
    margin-top: 18px;
    padding: 12px 18px;
    border-radius: 999px;
    background: rgba(3, 7, 10, 0.58);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border: 1px solid rgba(255,255,255,.10);
    box-shadow: 0 16px 38px rgba(0,0,0,.25);
  }

  .hero {
    padding-top: 96px;
  }

  html {
    scroll-behavior: smooth;
  }

  #diretta,
  #biblioteca,
  #approfondimenti,
  #in-programma {
    scroll-margin-top: 120px;
  }
}


/* =========================================================
   RLW DESKTOP - Popup Contatti / Collabora con noi
   Solo Home Desktop. Non tocca mobile.css.
========================================================= */

.rlw-modal {
  position: fixed;
  inset: 0;
  z-index: 20000;
  display: none;
}

.rlw-modal.is-open {
  display: block;
}

.rlw-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.76);
  backdrop-filter: blur(8px);
}

.rlw-modal-box {
  position: relative;
  z-index: 2;
  width: min(940px, calc(100% - 48px));
  max-height: calc(100vh - 70px);
  overflow-y: auto;
  margin: 35px auto;
  padding: 38px;
  border-radius: 30px;
  background:
    radial-gradient(circle at top left, rgba(215,25,32,.22), transparent 34%),
    linear-gradient(180deg, #101820, #03070a);
  border: 1px solid rgba(255,255,255,.14);
  color: #fff;
  box-shadow: 0 30px 90px rgba(0,0,0,.55);
}

.rlw-modal-close {
  position: sticky;
  top: 0;
  float: right;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 50%;
  background: #d71920;
  color: #fff;
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
}

.rlw-modal-kicker {
  color: #d71920;
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: 13px;
  font-weight: 800;
  margin-bottom: 10px;
}

.rlw-modal-box h2 {
  margin: 0 0 14px;
  font-size: clamp(34px, 4vw, 54px);
  line-height: .95;
  letter-spacing: -.04em;
}

.rlw-modal-lead {
  font-size: 19px;
  line-height: 1.6;
  color: rgba(255,255,255,.82);
  max-width: 760px;
}

.rlw-modal-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
  margin: 28px 0;
}

.rlw-modal-grid > div,
.rlw-contact-box {
  padding: 22px;
  border-radius: 22px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.10);
}

.rlw-modal-box h3 {
  margin: 0 0 14px;
  font-size: 19px;
}

.rlw-modal-box ul {
  margin: 0;
  padding-left: 20px;
  color: rgba(255,255,255,.78);
  line-height: 1.75;
}

.rlw-modal-box p {
  color: rgba(255,255,255,.78);
  line-height: 1.7;
}

.rlw-contact-box a {
  color: #fff;
  text-decoration: underline;
  text-decoration-color: #d71920;
  text-underline-offset: 4px;
}

.rlw-modal-actions {
  margin-top: 24px;
}

.rlw-modal-button {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  padding: 0 24px;
  border-radius: 999px;
  background: #d71920;
  color: #fff;
  text-decoration: none;
  font-weight: 800;
  box-shadow: 0 14px 32px rgba(215,25,32,.28);
}

@media (max-width: 760px) {
  .rlw-modal-box {
    width: calc(100% - 28px);
    padding: 26px;
    margin: 18px auto;
  }

  .rlw-modal-grid {
    grid-template-columns: 1fr;
  }
}


/* RLW DESKTOP - Badge intelligente In Programma */
.schedule-status {
  position: absolute;
  top: 18px;
  right: 22px;
  color: #fff;
  background: #d71920;
  border-radius: 999px;
  padding: 7px 12px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .10em;
}

.schedule-status-live {
  background: #d71920;
  box-shadow: 0 0 22px rgba(215,25,32,.55);
}

.schedule-card:first-child::before {
  content: none !important;
}


/* =========================================================
   RLW DESKTOP - Motore Podcast automatico
   Legge catalogo-episodi.json generato da AzuraCast
========================================================= */

.rlw-auto-episodes {
  display: grid;
  gap: 18px;
  margin-top: 26px;
}

.rlw-auto-episode {
  padding: 24px 26px;
  border-radius: 24px;
  background: linear-gradient(135deg, rgba(255,255,255,.08), rgba(255,255,255,.035));
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 20px 48px rgba(0,0,0,.26);
  color: #fff;
}

.rlw-auto-episode-meta {
  display: inline-flex;
  margin-bottom: 12px;
  padding: 6px 11px;
  border-radius: 999px;
  background: #d71920;
  color: #fff;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .10em;
}

.rlw-auto-episode h3 {
  margin: 0 0 8px;
  font-size: 24px;
  line-height: 1.1;
  font-weight: 900;
}

.rlw-auto-episode p {
  margin: 0;
  color: rgba(255,255,255,.72);
  line-height: 1.6;
}

.rlw-auto-episode-actions {
  margin-top: 18px;
}

.rlw-auto-play {
  min-height: 44px;
  padding: 0 20px;
  border: 0;
  border-radius: 999px;
  background: #d71920;
  color: #fff;
  font-weight: 900;
  cursor: pointer;
  box-shadow: 0 14px 32px rgba(215,25,32,.25);
}

.rlw-auto-empty {
  padding: 24px;
  border-radius: 22px;
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.72);
  border: 1px solid rgba(255,255,255,.10);
}

/* Crediti footer RLW */
.rlw-footer-credit{
  margin-top:18px;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,.12);
  color:rgba(255,255,255,.62);
  font-size:12px;
  line-height:1.5;
}

.rlw-footer-credit p{
  margin:0;
}

.rlw-footer-credit strong{
  display:block;
  color:rgba(255,255,255,.84);
  font-weight:700;
}

.rlw-footer-credit span{
  display:block;
  margin-top:4px;
  color:rgba(255,255,255,.45);
  font-size:11px;
}

/* FIX posizione crediti footer desktop */
.rlw-footer-credit{
  width:100%;
  text-align:center;
  margin:18px auto 10px;
}

/* Crediti footer desktop RLW */
.site-footer .rlw-footer-credit{
  text-align:center;
  margin:14px auto 16px;
  color:rgba(255,255,255,.62);
  font-size:12px;
  line-height:1.45;
}

.site-footer .rlw-footer-credit span,
.site-footer .rlw-footer-credit strong,
.site-footer .rlw-footer-credit em{
  display:block;
}

.site-footer .rlw-footer-credit strong{
  color:rgba(255,255,255,.84);
  font-style:normal;
  font-weight:700;
}

.site-footer .rlw-footer-credit em{
  margin-top:4px;
  color:rgba(255,255,255,.45);
  font-size:11px;
  font-style:normal;
}



/* ===== RLW Footer Credits ===== */

.site-footer .rlw-footer-credit{
    width:100%;
    margin-top:18px;
    padding-top:18px;
    border-top:1px solid rgba(255,255,255,.08);
    text-align:center;
}

.site-footer .rlw-footer-credit span{
    display:block;
    color:#9b9b9b;
    font-size:13px;
}

.site-footer .rlw-footer-credit strong{
    display:block;
    margin-top:3px;
    color:#ffffff;
    font-size:15px;
}

.site-footer .rlw-footer-credit em{
    display:block;
    margin-top:4px;
    color:#7a7a7a;
    font-style:normal;
    font-size:12px;
}

/* Footer firma credits RLW */
.site-footer .rlw-footer-credit{
  text-align:center;
  margin:6px auto 0;
  color:rgba(255,255,255,.48);
  font-size:11px;
  line-height:1.35;
}

.site-footer .rlw-footer-credit span,
.site-footer .rlw-footer-credit strong{
  display:block;
}

.site-footer .rlw-footer-credit strong{
  color:rgba(255,255,255,.62);
  font-size:11px;
  font-weight:600;
}

/* RELEASE 1.2 - Brand Hero Desktop */
.hero-text-brand-desktop {
  max-width: 820px !important;
}

.desktop-main-brand {
  margin-bottom: 18px !important;
}

.desktop-main-brand-title {
  font-weight: 950 !important;
  font-size: clamp(4rem, 6.4vw, 7.2rem) !important;
  line-height: .9 !important;
  letter-spacing: -4px !important;
  white-space: nowrap !important;
  text-shadow: 0 18px 45px rgba(0,0,0,.72) !important;
}

.brand-white {
  color: #ffffff !important;
}

.brand-red {
  color: #d71920 !important;
}

.desktop-main-brand-payoff {
  margin-top: 14px !important;
  color: rgba(255,255,255,.88) !important;
  font-size: clamp(1.35rem, 1.7vw, 2rem) !important;
  font-weight: 400 !important;
  letter-spacing: .5px !important;
  text-shadow: 0 10px 28px rgba(0,0,0,.65) !important;
}

.hero-text-brand-desktop .hero-subtitle {
  margin-top: 18px !important;
  font-size: clamp(1.15rem, 1.3vw, 1.55rem) !important;
  color: rgba(255,255,255,.92) !important;
}

/* ===========================================
   PLAYER DESKTOP GLASS PREMIUM RLW
   =========================================== */

.player-section,
.player-wrapper,
.player-card,
.rlw-player-desktop{

    background:rgba(8,12,18,.22)!important;

    backdrop-filter:blur(18px)!important;
    -webkit-backdrop-filter:blur(18px)!important;

    border:1px solid rgba(255,255,255,.08)!important;

    box-shadow:
        0 18px 55px rgba(0,0,0,.42),
        0 0 60px rgba(215,25,32,.08);

    transition:.35s;
}

.player-section:hover,
.player-wrapper:hover,
.player-card:hover,
.rlw-player-desktop:hover{

    background:rgba(8,12,18,.30)!important;

    box-shadow:
        0 25px 70px rgba(0,0,0,.55),
        0 0 80px rgba(215,25,32,.16);

}


/* ==========================================
   RLW Release 1.2
   Player leggermente più vicino alla Hero
   ========================================== */

.player-section{
    margin-top:-18px !important;
    position:relative;
    z-index:20;
}

