/* ============================================================
   CROMATURA MODERNA s.r.l. — FOGLIO DI STILE DEL SITO
   ------------------------------------------------------------
   Un solo file per tutte le pagine (nuovo design, novembre 2026).
   Il foglio di stile del vecchio design e' in archivio/style.css,
   fuori dalla cartella sito/ (non va pubblicato).

   L'idea in breve: il cromo come protagonista. Sezioni scure
   (blu notte, lo stesso fondo del video del monogramma) alternate
   a sezioni chiare (grigio perla). Un solo colore di accento,
   l'acciaio azzurro. Titoli in Archivo largo e maiuscolo, dettagli
   tecnici (etichette, norme) in IBM Plex Mono.

   Indice:
     1. Caratteri
     2. Tavolozza e misure
     3. Basi
     4. Elementi comuni (etichette, titoli, bottoni, comparse)
     5. Barra in alto e menu del telefono
     6. Apertura con il monogramma
     7. Manifesto e numeri
     8. Stabilimento a tutto schermo
     9. Pannelli dei trattamenti
    10. Certificazioni
    11. Ciclo dell'acqua
    12. Stabilimenti
    13. Chiusura e footer
    14. Banner cookie e salta al contenuto
    15. Pagine interne (intestazione, testi, schede, contatti...)
    16. Schermi piccoli
    17. Chi ha chiesto meno movimento
   ============================================================ */


/* ============================================================
   1. CARATTERI — salvati nella cartella font/ (licenza libera,
   vedi librerie/LEGGIMI.txt). "font-display:swap" mostra subito
   il testo con un carattere di riserva e lo sostituisce appena il
   file e' arrivato: il testo non resta mai invisibile.
   ============================================================ */
@font-face{
  font-family:'Archivo';
  src:url('font/archivo.woff2') format('woff2');
  font-weight:100 900;        /* un solo file contiene tutti i pesi... */
  font-stretch:62% 125%;      /* ...e tutte le larghezze, da stretto a largo */
  font-display:swap;
}
@font-face{
  font-family:'IBM Plex Mono';
  src:url('font/ibm-plex-mono-400.woff2') format('woff2');
  font-weight:400;font-display:swap;
}
@font-face{
  font-family:'IBM Plex Mono';
  src:url('font/ibm-plex-mono-500.woff2') format('woff2');
  font-weight:500;font-display:swap;
}


/* ============================================================
   2. TAVOLOZZA E MISURE
   Tra parentesi il contrasto con il fondo su cui si usa: sopra
   4,5 : 1 il testo si legge bene anche piccolo.
   ============================================================ */
:root{
  /* Fondi */
  --notte:#0e1017;            /* blu notte quasi nero, il fondo del video */
  --notte-2:#151923;          /* un gradino piu' chiaro: i pannelli */
  --perla:#eef1f4;            /* grigio perla delle sezioni chiare */
  --bianco:#f8f9fb;

  /* Testi */
  --latte:#eef2f5;            /* testo su fondo scuro          (17 : 1) */
  --latte-tenue:#9aa7b3;      /* testo secondario su scuro      (7,4 : 1) */
  --inchiostro:#0d1116;       /* testo su fondo chiaro         (17 : 1) */
  --inchiostro-tenue:#4c5762; /* testo secondario su chiaro     (6,6 : 1) */

  /* Accento: acciaio azzurro, in due toni */
  --acciaio:#7fb2d9;          /* su fondo scuro                 (8,6 : 1) */
  --acciaio-scuro:#1f5f8f;    /* su fondo chiaro                (6,2 : 1) */

  /* Linee sottili */
  --linea-scura:rgba(238,242,245,.14);   /* su fondo scuro */
  --linea-chiara:rgba(13,17,22,.14);     /* su fondo chiaro */

  /* Caratteri */
  --font:'Archivo',system-ui,'Segoe UI',sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,Consolas,monospace;

  /* Misure */
  --altezza-nav:84px;                    /* altezza della barra in alto */
  --margine:clamp(20px,5vw,72px);        /* margine ai lati della pagina */
  --curva:cubic-bezier(.2,.7,.1,1);      /* l'andamento di tutte le transizioni: parte veloce, arriva morbido */
}


/* ============================================================
   3. BASI
   ============================================================ */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  font-family:var(--font);
  font-size:17px;line-height:1.6;
  color:var(--inchiostro);background:var(--notte);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,video{display:block;max-width:100%}
a{color:inherit}
ul,ol{list-style:none}
/* Gli elementi con l'attributo "hidden" (per esempio i pulsanti che
   script.js accende solo se il JavaScript funziona) restano nascosti
   anche quando hanno la classe .btn, che altrimenti li mostrerebbe. */
[hidden]{display:none!important}

.contenitore{width:100%;max-width:1440px;margin:0 auto;padding:0 var(--margine)}
.sezione{padding:clamp(90px,14vw,190px) 0;position:relative}
.chiara{background:var(--perla);color:var(--inchiostro)}
.scura{background:var(--notte);color:var(--latte)}


/* ============================================================
   4. ELEMENTI COMUNI
   ============================================================ */

/* Etichetta: la piccola scritta tecnica sopra i titoli */
.etichetta{
  font-family:var(--mono);font-size:12px;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;
  display:flex;align-items:center;gap:.8em;margin-bottom:1.6rem;
}
.etichetta::before{content:"";width:28px;height:1px;background:currentColor;opacity:.6}
.chiara .etichetta{color:var(--acciaio-scuro)}
.scura .etichetta{color:var(--acciaio)}

/* Titoli: Archivo largo (font-stretch 125%) e maiuscolo */
.titolo-grande,.titolo-enorme{
  font-weight:620;font-stretch:125%;text-transform:uppercase;
  line-height:.94;letter-spacing:-.01em;
}
/* Sul computer la misura segue la larghezza dello schermo (5,4vw).
   Sul telefono c'e' un tetto in piu': la larghezza disponibile divisa
   per 13,5, cosi' anche una parola lunga come "CERTIFICAZIONI" (larga
   circa 12,7 volte l'altezza delle lettere) entra in una riga. */
.titolo-grande{font-size:clamp(1.5rem,min(5.4vw,(100vw - 2 * var(--margine)) / 13.5),5.2rem);margin-bottom:1.8rem}
.titolo-enorme{font-size:clamp(2.6rem,8.6vw,8.8rem);margin-bottom:2.2rem}
.sottotitolo{font-size:clamp(1.05rem,1.4vw,1.25rem);max-width:46ch;margin-bottom:2.6rem}
.chiara .sottotitolo{color:var(--inchiostro-tenue)}
.scura .sottotitolo{color:var(--latte-tenue)}

/* Righe dei titoli animate: animazioni.js le divide e le fa salire
   da sotto una "maschera". Senza JavaScript restano normali. */
.riga-maschera{overflow:hidden;padding-bottom:.06em;margin-bottom:-.06em}

/* Bottoni. Angoli vivi, maiuscolo, freccia che scivola al passaggio
   del mouse. */
.bottoni{display:flex;flex-wrap:wrap;gap:12px}
.btn{
  position:relative;display:inline-flex;align-items:center;gap:.9em;
  font-family:var(--font);font-size:13px;font-weight:600;font-stretch:110%;
  letter-spacing:.1em;text-transform:uppercase;text-decoration:none;
  padding:1.15em 1.7em;border-radius:2px;border:1px solid transparent;
  cursor:pointer;overflow:hidden;
  transition:background .35s var(--curva),color .35s var(--curva),border-color .35s var(--curva);
}
.btn::after{                       /* la freccia, disegnata con due bordi */
  content:"";width:7px;height:7px;
  border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;
  transform:rotate(45deg);transition:transform .35s var(--curva);
}
.btn:hover::after{transform:translateX(4px) rotate(45deg)}
.btn:focus-visible{outline:2px solid var(--acciaio);outline-offset:3px}

.btn-pieno{background:var(--acciaio);color:var(--notte)}
.btn-pieno:hover{background:var(--latte)}
.chiara .btn-pieno{background:var(--acciaio-scuro);color:#fff}
.chiara .btn-pieno:hover{background:var(--inchiostro)}

.btn-filo{border-color:currentColor;color:var(--inchiostro);background:transparent}
.btn-filo:hover{background:var(--inchiostro);color:var(--perla);border-color:var(--inchiostro)}
.btn-chiaro{color:var(--latte)}
.btn-chiaro:hover{background:var(--latte);color:var(--notte);border-color:var(--latte)}

/* Comparsa allo scorrimento: script.js aggiunge "visible" */
.reveal{opacity:0;transform:translateY(36px);
  transition:opacity 1s var(--curva),transform 1s var(--curva)}
.reveal.visible{opacity:1;transform:none}
.reveal-d1{transition-delay:.1s}.reveal-d2{transition-delay:.2s}.reveal-d3{transition-delay:.3s}


/* ============================================================
   5. BARRA IN ALTO
   Trasparente sull'apertura; quando si scorre script.js aggiunge
   "nav-scrolled" e diventa un vetro scuro sfocato.
   ============================================================ */
.barra{
  position:fixed;top:0;left:0;right:0;z-index:100;
  height:var(--altezza-nav);padding:0 var(--margine);
  display:flex;align-items:center;gap:2rem;
  color:var(--latte);
  transition:background .5s var(--curva),border-color .5s var(--curva),backdrop-filter .5s;
  border-bottom:1px solid transparent;
}
.barra.nav-scrolled{
  background:rgba(14,16,23,.72);
  -webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4);
  border-bottom-color:var(--linea-scura);
}
.barra-logo{display:flex;align-items:center;gap:.4rem;text-decoration:none;margin-right:auto}
.barra-logo img{height:60px;width:auto;margin:0 -14px 0 -22px}  /* il file ha margini vuoti: li recuperiamo */
.barra-logo span{
  font-weight:650;font-stretch:125%;font-size:13px;letter-spacing:.14em;
  text-transform:uppercase;line-height:1.2;white-space:nowrap;
}
.barra-logo small{display:block;font-family:var(--mono);font-weight:400;font-size:10px;
  letter-spacing:.2em;color:var(--latte-tenue)}

/* I quattro collegamenti, in una "capsula" sottile come Q-Industrial */
.barra-link{display:flex;gap:2px;padding:4px;border:1px solid var(--linea-scura);border-radius:999px}
.barra-link a{
  display:block;padding:.55em 1.1em;border-radius:999px;white-space:nowrap;
  font-size:13px;font-weight:500;letter-spacing:.04em;text-decoration:none;
  transition:background .3s,color .3s;
}
.barra-link a:hover,.barra-link a:focus-visible{background:var(--latte);color:var(--notte);outline:none}
.barra-link a.attivo{background:rgba(238,242,245,.12)}   /* la pagina in cui ci si trova */
.barra-link-cta{display:none}          /* il preventivo dentro il menu serve solo sul telefono */
.barra-cta{
  font-size:12px;font-weight:600;font-stretch:110%;letter-spacing:.1em;text-transform:uppercase;
  text-decoration:none;padding:.95em 1.4em;border-radius:2px;white-space:nowrap;
  background:var(--acciaio);color:var(--notte);transition:background .3s;
}
.barra-cta:hover{background:var(--latte)}

/* Menu del telefono: casella nascosta + etichetta a forma di panino */
.menu-toggle{position:absolute;opacity:0;pointer-events:none}
.menu-btn{display:none;width:44px;height:44px;align-items:center;justify-content:center;cursor:pointer}
.menu-btn span,.menu-btn span::before,.menu-btn span::after{
  display:block;width:22px;height:1.5px;background:var(--latte);position:relative;
  transition:transform .3s var(--curva),background .3s;
}
.menu-btn span::before,.menu-btn span::after{content:"";position:absolute;left:0}
.menu-btn span::before{top:-7px}
.menu-btn span::after{top:7px}
.menu-toggle:checked ~ .menu-btn span{background:transparent}
.menu-toggle:checked ~ .menu-btn span::before{transform:translateY(7px) rotate(45deg)}
.menu-toggle:checked ~ .menu-btn span::after{transform:translateY(-7px) rotate(-45deg)}
.menu-toggle:focus-visible ~ .menu-btn{outline:2px solid var(--acciaio);outline-offset:2px}


/* ============================================================
   6. APERTURA — il monogramma cromato
   Strati, dal fondo verso di noi: video, velo scuro, testi.
   ============================================================ */
.apertura{
  position:relative;height:100svh;min-height:620px;
  background:var(--notte);color:var(--latte);overflow:hidden;
}
/* Il contenitore del video sborda un po' oltre i bordi: quando
   segue il mouse si sposta di qualche pixel e non devono mai
   vedersi i margini. */
.apertura-sfondo{position:absolute;inset:-3%;will-change:transform}
.intro-video{width:100%;height:100%;object-fit:cover;object-position:center}

/* Telefono in verticale: il video e' largo 16:9, quindi lo facciamo
   entrare intero ("contain"), lo ingrandiamo un po' e ne sfumiamo i
   bordi alto e basso, come nel sito attuale. */
@media (orientation:portrait){
  .intro-video{
    position:absolute;inset:42% 0 auto 0;height:auto;object-fit:contain;
    transform:translateY(-50%) scale(1.45);
    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 16%,#000 84%,transparent 100%);
            mask-image:linear-gradient(to bottom,transparent 0,#000 16%,#000 84%,transparent 100%);
  }
}
/* Il browser ha rifiutato il video (lo segnala script.js): resta il
   fotogramma finale, fermo. */
.apertura-sfondo.intro-senza-video .intro-video{display:none}
.apertura-sfondo.intro-senza-video{
  background:url("immagini/intro-logo-fermo.webp") center/cover no-repeat;
}

.apertura-velo{
  position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(to bottom,rgba(14,16,23,.55) 0%,rgba(14,16,23,0) 22%),
    linear-gradient(to top,rgba(14,16,23,.92) 0%,rgba(14,16,23,.5) 30%,rgba(14,16,23,0) 58%);
}

.apertura-testi{
  position:absolute;left:0;right:0;bottom:0;
  padding:0 var(--margine) clamp(32px,5vh,64px);
  display:flex;flex-direction:column;gap:clamp(1.4rem,3vh,2.4rem);
}
.apertura-etichetta{
  position:absolute;left:var(--margine);
  top:calc(var(--altezza-nav) + clamp(16px,4vh,48px));
  color:var(--latte-tenue);margin:0;
}
.apertura-etichetta::before{display:none}
.punto{width:7px;height:7px;border-radius:50%;background:var(--acciaio);
  box-shadow:0 0 0 0 rgba(127,178,217,.6);animation:pulsa 2.4s ease-out infinite}
@keyframes pulsa{0%{box-shadow:0 0 0 0 rgba(127,178,217,.55)}100%{box-shadow:0 0 0 12px rgba(127,178,217,0)}}

/* La misura del titolo e' calcolata perche' "PERFORMANCE", la parola
   piu' lunga, entri sempre in una riga: in questo carattere e' larga
   circa 10 volte la propria altezza, quindi la dimensione e' la
   larghezza disponibile divisa per 10,4. Mai piu' grande di 7,4rem. */
.apertura-titolo{
  font-weight:640;font-stretch:125%;text-transform:uppercase;
  font-size:min(7.4rem,calc((100vw - 2 * var(--margine)) / 10.4));
  line-height:.88;letter-spacing:-.015em;
}
.apertura-titolo .riga{display:block}
.apertura-titolo em{font-style:normal;color:var(--acciaio)}

/* Sotto il titolo: la frase a sinistra, i bottoni a destra */
.apertura-lato{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem 3rem;flex-wrap:wrap;
  padding-top:clamp(1.2rem,2.5vh,2rem);border-top:1px solid var(--linea-scura)}
.apertura-lato p{color:var(--latte-tenue);font-size:15px;line-height:1.6;max-width:52ch}

/* "Scorri": scritta in verticale sul bordo destro, con un filo che scende */
.scorri{
  position:absolute;right:calc(var(--margine) - 8px);top:50%;
  transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:14px;
  color:var(--latte-tenue);font-family:var(--mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;
}
.scorri span{writing-mode:vertical-rl}
.scorri i{width:1px;height:64px;background:linear-gradient(var(--latte-tenue),transparent);
  position:relative;overflow:hidden}
.scorri i::after{content:"";position:absolute;left:0;top:-30%;width:1px;height:30%;
  background:var(--acciaio);animation:goccia 2s var(--curva) infinite}
@keyframes goccia{to{top:100%}}


/* ============================================================
   7. MANIFESTO E NUMERI
   ============================================================ */
.manifesto-frase{
  font-size:clamp(1.8rem,4.3vw,4.1rem);font-weight:480;line-height:1.1;
  letter-spacing:-.025em;max-width:22ch;margin-bottom:clamp(70px,10vw,140px);
}
/* Le parole "spente" che si accendono scorrendo (animazioni.js) */
.manifesto-frase .parola{opacity:.16}

.numeri{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--linea-chiara)}
.numero{padding:2rem 1.5rem 0 0;border-right:1px solid var(--linea-chiara);margin-right:1.5rem}
.numero:last-child{border-right:0;margin-right:0}
.numero-cifra{
  font-weight:600;font-stretch:125%;font-size:clamp(3rem,6.4vw,6.4rem);line-height:1;
  letter-spacing:-.03em;display:flex;align-items:flex-start;
}
.numero-cifra sup{font-size:.36em;color:var(--acciaio-scuro);margin:.2em 0 0 .1em;top:0}
.numero-voce{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--inchiostro-tenue);margin-top:1rem;max-width:22ch;line-height:1.5}


/* ============================================================
   8. STABILIMENTO A TUTTO SCHERMO
   ============================================================ */
.schermo-pieno{position:relative;height:110svh;min-height:560px;overflow:hidden;background:var(--notte);color:var(--latte)}
.schermo-pieno-img{position:absolute;inset:0;will-change:transform}
.schermo-pieno-img img{width:100%;height:100%;object-fit:cover}
.schermo-pieno::after{                 /* velo scuro per leggere il titolo */
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(to top,rgba(14,16,23,.9) 0%,rgba(14,16,23,.35) 45%,rgba(14,16,23,.15) 100%);
}
.schermo-pieno-testo{
  position:absolute;left:0;right:0;bottom:0;z-index:1;
  padding:0 var(--margine) clamp(48px,9vh,110px);max-width:1440px;margin:0 auto;
}


/* ============================================================
   9. PANNELLI DEI TRATTAMENTI
   Di partenza (telefono, o JavaScript spento) sono una griglia.
   Sul computer, con JavaScript, animazioni.js mette sulla pagina
   la classe "orizzontale": i pannelli si mettono in fila e scorrono
   di lato mentre la pagina scende.
   ============================================================ */
.trattamenti{padding-bottom:clamp(80px,10vw,140px)}
.trattamenti-testa{margin-bottom:clamp(40px,6vw,80px)}
.pannelli-finestra{padding:0 var(--margine);margin-bottom:clamp(48px,6vw,80px)}
.pannelli{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:16px;max-width:1440px;margin:0 auto}

.pannello{
  position:relative;overflow:hidden;isolation:isolate;
  display:flex;flex-direction:column;gap:1rem;
  min-height:440px;padding:clamp(28px,3vw,44px);
  background:var(--notte-2);border:1px solid var(--linea-scura);
  color:var(--latte);text-decoration:none;
  transition:border-color .5s var(--curva),transform .5s var(--curva);
}
/* Il riflesso: una lama di luce che attraversa il pannello al
   passaggio del mouse, come la luce che scorre su una superficie
   cromata. */
.pannello::before{
  content:"";position:absolute;z-index:-1;top:0;bottom:0;left:-60%;width:45%;
  background:linear-gradient(100deg,transparent,rgba(127,178,217,.10) 45%,rgba(238,242,245,.16) 50%,rgba(127,178,217,.10) 55%,transparent);
  transform:skewX(-14deg);transition:left 1.1s var(--curva);
}
.pannello:hover::before,.pannello:focus-visible::before{left:120%}
.pannello:hover,.pannello:focus-visible{border-color:rgba(127,178,217,.55);outline:none}

.pannello-num{font-family:var(--mono);font-size:13px;color:var(--acciaio);letter-spacing:.1em}
.pannello-materiale{
  position:absolute;top:clamp(28px,3vw,44px);right:clamp(28px,3vw,44px);
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  border:1px solid var(--linea-scura);padding:.45em .9em;border-radius:999px;color:var(--latte-tenue);
}
.pannello h3{
  font-weight:620;font-stretch:125%;text-transform:uppercase;
  font-size:clamp(1.6rem,2.5vw,2.5rem);line-height:.98;margin-top:auto;
}
.pannello p{color:var(--latte-tenue);font-size:15px;line-height:1.6}
.pannello .pannello-sotto{color:var(--latte);font-size:16px}
.norme{display:flex;flex-wrap:wrap;gap:6px}
.norme span{font-family:var(--mono);font-size:11.5px;letter-spacing:.04em;
  padding:.4em .75em;background:rgba(127,178,217,.1);color:var(--acciaio);border-radius:2px}
.pannello-vai{
  display:flex;align-items:center;gap:.8em;margin-top:.4rem;padding-top:1.1rem;
  border-top:1px solid var(--linea-scura);
  font-size:12px;font-weight:600;font-stretch:110%;letter-spacing:.12em;text-transform:uppercase;
}
.pannello-vai::after{content:"";width:7px;height:7px;border-top:1.5px solid currentColor;
  border-right:1.5px solid currentColor;transform:rotate(45deg);transition:transform .35s var(--curva)}
.pannello:hover .pannello-vai::after{transform:translateX(5px) rotate(45deg)}

/* Modalita' orizzontale (solo computer, con JavaScript) */
.orizzontale .pannelli-finestra{overflow:hidden;padding:0}
.orizzontale .pannelli{
  display:flex;flex-wrap:nowrap;gap:20px;max-width:none;width:max-content;
  padding:0 var(--margine);margin:0;
}
.orizzontale .pannello{width:min(36vw,520px);height:min(64vh,560px);min-height:0;flex:none}


/* ============================================================
   10. CERTIFICAZIONI — le quattro sigle in grande
   ============================================================ */
.sigle{display:grid;grid-template-columns:repeat(4,1fr);margin:clamp(30px,5vw,60px) 0 clamp(40px,5vw,64px);
  border-top:1px solid var(--linea-chiara)}
.sigle li{
  padding:1.6rem 1rem 1.6rem 0;border-bottom:1px solid var(--linea-chiara);
  font-weight:600;font-stretch:125%;font-size:clamp(1.4rem,3vw,3.4rem);line-height:1;
  letter-spacing:-.02em;white-space:nowrap;transition:color .4s var(--curva);
}
.sigle li:hover{color:var(--acciaio-scuro)}


/* ============================================================
   11. IL CICLO DELL'ACQUA — ripreso da style.css
   La meccanica non e' toccata: cambiano solo il carattere (Archivo)
   e i raccordi di colore, che ora sfumano dal grigio perla.
   I colori valgono solo dentro .ciclo-sezione.
   ============================================================ */
.ciclo-sezione{
  --ciclo-bg:#1A1D28;        /* blu notte: lo stesso fondo dell'illustrazione */
  --ciclo-ink:#E8EEF3;       /* testo chiaro */
  --ciclo-ink-dim:#93A3B1;   /* testo secondario */
  --ciclo-line:#2E3A48;      /* trattini spenti della barra delle fasi */
  --ciclo-water:#5AC8D8;     /* turchese: l'acqua nelle vasche del render */
  --ciclo-out:#C99A2E;       /* ocra: il fango nel cassone del render */
  background:var(--ciclo-bg);color:var(--ciclo-ink);font-family:var(--font);
}
.ciclo-raccordo{height:120px}
.ciclo-raccordo--su{background:linear-gradient(to bottom,var(--perla),#1A1D28)}
.ciclo-raccordo--giu{background:linear-gradient(to bottom,#1A1D28,var(--perla))}

.ciclo-wrap{max-width:64ch;margin:0 auto;padding:0 24px}
.ciclo-intro{padding:14vh 0 12vh}
.ciclo-intro h2{font-weight:620;font-stretch:125%;text-transform:uppercase;letter-spacing:-.01em;
  font-size:clamp(2rem,5vw,3.6rem);line-height:.96;margin:0 0 .6em;color:var(--ciclo-ink)}
.ciclo-intro p{font-size:1.06rem;line-height:1.65;color:var(--ciclo-ink-dim);margin:0 0 1em}
.ciclo-cue{font-family:var(--mono);font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ciclo-water);margin-top:2em}

.ciclo-cycle{position:relative;padding:0}
.ciclo-stage{position:sticky;top:0;height:100svh;overflow:hidden;
  display:grid;grid-template-rows:1fr auto;background:#1A1D28}
.ciclo-frame{position:relative;overflow:hidden;min-height:0;background:#1A1D28}
.ciclo-plate{position:absolute;transform-origin:50% 50%;
  transition:transform 1000ms cubic-bezier(.22,.61,.36,1);will-change:transform}
.ciclo-plate img{width:100%;height:100%;display:block;max-width:none}
.ciclo-vignette{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 64% 70% at 50% 50%,
    rgba(20,23,32,0) 0%, rgba(20,23,32,.05) 58%,
    rgba(20,23,32,.5) 86%, rgba(20,23,32,.76) 100%);
  transition:opacity .6s}
.ciclo-pin{position:absolute;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;
  border:1.5px solid var(--ciclo-water);background:rgba(90,200,216,.16);
  transform-origin:50% 50%;transition:opacity .5s;opacity:0}
.ciclo-pin::after{content:"";position:absolute;inset:10px;border-radius:50%;background:var(--ciclo-water)}
.ciclo-pin[data-on="1"]{opacity:1}
.ciclo-pin[data-on="1"]::before{content:"";position:absolute;inset:-12px;border-radius:50%;
  border:1.5px solid var(--ciclo-water);animation:ciclo-ping 2.4s ease-out infinite}
.ciclo-pin.ciclo-is-out{border-color:var(--ciclo-out);background:rgba(201,154,46,.18)}
.ciclo-pin.ciclo-is-out::after{background:var(--ciclo-out)}
.ciclo-pin.ciclo-is-out[data-on="1"]::before{border-color:var(--ciclo-out)}
@keyframes ciclo-ping{0%{transform:scale(.7);opacity:.9}100%{transform:scale(2);opacity:0}}
/* La minimappa parte sotto la barra in alto (--altezza-nav) */
.ciclo-mini{position:absolute;right:clamp(14px,3vw,34px);
  top:calc(var(--altezza-nav) + clamp(14px,3vh,30px));
  width:clamp(140px,16vw,215px);border:1px solid rgba(147,163,177,.26);
  border-radius:3px;overflow:hidden;background:#1A1D28;opacity:.9;transition:opacity .5s}
.ciclo-mini img{width:100%;display:block;opacity:.6}
.ciclo-mini__box{position:absolute;border:1.5px solid var(--ciclo-water);
  box-shadow:0 0 0 9999px rgba(20,23,32,.42);transition:all 1000ms cubic-bezier(.22,.61,.36,1)}
.ciclo-caption{padding:0 clamp(18px,4vw,52px) clamp(18px,3vh,36px);
  display:grid;grid-template-columns:minmax(0,52ch) 1fr;gap:clamp(14px,4vw,44px);align-items:end}
.ciclo-caption__num{font-family:var(--mono);font-size:.82rem;letter-spacing:.12em;
  color:var(--ciclo-water);margin:0 0 .5em;text-transform:uppercase}
.ciclo-caption__title{font-weight:620;font-stretch:125%;text-transform:uppercase;
  font-size:clamp(1.4rem,2.6vw,2.1rem);line-height:1.02;margin:0 0 .4em;color:var(--ciclo-ink)}
.ciclo-caption__body{margin:0;color:var(--ciclo-ink-dim);line-height:1.5;font-size:.98rem}
.ciclo-caption__out{margin:.7em 0 0;font-size:.92rem;color:var(--ciclo-out);
  border-left:2px solid currentColor;padding-left:.75em;line-height:1.4}
.ciclo-caption__out:empty{display:none}
.ciclo-fade{animation:ciclo-rise .55s ease both}
@keyframes ciclo-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.ciclo-rail{display:flex;gap:4px;align-items:flex-end;justify-content:flex-end;flex-wrap:wrap}
.ciclo-rail button{appearance:none;background:none;border:0;cursor:pointer;padding:12px 0 0;width:42px;font:inherit}
.ciclo-rail span{display:block;height:3px;background:var(--ciclo-line);transition:background .35s,height .35s}
.ciclo-rail button[aria-current="true"] span{background:var(--ciclo-water);height:6px}
.ciclo-rail button:focus-visible{outline:2px solid var(--ciclo-water);outline-offset:4px}
.ciclo-track{height:700svh}
.ciclo-outro{padding:14vh 0 16vh}
.ciclo-outro p{font-size:1.06rem;line-height:1.65;color:var(--ciclo-ink-dim)}
.ciclo-note{font-size:.86rem;color:#8fa0ae;margin-top:3em}
.ciclo-fallback{padding:6vh 0 0}
.ciclo-fallback li{margin:0 0 1.6em;color:var(--ciclo-ink-dim);line-height:1.55}
.ciclo-fallback strong{display:block;color:var(--ciclo-ink);font-size:1.4rem;font-weight:620;margin-bottom:.15em}
.ciclo-fallback__uscita{display:block;margin-top:.5em;color:var(--ciclo-out);font-style:normal}


/* ============================================================
   12. STABILIMENTI
   ============================================================ */
.stab-griglia{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:clamp(30px,5vw,60px) 0 clamp(40px,5vw,64px)}
.stab{margin:0}
.stab-foto{overflow:hidden;aspect-ratio:4/3;background:var(--notte)}
.stab-foto img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--curva)}
.stab:hover .stab-foto img{transform:scale(1.06)}
.stab figcaption{display:flex;flex-direction:column;gap:.25rem;padding-top:1.1rem;border-bottom:1px solid var(--linea-chiara);padding-bottom:1.1rem}
.stab strong{font-weight:620;font-stretch:118%;text-transform:uppercase;font-size:1.15rem;letter-spacing:.01em}
.stab figcaption span:last-child{color:var(--inchiostro-tenue);font-size:15px}
.stato{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  display:flex;align-items:center;gap:.6em}
.stato::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.stato.attivo{color:#2a7a4c}            /* verde       (5,0 : 1 sul perla) */
.stato.in-apertura{color:#9a5f0c}       /* ambra scura (5,1 : 1 sul perla) */


/* ============================================================
   13. CHIUSURA E FOOTER
   ============================================================ */
.chiusura{padding:clamp(110px,16vw,220px) 0;overflow:hidden}
/* Piu' piccolo: in home accanto c'e' il monogramma. Sul telefono il
   tetto e' la larghezza disponibile divisa per 11,5, cosi' anche
   "TRATTAMENTO" entra in una riga. */
.chiusura .titolo-enorme{max-width:12ch;font-size:clamp(1.6rem,min(5.4vw,(100vw - 2 * var(--margine)) / 11.5),6.2rem)}
.chiusura-griglia{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:2rem;align-items:center}

/* Il riquadro del monogramma 3D. Di partenza mostra l'immagine ferma
   del logo; quando monogramma-3d.js e' pronto aggiunge la classe
   "pronto": l'immagine sparisce e il 3D compare in dissolvenza. */
.monogramma-3d{position:relative;aspect-ratio:1/1;width:100%;max-width:620px;justify-self:end}
.monogramma-3d img{position:absolute;inset:0;margin:auto;width:70%;height:auto;opacity:.85;transition:opacity .6s}
.monogramma-3d canvas{position:absolute;inset:0;width:100%!important;height:100%!important;
  opacity:0;transition:opacity 1.2s var(--curva)}
.monogramma-3d.pronto img{opacity:0}
.monogramma-3d.pronto canvas{opacity:1}

.piede{background:var(--notte);color:var(--latte-tenue);border-top:1px solid var(--linea-scura);padding:3rem 0}
.piede-griglia{display:grid;grid-template-columns:auto 1fr auto;gap:1rem 3rem;align-items:start;font-size:14px;line-height:1.8}
.piede-marchio{font-weight:650;font-stretch:125%;text-transform:uppercase;letter-spacing:.06em;color:var(--latte);font-size:15px}
.piede-marchio span{color:var(--acciaio)}
.piede a{text-decoration:none;border-bottom:1px solid var(--linea-scura);transition:color .3s,border-color .3s}
.piede a:hover{color:var(--latte);border-color:var(--acciaio)}
.piede .sep{margin:0 .6em;opacity:.5}
.piede-legale{grid-column:1/-1;font-family:var(--mono);font-size:11.5px;letter-spacing:.04em;
  padding-top:1.4rem;border-top:1px solid var(--linea-scura)}


/* ============================================================
   14. BANNER COOKIE E SALTA AL CONTENUTO
   ============================================================ */
/* Il banner lo costruisce script.js con le classi btn-ghost e
   btn-glow: qui le vestiamo nel nuovo stile. */
.cookie-banner{
  position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:200;max-width:760px;margin:0 auto;
  background:rgba(21,25,35,.92);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  color:var(--latte);border:1px solid var(--linea-scura);border-radius:4px;
  padding:1.2rem 1.4rem;display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;
}
.cookie-banner p{flex:1;min-width:240px;font-size:14px;color:var(--latte-tenue);line-height:1.6}
.cookie-banner a{color:var(--acciaio)}
.cookie-btns{display:flex;gap:.6rem;flex-wrap:wrap}
.cookie-banner button{
  font-family:var(--font);font-size:12px;font-weight:600;font-stretch:110%;letter-spacing:.1em;
  text-transform:uppercase;padding:.9em 1.4em;border-radius:2px;cursor:pointer;
}
.cookie-banner .btn-ghost{background:transparent;color:var(--latte);border:1px solid var(--linea-scura)}
.cookie-banner .btn-ghost:hover{border-color:var(--latte)}
.cookie-banner .btn-glow{background:var(--acciaio);color:var(--notte);border:1px solid var(--acciaio)}
.cookie-banner .btn-glow:hover{background:var(--latte);border-color:var(--latte)}
.cookie-banner button:focus-visible{outline:2px solid var(--acciaio);outline-offset:2px}

.salta{position:fixed;top:-80px;left:1rem;z-index:300;background:var(--acciaio);color:var(--notte);
  font-weight:600;text-decoration:none;padding:.7rem 1.1rem;border-radius:2px;transition:top .2s}
.salta:focus{top:1rem}


/* ============================================================
   15. PAGINE INTERNE
   Tutte le pagine diverse dalla home: chi siamo, trattamenti, le
   cinque schede, certificazioni, contatti, privacy, cookie, 404.
   ============================================================ */

/* --- a) Intestazione: fondo blu notte come l'apertura della home,
   briciole di pane, etichetta, titolo enorme e frase sotto un filo.
   La barra in alto e' trasparente e ci sta sopra: per questo lo
   spazio in alto comprende l'altezza della barra. */
.testata{
  position:relative;overflow:hidden;isolation:isolate;
  background:var(--notte);color:var(--latte);
  padding:calc(var(--altezza-nav) + clamp(56px,10vh,120px)) 0 clamp(56px,8vw,110px);
}
/* Due bagliori di luce, uno freddo in alto a destra e uno piu' tenue
   in basso a sinistra: danno profondita' al fondo, come i riflessi
   sul cromo. Una lama di luce attraversa lentamente l'intestazione. */
.testata::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(ellipse 55% 70% at 88% 8%,rgba(127,178,217,.20),transparent 70%),
    radial-gradient(ellipse 45% 60% at 0% 100%,rgba(127,178,217,.08),transparent 70%);
}
.testata::after{
  content:"";position:absolute;z-index:-1;top:-20%;bottom:-20%;left:-30%;width:22%;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(238,242,245,.05) 45%,rgba(238,242,245,.09) 50%,rgba(238,242,245,.05) 55%,transparent);
  transform:skewX(-16deg);animation:lama 11s var(--curva) infinite;
}
@keyframes lama{0%{left:-30%}55%,100%{left:130%}}

.briciole{
  font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--latte-tenue);margin-bottom:clamp(2rem,5vh,3.4rem);
  display:flex;flex-wrap:wrap;align-items:center;gap:.2em .8em;
}
.briciole a{text-decoration:none;border-bottom:1px solid var(--linea-scura);transition:color .3s,border-color .3s}
.briciole a:hover{color:var(--latte);border-color:var(--acciaio)}
.briciole span{opacity:.5}
.testata .etichetta{color:var(--acciaio)}

/* Il titolo: la misura e' il piu' piccolo fra 6rem e la larghezza
   disponibile divisa per 13, cosi' la parola piu' lunga dei titoli
   ("CERTIFICAZIONI") entra sempre in una riga. */
.testata-titolo{
  font-weight:640;font-stretch:125%;text-transform:uppercase;
  font-size:clamp(1.5rem,(100vw - 2 * var(--margine)) / 13,6rem);
  line-height:.92;letter-spacing:-.015em;max-width:16ch;
}
/* Sotto il titolo delle schede: il sinonimo con cui il trattamento
   viene cercato ("Detta anche anodizzazione") */
.testata-alias{
  margin-top:1.1rem;font-family:var(--mono);font-size:clamp(13px,1.1vw,15px);
  letter-spacing:.08em;text-transform:uppercase;color:var(--acciaio);
}
.testata-sotto{
  margin-top:clamp(2rem,5vh,3.2rem);padding-top:clamp(1.2rem,2.5vh,1.8rem);
  border-top:1px solid var(--linea-scura);
  color:var(--latte-tenue);font-size:clamp(1rem,1.3vw,1.18rem);line-height:1.6;max-width:60ch;
}
.testata .bottoni{margin-top:2.2rem}
/* Pagina 404: solo l'intestazione, alta quasi quanto lo schermo */
.testata-sola{min-height:86svh;display:flex;align-items:flex-end}
.testata-sola .contenitore{width:100%}

/* --- b) Sezioni di contenuto, un po' meno alte di quelle della home */
.sezione-stretta{padding:clamp(70px,9vw,130px) 0}
.chiara.sezione-stretta + .chiara.sezione-stretta{padding-top:0}   /* due sezioni chiare di fila: niente doppio spazio */

/* Titolo + testo affiancati: a sinistra etichetta e titolo, a destra
   il contenuto. Sotto i 1100 pixel vanno uno sotto l'altro. */
.affiancati{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:2rem clamp(3rem,7vw,8rem);align-items:start}
.affiancati > :first-child{position:sticky;top:calc(var(--altezza-nav) + 32px)}
/* Nella colonna stretta il titolo e' piu' piccolo, altrimenti le
   parole lunghe ("STRINGERE") escono dalla colonna. */
.affiancati .titolo-grande{font-size:clamp(1.5rem,min(3.6vw,(100vw - 2 * var(--margine)) / 13.5),3.6rem)}
/* Titolo della storia in chi-siamo: "SPECIALIZZARCI" e' largo circa
   10,5 volte l'altezza delle lettere, piu' di "STRINGERE". Qui il
   titolo misura la propria colonna (container-type) e non supera la
   sua larghezza divisa per 10,8 (100cqi = larghezza della colonna),
   cosi' la parola entra sempre intera. */
.colonna-titolo{container-type:inline-size}
.affiancati .titolo-storia{font-size:clamp(1.5rem,min(3.6vw,(100vw - 2 * var(--margine)) / 13.5,100cqi / 10.8),3.6rem)}
.testata-sezione{margin-bottom:clamp(36px,5vw,64px)}
.testata-sezione .titolo-grande{margin-bottom:0}

/* --- c) Testo lungo: storia, schede, privacy, cookie */
.testo{max-width:68ch;font-size:clamp(1rem,1.15vw,1.08rem);line-height:1.75;color:var(--inchiostro-tenue)}
.testo p,.testo ul{margin-bottom:1.15em}
.testo h3{
  font-weight:640;font-stretch:125%;text-transform:uppercase;letter-spacing:.01em;
  font-size:clamp(1.05rem,1.4vw,1.3rem);line-height:1.2;color:var(--inchiostro);
  margin:2.4em 0 .8em;padding-top:1.1em;border-top:1px solid var(--linea-chiara);
}
.testo h3:first-child{margin-top:0}
.testo strong{color:var(--inchiostro);font-weight:620}
.testo em{font-style:italic}
.testo a{color:var(--acciaio-scuro);text-decoration-thickness:1px;text-underline-offset:3px}
.testo a:hover{color:var(--inchiostro)}
.testo ul li{position:relative;padding-left:1.6em;margin-bottom:.55em}
.testo ul li::before{content:"";position:absolute;left:0;top:.85em;width:.8em;height:1px;background:var(--acciaio-scuro)}
/* La frase d'apertura della storia, piu' grande */
.testo-grande{font-size:clamp(1.25rem,2vw,1.7rem);line-height:1.45;color:var(--inchiostro);letter-spacing:-.01em}

/* --- d) Chi siamo: settori e impegni */
.settori{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--linea-chiara);border-left:1px solid var(--linea-chiara)}
.settore{
  display:flex;flex-direction:column;justify-content:space-between;gap:2.4rem;
  min-height:180px;padding:1.6rem;
  border-right:1px solid var(--linea-chiara);border-bottom:1px solid var(--linea-chiara);
  transition:background .5s var(--curva),color .5s var(--curva);
}
.settore svg{color:var(--acciaio-scuro);transition:color .5s var(--curva)}
.settore span{font-weight:620;font-stretch:118%;text-transform:uppercase;font-size:clamp(1rem,1.3vw,1.2rem);letter-spacing:.01em}
.settore:hover{background:var(--notte);color:var(--latte)}
.settore:hover svg{color:var(--acciaio)}

.impegni{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.impegno{background:var(--notte-2);border:1px solid var(--linea-scura);padding:clamp(24px,2.6vw,36px);
  display:flex;flex-direction:column;gap:1rem;min-height:300px}
.impegno svg{color:var(--acciaio)}
.impegno h3{font-weight:620;font-stretch:118%;text-transform:uppercase;font-size:1.15rem;line-height:1.15;margin-top:auto;color:var(--latte)}
.impegno p{color:var(--latte-tenue);font-size:15px;line-height:1.6}

/* --- e) Elenco dei trattamenti: una riga larga per ciascuno */
.righe-schede{border-top:1px solid var(--linea-chiara)}
.riga-scheda{
  position:relative;overflow:hidden;isolation:isolate;
  display:grid;grid-template-columns:4rem minmax(0,1fr) minmax(0,1.1fr) 3rem;gap:1rem 2rem;align-items:center;
  padding:clamp(1.6rem,3vw,2.6rem) 0;border-bottom:1px solid var(--linea-chiara);
  text-decoration:none;color:var(--inchiostro);transition:padding .5s var(--curva);
}
/* Il fondo scuro che sale da sotto al passaggio del mouse */
.riga-scheda::before{
  content:"";position:absolute;inset:0;z-index:-1;background:var(--notte);
  transform:scaleY(0);transform-origin:bottom;transition:transform .55s var(--curva);
}
.riga-scheda:hover,.riga-scheda:focus-visible{color:var(--latte);padding-left:1.4rem;padding-right:1.4rem;outline:none}
.riga-scheda:hover::before,.riga-scheda:focus-visible::before{transform:scaleY(1)}
.riga-num{font-family:var(--mono);font-size:13px;letter-spacing:.1em;color:var(--acciaio-scuro);transition:color .5s}
.riga-scheda h3{font-weight:620;font-stretch:125%;text-transform:uppercase;font-size:clamp(1.3rem,2.6vw,2.4rem);line-height:1}
.riga-scheda p{color:var(--inchiostro-tenue);font-size:15px;line-height:1.6;transition:color .5s}
.riga-freccia{justify-self:end;width:44px;height:44px;border:1px solid currentColor;border-radius:50%;
  display:flex;align-items:center;justify-content:center;opacity:.6;transition:opacity .4s,background .4s,color .4s}
.riga-freccia::after{content:"";width:8px;height:8px;margin-left:-3px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg)}
.riga-scheda:hover .riga-num,.riga-scheda:focus-visible .riga-num{color:var(--acciaio)}
.riga-scheda:hover p,.riga-scheda:focus-visible p{color:var(--latte-tenue)}
.riga-scheda:hover .riga-freccia,.riga-scheda:focus-visible .riga-freccia{opacity:1;background:var(--acciaio);color:var(--notte);border-color:var(--acciaio)}
.gruppo-schede + .gruppo-schede{margin-top:clamp(64px,8vw,110px)}

/* --- f) Scheda trattamento: i dati tecnici in una tabella */
.scheda-dati{background:var(--bianco);border:1px solid var(--linea-chiara);padding:clamp(22px,2.6vw,36px)}
.scheda-riga{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:.6rem 1.4rem;align-items:center;
  padding:1.1rem 0;border-top:1px solid var(--linea-chiara)}
.scheda-riga:first-child{border-top:0;padding-top:0}
.scheda-voce{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--inchiostro-tenue)}
.scheda-valore{display:flex;flex-wrap:wrap;gap:6px}
/* Le sigle tecniche: norme e materiali */
.sigla{font-family:var(--mono);font-size:12.5px;letter-spacing:.03em;padding:.42em .8em;border-radius:2px;
  background:rgba(31,95,143,.09);color:var(--acciaio-scuro);white-space:nowrap}
.sigla-materiale{background:var(--notte);color:var(--latte)}
.scheda-dati + .bottoni{margin-top:2rem}

/* --- g) Certificazioni: le quattro schede documento */
.documenti{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.documento{display:flex;flex-direction:column;background:var(--bianco);border:1px solid var(--linea-chiara);
  transition:border-color .5s var(--curva),transform .5s var(--curva)}
.documento:hover{border-color:var(--acciaio-scuro);transform:translateY(-4px)}
/* L'anteprima: il documento intero, centrato su un fondo grigio */
.documento-img{height:230px;padding:18px;background:#dde3e9;display:flex;align-items:center;justify-content:center;overflow:hidden}
.documento-img img{max-height:100%;width:auto;object-fit:contain;box-shadow:0 10px 30px rgba(13,17,22,.18);
  transition:transform .8s var(--curva)}
.documento:hover .documento-img img{transform:scale(1.04)}
.documento-corpo{padding:1.4rem;display:flex;flex-direction:column;gap:.8rem;flex:1}
.documento h3{font-weight:620;font-stretch:118%;text-transform:uppercase;font-size:1.1rem;line-height:1.15}
.documento p{color:var(--inchiostro-tenue);font-size:14.5px;line-height:1.6}
.documento-link{
  margin-top:auto;padding-top:1rem;border-top:1px solid var(--linea-chiara);
  display:flex;align-items:center;gap:.8em;text-decoration:none;color:var(--acciaio-scuro);
  font-size:12px;font-weight:600;font-stretch:110%;letter-spacing:.12em;text-transform:uppercase;
}
.documento-link::after{content:"";width:7px;height:7px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;
  transform:rotate(45deg);transition:transform .35s var(--curva)}
.documento-link:hover{color:var(--inchiostro)}
.documento-link:hover::after{transform:translateX(4px) rotate(45deg)}

/* Normative di riferimento: una riga per trattamento */
.norme-tabella{border-top:1px solid var(--linea-chiara)}
.norme-riga{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:.8rem 2rem;align-items:center;
  padding:1.3rem 0;border-bottom:1px solid var(--linea-chiara)}
.norme-riga h3{font-weight:620;font-stretch:118%;text-transform:uppercase;font-size:clamp(1rem,1.4vw,1.25rem)}
.norme-riga h3 a{text-decoration:none;border-bottom:1px solid var(--linea-chiara);transition:color .3s,border-color .3s}
.norme-riga h3 a:hover{color:var(--acciaio-scuro);border-color:var(--acciaio-scuro)}

/* --- h) Contatti: i recapiti a sinistra, la mappa a destra */
.contatti-griglia{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(2rem,5vw,5rem);align-items:stretch}
.recapiti{border-top:1px solid var(--linea-chiara)}
.recapito{padding:1.5rem 0;border-bottom:1px solid var(--linea-chiara)}
.recapito-voce{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--acciaio-scuro);margin-bottom:.5rem}
.recapito-valore{font-weight:560;font-stretch:112%;font-size:clamp(1.1rem,1.8vw,1.55rem);line-height:1.35;color:var(--inchiostro)}
.recapito-valore a{text-decoration:none;border-bottom:1px solid var(--linea-chiara);transition:color .3s,border-color .3s}
.recapito-valore a:hover{color:var(--acciaio-scuro);border-color:var(--acciaio-scuro)}

.mappa-box{position:relative;min-height:460px;background:var(--notte);color:var(--latte);overflow:hidden}
.mappa-box iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.mappa-attesa{position:absolute;inset:0;padding:clamp(28px,4vw,48px);display:flex;flex-direction:column;justify-content:flex-end;gap:1rem;
  background:radial-gradient(ellipse 70% 60% at 80% 10%,rgba(127,178,217,.18),transparent 70%)}
.mappa-attesa svg{color:var(--acciaio);margin-bottom:auto}
.mappa-attesa h3{font-weight:620;font-stretch:125%;text-transform:uppercase;font-size:clamp(1.3rem,2.2vw,1.9rem);line-height:1.05}
.mappa-attesa p{color:var(--latte-tenue);font-size:15px;line-height:1.6;max-width:44ch}
.mappa-attesa .mappa-nota{font-size:13.5px}

/* --- i) Chiusura senza monogramma (pagine interne) */
.chiusura-pagina{padding:clamp(90px,12vw,170px) 0}
.chiusura-pagina .titolo-enorme{max-width:14ch}


/* ============================================================
   16. SCHERMI PICCOLI
   ============================================================ */
/* Il menu diventa "a panino" sotto i 1100 pixel: sopra, logo, quattro
   voci e bottone stanno comodi in una riga. */
@media (max-width:1100px){
  :root{--altezza-nav:72px}
  .barra-logo img{height:52px}
  .menu-btn{display:flex}
  .barra-cta{display:none}
  .barra-link{
    display:none;position:absolute;top:var(--altezza-nav);left:0;right:0;
    flex-direction:column;gap:0;border:0;border-radius:0;padding:.5rem var(--margine) 1.5rem;
    background:rgba(14,16,23,.96);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
    border-bottom:1px solid var(--linea-scura);
  }
  .menu-toggle:checked ~ .barra-link{display:flex}
  .barra-link li{border-top:1px solid var(--linea-scura)}
  .barra-link a{border-radius:0;padding:1.1rem 0;font-size:1.05rem}
  .barra-link a:hover{background:none;color:var(--acciaio)}
  .barra-link-cta{display:block}
  .barra-link-cta a{color:var(--acciaio)}

  .scorri{display:none}
  .numeri{grid-template-columns:repeat(2,1fr)}
  .numero{border-right:0;margin-right:0;border-bottom:1px solid var(--linea-chiara);padding-bottom:1.6rem}
  .sigle{grid-template-columns:repeat(2,1fr)}
  .stab-griglia{grid-template-columns:1fr}
  .piede-griglia{grid-template-columns:1fr}
  .chiusura-griglia{grid-template-columns:1fr}
  .monogramma-3d{justify-self:center;max-width:420px}
  .ciclo-caption{grid-template-columns:1fr;gap:10px}
  .ciclo-rail{justify-content:flex-start}

  /* Pagine interne */
  .barra-link a.attivo{background:none;color:var(--acciaio)}
  .affiancati{grid-template-columns:1fr}
  .affiancati > :first-child{position:static}
  .settori{grid-template-columns:repeat(2,1fr)}
  .impegni{grid-template-columns:repeat(2,1fr)}
  .documenti{grid-template-columns:repeat(2,1fr)}
  .contatti-griglia{grid-template-columns:1fr}
  .riga-scheda{grid-template-columns:3rem minmax(0,1fr) 3rem}
  .riga-scheda p{grid-column:2/3}
  .riga-freccia{grid-column:3;grid-row:1}
}
@media (max-width:820px){
  .ciclo-mini{width:104px;right:12px;top:calc(var(--altezza-nav) + 12px)}
  .ciclo-caption__body{font-size:.94rem}
}
@media (max-width:560px){
  body{font-size:16px}
  .barra-logo span{font-size:11px}
  .barra-logo small{display:none}
  .numero-cifra{font-size:2.8rem}
  .schermo-pieno{height:85svh}
  .pannello{min-height:380px}
  .cookie-banner{flex-direction:column;align-items:stretch;text-align:center}
  .cookie-btns{justify-content:center}

  /* Pagine interne */
  .settori{grid-template-columns:1fr 1fr}
  .settore{min-height:140px;padding:1.1rem}
  .settore span{font-size:.9rem;font-stretch:100%}   /* carattere meno largo: "AEROSPAZIALE" entra nella casella */
  .impegni,.documenti{grid-template-columns:1fr}
  .impegno{min-height:0}
  .riga-scheda{grid-template-columns:minmax(0,1fr) 44px;gap:.6rem 1rem}
  .riga-num{grid-column:1/-1}
  .riga-scheda h3{grid-column:1;grid-row:2}
  .riga-scheda p{grid-column:1/-1}
  .riga-freccia{grid-column:2;grid-row:2}
  .scheda-riga,.norme-riga{grid-template-columns:1fr}
  .mappa-box{min-height:380px}
}


/* ============================================================
   17. CHI HA CHIESTO MENO MOVIMENTO
   Nelle impostazioni del computer o del telefono si puo' chiedere
   di ridurre le animazioni (lo fa chi soffre di vertigini). Qui
   tutto si ferma: niente video, niente comparse, ciclo dell'acqua
   come elenco. animazioni.js, dal canto suo, non parte.
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1!important;transform:none!important}
  .intro-video{display:none}
  .apertura-sfondo{background:url("immagini/intro-logo-fermo.webp") center/cover no-repeat}
  .ciclo-stage{position:static;height:auto}
  .ciclo-track,.ciclo-caption,.ciclo-vignette,.ciclo-mini{display:none}
  .ciclo-frame{height:auto}
  .ciclo-plate{position:relative!important;width:100%!important;height:auto!important;
    left:0!important;top:0!important;transform:none!important;transition:none}
  .ciclo-plate img{height:auto}
  .ciclo-pin{opacity:1!important;transform:none!important}
  .ciclo-pin::before{animation:none}
}
