/* =========================================================================
   Alzati e Fattura — sezione 17 FOOTER
   Desktop 1440×108 · mobile 390×207 (in colonna).
   ========================================================================= */

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

.aef-footer {
  --ink: #030F0F;
  --deep: #0A3B26;
  --muted: #C7D2CC;
  --dim: #7A8A82;
  --green-bright: #00E27B;

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  padding: 32px 120px;
  border-top: 1px solid var(--deep);
  background: var(--ink);
  font-family: 'Switzer', -apple-system, BlinkMacSystemFont, sans-serif;
}

.aef-footer__left {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.aef-footer__title {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
}

.aef-footer__legal {
  margin: 0;
  color: var(--dim);
  font-size: 12px;
  font-weight: 500;
  line-height: 16px;
  letter-spacing: 0.5px;
}

.aef-footer__links {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
  list-style: none;
}

.aef-footer__link {
  position: relative;
  color: var(--muted);
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
  text-decoration: none;
  transition: color .2s ease;
}

.aef-footer__link::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 100%;
  height: 1px;
  background: var(--green-bright);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .26s cubic-bezier(.2,.8,.3,1);
}

.aef-footer__link:hover,
.aef-footer__link:focus-visible { color: #FFFFFF; }

.aef-footer__link:hover::after,
.aef-footer__link:focus-visible::after { transform: scaleX(1); }

.aef-footer__link:focus-visible {
  outline: 2px solid var(--green-bright);
  outline-offset: 4px;
  border-radius: 2px;
}

/* ---------- Tablet ---------- */
@media (max-width: 1180px) {
  .aef-footer { padding: 28px 40px; gap: 24px; }
}

/* =========================================================================
   MOBILE — frame 390×207: tutto in colonna
   ========================================================================= */
@media (max-width: 767px) {
  .aef-footer {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    padding: 32px 24px 40px;
  }

  .aef-footer__links {
    gap: 10px 20px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .aef-footer__link,
  .aef-footer__link::after { transition: none; }
}

/* =========================================================================
   LANDING PARTNER — frame «Footer» 1440×106 (100:1836) e
   «Footer — mobile» 390×178 (100:2511), versione 31 agosto ore 22:12.

   TUTTO quello che sta qui sotto è chiuso dentro `.aef-footer--partner`.
   La sezione è condivisa con la landing biglietti e la landing informazioni,
   che sono già in linea e NON devono muoversi di un decimo di pixel: senza
   il modificatore in classe quelle due pagine leggerebbero queste regole.

   Attenzione all'ordine, non solo alla classe. `.aef-footer--partner` pesa
   una classe esattamente come `.aef-footer`: a parità di peso vince l'ultima
   scritta. Questo blocco sta in fondo al foglio, quindi una regola scritta
   qui FUORI da una media query batterebbe anche le regole del telefono più
   sopra e scenderebbe sul telefono. Per questo ogni valore che sul telefono
   cambia è ridichiarato nel blocco `max-width: 767px` in fondo, e il padding
   del tablet è ridichiarato nel suo, invece di essere lasciato alla regola
   condivisa che ora arriva prima.
   ========================================================================= */

/* ---------- Partner · desktop ---------- */
.aef-footer--partner {
  /* Frame: padding 28/100/28/100 e nessuno stroke. Il border-top da 1px era
     un filo verde scuro che il frame non ha e che alzava la sezione a 107. */
  padding: 28px 100px;
  border-top: 0;
}

/* Le due righe hanno i grigi INVERTITI rispetto al frame: nel Figma la prima
   riga (nome dell'evento) è la più spenta #7A8A82 e la seconda (ragione
   sociale) la più chiara #C7D2CC. */
.aef-footer--partner .aef-footer__title { color: var(--dim); }

/* Nel frame le due righe hanno la stessa identica tipografia: 14/22, peso 400,
   spaziatura 0. La riga legale era trattata come riga minore (12/16, peso 500,
   ls 0.5): da lì venivano l'altezza del blocco copyright e la sua larghezza. */
.aef-footer--partner .aef-footer__legal {
  color: var(--muted);
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
  letter-spacing: normal;
}

/* itemSpacing 28 fra un link e l'altro (era 24). */
.aef-footer--partner .aef-footer__links { gap: 28px; }

/* L'altezza della riga dei link si legge sul <li>, non sulla <a>: la <a> è in
   linea e il suo riquadro è alto quanto la faccia del carattere. Il <li>
   ereditava 16px/24px dal tema e dettava una riga da 24 invece che da 22.
   Si dichiarano corpo E interlinea: con il solo line-height la linea di base
   dello strut a 16px allargherebbe di nuovo la riga oltre i 22. */
.aef-footer--partner .aef-footer__links > li {
  font-size: 14px;
  line-height: 22px;
}

/* Il frame dichiara textAlignHorizontal LEFT su tutti e otto i nodi di testo.
   Nessuno lo cambia oggi, ma un `text-align: center` ereditato dal tema
   sposterebbe le parole di 60px senza muovere nessuna delle misure prese
   (i <p> sono larghi quanto la colonna): si blocca qui. */
.aef-footer--partner .aef-footer__title,
.aef-footer--partner .aef-footer__legal,
.aef-footer--partner .aef-footer__links { text-align: left; }

/* Le tre istanze 100:1841/42/43 dichiarano ON_HOVER → SMART_ANIMATE, EASE_OUT,
   120 ms. In pagina erano .2s sul colore e .26s con una curva sua sul filetto. */
.aef-footer--partner .aef-footer__link { transition: color 120ms ease-out; }
.aef-footer--partner .aef-footer__link::after { transition: transform 120ms ease-out; }

/* Il bersaglio del link è alto quanto la riga del frame: 22px sul desktop e 18
   sul telefono, e il riquadro della <a> — che è in linea — ancora meno (18 e 16
   misurati). Sotto i 24px minimi di WCAG 2.5.8 «Target Size (Minimum)», e sul
   telefono il 13/18 del frame 100:2511 l'ha portato a 16.
   L'area sensibile si allarga con uno strato FUORI FLUSSO: `position: absolute`
   non entra nel calcolo del riquadro della <a> né in quello del <li>, quindi
   nessuna delle misure che il frame dichiara si muove di un decimo. Lo strato è
   trasparente e i clic restano della <a> che lo genera.
   `::after` è già impegnato dal filetto verde: qui serve `::before`.
   24px esatti, centrati sul riquadro della <a>: sul telefono sconfina 4px sopra
   e 4px sotto, dentro i 16px di spazio che il frame lascia sopra la fila — non
   tocca nessun altro bersaglio. */
.aef-footer--partner .aef-footer__link::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 24px;
  margin-top: -12px;
}

/* ---------- Partner · tablet ----------
   La regola condivisa `@media (max-width:1180px)` sta più in su nel foglio:
   il padding partner qui sopra la batterebbe e lascerebbe 100px di margine
   anche a 800px di finestra. Si ridichiara il valore del foglio condiviso. */
@media (max-width: 1180px) {
  .aef-footer--partner { padding: 28px 40px; }
}

/* ---------- Partner · telefono ----------
   Frame 390×178: colonna, padding 28/24, 16px fra i TRE blocchi (nel frame
   l'involucro di sinistra non esiste: riga1, riga2 e la fila dei link sono
   tre figli in colonna equidistanti), tipografia 13/18 su tutto. */
@media (max-width: 767px) {
  .aef-footer--partner {
    gap: 16px;
    padding: 28px 24px;
  }

  /* i tre blocchi equidistanti: 16 anche dentro l'involucro, non 6 */
  .aef-footer--partner .aef-footer__left { gap: 16px; }

  .aef-footer--partner .aef-footer__title,
  .aef-footer--partner .aef-footer__legal {
    font-size: 13px;
    line-height: 18px;
  }

  /* itemSpacing 18 fra un link e l'altro, counterAxisSpacing 8 fra le righe
     se la fila va a capo (il frame 100:2514 dichiara layoutWrap WRAP). */
  .aef-footer--partner .aef-footer__links { gap: 8px 18px; }

  .aef-footer--partner .aef-footer__links > li,
  .aef-footer--partner .aef-footer__link {
    font-size: 13px;
    line-height: 18px;
  }
}

/* Le due regole della transizione qui sopra pesano due classi e batterebbero il
   `prefers-reduced-motion` condiviso, che ne pesa una: a chi ha chiesto meno
   animazioni il footer Partner tornerebbe ad animarsi. Si ridichiara. */
@media (prefers-reduced-motion: reduce) {
  .aef-footer--partner .aef-footer__link,
  .aef-footer--partner .aef-footer__link::after { transition: none; }
}
