/* ==========================================================================
   Caratteri — ospitati sul sito, non caricati da Google Fonts.
   Così il browser del visitatore non contatta server di terze parti, e ogni
   pagina risparmia due connessioni esterne in fase di caricamento.
   Entrambi i font sono distribuiti con licenza SIL Open Font License 1.1.
   I file vanno scaricati una volta sola: vedi assets/font/LEGGIMI.txt
   ========================================================================== */

@font-face {
  font-family: 'Fredoka One';
  src: url('../font/fredoka-one-latin-400.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* Nunito è un font variabile: un solo file per tutti i pesi da 400 a 800. */
@font-face {
  font-family: 'Nunito';
  src: url('../font/nunito-latin-variable.woff2') format('woff2-variations');
  font-weight: 400 800;
  font-style: normal;
  font-display: swap;
}

/* ==========================================================================
   Cià ca Vemm ETS — design system
   Estratto dalle sorgenti originali su Drive (Pagine WEB) e normalizzato.
   Un solo foglio di stile per tutto il sito.
   ========================================================================== */

:root {
  /* Colori */
  --arancio:        #FF6B35;
  --arancio-scuro:  #E55A25;
  --magenta:        #E91E8C;
  --magenta-scuro:  #D4197E;
  --viola:          #7C3AED;
  --viola-scuro:    #6D28D9;
  --arancio-medio:  #FF8C61;
  --ambra:          #FFB347;
  --crema:          #FFF9F0;
  --crema-card:     #FFF3E0;
  --crema-hover:    #FFEBD0;
  --inchiostro:     #2D2D2D;
  --testo:          #5A5A5A;
  --testo-tenue:    #8A8A8A;
  --bianco:         #FFFFFF;
  --bordo:          #F0EDE8;
  --verde:          #3D9B52;
  --rosso:          #C62828;

  /* Tipografia */
  --display: 'Fredoka One', 'Trebuchet MS', cursive;
  --corpo:   'Nunito', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;

  /* Misure */
  --larghezza:  1140px;
  --stretta:    820px;
  --raggio:     20px;
  --raggio-lg:  30px;
  --ombra:      0 15px 40px rgba(255, 107, 53, .12);
  --ombra-sm:   0 4px 14px rgba(45, 45, 45, .07);
}

/* --------------------------------------------------------------- reset -- */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--corpo);
  font-size: 17px;
  line-height: 1.65;
  color: var(--testo);
  background: var(--crema);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
  font-family: var(--display);
  font-weight: 400;
  color: var(--inchiostro);
  line-height: 1.15;
  margin: 0 0 .5em;
}

p { margin: 0 0 1.1em; }
p:last-child { margin-bottom: 0; }

a { color: var(--arancio); }

img { max-width: 100%; height: auto; display: block; }

:focus-visible {
  outline: 3px solid var(--arancio);
  outline-offset: 3px;
  border-radius: 4px;
}

.contenitore { width: 100%; max-width: var(--larghezza); margin: 0 auto; padding: 0 20px; }
.contenitore--stretto { max-width: var(--stretta); }

.salta-al-contenuto {
  position: absolute; left: -9999px;
  background: var(--arancio); color: #fff;
  padding: 12px 20px; border-radius: 0 0 12px 0; font-weight: 800; z-index: 200;
}
.salta-al-contenuto:focus { left: 0; top: 0; }

/* -------------------------------------------------------------- header -- */

.intestazione {
  position: sticky; top: 0; z-index: 100;
  background: var(--bianco);
  border-bottom: 1px solid var(--bordo);
}

.intestazione__interno {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; min-height: 72px;
}

.marchio { display: flex; align-items: center; gap: 12px; text-decoration: none; flex-shrink: 0; }
.marchio img { height: 46px; width: auto; }
.marchio__nome {
  font-family: var(--display); font-size: 21px; color: var(--arancio); line-height: 1.05;
}
.marchio__nome span { display: block; font-family: var(--corpo); font-size: 11px; font-weight: 700;
  color: var(--testo-tenue); letter-spacing: 1.5px; text-transform: uppercase; }

.navigazione ul {
  list-style: none; margin: 0; padding: 0;
  display: flex; align-items: center; gap: 4px;
}
.navigazione a {
  display: block; padding: 9px 14px; border-radius: 50px;
  font-weight: 700; font-size: 15px; color: var(--inchiostro); text-decoration: none;
  transition: background .2s ease, color .2s ease;
}
.navigazione a:hover { background: var(--crema-card); color: var(--arancio); }
.navigazione a[aria-current="page"] { background: var(--arancio); color: #fff; }

.navigazione a.nav--soci {
  background: var(--inchiostro); color: #fff; margin-left: 8px;
}
.navigazione a.nav--soci:hover { background: var(--arancio); color: #fff; }

.apri-menu {
  display: none; background: none; border: 0; cursor: pointer;
  padding: 10px; border-radius: 12px; color: var(--inchiostro);
}
.apri-menu:hover { background: var(--crema-card); }
.apri-menu svg { display: block; }

@media (max-width: 900px) {
  .apri-menu { display: block; }
  .navigazione {
    position: absolute; left: 0; right: 0; top: 100%;
    background: var(--bianco); border-bottom: 1px solid var(--bordo);
    box-shadow: var(--ombra-sm);
    max-height: 0; overflow: hidden; transition: max-height .28s ease;
  }
  .navigazione[data-aperto="true"] { max-height: 70vh; overflow-y: auto; }
  .navigazione ul { flex-direction: column; align-items: stretch; gap: 0; padding: 8px 12px 18px; }
  .navigazione a { border-radius: 14px; padding: 13px 16px; font-size: 16px; }
  .navigazione a.nav--soci { margin: 8px 0 0; text-align: center; }
}

/* ---------------------------------------------------------------- hero -- */

.hero {
  position: relative; overflow: hidden;
  background: linear-gradient(135deg, var(--arancio) 0%, var(--arancio-medio) 40%, var(--ambra) 100%);
  padding: 72px 20px 88px;
  text-align: center;
}
.hero--compatto { padding: 56px 20px 76px; }

.hero__bolla { position: absolute; border-radius: 50%; background: #fff; opacity: .15; pointer-events: none; }
.hero__bolla:nth-child(1) { width: 200px; height: 200px; top: -80px; left: -60px; }
.hero__bolla:nth-child(2) { width: 120px; height: 120px; top: 10px; right: 40px; }
.hero__bolla:nth-child(3) { width: 80px;  height: 80px;  bottom: 30px; left: 15%; }
.hero__bolla:nth-child(4) { width: 160px; height: 160px; bottom: -60px; right: -30px; }

.hero__interno { position: relative; z-index: 2; max-width: 680px; margin: 0 auto; }

.etichetta {
  display: inline-block; margin-bottom: 14px;
  font-size: 12px; font-weight: 800; letter-spacing: 2px; text-transform: uppercase;
  color: #fff; background: rgba(255,255,255,.22); padding: 6px 20px; border-radius: 50px;
}

.hero h1 { font-size: clamp(34px, 6vw, 48px); color: #fff; margin-bottom: 14px; }
.hero p  { font-size: clamp(16px, 2.2vw, 18px); font-weight: 600; color: rgba(255,255,255,.94); margin: 0 auto; max-width: 520px; }

.onda { display: block; width: 100%; height: 60px; margin-top: -59px; position: relative; z-index: 1; }

/* -------------------------------------------------------------- blocchi -- */

.sezione { padding: 56px 0; }
.sezione--bianca { background: var(--bianco); }

.sezione__titolo {
  display: flex; align-items: center; gap: 12px;
  font-size: clamp(24px, 4vw, 28px); margin-bottom: 26px;
}
.sezione__titolo::before {
  content: ""; width: 11px; height: 11px; border-radius: 50%;
  background: var(--arancio); flex-shrink: 0;
}

.riquadro {
  display: flex; align-items: center; gap: 22px;
  background: var(--crema-card); border-radius: var(--raggio);
  padding: 26px; text-decoration: none; color: inherit;
  transition: transform .2s ease, background .2s ease;
}
.riquadro:hover { background: var(--crema-hover); transform: translateY(-3px); }
.riquadro__icona { font-size: 46px; line-height: 1; flex-shrink: 0; }
.riquadro__testo h2 { font-size: 21px; color: var(--arancio); margin-bottom: 4px; }
.riquadro__testo p  { font-size: 15px; color: var(--testo); margin: 0; }
.riquadro__freccia { margin-left: auto; font-size: 26px; color: var(--arancio); flex-shrink: 0; }

@media (max-width: 600px) {
  .riquadro { flex-direction: column; text-align: center; }
  .riquadro__freccia { display: none; }
}

.griglia { display: grid; gap: 22px; }
.griglia--3 { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.griglia--4 { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }

.scheda {
  background: var(--bianco); border: 1px solid var(--bordo);
  border-radius: var(--raggio); padding: 24px;
  box-shadow: var(--ombra-sm);
}

/* --------------------------------------------------------------- form -- */

.card-form {
  background: var(--bianco); border-radius: var(--raggio-lg);
  box-shadow: var(--ombra); border: 1px solid rgba(255,107,53,.1);
  padding: clamp(26px, 5vw, 50px);
  max-width: 900px; margin: -45px auto 0; position: relative; z-index: 10;
}

.campi { display: grid; gap: 4px 25px; grid-template-columns: 1fr; }
@media (min-width: 650px) { .campi--due { grid-template-columns: 1fr 1fr; } }

.campo { margin-bottom: 18px; }
.campo label {
  display: block; margin-bottom: 9px;
  font-weight: 800; font-size: 13px; letter-spacing: .5px;
  color: var(--arancio); text-transform: uppercase;
}
.campo input, .campo textarea {
  width: 100%; padding: 15px 18px;
  font-family: var(--corpo); font-size: 16px; color: var(--inchiostro);
  background: #FAFAFA; border: 2px solid #F0F0F0; border-radius: 15px;
  transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}
.campo input:focus, .campo textarea:focus {
  outline: none; border-color: var(--arancio); background: #fff;
  box-shadow: 0 5px 15px rgba(255,107,53,.1);
}
.campo textarea { min-height: 160px; resize: vertical; }

.consenso {
  display: flex; align-items: flex-start; gap: 14px;
  background: var(--crema); padding: 18px; border-radius: 15px;
  margin: 12px 0 28px; font-size: 14.5px;
}
.consenso input { width: 22px; height: 22px; accent-color: var(--arancio); flex-shrink: 0; margin-top: 2px; }
.consenso label { font-weight: 600; }
.consenso a { font-weight: 800; }

.bottone {
  display: inline-block; width: 100%;
  background: var(--arancio); color: #fff;
  border: 0; border-radius: 50px; padding: 18px 24px;
  font-family: var(--display); font-size: 19px; text-align: center; text-decoration: none;
  cursor: pointer; transition: background .2s ease, transform .2s ease;
  box-shadow: 0 8px 20px rgba(255,107,53,.3);
}
.bottone:hover { background: var(--arancio-scuro); transform: translateY(-2px); }
.bottone[disabled] { opacity: .65; cursor: progress; transform: none; }

.avviso { padding: 15px 18px; border-radius: 12px; font-weight: 700; margin-bottom: 20px; text-align: center; }
.avviso--errore  { background: #FDECEA; color: var(--rosso); }
.avviso--successo { text-align: center; padding: 30px 0; }
.avviso--successo h2 { color: var(--verde); font-size: 30px; }

.social { display: flex; flex-wrap: wrap; justify-content: center; gap: 30px; margin-top: 48px; }
.social a {
  display: flex; align-items: center; gap: 8px;
  font-weight: 800; font-size: 16px; color: var(--testo); text-decoration: none;
  transition: color .2s ease, transform .2s ease;
}
.social a:hover { color: var(--arancio); transform: scale(1.05); }

/* --------------------------------------------------------------- vuoto -- */

.segnaposto {
  text-align: center; padding: 60px 20px;
  background: var(--bianco); border: 2px dashed var(--bordo); border-radius: var(--raggio);
  color: var(--testo-tenue);
}

/* -------------------------------------------------------------- footer -- */

.pie {
  background: var(--inchiostro); color: rgba(255,255,255,.72);
  padding: 50px 0 28px; margin-top: 64px; font-size: 15px;
}
.pie a { color: rgba(255,255,255,.85); text-decoration: none; }
.pie a:hover { color: var(--ambra); text-decoration: underline; }

.pie__griglia {
  display: grid; gap: 34px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  padding-bottom: 32px; border-bottom: 1px solid rgba(255,255,255,.12);
}
.pie h2 {
  font-family: var(--corpo); font-size: 12px; font-weight: 800;
  letter-spacing: 1.6px; text-transform: uppercase;
  color: var(--ambra); margin-bottom: 14px;
}
.pie ul { list-style: none; margin: 0; padding: 0; }
.pie li { margin-bottom: 8px; }

.pie__legale {
  padding-top: 22px; font-size: 13px; color: rgba(255,255,255,.5);
  display: flex; flex-wrap: wrap; gap: 8px 22px; justify-content: space-between;
}

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* ==========================================================================
   Home — hero magenta, sezione "Chi siamo", notizie del club
   ========================================================================== */

.hero--magenta {
  background: linear-gradient(135deg, #E91E8C 0%, #FF6B35 100%);
  min-height: 380px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.hero--magenta p { max-width: 760px; line-height: 1.8; }

.visivamente-nascosto {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.titolo-centrato {
  text-align: center; color: var(--magenta, #E91E8C);
  font-size: clamp(26px, 4vw, 34px); margin-bottom: 22px;
}

.sezione--chisiamo p { line-height: 1.85; }

/* Barra sopra l'elenco ---------------------------------------------------- */

.notizie__barra {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 14px; margin-bottom: 28px;
}
.notizie__conteggio {
  margin: 0; font-weight: 800; font-size: 13px; letter-spacing: 1px;
  text-transform: uppercase; color: #E91E8C;
}
.notizie__salta select {
  padding: 11px 18px; border-radius: 50px; border: 2px solid var(--arancio);
  background: #fff; font-family: var(--corpo); font-weight: 600; font-size: 15px;
  color: var(--inchiostro); cursor: pointer; max-width: 100%;
}

/* Schede post ------------------------------------------------------------- */

.post-elenco { display: grid; gap: 40px; }

.post {
  display: grid; gap: 0;
  grid-template-columns: 1fr 1fr; align-items: center;
  background: var(--bianco); border: 1px solid var(--bordo);
  border-radius: 25px; overflow: hidden;
  box-shadow: 0 15px 40px rgba(45, 45, 45, .08);
}
.post:nth-child(even) { direction: rtl; }
.post:nth-child(even) > * { direction: ltr; }

.post__img {
  width: 100%; height: 100%; min-height: 260px;
  object-fit: cover; background: var(--crema-card);
}
.post__img--vuota { min-height: 220px; }

.post__testo { padding: 34px; }
.post__data  { color: #E91E8C; font-weight: 800; font-size: 13.5px; margin-bottom: 6px; }
.post__titolo { font-size: clamp(21px, 3vw, 27px); margin-bottom: 12px; }

.bottone--piccolo {
  width: auto; padding: 13px 30px; font-size: 15px;
  font-family: var(--corpo); font-weight: 800; letter-spacing: .5px; text-transform: uppercase;
  background: linear-gradient(135deg, #E91E8C, #FF6B35);
}
.bottone--piccolo:hover { background: linear-gradient(135deg, #d4197e, #E55A25); }
.bottone--piccolo:disabled { opacity: .3; cursor: not-allowed; filter: grayscale(1); transform: none; }

.impaginazione { display: flex; justify-content: center; gap: 18px; margin-top: 44px; }

@media (max-width: 760px) {
  .post, .post:nth-child(even) { grid-template-columns: 1fr; direction: ltr; }
  .post__img { min-height: 220px; max-height: 260px; }
  .post__testo { padding: 26px 22px 32px; text-align: center; }
  .impaginazione .bottone--piccolo { flex: 1; padding: 13px 10px; }
}

/* Scheletri di caricamento ------------------------------------------------ */

.post--scheletro .post__img,
.post--scheletro .riga {
  background: linear-gradient(90deg, #F2F2F2 25%, #E6E6E6 50%, #F2F2F2 75%);
  background-size: 200% 100%; animation: luccichio 1.4s infinite;
}
.post--scheletro .post__testo { display: flex; flex-direction: column; gap: 13px; }
.riga { display: block; height: 14px; border-radius: 8px; }
.riga--corta   { width: 30%; }
.riga--titolo  { width: 80%; height: 26px; }
.riga--bottone { width: 160px; height: 44px; border-radius: 50px; margin-top: 8px; }

@keyframes luccichio { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* Lettore del post -------------------------------------------------------- */

.lettore {
  width: min(750px, 92vw); max-height: 85vh;
  padding: 38px 30px; border: 0; border-radius: 30px;
  background: var(--bianco); color: var(--testo);
}
.lettore::backdrop { background: rgba(0, 0, 0, .8); }
.lettore__chiudi {
  position: absolute; top: 12px; right: 18px;
  background: none; border: 0; font-size: 34px; line-height: 1;
  color: #999; cursor: pointer;
}
.lettore__chiudi:hover { color: var(--inchiostro); }
.lettore__img { width: 100%; max-height: 400px; object-fit: contain; border-radius: 15px; margin-bottom: 22px; }
.lettore__corpo { font-size: 16.5px; line-height: 1.75; }
.lettore__corpo a { font-weight: 800; }
.lettore__corpo ul, .lettore__corpo ol { margin: 10px 0 10px 24px; }

/* ==========================================================================
   Staff
   ========================================================================== */

.stato {
  text-align: center; padding: 70px 20px;
  color: var(--arancio); font-size: 19px; font-weight: 700;
}
.stato a { font-weight: 800; }

.staff {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: 40px;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
}

.staff__voce { text-align: center; }

.staff__cornice {
  width: 180px; height: 180px; margin: 0 auto 16px;
  border-radius: 50%; overflow: hidden;
  border: 6px solid var(--bianco); background: var(--crema-card);
  box-shadow: 0 10px 22px rgba(45, 45, 45, .12);
  transition: transform .3s ease;
  display: flex; align-items: center; justify-content: center;
}
.staff__voce:hover .staff__cornice { transform: translateY(-4px) scale(1.03); }

.staff__cornice img { width: 100%; height: 100%; object-fit: cover; }
.staff__cornice--inattivo img { filter: grayscale(100%); }

.staff__cornice--vuota {
  font-family: var(--display); font-size: 58px; color: var(--arancio);
}

.staff__nome {
  font-family: var(--display); font-size: 22px; color: var(--arancio);
  margin: 0; line-height: 1.25;
}
.staff__nota {
  display: block; font-family: var(--corpo); font-size: 12px; font-weight: 700;
  letter-spacing: 1.2px; text-transform: uppercase; color: var(--testo-tenue);
  margin-top: 2px;
}

@media (max-width: 600px) {
  .staff { grid-template-columns: repeat(2, 1fr); gap: 26px 18px; }
  .staff__cornice { width: 140px; height: 140px; border-width: 4px; }
  .staff__cornice--vuota { font-size: 46px; }
  .staff__nome { font-size: 18px; }
}

/* ==========================================================================
   Download
   ========================================================================== */

.hero--viola { background: linear-gradient(135deg, var(--viola, #7C3AED) 0%, var(--magenta) 100%); }

.sezione__titolo--viola::before { background: var(--viola, #7C3AED); }

.nota {
  display: flex; align-items: flex-start; gap: 13px;
  border-radius: 16px; padding: 16px 20px; margin-bottom: 34px;
  font-size: 14.5px; font-weight: 600; line-height: 1.55;
}
.nota span[aria-hidden] { font-size: 22px; line-height: 1.2; flex-shrink: 0; }
.nota--viola { background: #EDE7F6; color: #5B21B6; }

.file-elenco { list-style: none; margin: 0; padding: 0; display: grid; gap: 15px; }

.file {
  display: flex; align-items: center; justify-content: space-between; gap: 18px;
  background: var(--bianco); border: 1px solid var(--bordo);
  border-radius: 18px; padding: 18px 20px;
  box-shadow: 0 4px 15px rgba(45, 45, 45, .06);
  transition: transform .25s ease, box-shadow .25s ease;
}
.file:hover { transform: translateY(-3px); box-shadow: 0 8px 25px rgba(45, 45, 45, .1); }

.file__sx { display: flex; align-items: center; gap: 16px; min-width: 0; }

.file__icona {
  width: 50px; height: 50px; border-radius: 14px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center; font-size: 24px;
}

.file__info { min-width: 0; }
.file__nome {
  margin: 0 0 3px; font-weight: 800; font-size: 15.5px; color: var(--inchiostro);
  overflow-wrap: anywhere;
}
.file__meta { margin: 0; font-size: 12.5px; font-weight: 700; color: var(--testo-tenue); }

.bottone--viola { background: var(--viola, #7C3AED); box-shadow: 0 4px 12px rgba(124, 58, 237, .25); }
.bottone--viola:hover { background: #6D28D9; }

@media (max-width: 650px) {
  .file { flex-direction: column; align-items: stretch; text-align: center; padding: 22px; }
  .file__sx { flex-direction: column; gap: 12px; }
  .file__nome { white-space: normal; }
  .bottone--viola { width: 100%; }
}

/* ==========================================================================
   Contatti
   ========================================================================== */

.hero--ambra { background: linear-gradient(135deg, var(--ambra) 0%, var(--arancio) 100%); }

/* Trappola per i bot: fuori dallo schermo, ma non display:none —
   alcuni bot ignorano i campi nascosti in quel modo. */
.esca {
  position: absolute; left: -9999px; top: auto;
  width: 1px; height: 1px; overflow: hidden;
}

.recapiti {
  list-style: none; margin: 40px 0 0; padding: 0;
  display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 34px;
  font-weight: 700; font-size: 15.5px; color: var(--testo);
}
.recapiti a { text-decoration: none; }
.recapiti a:hover { text-decoration: underline; }

.nota-legale {
  margin: 28px auto 0; max-width: 620px;
  text-align: center; font-size: 12.5px; line-height: 1.6; color: var(--testo-tenue);
}
.nota-legale a { color: var(--testo-tenue); text-decoration: underline; }
.nota-legale a:hover { color: var(--arancio); }

.avviso--successo h2 { font-size: clamp(26px, 5vw, 32px); margin-bottom: 8px; }
.avviso--successo p  { font-weight: 600; color: var(--testo); margin: 0; }
.avviso--successo:focus { outline: none; }

.campo input:user-invalid, .campo textarea:user-invalid { border-color: var(--rosso); }

/* ==========================================================================
   Attività ed eventi
   ========================================================================== */

.sezione--archivio { padding-top: 0; }
.sezione__titolo--tenue::before { background: #CFCAC4; }

.eventi { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); }

.evento {
  display: flex; align-items: stretch; overflow: hidden;
  background: var(--bianco); border-radius: 20px;
  box-shadow: 0 4px 20px rgba(45, 45, 45, .08);
  transition: box-shadow .2s ease, transform .2s ease;
}
.evento:hover { box-shadow: 0 8px 28px rgba(45, 45, 45, .14); transform: translateY(-2px); }

.evento__data {
  flex-shrink: 0; min-width: 86px; padding: 20px 14px;
  color: #fff; text-align: center;
  display: flex; align-items: center; justify-content: center;
}
.evento__data time { display: block; }
.evento__giorno { display: block; font-family: var(--display); font-size: 32px; line-height: 1; }
.evento__mese   { display: block; font-size: 11px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; opacity: .92; }
.evento__anno   { display: block; font-size: 10px; opacity: .72; margin-top: 2px; }

.evento__corpo { padding: 18px 20px; min-width: 0; }

.evento__badge {
  display: inline-block; margin-bottom: 7px;
  background: var(--crema-card); border-radius: 50px; padding: 3px 11px;
  font-size: 10px; font-weight: 800; letter-spacing: .5px; text-transform: uppercase;
}

.evento__titolo { font-size: 18px; margin: 0 0 5px; line-height: 1.25; }
.evento__testo  { font-size: 13.5px; line-height: 1.55; color: var(--testo); margin: 0; }

.evento__altro {
  background: none; border: 0; padding: 6px 0 0; cursor: pointer;
  font-family: var(--corpo); font-size: 11.5px; font-weight: 800;
}
.evento__altro:hover { text-decoration: underline; }

.evento__luogo { font-size: 12.5px; font-weight: 700; margin: 7px 0 0; }

/* Archivio: <details> nativo, nessun JavaScript ------------------------------ */

.passati { display: flex; flex-direction: column; gap: 10px; }

.passato {
  background: var(--bianco); border-radius: 14px;
  box-shadow: 0 2px 10px rgba(45, 45, 45, .05);
}
.passato summary,
.passato--semplice {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 18px; cursor: pointer; list-style: none;
}
.passato--semplice { cursor: default; }
.passato summary::-webkit-details-marker { display: none; }
.passato summary:hover { background: var(--crema); border-radius: 14px; }

.passato__data {
  flex-shrink: 0; min-width: 96px;
  font-size: 11.5px; font-weight: 800; color: var(--testo-tenue);
}
.passato__titolo { flex: 1; font-family: var(--display); font-size: 14.5px; color: #6A6A6A; }
.passato__piu { flex-shrink: 0; font-size: 11px; font-weight: 800; color: var(--arancio); }
.passato[open] .passato__piu { color: var(--testo-tenue); }
.passato[open] .passato__piu::after { content: " (chiudi)"; }

.passato__dettagli {
  padding: 0 18px 16px; margin-top: -2px;
  border-top: 1px solid var(--bordo); padding-top: 13px;
}

@media (max-width: 560px) {
  .passato summary, .passato--semplice { flex-wrap: wrap; gap: 4px 12px; }
  .passato__titolo { flex-basis: 100%; order: 3; }
}

/* ==========================================================================
   Foto — galleria
   ========================================================================== */

.album__titolo {
  font-size: clamp(22px, 4vw, 28px); color: var(--arancio);
  margin: 0 0 22px; text-align: center;
}

.foto-griglia {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: 12px;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
}

.foto { margin: 0; }
.foto--nascosta { display: none; }

.foto__apri {
  display: block; width: 100%; padding: 0; border: 0; cursor: zoom-in;
  background: var(--crema-card); border-radius: 14px; overflow: hidden;
  aspect-ratio: 1; line-height: 0;
  transition: transform .2s ease, box-shadow .2s ease;
}
.foto__apri:hover { transform: translateY(-3px); box-shadow: 0 8px 22px rgba(45,45,45,.16); }
.foto__apri img { width: 100%; height: 100%; object-fit: cover; }

/* Immagine non caricata: casella tenue, non un'icona rotta */
.foto--assente .foto__apri {
  cursor: default; position: relative; background: var(--crema-card);
}
.foto--assente .foto__apri::after {
  content: "foto non disponibile";
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  padding: 10px; text-align: center;
  font-size: 11.5px; font-weight: 700; line-height: 1.4; color: var(--testo-tenue);
}

.bottone--tutte { display: block; margin: 26px auto 0; max-width: 320px; }

/* Lente d'ingrandimento -------------------------------------------------- */

.lente {
  width: min(1100px, 94vw); max-width: 94vw;
  padding: 0; border: 0; border-radius: 22px; overflow: hidden;
  background: #16130F; color: #fff;
}
.lente::backdrop { background: rgba(0, 0, 0, .88); }

.lente__barra {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 13px 16px 13px 20px;
}
.lente__titolo {
  margin: 0; font-size: 13.5px; font-weight: 800;
  letter-spacing: .5px; color: rgba(255,255,255,.82);
}
.lente__chiudi {
  background: none; border: 0; color: rgba(255,255,255,.7);
  font-size: 30px; line-height: 1; cursor: pointer; padding: 0 4px;
}
.lente__chiudi:hover { color: #fff; }

.lente img {
  display: block; width: 100%; max-height: 74vh;
  object-fit: contain; background: #000;
}

.lente__frecce {
  display: flex; justify-content: center; gap: 14px; padding: 16px;
}
.lente__frecce .bottone--piccolo { min-width: 92px; }

@media (max-width: 560px) {
  .foto-griglia { grid-template-columns: repeat(2, 1fr); gap: 9px; }
  .lente img { max-height: 62vh; }
}

/* ==========================================================================
   Video
   ========================================================================== */

.clip-griglia {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: 24px;
  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
}

.clip {
  background: var(--bianco); border: 1px solid var(--bordo);
  border-radius: 18px; overflow: hidden;
  box-shadow: 0 4px 16px rgba(45, 45, 45, .07);
  transition: transform .2s ease, box-shadow .2s ease;
}
.clip:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(45, 45, 45, .13); }

.clip__apri {
  position: relative; display: block; width: 100%; padding: 0; border: 0;
  background: #14110E; cursor: pointer; aspect-ratio: 16 / 9; line-height: 0;
}
.clip__anteprima { width: 100%; height: 100%; object-fit: cover; display: block; }

.clip__play {
  position: absolute; inset: 0; margin: auto;
  width: 62px; height: 62px; border-radius: 50%;
  background: rgba(255, 107, 53, .94); color: #fff;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 6px 20px rgba(0, 0, 0, .35);
  transition: transform .2s ease, background .2s ease;
}
.clip__apri:hover .clip__play { transform: scale(1.1); background: var(--arancio); }
.clip__play svg { margin-left: 3px; }

.clip--senza-anteprima .clip__apri { background: var(--crema-card); }
.clip--senza-anteprima .clip__play { background: var(--arancio); }

.clip__info { padding: 15px 18px 18px; }
.clip__titolo {
  margin: 0 0 4px; font-weight: 800; font-size: 15px; color: var(--inchiostro);
  line-height: 1.35; overflow-wrap: anywhere;
}
.clip__data { margin: 0; font-size: 12.5px; font-weight: 700; color: var(--testo-tenue); }

.clip--in-riproduzione { background: #000; }
.clip--in-riproduzione iframe {
  display: block; width: 100%; aspect-ratio: 16 / 9; border: 0;
}

.clip--scheletro .clip__anteprima,
.clip--scheletro .riga {
  display: block;
  background: linear-gradient(90deg, #F2F2F2 25%, #E6E6E6 50%, #F2F2F2 75%);
  background-size: 200% 100%; animation: luccichio 1.4s infinite;
}
.clip--scheletro .clip__anteprima { aspect-ratio: 16 / 9; width: 100%; }
.clip--scheletro .riga { margin: 14px 18px 0; }
.clip--scheletro .riga--corta { width: 40%; margin-bottom: 20px; }

.impaginazione__info {
  align-self: center; font-size: 13.5px; font-weight: 700; color: var(--testo-tenue);
}

@media (max-width: 560px) {
  .clip-griglia { grid-template-columns: 1fr; gap: 18px; }
  .impaginazione { flex-wrap: wrap; }
  .impaginazione__info { order: 3; flex-basis: 100%; text-align: center; }
}

/* ==========================================================================
   Documenti lunghi: informative privacy e cookie
   ========================================================================== */

.documento { font-size: 16.5px; }

.documento__data {
  font-size: 13px; font-weight: 700; color: var(--testo-tenue);
  text-transform: uppercase; letter-spacing: .8px; margin-bottom: 26px;
}

.documento__occhiello {
  background: var(--crema-card); border-radius: var(--raggio);
  padding: 22px 24px; margin-bottom: 40px; font-size: 17px; line-height: 1.7;
}

.documento h2 {
  font-size: clamp(21px, 3.4vw, 26px); color: var(--arancio);
  margin: 48px 0 14px; padding-top: 6px;
}
.documento h2:first-of-type { margin-top: 8px; }

.documento h3 {
  font-family: var(--corpo); font-weight: 800;
  font-size: 16.5px; color: var(--inchiostro);
  margin: 30px 0 10px;
}

.documento p { line-height: 1.75; }

.documento__elenco { margin: 0 0 20px; padding-left: 22px; }
.documento__elenco li { margin-bottom: 9px; line-height: 1.7; }

/* Segnaposto da completare prima della pubblicazione: visibili apposta. */
[data-da-completare] {
  background: #FFF4CC; border-bottom: 2px dotted #C89A00;
  padding: 1px 4px; border-radius: 3px;
}
.documento__nota[data-da-completare] {
  display: block; padding: 14px 16px; border-radius: 12px;
  border: 0; border-left: 4px solid #C89A00;
  font-size: 14.5px; line-height: 1.6; margin: 14px 0;
}

.tabella-scorrevole { overflow-x: auto; margin: 18px 0 24px; }

.documento__tabella {
  width: 100%; min-width: 560px; border-collapse: collapse;
  background: var(--bianco); border-radius: var(--raggio); overflow: hidden;
  box-shadow: var(--ombra-sm); font-size: 14.5px;
}
.documento__tabella th, .documento__tabella td {
  text-align: left; padding: 13px 16px; vertical-align: top;
  border-bottom: 1px solid var(--bordo);
}
.documento__tabella th {
  background: var(--crema-card); font-weight: 800; font-size: 13px;
  text-transform: uppercase; letter-spacing: .6px; color: var(--inchiostro);
}
.documento__tabella tr:last-child td { border-bottom: 0; }
