/* ============================================================
   LEONESSA – PROGRAMMA PARTITE
   Riparte dalla struttura funzionale esistente (righe cliccabili
   con stretched-link accessibile, loghi TV, punteggio scomposto
   in singoli numeri con squadra vincente in grassetto, avviso
   partite rinviate) e la riveste con lo stile "jersey" del sito.

   NON toccate le meccaniche di accessibilità già presenti:
   stretched-link (::after su .lb-prg-riga__cronaca/.lb-prg-next__cronaca),
   :focus-within, font-variant-numeric:tabular-nums.
   ============================================================ */

.lb-prg__sez + .lb-prg__sez{ margin-top:2.5rem; }

/* Titolo di sezione: stesso stile pulito del resto del sito */
.lb-prg__titolo{
  position:relative;
  margin:0 0 1.1rem !important;
  padding-bottom:.5rem;
  font-family:"Barlow Condensed", sans-serif !important;
  font-weight:800 !important;
  font-style:normal !important;
  text-transform:uppercase;
  letter-spacing:.02em;
  font-size:clamp(1.3rem, 2.6vw, 1.7rem) !important;
  color:#fff !important;
}
/*.lb-prg__titolo::after{
  content:"";
  position:absolute; left:0; bottom:0;
  width:3rem; height:.25rem; border-radius:2px;
  background:var(--nl-gold, #dcc47d);
}*/

/* Avviso (es. partita rinviata): resta rosso per riconoscibilità
   semantica, adattato al tema scuro */
.lb-prg-avviso{
  padding:.75rem 1rem;
  border-left:3px solid #e6493f;
  border-radius:0 8px 8px 0;
  background:rgba(230,73,63,.12);
  color:#ffd5d1;
  font-family:"Barlow", sans-serif;
  font-size:.9rem;
}

/* Nome squadra: completo su desktop, sigla su mobile (invariato
   nella logica, solo tipografia) */
.lb-prg__nome--short{ display:none; }
.lb-prg__squadra{
  font-family:"Barlow Condensed", sans-serif;
  font-weight:700;
  text-transform:uppercase;
  color:#fff;
}
.lb-prg__squadra.is-vincente{
  font-weight:800;
  color:var(--nl-gold, #dcc47d);
}
.lb-prg__logo{
  vertical-align:middle;
  object-fit:contain;
  flex:0 0 auto;
}

/* Giornata di campionato: niente opacità (l'opacità sul testo
   riduce il contrasto sotto la soglia di accessibilità) — uso
   colore muted invece che sbiadire il testo */
.lb-prg__giornata{
  font-family:"Barlow Condensed", sans-serif;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-weight:700;
  color:var(--nl-muted, #8ba2cc);
}
.lb-prg__giornata-short{ display:none; }
.lb-prg-next__tipologia .lb-prg__giornata{
  display:inline-block;
  padding:.2rem .7rem;
  border-radius:999px;
  background:var(--nl-electric, #1B5CFF);
  color:#fff;
}

/* Punteggio: numeri distinti + separatore, squadra vincente in
   grassetto/oro, perdente in un colore comunque leggibile (MAI
   solo opacità: un testo troppo sbiadito non supera il contrasto
   minimo). Stato "vuoto" distinto anche dal bordo, non solo dal
   colore (WCAG 1.4.1: il colore non può essere l'unico mezzo) */
.lb-prg__punteggio{
  flex:0 0 auto;
  display:inline-flex;
  align-items:baseline;
  justify-content:center;
  gap:.15em;
  min-width:4.5rem;
  padding:0.4rem .8rem;
  border-radius:8px;
  font-family:"Barlow Condensed", sans-serif;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.lb-prg__pt{
  min-width:1.6ch;
  text-align:center;
  font-weight:800;
  color:#fff;
}
.lb-prg__pt.is-vincente{
  font-weight:800;
  color:#fff;
}
.lb-prg__pt-sep{
  color:#fff;
  font-weight:500; margin:0 5px;
}
.lb-prg__punteggio:not(.is-vuoto){
  background:rgba(220,196,125,.14);
  border:2px solid var(--nl-gold, #dcc47d);
}
.lb-prg__punteggio.is-vuoto{
  cursor:help;
  align-items:center; /* "vs" è un solo elemento: la baseline
    del contenitore (utile per allineare i numeri del punteggio
    tra loro) lo spingeva fuori centro verticalmente */
  background:rgba(255,255,255,.03);
  border:2px dashed rgba(220,196,255,.25);
}
.lb-prg__punteggio.is-vuoto .lb-prg__pt{
  color:var(--nl-muted, #8ba2cc);
}

/* Loghi canali TV */
.lb-prg__tv{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.2rem .5rem;
  border-radius:6px;
  background:rgba(255,255,255,.05);
}
.lb-prg__tv img{
  height:18px; width:auto;
  object-fit:contain;
  vertical-align:middle;
}

/* ============================================================
   PROSSIMA PARTITA — hero d'impatto
   ============================================================ */
.lb-prg-next{
  position:relative;
  padding:1.9rem clamp(1.2rem, 4vw, 2.6rem) 1.7rem;
  border-radius:20px;
  background:#050b1e;
  border:2px solid var(--nl-gold, #dcc47d);
  text-align:center;
  overflow:hidden;
  isolation:isolate;
}
.lb-prg-next::before{
  content:"";
  position:absolute;
  top:-40%; right:-20%;
  width:140%; height:220%;
  background:linear-gradient(100deg, rgba(27,92,255,.35) 0%, rgba(27,92,255,.08) 35%, transparent 55%);
  transform:rotate(-8deg);
  z-index:-1;
  pointer-events:none;
}
.lb-prg-next::after{
  content:"";
  position:absolute;
  bottom:-30%; left:-15%;
  width:120%; height:180%;
  background:linear-gradient(-100deg, rgba(220,196,125,.18) 0%, transparent 40%);
  transform:rotate(6deg);
  z-index:-1;
  pointer-events:none;
}

.lb-prg-next__tipologia{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.6rem;
  margin:0 0 1.4rem;
  font-family:"Barlow Condensed", sans-serif;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.8rem;
  color:#fff;
}

.lb-prg-next__teams{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
  flex-wrap:wrap;
}
.lb-prg-next__team{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.9rem;
  flex:1 1 8rem;
  max-width:12rem;
  font-weight:700;
}
.lb-prg-next .lb-prg__logo{
  width:6.4rem; height:6.4rem;
  filter:drop-shadow(0 10px 22px rgba(0,0,0,.55));
  transition:transform .3s ease;
}
.lb-prg-next__team:hover .lb-prg__logo{
  transform:scale(1.08) rotate(-2deg);
}
.lb-prg-next .lb-prg__squadra{
  font-size:clamp(.95rem, 2vw, 1.15rem);
  line-height:1.15;
}

/* VS: grande, italico, SENZA ombra */
.lb-prg-next__vs{
  flex:0 0 auto;
  margin:0 clamp(.3rem, 2vw, 1.5rem);
  font-family:"Barlow Condensed", sans-serif;
  font-weight:900;
  font-style:italic;
  letter-spacing:0;
  font-size:clamp(2.6rem, 7vw, 4.4rem);
  line-height:1;
  color:#fff;
  text-shadow:none;
  transform:skewX(-6deg);
}

.lb-prg-next__meta{
  margin:1.4rem 0 0;
  padding-top:1.3rem;
  border-top:1px dashed rgba(220,196,125,.35);
  font-family:"Barlow Condensed", sans-serif;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
  font-size:.9rem;
  color:#fff;
}
.lb-prg__tv{
  flex-direction:column;
  align-items:center;
  gap:.35rem;
  background:transparent;
  padding:0;
}
.lb-prg__tv::before{
  content:"Live Streaming";
  display:block;
  font-family:"Barlow Condensed", sans-serif;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.65rem;
  color:var(--nl-muted, #8ba2cc);
}

/* Risultato finale nella card "Prossima partita": grande e
   deciso, sulla stessa scala del VS gigante — niente ombra */
.lb-prg-next .lb-prg__punteggio{
  min-width:auto;
  height:auto;
  padding:0;
  gap:.25em;
  border-radius:0;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  font-size:clamp(2.6rem, 7vw, 4.4rem);
  font-weight:900;
}
.lb-prg-next .lb-prg__pt{
  min-width:auto;
  font-weight:900;
  color:#fff;
}
.lb-prg-next .lb-prg__pt.is-vincente{
  color:#fff;
  font-weight:900;
}
.lb-prg-next .lb-prg__pt-sep{
  color:#fff;
  font-weight:500;
}

.lb-prg-next__azione{ margin:1.1rem 0 0; }
.lb-prg-next__cronaca{
  position:relative;
  display:inline-block;
  font-family:"Barlow Condensed", sans-serif;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.9rem;
  color:var(--nl-azzurro, #6AA4FF);
  text-decoration:none;
}
.lb-prg-next__cronaca:hover{ color:var(--nl-gold, #dcc47d); }

/* --- Stretched link: riga/card intera cliccabile. Meccanica di
   accessibilità invariata, solo focus/hover riadattati al tema
   scuro --- */
.lb-prg-next--link{
  position:relative;
  transition:background-color .18s ease, border-color .18s ease;
}
.lb-prg-next--link:hover{
  border-color:var(--nl-electric, #1B5CFF);
}
.lb-prg-next--link:focus-within{
  outline:2px solid var(--nl-gold, #dcc47d);
  outline-offset:2px;
}
.lb-prg-next--link .lb-prg__tv{ position:relative; z-index:2; }
.lb-prg-next__cronaca::after{
  content:"";
  position:absolute; inset:0;
  z-index:1;
}
.lb-prg-next__cronaca:focus{ outline:none; }

/* ============================================================
   ELENCHI — righe con accento pieno
   ============================================================ */
.lb-prg-lista{
  list-style:none;
  margin:0; padding:0;
  display:flex;
  flex-direction:column;
  gap:.6rem;
}

.lb-prg-riga{
  position:relative;
  display:flex;
  align-items:center;
  gap:1.4rem;
  padding:.9rem 1.3rem .9rem 2rem;
  border-radius:4px 14px 14px 4px;
  background:rgba(2,25,60,.55);
  border:1px solid rgba(106,164,255,.14);
  border-bottom:1px solid rgba(106,164,255,.14); /* sovrascrive il bordo piatto originale */
  overflow:hidden;
  flex-wrap:wrap;
  transition:background-color .18s ease, transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.lb-prg-riga::before{
  content:"";
  position:absolute;
  left:0; top:0; bottom:0;
  width:6px;
  background:var(--nl-azzurro, #6AA4FF); /* default: trasferta */
}

/* Riga cliccabile (stretched link): meccanica invariata */
.lb-prg-riga--link{ cursor:pointer; }
.lb-prg-riga--link:hover{
  background:rgba(2,25,60,.85);
  transform:translateX(6px);
  box-shadow:-6px 8px 24px rgba(0,0,0,.35);
}
.lb-prg-riga--link:focus-within{
  outline:2px solid var(--nl-gold, #dcc47d);
  outline-offset:-2px;
}
.lb-prg-riga__cronaca::after{
  content:"";
  position:absolute; inset:0;
  z-index:1;
}
.lb-prg-riga__cronaca:focus{ outline:none; }
.lb-prg-riga--link .lb-prg__tv{ position:relative; z-index:2; }

/* Match in casa/trasferta per il Leonessa: barra colorata +
   etichetta. Classe aggiunta via JS (vedi
   lb-prossime-partite-casa-trasferta.js) perché il markup non
   contiene un dato esplicito: va dedotto controllando quale
   lato ha il logo del Leonessa. */
.lb-prg-riga--casa-nostra::before{ background:var(--nl-gold, #dcc47d); }
.lb-prg-riga--casa-nostra .lb-prg-riga__data::after,
.lb-prg-riga--trasferta-nostra .lb-prg-riga__data::after{
  display:inline-block;
  order:3;
  width:fit-content;
  margin-top:.15rem;
  padding:.1rem .5rem;
  border-radius:4px;
  font-family:"Barlow Condensed", sans-serif;
  font-weight:800;
  font-size:.65rem;
  letter-spacing:.06em;
}
.lb-prg-riga--casa-nostra .lb-prg-riga__data::after{
  content:"CASA";
  background:var(--nl-gold, #dcc47d);
  color:var(--nl-navy-dark, #02326d);
}
.lb-prg-riga--trasferta-nostra .lb-prg-riga__data::after{
  content:"TRASFERTA";
  background:transparent;
  border:1px solid var(--nl-azzurro, #6AA4FF);
  color:var(--nl-azzurro, #6AA4FF);
}

/* Colonna data: UNA sola colonna (giornata, giorno/ora, impianto
   per intero senza tagli, badge casa/trasferta), non più divisa
   in due — evitava sia l'andata a capo della data sia il taglio
   del nome dell'impianto */
.lb-prg-riga__data{
  display:flex;
  flex-direction:column;
  gap:.2rem;
  flex:0 0 11rem;
  font-size:.85rem;
}
.lb-prg-riga__quando{
  order:1;
  display:flex;
  align-items:baseline;
  gap:.45rem;
  flex-wrap:wrap;
}
.lb-prg-riga__data .lb-prg__giornata{ order:0; }
.lb-prg-riga__giorno{
  font-family:"Barlow Condensed", sans-serif;
  font-weight:800;
  color:#fff;
  text-transform:uppercase;
  white-space:nowrap;
}
.lb-prg-riga__ora{
  color:var(--nl-gold, #dcc47d);
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.lb-prg-riga__impianto{
  order:2;
  font-size:.78rem;
  color:var(--nl-muted, #8ba2cc);
  white-space:normal;      /* non più nowrap: va a capo se serve,
                               ma non taglia mai le parole */
  overflow:visible;
  text-overflow:clip;
}

/* Match: 3 colonne — squadra casa (testo a sinistra) | punteggio
   (sempre centrato) | squadra ospite (testo a sinistra). Con
   1fr/auto/1fr le due colonne squadra sono sempre della STESSA
   larghezza, quindi il punteggio resta sempre al centro esatto */
.lb-prg-riga__match{
  flex:1 1 16rem;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  gap:1.4rem;
}
.lb-prg-riga__match > *{
  align-self:center;
}
.lb-prg-riga__casa,
.lb-prg-riga__ospite{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:.4rem;
  min-width:0 !important;
}
.lb-prg-riga .lb-prg__logo{ width:1.9rem; height:1.9rem; flex-shrink:0; }
.lb-prg-riga .lb-prg__squadra{
  font-size:.95rem;
  text-align:left;
  white-space:normal !important;   /* nomi sempre completi: vanno a
                                       capo su due righe invece di
                                       tagliarsi */
  line-height:1.2;
  overflow:visible !important;
  text-overflow:clip !important;
  word-break:break-word;
  overflow-wrap:break-word;
}

.lb-prg-riga__extra{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:.6rem;
  font-size:.85rem;
  color:var(--nl-muted, #8ba2cc);
  margin-left:auto;
}

/* --- Responsive --- */
@media (max-width:768px){
  .lb-prg__nome--full{ display:none; }
  .lb-prg__nome--short{ display:inline; }
  /* La card "prossima partita" mostra sempre il nome completo,
     anche su mobile: c'è spazio, e comunica meglio */
  .lb-prg-next .lb-prg__nome--full{ display:inline; }
  .lb-prg-next .lb-prg__nome--short{ display:none; }

  .lb-prg-riga__data{
    flex:1 1 100%;
    font-size:.8rem; text-align: center; align-items: center; margin-bottom: 15px;
  }
  .lb-prg-riga__impianto{ display:none; }
  .lb-prg__punteggio{ min-width:3.4rem; }

  .lb-prg-riga{ padding:.85rem 1rem .85rem 1.6rem; }
  .lb-prg-riga__match{ flex:1 1 100%; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); }
  .lb-prg-riga .lb-prg__squadra{ font-size:.85rem; text-align: center;}
  .lb-prg-riga__casa, .lb-prg-riga__ospite {flex-direction: column;}
}

@media (max-width:480px){
  .lb-prg-next__teams{ gap:.75rem; }
  .lb-prg-next__team{ flex:1 1 6rem; }
  .lb-prg-next .lb-prg__logo{ width:4.5rem; height:4.5rem; }
  .lb-prg-next__vs{ font-size:clamp(2rem, 10vw, 2.8rem); margin:0 .4rem; }

  .lb-prg-riga{ gap:.5rem; }
  .lb-prg-riga__extra{ width:100%; margin-left:0; justify-content: center; margin-top:15px;}
  .lb-prg-riga__impianto{ display:none; }
}

@media (max-width:400px){
.lb-prg-next__teams {flex-direction: column;}
}