/* =========================================================================
   Euroleather 2000 — foglio di stile unico

   L'idea grafica viene dal mestiere:
   - il MARCHIO e' il logo del committente (il procione nell'oblo',
     img/logo.png, preparato da tools/logo.py); in testata su fondo chiaro,
     nel piede la versione con le scritte bianche (img/logo-chiaro.png);
   - la CUCITURA: il tratteggio color cuoio delle etichette cucite sui
     capispalla torna sul bottone principale, sul riquadro di chiusura e
     sul filo che unisce i passaggi;
   - il CAMPIONARIO: i materiali sono ritagli con il bordo a zig zag delle
     forbici da sarto, come nelle cartelle campioni dei tessuti. In testata
     tre campioni si aprono a ventaglio: e' l'unico movimento del sito;
   - il BIANCO OTTICO: lo sfondo non e' crema ma il bianco appena
     azzurrato di una camicia uscita dalla lavanderia.

   Indice
     1. Token             6. Campionario e cartelle
     2. Base              7. Bande, passi, giro dei capi
     3. Testata e menu    8. Lavorazioni, elenchi, domande
     4. Bottoni e link    9. Mappa, modulo, piede
     5. Sezioni e testa  10. Movimento, stampa
   ========================================================================= */

/* 1. Token ---------------------------------------------------------------- */

:root {
  --bianco: #F4F6F8;          /* sfondo: bianco ottico */
  --carta: #FFFFFF;
  --nebbia: #E9EDF1;
  --filo: #D3DAE2;            /* linee sottili */
  --acciaio: #566372;         /* testo secondario, 5,6:1 sul bianco */
  --inchiostro: #17202B;      /* testo e fondi scuri */
  --inchiostro-2: #243040;
  --bordeaux: #6B1E28;        /* la toppa, i bottoni, i titoli grandi */
  --bordeaux-scuro: #521520;
  --bordeaux-velo: #FBF3F3;
  --cuoio: #C4935F;           /* cuciture e dettagli, mai testo piccolo sul chiaro */
  --cuoio-testo: #8A6034;     /* cuoio abbastanza scuro per il testo sul chiaro */
  --crema: #F7EFE6;           /* testo e bottoni sulla toppa */
  --teal: #129B9D;            /* solo per Lavasecco Point */
  --teal-notte: #04413F;
  --teal-chiaro: #8ED6D6;
  --errore: #B42318;

  --font-titoli: "Rokkitt", "Rockwell", "Roboto Slab", Georgia, serif;
  --font-testo: "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

  --contenitore: 1240px;
  --margine: clamp(16px, 4vw, 48px);
  --spazio-sezione: clamp(4rem, 2.8rem + 5vw, 7.5rem);
  --raggio: 6px;
  --dente: 6px;               /* dente del bordo a zig zag */
  --ombra-cartella: 0 1px 2px rgba(23, 32, 43, .08), 0 14px 30px -10px rgba(23, 32, 43, .32);
}

/* 2. Base ----------------------------------------------------------------- */

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

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-padding-top: 104px;
}

body {
  margin: 0;
  background: var(--bianco);
  color: var(--inchiostro);
  font-family: var(--font-testo);
  font-size: 1.0625rem;
  line-height: 1.6;
  font-kerning: normal;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

@media (min-width: 960px) {
  body { font-size: 1.125rem; }
}

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

h1, h2, h3 {
  margin: 0;
  font-family: var(--font-titoli);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -.005em;
  text-wrap: balance;
}

h3 { font-size: 1.5rem; line-height: 1.15; }

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

a { color: var(--bordeaux); text-decoration-thickness: 1px; text-underline-offset: .2em; }
a:hover { color: var(--bordeaux-scuro); }

:focus-visible {
  outline: 3px solid var(--inchiostro);
  outline-offset: 3px;
}

address { font-style: normal; }

.contenitore {
  width: 100%;
  max-width: var(--contenitore);
  margin-inline: auto;
  padding-inline: var(--margine);
}

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

.salta {
  position: absolute;
  left: var(--margine);
  top: -100px;
  z-index: 100;
  padding: .75rem 1rem;
  background: var(--inchiostro);
  color: #fff;
  border-radius: var(--raggio);
  font-weight: 600;
  text-decoration: none;
}
.salta:focus { top: 12px; color: #fff; }

/* Dato dell'azienda ancora da inserire (vedi _sorgenti/dati/azienda.json) */
.da-completare {
  display: inline-block;
  padding: .05em .45em;
  border-radius: 3px;
  background: #FFE58F;
  color: #4A3000;
  font-weight: 600;
  font-size: .9em;
  line-height: 1.4;
  outline: 1px dashed #B88A00;
  outline-offset: -3px;
}

/* 3. Testata e menu ------------------------------------------------------- */

.testata {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255, 255, 255, .97);
  border-bottom: 1px solid var(--filo);
}

@supports (backdrop-filter: blur(8px)) {
  .testata { background: rgba(255, 255, 255, .9); backdrop-filter: saturate(1.4) blur(8px); }
}

.testata__riga {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  min-height: 76px;
}

.marchio {
  display: flex;
  align-items: center;
  gap: .9rem;
  margin-right: auto;
  color: var(--acciaio);
  text-decoration: none;
}
.marchio:hover { color: var(--inchiostro); }

/* Il logo: 366x120 (2x), in pagina alto 54 px */
.marchio__logo {
  display: block;
  width: auto;
  height: 54px;
}

.menu-apri { display: none; }

.menu {
  display: flex;
  align-items: center;
  gap: 1.75rem;
}

.menu__voci {
  display: flex;
  gap: 1.6rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.menu__voci a {
  color: var(--inchiostro);
  font-weight: 500;
  font-size: 1rem;
  text-decoration: none;
  padding-block: .4rem;
  white-space: nowrap;
}
.menu__voci a:hover { text-decoration: underline; text-decoration-color: var(--cuoio); text-decoration-thickness: 2px; text-underline-offset: .35em; }
.menu__voci a[aria-current="page"] {
  color: var(--bordeaux);
  text-decoration: underline dashed var(--cuoio);
  text-decoration-thickness: 2px;
  text-underline-offset: .35em;
}

.menu__azione { min-height: 44px; padding: .55rem 1.1rem; font-size: .975rem; }

@media (max-width: 1099px) {
  .js .menu-apri {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    min-height: 44px;
    padding: .5rem .9rem;
    border: 1.5px solid var(--inchiostro);
    border-radius: var(--raggio);
    background: transparent;
    color: var(--inchiostro);
    font: 600 1rem/1 var(--font-testo);
    cursor: pointer;
  }
  .menu-apri__righe,
  .menu-apri__righe::before,
  .menu-apri__righe::after {
    display: block;
    width: 18px;
    height: 2px;
    background: currentColor;
    border-radius: 2px;
    transition: transform .2s ease, opacity .2s ease;
  }
  .menu-apri__righe { position: relative; }
  .menu-apri__righe::before,
  .menu-apri__righe::after { content: ""; position: absolute; left: 0; }
  .menu-apri__righe::before { top: -6px; }
  .menu-apri__righe::after { top: 6px; }
  .testata--aperta .menu-apri__righe { background: transparent; }
  .testata--aperta .menu-apri__righe::before { transform: translateY(6px) rotate(45deg); }
  .testata--aperta .menu-apri__righe::after { transform: translateY(-6px) rotate(-45deg); }

  .js .menu {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 1rem;
    padding: 1rem var(--margine) 1.5rem;
    background: var(--carta);
    border-bottom: 1px solid var(--filo);
    box-shadow: 0 18px 30px -18px rgba(23, 32, 43, .35);
  }
  .js .testata--aperta .menu { display: flex; }
  .menu__voci { flex-direction: column; gap: 0; }
  .js .menu__voci a { display: block; padding: .85rem 0; border-bottom: 1px solid var(--nebbia); font-size: 1.125rem; }
  .menu__azione { align-self: flex-start; min-height: 48px; }

  /* Senza JavaScript il menu resta visibile, su piu' righe */
  html:not(.js) .testata__riga { flex-wrap: wrap; padding-block: .75rem; }
  html:not(.js) .menu { flex-wrap: wrap; gap: .75rem 1.25rem; width: 100%; }
  html:not(.js) .menu__voci { flex-direction: row; flex-wrap: wrap; gap: .25rem 1.25rem; }
}

@media (max-width: 560px) {
  .marchio__logo { height: 44px; }
}

/* 4. Bottoni e link ------------------------------------------------------- */

.bottone {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5em;
  min-height: 50px;
  padding: .8em 1.4em;
  border: 1.5px solid transparent;
  border-radius: var(--raggio);
  font: 600 1rem/1.2 var(--font-testo);
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}

/* Il bottone principale porta la cucitura della toppa */
.bottone--pieno {
  background: var(--bordeaux);
  color: #fff;
  outline: 1px dashed rgba(196, 147, 95, .95);
  outline-offset: -5px;
}
.bottone--pieno:hover { background: var(--bordeaux-scuro); color: #fff; }

.bottone--linea { border-color: var(--inchiostro); color: var(--inchiostro); background: transparent; }
.bottone--linea:hover { background: var(--inchiostro); color: #fff; }

.bottone--chiaro { background: #fff; color: var(--teal-notte); }
.bottone--chiaro:hover { background: var(--crema); color: var(--teal-notte); }

.bottone--crema { background: var(--crema); color: var(--bordeaux); }
.bottone--crema:hover { background: #fff; color: var(--bordeaux-scuro); }

.bottone--grande { min-height: 58px; padding: 1em 1.9em; font-size: 1.0625rem; }

.bottone:focus-visible { outline: 3px solid var(--inchiostro); outline-offset: 3px; }
.sezione--lsp .bottone:focus-visible,
.sezione--notte .bottone:focus-visible,
.chiamata .bottone:focus-visible,
.intestazione--lsp .bottone:focus-visible { outline-color: #fff; }

.bottone[disabled] { opacity: .55; cursor: not-allowed; }
.bottone.in-corso { cursor: progress; }
.bottone.in-corso::after {
  content: "";
  width: 1em;
  height: 1em;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: gira .8s linear infinite;
}

.collegamento {
  color: var(--inchiostro);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--cuoio);
  text-decoration-thickness: 2px;
  text-underline-offset: .3em;
}
.collegamento:hover { color: var(--bordeaux); text-decoration-color: var(--bordeaux); }

.collegamento--chiaro { color: #fff; text-decoration-color: var(--cuoio); }
.collegamento--chiaro:hover { color: var(--crema); text-decoration-color: var(--crema); }
.sezione--lsp .collegamento--chiaro { text-decoration-color: var(--teal-chiaro); }

.azioni {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .9rem 1.5rem;
  margin-top: 2rem;
}
.azioni--sotto { margin-top: 3rem; }

/* 5. Sezioni e intestazioni ------------------------------------------------ */

.sezione { padding-block: var(--spazio-sezione); }
.sezione--carta { background: var(--carta); }
.sezione--attaccata { padding-top: 0; }
.sezione:not(.sezione--carta):not(.sezione--notte):not(.sezione--lsp) + .sezione--chiusura,
.lavorazione + .sezione--chiusura { padding-top: 0; }

.sezione--notte { background: var(--inchiostro); color: #E6EBF0; }
.sezione--notte .titolo-sezione { color: #fff; }
.sezione--notte .guida { color: rgba(255, 255, 255, .82); }

.sezione--lsp { background: var(--teal-notte); color: #EAF6F6; }
.sezione--lsp .titolo-sezione { color: #fff; }
.sezione--lsp a:not(.bottone) { color: #fff; }

.titolo-sezione {
  font-size: clamp(1.95rem, 1.35rem + 2.1vw, 3.1rem);
  line-height: 1.02;
  max-width: 20ch;
  color: var(--inchiostro);
}
.titolo-sezione--piccolo { font-size: clamp(1.6rem, 1.3rem + 1vw, 2.1rem); }

.guida {
  font-size: clamp(1.1rem, 1rem + .35vw, 1.3rem);
  line-height: 1.5;
  max-width: 38em;
  margin: 1.1rem 0 0;
  color: #2C3846;
}

.testa-sezione { margin-bottom: clamp(2.25rem, 1.75rem + 2vw, 3.75rem); }

.rimando { margin: 2.75rem 0 0; }

.nota { font-size: .95rem; color: var(--acciaio); margin-top: 2rem; }

/* Due colonne: titolo a sinistra (fermo mentre si scorre), contenuto a destra */
.divisa {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  gap: 2.5rem clamp(2.5rem, 5vw, 5.5rem);
  align-items: start;
}
.divisa__testa { position: sticky; top: 112px; }
.divisa__testa .titolo-sezione { max-width: 14ch; }

@media (max-width: 899px) {
  .divisa { grid-template-columns: minmax(0, 1fr); }
  .divisa__testa { position: static; }
  .divisa__testa .titolo-sezione { max-width: 20ch; }
}

/* Intestazione delle pagine interne */
.intestazione { padding-block: clamp(3rem, 2rem + 4.5vw, 6.5rem) clamp(2.75rem, 2rem + 2.5vw, 4.5rem); }

.intestazione__titolo {
  font-size: clamp(2.5rem, 1.55rem + 3.6vw, 4.5rem);
  line-height: .98;
  max-width: 15ch;
  color: var(--bordeaux);
}

.intestazione__guida {
  font-size: clamp(1.125rem, 1rem + .45vw, 1.375rem);
  line-height: 1.5;
  max-width: 40em;
  margin: 1.5rem 0 0;
  color: #2C3846;
}

.intestazione--lsp { background: var(--teal-notte); color: #fff; margin-bottom: var(--spazio-sezione); }
.intestazione--lsp .intestazione__titolo { color: #fff; }
.intestazione--lsp .intestazione__guida { color: rgba(255, 255, 255, .86); }
.intestazione--lsp .insegna-lsp { margin-bottom: 1.75rem; }

.intestazione__griglia {
  display: grid;
  grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
}
.intestazione__foto { margin: 0; }
.intestazione__foto img { width: 100%; border-radius: 4px; }

@media (max-width: 899px) {
  .intestazione__griglia { grid-template-columns: minmax(0, 1fr); }
}

.indice {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: 2.25rem;
  max-width: 62rem;
}
.indice a {
  padding: .45rem .85rem;
  border: 1px solid var(--filo);
  border-radius: 999px;
  background: var(--carta);
  color: var(--inchiostro);
  font-size: .9375rem;
  font-weight: 500;
  text-decoration: none;
}
.indice a:hover { border-color: var(--inchiostro); }

/* L'insegna di Lavasecco Point: logo bianco su verde acqua, come in vetrina */
.insegna-lsp {
  display: inline-flex;
  flex: none;
  padding: .55rem .75rem;
  border-radius: 4px;
  background: var(--teal);
}
.insegna-lsp img { width: 150px; height: auto; }
.insegna-lsp--grande img { width: 210px; }

/* Testata della home */
.eroe {
  padding-block: clamp(2.75rem, 1.5rem + 4.5vw, 6rem) clamp(4rem, 3rem + 4vw, 7rem);
  overflow: hidden;
}

.eroe__griglia {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: clamp(2.5rem, 4vw, 4rem);
  align-items: center;
}

.eroe__titolo {
  font-size: clamp(2.9rem, 1.5rem + 4.9vw, 5.4rem);
  line-height: .95;
  letter-spacing: -.012em;
  max-width: 11ch;
  color: var(--bordeaux);
}

.eroe__guida {
  font-size: clamp(1.125rem, 1rem + .45vw, 1.35rem);
  line-height: 1.52;
  max-width: 34em;
  margin: 1.75rem 0 0;
  color: #2C3846;
}

.eroe__rete {
  display: flex;
  align-items: center;
  gap: 1rem;
  max-width: 34em;
  margin-top: 2.5rem;
  padding-top: 1.35rem;
  border-top: 1px solid var(--filo);
  color: var(--acciaio);
  font-size: .975rem;
  line-height: 1.45;
  text-decoration: none;
}
.eroe__rete .sottolineato { display: inline-block; color: var(--inchiostro); font-weight: 600; text-decoration: underline; text-decoration-color: var(--teal); text-decoration-thickness: 2px; text-underline-offset: .25em; }
.eroe__rete:hover .sottolineato { color: var(--teal-notte); }

@media (max-width: 899px) {
  .eroe__griglia { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 480px) {
  .eroe__rete { flex-direction: column; align-items: flex-start; gap: .75rem; }
}

/* 6. Campionario e cartelle ------------------------------------------------ */

/* Bordo a zig zag, come un ritaglio fatto con le forbici da sarto.
   Cinque livelli di maschera: i denti sui quattro lati e il centro pieno. */
.dentellato {
  --d: var(--dente);
  -webkit-mask:
    conic-gradient(from 135deg at top, #000 90deg, #0000 0) top / calc(2 * var(--d)) var(--d) round no-repeat,
    conic-gradient(from -45deg at bottom, #000 90deg, #0000 0) bottom / calc(2 * var(--d)) var(--d) round no-repeat,
    conic-gradient(from 45deg at left, #000 90deg, #0000 0) left / var(--d) calc(2 * var(--d)) no-repeat round,
    conic-gradient(from -135deg at right, #000 90deg, #0000 0) right / var(--d) calc(2 * var(--d)) no-repeat round,
    linear-gradient(#000 0 0) center / calc(100% - 2 * var(--d) + 1px) calc(100% - 2 * var(--d) + 1px) no-repeat;
  mask:
    conic-gradient(from 135deg at top, #000 90deg, #0000 0) top / calc(2 * var(--d)) var(--d) round no-repeat,
    conic-gradient(from -45deg at bottom, #000 90deg, #0000 0) bottom / calc(2 * var(--d)) var(--d) round no-repeat,
    conic-gradient(from 45deg at left, #000 90deg, #0000 0) left / var(--d) calc(2 * var(--d)) no-repeat round,
    conic-gradient(from -135deg at right, #000 90deg, #0000 0) right / var(--d) calc(2 * var(--d)) no-repeat round,
    linear-gradient(#000 0 0) center / calc(100% - 2 * var(--d) + 1px) calc(100% - 2 * var(--d) + 1px) no-repeat;
}

.eroe__campioni {
  position: relative;
  height: clamp(360px, 31vw, 470px);
}

.cartella {
  position: absolute;
  width: clamp(170px, 17.5vw, 250px);
  margin: 0;
  padding: 10px 10px 14px;
  border-radius: 3px;
  background: var(--carta);
  box-shadow: var(--ombra-cartella);
}
.cartella__tessuto { aspect-ratio: 4 / 5; overflow: hidden; background: var(--nebbia); }
.cartella__tessuto picture,
.cartella__tessuto img { width: 100%; height: 100%; object-fit: cover; }
.cartella figcaption {
  display: flex;
  flex-direction: column;
  margin-top: .65rem;
  color: var(--acciaio);
  font-size: .8125rem;
  line-height: 1.3;
}
.cartella figcaption strong {
  color: var(--inchiostro);
  font-family: var(--font-titoli);
  font-size: 1.3rem;
  line-height: 1.1;
}

.cartella--1 { left: 0;   top: 14%; z-index: 1; transform: rotate(-7deg); --da: translate(48%, -4%) rotate(0deg); }
.cartella--2 { left: 29%; top: 0;   z-index: 2; transform: rotate(2.5deg); --da: translate(0, 6%) rotate(0deg); }
.cartella--3 { left: 57%; top: 17%; z-index: 3; transform: rotate(9deg); --da: translate(-48%, -8%) rotate(0deg); }

@media (max-width: 899px) {
  .eroe__campioni { height: clamp(250px, 62vw, 400px); max-width: 560px; }
  .cartella { width: clamp(128px, 36vw, 210px); padding: 7px 7px 10px; }
  .cartella figcaption strong { font-size: 1.1rem; }
  .cartella figcaption span { display: none; }
}

.campionario {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2.75rem clamp(1.25rem, 2.2vw, 2rem);
  margin: 0;
  padding: 0;
  list-style: none;
}

.campione__link {
  display: block;
  color: var(--inchiostro);
  text-decoration: none;
}
.campione__tessuto {
  display: block;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--nebbia);
}
.campione__tessuto picture,
.campione__tessuto img { width: 100%; height: 100%; object-fit: cover; }

.campione__nome {
  display: block;
  margin-top: 1rem;
  font-family: var(--font-titoli);
  font-size: 1.45rem;
  font-weight: 700;
  line-height: 1.1;
}
.campione__link:hover .campione__nome,
.campione__link:focus-visible .campione__nome {
  color: var(--bordeaux);
  text-decoration: underline dashed var(--cuoio);
  text-decoration-thickness: 2px;
  text-underline-offset: .25em;
}
.campione p { margin: .45rem 0 0; color: var(--acciaio); font-size: .975rem; line-height: 1.5; }

@media (max-width: 899px) {
  .campionario { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.25rem 1.25rem; }
}
@media (max-width: 420px) {
  :root { --dente: 5px; }
  .campione__nome { font-size: 1.25rem; }
  .campione p { font-size: .9375rem; }
}

/* 7. Bande, passi, giro dei capi ------------------------------------------ */

.pubblico {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2.5rem clamp(1.75rem, 3.5vw, 3.5rem);
}
.pubblico__voce { padding-top: 1.4rem; border-top: 2px solid var(--inchiostro); }
.pubblico__voce h3 { font-size: 1.6rem; }
.pubblico__voce p { margin-top: .8rem; color: #2C3846; }

@media (max-width: 899px) {
  .pubblico { grid-template-columns: minmax(0, 1fr); }
}

/* Foto e testo affiancati */
.banda {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: clamp(2.25rem, 5vw, 5.5rem);
  align-items: center;
}
.banda--rovescia { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.banda--chiara { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.banda__testo > p { max-width: 36em; }
.banda__testo .titolo-sezione { margin-bottom: 1.25rem; }
.banda__testo .insegna-lsp { margin-bottom: 1.75rem; }
.banda__testo .guida { margin-top: 0; }
.sezione--lsp .banda__testo p { color: rgba(255, 255, 255, .88); }

.banda__foto { margin: 0; }
.banda__foto img { width: 100%; border-radius: 4px; }
.sezione--notte .banda__foto img { aspect-ratio: 4 / 5; object-fit: cover; }

.banda__foto--coppia {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(.75rem, 1.5vw, 1.25rem);
  align-items: start;
}
.foto-alta { margin: 0; }
.foto-alta img { aspect-ratio: 3 / 4; object-fit: cover; }
.foto-alta--scesa { margin-top: clamp(2rem, 5vw, 4.5rem); }

@media (max-width: 899px) {
  .banda,
  .banda--rovescia,
  .banda--chiara { grid-template-columns: minmax(0, 1fr); }
  .sezione--notte .banda__foto img { aspect-ratio: 3 / 2; }
}

/* Fatti brevi: titolo e riga di spiegazione */
.fatti { margin: 2.25rem 0 0; display: grid; gap: 0; }
.fatti__voce { padding: 1.15rem 0; border-top: 1px solid rgba(255, 255, 255, .16); }
.fatti__voce:last-child { border-bottom: 1px solid rgba(255, 255, 255, .16); }
.fatti dt { font-family: var(--font-titoli); font-size: 1.4rem; font-weight: 700; color: #fff; }
.fatti dd { margin: .3rem 0 0; color: rgba(255, 255, 255, .78); max-width: 34em; }
.fatti--chiari .fatti__voce { border-color: var(--filo); }
.fatti--chiari dt { color: var(--inchiostro); }
.fatti--chiari dd { color: var(--acciaio); }

/* Passaggi in orizzontale, uniti da una cucitura */
.passi {
  --fuga-passi: clamp(1.5rem, 2.5vw, 2.5rem);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2rem var(--fuga-passi);
  margin: 0;
  padding: 0;
  list-style: none;
}
.passo { position: relative; }
/* La cucitura va dal numero di un passaggio a quello del successivo */
.passo:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 62px;
  right: calc(-1 * var(--fuga-passi) + 12px);
  top: 25px;
  border-top: 2px dashed var(--cuoio);
}
.passo__numero {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: var(--bordeaux);
  color: #fff;
  font: 700 1.4rem/1 var(--font-titoli);
  box-shadow: 0 0 0 7px var(--bianco);
}
.passo__titolo { margin-top: 1.35rem; font-size: 1.5rem; }
.passo p { margin: .55rem 0 0; color: var(--acciaio); }

@media (max-width: 899px) {
  .passi { grid-template-columns: minmax(0, 1fr); gap: 2.25rem; }
  .passo:not(:last-child)::after { left: 24px; right: auto; top: 62px; bottom: calc(-2.25rem + 12px); border-top: 0; border-left: 2px dashed var(--cuoio); }
  .passo { padding-left: 76px; min-height: 50px; }
  .passo__numero { position: absolute; left: 0; top: 0; }
  .passo__titolo { margin-top: .6rem; }
}

/* Il giro dei capi: passaggi in verticale, con foto accanto */
.giro {
  position: relative;
  margin: 0;
  padding: 0;
  list-style: none;
}
.giro::before {
  content: "";
  position: absolute;
  left: 24px;
  top: 12px;
  bottom: 12px;
  border-left: 2px dashed var(--cuoio);
}
.giro__passo {
  position: relative;
  display: grid;
  grid-template-columns: 50px minmax(0, 6fr) minmax(0, 5fr);
  gap: 1.25rem clamp(1.5rem, 3.5vw, 3.5rem);
  padding-bottom: clamp(2.25rem, 3vw, 3.25rem);
}
.giro__passo:last-child { padding-bottom: 0; }
.giro__numero {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: var(--bordeaux);
  color: #fff;
  font: 700 1.4rem/1 var(--font-titoli);
  box-shadow: 0 0 0 7px var(--bianco);
}
.sezione--carta .giro__numero { box-shadow: 0 0 0 7px var(--carta); }
.giro__testo { grid-column: 2; padding-top: .55rem; }
.giro__testo h3 { font-size: 1.6rem; }
.giro__testo p { margin-top: .6rem; color: #2C3846; max-width: 34em; }
.giro__foto { grid-column: 3; margin: 0; }
.giro__foto img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 4px; }

.giro--compatto .giro__passo { grid-template-columns: 50px minmax(0, 1fr); padding-bottom: 2rem; }
.giro--compatto .giro__testo h3 { font-size: 1.4rem; }

@media (max-width: 899px) {
  .giro__passo { grid-template-columns: 50px minmax(0, 1fr); }
  .giro__foto { grid-column: 2; }
}

.sportello {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: clamp(2.25rem, 5vw, 5rem);
  align-items: start;
}
.sportello__foto { margin: 0; position: sticky; top: 112px; }
.sportello__foto img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 4px; }

@media (max-width: 899px) {
  .sportello { grid-template-columns: minmax(0, 1fr); }
  .sportello__foto { position: static; }
  .sportello__foto img { aspect-ratio: 3 / 2; }
}

/* 8. Lavorazioni, elenchi, domande ----------------------------------------- */

.lavorazione {
  padding-block: clamp(3rem, 2rem + 3.5vw, 5.5rem);
  border-top: 1px solid var(--filo);
}
.lavorazione__griglia {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: start;
}
.lavorazione--rovescia .lavorazione__griglia { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); }
.lavorazione--rovescia .lavorazione__campione { order: 2; }

.lavorazione__campione { aspect-ratio: 4 / 5; overflow: hidden; background: var(--nebbia); max-width: 380px; }
.lavorazione__campione picture,
.lavorazione__campione img { width: 100%; height: 100%; object-fit: cover; }

.lavorazione__titolo { font-size: clamp(1.9rem, 1.35rem + 1.7vw, 2.8rem); max-width: 18ch; }
.lavorazione__guida { font-size: clamp(1.075rem, 1rem + .25vw, 1.2rem); max-width: 40em; margin: 1.1rem 0 0; color: #2C3846; }
.lavorazione__colonne {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.75rem clamp(1.5rem, 3vw, 3rem);
  margin-top: 2.25rem;
}
.lavorazione__sotto {
  margin-bottom: .8rem;
  padding-bottom: .55rem;
  border-bottom: 1px dashed var(--cuoio);
  color: var(--bordeaux);
  font-family: var(--font-testo);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
}

@media (max-width: 899px) {
  .lavorazione__griglia,
  .lavorazione--rovescia .lavorazione__griglia { grid-template-columns: minmax(0, 1fr); }
  .lavorazione--rovescia .lavorazione__campione { order: 0; }
  .lavorazione__campione { max-width: 320px; aspect-ratio: 5 / 4; }
}
@media (max-width: 600px) {
  .lavorazione__colonne { grid-template-columns: minmax(0, 1fr); }
  .lavorazione__campione { max-width: none; aspect-ratio: 16 / 10; }
}

/* Elenchi con la spunta e con il segno di domanda */
.spunte,
.richieste,
.elenco-grande { margin: 0; padding: 0; list-style: none; }

.spunte li,
.richieste li {
  position: relative;
  padding: .3rem 0 .3rem 1.9rem;
  line-height: 1.45;
}
.spunte li::before {
  content: "";
  position: absolute;
  left: .15rem;
  top: .62em;
  width: .7rem;
  height: .38rem;
  border-left: 2px solid var(--bordeaux);
  border-bottom: 2px solid var(--bordeaux);
  transform: rotate(-45deg);
}
.spunte--chiare li { color: #fff; }
.spunte--chiare li::before { border-color: var(--teal-chiaro); }
.sezione--lsp .spunte { margin-top: 1.5rem; }

.richieste li::before {
  content: "";
  position: absolute;
  left: .1rem;
  top: .72em;
  width: .7rem;
  height: .7rem;
  border: 2px solid var(--cuoio);
  border-radius: 50%;
}

.spunte--colonne { columns: 2; column-gap: 3rem; }
.spunte--colonne li { break-inside: avoid; }
@media (max-width: 600px) { .spunte--colonne { columns: 1; } }

.elenco-grande li {
  padding: 1.1rem 0;
  border-top: 1px solid var(--filo);
  font-size: clamp(1.1rem, 1rem + .3vw, 1.25rem);
  line-height: 1.45;
  color: #2C3846;
}
.elenco-grande li:last-child { border-bottom: 1px solid var(--filo); }
.elenco-grande strong { color: var(--inchiostro); }

/* Voci con titolo e spiegazione: vantaggi, impegni, trattamenti, regole */
.vantaggi,
.impegni,
.trattamenti,
.regole { margin: 0; display: grid; }

.vantaggi,
.impegni { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(1.75rem, 3.5vw, 3.5rem); }
.vantaggi__voce,
.impegni__voce { padding: 1.35rem 0 1.5rem; border-top: 1px solid var(--filo); }
.vantaggi dt,
.impegni dt,
.trattamenti dt { font-family: var(--font-titoli); font-size: 1.45rem; font-weight: 700; line-height: 1.15; }
.vantaggi dd,
.impegni dd,
.trattamenti dd { margin: .5rem 0 0; color: #2C3846; }

.trattamenti { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.25rem clamp(1.75rem, 3.5vw, 3rem); }
.trattamenti__voce { padding-top: 1.2rem; border-top: 2px solid var(--inchiostro); }

.regole { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem clamp(1.75rem, 3.5vw, 3.5rem); }
.regole__voce { padding-top: 1.5rem; border-top: 2px dashed var(--cuoio); }
.regole dt { font-family: var(--font-titoli); font-size: clamp(1.6rem, 1.35rem + .8vw, 2.1rem); font-weight: 700; line-height: 1.05; color: var(--bordeaux); }
.regole dd { margin: .9rem 0 0; color: #2C3846; }

@media (max-width: 899px) {
  .trattamenti,
  .regole { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 700px) {
  .vantaggi,
  .impegni { grid-template-columns: minmax(0, 1fr); }
}

/* Come tornano i capi */
.riconsegna {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2.5rem clamp(1.75rem, 3.5vw, 3.5rem);
  margin: 0;
  padding: 0;
  list-style: none;
}
.riconsegna__voce h3 { margin-top: 1rem; font-size: 1.5rem; }
.riconsegna__voce p { margin-top: .5rem; color: #2C3846; }

.disegno { width: 132px; height: 132px; }
.disegno__linea { fill: none; stroke: var(--inchiostro); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.disegno__linea circle { fill: var(--inchiostro); stroke: none; }
.disegno__busta path { fill: rgba(18, 155, 157, .07); stroke: #9FB0BF; stroke-width: 1.5; stroke-dasharray: 5 4; }
.disegno__accento { fill: none; stroke: var(--bordeaux); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

@media (max-width: 899px) {
  .riconsegna { grid-template-columns: minmax(0, 1fr); }
  .riconsegna__voce { display: grid; grid-template-columns: 96px minmax(0, 1fr); column-gap: 1.25rem; }
  .riconsegna__voce .disegno { width: 96px; height: 96px; grid-row: span 2; }
  .riconsegna__voce h3 { margin-top: .5rem; }
}

/* Domande frequenti */
.domande-frequenti { border-bottom: 1px solid var(--filo); }
.domanda { border-top: 1px solid var(--filo); }
.domanda summary {
  position: relative;
  padding: 1.3rem 3rem 1.3rem 0;
  font-size: clamp(1.075rem, 1rem + .3vw, 1.25rem);
  font-weight: 600;
  line-height: 1.35;
  list-style: none;
  cursor: pointer;
}
.domanda summary::-webkit-details-marker { display: none; }
.domanda summary::after {
  content: "";
  position: absolute;
  right: .4rem;
  top: 50%;
  width: .7rem;
  height: .7rem;
  border-right: 2px solid var(--bordeaux);
  border-bottom: 2px solid var(--bordeaux);
  transform: translateY(-70%) rotate(45deg);
  transition: transform .2s ease;
}
.domanda[open] summary::after { transform: translateY(-25%) rotate(-135deg); }
.domanda summary:hover { color: var(--bordeaux); }
.domanda__risposta { padding: 0 0 1.5rem; max-width: 40em; color: #2C3846; }

/* Testi lunghi e legali */
.testo-lungo p { max-width: 38em; }
.testo-legale { max-width: 52rem; }
.testo-legale h2 { margin: 2.75rem 0 .9rem; font-size: clamp(1.5rem, 1.3rem + .6vw, 1.85rem); }
.testo-legale h2:first-child { margin-top: 0; }
.testo-legale ul { padding-left: 1.2rem; margin: 0 0 1em; }
.testo-legale li { margin-bottom: .5em; }
.crediti { columns: 2; column-gap: 2.5rem; font-size: .95rem; }
.crediti li { break-inside: avoid; }
@media (max-width: 600px) { .crediti { columns: 1; } }

/* Chiusura: la toppa grande */
.chiamata {
  position: relative;
  padding: clamp(2.5rem, 1.75rem + 3.5vw, 5rem);
  border-radius: 10px;
  background: var(--bordeaux);
  color: var(--crema);
  outline: 2px dashed rgba(196, 147, 95, .9);
  outline-offset: -14px;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .18);
}
.chiamata__titolo { color: #fff; font-size: clamp(2.1rem, 1.4rem + 2.6vw, 3.6rem); line-height: 1; max-width: 16ch; }
.chiamata__testo { max-width: 34em; margin: 1.1rem 0 0; font-size: clamp(1.1rem, 1rem + .35vw, 1.3rem); color: rgba(255, 255, 255, .86); }
.chiamata .collegamento--chiaro { font-weight: 500; }

@media (max-width: 480px) {
  .chiamata { outline-offset: -9px; }
}

/* 9. Mappa, rete, distanze ------------------------------------------------- */

.mappa { margin: 0; }
.mappa__scorri {
  overflow-x: auto;
  border: 1px solid var(--filo);
  border-radius: var(--raggio);
  background: #F9FAFB;
  -webkit-overflow-scrolling: touch;
}
.mappa__svg { width: 100%; height: auto; }

@media (max-width: 760px) {
  .mappa__svg { width: 760px; max-width: none; }
  .mappa--zona .mappa__svg { width: 620px; }
}

.mappa__terra { fill: #F9FAFB; }
.mappa__acqua { fill: #DCE8EF; }
.mappa__costa { fill: none; stroke: #B3C6D3; stroke-width: 1.2; }
.mappa__lidi { fill: none; stroke: #F9FAFB; stroke-width: 3.5; stroke-linecap: round; stroke-linejoin: round; }
.mappa__isola { fill: #F9FAFB; stroke: #B3C6D3; stroke-width: 1; }
.mappa__anello { fill: none; stroke: var(--cuoio); stroke-width: 1.3; stroke-dasharray: 6 5; }
.mappa__km { font: 600 13px var(--font-testo); fill: var(--cuoio-testo); }
.mappa__point { fill: var(--teal); stroke: #fff; stroke-width: 2.5; }
.mappa__point--apertura { fill: #fff; stroke: var(--teal); stroke-width: 2.5; stroke-dasharray: 3 2.4; }
.mappa__rif { fill: #8795A4; }
.mappa__nome {
  font: 600 15px var(--font-testo);
  fill: var(--inchiostro);
  paint-order: stroke;
  stroke: #F9FAFB;
  stroke-width: 4px;
  stroke-linejoin: round;
}
.mappa__nome--rif { font-weight: 500; fill: var(--acciaio); }
.mappa__nome--lab { font: 700 19px var(--font-titoli); fill: var(--bordeaux); }
.mappa__lab rect { fill: var(--bordeaux); }
.mappa__lab .mappa__lab-cucitura { fill: none; stroke: var(--cuoio); stroke-width: 1.3; stroke-dasharray: 2.5 2; }
.mappa__scala path { fill: none; stroke: var(--acciaio); stroke-width: 1.5; }

.mappa--zona .mappa__nome { font-size: 23px; stroke-width: 5px; }
.mappa--zona .mappa__nome--lab { font-size: 30px; }
.mappa--zona .mappa__km { font-size: 19px; }
.mappa--zona .mappa__lab rect { transform-box: fill-box; transform-origin: center; transform: scale(1.35); }

.mappa__legenda {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.75rem;
  margin-top: 1rem;
  color: var(--acciaio);
  font-size: .95rem;
}
.legenda { display: inline-flex; align-items: center; gap: .55rem; }
.legenda::before { content: ""; width: 14px; height: 14px; flex: none; }
.legenda--aperto::before { border-radius: 50%; background: var(--teal); }
.legenda--apertura::before { border-radius: 50%; border: 2.5px dashed var(--teal); background: #fff; width: 10px; height: 10px; }
.legenda--laboratorio::before { border-radius: 3px; background: var(--bordeaux); outline: 1px dashed var(--cuoio); outline-offset: -3px; }

.rete {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: 2rem clamp(2rem, 4vw, 4rem);
  margin-top: 2.75rem;
}
.rete__titolo { font-size: 1.35rem; margin-bottom: .75rem; }
.rete__elenco { margin: 0; padding: 0; list-style: none; columns: 2; column-gap: 2.5rem; }
.rete__gruppo:last-child .rete__elenco { columns: 1; }
.rete__elenco li {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .55rem 0;
  border-bottom: 1px solid var(--filo);
  break-inside: avoid;
}
.rete__km,
.distanze__km { color: var(--acciaio); font-variant-numeric: tabular-nums; white-space: nowrap; }
.rete__nota { margin-top: 1rem; font-size: .9rem; color: var(--acciaio); }

@media (max-width: 760px) {
  .rete { grid-template-columns: minmax(0, 1fr); }
  .rete__elenco { columns: 1; }
}

.dove {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: start;
}
.dove__indirizzo { margin: 1.25rem 0 1.25rem; font-size: 1.2rem; line-height: 1.5; }
.distanze { margin: 0 0 2rem; padding: 0; list-style: none; max-width: 26rem; }
.distanze li { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px solid var(--filo); }
.distanze li:first-child { border-top: 1px solid var(--filo); }

@media (max-width: 899px) {
  .dove { grid-template-columns: minmax(0, 1fr); }
}

.dati { margin: 0; }
.dati > div { display: grid; grid-template-columns: minmax(8rem, 1fr) minmax(0, 2fr); gap: 1rem; padding: .8rem 0; border-top: 1px solid var(--filo); }
.dati > div:last-child { border-bottom: 1px solid var(--filo); }
.dati dt { color: var(--acciaio); }
.dati dd { margin: 0; }

@media (max-width: 520px) {
  .dati > div { grid-template-columns: minmax(0, 1fr); gap: .15rem; }
}

/* Modulo di richiesta */
.contatti {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 4fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: start;
}
.contatti__modulo {
  padding: clamp(1.5rem, 1rem + 2.5vw, 3rem);
  border: 1px solid var(--filo);
  border-radius: 10px;
  background: var(--carta);
}
.nota-campi { margin: .5rem 0 1.75rem; color: var(--acciaio); font-size: .95rem; }
.obbligatorio { color: var(--bordeaux); }

.modulo__griglia {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.35rem 1.5rem;
  margin-bottom: 1.5rem;
}
.campo { margin-bottom: 1.35rem; }
.modulo__griglia .campo { margin-bottom: 0; }
.campo--largo { grid-column: 1 / -1; }

.campo label,
.scelte legend {
  display: block;
  margin-bottom: .45rem;
  font-weight: 600;
  line-height: 1.35;
}

.modulo input[type="text"],
.modulo input[type="email"],
.modulo input[type="tel"],
.modulo select,
.modulo textarea {
  width: 100%;
  min-height: 52px;
  padding: .8rem .95rem;
  border: 1.5px solid #AEB9C5;
  border-radius: var(--raggio);
  background: #fff;
  color: var(--inchiostro);
  font: inherit;
  font-size: 1.0625rem;
  line-height: 1.4;
}
.modulo textarea { min-height: 140px; resize: vertical; }
.modulo select {
  appearance: none;
  padding-right: 2.75rem;
  background-image: linear-gradient(45deg, transparent 50%, var(--inchiostro) 50%), linear-gradient(135deg, var(--inchiostro) 50%, transparent 50%);
  background-position: calc(100% - 22px) 52%, calc(100% - 16px) 52%;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
}
.modulo input:focus,
.modulo select:focus,
.modulo textarea:focus {
  outline: 3px solid rgba(107, 30, 40, .22);
  outline-offset: 0;
  border-color: var(--bordeaux);
}
.modulo [aria-invalid="true"] { border-color: var(--errore); }

.campo__aiuto { margin: .4rem 0 0; color: var(--acciaio); font-size: .925rem; }
.campo__errore { display: none; margin: .45rem 0 0; color: var(--errore); font-size: .95rem; font-weight: 600; }
.campo__errore.visibile { display: block; }

.scelte { margin: 0 0 1.75rem; padding: 0; border: 0; min-width: 0; }
.scelte__griglia { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }

.scelta {
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  padding: .75rem .9rem;
  border: 1.5px solid var(--filo);
  border-radius: var(--raggio);
  background: #fff;
  font-weight: 500;
  line-height: 1.35;
  cursor: pointer;
}
.scelta:hover { border-color: #AEB9C5; }
.scelta:has(input:checked) { border-color: var(--bordeaux); background: var(--bordeaux-velo); }
.scelta:has(input:focus-visible) { outline: 3px solid rgba(107, 30, 40, .3); outline-offset: 1px; }
.scelta input { flex: none; width: 1.15rem; height: 1.15rem; margin: .12rem 0 0; accent-color: var(--bordeaux); }
.scelta--privacy { padding: 0; border: 0; background: none; font-weight: 400; }
.scelta--privacy:has(input:checked) { background: none; }
.campo--spunta { margin: .5rem 0 1.75rem; }

.esca { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }

.avviso { margin-top: 1rem; padding: .9rem 1rem; border-radius: var(--raggio); background: #FFF6E0; }

.esito {
  display: flex;
  gap: 1rem;
  margin-top: 1.5rem;
  padding: 1.25rem 1.4rem;
  border-radius: 8px;
  line-height: 1.5;
}
.esito:focus { outline: none; }
.esito svg { flex: none; width: 24px; height: 24px; margin-top: .1rem; }
.esito p { margin: 0 0 .5em; }
.esito--ok { background: #ECF7EF; border: 1px solid #9CD3AE; color: #0E4722; }
.esito--err { background: #FDEDEB; border: 1px solid #F0ABA2; color: #7A1A10; }
.esito--attenzione { background: #FFF6E0; border: 1px solid #EFCF7B; color: #5A3E00; }
.esito .bottone { margin-top: .5rem; }

.contatti__lato { display: grid; gap: 2.25rem; position: sticky; top: 112px; }
.lato__titolo { font-size: 1.45rem; margin-bottom: .85rem; }
.lato__elenco { margin: 0; padding: 0; list-style: none; }
.lato__elenco li { padding: .35rem 0; }
.dopo { margin: 0; padding: 0; list-style: none; counter-reset: dopo; }
.dopo li { position: relative; padding: 0 0 1rem 2.6rem; counter-increment: dopo; line-height: 1.45; }
.dopo li::before {
  content: counter(dopo);
  position: absolute;
  left: 0;
  top: -.05rem;
  display: grid;
  place-items: center;
  width: 1.8rem;
  height: 1.8rem;
  border-radius: 50%;
  background: var(--bordeaux);
  color: #fff;
  font: 700 1rem/1 var(--font-titoli);
}

@media (max-width: 960px) {
  .contatti { grid-template-columns: minmax(0, 1fr); }
  .contatti__lato { position: static; }
}
@media (max-width: 600px) {
  .modulo__griglia,
  .scelte__griglia { grid-template-columns: minmax(0, 1fr); }
}

/* 404 */
.rimandi { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.75rem; margin: 2.25rem 0 0; padding: 0; list-style: none; }
.intestazione--404 { min-height: 55vh; }

/* Piede */
.piede { background: var(--inchiostro); color: #C5CED8; font-size: .975rem; }
.piede a { color: #fff; }
.piede a:hover { color: var(--crema); }
.piede__griglia {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr));
  gap: 2.5rem clamp(1.5rem, 3vw, 3rem);
  padding-block: clamp(3.5rem, 3rem + 2vw, 5rem) 3rem;
}
.piede__logo { display: block; width: auto; height: 60px; }
.piede__marchio p { margin-top: 1.25rem; max-width: 24em; }
.piede__titolo { margin-bottom: .9rem; color: #fff; font-size: 1.2rem; }
.piede address { margin-bottom: .75rem; }
.piede__elenco { margin: 0; padding: 0; list-style: none; }
.piede__elenco li { padding: .2rem 0; }
.piede__legale {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: .75rem 2rem;
  padding-block: 1.5rem 2rem;
  font-size: .875rem;
}
.piede__legale::before {
  content: "";
  position: absolute;
  left: var(--margine);
  right: var(--margine);
  top: 0;
  border-top: 1px solid rgba(255, 255, 255, .13);
}
.piede__legale p { margin: 0; }
.piede__righe { display: flex; flex-wrap: wrap; gap: .35rem 1.5rem; }

@media (max-width: 899px) {
  .piede__griglia { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .piede__marchio { grid-column: 1 / -1; }
}
@media (max-width: 520px) {
  .piede__griglia { grid-template-columns: minmax(0, 1fr); }
}

/* 10. Movimento, stampa ---------------------------------------------------- */

@keyframes gira { to { transform: rotate(360deg); } }

/* L'unico movimento del sito: i tre campioni si aprono a ventaglio */
@keyframes ventaglio {
  from { transform: var(--da); opacity: 0; }
  40% { opacity: 1; }
}

@media (prefers-reduced-motion: no-preference) {
  .cartella { animation: ventaglio 1s cubic-bezier(.2, .75, .25, 1) both; }
  .cartella--1 { animation-delay: .35s; }
  .cartella--2 { animation-delay: .2s; }
  .cartella--3 { animation-delay: .45s; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

@media print {
  .testata, .salta, .chiamata .azioni, .menu-apri { display: none !important; }
  body { background: #fff; font-size: 11pt; }
  .sezione, .intestazione { padding-block: 1.5rem; }
  .sezione--notte, .sezione--lsp, .intestazione--lsp, .piede { background: #fff !important; color: #000 !important; }
  .sezione--notte *, .sezione--lsp *, .intestazione--lsp *, .piede * { color: #000 !important; }
  .chiamata { background: #fff; color: #000; outline: 2px dashed #999; }
  .chiamata * { color: #000 !important; }
}
