/* Footer (SiteFooter.jsx): contatti + colonne di link, riga legale, fascia gialla con wordmark e onda rossa. */
@layer sections {
  .site-footer {
    padding: clamp(56px, 6vw, 80px) var(--gutter) 0;
    background: var(--surface-page);
    /* Wordmark: larghezza = corpo del prototipo (clamp 76–280px) × larghezza del testo in em (stampata da bin/build-wordmark.py) */
    --site-footer-wordmark-fs: clamp(76px, 19vw, 280px);
  }

  .site-footer--bordered { border-top: 1px solid var(--border-default); }

  .site-footer__inner {
    display: flex;
    flex-direction: column;
    gap: 48px;
    max-width: var(--container);
    margin-inline: auto;
  }

  .site-footer__grid {
    display: grid;
    grid-template-columns: 1.6fr 1fr 1fr 1fr;
    gap: 40px 32px;

    @media (max-width: 899px) { grid-template-columns: 1fr 1fr; }
  }

  .site-footer__contact {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    max-width: 380px;
  }

  .site-footer__title {
    margin: 0;
    color: var(--text-brand);
    font-family: var(--font-display);
    font-size: 28px;
    font-weight: var(--fw-regular);
    line-height: var(--lh-snug);
  }

  .site-footer__address {
    margin: 0;
    color: var(--text-muted);
    font-size: var(--fs-label);
  }

  .site-footer__phone {
    color: var(--text-brand);
    font-family: var(--font-display);
    font-size: 28px;
    text-decoration: none;
    &:hover { color: var(--link-hover); }
  }

  .site-footer__email { font-size: var(--fs-label); }

  .site-footer__col {
    display: flex;
    flex-direction: column;
  }

  .site-footer__col-title {
    margin: 0 0 8px;
    color: var(--text-strong);
    font-family: var(--font-body);
    font-size: var(--fs-label);
    font-weight: var(--fw-semibold);
    line-height: var(--lh-body);
  }

  .site-footer__links {
    display: flex;
    flex-direction: column;
    gap: 2px;
  }

  .site-footer__link {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 40px;
    color: var(--text-muted);
    font-size: var(--fs-ui);
    text-decoration: none;
    &:hover { color: var(--text-brand); }
  }

  .site-footer__legal {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 12px;
    padding-top: 20px;
    border-top: 1px solid var(--border-default);
    color: var(--text-muted);
    font-size: var(--fs-small);
  }

  .site-footer__notes { margin: 0; }

  .site-footer__legal-links {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;

    /* A destra anche quando la riga dei dati legali è vuota; su mobile vanno a capo e restano a sinistra (prototipo) */
    @media (min-width: 900px) { margin-left: auto; }
  }

  .site-footer__legal-link {
    color: var(--text-muted);
    &:hover { color: var(--text-brand); }
  }

  /* Fascia a tutta larghezza: esce dai margini laterali del footer */
  .site-footer__band {
    display: flex;
    flex-direction: column;
    margin: clamp(32px, 3vw, 48px) calc(-1 * var(--gutter)) 0;
    padding-top: clamp(24px, 2.4vw, 40px);
    overflow: hidden;
    background: var(--surface-highlight);
  }

  /* Come il testo del prototipo (line-height .8): l'immagine parte dal bordo della riga e la coda della «y»
     (0.195em sotto la riga) finisce sotto la striscia rossa, che viene dopo ed è posizionata, quindi sta sopra. */
  .site-footer__wordmark {
    align-self: center;
    flex: none;
    width: calc(var(--site-footer-wordmark-fs) * 4.9757);
    max-width: none;
    height: auto;
    margin-bottom: calc(clamp(14px, 1.6vw, 24px) - var(--site-footer-wordmark-fs) * .195);
  }

  .site-footer__wave {
    position: relative;
    height: clamp(36px, 4.2vw, 64px);
    background: var(--action-primary);

    & svg { position: absolute; top: 0; left: 0; display: block; width: 100%; height: 60%; }
  }

  .site-footer__wave-fill { fill: var(--surface-highlight); }
  .site-footer__wave-line { fill: none; stroke: var(--text-inverse); stroke-width: 7; }
}
