/* ==========================================================================
   Guerzoni Insulation Materials
   Concept: "Il nastro" — materiale continuo, venduto al metro, avvolto.
   Regola di sistema: nessuna griglia bordata. Le superfici si separano con
   luce, spazio e profondità, non con riquadri da 1px.
   ========================================================================== */

:root{
  /* fondo: non piatto, tre livelli */
  --bg:#0A0C0F;
  --bg-2:#0F1217;
  --raise:#161A20;

  --paper:#EDEFF1;
  --paper-2:#E1E5E8;
  --ink:#0A0C0F;

  --red:#E2404B;
  --red-deep:#C22A36;
  --red-hot:#FF5A45;
  --red-glow:rgba(226,64,75,.18);

  --line-d:rgba(255,255,255,.09);
  --line-l:rgba(10,12,15,.12);
  --dim:rgba(255,255,255,.58);
  --dim-l:rgba(10,12,15,.6);

  --display:"Big Shoulders Display",'Arial Narrow',sans-serif;
  --body:"Instrument Sans",system-ui,sans-serif;
  --mono:"Martian Mono",ui-monospace,monospace;

  --wrap:1320px;
  --pad:clamp(20px,5vw,72px);
  --sec-y:clamp(96px,13vw,208px);
  --hdr-h:78px;

  --r:4px;
  --r-lg:8px;
  --ease:cubic-bezier(.2,.7,.3,1);

  /* la scala termica: freddo → incandescente */
  --heat:linear-gradient(90deg,#2A3138 0%,#39434F 16%,#5C5540 38%,#A2703A 56%,#D4573F 74%,#E2404B 86%,#FF5A45 100%);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:#fff;
  font-family:var(--body);font-size:clamp(15px,1.05vw,17px);line-height:1.65;
  -webkit-font-smoothing:antialiased;overflow-x:clip;
}
img{max-width:100%;display:block}
ul,ol{margin:0;padding:0;list-style:none}
a{color:inherit}
h1,h2,h3{margin:0}
p{margin:0 0 1.1em}
p:last-child{margin-bottom:0}
:focus-visible{outline:2px solid var(--red);outline-offset:4px;border-radius:var(--r)}

.skip{position:absolute;left:-9999px;top:0;z-index:999;background:var(--red);color:#fff;padding:12px 20px;border-radius:var(--r)}
.skip:focus{left:12px;top:12px}

.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad)}
.mono{font-family:var(--mono);font-size:.66rem;letter-spacing:.04em;text-transform:uppercase;font-weight:400}

.grain{
  position:fixed;inset:0;z-index:2;pointer-events:none;opacity:.03;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}
.prog{
  position:fixed;top:0;left:0;z-index:70;height:2px;width:100%;
  background:linear-gradient(90deg,var(--red),var(--red-hot));
  transform:scaleX(0);transform-origin:left;box-shadow:0 0 14px rgba(226,64,75,.5);
}

/* ---------- tipografia ---------- */
.eyebrow{
  font-family:var(--mono);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--red);margin:0 0 clamp(20px,2.4vw,32px);display:flex;align-items:center;gap:13px;
}
.eyebrow::before{content:"";width:32px;height:2px;background:var(--red);flex:none;border-radius:var(--r);transform-origin:left}
.js .eyebrow.rv::before{transform:scaleX(0);transition:transform .8s var(--ease) .1s}
.js .eyebrow.rv.is-in::before{transform:scaleX(1)}
.eyebrow--dark{color:var(--red-deep)}
.eyebrow--dark::before{background:var(--red-deep)}

.h2{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:clamp(2.4rem,5vw,4.6rem);line-height:.9;letter-spacing:.004em;
}
.h2--lead{margin-bottom:clamp(22px,2.6vw,34px)}

.lead{
  font-size:clamp(1.08rem,1.5vw,1.35rem);line-height:1.55;color:var(--dim);
  max-width:60ch;margin:0;
}
.lead strong{color:#fff;font-weight:600}
.lead--dark{color:var(--dim-l)}
.lead--dark strong{color:var(--ink)}

.link{color:#fff;text-decoration:none;border-bottom:1px solid var(--red);padding-bottom:2px;transition:color .2s,border-color .2s}
.link:hover{color:var(--red)}
.link--lg{font-size:1.15rem}

/* ---------- bottoni ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;position:relative;
  isolation:isolate; /* contesto di impilamento proprio */
  background:var(--red);color:#fff;text-decoration:none;border-radius:var(--r);
  font-family:var(--mono);font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  padding:18px 32px;border:0;overflow:hidden;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);
  box-shadow:0 10px 30px -12px rgba(226,64,75,.7);
}
/* z-index:-1 dentro il contesto isolato: il riempimento sta sopra lo sfondo
   ma SOTTO il testo, anche quando il testo è un nodo nudo (senza <span>) */
.btn::before{
  content:"";position:absolute;inset:0;z-index:-1;background:var(--red-deep);
  transform:scaleY(0);transform-origin:bottom;transition:transform .35s var(--ease);
}
.btn:hover{transform:translateY(-3px);box-shadow:0 18px 40px -14px rgba(226,64,75,.85)}
.btn:hover::before{transform:scaleY(1)}
.btn > *{position:relative;z-index:1}
.btn--sm{padding:12px 22px;font-size:.62rem}
.btn--lg{padding:15px 32px;font-size:.78rem}
.btn--dark{background:var(--ink);box-shadow:0 10px 30px -14px rgba(10,12,15,.7)}
.btn--dark::before{background:var(--red)}
.btn--dark:hover{box-shadow:0 18px 40px -16px rgba(10,12,15,.8)}
/* outline: bottone secondario su fondo scuro (bordo, si riempie di rosso al hover) */
.btn--outline{
  background:transparent;border:1px solid var(--line-d);color:#fff;
  box-shadow:none;gap:12px;padding:17px 24px;
}
.btn--outline::before{background:var(--red)}
.btn--outline:hover{border-color:var(--red);box-shadow:0 16px 36px -18px rgba(226,64,75,.7)}
.btn__i{width:17px;height:17px;flex:none;transition:transform .3s var(--ease)}
.btn--outline:hover .btn__i{transform:translateY(2px)}
.btn__tag{
  background:rgba(255,255,255,.16);color:#fff;padding:4px 7px;border-radius:3px;
  font-size:.56rem;letter-spacing:.06em;
}
.btn--outline:hover .btn__tag{background:rgba(255,255,255,.22)}

.ghostlink{
  display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:#fff;
  font-size:1rem;padding:18px 4px;transition:color .25s;
}
.ghostlink::after{
  content:"";width:26px;height:1px;background:currentColor;transition:width .3s var(--ease);
}
.ghostlink:hover{color:var(--red)}
.ghostlink:hover::after{width:40px}

/* ---------- header ---------- */
.hdr{
  position:fixed;inset:0 0 auto;z-index:60;height:var(--hdr-h);
  display:flex;align-items:center;gap:clamp(16px,3vw,48px);padding-inline:var(--pad);
  transition:background .4s,backdrop-filter .4s,box-shadow .4s;
}
.hdr.is-stuck{background:rgba(10,12,15,.72);-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4);box-shadow:0 1px 0 rgba(255,255,255,.06)}
/* sulle sezioni chiare l'header si inverte: una barra scura traslucida
   sopra il pannello chiaro diventa un grigio sporco */
.hdr--light.is-stuck{background:rgba(237,239,241,.8);box-shadow:0 1px 0 rgba(10,12,15,.08)}
.hdr--light .hdr__nav a{color:rgba(10,12,15,.7)}
.hdr--light .hdr__nav a:hover{color:var(--ink)}
.hdr--light .hdr__burger span{background:var(--ink)}
.hdr__logo img{height:32px;width:auto}
.hdr__nav{display:flex;gap:clamp(14px,2vw,32px);margin-left:auto}
.hdr__nav a{text-decoration:none;font-size:.9rem;color:rgba(255,255,255,.75);position:relative;padding-block:6px;transition:color .25s}
.hdr__nav a::after{
  content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--red);
  transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease);
}
.hdr__nav a:hover{color:#fff}
.hdr__nav a:hover::after{transform:scaleX(1)}
.hdr__burger{display:none;margin-left:auto;background:none;border:0;padding:10px;cursor:pointer}
.hdr__burger span{display:block;width:24px;height:2px;background:#fff;border-radius:var(--r);transition:transform .3s}
.hdr__burger span+span{margin-top:6px}
.hdr__burger[aria-expanded="true"] span:first-child{transform:translateY(4px) rotate(45deg)}
.hdr__burger[aria-expanded="true"] span:last-child{transform:translateY(-4px) rotate(-45deg)}

.mnav{
  position:fixed;inset:var(--hdr-h) 0 auto;z-index:55;
  background:rgba(10,12,15,.96);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);
  display:grid;padding:8px var(--pad) 28px;
  clip-path:inset(0 0 100% 0);transition:clip-path .45s var(--ease);
}
.mnav.is-open{clip-path:inset(0 0 0 0)}
.mnav a{
  text-decoration:none;font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:1.9rem;line-height:1.25;padding:10px 0;border-bottom:1px solid var(--line-d);
}
.mnav a:last-child{border-bottom:0;color:var(--red)}

/* ---------- hero ---------- */
.hero{
  position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;
  padding:calc(var(--hdr-h) + 40px) var(--pad) 0;overflow:hidden;
}
/* ampio margine sopra + origine dello scale in alto: il parallasse muove il
   video verso il basso, questi due accorgimenti evitano la banda nera in cima */
.hero__media{position:absolute;inset:-18% 0 -4%;transform-origin:top center;z-index:0;will-change:transform}
.hero__media img,.hero__video{width:100%;height:100%;object-fit:cover;object-position:center 42%}
.hero__media::after{
  content:"";position:absolute;inset:0;
  /* alleggerito: parte alta/centrale più trasparente per far vedere il video,
     angolo basso-sinistra tenuto scuro per la leggibilità del titolo */
  background:
    linear-gradient(180deg,rgba(10,12,15,.74) 0%,rgba(10,12,15,.34) 38%,rgba(10,12,15,.86) 82%,var(--bg) 100%),
    linear-gradient(90deg,rgba(10,12,15,.9) 0%,rgba(10,12,15,.58) 36%,rgba(10,12,15,.06) 82%);
}
/* la luce: un alone caldo dietro il titolo, come il rame che scalda */
.hero__glow{
  position:absolute;left:-10%;bottom:-20%;width:70vw;height:70vw;max-width:900px;max-height:900px;
  z-index:0;pointer-events:none;
  background:radial-gradient(circle,rgba(226,64,75,.22) 0%,rgba(226,64,75,.06) 42%,transparent 68%);
}
.hero__inner{position:relative;z-index:1;max-width:var(--wrap);margin-inline:auto;width:100%;padding-bottom:clamp(48px,7vw,88px);will-change:transform,opacity}
.hero__h{
  font-family:var(--display);font-weight:800;text-transform:uppercase;
  font-size:clamp(2.9rem,6.8vw,6.8rem);line-height:.87;letter-spacing:.004em;
  margin:0 0 clamp(20px,2.2vw,30px);
}
.hero__h .l{display:block;overflow:hidden}
.hero__h .l span{display:block}
.hero__h .l--red{color:var(--red)}
.hero__sub{font-size:clamp(1.02rem,1.35vw,1.24rem);line-height:1.5;color:rgba(255,255,255,.78);max-width:44ch;margin-bottom:clamp(26px,3vw,38px)}
.hero__cta{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(12px,2vw,28px)}
.hero__foot{
  position:relative;z-index:1;max-width:var(--wrap);margin-inline:auto;width:100%;
  display:flex;flex-wrap:wrap;gap:clamp(16px,3vw,44px);
  padding:20px 0;color:rgba(255,255,255,.55);
  border-top:1px solid var(--line-d);
}
.hero__foot span{display:flex;align-items:center;gap:9px}
.hero__foot span::before{content:"";width:5px;height:5px;background:var(--red);border-radius:50%;box-shadow:0 0 8px var(--red)}

/* ---------- nastro ---------- */
.ribbon{background:var(--red);color:#fff;overflow:hidden;padding:13px 0}
.ribbon__track{display:flex;align-items:center;width:max-content;animation:slide 46s linear infinite}
.ribbon:hover .ribbon__track{animation-play-state:paused}
.ribbon__track span{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:clamp(1.05rem,1.7vw,1.5rem);line-height:1;white-space:nowrap;padding-inline:clamp(18px,2vw,32px);
}
.ribbon__track i{width:6px;height:6px;background:#fff;flex:none;transform:rotate(45deg);border-radius:1px}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- sezioni ---------- */
.sec{padding-block:var(--sec-y);position:relative}

/* ---------- numeri: nessun riquadro, solo cifre e aria ---------- */
.sec--nums{padding-block:clamp(72px,9vw,130px);background:linear-gradient(180deg,var(--bg),var(--bg-2) 50%,var(--bg))}
.nums{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(24px,4vw,56px)}
.nums li{position:relative;padding-top:22px}
.nums li::before{content:"";position:absolute;top:0;left:0;width:30px;height:2px;background:var(--red);border-radius:var(--r)}
.nums__n{
  display:block;font-family:var(--display);font-weight:800;line-height:1;
  font-size:clamp(3.4rem,7.5vw,7rem);
  /* line-height 1 + un filo di padding sotto: il glifo ha spazio pieno,
     niente più taglio. Il gradiente resta chiaro fino in fondo. */
  padding-bottom:.06em;
  background:linear-gradient(180deg,#fff 0%,rgba(255,255,255,.82) 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
  margin-bottom:14px;font-variant-numeric:tabular-nums;
}
.nums__l{display:block;font-family:var(--mono);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);line-height:1.6;max-width:22ch}

/* ---------- CHI SIAMO — timeline pinnata a schermo intero ----------
   Un solo palco fisso: sfondi, anno gigante, testi e barra si scambiano
   in dissolvenza mentre la sezione resta agganciata. Il JS aggiunge .era--js
   solo quando GSAP c'è: senza, la sezione diventa tre blocchi impilati. */
.era{position:relative;background:var(--bg)}
.era__stage{
  position:relative;min-height:100svh;overflow:hidden;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:calc(var(--hdr-h) + clamp(28px,5vw,60px)) 0 clamp(40px,6vw,80px);
}

/* sfondi */
.era__bgs{position:absolute;inset:0;z-index:0}
.era__bg{
  position:absolute;inset:0;background-size:cover;background-position:center;
  opacity:0;transform:scale(1.08);transition:opacity 1s var(--ease),transform 6s var(--ease);
}
.era__bg.is-on{opacity:1;transform:scale(1)}
/* la prima immagine resta visibile ma zoomata, in attesa: quando entri nella
   sezione riceve is-on e fa lo zoom-out come le altre (invece di essere già ferma) */
.era--js .era__bg--first{opacity:1}
/* il ritratto dei fratelli è orizzontale: tengo i volti nella parte alta-centrale */
.era__bg--faces{background-position:center 32%}
.era__bgs::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(10,12,15,.82) 0%,rgba(10,12,15,.42) 34%,rgba(10,12,15,.86) 78%,var(--bg) 100%),
    linear-gradient(90deg,rgba(10,12,15,.9) 0%,rgba(10,12,15,.55) 42%,rgba(10,12,15,.2) 100%);
}

/* l'anno gigante che sfuma dietro tutto */
.era__yearwrap{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.era__year{
  position:absolute;right:var(--pad);top:calc(var(--hdr-h) + clamp(24px,5vw,56px));
  font-family:var(--display);font-weight:800;line-height:.8;white-space:nowrap;letter-spacing:-.01em;
  font-size:clamp(3.4rem,8vw,8rem);
  /* solo contorno, in trasparenza: bilancia il titolo senza rubargli la scena */
  color:transparent;-webkit-text-fill-color:transparent;
  -webkit-text-stroke:1.5px rgba(255,255,255,.26);
  opacity:0;transform:translateY(14px);
  transition:opacity .7s var(--ease),transform .9s var(--ease);
}
.era__year.is-on{opacity:1;transform:none}
/* l'epoca "Oggi" con il contorno rosso */
.era__year[data-era="2"]{-webkit-text-stroke:1.5px rgba(255,90,69,.6)}

/* dentro il flex-column, margin-inline:auto di .wrap toglierebbe lo stretch:
   forzo la larghezza piena così la barra e i nodi si distendono per intero */
.era__intro,.era__rail,.era__panels{width:100%}
.era__intro{position:relative;z-index:2;margin-bottom:auto}
.era__intro .h2{max-width:16ch}

/* barra con i tre nodi */
.era__rail{position:relative;z-index:2;margin-bottom:clamp(28px,4vw,48px)}
.era__line{display:block;height:3px;background:var(--line-d);border-radius:var(--r);overflow:hidden;position:relative}
.era__line i{position:absolute;inset:0;transform-origin:left;transform:scaleX(0);background:linear-gradient(90deg,var(--red),var(--red-hot));box-shadow:0 0 18px rgba(226,64,75,.7)}
.era__nodes{display:flex;justify-content:space-between;margin-top:18px}
.era__nodes li{display:flex;align-items:center;gap:13px;color:var(--dim);transition:color .5s}
.era__nodes li:last-child{flex-direction:row-reverse}
.era__nodes li:nth-child(2){position:absolute;left:50%;transform:translateX(-50%)}
.era__dot{width:15px;height:15px;border-radius:50%;background:var(--bg);border:2px solid var(--line-d);transition:background .5s,border-color .5s,box-shadow .5s;flex:none}
/* etichette anno: grandi, in display, ben leggibili */
.era__cap{
  font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:.01em;
  font-size:clamp(1.4rem,2.6vw,2.3rem);line-height:1;
  transition:color .5s var(--ease),text-shadow .5s var(--ease);
}
.era__nodes li.is-on{color:#fff}
.era__nodes li.is-on .era__dot{background:var(--red);border-color:var(--red);box-shadow:0 0 0 6px var(--red-glow),0 0 20px rgba(226,64,75,.7)}
.era__nodes li.is-on .era__cap{color:#fff;text-shadow:0 0 26px rgba(226,64,75,.45)}

/* i testi */
.era__panels{position:relative;z-index:2}
.era__panel{max-width:52ch}
.era__k{display:block;color:var(--red);margin-bottom:16px}
.era__h{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:clamp(1.9rem,3.6vw,3.2rem);line-height:.95;margin-bottom:16px;
}
.era__panel p{color:rgba(255,255,255,.82);font-size:clamp(1.02rem,1.3vw,1.2rem);margin:0}

.era__scroll{
  position:absolute;left:50%;bottom:clamp(14px,2vw,22px);transform:translateX(-50%);
  z-index:2;color:var(--dim);display:flex;align-items:center;gap:8px;
}
.era__scroll::after{content:"";width:1px;height:20px;background:currentColor;animation:scrollpulse 1.8s var(--ease) infinite}
@keyframes scrollpulse{0%,100%{transform:scaleY(.4);opacity:.4}50%{transform:scaleY(1);opacity:1}}

/* modalità JS: i pannelli si sovrappongono per la dissolvenza */
.era--js .era__panels{display:grid}
.era--js .era__panel{grid-area:1/1;opacity:0;transform:translateY(22px);transition:opacity .6s var(--ease),transform .6s var(--ease);pointer-events:none}
.era--js .era__panel.is-on{opacity:1;transform:none;pointer-events:auto}

/* fallback senza JS: tre blocchi leggibili impilati, niente pin */
.era:not(.era--js) .era__stage{display:block;min-height:0;padding-block:var(--sec-y)}
.era:not(.era--js) .era__bg{position:absolute;opacity:0}
.era:not(.era--js) .era__bg.is-on,
.era:not(.era--js) .era__bg--first{opacity:.16}
.era:not(.era--js) .era__yearwrap,
.era:not(.era--js) .era__rail,
.era:not(.era--js) .era__scroll{display:none}
.era:not(.era--js) .era__panel{opacity:1;max-width:60ch;padding-top:clamp(24px,3vw,40px);margin-top:clamp(24px,3vw,40px);border-top:1px solid var(--line-d)}
.era:not(.era--js) .era__intro{margin-bottom:clamp(32px,4vw,56px)}

/* ---------- prodotti: catalogo a bento ---------- */
.cat__head{
  display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
  gap:clamp(24px,5vw,80px);align-items:end;
}
.cat__head .h2{color:var(--ink)}
.cat__intro{color:var(--dim-l);font-size:clamp(1rem,1.2vw,1.15rem);max-width:44ch;margin:0 0 8px}

.cat__grid{
  margin-top:clamp(40px,5vw,72px);
  display:grid;grid-template-columns:repeat(12,1fr);
  grid-auto-rows:clamp(190px,19vw,264px);
  gap:clamp(12px,1.4vw,20px);
}

/* tessera base */
.tile{
  position:relative;overflow:hidden;border-radius:var(--r-lg);
  grid-column:span 3;text-decoration:none;color:#fff;display:block;
  box-shadow:0 2px 4px rgba(10,12,15,.05),0 16px 40px -22px rgba(10,12,15,.3);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease);
}
.tile:hover{transform:translateY(-6px);box-shadow:0 6px 10px rgba(10,12,15,.06),0 30px 64px -24px rgba(10,12,15,.42)}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.tile:hover img{transform:scale(1.06)}
.tile::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(10,12,15,0) 30%,rgba(10,12,15,.28) 55%,rgba(10,12,15,.85) 100%)}
.tile__body{position:absolute;inset:auto 0 0 0;z-index:1;padding:clamp(18px,1.8vw,26px)}
.tile__k{display:block;color:#fff;opacity:.85;margin-bottom:10px}
.tile__h{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:clamp(1.5rem,2vw,2rem);line-height:.98;margin:0;
}
.tile__d{color:rgba(255,255,255,.9);font-size:.98rem;margin:12px 0 0;max-width:38ch}
.tile__spec{display:block;color:rgba(255,255,255,.8);margin-top:12px}
.tile__go{
  position:absolute;top:clamp(16px,1.6vw,22px);right:clamp(16px,1.6vw,22px);z-index:1;
  width:40px;height:40px;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.14);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.25);
  font-size:1.1rem;transition:background .3s,transform .3s var(--ease);
}
.tile:hover .tile__go{background:var(--red);border-color:var(--red);transform:translate(3px,-3px)}

/* la grande tessera-eroe */
.tile--hero{grid-column:span 6;grid-row:span 2}
.tile--hero .tile__h{font-size:clamp(2.2rem,3.6vw,3.4rem)}

/* la fascia CTA scura chiude la griglia a tutta larghezza */
.tile--cta{
  grid-column:span 12;background:var(--ink);color:#fff;
  display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;
  gap:clamp(20px,3vw,56px);padding:clamp(28px,3vw,44px) clamp(28px,3.4vw,52px);box-shadow:none;
}
.tile--cta::after{display:none}
.tile--cta:hover{transform:none}
.tile__count{font-family:var(--display);font-weight:600;text-transform:uppercase;font-size:clamp(1.4rem,2.2vw,2rem);line-height:1;color:#fff;flex:none}
.tile__count b{color:var(--red);font-weight:800;font-size:1.5em}
.tile__ctatext{color:var(--dim);margin:0;flex:1 1 260px;min-width:220px;max-width:52ch}
.tile__acts{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(16px,2vw,28px);flex:none}
.dl--light{color:#fff;border-bottom-color:var(--line-d)}
.dl--light:hover{color:var(--red);border-bottom-color:var(--red)}
.dl--light .dl__tag{background:#fff;color:var(--ink)}
.dl--light:hover .dl__tag{background:var(--red);color:#fff}

.dl{
  display:inline-flex;align-items:center;gap:13px;text-decoration:none;color:var(--ink);
  padding-bottom:6px;border-bottom:1px solid var(--line-l);transition:border-color .25s,color .25s;
}
.dl:hover{border-bottom-color:var(--red-deep);color:var(--red-deep)}
.dl__tag{background:var(--ink);color:#fff;padding:5px 8px;font-size:.56rem;border-radius:var(--r);transition:background .25s}
.dl:hover .dl__tag{background:var(--red-deep)}
.dl__t{font-size:.98rem;font-weight:500}
.dl__i{width:18px;height:18px;flex:none;transition:transform .25s}
.dl:hover .dl__i{transform:translateY(3px)}

/* ---------- lavorazioni: minimal, pannello chiaro ---------- */
.proc__grid{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.92fr);
  gap:clamp(32px,5vw,80px);align-items:center;
}
.proc__text .h2{color:var(--ink);margin-bottom:clamp(20px,2.4vw,30px)}
.proc__text .lead{margin-bottom:clamp(28px,3.4vw,44px)}
/* i quattro passaggi: solo parole, separate da un punto rosso — niente numeri, card, spec */
.proc__flow{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(12px,1.4vw,20px)}
.proc__flow li{
  display:flex;align-items:center;gap:clamp(12px,1.4vw,20px);
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:clamp(1.1rem,1.5vw,1.4rem);line-height:1;color:var(--ink);
}
.proc__flow li:not(:last-child)::after{
  content:"";width:6px;height:6px;border-radius:50%;background:var(--red);flex:none;
}
/* sfondo leggermente diverso dal catalogo, così le due sezioni chiare non si fondono */
.proc.sec--panel{background:#DEE3E7}

/* carosello con autoplay */
.proc__slider{position:relative}
.proc__slides{position:relative;border-radius:var(--r-lg);overflow:hidden;background:var(--paper-2);
  box-shadow:0 24px 60px -30px rgba(10,12,15,.4)}
.proc__slide{
  width:100%;aspect-ratio:5/4;object-fit:cover;display:block;
}
.proc__slide:not(:first-child){position:absolute;inset:0;height:100%}
.proc__slide{opacity:0;transition:opacity .8s var(--ease)}
.proc__slide.is-on{opacity:1}
/* le tre linette */
.proc__dots{display:flex;gap:10px;margin-top:16px}
.proc__dot{
  flex:1;height:4px;padding:0;border:0;cursor:pointer;border-radius:99px;
  background:rgba(10,12,15,.14);overflow:hidden;
}
.proc__dot i{display:block;height:100%;width:100%;border-radius:99px;background:var(--red-deep);
  transform:scaleX(0);transform-origin:left}
.proc__dot.is-on i{transform:scaleX(1);transition:transform var(--proc-dur,4.5s) linear}

/* ---------- classi: la scala termica (firma) ---------- */
.sec--heat{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--bg),var(--bg-2))}
.sec--heat::after{
  content:"";position:absolute;right:-8%;top:38%;width:60vw;height:60vw;max-width:820px;max-height:820px;
  background:radial-gradient(circle,rgba(255,90,69,.16) 0%,rgba(226,64,75,.05) 45%,transparent 70%);
  pointer-events:none;
}
.sec--heat .wrap{position:relative;z-index:1}
.heat{margin-top:clamp(64px,9vw,130px);position:relative}
.heat__bar{
  height:12px;border-radius:99px;background:rgba(255,255,255,.055);
  overflow:hidden;position:relative;
}
.heat__fill{
  display:block;height:100%;width:100%;border-radius:99px;background:var(--heat);
  transform:scaleX(0);transform-origin:left;
  box-shadow:0 0 30px rgba(226,64,75,.4);
}
.heat__marks{position:relative;height:clamp(96px,10vw,140px);margin-top:26px}
.heat__m{
  --off:0px;
  position:absolute;left:var(--x);top:var(--off);transform:translateX(-50%);text-align:center;white-space:nowrap;
}
/* il trattino si allunga se la tacca è sfalsata verso il basso */
.heat__m::before{
  content:"";position:absolute;left:50%;top:calc(-26px - var(--off));width:1px;height:calc(20px + var(--off));
  background:rgba(255,255,255,.22);
}
.heat__c{
  display:block;font-family:var(--display);font-weight:800;line-height:.85;
  font-size:clamp(2.1rem,3.8vw,3.6rem);color:rgba(255,255,255,.3);
  transition:color .6s var(--ease),text-shadow .6s var(--ease);
}
.heat__t{display:block;color:var(--dim);margin-top:8px;font-size:.6rem}
.heat__m.is-ours::before{background:var(--red);box-shadow:0 0 14px var(--red)}
.heat__m.is-ours .heat__c{color:#fff}
.heat.is-lit .heat__m.is-ours .heat__c{text-shadow:0 0 34px rgba(255,90,69,.75)}
.heat__note{margin-top:8px;color:var(--dim);display:flex;align-items:center;gap:10px}
.heat__note::before{content:"";width:26px;height:2px;background:var(--red);border-radius:var(--r)}

/* ---------- perché ---------- */
.why{position:relative;isolation:isolate;--p:0;
  display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:clamp(32px,6vw,96px);align-items:start}
/* alone di fondo: la "temperatura" cresce col progredire dei motivi (--p 0→1) */
.why__aura{
  position:absolute;z-index:-1;pointer-events:none;
  left:-16%;top:50%;width:min(70vw,780px);aspect-ratio:1;
  transform:translateY(-50%) scale(calc(.7 + var(--p) * .45));
  background:radial-gradient(circle,
    rgba(226,64,75,calc(.04 + var(--p) * .18)) 0%,
    rgba(226,64,75,calc(.02 + var(--p) * .07)) 34%,
    rgba(226,64,75,calc(.008 + var(--p) * .03)) 56%, transparent 78%);
  filter:blur(34px);
  transition:transform .5s var(--ease);
}
.why__l{position:sticky;top:calc(var(--hdr-h) + clamp(32px,6vh,80px));align-self:start}
.why__h{margin-bottom:18px;font-size:clamp(2.6rem,5.2vw,4.7rem)}
.why__sub{
  font-family:var(--display);font-weight:500;text-transform:uppercase;
  font-size:clamp(1.15rem,1.7vw,1.6rem);line-height:1.05;color:var(--red);
  margin-bottom:clamp(20px,2.4vw,30px);
}
.why__p{color:var(--dim);font-size:clamp(1rem,1.2vw,1.1rem);max-width:44ch;margin:0}

.why__r{position:relative;--tl:11px}
.why__track{position:absolute;left:var(--tl);top:14px;bottom:14px;width:2px;background:var(--line-d);border-radius:var(--r);overflow:hidden}
.why__track i{display:block;width:100%;height:100%;background:linear-gradient(180deg,var(--red),var(--red-hot));border-radius:var(--r);transform:scaleY(0);transform-origin:top;box-shadow:0 0 16px rgba(226,64,75,.6)}

.why__list{counter-reset:why}
.why__i{position:relative;isolation:isolate;counter-increment:why;padding-left:calc(var(--tl) + 44px);padding-block:clamp(24px,3.4vw,46px)}
.why__i:first-child{padding-top:0}
.why__i:last-child{padding-bottom:0}
/* pallino sul binario */
.why__i::before{
  content:"";position:absolute;left:calc(var(--tl) - 6.5px);top:calc(clamp(24px,3.4vw,46px) + 4px);
  width:15px;height:15px;border-radius:50%;background:var(--bg);border:2px solid var(--line-d);
  transition:background .45s var(--ease),border-color .45s var(--ease),box-shadow .45s var(--ease),transform .45s var(--ease);
}
.why__i:first-child::before{top:4px}
.why__i.is-on::before{background:var(--red);border-color:var(--red);box-shadow:0 0 0 5px var(--red-glow),0 0 16px rgba(226,64,75,.5)}
.why__i.is-current::before{box-shadow:0 0 0 7px var(--red-glow),0 0 28px rgba(226,64,75,.9);transform:scale(1.15)}

.why__t{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:clamp(1.6rem,3.2vw,2.6rem);line-height:.95;margin-bottom:12px;color:#fff;
}
/* numero 01–06 come pastiglia davanti al titolo */
.why__t::before{
  content:counter(why,decimal-leading-zero);
  display:inline-block;vertical-align:middle;margin-right:15px;transform:translateY(-.12em);
  font-family:var(--mono);font-weight:600;font-size:.6rem;letter-spacing:.12em;
  padding:5px 9px;border-radius:99px;border:1px solid var(--line-d);color:var(--dim);
  transition:color .45s var(--ease),border-color .45s var(--ease),background .45s var(--ease);
}
.why__i.is-on .why__t::before{color:#fff;border-color:rgba(255,255,255,.28)}
.why__i.is-current .why__t::before{background:var(--red);border-color:var(--red);color:#fff}
.why__d{color:var(--dim);margin:0;max-width:52ch}

/* ---- rack focus: futuri sfocati e arretrati, corrente a fuoco e avanti ---- */
.js .why__t,.js .why__d{
  transition:color .5s var(--ease),transform .55s var(--ease),filter .55s var(--ease),text-shadow .45s var(--ease);
}
/* futuri (non ancora raggiunti) */
.js .why__i:not(.is-on) .why__t{color:rgba(255,255,255,.24);filter:blur(2.6px);transform:translateX(-8px)}
.js .why__i:not(.is-on) .why__d{color:rgba(255,255,255,.2);filter:blur(2.6px);transform:translateX(-8px)}
/* passati (accesi, nitidi) */
.js .why__i.is-on .why__t{color:#fff;filter:none;transform:none}
.js .why__i.is-on .why__d{color:rgba(255,255,255,.74);filter:none;transform:none}
/* corrente (a fuoco, ingrandito e avanzato) */
.js .why__i.is-current .why__t{transform:translateX(12px) scale(1.04);transform-origin:left center}
.js .why__i.is-current .why__d{transform:translateX(12px);color:#fff}

/* ---------- team: carosello autoscorrevole ---------- */
.teamlane{
  overflow:hidden;margin-top:clamp(44px,5vw,80px);padding-block:6px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
}
.teamlane__track{
  display:flex;gap:clamp(14px,1.5vw,22px);width:max-content;
  animation:slide 64s linear infinite;
}
.teamlane:hover .teamlane__track{animation-play-state:paused}
.tmember{
  position:relative;flex:none;margin:0;overflow:hidden;border-radius:var(--r-lg);
  width:clamp(186px,19vw,248px);background:var(--raise);
  box-shadow:0 18px 40px -26px rgba(0,0,0,.8);
}
.tmember img{
  width:100%;aspect-ratio:3/4;object-fit:cover;display:block;
  filter:grayscale(1) brightness(.82) contrast(1.06);
  transition:filter .55s var(--ease),transform .7s var(--ease);
}
.tmember:hover img{filter:none;transform:scale(1.05)}
.tmember figcaption{
  position:absolute;inset:auto 0 0 0;padding:clamp(14px,1.4vw,18px);
  background:linear-gradient(180deg,transparent,rgba(10,12,15,.92));
}
.tmember__n{display:block;color:#fff;font-weight:600;font-size:1rem;line-height:1.1}
.tmember__r{display:block;color:var(--dim);margin-top:4px}
/* filo rosso sotto ogni scheda, come firma */
.tmember::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:100%;
  background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.tmember:hover::after{transform:scaleX(1)}

/* ---------- qualità ---------- */
.sec--panel{background:var(--paper);color:var(--ink)}
.sec--panel .h2{color:var(--ink)}
.docs{margin-top:clamp(48px,6vw,88px);display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(18px,2.2vw,32px)}
.doc{
  background:#fff;border-radius:var(--r-lg);padding:clamp(28px,3.4vw,48px);
  box-shadow:0 2px 4px rgba(10,12,15,.04),0 16px 44px -22px rgba(10,12,15,.3);
  display:flex;flex-direction:column;
  transition:transform .45s var(--ease),box-shadow .45s var(--ease);
}
.doc:hover{transform:translateY(-6px);box-shadow:0 4px 8px rgba(10,12,15,.05),0 30px 64px -24px rgba(10,12,15,.4)}
/* anteprima del certificato in cima alla scheda */
.doc__img{
  margin-bottom:clamp(22px,2.6vw,34px);border-radius:var(--r);overflow:hidden;
  aspect-ratio:4/3;background:var(--paper-2);border:1px solid var(--line-l);
}
.doc__img img{width:100%;height:100%;object-fit:cover;object-position:top center;
  transition:transform .8s var(--ease)}
.doc:hover .doc__img img{transform:scale(1.03)}
.doc__img--empty{display:flex;align-items:center;justify-content:center;
  background:repeating-linear-gradient(135deg,var(--paper-2) 0 12px,#d7dbdf 12px 24px)}
.doc__img--empty span{color:var(--dim-l);background:var(--paper);padding:8px 14px;border-radius:99px}
.doc__k{display:block;color:var(--red-deep);margin-bottom:14px}
.doc__h{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:clamp(1.7rem,2.8vw,2.4rem);line-height:.96;margin-bottom:14px;
}
.doc__d{color:var(--dim-l);font-size:.98rem;margin:0 0 28px}
.doc .dl{align-self:flex-start;margin-top:auto}

/* ---------- partner: corsia continua ---------- */
.sec--partner{padding-bottom:clamp(72px,9vw,130px)}
.lane{overflow:hidden;margin-block:clamp(48px,6vw,88px);padding-block:8px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
}
.lane__track{display:flex;align-items:center;gap:clamp(36px,5vw,88px);width:max-content;animation:slide 52s linear infinite}
.lane:hover .lane__track{animation-play-state:paused}
.lane__track span{
  font-family:var(--display);font-weight:700;text-transform:uppercase;white-space:nowrap;
  font-size:clamp(1.5rem,2.8vw,2.6rem);line-height:1;color:rgba(255,255,255,.34);
  transition:color .3s;
}
.lane__track span:hover{color:#fff}
/* loghi reali su targhette bianche che scorrono sul fondo scuro */
.plane{
  overflow:hidden;margin-block:clamp(44px,6vw,88px);padding-block:6px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
}
.plane__track{display:flex;align-items:center;gap:clamp(14px,1.5vw,22px);width:max-content;animation:slide 44s linear infinite}
.plane:hover .plane__track{animation-play-state:paused}
.plogo{
  flex:none;background:#fff;border-radius:var(--r-lg);
  height:clamp(64px,7vw,86px);padding:0 clamp(22px,2.4vw,36px);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 16px 40px -26px rgba(0,0,0,.9);
}
.plogo img{height:clamp(22px,2.4vw,30px);width:auto;object-fit:contain;display:block}
.pt__foot{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,4vw,60px);align-items:start}
.pt__blk .eyebrow{margin-bottom:14px}
.pt__nm{font-size:1.05rem;color:rgba(255,255,255,.88);margin:0;line-height:1.5}
/* targhe bianche per i due sigilli (dark-on-white → servono su fondo scuro) */
.pt__logo{
  background:#fff;border-radius:var(--r-lg);padding:clamp(16px,1.8vw,22px);
  height:clamp(96px,10vw,120px);display:flex;align-items:center;justify-content:center;
}
.pt__logo img{max-height:100%;max-width:min(240px,100%);width:auto;object-fit:contain}

/* ---------- cta ---------- */
.cta{
  background:linear-gradient(150deg,var(--red) 0%,var(--red-deep) 62%,#9C1F2B 100%);
  padding-block:clamp(96px,12vw,180px);text-align:center;position:relative;overflow:hidden;
}
.cta::before{
  content:"";position:absolute;left:50%;top:-30%;width:80vw;height:80vw;max-width:1000px;max-height:1000px;
  transform:translateX(-50%);pointer-events:none;
  background:radial-gradient(circle,rgba(255,140,110,.3) 0%,transparent 62%);
}
.cta .wrap{position:relative;z-index:1}
.cta__h{
  font-family:var(--display);font-weight:800;text-transform:uppercase;
  font-size:clamp(3rem,8.6vw,7.6rem);line-height:.86;margin-bottom:clamp(18px,2vw,28px);
}
.cta__h .l{display:block;overflow:hidden}
.cta__h .l span{display:block}
.cta__d{font-size:clamp(1.05rem,1.5vw,1.3rem);color:rgba(255,255,255,.92);max-width:54ch;margin-inline:auto;margin-bottom:clamp(32px,4vw,52px)}
.cta__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(14px,2.4vw,30px)}
.cta .btn--lg{background:#fff;color:var(--ink);box-shadow:0 16px 44px -18px rgba(0,0,0,.6)}
.cta .btn--lg::before{background:var(--ink)}
.cta .btn--lg:hover{color:#fff}
.cta__or{color:rgba(255,255,255,.75)}
.cta .link{border-bottom-color:rgba(255,255,255,.55)}
.cta .link:hover{color:var(--ink);border-bottom-color:var(--ink)}

/* ---------- footer ---------- */
.ftr{background:var(--bg);padding-block:clamp(64px,8vw,110px) 44px;border-top:1px solid var(--line-d)}
.ftr__grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:clamp(28px,4vw,56px)}
.ftr__brand img{height:38px;width:auto;margin-bottom:22px}
.ftr__brand p{color:var(--dim);margin-bottom:.5em}
.ftr__h{color:var(--red);margin-bottom:16px;letter-spacing:.14em}
.ftr__col p{color:rgba(255,255,255,.76);font-size:.96rem;line-height:1.75}
.ftr__col a{text-decoration:none;transition:color .2s}
.ftr__col a:hover{color:var(--red)}

/* ---------- contatore metri ---------- */
.meter{
  position:fixed;right:18px;bottom:18px;z-index:40;
  font-family:var(--mono);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.5);background:rgba(10,12,15,.6);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border:1px solid var(--line-d);padding:9px 13px;border-radius:99px;
  opacity:0;transform:translateY(8px);transition:opacity .5s,transform .5s;pointer-events:none;
}
.meter.is-on{opacity:1;transform:none}
.meter span{color:var(--red);font-weight:600}

/* ---------- reveal ---------- */
@media (prefers-reduced-motion:no-preference){
  .js .rv{opacity:0;transform:translateY(30px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
  .js .rv.is-in{opacity:1;transform:none}
  .js .hero__h .l span,.js .cta__h .l span{transform:translateY(105%);animation:rise 1s var(--ease) forwards}
  .js .hero__h .l:nth-child(2) span{animation-delay:.1s}
  .js .hero__h .l:nth-child(3) span{animation-delay:.2s}
  .js .cta__h .l span{animation-play-state:paused}
  .js .cta__h.is-in .l span{animation-play-state:running}
  .js .cta__h.is-in .l:nth-child(2) span{animation-delay:.12s}
  @keyframes rise{to{transform:translateY(0)}}
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width:1180px){
  .tmember{width:clamp(170px,44vw,220px)}
  .ftr__grid{grid-template-columns:1fr 1fr}
}

@media (max-width:900px){
  :root{--hdr-h:64px}
  .hdr__nav,.hdr .btn--sm{display:none}
  .hdr__burger{display:block}
  .hdr__logo img{height:28px}

  .nums{grid-template-columns:repeat(2,1fr)}
  .era__year{font-size:clamp(2.8rem,12vw,5rem)}
  .era__cap{font-size:clamp(1.15rem,4.6vw,1.7rem)}
  /* Lavorazioni: testo sopra, immagine sotto */
  .proc__grid{grid-template-columns:1fr;gap:clamp(28px,5vw,40px)}
  .docs{grid-template-columns:1fr}
  .why{grid-template-columns:1fr;gap:clamp(32px,7vw,56px)}
  .why__l{position:static}
  .why__i{padding-left:calc(var(--tl) + 30px)}
  .pt__foot{grid-template-columns:1fr;gap:28px}
  .meter{display:none}

  /* catalogo: la griglia bento si semplifica a due colonne */
  .cat__head{grid-template-columns:1fr;gap:16px}
  .cat__grid{grid-auto-rows:clamp(160px,40vw,220px);gap:12px}
  .tile{grid-column:span 6}
  .tile--hero{grid-column:span 12;grid-row:span 2}
  .tile--cta{grid-column:span 12;grid-row:auto;min-height:clamp(220px,44vw,280px)}
}

@media (max-width:520px){
  .cat__grid{grid-template-columns:1fr;grid-auto-rows:clamp(200px,58vw,260px)}
  .tile,.tile--hero,.tile--cta{grid-column:span 1}
  .tile--hero{grid-row:span 1}
  .tile--hero .tile__h{font-size:clamp(2rem,8vw,2.6rem)}
}

/* ---- CHI SIAMO pinnata anche su mobile: tutto deve stare in una schermata,
   quindi comprimo titoli, spazi e anno gigante ---- */
@media (max-width:740px){
  .era__stage{padding:calc(var(--hdr-h) + 20px) 0 clamp(28px,6vh,44px)}
  .era__intro{margin-bottom:clamp(20px,4vh,40px)}
  .era__intro .h2{font-size:clamp(1.9rem,7vw,2.6rem)}
  /* anno piccolo in alto a destra, all'altezza del titolo */
  .era__year{font-size:clamp(2.6rem,13vw,4.2rem)}
  .era__rail{margin-bottom:clamp(20px,3.5vh,34px)}
  .era__nodes{margin-top:11px}
  .era__k{margin-bottom:10px}
  .era__h{font-size:clamp(1.55rem,6vw,2.1rem);margin-bottom:10px}
  .era__panel p{font-size:1rem;line-height:1.5}
  .era__scroll{display:none}
}

@media (max-width:620px){
  .nums{grid-template-columns:1fr;gap:32px}
  .tmember{width:clamp(160px,64vw,220px)}
  .hero__foot{gap:8px;flex-direction:column}
  .ftr__grid{grid-template-columns:1fr}
  .cta__row{flex-direction:column}
  .cta__row .btn--lg{width:100%}
  /* A/E/B stanno in 25% di barra: senza sfalsare, E e B si sovrappongono */
  .heat__marks{height:190px}
  .heat__m:nth-child(3){--off:64px}
  .heat__c{font-size:1.7rem}
  .heat__t{font-size:.5rem}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  html{scroll-behavior:auto}
  .prog{display:none}
  .hero__h .l span,.cta__h .l span{transform:none}
}

/* ==========================================================================
   PAGINE INTERNE (sottopagine)
   ========================================================================== */
.phero{position:relative;padding:calc(var(--hdr-h) + clamp(46px,8vw,104px)) 0 clamp(44px,6vw,84px);
  border-bottom:1px solid var(--line-d);overflow:hidden;background:linear-gradient(180deg,var(--bg),var(--bg-2))}
.phero .wrap{position:relative;z-index:1}
.phero h1{font-family:var(--display);font-weight:800;text-transform:uppercase;
  font-size:clamp(2.5rem,6.4vw,5rem);line-height:.9;letter-spacing:.004em;margin:0;text-wrap:balance}
.phero .lead{margin-top:clamp(18px,2.2vw,28px)}
.phero--img .wrap{padding-block:clamp(20px,4vw,48px)}
.phero__bg{position:absolute;inset:0;z-index:0}
.phero__bg img{width:100%;height:100%;object-fit:cover}
.phero__bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(10,12,15,.84),rgba(10,12,15,.55) 42%,rgba(10,12,15,.94)),
    linear-gradient(90deg,rgba(10,12,15,.92),rgba(10,12,15,.35))}

.crumb{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-family:var(--mono);font-size:.6rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-bottom:clamp(16px,2vw,24px)}
.crumb a{color:var(--dim);text-decoration:none}
.crumb a:hover{color:var(--red)}
.crumb i{font-style:normal;color:rgba(255,255,255,.3)}
.crumb b{color:var(--red);font-weight:400}

.psec{padding-block:clamp(56px,8vw,120px)}
.psec--tight{padding-block:clamp(44px,6vw,84px)}

.rich{max-width:72ch;font-size:clamp(1rem,1.15vw,1.1rem);color:var(--dim)}
.rich h2{font-family:var(--display);font-weight:700;text-transform:uppercase;color:#fff;
  font-size:clamp(1.5rem,2.6vw,2.2rem);line-height:1;margin:clamp(34px,4vw,52px) 0 14px}
.rich h2:first-child{margin-top:0}
.rich h3{color:#fff;font-size:1.12rem;margin:26px 0 6px}
.rich p{margin:0 0 1.1em}.rich p:last-child{margin-bottom:0}
.rich strong{color:#fff;font-weight:600}
.rich ul{margin:0 0 1.2em;padding:0;list-style:none}
.rich li{position:relative;padding-left:22px;margin:.45em 0}
.rich li::before{content:"";position:absolute;left:0;top:.6em;width:7px;height:7px;border-radius:50%;background:var(--red)}

.psplit{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(32px,5vw,80px);align-items:start}

.ctab{margin-top:clamp(40px,5vw,60px);border-top:1px solid var(--line-d)}
.ctab__row{display:grid;grid-template-columns:minmax(110px,.34fr) minmax(0,1fr);gap:clamp(18px,4vw,56px);
  padding:clamp(18px,2.2vw,28px) 4px;border-bottom:1px solid var(--line-d);align-items:baseline;transition:background .3s}
.ctab__row:hover{background:var(--raise)}
.ctab__row.is-ours{background:rgba(226,64,75,.07)}
.ctab__cls{font-family:var(--display);font-weight:800;line-height:.85;font-size:clamp(1.7rem,3.2vw,2.7rem);color:#fff}
.ctab__row.is-ours .ctab__cls{color:var(--red)}
.ctab__temp{display:block;font-family:var(--mono);font-size:.62rem;letter-spacing:.06em;color:var(--dim);margin-top:7px}
.ctab__mats{display:flex;flex-wrap:wrap;gap:8px}
.ctab__mats span{border:1px solid var(--line-d);border-radius:99px;padding:6px 13px;font-size:.88rem;color:rgba(255,255,255,.84)}

.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(238px,1fr));gap:clamp(14px,1.8vw,24px);margin-top:clamp(40px,5vw,68px)}
.pcell{position:relative;display:flex;flex-direction:column;background:var(--raise);border-radius:var(--r-lg);overflow:hidden;
  text-decoration:none;color:#fff;border:1px solid var(--line-d);transition:transform .4s var(--ease),border-color .3s,box-shadow .4s}
.pcell:hover{transform:translateY(-6px);border-color:rgba(255,255,255,.2);box-shadow:0 26px 56px -30px rgba(0,0,0,.8)}
.pcell__media{aspect-ratio:4/3;overflow:hidden;background:var(--bg-2)}
.pcell__media img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.pcell:hover .pcell__media img{transform:scale(1.05)}
.pcell__b{padding:clamp(16px,1.8vw,22px);display:flex;flex-direction:column;gap:7px;flex:1}
.pcell__h{font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:clamp(1.15rem,1.7vw,1.45rem);line-height:1}
.pcell__d{color:var(--dim);font-size:.92rem;margin:0}
.pcell__go{margin-top:auto;color:var(--red);font-family:var(--mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;padding-top:8px}

.nart{margin-top:clamp(40px,5vw,68px);border-top:1px solid var(--line-d)}
.nart__i{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:clamp(16px,3vw,40px);align-items:center;
  padding:clamp(22px,2.6vw,34px) 4px;border-bottom:1px solid var(--line-d);text-decoration:none;color:#fff;transition:background .3s}
.nart__i:hover{background:var(--raise)}
.nart__date{font-family:var(--mono);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--red);white-space:nowrap}
.nart__wrap{min-width:0}
.nart__t{font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:clamp(1.25rem,2.3vw,1.95rem);line-height:1.02;margin:0}
.nart__ex{color:var(--dim);font-size:.92rem;margin:6px 0 0;max-width:70ch}
.nart__go{color:var(--dim);font-size:1.3rem}

.cgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:start;margin-top:clamp(40px,5vw,60px)}
.cblock{margin-bottom:clamp(26px,3vw,38px)}
.cblock h3{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--red);margin:0 0 10px}
.cblock p{color:rgba(255,255,255,.86);line-height:1.7;margin:0}
.cblock a{color:rgba(255,255,255,.86);text-decoration:none}
.cblock a:hover{color:var(--red)}
.cform{display:grid;gap:14px;background:var(--raise);border:1px solid var(--line-d);border-radius:var(--r-lg);padding:clamp(22px,3vw,38px)}
.cform label{display:grid;gap:6px;font-family:var(--mono);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--dim)}
.cform input,.cform textarea{font:inherit;background:var(--bg);border:1px solid var(--line-d);border-radius:var(--r);color:#fff;padding:12px 14px;width:100%}
.cform input:focus,.cform textarea:focus{outline:2px solid var(--red);outline-offset:1px;border-color:var(--red)}
.cform textarea{min-height:130px;resize:vertical}
.cform__consent{display:flex;align-items:center;gap:10px;text-transform:none;letter-spacing:0;font-size:.84rem;color:var(--dim);font-family:var(--body)}
.cform__consent input{width:auto}

.fam{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:center}
.fam__media{border-radius:var(--r-lg);overflow:hidden;background:var(--raise);box-shadow:0 30px 70px -34px rgba(0,0,0,.8)}
.fam__media img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}

@media (max-width:860px){
  .psplit,.cgrid,.fam{grid-template-columns:1fr;gap:clamp(28px,6vw,44px)}
  .ctab__row{grid-template-columns:1fr;gap:12px}
  .nart__i{grid-template-columns:1fr;gap:6px}
  .nart__go{display:none}
}

/* team page: griglia completa */
.tteam{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:clamp(12px,1.6vw,22px);margin-top:clamp(40px,5vw,68px)}
.tperson__ph{aspect-ratio:3/4;border-radius:var(--r-lg);overflow:hidden;background:var(--raise);border:1px solid var(--line-d)}
.tperson__ph img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) brightness(.85) contrast(1.05);transition:filter .55s var(--ease),transform .55s var(--ease)}
.tperson:hover .tperson__ph img{filter:none;transform:scale(1.04)}
.tperson__mono{width:100%;height:100%;display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:clamp(2.4rem,4vw,3.2rem);color:rgba(255,255,255,.22);background:radial-gradient(circle at 50% 34%,var(--raise),var(--bg-2))}
.tperson__n{display:block;margin-top:13px;font-weight:600;line-height:1.15}
.tperson__r{display:block;color:var(--dim);margin-top:2px;font-size:.9rem}
.tgroup{margin-top:clamp(48px,6vw,80px)}
.tgroup__h{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin:0 0 4px;display:flex;align-items:center;gap:12px}
.tgroup__h::before{content:"";width:26px;height:2px;background:var(--red);border-radius:2px}

/* ==========================================================================
   PAGINE INTERNE — componenti "da home"
   Stessa grammatica dell'home page: fascia mono sotto il titolo, elenchi
   tecnici numerati, schede, navigazione fra famiglie.
   ========================================================================== */

/* ---------- hero interno: più aria, chiusura con la fascia mono ---------- */
.phero{padding-block:calc(var(--hdr-h) + clamp(64px,10vw,140px)) clamp(56px,7vw,96px)}
.phero h1{max-width:16ch}
.phero .lead{max-width:56ch}

/* la fascia di specifiche sotto al titolo, come .hero__foot */
.phero__foot{
  display:flex;flex-wrap:wrap;gap:clamp(16px,2.4vw,38px);
  margin-top:clamp(30px,3.6vw,48px);padding-top:clamp(22px,2.4vw,30px);
  border-top:1px solid var(--line-d);
}
.phero__foot span{display:flex;align-items:center;gap:9px;color:var(--dim)}
.phero__foot span::before{content:"";width:5px;height:5px;background:var(--red);border-radius:50%;box-shadow:0 0 8px var(--red);flex:none}

/* ---------- intestazione di sezione riusabile ---------- */
.shead{max-width:64ch;margin-bottom:clamp(40px,5vw,72px)}
.shead .h2{margin-bottom:clamp(18px,2.2vw,28px)}
.shead--wide{max-width:none;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
  gap:clamp(24px,5vw,80px);align-items:end}
.shead--wide .lead{margin-bottom:6px}

/* ---------- elenco tecnico numerato (la gamma di ogni famiglia) ---------- */
.slist{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:0 clamp(28px,4vw,64px)}
.slist li{
  position:relative;padding:clamp(20px,2.2vw,26px) 0 clamp(20px,2.2vw,26px) 52px;
  border-top:1px solid var(--line-d);transition:padding-left .35s var(--ease);
}
.slist li:hover{padding-left:60px}
.slist__n{
  position:absolute;left:0;top:calc(clamp(20px,2.2vw,26px) + 4px);
  font-family:var(--mono);font-size:.62rem;letter-spacing:.06em;color:var(--red);
}
.slist__t{
  display:block;font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:clamp(1.3rem,2vw,1.75rem);line-height:1;color:#fff;
}
.slist__d{display:block;color:var(--dim);font-size:.94rem;margin-top:7px;max-width:44ch}
.sec--panel .slist li{border-color:var(--line-l)}
.sec--panel .slist__t{color:var(--ink)}
.sec--panel .slist__d{color:var(--dim-l)}
.sec--panel .slist__n{color:var(--red-deep)}

/* ---------- schede (vantaggi, servizi) ---------- */
.bcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(268px,1fr));gap:clamp(14px,1.8vw,24px)}
.bcard{
  position:relative;overflow:hidden;background:var(--raise);border:1px solid var(--line-d);
  border-radius:var(--r-lg);padding:clamp(26px,3vw,40px);
  transition:transform .45s var(--ease),border-color .35s,box-shadow .45s var(--ease);
}
.bcard::before{
  content:"";position:absolute;left:0;top:0;width:100%;height:2px;background:var(--red);
  transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease);
}
.bcard:hover{transform:translateY(-6px);border-color:rgba(255,255,255,.2);box-shadow:0 30px 64px -34px rgba(0,0,0,.85)}
.bcard:hover::before{transform:scaleX(1)}
.bcard__k{display:block;color:var(--red);margin-bottom:16px}
.bcard__t{font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:clamp(1.4rem,2.2vw,1.9rem);line-height:.98;margin:0 0 10px}
.bcard__d{color:var(--dim);font-size:.96rem;margin:0}
.sec--panel .bcard{background:#fff;border-color:var(--line-l);box-shadow:0 2px 4px rgba(10,12,15,.04),0 16px 40px -24px rgba(10,12,15,.28)}
.sec--panel .bcard__t{color:var(--ink)}
.sec--panel .bcard__d{color:var(--dim-l)}
.sec--panel .bcard__k{color:var(--red-deep)}

/* larghezze extra per il bento del catalogo completo */
.tile--4{grid-column:span 4}
.tile--6{grid-column:span 6}
@media (max-width:900px){
  .tile--4,.tile--6{grid-column:span 6}
}
/* deve venire dopo la regola a 900px: a schermo stretto la griglia è a 1 colonna */
@media (max-width:520px){
  .tile--4,.tile--6{grid-column:span 1}
}

/* ---------- navigazione fra le famiglie di prodotto ---------- */
.fnav{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:clamp(8px,1vw,12px)}
.fnav a{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:18px 22px;background:var(--raise);border:1px solid var(--line-d);border-radius:var(--r);
  text-decoration:none;color:#fff;font-weight:500;line-height:1.25;
  transition:background .3s,border-color .3s,transform .3s var(--ease);
}
.fnav a::after{content:"→";color:var(--red);transition:transform .3s var(--ease),color .3s}
.fnav a:hover{background:var(--red);border-color:var(--red);transform:translateY(-3px)}
.fnav a:hover::after{color:#fff;transform:translateX(4px)}
.fnav a[aria-current]{border-color:var(--red);background:rgba(226,64,75,.12)}

/* ---------- news: schede più presenti ---------- */
.nart__i{align-items:start}
.nart__t{transition:color .3s}
.nart__i:hover .nart__t{color:var(--red)}
.nart__go{transition:transform .3s var(--ease),color .3s}
.nart__i:hover .nart__go{color:var(--red);transform:translateX(5px)}

/* ---------- contatti: la mappa e il blocco orari ---------- */
.cmap{margin-top:clamp(40px,5vw,68px);border-radius:var(--r-lg);overflow:hidden;
  border:1px solid var(--line-d);background:var(--raise);filter:grayscale(1) contrast(1.05) brightness(.85);
  transition:filter .6s var(--ease)}
.cmap:hover{filter:none}
.cmap iframe{display:block;width:100%;height:clamp(300px,38vw,440px);border:0}

@media (max-width:860px){
  .shead--wide{grid-template-columns:1fr;gap:clamp(20px,4vw,32px);align-items:start}
  .slist{grid-template-columns:1fr}
}

/* GEN-1:1 */
.rich--wide{max-width:80ch}
.rich--wide h2{font-size:clamp(1.35rem,2.2vw,1.9rem)}
.kgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:clamp(12px,1.6vw,20px);margin-top:clamp(28px,3.4vw,44px)}
.kcard{display:flex;flex-direction:column;gap:14px;justify-content:space-between;min-height:150px;padding:clamp(20px,2.2vw,28px);
  background:#fff;border:1px solid var(--line-l);border-radius:var(--r-lg);text-decoration:none;color:var(--ink);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .3s}
.kcard:hover{transform:translateY(-5px);border-color:var(--red);box-shadow:0 26px 56px -30px rgba(10,12,15,.45)}
.kcard__t{font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:clamp(1.3rem,1.9vw,1.7rem);line-height:.98}
.kcard__go{color:var(--red-deep)}
.tchips{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.tchips span{font-family:var(--mono);font-size:.78rem;letter-spacing:.04em;padding:10px 14px;border:1px solid var(--line-l);border-radius:var(--r);background:#fff;color:var(--ink)}
.faq{display:grid;gap:10px;margin-top:clamp(28px,3vw,40px)}
.faq__i{background:#fff;border:1px solid var(--line-l);border-radius:var(--r-lg);color:var(--ink);padding:0 clamp(18px,2vw,26px)}
.faq__i summary{cursor:pointer;list-style:none;font-weight:600;padding:clamp(16px,1.8vw,22px) 0;display:flex;justify-content:space-between;gap:16px;align-items:center}
.faq__i summary::-webkit-details-marker{display:none}
.faq__i summary::after{content:"+";color:var(--red-deep);font-family:var(--display);font-size:1.6rem;line-height:1;flex:none;transition:transform .3s}
.faq__i[open] summary::after{transform:rotate(45deg)}
.faq__i p{color:var(--dim-l);margin:0 0 clamp(16px,1.8vw,22px)}
.bcards--col{grid-template-columns:1fr}
.bcard__t--sm{font-size:clamp(1.15rem,1.6vw,1.4rem);margin:0}
.sec--panel .rich h2,.sec--panel .rich h3,.sec--panel .rich strong{color:var(--ink)}
.sec--panel .rich{color:var(--dim-l)}
.docs--list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin-top:clamp(24px,3vw,36px)}
.docs--list .doc{padding:0}
.docs--list .dl{display:flex;align-items:center;gap:12px;padding:16px 18px;background:#fff;border:1px solid var(--line-l);border-radius:var(--r);text-decoration:none;color:var(--ink)}
.sec--heat .ctab{margin-top:0}

/* GEN-IMG */
.fam--top{align-items:start}
.pimg{margin:0;border-radius:var(--r-lg);overflow:hidden;background:var(--raise);aspect-ratio:4/5;box-shadow:0 30px 70px -34px rgba(0,0,0,.8)}
.pimg img{width:100%;height:100%;object-fit:cover;display:block}
.kcard{padding:0;overflow:hidden}
.kcard__img{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--paper-2)}
.kcard__img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s var(--ease)}
.kcard:hover .kcard__img img{transform:scale(1.05)}
.kcard__t,.kcard__go{padding-inline:clamp(18px,2vw,24px)}
.kcard__t{padding-top:clamp(16px,1.8vw,22px)}
.kcard__go{padding-bottom:clamp(16px,1.8vw,22px)}
.rich--wide{max-width:80ch}
.rich--wide h2{font-size:clamp(1.35rem,2.2vw,1.9rem)}
.kgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:clamp(12px,1.6vw,20px);margin-top:clamp(28px,3.4vw,44px)}
.kcard{display:flex;flex-direction:column;gap:14px;justify-content:space-between;min-height:150px;padding:clamp(20px,2.2vw,28px);
  background:#fff;border:1px solid var(--line-l);border-radius:var(--r-lg);text-decoration:none;color:var(--ink);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .3s}
.kcard:hover{transform:translateY(-5px);border-color:var(--red);box-shadow:0 26px 56px -30px rgba(10,12,15,.45)}
.kcard__t{font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:clamp(1.3rem,1.9vw,1.7rem);line-height:.98}
.kcard__go{color:var(--red-deep)}
.tchips{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.tchips span{font-family:var(--mono);font-size:.78rem;letter-spacing:.04em;padding:10px 14px;border:1px solid var(--line-l);border-radius:var(--r);background:#fff;color:var(--ink)}
.faq{display:grid;gap:10px;margin-top:clamp(28px,3vw,40px)}
.faq__i{background:#fff;border:1px solid var(--line-l);border-radius:var(--r-lg);color:var(--ink);padding:0 clamp(18px,2vw,26px)}
.faq__i summary{cursor:pointer;list-style:none;font-weight:600;padding:clamp(16px,1.8vw,22px) 0;display:flex;justify-content:space-between;gap:16px;align-items:center}
.faq__i summary::-webkit-details-marker{display:none}
.faq__i summary::after{content:"+";color:var(--red-deep);font-family:var(--display);font-size:1.6rem;line-height:1;flex:none;transition:transform .3s}
.faq__i[open] summary::after{transform:rotate(45deg)}
.faq__i p{color:var(--dim-l);margin:0 0 clamp(16px,1.8vw,22px)}
.bcards--col{grid-template-columns:1fr}
.bcard__t--sm{font-size:clamp(1.15rem,1.6vw,1.4rem);margin:0}
.sec--panel .rich h2,.sec--panel .rich h3,.sec--panel .rich strong{color:var(--ink)}
.sec--panel .rich{color:var(--dim-l)}
.docs--list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin-top:clamp(24px,3vw,36px)}
.docs--list .doc{padding:0}
.docs--list .dl{display:flex;align-items:center;gap:12px;padding:16px 18px;background:#fff;border:1px solid var(--line-l);border-radius:var(--r);text-decoration:none;color:var(--ink)}
.sec--heat .ctab{margin-top:0}

/* GEN-HDR — header v2: mega menu + menu mobile a schermo intero (solo .hdr--v2 / .mnav--v2) */
.hdr--v2{gap:clamp(14px,2.4vw,40px)}
.hdr--v2 .hdr__logo img{transition:height .35s var(--ease)}
.hdr--v2.is-stuck .hdr__logo img{height:27px}
.hdr__tel{margin-left:auto;color:rgba(255,255,255,.62);text-decoration:none;white-space:nowrap;transition:color .25s}
.hdr__tel:hover{color:#fff}
.hdr--light .hdr__tel{color:rgba(10,12,15,.6)}
.hdr__nav--v2{margin-left:auto;position:relative;align-items:center;height:100%}
.hdr__nav--v2 a{padding-block:0;height:100%;display:inline-flex;align-items:center}
.hdr__nav--v2 a::after{display:none}
.hdr__nav--v2 a.has-mega{gap:7px}
.hdr__nav--v2 a.has-mega::before{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);order:2;transition:transform .3s var(--ease)}
.hdr.mega-open .hdr__nav--v2 a.has-mega::before{transform:rotate(225deg) translateY(-2px)}
/* la riga rossa che scorre sotto la voce attiva */
.hdr__ind{position:absolute;bottom:calc(50% - 19px);left:0;height:2px;width:0;background:var(--red);border-radius:2px;
  transition:left .4s var(--ease),width .4s var(--ease),opacity .25s;opacity:0;box-shadow:0 0 12px rgba(226,64,75,.6)}
.hdr__ind.is-on{opacity:1}
.hdr__nav--v2 a[aria-current]{color:#fff}
.hdr--light .hdr__nav--v2 a[aria-current]{color:var(--ink)}

.mega{
  position:fixed;left:0;right:0;top:var(--hdr-h);z-index:59;
  background:rgba(10,12,15,.92);-webkit-backdrop-filter:blur(22px) saturate(1.3);backdrop-filter:blur(22px) saturate(1.3);
  border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);
  box-shadow:0 40px 80px -30px rgba(0,0,0,.8);
  opacity:0;visibility:hidden;transform:translateY(-8px);
  transition:opacity .3s var(--ease),transform .35s var(--ease),visibility 0s .35s;
  color:#fff;
}
.hdr.mega-open .mega{opacity:1;visibility:visible;transform:none;transition:opacity .3s var(--ease),transform .35s var(--ease)}
.mega__in{display:grid;grid-template-columns:minmax(220px,.9fr) minmax(0,2.2fr) minmax(220px,.85fr);gap:clamp(24px,3vw,48px);padding-block:clamp(22px,2.6vw,34px)}
.mega__fams{display:flex;flex-direction:column;border-right:1px solid rgba(255,255,255,.08);padding-right:clamp(16px,2vw,28px)}
.mega__fam{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:clamp(1.1rem,1.35vw,1.4rem);line-height:1;
  color:rgba(255,255,255,.55);text-decoration:none;padding:9px 12px;border-radius:var(--r);
  position:relative;transition:color .25s,background .25s,padding-left .3s var(--ease);
}
.mega__fam i{font-style:normal;color:var(--red);opacity:.8}
.mega__fam::before{content:"";position:absolute;left:0;top:50%;width:3px;height:0;background:var(--red);border-radius:2px;transform:translateY(-50%);transition:height .3s var(--ease)}
.mega__fam:hover,.mega__fam.is-on{color:#fff;background:rgba(255,255,255,.05);padding-left:18px}
.mega__fam.is-on::before{height:60%}
.mega__panels{position:relative;min-height:290px}
.mega__panel{position:absolute;inset:0;opacity:0;visibility:hidden;transform:translateX(10px);transition:opacity .3s var(--ease),transform .35s var(--ease),visibility 0s .35s;display:flex;flex-direction:column;gap:18px}
.mega__panel.is-on{opacity:1;visibility:visible;transform:none;transition:opacity .3s var(--ease),transform .35s var(--ease)}
.mega__prods{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.mega__p{display:flex;align-items:center;gap:12px;padding:8px 10px 8px 8px;border-radius:var(--r);text-decoration:none;color:rgba(255,255,255,.85);
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06);transition:background .25s,border-color .25s,transform .3s var(--ease)}
.mega__p img,.mega__p i{width:46px;height:46px;border-radius:3px;object-fit:cover;flex:none;background:var(--raise)}
.mega__p span{font-size:.86rem;font-weight:500;line-height:1.2}
.mega__p:hover{background:rgba(226,64,75,.14);border-color:rgba(226,64,75,.5);transform:translateY(-2px);color:#fff}
.mega__big{position:relative;display:block;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:21/9;text-decoration:none;color:#fff}
.mega__big img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.mega__big:hover img{transform:scale(1.04)}
.mega__big span{position:absolute;left:20px;bottom:16px;font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(1.6rem,2.4vw,2.4rem);line-height:.95;text-shadow:0 4px 30px rgba(0,0,0,.6)}
.mega__all{margin-top:auto;align-self:flex-start;font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--red);text-decoration:none;display:flex;gap:8px;align-items:center}
.mega__all b{font-weight:400;transition:transform .3s var(--ease)}
.mega__all:hover b{transform:translateX(4px)}
.mega__rail{display:flex;flex-direction:column;gap:6px;border-left:1px solid rgba(255,255,255,.08);padding-left:clamp(16px,2vw,28px)}
.mega__r{display:flex;flex-direction:column;gap:5px;padding:12px 12px;border-radius:var(--r);text-decoration:none;color:#fff;transition:background .25s}
.mega__r .mono{color:var(--dim);font-size:.58rem}
.mega__r b{font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:1.15rem;line-height:1}
.mega__r:hover{background:rgba(255,255,255,.05)}
.mega__contact{margin-top:auto;display:flex;flex-direction:column;gap:10px;padding:14px 12px 4px;border-top:1px solid rgba(255,255,255,.08)}
.mega__contact a:not(.btn){color:rgba(255,255,255,.75);text-decoration:none;font-size:.9rem}
.mega__contact a:not(.btn):hover{color:#fff}
.mega__contact .btn{align-self:flex-start;margin-top:4px}

/* ---- mobile: schermo intero ---- */
.mnav--v2{inset:0;padding:calc(var(--hdr-h) + 12px) var(--pad) 32px;overflow:auto;background:rgba(10,12,15,.97);
  clip-path:circle(0 at calc(100% - 40px) 39px);transition:clip-path .6s var(--ease);display:block}
.mnav--v2.is-open{clip-path:circle(150% at calc(100% - 40px) 39px)}
.mnav__in{display:flex;flex-direction:column;min-height:100%}
.mnav--v2 a,.mnav--v2 summary{border:0;padding:0}
.mnav__l,.mnav__d>summary{display:flex;align-items:center;justify-content:space-between;text-decoration:none;color:#fff;
  font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:clamp(2rem,9vw,2.6rem);line-height:1.1;
  padding:12px 0;border-bottom:1px solid var(--line-d);cursor:pointer;list-style:none}
.mnav__d>summary::-webkit-details-marker{display:none}
.mnav__d>summary::after{content:"+";color:var(--red);font-size:1.6rem;transition:transform .3s}
.mnav__d[open]>summary::after{transform:rotate(45deg)}
.mnav__sub{display:flex;flex-direction:column;padding:6px 0 10px 14px;border-left:2px solid rgba(226,64,75,.35);margin:6px 0 10px 4px}
.mnav__d--sub>summary{font-size:1.25rem;font-weight:600;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.mnav__fam{font-family:var(--display);font-weight:600;text-transform:uppercase;font-size:1.25rem;color:#fff;text-decoration:none;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.mnav__sub .mnav__sub a{font-size:.98rem;color:rgba(255,255,255,.8);text-decoration:none;padding:7px 0;font-family:var(--body);font-weight:400;text-transform:none}
.mnav__all{color:var(--red)!important;font-family:var(--mono)!important;font-size:.62rem!important;letter-spacing:.1em;text-transform:uppercase!important;padding-top:12px!important}
.mnav__foot{margin-top:auto;padding-top:26px;display:flex;flex-direction:column;gap:10px}
.mnav__foot a:not(.btn){color:rgba(255,255,255,.7);text-decoration:none;font-size:1rem}
.mnav__foot .btn{align-self:flex-start;margin-top:8px}
/* le voci entrano una alla volta */
.mnav--v2 .mnav__in>*{opacity:0;transform:translateY(14px);transition:opacity .45s var(--ease),transform .5s var(--ease)}
.mnav--v2.is-open .mnav__in>*{opacity:1;transform:none}
.mnav--v2.is-open .mnav__in>*:nth-child(1){transition-delay:.15s}.mnav--v2.is-open .mnav__in>*:nth-child(2){transition-delay:.2s}
.mnav--v2.is-open .mnav__in>*:nth-child(3){transition-delay:.25s}.mnav--v2.is-open .mnav__in>*:nth-child(4){transition-delay:.3s}
.mnav--v2.is-open .mnav__in>*:nth-child(5){transition-delay:.35s}.mnav--v2.is-open .mnav__in>*:nth-child(6){transition-delay:.4s}
.mnav--v2.is-open .mnav__in>*:nth-child(7){transition-delay:.45s}
body.nav-lock{overflow:hidden}
@media (max-width:1180px){.hdr__tel{display:none}}
@media (max-width:900px){.hdr__nav--v2{display:none}}
.mega__panel:not(.is-on){transition:none}
/* GEN-HDR-fix1: famiglie senza sotto-prodotti allineate alle altre; niente rosso automatico sull'ultima voce */
.mnav--v2 a:last-child{color:inherit}
.mnav__fam{font-size:1.25rem;font-weight:600;padding:10px 0;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.06)}
.mnav__fam::after{content:"→";color:var(--red);font-family:var(--body);font-size:1rem}
.mnav__sub--fam>.mnav__fam:last-child{border-bottom:0}
/* GEN-HDR-m2 — menu mobile v2 */
@media (max-width:740px){:root{--hdr-h:66px}}
.hdr__call{display:none}
.hdr--v2.menu-open{background:rgba(10,12,15,.97);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}
.hdr--v2.menu-open .hdr__logo img{height:27px}
@media (max-width:900px){
  .hdr__call{display:grid;place-items:center;width:40px;height:40px;margin-left:auto;border-radius:50%;border:1px solid rgba(255,255,255,.18);color:#fff;transition:background .25s,border-color .25s}
  .hdr__call svg{width:18px;height:18px}
  .hdr__call:active,.hdr__call:hover{background:var(--red);border-color:var(--red)}
  .hdr--light .hdr__call{color:var(--ink);border-color:rgba(10,12,15,.25)}
  .hdr--v2.menu-open .hdr__call{color:#fff;border-color:rgba(255,255,255,.18)}
  .hdr--v2 .hdr__burger{margin-left:4px}
  .hdr--v2.menu-open .hdr__burger span{background:#fff}
}
.mnav--v2{padding:calc(var(--hdr-h) + 6px) var(--pad) 28px}
.mnav__k{color:var(--red);letter-spacing:.18em;margin:10px 0 4px}
.mnav--v2 .mnav__acc{border-bottom:1px solid var(--line-d)}
.mnav--v2 .mnav__l,.mnav--v2 .mnav__l--b{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line-d);color:#fff;cursor:pointer;
  font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:clamp(2rem,9vw,2.5rem);line-height:1.1;padding:13px 0}
.mnav--v2 .mnav__acc>.mnav__l--b{border-bottom:0}
.mnav__l--b i{width:22px;height:22px;position:relative;flex:none}
.mnav__l--b i::before,.mnav__l--b i::after{content:"";position:absolute;left:50%;top:50%;background:var(--red);border-radius:2px;transform:translate(-50%,-50%)}
.mnav__l--b i::before{width:18px;height:2px}.mnav__l--b i::after{width:2px;height:18px;transition:transform .3s var(--ease)}
.mnav__acc.is-open>.mnav__l--b i::after{transform:translate(-50%,-50%) rotate(90deg)}
/* apertura animata: griglia 0fr -> 1fr */
.mnav__body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--ease)}
.mnav__body>div{overflow:hidden;min-height:0}
.mnav__acc.is-open>.mnav__body{grid-template-rows:1fr}
.mnav__fams{display:flex;flex-direction:column;padding:2px 0 12px 2px;border-left:2px solid rgba(226,64,75,.4);margin:2px 0 8px 2px}
.mnav__fams>.mnav__acc{border-bottom:1px solid rgba(255,255,255,.06)}
.mnav--v2 .mnav__f{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;background:none;border:0;color:#fff;cursor:pointer;text-decoration:none;
  font-family:var(--display);font-weight:600;text-transform:uppercase;font-size:1.28rem;line-height:1.1;padding:12px 12px 12px 14px;border-bottom:1px solid rgba(255,255,255,.06)}
.mnav--v2 .mnav__fams>.mnav__acc>.mnav__f{border-bottom:0}
.mnav__f b{color:var(--red);font-weight:400;flex:none;transition:transform .3s var(--ease)}
.mnav__acc.is-open>.mnav__f b{color:#fff}   /* 08/10: prima ruotava di 90° anche il numero dei prodotti ("8" diventava "∞") */
.mnav__acc.is-open>.mnav__f{background:rgba(255,255,255,.04)}
.mnav__grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:6px 10px 6px 14px}
.mnav--v2 .mnav__p{display:flex;align-items:center;gap:10px;padding:8px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04);border-radius:var(--r);color:rgba(255,255,255,.88);text-decoration:none;
  font-family:var(--body);font-weight:500;font-size:.84rem;line-height:1.2;text-transform:none}
.mnav--v2 .mnav__p img,.mnav--v2 .mnav__p i{width:42px;height:42px;border-radius:3px;object-fit:cover;flex:none;background:var(--raise)}
.mnav--v2 .mnav__p:active{background:rgba(226,64,75,.16);border-color:var(--red)}
.mnav--v2 .mnav__all{display:block;color:var(--red);font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;padding:10px 14px 12px;text-decoration:none}
.mnav--v2 .mnav__all--top{padding:12px 2px 14px}
.mnav--v2 .mnav__foot{margin-top:auto;padding-top:22px;display:flex;flex-direction:column;gap:6px}
.mnav--v2 .mnav__foot a:not(.btn){color:rgba(255,255,255,.75);text-decoration:none;font-size:1.02rem;padding:6px 0;font-family:var(--body);text-transform:none;font-weight:400}
.mnav--v2 .mnav__cta{margin-top:12px;width:100%;padding:18px}
@media (max-width:420px){.mnav__grid{grid-template-columns:1fr}}

/* GEN-HOME */
.hero__foot span{white-space:nowrap}
.era__panel--2{max-width:64ch}
.era__panel--2 p{font-size:clamp(.95rem,1.12vw,1.06rem)}
.era__panel p+p{margin-top:.9em}
.cat__intro p{margin:0 0 .8em}.cat__intro p:last-child{margin:0}
.tile__ctatext--lg{font-size:clamp(1rem,1.25vw,1.15rem);color:rgba(255,255,255,.88);max-width:56ch}
.why__p+.why__p{margin-top:1em}
.tm__act{margin-top:clamp(32px,4vw,48px)}
.tmember__mono{width:100%;height:100%;display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:clamp(2.4rem,4vw,3.2rem);color:rgba(255,255,255,.22);background:radial-gradient(circle at 50% 34%,var(--raise),var(--bg-2))}
.heatcard{margin-top:clamp(40px,5vw,64px);background:var(--bg);border-radius:var(--r-lg);padding:clamp(24px,3vw,44px) clamp(24px,3vw,48px) clamp(16px,2vw,28px);color:#fff}
.heatcard .heat{margin-top:0}
.cert__act{margin-top:clamp(28px,3.4vw,44px)}
.pt__blk--cta{align-self:center}
.quotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(14px,1.8vw,24px)}
.quote{margin:0;display:flex;flex-direction:column;gap:18px;padding:clamp(24px,2.8vw,36px);background:var(--raise);border:1px solid var(--line-d);border-radius:var(--r-lg);position:relative;overflow:hidden;
  transition:transform .45s var(--ease),border-color .35s,box-shadow .45s var(--ease)}
.quote::before{content:"“";position:absolute;right:18px;top:-22px;font-family:var(--display);font-weight:800;font-size:9rem;line-height:1;color:rgba(226,64,75,.14);pointer-events:none}
.quote:hover{transform:translateY(-6px);border-color:rgba(255,255,255,.2);box-shadow:0 30px 64px -34px rgba(0,0,0,.85)}
.quote__top{display:flex;align-items:center;gap:10px}
.stars{position:relative;display:inline-block;font-size:1.05rem;letter-spacing:2px;line-height:1;color:rgba(255,255,255,.18)}
.stars__on{position:absolute;left:0;top:0;overflow:hidden;white-space:nowrap;color:var(--red)}
.stars__n{color:var(--dim)}
.quote__t{margin:0;color:rgba(255,255,255,.86);font-size:clamp(.98rem,1.15vw,1.08rem);line-height:1.6;flex:1}
.quote figcaption{display:flex;flex-direction:column;gap:4px;padding-top:16px;border-top:1px solid var(--line-d)}
.quote__n{font-weight:600}
.quote__r{color:var(--dim)}
/* GEN-LIGHT — ritmo chiaro/scuro su tutto il sito, testo lungo sempre su carta */
.rich{font-size:clamp(1rem,1.1vw,1.06rem);line-height:1.72;max-width:68ch}
.rich--wide{max-width:74ch}
.lead{line-height:1.6}
.sec--panel .rich{color:rgba(10,12,15,.78)}
.sec--panel .rich h2,.sec--panel .rich h3,.sec--panel .rich strong{color:var(--ink)}
.sec--panel .rich li::before{background:var(--red-deep)}
.sec--panel .psplit .rich{max-width:none}
.sec--panel .eyebrow{color:var(--red-deep)}.sec--panel .eyebrow::before{background:var(--red-deep)}
.sec--panel .h2{color:var(--ink)}
.sec--panel .lead{color:var(--dim-l)}.sec--panel .lead strong{color:var(--ink)}
.sec--panel .link{color:var(--ink);border-bottom-color:var(--red-deep)}.sec--panel .link:hover{color:var(--red-deep)}
.sec--panel .btn--outline{border-color:var(--line-l);color:var(--ink)}.sec--panel .btn--outline:hover{color:#fff}
/* chip tecnici: scuro di default, chiaro su carta */
.tchips span{border-color:var(--line-d);background:var(--raise);color:#fff}
.sec--panel .tchips span{border-color:var(--line-l);background:#fff;color:var(--ink)}
/* navigazione fra prodotti su carta */
.sec--panel .fnav a{background:#fff;border-color:var(--line-l);color:var(--ink);box-shadow:0 2px 4px rgba(10,12,15,.04)}
.sec--panel .fnav a::after{color:var(--red-deep)}
.sec--panel .fnav a:hover{background:var(--red);border-color:var(--red);color:#fff}.sec--panel .fnav a:hover::after{color:#fff}
.sec:not(.sec--panel) .kcard{box-shadow:0 34px 64px -30px rgba(0,0,0,.9);border-color:transparent}
.sec--panel .pimg{background:#fff;box-shadow:0 30px 60px -34px rgba(10,12,15,.45)}
/* news su carta */
.sec--panel .nart,.sec--panel .nart__i{border-color:var(--line-l)}
.sec--panel .nart__i{color:var(--ink)}.sec--panel .nart__i:hover{background:#fff}
.sec--panel .nart__date{color:var(--red-deep)}.sec--panel .nart__ex,.sec--panel .nart__go{color:var(--dim-l)}
/* tabella classi su carta */
.sec--panel .ctab,.sec--panel .ctab__row{border-color:var(--line-l)}
.sec--panel .ctab__row:hover{background:#fff}
.sec--panel .ctab__row.is-ours{background:rgba(194,42,54,.07)}
.sec--panel .ctab__cls{color:var(--ink)}.sec--panel .ctab__row.is-ours .ctab__cls{color:var(--red-deep)}
.sec--panel .ctab__temp{color:var(--dim-l)}
.sec--panel .ctab__mats span{border-color:var(--line-l);color:rgba(10,12,15,.82);background:#fff}
.sec--panel .heat__note{color:var(--dim-l)}
/* team su carta */
.sec--panel .tperson__ph{background:#fff;border-color:var(--line-l);box-shadow:0 16px 40px -24px rgba(10,12,15,.3)}
.sec--panel .tperson__n{color:var(--ink)}.sec--panel .tperson__r{color:var(--dim-l)}
.sec--panel .tgroup__h{color:var(--red-deep)}.sec--panel .tgroup__h::before{background:var(--red-deep)}
.sec--panel .tperson__mono{color:rgba(10,12,15,.22);background:radial-gradient(circle at 50% 34%,#fff,var(--paper-2))}
/* contatti su carta */
.sec--panel .cblock h3{color:var(--red-deep)}
.sec--panel .cblock p,.sec--panel .cblock a{color:rgba(10,12,15,.82)}.sec--panel .cblock a:hover{color:var(--red-deep)}
.sec--panel .cform{background:#fff;border-color:var(--line-l);box-shadow:0 30px 60px -34px rgba(10,12,15,.35)}
.sec--panel .cform label{color:var(--dim-l)}
.sec--panel .cform input,.sec--panel .cform textarea{background:var(--paper);border-color:var(--line-l);color:var(--ink)}
.sec--panel .cform__consent{color:var(--dim-l)}
/* "perché / valori" su carta */
.sec--panel .why__h,.sec--panel .why__t{color:var(--ink)}
.sec--panel .why__p{color:rgba(10,12,15,.78)}.sec--panel .why__d{color:var(--dim-l)}
.sec--panel .why__track{background:var(--line-l)}
.sec--panel .why__aura{opacity:.35}
/* testimonianze: card bianche ovunque */
.quote{background:#fff;border-color:var(--line-l);box-shadow:0 2px 4px rgba(10,12,15,.05),0 24px 56px -28px rgba(10,12,15,.55)}
.quote:hover{border-color:var(--red);box-shadow:0 4px 8px rgba(10,12,15,.06),0 34px 70px -30px rgba(10,12,15,.6)}
.quote__t{color:rgba(10,12,15,.84)}.quote__n{color:var(--ink)}.quote figcaption{border-color:var(--line-l)}
.stars{color:rgba(10,12,15,.15)}.stars__on{color:var(--red-deep)}.stars__n,.quote__r{color:var(--dim-l)}
.quote::before{color:rgba(194,42,54,.10)}
/* numeri su carta */
.sec--nums.sec--panel{background:var(--paper)}
.sec--panel .nums__n{color:var(--ink)}.sec--panel .nums__l{color:var(--dim-l)}.sec--panel .nums li::before{background:var(--red-deep)}
.sec--panel .cmap{border-color:var(--line-l)}
.sec--panel .bcard__k{color:var(--red-deep)}
/* mappa a tutta larghezza su scuro */
.sec--map{padding-block:0}
.sec--map .cmap{margin:0;border-radius:0;border:0}
.sec--map .cmap iframe{height:clamp(320px,42vw,520px)}
/* scala termica completa (pagina Classi): 8 tacche, quelle basse alternate in altezza */
.heat--full{margin-top:0}
.heat--full .heat__marks{height:clamp(120px,13vw,170px)}
.heat--full .heat__m:nth-child(even){--off:54px}
.heat--full .heat__c{font-size:clamp(1.6rem,3vw,2.8rem)}
@media (max-width:740px){.heat--full .heat__c{font-size:1.25rem}.heat--full .heat__m:nth-child(even){--off:44px}.heat--full .heat__marks{height:150px}}
/* GEN-LIGHT-fix1: i 6 motivi su carta (specificità superiore alle regole is-on/is-current) */
.sec--panel .why__list .why__i .why__t,.sec--panel .why__list .why__i.is-on .why__t,.sec--panel .why__list .why__i.is-current .why__t{color:var(--ink)}
.sec--panel .why__list .why__i .why__d,.sec--panel .why__list .why__i.is-on .why__d,.sec--panel .why__list .why__i.is-current .why__d{color:rgba(10,12,15,.66)}
.sec--panel .why__list .why__i::before{border-color:var(--paper)}
.quote figcaption{color:var(--ink)}
/* GEN-LIGHT-fix2: la tessera CTA del catalogo cresce col contenuto; bottoni impilati su mobile */
.cat .cat__grid{grid-auto-rows:minmax(clamp(190px,19vw,264px),auto)}
@media (max-width:900px){.cat .cat__grid{grid-auto-rows:minmax(clamp(160px,40vw,220px),auto)}}
@media (max-width:520px){
  .cat .cat__grid{grid-auto-rows:minmax(clamp(200px,58vw,260px),auto)}
  .tile--cta{height:auto;min-height:0;padding:clamp(22px,6vw,32px)}
  .tile__acts{width:100%;flex-direction:column;align-items:stretch;gap:10px}
  .tile__acts .btn{width:100%;justify-content:center}
}
/* GEN-LIGHT-fix3: la tessera CTA del catalogo è scura anche dentro la sezione chiara */
.sec--panel .tile--cta .btn--outline{color:#fff;border-color:var(--line-d)}
.sec--panel .tile--cta .btn--outline:hover{color:#fff;border-color:var(--red)}
.sec--panel .tile--cta .tile__ctatext{color:rgba(255,255,255,.88)}
/* GEN-LIGHT-fix4: i motivi su carta — voce non attiva in grigio inchiostro, numero leggibile */
.js .sec--panel .why__i:not(.is-on) .why__t{color:rgba(10,12,15,.32);filter:blur(1.2px)}
.js .sec--panel .why__i:not(.is-on) .why__d{color:rgba(10,12,15,.26);filter:blur(1.2px)}
.js .sec--panel .why__i.is-on .why__t{color:var(--ink);filter:none}
.js .sec--panel .why__i.is-on .why__d{color:rgba(10,12,15,.66);filter:none}
.sec--panel .why__i.is-on .why__t::before{color:var(--ink);border-color:rgba(10,12,15,.3)}
.sec--panel .why__i.is-current .why__t::before{background:var(--red);border-color:var(--red);color:#fff}
.sec--panel .why__i::before{border-color:var(--paper);background:var(--paper-2)}
.sec--panel .why__i.is-on::before{background:var(--red);border-color:var(--red)}
/* GEN-LIGHT-fix5: specifiche tecniche = etichetta sopra, valore sotto (niente sovrapposizioni) */
.slist--spec li{padding-left:0}
.slist--spec li:hover{padding-left:0}
.slist--spec .slist__n{position:static;display:block;margin-bottom:8px;letter-spacing:.12em}
.slist--spec .slist__t{font-size:clamp(1.15rem,1.7vw,1.5rem)}
/* scala Classi su mobile: tacche su 3 livelli */
@media (max-width:740px){
  .heat--full .heat__marks{height:215px}
  .heat--full .heat__m:nth-child(even){--off:0px}
  .heat--full .heat__m:nth-child(3n+2){--off:58px}
  .heat--full .heat__m:nth-child(3n){--off:116px}
}
/* GEN-NUMS: contatori su nero, scritte e cifre bianche; su mobile 2 colonne */
.sec--nums{background:var(--ink)}
.sec--nums .nums__n{color:#fff}.sec--nums .nums__l{color:rgba(255,255,255,.72)}.sec--nums .nums li::before{background:var(--red)}
@media (max-width:900px){.sec--nums .nums{grid-template-columns:repeat(2,1fr);gap:clamp(28px,6vw,44px) clamp(20px,5vw,40px)}}
@media (max-width:520px){.sec--nums .nums{grid-template-columns:repeat(2,1fr)}.sec--nums .nums__l{max-width:none}}
/* GEN-HDR-fix2: le regole delle voci di menu non devono toccare i link dentro il mega; colonna destra allineata a sinistra come i contatti */
.hdr__nav--v2 .mega a{height:auto;display:flex;align-items:center;justify-content:flex-start;text-align:left}
.hdr__nav--v2 .mega .mega__r{flex-direction:column;align-items:flex-start;gap:6px;padding:12px 12px}
.hdr__nav--v2 .mega .mega__r .mono,.hdr__nav--v2 .mega .mega__r b{display:block;width:100%;text-align:left}
.hdr__nav--v2 .mega .mega__fam{justify-content:space-between}
.hdr__nav--v2 .mega .mega__all{display:inline-flex}
.hdr__nav--v2 .mega .mega__big{display:block}
.hdr__nav--v2 .mega .mega__contact{padding-left:12px;padding-right:12px}
.hdr__nav--v2 .mega .mega__contact a:not(.btn){display:block;padding:2px 0}
.hdr__nav--v2 .mega .mega__contact .btn{display:inline-flex;justify-content:center}
/* GEN-HDR-fix3: il mega menu resta scuro anche quando l'header è invertito sopra le sezioni chiare */
.hdr--light .hdr__nav .mega{color:#fff}
.hdr--light .hdr__nav .mega .mega__fam{color:rgba(255,255,255,.55)}
.hdr--light .hdr__nav .mega .mega__fam:hover,.hdr--light .hdr__nav .mega .mega__fam.is-on{color:#fff}
.hdr--light .hdr__nav .mega .mega__p{color:rgba(255,255,255,.85)}.hdr--light .hdr__nav .mega .mega__p:hover{color:#fff}
.hdr--light .hdr__nav .mega .mega__r,.hdr--light .hdr__nav .mega .mega__big{color:#fff}
.hdr--light .hdr__nav .mega .mega__r .mono{color:var(--dim)}
.hdr--light .hdr__nav .mega .mega__all{color:var(--red)}
.hdr--light .hdr__nav .mega .mega__contact a:not(.btn){color:rgba(255,255,255,.75)}
.hdr--light .hdr__nav .mega .mega__contact a:not(.btn):hover{color:#fff}
.hdr--light .hdr__nav .mega .btn{color:#fff}
/* GEN-HDR-fix4: con la tendina aperta, barra e pannello sono un unico blocco (stesso vetro scuro, nessuna cucitura) */
.hdr--v2.mega-open,.hdr--v2.mega-open.is-stuck,.hdr--v2.mega-open.hdr--light,.hdr--v2.mega-open.hdr--light.is-stuck{
  background:rgba(10,12,15,.92);-webkit-backdrop-filter:blur(22px) saturate(1.3);backdrop-filter:blur(22px) saturate(1.3);box-shadow:none;
  transition:background .3s var(--ease),box-shadow .3s}
.hdr--v2.mega-open .hdr__nav--v2 > a,.hdr--v2.mega-open.hdr--light .hdr__nav--v2 > a{color:rgba(255,255,255,.72)}
.hdr--v2.mega-open .hdr__nav--v2 > a:hover,.hdr--v2.mega-open .hdr__nav--v2 > a[aria-current],.hdr--v2.mega-open .hdr__nav--v2 > a.has-mega,
.hdr--v2.mega-open.hdr--light .hdr__nav--v2 > a.has-mega{color:#fff}
.hdr--v2.mega-open .hdr__tel,.hdr--v2.mega-open.hdr--light .hdr__tel{color:rgba(255,255,255,.62)}
.hdr--v2.mega-open .hdr__burger span,.hdr--v2.mega-open.hdr--light .hdr__burger span{background:#fff}
.hdr--v2.mega-open .mega{border-top:0;box-shadow:0 40px 80px -30px rgba(0,0,0,.8)}
.hdr--v2.mega-open .mega::before{content:"";position:absolute;left:var(--pad);right:var(--pad);top:0;height:1px;background:rgba(255,255,255,.06)}
.hdr--v2 .mega{transition:opacity .3s var(--ease),transform .35s var(--ease),visibility 0s .35s,background .3s}
/* GEN-HDR-fix5: la tendina chiusa (o in dissolvenza) non deve catturare il mouse: altrimenti si riapre passando sull'hero */
.hdr--v2:not(.mega-open) .mega{pointer-events:none}
.hdr--v2.mega-open .mega{pointer-events:auto}
/* GEN-MINI — pagine interne: hero mini su carta, grammatica di lettura, superfici del browser */
::selection{background:var(--red);color:#fff}
html{scrollbar-color:rgba(10,12,15,.35) transparent}
.tchips span,.mh__specs b,.ctab__cls,.ctab__temp,.nums__n{font-variant-numeric:tabular-nums}
body.page--inner .sec{padding-block:clamp(56px,7vw,104px)}
body.page--inner .sec--tight{padding-block:clamp(40px,5vw,72px)}
body.page--inner .sec--panel.sec--soft{background:var(--paper-2)}
.mh{padding:calc(var(--hdr-h) + clamp(28px,4vw,48px)) 0 0;background:var(--paper);color:var(--ink)}
.mh .wrap{position:relative;padding-bottom:clamp(30px,3.6vw,48px)}
.mh .crumb{margin-bottom:clamp(20px,2.4vw,30px)}
.mh .crumb a{color:var(--dim-l)}.mh .crumb a:hover{color:var(--red-deep)}.mh .crumb i{color:rgba(10,12,15,.28)}.mh .crumb b{color:var(--red-deep)}
.mh__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:center}
.mh--media .mh__grid{grid-template-columns:minmax(0,1fr) clamp(220px,26vw,340px)}
.mh__h{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(2rem,3.6vw,3.3rem);line-height:.94;letter-spacing:.004em;margin:0;max-width:18ch;text-wrap:balance}
.mh__tag{margin:12px 0 0;font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--red-deep)}
.mh__lead{margin:clamp(14px,1.6vw,20px) 0 0;font-size:clamp(1.02rem,1.2vw,1.12rem);line-height:1.6;color:var(--dim-l);max-width:60ch}
.mh__specs{display:flex;flex-wrap:wrap;gap:10px 30px;margin:clamp(20px,2.4vw,28px) 0 0;padding:0;list-style:none}
.mh__specs li{display:flex;flex-direction:column;gap:4px}
.mh__specs span{font-family:var(--mono);font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dim-l)}
.mh__specs b{font-weight:600;font-size:.98rem;color:var(--ink)}
.mh__media{margin:0;aspect-ratio:4/3;border-radius:var(--r-lg);overflow:hidden;background:var(--paper-2);box-shadow:0 18px 40px -22px rgba(10,12,15,.4)}
.mh__media img{width:100%;height:100%;object-fit:cover;display:block}
.mh__rule{position:absolute;left:var(--pad);right:var(--pad);bottom:0;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;animation:mhRule .9s var(--ease) .15s forwards}
@keyframes mhRule{to{transform:scaleX(1)}}
@media (prefers-reduced-motion:reduce){.mh__rule{animation:none;transform:none}}
@media (max-width:740px){.mh--media .mh__grid{grid-template-columns:1fr;gap:20px}.mh__media{max-width:360px;aspect-ratio:16/10}.mh__h{max-width:none}.mh .wrap{padding-bottom:26px}}
/* titoli di sezione */
.h2s{font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:clamp(1.7rem,2.6vw,2.4rem);line-height:.95;margin:0 0 clamp(18px,2.2vw,28px);text-wrap:balance}
.h2s--lg{font-size:clamp(2rem,3.2vw,3rem)}
.sec--panel .h2s{color:var(--ink)}
/* due colonne di testo con filo */
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);align-items:start}
.cols2>*+*{border-left:1px solid var(--line-l);padding-left:clamp(28px,4vw,56px)}
.cols2 .rich{max-width:none}.cols2 .rich h2{margin-top:0;font-size:clamp(1.35rem,2vw,1.7rem)}
/* scheda: descrizione + scheda tecnica scura */
.pgrid2{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:clamp(28px,5vw,72px);align-items:start}
.techcard{position:sticky;top:calc(var(--hdr-h) + 24px);background:var(--ink);color:#fff;border-radius:var(--r-lg);padding:clamp(24px,2.6vw,36px);box-shadow:0 30px 60px -30px rgba(10,12,15,.6)}
.techcard h2{font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:clamp(1.3rem,1.8vw,1.7rem);line-height:.95;margin:0 0 8px;color:#fff}
.techcard p{color:rgba(255,255,255,.7);margin:0 0 18px;font-size:.95rem}
.techcard .tchips{margin-top:0}.techcard .tchips span{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12);color:#fff}
/* elenco motivi (lavorazioni) e lista intercable: titoli forti, niente card */
.plist{list-style:none;padding:0;margin:clamp(20px,2.4vw,30px) 0 0;display:grid;gap:14px}
.plist li{font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:clamp(1.15rem,1.6vw,1.45rem);line-height:1;padding:14px 0;border-top:1px solid var(--line-l)}
.plist li:last-child{border-bottom:1px solid var(--line-l)}
/* griglia prodotti su carta grigia */
.sec--soft .kcard{box-shadow:0 2px 4px rgba(10,12,15,.04),0 18px 44px -26px rgba(10,12,15,.35)}
/* team: 5 per riga su desktop */
@media (min-width:1100px){.tteam{grid-template-columns:repeat(5,1fr)}}
.tgroup{margin-top:0}.tteam{margin-top:clamp(24px,3vw,40px)}
/* rimosso il numero nelle liste: nessun .slist nelle pagine */
.fnav{margin-top:clamp(16px,2vw,24px)}
.rich__back,.back{margin-top:clamp(28px,3.4vw,40px)}
.cat .cat__grid{margin-top:0}
@media (max-width:900px){.cols2{grid-template-columns:1fr}.cols2>*+*{border-left:0;padding-left:0;border-top:1px solid var(--line-l);padding-top:clamp(24px,4vw,36px)}.pgrid2{grid-template-columns:1fr}.techcard{position:static}}
.mh .crumb{color:var(--dim-l)}
/* GEN-POLISH — dal detector: leggibilità (≥11px), contrasto bottoni, niente aloni a offset zero, maiuscolo solo su titoli brevi */
.mono{font-size:.72rem}
.crumb,.mh .crumb{font-size:.7rem}
.mh__specs span,.mh__tag,.cblock h3,.cblock h2,.nart__date,.kcard__go,.mega__all,.mnav__all,.mega__r .mono,.mnav__k,.tgroup__h,.heat__t,.ctab__temp,.dl__tag,.btn__tag{font-size:.7rem}
.btn{background:var(--red-deep);box-shadow:0 10px 24px -14px rgba(194,42,54,.6)}
.btn::before{background:var(--red)}
.btn:hover{box-shadow:0 14px 30px -14px rgba(194,42,54,.7)}
.btn--outline{background:transparent}.btn--outline::before{background:var(--red-deep)}
.hdr__ind{box-shadow:none}
.prog{box-shadow:none}
.heat__fill{box-shadow:0 6px 24px -8px rgba(226,64,75,.45)}
.heat__m.is-ours::before{box-shadow:none}
.hdr__call:active,.hdr__call:hover{background:var(--red-deep)}
body.page--inner .grain{display:none}
body.page--inner .rich h2{text-transform:none;line-height:1.12;letter-spacing:0}
body.page--inner .plist li{text-transform:none;line-height:1.2;font-size:clamp(1.1rem,1.5vw,1.35rem)}
body.page--inner .nart__t{text-transform:none;line-height:1.15;font-size:clamp(1.2rem,1.9vw,1.6rem)}
body.page--inner .kcard__t,body.page--inner .mh__h,body.page--inner .h2s,body.page--inner .techcard h2{letter-spacing:.01em}
.mega__fam{transition:color .25s,background .25s,transform .3s var(--ease)}
.mega__fam:hover,.mega__fam.is-on{padding-left:12px;transform:translateX(6px)}
.cblock h2{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--red-deep);margin:0 0 10px;font-weight:400}
/* partner: griglia statica nelle pagine interne (niente marquee) */
.plogos{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:clamp(18px,3vw,40px) clamp(24px,4vw,56px);align-items:center;justify-items:center}
.plogos img{max-height:44px;width:auto;max-width:170px;object-fit:contain;filter:brightness(0) invert(1);opacity:.82}
.plogos img[src*="unibo"],.plogos img[src*="api"]{filter:none;opacity:1}
/* GEN-POLISH-2 — residui del detector */
.cform label{font-size:.7rem}
.cform label.cform__consent{font-size:.9rem;text-transform:none;letter-spacing:0}
.mnav--v2 .mnav__all{font-size:.7rem!important}
.btn::before{background:#A8202B}
.btn{box-shadow:0 10px 24px -14px rgba(0,0,0,.55)}.btn:hover{box-shadow:0 14px 30px -14px rgba(0,0,0,.6)}
.btn--outline::before{background:#A8202B}
.sec--panel .nart__i:hover .nart__t{color:var(--red-deep)}
.sec--panel .fnav a:hover{background:var(--red-deep);border-color:var(--red-deep)}
body.page--inner .rich h2{line-height:1.25}
.techcard h2{line-height:1.1}
/* GEN-POLISH-3 — ultimi residui: skip-link e freccia tessera su rosso scuro, interlinea motivi */
.skip{background:var(--red-deep)}
.tile:hover .tile__go{background:var(--red-deep);border-color:var(--red-deep)}
body.page--inner .plist li{line-height:1.3}
/* GEN-POLISH-4 — team a 2 colonne su mobile */
@media (max-width:600px){.tteam{grid-template-columns:repeat(2,1fr);gap:14px}.tperson__n{font-size:.95rem}.tperson__r{font-size:.82rem}}
/* GEN-POLISH-5 — loghi partner: fascia bianca, nessun filtro (i PNG hanno sfondo bianco) */
body.page--inner .sec--panel.sec--white{background:#fff}
.plogos img{filter:none;opacity:1;max-height:48px}
/* GEN-HDR-fix6 — tendina a sipario: mai semitrasparente sopra la pagina; header scuro finché la tendina non è chiusa */
.hdr--v2 .mega{opacity:1;transform:none;background:rgba(10,12,15,.97);-webkit-backdrop-filter:none;backdrop-filter:none;clip-path:inset(0 0 100% 0);
  transition:clip-path .38s var(--ease),visibility 0s .38s}
.hdr--v2.mega-open .mega{clip-path:inset(0 0 0 0);transition:clip-path .38s var(--ease)}
.hdr--v2 .mega .mega__in{transform:translateY(-10px);opacity:0;transition:transform .38s var(--ease),opacity .25s}
.hdr--v2.mega-open .mega .mega__in{transform:none;opacity:1;transition:transform .38s var(--ease),opacity .25s .08s}
/* uscita: il colore dell'header torna chiaro/trasparente solo dopo che il sipario è salito.
   Vale SOLO mentre la tendina si chiude (.mega-closing, messa dal JS): prima era su :not(.mega-open),
   cioè sempre, e ritardava di 0,36s ogni cambio di stato dell'header (scroll, sezioni chiare/scure, caricamento). */
.hdr--v2.mega-closing{transition:background .25s ease .36s,backdrop-filter .25s ease .36s,box-shadow .25s ease .36s}
.hdr--v2.mega-open,.hdr--v2.mega-open.is-stuck,.hdr--v2.mega-open.hdr--light,.hdr--v2.mega-open.hdr--light.is-stuck{background:rgba(10,12,15,.97)!important;box-shadow:none!important;transition:background .2s ease}
.hdr--v2.mega-open .hdr__nav--v2 > a,.hdr--v2.mega-open.hdr--light .hdr__nav--v2 > a{transition:color .2s}
.hdr--v2.mega-closing .hdr__nav--v2 > a,.hdr--v2.mega-closing .hdr__tel{transition:color .2s ease .36s}
/* GEN-REEL — showreel (home, fra prodotti e team): il video di produzione a tutto schermo che, scorrendo, si stringe
   in una tessera piccola al centro di un mosaico di foto che arrivano dai bordi (pin + scrub in main.js, "showreel").
   Griglia larga 120vw a 8 colonne (le due esterne tagliate dal bordo): 8 foto sopra, 3+3 ai lati, 8 sotto.
   Il video occupa 2 colonne: larghezza = 2 colonne + 1 spazio = 30vw - 10,5px. Stato iniziale: tessera ingrandita
   del fattore --reel-s0 fino a coprire la finestra, foto invisibili. */
.reel{position:relative;height:100vh;height:100svh;overflow:hidden;background:var(--bg);
  --reel-cols:8;--reel-gw:120vw;--reel-gap:14px;--reel-rad:12px;--reel-r:32vh;--reel-r:32svh;
  --reel-w:calc(30vw - 10.5px);--reel-h:calc(var(--reel-w) / 1.9);--reel-s0:3.6}
@supports (opacity:tan(atan2(1px,1px))){
  .reel{--reel-s0:calc(max(tan(atan2(100vw,var(--reel-w))),tan(atan2(100vh,var(--reel-h)))) * 1.04)}
}
.reel__grid{position:absolute;left:50%;top:50%;width:var(--reel-gw);transform:translate(-50%,-50%);display:grid;grid-template-columns:repeat(var(--reel-cols),1fr);grid-template-rows:var(--reel-r) var(--reel-h) var(--reel-r);gap:var(--reel-gap);pointer-events:none}
.reel__row{grid-column:1/-1;display:grid;grid-template-columns:repeat(var(--reel-cols),1fr);gap:var(--reel-gap);min-height:0}
.reel__t{margin:0;min-height:0;min-width:0;border-radius:var(--reel-rad);overflow:hidden;background:var(--raise);opacity:0;will-change:transform,opacity}
.reel__t img{width:100%;height:100%;object-fit:cover;display:block}
.reel__v{position:relative;z-index:1;grid-column:span 2;height:var(--reel-h);border-radius:var(--reel-rad);overflow:hidden;clip-path:inset(0 round var(--reel-rad));transform:scale(var(--reel-s0));transform-origin:center;will-change:transform;background:#000;isolation:isolate}
.reel__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.reel__shade{position:absolute;inset:0;pointer-events:none;background:rgba(10,12,15,.42)}
@media (max-width:1100px){
  .reel{--reel-cols:6;--reel-w:calc(40vw - 9.4px)}
  .reel__row .reel__t:nth-child(n+7),.reel__t--s3{display:none}
}
@media (max-width:760px){
  .reel{--reel-cols:4;--reel-gw:140vw;--reel-gap:10px;--reel-rad:10px;--reel-r:28vh;--reel-r:28svh;--reel-w:calc(70vw - 5px);--reel-s0:4.8}
  @supports (opacity:tan(atan2(1px,1px))){.reel{--reel-s0:calc(max(tan(atan2(100vw,var(--reel-w))),tan(atan2(100vh,var(--reel-h)))) * 1.04)}}
  .reel__row .reel__t:nth-child(n+5),.reel__t--s2{display:none}
}

/* GEN-ABOUT — pagina "Chi siamo" sul modello dell'about di Terion (Framer): stessa struttura e stessi ritmi,
   palette Guerzoni. Tutto con prefisso .ab-; la comparsa degli elementi ([data-rv]) è in main.js. */
body.page--about{--ab-bg:#EEEDEA;--ab-ink:#111111;--ab-dim:#4E4C4B;--ab-card:#E4E2DD;--ab-dark:#0A0C0F;--ab-line:rgba(17,17,17,.12);background:var(--ab-bg);color:var(--ab-ink);font-family:"Instrument Sans",system-ui,sans-serif}
body.page--about .sec--panel{background:transparent;color:inherit}
body.page--about .hdr--light.is-stuck{background:rgba(238,237,234,.86);box-shadow:0 1px 0 var(--ab-line)}
body.page--about .grain{display:none}
.ab-wrap{max-width:1296px;margin-inline:auto;padding-inline:clamp(20px,3.2vw,44px)}
.ab-h1,.ab-h2{font-weight:700;font-size:clamp(2.2rem,4vw,3rem);line-height:1.1;letter-spacing:-.03em;margin:0}
.ab-p{font-size:1.125rem;line-height:1.4;color:var(--ab-dim);margin:0}
.ab-pill{display:inline-flex;align-items:center;padding:6px 14px;border-radius:100px;border:1px solid var(--ab-line);background:rgba(17,17,17,.04);font-size:.95rem;font-weight:600;letter-spacing:-.01em;color:#413936}
.ab-btn{display:inline-flex;align-items:center;gap:10px;padding:10px 22px;border-radius:100px;background:var(--ab-dark);color:#fff;text-decoration:none;font-size:1.125rem;font-weight:700;line-height:1.5;transition:transform .3s var(--ease),background .25s}
.ab-btn:hover{transform:translateY(-2px);background:#2A2D33}
.ab-btn svg{width:18px;height:18px;transition:transform .3s var(--ease)}
.ab-btn:hover svg{transform:translateX(4px)}
.ab-btn--light{background:var(--ab-bg);color:var(--ab-ink)}
.ab-btn--light:hover{background:#fff}
/* hero */
.ab-hero{padding:calc(var(--hdr-h) + clamp(48px,7vw,92px)) 0 clamp(56px,7vw,96px)}
.ab-hero__top{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.ab-crumb{display:flex;gap:8px;font-size:1.125rem;color:var(--ab-dim);margin:0}
.ab-crumb a{color:inherit;text-decoration:none}
.ab-crumb b{font-weight:400;color:var(--ab-ink)}
.ab-hero .ab-p{max-width:440px;margin-top:clamp(28px,4vw,56px)}
.ab-hero__img{margin:clamp(40px,5vw,64px) 0 0;border-radius:12px;overflow:hidden;background:#DCDAD5;height:clamp(360px,54vw,760px)}
.ab-hero__img img{width:100%;height:100%;object-fit:cover;display:block}
.js .ab-hero__img{animation:abIn 1.1s var(--ease) both .15s}
@keyframes abIn{from{opacity:0;transform:translateY(28px) scale(.97)}to{opacity:1;transform:none}}
/* fondatori, dichiarazione, contatori */
.ab-about{padding:clamp(72px,9vw,128px) 0 clamp(56px,7vw,96px);text-align:center}
.ab-about__in{max-width:760px;margin-inline:auto;display:flex;flex-direction:column;align-items:center;gap:20px}
.ab-founders{display:flex;justify-content:center}
.ab-founders img{width:84px;height:84px;border-radius:50%;object-fit:cover;object-position:center 20%;border:3px solid var(--ab-bg);background:#ddd}
.ab-founders img+img{margin-left:-16px}
.ab-cap{font-size:.875rem;font-weight:500;color:#151515;margin:-6px 0 0}
.ab-statement{font-size:clamp(1.5rem,2.7vw,2.25rem);font-weight:600;line-height:1.12;letter-spacing:-.03em;margin:0;text-wrap:balance;color:var(--ab-ink)}
.ab-stats{list-style:none;margin:clamp(56px,7vw,96px) 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:24px;text-align:left}
.ab-stats li{background:var(--ab-card);border-radius:12px;padding:28px 28px 26px;display:flex;flex-direction:column;gap:22px}
.ab-stats svg{width:24px;height:24px;color:var(--ab-ink)}
.ab-stats .nums__n{font-size:2.25rem;font-weight:700;letter-spacing:-.03em;line-height:1;display:block;font-family:inherit;color:var(--ab-ink);background:none;-webkit-background-clip:border-box;background-clip:border-box;-webkit-text-fill-color:var(--ab-ink);text-shadow:none}
.ab-stats .ab-stat__l{font-size:1.125rem;font-weight:500;color:#413936;margin-top:8px;display:block}
/* valori con foto in parallasse */
.ab-mission{padding:clamp(56px,7vw,96px) 0}
.ab-mission__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:center}
.ab-mission__txt{max-width:505px;display:flex;flex-direction:column;gap:22px;align-items:flex-start}
.ab-mission__img{margin:0;border-radius:8px;overflow:hidden;aspect-ratio:669/701;background:#DCDAD5}
.ab-mission__img img{width:100%;height:118%;margin-top:-9%;object-fit:cover;display:block}
/* loghi partner in scorrimento */
.ab-brand{padding:clamp(24px,4vw,48px) 0;overflow:hidden}
.ab-brand__k{text-align:center;font-size:.95rem;font-weight:600;color:#413936;margin:0 0 22px}
.ab-brand__track{display:flex;align-items:center;width:max-content;animation:slide 48s linear infinite}
.ab-brand:hover .ab-brand__track{animation-play-state:paused}
.ab-brand__track img{height:34px;width:auto;max-width:180px;object-fit:contain;margin:0 36px;filter:grayscale(1);mix-blend-mode:multiply;opacity:.72}
.ab-brand__track i{width:1px;height:28px;background:var(--ab-line);flex:none}
/* fascia finale con foto */
.ab-cta{position:relative;min-height:420px;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden;padding:clamp(72px,9vw,120px) 20px}
.ab-cta__bg{position:absolute;inset:0;background:url(../img/era-2.jpg) center/cover no-repeat}
.ab-cta__bg::after{content:"";position:absolute;inset:0;background:rgba(28,20,16,.66)}
.ab-cta__in{position:relative;display:flex;flex-direction:column;align-items:center;gap:26px}
.ab-cta__h{font-size:clamp(2.6rem,6vw,5.25rem);font-weight:600;line-height:1.1;letter-spacing:-.03em;margin:0;color:#fff}
.ab-cta__h em{display:block;font-family:"Lora",Georgia,serif;font-style:italic;font-weight:600}
.ab-cta__d{font-size:1.125rem;color:rgba(255,255,255,.8);margin:0}
/* comparsa al passaggio */
.js .page--about [data-rv]{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--d,0ms)}
.js .page--about [data-rv].is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .page--about [data-rv]{opacity:1;transform:none;transition:none}.js .ab-hero__img{animation:none}}
@media (max-width:900px){.ab-cards{grid-template-columns:1fr 1fr}.ab-mission__grid{grid-template-columns:1fr}.ab-mission__img{aspect-ratio:4/3}.ab-mission__txt{max-width:none}}
@media (max-width:640px){.ab-hero__top{flex-direction:column;align-items:flex-start;gap:12px}.ab-crumb{font-size:1rem}.ab-hero__img{height:clamp(240px,60vw,420px);border-radius:10px}.ab-stats{gap:14px}.ab-stats li{padding:20px 18px;gap:16px}.ab-stats .nums__n{font-size:1.9rem}.ab-stats .ab-stat__l{font-size:1rem}.ab-cards{grid-template-columns:1fr}.ab-cta__h{font-size:clamp(2.2rem,11vw,3rem)}.ab-cta{min-height:360px}}

/* GEN-HDR-fix8 — tendina: le famiglie ereditavano corpo e spaziatura delle voci di menu (14px, righe strette).
   Un po' più grandi, come chiesto il 07/10: corpo 1.1rem, righe da 30px, contatore proporzionato. */
.hdr__nav--v2 .mega .mega__fam{font-size:1.1rem;line-height:1;padding:6px 12px}
.hdr__nav--v2 .mega .mega__fam i{font-size:.74rem}
/* GEN-PARTNER — sezione partner della home (07/10): fascia BIANCA con i loghi nei loro colori, senza filtri né card.
   Loghi che scorrono con filetti sottili e dissolvenza ai bordi; collaborazioni e associazioni in una riga a filetti;
   "Diventa nostro partner" come link con lineetta. (La versione a loghi invertiti è stata bocciata: bassa qualità.) */
.sec--partner.sec--panel{background:#fff;color:var(--ink);--pt-line:rgba(10,12,15,.12)}
.sec--partner.sec--panel .lead{color:var(--dim-l)}
.sec--partner .plane{-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.sec--partner .plane__track{gap:0;animation-duration:58s}
.sec--partner .plogo{background:none;border:0;box-shadow:none;border-radius:0;padding:0 clamp(28px,3.4vw,60px);height:auto;min-width:0;display:flex;align-items:center}
.sec--partner .plogo img{height:clamp(30px,3vw,44px);max-width:none;filter:none;mix-blend-mode:normal;opacity:1}
.sec--partner .plogo__sep{width:1px;height:40px;background:var(--pt-line);flex:none}
.pt__row{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--pt-line);border-bottom:1px solid var(--pt-line);margin-top:clamp(40px,5vw,72px)}
.pt__cell{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:clamp(22px,2.6vw,34px) 0;min-width:0}
.pt__cell:first-child{padding-right:clamp(28px,4vw,64px)}
.pt__cell+.pt__cell{border-left:1px solid var(--pt-line);padding-left:clamp(28px,4vw,64px)}
.pt__cell .eyebrow{margin:0}
.pt__img{height:52px;width:auto;max-width:min(260px,55%);object-fit:contain;flex:none}
.pt__img--seal{height:76px}
.pt__act{margin:clamp(24px,3vw,40px) 0 0;display:flex;justify-content:flex-end}
@media (max-width:760px){
  .pt__row{grid-template-columns:1fr}
  .pt__cell:first-child{padding-right:0}
  .pt__cell+.pt__cell{border-left:0;border-top:1px solid var(--pt-line);padding-left:0}
  .pt__img{height:42px}.pt__img--seal{height:60px}
  .pt__act{justify-content:flex-start}
}

/* ==========================================================================
   GEN-NEON — "Diventa nostro partner" come insegna al neon minimale: un solo colore,
   tubo da 2px, luce morbida sul muro; spenta finché non entra in vista, poi accensione
   unica e respiro lento; in hover il bagliore cresce, una luce corre lungo il tubo e la
   freccia si allunga. Con movimento ridotto o senza JS è semplicemente accesa.
   ========================================================================== */
@property --neon-a{syntax:"<angle>";inherits:false;initial-value:0deg}
.sec--partner{--neon:226,64,75}
.pt__act{justify-content:center;margin-top:clamp(40px,5vw,72px);position:relative;isolation:isolate}
.pt__act::before{content:"";position:absolute;left:50%;top:50%;width:min(560px,100%);height:180px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(closest-side,rgba(var(--neon),.11),rgba(var(--neon),0));opacity:.5;transition:opacity 1s var(--ease);pointer-events:none;z-index:-1}
.pt__act:hover::before{opacity:1}
.neon{position:relative;display:inline-flex;align-items:center;gap:clamp(12px,1.4vw,18px);padding:clamp(10px,1.1vw,14px) clamp(18px,2.2vw,28px) clamp(8px,.9vw,12px);border:2px solid var(--red);border-radius:12px;color:var(--ink);text-decoration:none;font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:clamp(1.1rem,2.2vw,1.7rem);line-height:1;letter-spacing:.04em;white-space:nowrap;box-shadow:0 0 5px rgba(var(--neon),.26),0 0 16px rgba(var(--neon),.12),inset 0 0 6px rgba(var(--neon),.14);transition:border-color .4s,box-shadow .4s}
.neon:hover,.neon:focus-visible{box-shadow:0 0 8px rgba(var(--neon),.4),0 0 26px rgba(var(--neon),.2),0 0 54px rgba(var(--neon),.08),inset 0 0 8px rgba(var(--neon),.22)}
.neon:focus-visible{outline:2px solid var(--ink);outline-offset:6px}
.neon::before{content:"";position:absolute;inset:-2px;border-radius:inherit;padding:2px;background:conic-gradient(from var(--neon-a),transparent 0 76%,var(--red-hot) 86%,#fff 91%,transparent 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;opacity:0;transition:opacity .3s;pointer-events:none}
.neon:hover::before,.neon:focus-visible::before{opacity:1;animation:neonRun 1.3s linear infinite}
@keyframes neonRun{to{--neon-a:360deg}}
.neon__arr{position:relative;flex:none;width:clamp(22px,2.2vw,30px);height:2px;background:currentColor;border-radius:1px;transition:width .4s var(--ease)}
.neon__arr::after{content:"";position:absolute;right:-1px;top:50%;width:10px;height:10px;border-top:2px solid currentColor;border-right:2px solid currentColor;border-radius:1px;transform:translateY(-50%) rotate(45deg)}
.neon:hover .neon__arr,.neon:focus-visible .neon__arr{width:clamp(34px,3.4vw,48px)}
@media (prefers-reduced-motion:no-preference){
  .js .pt__act.rv:not(.is-in) .neon{border-color:rgba(10,12,15,.14);box-shadow:none}
  .js .pt__act.rv:not(.is-in)::before{opacity:0}
  .js .pt__act.is-in .neon{animation:neonOn 1.2s linear backwards}
  .js .pt__act.is-in .neon::after{content:"";position:absolute;inset:-2px;border-radius:inherit;box-shadow:0 0 12px rgba(var(--neon),.22),0 0 32px rgba(var(--neon),.09);pointer-events:none;animation:neonBreath 5.5s ease-in-out 1.3s infinite}
  @keyframes neonOn{
    0%,18%{border-color:rgba(10,12,15,.14);box-shadow:none}
    22%,27%{border-color:var(--red);box-shadow:0 0 5px rgba(var(--neon),.26),0 0 16px rgba(var(--neon),.12),inset 0 0 6px rgba(var(--neon),.14)}
    30%,36%{border-color:rgba(var(--neon),.45);box-shadow:none}
    40%,100%{border-color:var(--red);box-shadow:0 0 5px rgba(var(--neon),.26),0 0 16px rgba(var(--neon),.12),inset 0 0 6px rgba(var(--neon),.14)}
  }
  @keyframes neonBreath{0%,100%{opacity:.45}50%{opacity:1}}
}
@media (max-width:760px){.pt__act{justify-content:center}.neon{border-radius:10px}}

/* ==========================================================================
   GEN-LAV — Lavorazioni in home (fra showreel e team): titolo, foto + elenco
   delle sei lavorazioni, scheda tecnica con valori grandi e righello in scala
   logaritmica (1–10.000) con l'intervallo in rosso che si disegna una volta.
   Testi esatti dalla pagina Lavorazioni (modulo _build/lav.py).
   ========================================================================== */
.lv-sec .sc{display:inline-block;text-transform:lowercase}
.lv-sec .sc::first-letter{text-transform:uppercase}
.lv-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px 48px;align-items:end;margin-bottom:clamp(44px,5.5vw,80px)}
.lv-head .h2{margin:0;text-wrap:balance}
.lv-go{color:var(--ink);padding-block:8px;white-space:nowrap}
.lv-go:hover{color:var(--red-deep)}
.lv-body{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(20px,2.4vw,36px);align-items:start}
.lv-img{grid-column:1/span 7;margin:0;aspect-ratio:4/3;overflow:hidden;border-radius:var(--r-lg);background:var(--paper-2)}
.lv-img img{display:block;width:100%;height:100%;object-fit:cover}
.lv-ops{grid-column:9/-1}
.lv-k{margin:0 0 14px;font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--dim-l)}
.lv-ops ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.lv-ops li{padding:16px 0;border-bottom:1px solid var(--line-l);font-size:clamp(1.1rem,1.4vw,1.3rem);font-weight:500;line-height:1.25;letter-spacing:-.01em;color:var(--ink)}
.lv-specs{margin-top:clamp(64px,8vw,120px)}
.lv-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.4vw,36px)}
.lv-spec{padding-top:16px;border-top:1px solid var(--ink)}
.lv-spec__k{margin:0;font-size:.95rem;color:var(--dim-l)}
.lv-spec__v{display:flex;align-items:baseline;flex-wrap:wrap;margin:16px 0 20px;font-family:var(--display);font-weight:700;font-size:clamp(3.4rem,6.4vw,6rem);line-height:.9;letter-spacing:.005em;color:var(--ink);font-variant-numeric:tabular-nums}
.lv-spec__v em{margin-right:.3em;font-family:var(--body);font-style:normal;font-weight:500;font-size:.24em;letter-spacing:0;color:var(--dim-l)}
.lv-spec__v .to::before{content:"–";margin:0 .14em 0 -.03em}
.lv-spec__v small{margin-left:.25em;font-family:var(--body);font-weight:500;font-size:.24em;letter-spacing:0;color:var(--dim-l)}
.lv-rule{display:block;width:100%;height:24px;overflow:visible;color:rgba(10,12,15,.32)}
.lv-rule .tk line{stroke:currentColor;stroke-width:1;vector-effect:non-scaling-stroke}
.lv-rule .rng{fill:var(--red)}
.js .lv-rule .rng{transform-box:fill-box;transform-origin:0 50%;transform:scaleX(0);transition:transform 1.4s var(--ease)}
.js .lv-spec.is-in .rng{transform:none}
.lv-spec:nth-child(2) .rng{transition-delay:.12s}
.lv-spec:nth-child(3) .rng{transition-delay:.24s}
@media (prefers-reduced-motion:reduce){.js .lv-rule .rng{transform:none;transition:none}}
@media (max-width:980px){
  .lv-head{grid-template-columns:1fr}
  .lv-img,.lv-ops{grid-column:1/-1}
  .lv-ops{margin-top:12px}
  .lv-grid{grid-template-columns:1fr;gap:40px}
}

/* ==========================================================================
   GEN-LAVX — "Linea di taglio" (Lavorazioni in home). Sezione chiara fissata per
   circa tre schermate: lo scroll fa scorrere i fotogrammi della produzione in una
   fascia cinemascope e guida l'interfaccia tecnica in rosso: laser che scende sulle
   lame (spessori), quota verticale (altezze), cerchio del diametro (diametri esterni),
   poi le sei lavorazioni sopra il video. I valori si misurano e i righelli si
   riempiono in diretta. Statica su mobile, senza JS e con movimento ridotto.
   ========================================================================== */
.lvx .sc{display:inline-block;text-transform:lowercase}
.lvx .sc::first-letter{text-transform:uppercase}
.lvx__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px 48px}
.lvx__h2{margin:0;font-size:clamp(2rem,3.4vw,3.4rem);text-wrap:balance}
.lvx__frame{position:relative;margin-top:clamp(28px,4vw,48px)}
.lvx__band{position:relative;aspect-ratio:2.35/1;overflow:hidden;border-radius:var(--r-lg);background:var(--bg)}
.lvx__poster,.lvx__cv{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
.lvx__cv{opacity:0}
.lvx__hud{display:none}
.lvx__ops{margin-top:clamp(28px,4vw,48px)}
.lvx__ops ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:clamp(20px,2.4vw,36px);border-top:1px solid var(--ink)}
.lvx__ops li{padding:14px 0;border-bottom:1px solid var(--line-l);font-size:clamp(1.02rem,1.3vw,1.2rem);font-weight:500;line-height:1.25;color:var(--ink)}
.lvx__specs{margin-top:clamp(40px,5vw,72px)}
.lvx__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.4vw,36px)}
.lvx__num{display:inline-block}

/* versione viva (desktop, movimento normale): la sezione resta ferma e lo scroll guida tutto */
.lvx--live{padding-block:0}
.lvx--live .lvx__stage{display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding-top:calc(var(--hdr-h) + 14px);padding-bottom:22px}
.lvx--live .lvx__frame{margin-top:clamp(16px,2.4vh,30px)}
.lvx--live .lvx__band{aspect-ratio:auto;height:clamp(220px,calc(100vh - 440px),600px)}
.lvx--live.lvx--drawn .lvx__cv{opacity:1}
.lvx--live .lvx__band::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 4px),linear-gradient(to top,rgba(10,12,15,.5),rgba(10,12,15,0) 42%)}
.lvx--live .lvx__hud{display:block;position:absolute;inset:0;z-index:2;pointer-events:none}
.lvx__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,12,15,.86),rgba(10,12,15,.4) 62%,rgba(10,12,15,.18));opacity:var(--oo,0)}
.lvx__c{position:absolute;width:22px;height:22px;border:0 solid rgba(255,255,255,.9)}
.lvx__c--tl{left:16px;top:16px;border-top-width:1.5px;border-left-width:1.5px}
.lvx__c--tr{right:16px;top:16px;border-top-width:1.5px;border-right-width:1.5px}
.lvx__c--bl{left:16px;bottom:30px;border-bottom-width:1.5px;border-left-width:1.5px}
.lvx__c--br{right:16px;bottom:30px;border-bottom-width:1.5px;border-right-width:1.5px}
.lvx__laser{position:absolute;left:0;right:0;top:0;height:2px;background:var(--red);box-shadow:0 0 14px 3px rgba(226,64,75,.55),0 0 2px rgba(255,255,255,.8);transform:translateY(calc(var(--lt,0) * (var(--bh,400px) - 2px)));opacity:0;transition:opacity .3s}
.lvx__laser::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:70px;background:linear-gradient(to top,rgba(226,64,75,.2),rgba(226,64,75,0))}
.lvx__frame[data-c="0"] .lvx__laser{opacity:1}
.lvx__dim{position:absolute;right:13%;bottom:13%;width:26px;height:72%;opacity:0;transition:opacity .3s;background:repeating-linear-gradient(to top,rgba(255,255,255,.6) 0 1px,transparent 1px 10%) 0 0/7px 100% no-repeat}
.lvx__dim::before{content:"";position:absolute;left:12px;bottom:0;width:2px;height:100%;background:var(--red);box-shadow:0 0 12px 2px rgba(226,64,75,.5);transform-origin:50% 100%;transform:scaleY(var(--dt,0))}
.lvx__dim::after{content:"";position:absolute;left:4px;bottom:calc(var(--dt,0) * 100%);width:18px;height:2px;background:var(--red)}
.lvx__frame[data-c="1"] .lvx__dim{opacity:1}
.lvx__ring{position:absolute;right:9%;top:46%;height:74%;aspect-ratio:1;overflow:visible;transform:translateY(-50%);opacity:0;transition:opacity .3s}
.lvx__ring-o{fill:none;stroke:rgba(255,255,255,.4);stroke-width:.6;stroke-dasharray:1 2}
.lvx__ring-a{fill:none;stroke:var(--red);stroke-width:1.4;stroke-dasharray:100;stroke-dashoffset:100;transform:rotate(-90deg);transform-origin:50% 50%;filter:drop-shadow(0 0 3px rgba(226,64,75,.7))}
.lvx__ring-d{stroke:var(--red);stroke-width:.8;transform-origin:50% 50%;transform:scaleX(var(--rt,0))}
.lvx__frame[data-c="2"] .lvx__ring{opacity:1}
.lvx__cross{position:absolute;left:calc(var(--cx,.3) * 100%);top:calc(var(--cy,.5) * 100%);width:34px;height:34px;margin:-17px 0 0 -17px;transition:opacity .3s;background:radial-gradient(circle,rgba(255,255,255,0) 5px,rgba(255,255,255,.9) 5.5px 6.5px,rgba(255,255,255,0) 7px),linear-gradient(rgba(255,255,255,.9),rgba(255,255,255,.9)) 50% 0/1px 9px no-repeat,linear-gradient(rgba(255,255,255,.9),rgba(255,255,255,.9)) 50% 100%/1px 9px no-repeat,linear-gradient(rgba(255,255,255,.9),rgba(255,255,255,.9)) 0 50%/9px 1px no-repeat,linear-gradient(rgba(255,255,255,.9),rgba(255,255,255,.9)) 100% 50%/9px 1px no-repeat}
.lvx__frame[data-c="3"] .lvx__cross{opacity:0}
.lvx__prog{position:absolute;left:16px;right:16px;bottom:16px;height:2px;background:rgba(255,255,255,.25)}
.lvx__prog b{position:absolute;inset:0;background:var(--red);transform-origin:0 50%;transform:scaleX(var(--p,0))}
.lvx__prog s{position:absolute;top:-3px;width:1px;height:8px;background:rgba(255,255,255,.75)}
.lvx__prog s:nth-of-type(1){left:25%}
.lvx__prog s:nth-of-type(2){left:50%}
.lvx__prog s:nth-of-type(3){left:75%}
.lvx--live .lvx__ops{position:absolute;left:clamp(24px,3.4vw,52px);top:50%;z-index:3;margin:0;transform:translateY(-50%);pointer-events:none}
.lvx--live .lvx__ops .lv-k{color:rgba(255,255,255,.72);opacity:var(--oo,0)}
.lvx--live .lvx__ops ul{display:block;border:0}
.lvx--live .lvx__ops li{--on:clamp(0,calc(var(--ot,0) * 7.5 - var(--k)),1);display:flex;align-items:center;gap:14px;padding:5px 0;border:0;color:#fff;font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:clamp(1.5rem,2.6vw,2.6rem);line-height:1;letter-spacing:.005em;opacity:calc(var(--oo,0) * var(--on));transform:translateX(calc((1 - var(--on)) * -28px))}
.lvx--live .lvx__ops li::before{content:"";flex:none;width:18px;height:2px;background:var(--red)}
.lvx--live .lvx__specs{margin-top:clamp(14px,2.2vh,28px)}
.lvx--live .lv-spec__v{margin:8px 0 10px;font-size:clamp(2.2rem,3.6vw,3.6rem)}
.lvx--live .lvx__spec{opacity:.3;transition:opacity .4s,border-color .4s}
.lvx--live .lvx__spec.is-on,.lvx--live .lvx__spec.is-done{opacity:1}
.lvx--live .lvx__spec.is-on{border-top-color:var(--red)}
.lvx--live .lvx__spec .rng{transition:none}
@media (max-width:899px){
  .lvx__band{aspect-ratio:16/10}
  .lvx__ops ul,.lvx__grid{grid-template-columns:1fr}
  .lvx__grid{gap:36px}
}

/* ==========================================================================
   GEN-KPI — i quattro numeri della home come contatore meccanico. Ogni cifra è
   un rullo che gira quando la sezione entra (e torna indietro se risali), le
   cifre a destra girano di più, con una scia verticale proporzionale alla
   velocità e i bordi del rullo sfumati; la riga rossa in alto si riempie
   insieme. Griglia a filetti sottili, niente gradienti né trattini.
   Valori dei contatori del sito (verificati in build_home sull'html originale).
   ========================================================================== */
.sec--kpi{padding-block:clamp(56px,6.5vw,96px)}
.kpi{position:relative;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line-d);border-bottom:1px solid var(--line-d)}
.kpi__bar{position:absolute;left:0;right:0;top:-1px;height:1px;background:var(--red);transform-origin:0 50%;transform:scaleX(var(--kp,1))}
.kpi__it{min-width:0;padding:clamp(26px,2.8vw,40px) clamp(16px,2.2vw,36px) clamp(24px,2.6vw,36px)}
.kpi__it:nth-child(2){padding-left:0}
.kpi__it+.kpi__it{border-left:1px solid var(--line-d)}
.kpi__n{margin:0;font-family:var(--display);font-weight:700;font-size:clamp(2.7rem,4.4vw,4.4rem);line-height:1.1;letter-spacing:0;color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap}
.kpi__l{margin:clamp(8px,1vw,14px) 0 0;max-width:16ch;font-size:clamp(.95rem,1.1vw,1.06rem);line-height:1.4;color:rgba(255,255,255,.62)}
.kpi__sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.odo{display:inline-flex;vertical-align:top}
.odo__w{display:inline-block;height:var(--cell,1.1em);margin:0 -.12em;padding:0 .12em;overflow:hidden;-webkit-mask-image:linear-gradient(transparent,#000 9%,#000 91%,transparent);mask-image:linear-gradient(transparent,#000 9%,#000 91%,transparent)}
.odo__r{display:block}
.odo__r{margin:0 -.3em}
.odo__r span{display:block;height:var(--cell,1.1em);line-height:var(--cell,1.1em);text-align:center}
/* 19/10: rulli e riga rossa con transizioni CSS sul solo transform (compositore), niente filtro di sfocatura */
.kpi--live .kpi__bar{transform:scaleX(0)}
.kpi--live.is-in .kpi__bar{transform:scaleX(1)}
.kpi--anim .kpi__bar{transition:transform 2.4s cubic-bezier(.42,0,.58,1) .1s}
.kpi--anim .odo__r{transition-property:transform;transition-timing-function:cubic-bezier(.42,0,.58,1)}
@media (max-width:900px){
  .kpi{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi__it:nth-child(4){border-left:0;padding-left:0}
  .kpi__it:nth-child(n+4){border-top:1px solid var(--line-d)}
}

/* icone sopra i numeri: rosse a linea sottile, si disegnano mentre girano i rulli */
.kpi__ic{display:block;width:clamp(30px,2.6vw,38px);height:clamp(30px,2.6vw,38px);margin-bottom:clamp(16px,1.8vw,24px);color:var(--red)}
.kpi__ic svg{display:block;width:100%;height:100%;overflow:visible}
.js .kpi__ic svg>*{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.4s var(--ease)}
.js .kpi.is-in .kpi__ic svg>*{stroke-dashoffset:0}
.js .kpi.is-in .kpi__ic svg>*:nth-child(2){transition-delay:.15s}
.js .kpi.is-in .kpi__ic svg>*:nth-child(3){transition-delay:.3s}
.js .kpi.is-in .kpi__ic svg>*:nth-child(4){transition-delay:.45s}
@media (prefers-reduced-motion:reduce){.js .kpi__ic svg>*{stroke-dashoffset:0;transition:none}}

/* ==========================================================================
   GEN-CAT3 — Prodotti in home: il bento di prima (tessera grande a sinistra su
   due righe, quattro tessere 2x2 a destra, fascia con testo e pulsanti sotto)
   su fondo nero. Resta bento a ogni larghezza da 600px in su, così non va mai
   a capo su quattro righe; sul telefono le tessere scorrono col dito.
   ========================================================================== */
.cat--bento{background:var(--bg);color:#fff}
.cat--bento .cat__head .h2{color:#fff}
.cat--bento .cat__intro{color:var(--dim)}
.cat--bento .cat__grid{margin-top:clamp(44px,5vw,72px);grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:clamp(150px,19vw,264px)}
.cat--bento .tile{grid-column:span 3;grid-row:auto;background:var(--raise);box-shadow:none}
.cat--bento .tile:hover{box-shadow:none}
.cat--bento .tile--hero{grid-column:span 6;grid-row:span 2}
.cat--bento .cat__cta{margin-top:clamp(12px,1.4vw,20px);background:var(--raise);border:1px solid var(--line-d)}
@media (max-width:900px){
  .cat--bento .cat__grid{grid-auto-rows:clamp(140px,24vw,220px);gap:10px}
  .cat--bento .tile{grid-column:span 3}
  .cat--bento .tile--hero{grid-column:span 6;grid-row:span 2}
  .cat--bento .tile__h{font-size:clamp(1rem,2.5vw,1.45rem)}
  .cat--bento .tile--hero .tile__h{font-size:clamp(1.5rem,4.2vw,2.3rem)}
  .cat--bento .tile__body{padding:clamp(12px,1.8vw,18px)}
  .cat--bento .tile__go{width:32px;height:32px;font-size:.9rem}
}
@media (max-width:599px){
  .cat--bento .cat__grid{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad);scroll-padding-inline:var(--pad);scrollbar-width:none}
  .cat--bento .cat__grid::-webkit-scrollbar{display:none}
  .cat--bento .tile,.cat--bento .tile--hero{flex:0 0 72vw;height:clamp(300px,92vw,400px);scroll-snap-align:start}
  .cat--bento .tile__h,.cat--bento .tile--hero .tile__h{font-size:clamp(1.5rem,7vw,2rem)}
}

/* ==========================================================================
   GEN-CAT4 — Prodotti in home, versione minimale: stesso bento su fondo nero ma
   titolo piccolo in testo normale, testo d'apertura leggero, nomi dei prodotti
   piccoli in basso con una freccia sottile (niente cerchi), tessere ferme che
   al passaggio ingrandiscono appena la foto; chiusura in una riga con due link.
   ========================================================================== */
.cat--min .cat__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:16px 40px}
.cat--min .cat__head .h2{margin:0;font-family:var(--body);font-weight:500;text-transform:none;font-size:clamp(1.6rem,2.4vw,2.4rem);line-height:1.12;letter-spacing:-.025em;color:#fff}
.cat--min .cat__intro{max-width:48ch;margin:0;font-size:.98rem;line-height:1.65;color:rgba(255,255,255,.55)}
.cat--min .cat__grid{margin-top:clamp(36px,4vw,56px);gap:10px}
.cat--min .tile{border-radius:4px}
.cat--min .tile:hover{transform:none}
.cat--min .tile:hover img{transform:scale(1.03)}
.cat--min .tile::after{background:linear-gradient(180deg,rgba(10,12,15,0) 55%,rgba(10,12,15,.6) 100%)}
.cat--min .tile__body{display:flex;align-items:center;gap:10px;padding:clamp(14px,1.4vw,20px)}
.cat--min .tile__h,.cat--min .tile--hero .tile__h{font-family:var(--body);font-weight:500;text-transform:lowercase;font-size:clamp(.92rem,1vw,1rem);line-height:1.2;letter-spacing:0}
.cat--min .tile__h::first-letter{text-transform:uppercase}
.tile__arr{position:relative;flex:none;width:12px;height:1px;background:currentColor;opacity:0;transform:translateX(-6px);transition:opacity .35s,transform .45s var(--ease),width .45s var(--ease)}
.tile__arr::after{content:"";position:absolute;right:0;top:-3px;width:6px;height:6px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
.cat--min .tile:hover .tile__arr,.cat--min .tile:focus-visible .tile__arr{opacity:1;transform:none}
.catm{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:16px 48px;margin-top:clamp(28px,3vw,40px);padding-top:20px;border-top:1px solid var(--line-d)}
.catm__t{margin:0;max-width:72ch;font-size:.98rem;line-height:1.6;color:rgba(255,255,255,.55)}
.catm__t span:first-child{color:rgba(255,255,255,.88)}
.catm__acts{display:flex;flex-wrap:wrap;align-items:center;gap:12px 32px}
.catm__l{display:inline-flex;align-items:center;gap:10px;padding-bottom:3px;border-bottom:1px solid rgba(255,255,255,.25);color:#fff;font-size:.95rem;font-weight:500;text-decoration:none;white-space:nowrap;transition:border-color .3s}
.catm__l:hover,.catm__l:focus-visible{border-bottom-color:#fff}
.catm__l .tile__arr{opacity:1;transform:none}
.catm__l:hover .tile__arr{width:18px}
.catm__sc{display:inline-block;text-transform:lowercase}
.catm__sc::first-letter{text-transform:uppercase}
.catm__tag{font-size:.56rem;color:rgba(255,255,255,.5)}

@media (max-width:599px){.cat--min .tile__h,.cat--min .tile--hero .tile__h{font-size:1rem}}

/* terza riga del bento Prodotti: tre tessere da un terzo (Cartogeni, Termoprotettori, Mica) */
.cat--bento .tile--third{grid-column:span 4}
@media (max-width:900px){.cat--bento .tile--third{grid-column:span 4}}

/* ==========================================================================
   GEN-LAVM — Lavorazioni in home, versione minimale e chiara: titolo piccolo con
   il link, foto nitida della macchina e accanto le sei lavorazioni in elenco,
   sotto una sola riga con le tre misure. Niente animazioni, poco testo.
   ========================================================================== */
.lvm .sc{display:inline-block;text-transform:lowercase}
.lvm .sc::first-letter{text-transform:uppercase}
.lvm__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:16px 40px}
.lvm__h2{margin:0;max-width:30ch;font-family:var(--body);font-weight:500;font-size:clamp(1.6rem,2.4vw,2.4rem);line-height:1.12;letter-spacing:-.025em;color:var(--ink);text-wrap:balance}
.lvm__l{display:inline-flex;align-items:center;gap:10px;padding-bottom:3px;border-bottom:1px solid rgba(10,12,15,.3);color:var(--ink);font-size:.95rem;font-weight:500;text-decoration:none;white-space:nowrap;transition:border-color .3s}
.lvm__l:hover,.lvm__l:focus-visible{border-bottom-color:var(--ink)}
.lvm__arr{position:relative;width:12px;height:1px;background:currentColor;transition:width .45s var(--ease)}
.lvm__arr::after{content:"";position:absolute;right:0;top:-3px;width:6px;height:6px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
.lvm__l:hover .lvm__arr{width:18px}
.lvm__body{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:start;margin-top:clamp(36px,4vw,56px)}
.lvm__img{margin:0;aspect-ratio:16/10;overflow:hidden;border-radius:4px;background:var(--paper-2)}
.lvm__img img{display:block;width:100%;height:100%;object-fit:cover}
.lvm__ops{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-l)}
.lvm__ops li{padding:14px 0;border-bottom:1px solid var(--line-l);font-size:1rem;line-height:1.3;color:var(--ink)}
.lvm__specs{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px clamp(24px,4vw,64px);margin:clamp(28px,3vw,40px) 0 0;padding:20px 0 0;border-top:1px solid var(--line-l)}
.lvm__specs li{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.lvm__k{font-size:.92rem;color:var(--dim-l)}
.lvm__v{font-size:1rem;font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.lvm__v em{font-style:normal;font-weight:400;color:var(--dim-l)}
.lvm__v small{font-size:.85em;color:var(--dim-l)}
@media (max-width:900px){.lvm__body{grid-template-columns:1fr}.lvm__specs{grid-template-columns:1fr}}

/* ==========================================================================
   GEN-LAVC — Lavorazioni "Cinema": film a tutto schermo con le riprese vere.
   La sezione resta ferma e lo scroll scorre i fotogrammi di quattro spezzoni
   (lame, bobina kraft, avvolgitore, operatore) con un lento avvicinamento.
   In alto la frase del sito che dice a cosa serve; in basso, enorme, il valore
   del capitolo che si misura mentre scorri; alla fine le sei lavorazioni.
   ========================================================================== */
.lvc{position:relative;background:var(--bg);color:#fff}
.lvc .sc{display:inline-block;text-transform:lowercase}
.lvc .sc::first-letter{text-transform:uppercase}
.lvc__pin{position:relative;overflow:hidden}
.lvc__poster{display:block;width:100%;aspect-ratio:21/9;object-fit:cover}
.lvc__cv,.lvc__veil{display:none}
.lvc__top{position:relative;z-index:2;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:16px 40px;padding-top:var(--sec-y);padding-bottom:clamp(28px,3vw,44px)}
.lvc__h2{margin:0;max-width:24ch;font-family:var(--body);font-weight:500;font-size:clamp(1.4rem,2.2vw,2.2rem);line-height:1.15;letter-spacing:-.022em;color:#fff;text-wrap:balance}
.lvc__l{display:inline-flex;align-items:center;gap:10px;padding-bottom:3px;border-bottom:1px solid rgba(255,255,255,.35);color:#fff;font-size:.95rem;font-weight:500;text-decoration:none;white-space:nowrap;transition:border-color .3s}
.lvc__l:hover,.lvc__l:focus-visible{border-bottom-color:#fff}
.lvc__arr{position:relative;width:12px;height:1px;background:currentColor;transition:width .45s var(--ease)}
.lvc__arr::after{content:"";position:absolute;right:0;top:-3px;width:6px;height:6px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
.lvc__l:hover .lvc__arr{width:18px}
.lvc__top{order:-1}
.lvc__pin{display:flex;flex-direction:column}
.lvc__bottom{position:relative;z-index:2;padding-top:clamp(32px,4vw,56px);padding-bottom:var(--sec-y)}
.lvc__lab{margin:0 0 14px;font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.lvc__chs{display:grid;gap:clamp(28px,4vw,48px)}
.lvc__k{margin:0 0 6px;font-size:clamp(1rem,1.3vw,1.25rem);color:rgba(255,255,255,.75)}
.lvc__v{display:flex;flex-wrap:wrap;align-items:baseline;margin:0;font-family:var(--display);font-weight:700;font-size:clamp(4rem,9vw,8rem);line-height:.86;letter-spacing:-.005em;color:#fff;font-variant-numeric:tabular-nums}
.lvc__v em{margin-right:.6em;font-family:var(--body);font-style:normal;font-weight:500;font-size:.17em;letter-spacing:0;color:rgba(255,255,255,.75)}
.lvc__to::before{content:"–";margin:0 .08em 0 -.04em}
.lvc__v small{margin-left:.2em;font-family:var(--body);font-weight:500;font-size:.17em;letter-spacing:0;color:rgba(255,255,255,.75)}
.lvc__num{display:inline-block}
.lvc__ch--ops .lvc__k{margin-bottom:12px;font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.lvc__ch--ops ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(24px,4vw,64px);max-width:1000px}
.lvc__ch--ops li{padding:12px 0;border-bottom:1px solid rgba(255,255,255,.2);font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:clamp(1.3rem,2.6vw,2.6rem);line-height:1}
.lvc__prog{display:none}

/* versione viva: tutto schermo, fermo, guidato dallo scroll */
.lvc--live .lvc__pin{display:flex;flex-direction:column;justify-content:space-between;height:100vh;min-height:520px}
.lvc--live .lvc__poster,.lvc--live .lvc__cv{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
.lvc--live .lvc__cv{display:block;opacity:0;transition:opacity .4s}
.lvc--live.lvc--drawn .lvc__cv{opacity:1}
.lvc--live .lvc__veil{display:block;position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(10,12,15,.74) 0%,rgba(10,12,15,.18) 26%,rgba(10,12,15,.12) 48%,rgba(10,12,15,.86) 100%)}
.lvc--live .lvc__top{padding-top:calc(var(--hdr-h) + clamp(18px,3vh,40px));padding-bottom:0}
.lvc--live .lvc__bottom{padding-top:0;padding-bottom:clamp(24px,5vh,56px)}
.lvc--live .lvc__chs{gap:0}
.lvc--live .lvc__ch{grid-area:1/1;align-self:end;opacity:0;transform:translateY(26px);transition:opacity .5s,transform .8s var(--ease)}
.lvc--live .lvc__ch.is-on{opacity:1;transform:none}
.lvc--live .lvc__v{font-size:clamp(4.6rem,13vw,13rem)}
.lvc--live .lvc__lab{transition:opacity .4s}
.lvc--live[data-c="3"] .lvc__lab{opacity:0}
.lvc--live .lvc__ch--ops li{--on:clamp(0,calc(var(--ot,0) * 7 - var(--k)),1);opacity:var(--on);transform:translateY(calc((1 - var(--on)) * 14px))}
.lvc--live .lvc__prog{position:relative;display:block;height:1px;margin-top:clamp(18px,3vh,32px);background:rgba(255,255,255,.22)}
.lvc__prog b{position:absolute;inset:0;background:var(--red);transform-origin:0 50%;transform:scaleX(var(--p,0))}
.lvc__prog s{position:absolute;top:-3px;width:1px;height:7px;background:rgba(255,255,255,.7)}
.lvc__prog s:nth-of-type(1){left:25%}
.lvc__prog s:nth-of-type(2){left:50%}
.lvc__prog s:nth-of-type(3){left:75%}
@media (max-width:600px){.lvc__ch--ops ul{grid-template-columns:1fr}.lvc__ch--ops li{padding:9px 0;font-size:1.35rem}}

/* team dalla brochure: le foto hanno width/height nell'HTML (niente salti di layout), l'altezza la decide il 3:4 */
.tmember img{height:auto}

/* ===== GEN-PH: hero "Cinema" delle schede prodotto (scheda_hero.py) — scelta 07/10 fra le 3 prove ===== */
.ph{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;min-height:clamp(640px,100svh,1000px);
  background:#000;color:#fff;--ph-dim:rgba(255,255,255,.6);--ph-line:rgba(255,255,255,.16);--ph-out:cubic-bezier(.16,1,.3,1)}
.ph a{color:inherit;text-decoration:none}
.ph__media{position:absolute;inset:0;overflow:hidden;background:#0A0C0F;opacity:0;transition:opacity 1.4s ease}
.ph__media::after{content:"";position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(180deg,rgba(10,12,15,.62) 0,rgba(10,12,15,0) 24%),
  linear-gradient(0deg,rgba(10,12,15,.94) 0,rgba(10,12,15,.62) 30%,rgba(10,12,15,0) 64%),
  linear-gradient(90deg,rgba(10,12,15,.5) 0,rgba(10,12,15,0) 60%)}
.ph__par{position:absolute;inset:-7% 0;will-change:transform}
/* mini zoom: la foto avanza piano per tutta la permanenza (niente loop) */
.ph__par img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1);transition:transform 16s cubic-bezier(.25,.1,.35,1)}
.ph__in{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,380px);align-items:end;gap:26px 56px;
  padding:calc(var(--hdr-h) + 24px) var(--pad) clamp(30px,3.2vw,48px)}
.ph__crumb{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0;font-size:.76rem;letter-spacing:.01em;color:var(--ph-dim)}
.ph__crumb a{transition:color .3s}.ph__crumb a:hover{color:#fff}
.ph__crumb i{font-style:normal;opacity:.45}
.ph__h{margin:0;font:inherit}
.ph__name{display:block;overflow:hidden;font-family:var(--body);font-weight:500;letter-spacing:-.058em;line-height:.84;
  padding:0 .04em .09em 0;margin:0 0 -.09em -.04em;text-wrap:balance}
.ph__name>span{display:inline-block;max-width:100%;transform:translateY(108%);transition:transform 1.25s var(--ph-out) .2s}   /* inline-block: il js misura se una parola esce e riduce il corpo (fitName) */
.ph__name--s{font-size:clamp(7rem,25vw,24rem);letter-spacing:-.07em}
.ph__name--m{font-size:clamp(4rem,11.6vw,12rem)}
.ph__name--l{font-size:clamp(3.4rem,8.4vw,9rem)}
.ph__name--xl{font-size:clamp(2.8rem,6.4vw,7rem);line-height:.9}
.ph__title{display:block;margin-top:clamp(18px,2vw,30px);font-size:clamp(1.06rem,1.32vw,1.32rem);font-weight:500;letter-spacing:-.012em;line-height:1.3}
.ph__meta{padding-bottom:.3em}
.ph__sub{margin:0;font-size:clamp(.98rem,1.08vw,1.06rem);line-height:1.58;color:var(--ph-dim);max-width:42ch;text-wrap:pretty}
.ph__cta{display:inline-flex;align-items:center;gap:12px;margin-top:clamp(22px,2.4vw,32px);padding-bottom:7px;font-weight:500;font-size:.96rem;
  background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat}
.ph__cta svg,.ph__next svg{width:18px;height:18px;transition:transform .45s var(--ph-out)}
.ph__cta:hover svg,.ph__next:hover svg{transform:translateX(4px)}
.ph__bar{position:relative;z-index:2;padding-inline:var(--pad)}
.ph__barin{position:relative;display:flex;align-items:center;justify-content:space-between;gap:20px 40px;padding-block:clamp(20px,2.2vw,28px)}
.ph__barin::before{content:"";position:absolute;inset:0 0 auto;height:1px;background:var(--ph-line);transform:scaleX(0);transform-origin:left;transition:transform 1.5s var(--ph-out) .45s}
.ph__specs{display:flex;flex-wrap:wrap;gap:16px clamp(28px,4.6vw,80px);margin:0}
.ph__specs--none{flex:1}
.ph__spec dt{margin:0 0 8px;font-size:.64rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ph-dim)}
.ph__spec dd{margin:0;font-size:clamp(.98rem,1.14vw,1.12rem);font-weight:500;letter-spacing:-.005em;font-variant-numeric:tabular-nums}
.ph__next{display:inline-flex;align-items:center;gap:10px;flex:none;font-weight:500;font-size:.94rem;color:var(--ph-dim);transition:color .3s}
.ph__next:hover{color:#fff}
/* entrata (js aggiunge .is-in quando la foto è pronta) */
.ph__crumb,.ph__title,.ph__sub,.ph__cta,.ph__spec,.ph__next{opacity:0;transform:translateY(14px);transition:opacity .9s var(--ph-out),transform .9s var(--ph-out)}
.ph__crumb{transition-delay:.1s}.ph__title{transition-delay:.45s}.ph__sub{transition-delay:.55s}.ph__cta{transition-delay:.65s}
.ph__spec:nth-child(1){transition-delay:.7s}.ph__spec:nth-child(2){transition-delay:.78s}.ph__spec:nth-child(3){transition-delay:.86s}.ph__next{transition-delay:.94s}
.ph.is-in .ph__media{opacity:1}
.ph.is-in .ph__par img{transform:scale(1.06)}
.ph.is-in .ph__name>span,.ph.is-in .ph__crumb,.ph.is-in .ph__title,.ph.is-in .ph__sub,.ph.is-in .ph__cta,.ph.is-in .ph__spec,.ph.is-in .ph__next{opacity:1;transform:none}
.ph.is-in .ph__barin::before{transform:none}
@media (max-width:820px){
  .ph{display:block;min-height:0;background:var(--bg)}
  .ph__media{inset:0 0 auto;height:88svh}
  .ph__in{display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;gap:20px;min-height:88svh;padding:calc(var(--hdr-h) + 16px) var(--pad) 28px}
  .ph__crumb{margin-bottom:auto}
  .ph__name--s{font-size:clamp(6rem,44vw,12rem)}
  .ph__name--m{font-size:clamp(3.2rem,17vw,6rem)}
  .ph__name--l{font-size:clamp(2.8rem,13vw,4.8rem)}
  .ph__name--xl{font-size:clamp(2.3rem,10vw,3.6rem)}
  .ph__barin{flex-direction:column;align-items:stretch;gap:0;padding-block:6px 22px}
  .ph__specs{flex-direction:column;gap:0}
  .ph__spec{display:flex;justify-content:space-between;align-items:baseline;gap:18px;padding:14px 0;border-bottom:1px solid var(--ph-line)}
  .ph__spec dt{margin:0;flex:none}
  .ph__spec dd{text-align:right;font-size:.96rem}
  .ph__next{justify-content:space-between;padding-top:18px}
  .ph__specs--none{display:none}
}
@media (prefers-reduced-motion:reduce){
  .ph *,.ph *::before{transition:none!important}
  .ph__name>span,.ph__crumb,.ph__title,.ph__sub,.ph__cta,.ph__spec,.ph__next{opacity:1;transform:none}
  .ph__media{opacity:1}.ph__barin::before{transform:none}.ph.is-in .ph__par img{transform:none}
}

/* ===== GEN-PCAT: pagina Prodotti — indice nella hero + bento a fisarmonica (build_inner.catalog_page) ===== */
.ph__idx{width:100%;overflow:hidden;opacity:0;transform:translateY(14px);transition:opacity .9s var(--ph-out) .7s,transform .9s var(--ph-out) .7s;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.ph.is-in .ph__idx{opacity:1;transform:none}
.ph__mq{display:flex;width:max-content;animation:phMq 48s linear infinite}
.ph__idx:hover .ph__mq,.ph__idx:focus-within .ph__mq{animation-play-state:paused}
.ph__mq-g{display:flex;flex:none}
.ph__idx a{display:inline-flex;align-items:center;gap:clamp(26px,2.8vw,44px);margin-right:clamp(26px,2.8vw,44px);padding-block:4px;
  font-size:clamp(.96rem,1.1vw,1.08rem);font-weight:500;letter-spacing:-.005em;color:var(--ph-dim);white-space:nowrap;transition:color .3s}
.ph__idx a::after{content:"";flex:none;width:5px;height:5px;border-radius:50%;background:var(--red)}
.ph__idx a:hover{color:#fff}
@keyframes phMq{to{transform:translateX(-50%)}}
.pc{background:var(--bg);color:#fff}
.pc-blk{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,clamp(200px,18.5vw,290px));gap:10px}
.pc-blk--a{grid-template-areas:"a a b c" "a a d e"}
.pc-blk--b{grid-template-areas:"f g h h" "i j h h"}
.pc-pans+.pc-blk{margin-top:10px}
.pc-tile{position:relative;display:block;overflow:hidden;border-radius:4px;background:var(--raise);color:#fff;text-decoration:none;isolation:isolate;scroll-margin-top:calc(var(--hdr-h) + 16px)}
.pc-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease),opacity .5s}
.pc-tile::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(10,12,15,0) 50%,rgba(10,12,15,.66) 100%);transition:background .5s}
.pc-tile:hover img,.pc-tile:focus-visible img{transform:scale(1.04)}
.pc-tile__b{position:absolute;inset:auto 0 0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:clamp(14px,1.4vw,20px)}
.pc-tile__n{font-size:clamp(.92rem,1vw,1rem);font-weight:500;line-height:1.2;text-transform:lowercase}
.pc-tile__n::first-letter{text-transform:uppercase}
.pc-tile--big .pc-tile__n{font-size:clamp(1rem,1.25vw,1.2rem)}
/* + che diventa × (famiglie con prodotti) · freccia (pagina diretta): cerchio in vetro, pieno al passaggio */
.pc-ic{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;color:#fff;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.32);-webkit-backdrop-filter:blur(10px) saturate(1.4);backdrop-filter:blur(10px) saturate(1.4);
  transition:background .35s,color .35s,border-color .35s}
.pc-ic svg{width:17px;height:17px;transition:transform .55s var(--ease)}
.pc-tile:hover .pc-ic,.pc-tile:focus-visible .pc-ic,.pc-tile.is-open .pc-ic{background:#fff;border-color:#fff;color:var(--ink)}
.pc-tile:hover .pc-ic--plus svg{transform:rotate(90deg)}
.pc-tile.is-open .pc-ic--plus svg{transform:rotate(45deg)}
.pc-tile:hover .pc-ic--go svg{transform:translateX(2px)}
/* famiglia aperta: le altre tessere si spengono un poco */
.pc.has-open .pc-tile:not([aria-expanded="true"]) img{opacity:.55}
.pc-tile.is-open::after{background:linear-gradient(180deg,rgba(10,12,15,0) 40%,rgba(10,12,15,.72) 100%)}
.pc-tile.is-open{box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}
/* fisarmonica */
.pc-pan{display:grid;grid-template-rows:0fr;transition:grid-template-rows .65s var(--ease)}
.pc-pan.is-open{grid-template-rows:1fr}
.pc-pan__in{min-height:0;overflow:hidden}
.pc-pan__body{padding:clamp(22px,2.4vw,34px) 0 clamp(14px,1.6vw,22px);opacity:0;transform:translateY(-8px);transition:opacity .45s,transform .6s var(--ease)}
.pc-pan.is-open .pc-pan__body{opacity:1;transform:none;transition-delay:.12s}
.pc-pan__fam{display:inline-flex;align-items:center;gap:10px;margin-bottom:clamp(14px,1.6vw,20px);font-size:.88rem;font-weight:500;color:var(--dim);text-decoration:none;transition:color .3s}
.pc-pan__fam:hover{color:#fff}
.pc-pan__fam svg{width:16px;height:16px;transition:transform .45s var(--ease)}
.pc-pan__fam:hover svg{transform:translateX(4px)}
.pc-pan__list{display:grid;grid-template-columns:repeat(var(--cols,6),minmax(0,1fr));gap:18px 10px;margin:0;padding:0;list-style:none}   /* tutti su una riga: niente prodotto da solo a capo */
.pc-p{display:block;color:#fff;text-decoration:none}
.pc-p__img{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:4px;background:var(--raise)}
.pc-p__img img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.pc-p:hover .pc-p__img img{transform:scale(1.06)}
.pc-p__n{display:block;margin-top:10px;font-size:.86rem;font-weight:500;color:rgba(255,255,255,.8);transition:color .3s}
.pc-p:hover .pc-p__n{color:#fff}
.pc-pan.is-open .pc-p{animation:pcIn .6s var(--ease) both}
.pc-pan.is-open li:nth-child(2) .pc-p{animation-delay:.04s}.pc-pan.is-open li:nth-child(3) .pc-p{animation-delay:.08s}.pc-pan.is-open li:nth-child(4) .pc-p{animation-delay:.12s}
.pc-pan.is-open li:nth-child(5) .pc-p{animation-delay:.16s}.pc-pan.is-open li:nth-child(6) .pc-p{animation-delay:.2s}.pc-pan.is-open li:nth-child(7) .pc-p{animation-delay:.24s}.pc-pan.is-open li:nth-child(8) .pc-p{animation-delay:.28s}
@keyframes pcIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
/* testo del sito sotto il bento: prima frase grande che si accende parola per parola, il resto sotto a destra */
.pc-intro__g{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2vw,32px)}
.pc-intro__big{grid-column:1/12;margin:0;font-size:clamp(1.7rem,3.3vw,3.2rem);font-weight:500;line-height:1.14;letter-spacing:-.028em;color:var(--ink);text-wrap:balance}
.pc-intro__big .w{color:rgba(10,12,15,.15)}
.pc-intro__rest{grid-column:7/13;margin:clamp(36px,4.4vw,64px) 0 0;font-size:clamp(1rem,1.08vw,1.08rem);line-height:1.72;color:var(--dim-l);max-width:54ch;text-wrap:pretty}
@media (max-width:820px){
  .ph__idx{margin-inline:calc(var(--pad) * -1);width:auto;padding-top:14px}
  .ph__mq{animation-duration:36s}
}
@media (max-width:760px){
  .pc-blk{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:auto;gap:8px}
  .pc-tile{height:clamp(150px,44vw,220px)}
  .pc-blk--a,.pc-blk--b{grid-template-areas:none}
  .pc-tile{grid-area:auto!important}   /* ordine del codice: la fisarmonica può entrare subito dopo la sua riga */
  .pc-tile--big{grid-column:1/-1!important}
  .pc-pans+.pc-blk{margin-top:8px}
  .pc-tile.pc-tile--big{height:clamp(200px,56vw,300px)}
  .pc-blk .pc-pan{grid-column:1/-1}
  .pc-pan__body{padding:16px 0 12px}
  .pc-ic{width:34px;height:34px}.pc-ic svg{width:15px;height:15px}
  .pc-intro__big{grid-column:1/-1}
  .pc-intro__rest{grid-column:1/-1}
  .pc-pan__list{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad);scroll-padding-inline:var(--pad)}
  .pc-pan__list::-webkit-scrollbar{display:none}
  .pc-pan__list li{flex:0 0 40vw;scroll-snap-align:start}
}
@media (prefers-reduced-motion:reduce){.pc-pan,.pc-pan__body,.pc-tile img{transition:none}.pc-pan.is-open .pc-p{animation:none}.ph__idx{transition:none;opacity:1;transform:none;overflow-x:auto;-webkit-mask-image:none;mask-image:none}.ph__mq{animation:none}.ph__mq-g[aria-hidden]{display:none}}

/* ===== GEN-CTA: chiusura "Contattaci" di tutte le pagine (build.cta_section) — testo su scuro + foto con mini zoom ===== */
.cta{background:var(--bg);color:#fff;padding:0;text-align:left;overflow:hidden;isolation:isolate}
.cta::before{left:-12%;top:auto;bottom:-55%;transform:none;width:72vw;height:72vw;max-width:980px;max-height:980px;background:radial-gradient(circle,rgba(226,64,75,.2) 0%,rgba(226,64,75,0) 62%);z-index:0}
.cta__g{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);min-height:clamp(540px,74vh,780px)}
.cta__txt{display:flex;flex-direction:column;justify-content:center;padding:clamp(80px,9vw,140px) clamp(28px,5vw,88px) clamp(80px,9vw,140px) var(--pad)}
.cta__h{font-family:var(--body);font-weight:500;text-transform:none;font-size:clamp(2.5rem,5.2vw,5.6rem);line-height:.98;letter-spacing:-.048em;margin:0 0 clamp(18px,2vw,26px);max-width:12ch;text-wrap:balance}
.cta__d{margin:0 0 clamp(32px,3.6vw,48px);max-width:42ch;font-size:clamp(1rem,1.2vw,1.16rem);line-height:1.55;color:var(--dim)}
.cta__row{justify-content:flex-start;gap:18px 30px}
.cta .cta__h .l{padding-bottom:.12em;margin-bottom:-.12em}   /* la maschera dell'entrata non taglia g, p, q */
.cta__btn{display:inline-flex;align-items:center;gap:16px;height:60px;padding:0 9px 0 28px;border-radius:999px;background:#fff;color:var(--ink);font-weight:500;font-size:1.02rem;text-decoration:none;
  box-shadow:0 18px 40px -18px rgba(0,0,0,.7);transition:background .35s,color .35s,box-shadow .35s}
.cta__btn span{display:inline-block;text-transform:lowercase}
.cta__btn span::first-letter{text-transform:uppercase}
.cta__btn i{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--red);color:#fff;transition:transform .55s var(--ease),background .35s}
.cta__btn svg{width:18px;height:18px}
.cta__btn:hover{background:#f3f4f5;box-shadow:0 22px 46px -16px rgba(226,64,75,.45)}
.cta__btn:hover i{transform:rotate(-45deg);background:var(--red-deep)}
.cta__tel{padding-bottom:4px;font-weight:500;font-size:.98rem;color:rgba(255,255,255,.78);text-decoration:none;font-variant-numeric:tabular-nums;
  background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .5s var(--ease),color .3s}
.cta__tel:hover{color:#fff;background-size:100% 1px}
.cta__media{position:relative;margin:0;overflow:hidden;background:var(--raise)}
.cta__media::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,var(--bg) 0,rgba(10,12,15,0) 20%)}
.cta__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 32%;transform:scale(1);transition:transform 16s cubic-bezier(.25,.1,.35,1)}
.cta.is-in .cta__media img{transform:scale(1.06)}
@media (max-width:820px){
  .cta__g{grid-template-columns:1fr;min-height:0}
  .cta__media{order:-1;height:min(92vw,520px)}
  .cta__media::after{background:linear-gradient(0deg,var(--bg) 0,rgba(10,12,15,0) 30%)}
  .cta__txt{padding:28px var(--pad) 72px}
  .cta__h{max-width:none}
  .cta .cta__row{flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:center}
}
@media (prefers-reduced-motion:reduce){.cta__media img{transition:none}.cta.is-in .cta__media img{transform:none}}

/* ===== GEN-FAM: pagine famiglia (build_inner.family_page) — prodotti nella hero, carte grandi, descrizione, altre famiglie ===== */
.ph__plist{display:flex;flex-wrap:wrap;gap:8px clamp(22px,2.4vw,40px);width:100%;opacity:0;transform:translateY(14px);transition:opacity .9s var(--ph-out) .7s,transform .9s var(--ph-out) .7s}
.ph.is-in .ph__plist{opacity:1;transform:none}
.ph__plist a{display:inline-flex;align-items:center;gap:10px;padding-block:4px;font-size:clamp(.96rem,1.1vw,1.08rem);font-weight:500;letter-spacing:-.005em;color:var(--ph-dim);white-space:nowrap;transition:color .3s}
.ph__plist a::before{content:"";flex:none;width:5px;height:5px;border-radius:50%;background:var(--red)}
.ph__plist a:hover{color:#fff}
.fp{background:var(--bg);color:#fff}
.fp__grid{display:grid;grid-template-columns:repeat(var(--cols,4),minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none}
.fp__grid li{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform 1s var(--ease);transition-delay:calc(var(--i,0) * 80ms)}
.fp.is-in .fp__grid li{opacity:1;transform:none}
.fp-card{position:relative;display:block;aspect-ratio:var(--ar,3/4);overflow:hidden;border-radius:4px;background:var(--raise);color:#fff;text-decoration:none;isolation:isolate}
.fp-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.fp-card::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(10,12,15,0) 42%,rgba(10,12,15,.8) 100%)}
.fp-card:hover img,.fp-card:focus-visible img{transform:scale(1.05)}
.fp-card__b{position:absolute;inset:auto 0 0;z-index:2;display:flex;flex-direction:column;gap:6px;padding:clamp(16px,1.6vw,24px) 68px clamp(16px,1.6vw,24px) clamp(16px,1.6vw,24px)}
.fp-card__n{font-size:clamp(1.15rem,1.55vw,1.6rem);font-weight:500;line-height:1.08;letter-spacing:-.022em}
.fp-card__t{font-size:.84rem;line-height:1.35;color:rgba(255,255,255,.72)}
.fp-card .pc-ic{position:absolute;z-index:2;right:clamp(14px,1.4vw,20px);bottom:clamp(14px,1.4vw,22px)}
.fp-card:hover .pc-ic,.fp-card:focus-visible .pc-ic{background:#fff;border-color:#fff;color:var(--ink)}
.fp-card:hover .pc-ic--go svg{transform:translateX(2px)}
.fd .pc-intro__rest{grid-row:2}
.fd__left{grid-column:1/6;grid-row:2;margin-top:clamp(36px,4.4vw,64px)}
.fd__right p{margin:0 0 1.1em}
.fd__right p:last-child{margin-bottom:0}
.fd__h{margin:1.7em 0 .45em;font-size:1.02rem;font-weight:600;letter-spacing:-.005em;color:var(--ink)}
.fd__right>.fd__h:first-child{margin-top:0}
.fd__lead{margin:0 0 16px;font-size:1rem;line-height:1.6;color:var(--dim-l)}
.fd__apps{margin:0;padding:0;list-style:none;border-top:1px solid var(--line-l)}
.fd__apps li{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--line-l);font-size:clamp(.98rem,1.1vw,1.06rem);font-weight:500;color:var(--ink)}
.fd__apps li::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--red)}
.fo{background:var(--bg);color:#fff;padding-block:clamp(64px,7vw,112px)}
.fo__h{display:inline-flex;align-items:center;gap:12px;margin-bottom:clamp(22px,2.4vw,34px);font-size:clamp(1.1rem,1.5vw,1.45rem);font-weight:500;letter-spacing:-.015em;color:#fff;text-decoration:none}
.fo__h svg{width:20px;height:20px;transition:transform .45s var(--ease)}
.fo__h:hover svg{transform:translateX(4px)}
/* costole: tutte uguali, quella sotto il puntatore (o la prima a riposo) si allarga */
.fo__row{display:flex;gap:8px;height:clamp(340px,33vw,470px);margin:0;padding:0;list-style:none}
.fo__row li{flex:1 1 0;min-width:0;transition:flex-grow .95s cubic-bezier(.22,1,.36,1)}
/* lo stato aperto lo decide il js (.is-on, con un attimo di attesa fra una costola e l'altra); senza js vale :hover */
.fo__row li.is-on,html:not(.js) .fo__row li:hover{flex-grow:3.4}
.fo__p{position:relative;display:block;height:100%;overflow:hidden;border-radius:4px;background:var(--raise);color:#fff;text-decoration:none;isolation:isolate}
/* foto a larghezza fissa e centrata: allargandosi la costola scopre la foto invece di ridimensionarla (niente scatti) */
.fo__p img{position:absolute;top:0;left:50%;width:max(100%,min(31vw,440px));height:100%;object-fit:cover;transform:translateX(-50%);filter:saturate(.75) brightness(.8);
  transition:transform 1.6s cubic-bezier(.22,1,.36,1),filter .9s ease}
.fo__p::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(10,12,15,.1) 0,rgba(10,12,15,.7) 100%)}
.fo__row li.is-on img,html:not(.js) .fo__row li:hover img{filter:none;transform:translateX(-50%) scale(1.04)}
.fo__n{position:absolute;z-index:2;left:clamp(14px,1.4vw,20px);bottom:clamp(16px,1.6vw,22px);writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;
  font-size:clamp(.98rem,1.1vw,1.1rem);font-weight:500;letter-spacing:-.005em;text-transform:lowercase}
.fo__n::first-letter{text-transform:uppercase}
.fo__p .pc-ic{position:absolute;z-index:2;right:clamp(14px,1.4vw,20px);bottom:clamp(14px,1.4vw,20px);opacity:0;transform:translateY(8px);transition:opacity .35s,transform .6s cubic-bezier(.22,1,.36,1),background .35s,color .35s}
.fo__row li.is-on .pc-ic,html:not(.js) .fo__row li:hover .pc-ic{opacity:1;transform:none;transition-delay:.25s}
.fo__p:hover .pc-ic{background:#fff;border-color:#fff;color:var(--ink)}
@media (max-width:820px){
  .ph__plist{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:calc(var(--pad) * -1);padding:14px var(--pad) 2px;width:auto}
  .ph__plist::-webkit-scrollbar{display:none}
  .fp__grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad);scroll-padding-inline:var(--pad)}
  .fp__grid::-webkit-scrollbar{display:none}
  .fp__grid li{flex:0 0 72vw;scroll-snap-align:start}
  .fp-card{aspect-ratio:3/4}
  .fd .pc-intro__rest,.fd__left{grid-column:1/-1;grid-row:auto}
  .fd__left{order:3}
  .fo__row{height:auto;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad);scroll-padding-inline:var(--pad)}
  .fo__row::-webkit-scrollbar{display:none}
  .fo__row li,.fo__row li.is-on,.fo__row li:hover{flex:0 0 62vw;scroll-snap-align:start}
  .fo__p{aspect-ratio:4/5;height:auto}
  .fo__p img,.fo__row li.is-on img{left:0;width:100%;transform:none;filter:none}
  .fo__n{writing-mode:horizontal-tb;transform:none;right:64px;white-space:normal}
  .fo__p .pc-ic{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){.fp__grid li{opacity:1;transform:none;transition:none}.fo__row li{transition:none}}

/* ===== GEN-TEAM: tutta la squadra (team_brochure.grid_html) — Chi siamo e pagina Team ===== */
.tgs{padding-block:clamp(88px,10vw,160px)}
.tgs--page{padding-block:clamp(64px,7vw,112px)}
.tgs__k{margin:0 0 14px;font-size:.8rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--red-deep)}
.tgs__h{margin:0 0 clamp(40px,5vw,72px);font-family:var(--body);font-weight:500;text-transform:none;font-size:clamp(2.4rem,5vw,5.2rem);line-height:.98;letter-spacing:-.048em;color:var(--ink)}
/* file alternate da 6 e 5 (12 colonne, ogni persona ne occupa 2; le file da 5 partono dalla seconda colonna): 6+5+6+5 = 22, nessuno da solo */
.tg{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:clamp(28px,2.6vw,40px) clamp(10px,1.2vw,18px);margin:0;padding:0;list-style:none}   /* 19/10: 5 per fila come la brochure: ufficio (blu) 5+5, poi a capo la produzione (rossi) 5+5+2 */
.tg li{grid-column:span 2;opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform 1s var(--ease);transition-delay:calc(var(--i,0) * 45ms)}
.tg li:nth-child(11){grid-column:1 / span 2}   /* Luca: la produzione parte a capo dopo Susanna */
.tg li:nth-child(21){grid-column:4 / span 2}   /* Federico e Aurora al centro dell'ultima fila */
.tg.is-in li{opacity:1;transform:none}
.tg__c{margin:0}
.tg__img{display:block;aspect-ratio:3/4;overflow:hidden;border-radius:4px;background:#1a1d22}
.tg__img img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.tg__c:hover .tg__img img{transform:scale(1.04)}
.tg__c figcaption{display:flex;flex-direction:column;gap:3px;margin-top:12px}
.tg__n{font-size:clamp(1rem,1.1vw,1.08rem);font-weight:500;letter-spacing:-.01em;color:var(--ink)}
.tg__r{font-size:.82rem;line-height:1.35;color:var(--dim-l)}
@media (max-width:1024px){
  .tg{grid-template-columns:repeat(8,minmax(0,1fr))}
  .tg li:nth-child(9){grid-column:3 / span 2}    /* 4+4+2 (Kushi e Susanna al centro), poi i rossi a capo 4+4+4 */
  .tg li:nth-child(11){grid-column:1 / span 2}
  .tg li:nth-child(21){grid-column:span 2}
}
@media (max-width:640px){
  .tg{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 10px}
  .tg li,.tg li:nth-child(9),.tg li:nth-child(11),.tg li:nth-child(21){grid-column:auto}
}
@media (prefers-reduced-motion:reduce){.tg li{opacity:1;transform:none;transition:none}}

/* ===== GEN-CTA semplice (tutte le pagine tranne home e Contatti): niente foto, titolo a sinistra, testo e azioni a destra ===== */
.cta--plain .cta__g{grid-template-columns:minmax(0,1fr);min-height:0}
.cta--plain .cta__txt{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);grid-template-rows:1fr auto;column-gap:clamp(32px,5vw,96px);align-items:end;
  padding:clamp(96px,11vw,170px) var(--pad)}
.cta--plain .cta__h{grid-column:1;grid-row:1 / 3;align-self:end;margin:0;max-width:12ch}
.cta--plain .cta__d{grid-column:2;grid-row:1;margin-bottom:clamp(22px,2.4vw,32px)}
.cta--plain .cta__row{grid-column:2;grid-row:2}
.cta--plain::before{left:auto;right:-14%;bottom:-70%}
@media (max-width:820px){
  .cta--plain .cta__txt{grid-template-columns:1fr;padding:clamp(72px,16vw,110px) var(--pad)}
  .cta--plain .cta__h,.cta--plain .cta__d,.cta--plain .cta__row{grid-column:1;grid-row:auto}
  .cta--plain .cta__h{margin-bottom:18px}
}

/* ===== GEN-CORPO: corpo delle schede "Scheda tecnica" (scheda_corpo.py) — scelto da Danilo il 07/10 fra le 3 prove di prova-corpo ===== */
.cx-ul{margin:0 0 1.1em;padding:0;list-style:none;border-top:1px solid var(--line-l)}
.cx-ul li{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--line-l);font-weight:500;color:var(--ink)}
.cx-ul li::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--red)}
.cx-back{font-size:.84rem;font-weight:500;letter-spacing:.06em;color:var(--dim-l);text-decoration:none;transition:color .3s}
.cx-back:hover{color:var(--red-deep)}
.c1-sib__hd{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px 24px;margin-bottom:clamp(22px,2.4vw,34px)}
.c1-sib__fam{display:inline-flex;align-items:center;gap:12px;font-size:clamp(1.1rem,1.5vw,1.45rem);font-weight:500;letter-spacing:-.015em;color:var(--ink);text-decoration:none}
.c1-sib__fam svg{width:20px;height:20px;transition:transform .45s var(--ease)}
.c1-sib__fam:hover svg{transform:translateX(4px)}
.c2__g{display:grid;grid-template-columns:minmax(0,7fr) minmax(300px,4fr);gap:clamp(40px,6vw,110px);align-items:start}
.c2__g--solo{grid-template-columns:minmax(0,8fr) minmax(0,4fr)}
.c2-txt p{margin:0 0 1.1em;font-size:clamp(1rem,1.1vw,1.08rem);line-height:1.75;color:var(--dim-l);max-width:62ch}
.c2-txt .c2-lead{font-size:clamp(1.25rem,1.7vw,1.6rem);line-height:1.45;font-weight:500;letter-spacing:-.015em;color:var(--ink);margin-bottom:1em}
.c2-card{position:sticky;top:calc(var(--hdr-h) + 24px);padding:clamp(24px,2.4vw,34px);border-radius:8px;background:#fff;box-shadow:0 30px 60px -36px rgba(10,12,15,.35),0 0 0 1px rgba(10,12,15,.05)}
.c2-card__h{margin:0 0 18px;font-size:1.06rem;font-weight:600;letter-spacing:-.01em;color:var(--ink)}
.c2-dl{margin:0 0 22px;border-top:1px solid var(--line-l)}
.c2-row{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid var(--line-l)}
.c2-row dt{font-size:.66rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--dim-l);padding-top:3px}
.c2-row dd{margin:0;text-align:right;font-weight:500;font-size:.95rem;color:var(--ink)}
.c2-lab{margin:0 0 12px;font-size:.88rem;color:var(--dim-l)}
.c2-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 26px;padding:0;list-style:none}
.c2-chips li{flex:1 0 calc((100% - (var(--cc,3) - 1) * 6px) / var(--cc,3));padding:11px 0;border-radius:6px;background:var(--paper);text-align:center;font-weight:500;font-size:.95rem;font-variant-numeric:tabular-nums;color:var(--ink);box-shadow:inset 0 0 0 1px transparent;transition:box-shadow .3s,color .3s}
.c2-chips li:hover{box-shadow:inset 0 0 0 1px var(--red);color:var(--red-deep)}
.c2-btn{width:100%;justify-content:space-between;background:var(--ink);color:#fff;box-shadow:none}
.c2-btn:hover{background:#1c2026;box-shadow:none}
.c2-list{display:grid;grid-template-columns:repeat(var(--c,2),minmax(0,1fr));gap:0 clamp(24px,3vw,48px);margin:0;padding:0;list-style:none;border-top:1px solid var(--line-l)}
.c2-sr{display:flex;align-items:center;gap:18px;padding:14px 4px;border-bottom:1px solid var(--line-l);color:var(--ink);text-decoration:none;transition:background .3s}
.c2-sr:hover{background:rgba(255,255,255,.6)}
.c2-sr__img{flex:none;width:76px;aspect-ratio:4/3;overflow:hidden;border-radius:4px;background:var(--paper-2)}
.c2-sr__img img{display:block;width:100%;height:100%;object-fit:cover}
.c2-sr__b{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.c2-sr__n{font-weight:500}
.c2-sr__t{font-size:.82rem;color:var(--dim-l)}
.c2-sr .pc-ic{width:34px;height:34px;background:transparent;border-color:rgba(10,12,15,.18);color:var(--ink);-webkit-backdrop-filter:none;backdrop-filter:none}
.c2-sr:hover .pc-ic{background:var(--ink);border-color:var(--ink);color:#fff}
.c2-sr .pc-ic svg{width:15px;height:15px}
.c2-card--photo{padding:10px 10px 12px}
.c2-card__img{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:4px;margin-bottom:12px;background:var(--paper-2)}
.c2-card__img img{display:block;width:100%;height:100%;object-fit:cover}
.c2-txt>:last-child{margin-bottom:0}
@media (max-width:820px){
  .c2__g,.c2__g--solo{grid-template-columns:1fr}
  .c2-card{position:static}
  .c2-list{grid-template-columns:1fr}
}

/* GEN-CORPO: le due colonne chiudono sulla stessa linea — la foto del prodotto riempie lo spazio sotto il testo fino alla fine della scheda */
.c2__g{align-items:stretch}
.c2-card{align-self:start}
.c2-txt{display:flex;flex-direction:column}
.c2-fill{position:relative;flex:1 1 0;min-height:0;margin:clamp(24px,2.4vw,34px) 0 0;overflow:hidden;border-radius:6px;background:var(--paper-2)}
.c2-fill img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.c2-fill:hover img{transform:scale(1.03)}
.c2-fill.is-off{display:none}
.c2-txt.is-spread{justify-content:space-between}
.c2-txt.is-spread>p{margin-bottom:0}
.c2-txt.is-spread>*+*{margin-top:1.1em}
@media (max-width:820px){.c2-fill{display:none}}

/* ===== GEN-LAVP: pagina Lavorazioni (build_inner.build_lavorazioni) ===== */
.ph__par video{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1);transition:transform 16s cubic-bezier(.25,.1,.35,1)}
.ph.is-in .ph__par video{transform:scale(1.06)}
.ph__ben{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px clamp(24px,3vw,48px);width:100%;margin:0;padding:0;list-style:none;
  opacity:0;transform:translateY(14px);transition:opacity .9s var(--ph-out) .7s,transform .9s var(--ph-out) .7s}
.ph.is-in .ph__ben{opacity:1;transform:none}
.ph__ben li{display:flex;align-items:baseline;gap:12px;font-size:clamp(.94rem,1.05vw,1.04rem);font-weight:500;line-height:1.4;color:rgba(255,255,255,.82)}
.ph__ben li::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--red);transform:translateY(-2px)}
/* capacità di taglio + 6 lavorazioni */
.lo{padding-block:clamp(88px,10vw,160px)}
.lo-cut{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,48px);margin:0 0 clamp(88px,10vw,150px);padding:0;list-style:none}
.lo-cut li{padding-top:18px;border-top:1px solid rgba(10,12,15,.18);font-size:clamp(1.15rem,1.6vw,1.55rem);font-weight:500;line-height:1.3;letter-spacing:-.018em;color:var(--ink);text-wrap:balance}
.lo-h{margin:0 0 clamp(32px,4vw,56px);max-width:26ch;font-family:var(--body);font-weight:500;text-transform:none;font-size:clamp(1.8rem,3.4vw,3.3rem);line-height:1.08;letter-spacing:-.035em;color:var(--ink)}
.lo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none}
.lo-grid li{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform 1s var(--ease);transition-delay:calc(var(--i,0) * 80ms)}
.lo.is-in .lo-grid li{opacity:1;transform:none}
.lo-card{display:flex;flex-direction:column;justify-content:space-between;gap:40px;height:100%;min-height:clamp(240px,22vw,300px);padding:clamp(24px,2.4vw,36px);
  border-radius:8px;background:#fff;box-shadow:0 0 0 1px rgba(10,12,15,.05);transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.lo-card:hover{transform:translateY(-4px);box-shadow:0 28px 50px -30px rgba(10,12,15,.35),0 0 0 1px rgba(10,12,15,.05)}
.lo-ic{width:clamp(96px,9vw,128px);height:auto;color:var(--ink);transition:color .4s}
.lo-card:hover .lo-ic{color:var(--red)}
.lo-ic path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.8s var(--ease);transition-delay:calc(var(--i,0) * 110ms + .25s)}
.lo.is-in .lo-ic path{stroke-dashoffset:0}
.lo-card__n{margin:0;font-size:clamp(1.15rem,1.5vw,1.45rem);font-weight:500;line-height:1.2;letter-spacing:-.018em;color:var(--ink)}
/* supporto tecnico */
.ls{padding-block:clamp(88px,10vw,160px)}
.ls__g{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,7vw,120px);align-items:center}
.ls__media{margin:0;aspect-ratio:4/5;overflow:hidden;border-radius:6px;background:var(--paper-2)}
.ls__media img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 2.4s var(--ease)}
.ls.is-in .ls__media img{transform:scale(1)}
.ls__h{margin:0 0 clamp(24px,2.6vw,36px);font-family:var(--body);font-weight:500;text-transform:none;font-size:clamp(2.4rem,4.8vw,4.8rem);line-height:.98;letter-spacing:-.048em;color:var(--ink)}
.ls__big{margin:0 0 22px;font-size:clamp(1.3rem,1.9vw,1.8rem);font-weight:500;line-height:1.3;letter-spacing:-.018em;color:var(--ink)}
.ls__big .w{color:rgba(10,12,15,.15)}
.ls__p{margin:0;max-width:52ch;font-size:clamp(1rem,1.1vw,1.08rem);line-height:1.72;color:var(--dim-l)}
@media (max-width:820px){
  .ph__ben{grid-template-columns:1fr;gap:10px}
  .lo-cut,.lo-grid{grid-template-columns:1fr}
  .lo-card{min-height:0;gap:28px}
  .ls__g{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){.lo-grid li{opacity:1;transform:none;transition:none}.lo-ic path{stroke-dashoffset:0;transition:none}.ph__par video{transition:none}}

.ls__li{display:inline-flex;align-items:center;gap:10px;margin-top:26px;padding-bottom:6px;font-weight:500;color:var(--ink);text-decoration:none;
  background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat}
.ls__li svg{width:18px;height:18px;transform:rotate(-45deg);transition:transform .45s var(--ease)}
.ls__li:hover svg{transform:rotate(-45deg) translateX(3px)}

/* ===== GEN-FTR: footer di tutte le pagine (build.footer_html) ===== */
.ft{position:relative;overflow:hidden;background:var(--bg);color:#fff;border-top:1px solid var(--line-d);padding-top:clamp(64px,7vw,110px)}
.ft a{color:inherit;text-decoration:none}
.ft__top{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-bottom:clamp(44px,5vw,72px)}
.ft__logo img{display:block;height:clamp(34px,3.2vw,46px);width:auto}
.ft .ft__cta{height:54px;padding-left:24px;font-size:.98rem;color:var(--ink)}
.ft .ft__cta:hover{color:var(--ink)}
.ft__grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1.1fr) minmax(0,1.1fr);gap:40px clamp(24px,3vw,56px);
  padding-block:0 clamp(40px,4.4vw,64px)}
.ft__h{margin:0 0 18px;font-family:var(--body);font-size:.68rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.45)}
.ft__h a:hover{color:#fff}
.ft__col ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.ft__col--fam ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px}
.ft__col li a,.ft__col p{font-size:.96rem;line-height:1.5;color:rgba(255,255,255,.78)}
.ft__col p{margin:0}
.ft__col li a{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;padding-bottom:2px;transition:color .3s,background-size .45s var(--ease)}
.ft__col li a:hover{color:#fff;background-size:100% 1px}
.ft__ext svg{display:block;width:14px;height:14px;transform:rotate(-45deg)}
.ft__bot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 28px;padding-block:22px;border-top:1px solid var(--line-d);font-size:.84rem;color:rgba(255,255,255,.5)}
.ft__bot p{margin:0;display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px}
.ft__sep{width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,.3)}
.ft__legal a{transition:color .3s}.ft__legal a:hover{color:#fff}
.ft__up{display:grid;place-items:center;width:42px;height:42px;margin-left:auto;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:transparent;color:#fff;cursor:pointer;transition:background .3s,color .3s,border-color .3s}
.ft__up svg{width:17px;height:17px;transform:rotate(-90deg);transition:transform .45s var(--ease)}
.ft__up:hover{background:#fff;color:var(--ink);border-color:#fff}
.ft__up:hover svg{transform:rotate(-90deg) translateX(3px)}
/* la scritta Guerzoni gigante: maschera del logo riempita di rosso, sale quando il footer arriva e passa una luce una volta */
.ft__word{position:relative;margin:clamp(12px,2vw,28px) var(--pad) 0;aspect-ratio:3620/696;transform:translateY(38%);transition:transform 1.6s var(--ease)}
.ft__word span{position:absolute;inset:0;-webkit-mask:url(../img/logo-word.png) no-repeat center/100% 100%;mask:url(../img/logo-word.png) no-repeat center/100% 100%;
  background:linear-gradient(100deg,var(--red-deep) 0%,var(--red) 38%,#ff8f86 50%,var(--red) 62%,var(--red-deep) 100%);background-size:300% 100%;background-position:100% 0}
.ft.is-in .ft__word{transform:translateY(18%)}
.ft.is-in .ft__word span{animation:ftSweep 2.6s var(--ease) .5s both}
.ft__word:hover span{animation:ftSweep 2.2s var(--ease) both}
@keyframes ftSweep{from{background-position:100% 0}to{background-position:0 0}}
@media (max-width:1024px){
  .ft__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .ft__top{flex-direction:column;align-items:flex-start}
  .ft__grid{grid-template-columns:1fr}
  .ft__bot{flex-direction:column;align-items:flex-start}
  .ft__up{position:absolute;right:var(--pad);margin:0}
}
@media (prefers-reduced-motion:reduce){.ft__word{transform:translateY(18%);transition:none}.ft__word span{animation:none!important;background-position:50% 0}}

/* ===== GEN-DQ: Dicono di Noi (build_home.dicono) — versione premium 08/10 ===== */
.dq{position:relative;overflow:hidden;background:var(--paper)}
.dq__box{position:relative;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,6vw,110px);align-items:center;padding:clamp(44px,6.4vw,104px);
  border-radius:16px;background:#fff;box-shadow:0 0 0 1px rgba(10,12,15,.05),0 60px 120px -80px rgba(10,12,15,.4);overflow:hidden;isolation:isolate}
.dq__box::before{content:"";position:absolute;right:-8%;top:50%;width:62%;aspect-ratio:1;transform:translateY(-50%);border-radius:50%;z-index:-1;
  background:radial-gradient(circle,rgba(226,64,75,.1) 0%,rgba(226,64,75,.03) 40%,rgba(226,64,75,0) 68%)}
.dq__k{display:flex;align-items:center;gap:12px;margin:0 0 22px;font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--red-deep)}
.dq__k::before{content:"";width:22px;height:1px;background:currentColor}
.dq__h{margin:0;font-family:var(--body);font-weight:500;text-transform:none;font-size:clamp(2.1rem,3.6vw,3.5rem);line-height:1.04;letter-spacing:-.045em;color:var(--ink);max-width:12ch;text-wrap:balance}
.dq__nav{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:22px 18px;margin-top:clamp(40px,5vw,72px);max-width:340px}
.dq__cnt{font-size:.92rem;font-weight:500;font-variant-numeric:tabular-nums;color:var(--dim-l)}
.dq__cnt::before{content:attr(data-cur);margin-right:6px;font-size:1.5rem;letter-spacing:-.03em;color:var(--ink)}
.dq__cnt::after{content:"/ " attr(data-tot)}
.dq__bar{position:relative;height:1px;background:rgba(10,12,15,.14);overflow:hidden}
.dq__bar i{position:absolute;inset:0;background:var(--ink);transform:scaleX(var(--k,.33));transform-origin:left;transition:transform .8s var(--ease)}
.dq__btns{grid-column:1/-1;display:flex;gap:10px}
.dq__b{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;border:1px solid rgba(10,12,15,.16);background:#fff;color:var(--ink);cursor:pointer;
  transition:background .35s,color .35s,border-color .35s,transform .35s var(--ease)}
.dq__b svg{width:20px;height:20px;transition:transform .45s var(--ease)}
.dq__b:hover{background:var(--red);border-color:var(--red);color:#fff}
.dq__b[data-dir="1"]:hover svg{transform:translateX(3px)}.dq__b[data-dir="-1"]:hover svg{transform:translateX(-3px)}
.dq__b:active{transform:scale(.94)}
.dq__r{position:relative;padding:0 40px 40px 0}
.dq__stack{position:relative;display:block;margin:0;padding:0;list-style:none;touch-action:pan-y}   /* altezza fissa = recensione più lunga (js): il riquadro non cambia */
.dq-card{position:absolute;inset:0;display:flex;flex-direction:column;padding:clamp(28px,3vw,44px);border-radius:14px;background:#fff;
  box-shadow:0 0 0 1px rgba(10,12,15,.06),0 40px 70px -40px rgba(10,12,15,.35);
  transform:translate(calc(var(--p) * 20px),calc(var(--p) * 20px)) scale(calc(1 - var(--p) * .05));transform-origin:100% 100%;
  opacity:calc(1 - var(--p) * .4);filter:blur(calc(var(--p) * 1.5px));z-index:calc(10 - var(--p));
  transition:transform .9s var(--ease),opacity .7s var(--ease),filter .7s var(--ease)}
.dq-card__top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:clamp(18px,2vw,26px)}
.dq-q{margin-bottom:clamp(22px,2.4vw,30px)!important}
.dq-co{margin:0;font-size:.8rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--ink)}
.dq-mark{flex:none;width:24px;fill:var(--red)}
.dq-q p{margin:0}
.dq-q{margin:0;font-size:clamp(.9rem,.95vw,.96rem);line-height:1.75;color:rgba(10,12,15,.62);text-wrap:pretty}
.dq-by{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-top:auto;padding-top:18px;border-top:1px solid rgba(10,12,15,.1)}
.dq-n,.dq-r{margin:0}
.dq-n{font-size:.94rem;font-weight:600;letter-spacing:-.01em;color:var(--ink)}
.dq-r{font-size:.8rem;color:var(--dim-l)}
/* entrata dei testi della carta davanti, in sequenza */
.dq-card>*{opacity:0;transform:translateY(10px);transition:opacity .35s,transform .5s var(--ease)}
.dq-card.is-front>*{opacity:1;transform:none;transition:opacity .7s var(--ease),transform .9s var(--ease)}
.dq-card.is-front>:nth-child(1){transition-delay:.18s}.dq-card.is-front>:nth-child(2){transition-delay:.28s}.dq-card.is-front>:nth-child(3){transition-delay:.4s}
@media (max-width:900px){
  .dq__box{grid-template-columns:1fr;gap:40px}
  .dq__r{padding:0 22px 26px 0}
}
@media (max-width:560px){.dq__box{padding:32px 20px;border-radius:12px}.dq-card{transform:translate(calc(var(--p) * 10px),calc(var(--p) * 12px)) scale(calc(1 - var(--p) * .04))}}
@media (prefers-reduced-motion:reduce){.dq-card,.dq-card>*,.dq__bar i{transition:none}}
/* senza js: le testimonianze una sotto l'altra */
html:not(.js) .dq-card{position:relative;inset:auto;transform:none;opacity:1;filter:none;margin-bottom:16px}
html:not(.js) .dq-card>*{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.dq-card,.dq-card>*{transition:none}}

/* fix 08/10: nel "Perché" il titolo attivo (scale 1.04 + 12px) sporgeva di 4px sul telefono */
#perche{overflow-x:clip}

/* ===== GEN-CERT: Certificazioni della home (build_home.cert) — approvata da Danilo l'08/10 ===== */
.ce{position:relative;overflow:hidden;background:var(--bg);color:#fff;padding-block:clamp(96px,11vw,170px);isolation:isolate}
.ce::before{content:"";position:absolute;right:-10%;top:18%;width:60vw;height:60vw;max-width:900px;max-height:900px;border-radius:50%;
  background:radial-gradient(circle,rgba(226,64,75,.16) 0%,rgba(226,64,75,0) 62%);pointer-events:none;z-index:-1}
.ce__head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:24px clamp(32px,5vw,96px);align-items:end;margin-bottom:clamp(56px,6vw,96px)}
.ce__h{margin:0;font-family:var(--body);font-weight:500;text-transform:none;font-size:clamp(3rem,8.4vw,8.8rem);line-height:.9;letter-spacing:-.06em}
.ce__lead{margin:0;font-size:clamp(1rem,1.2vw,1.16rem);line-height:1.6;color:var(--dim);max-width:46ch}
/* classi termiche: colonne di calore */
.ce__bars{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;align-items:end;height:clamp(320px,36vw,480px);margin:0 0 clamp(72px,8vw,120px);padding:0;list-style:none;border-bottom:1px solid var(--line-d)}
.ce__bars li{position:relative;display:flex;flex-direction:column;justify-content:flex-end;height:100%}
.ce-bar{position:relative;display:block;height:var(--h);border-radius:6px 6px 0 0;overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.03));
  transform:scaleY(0);transform-origin:bottom;transition:transform 1.4s var(--ease) calc(var(--i) * 110ms)}
.ce__bars .is-ours .ce-bar{background:linear-gradient(180deg,#ff6a5c 0%,var(--red) 28%,rgba(194,42,54,.55) 100%);box-shadow:0 -20px 60px -10px rgba(226,64,75,.55)}
.ce-bar i{position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.35),rgba(255,255,255,0) 30%);opacity:.5}
.ce.is-in .ce-bar{transform:none}
.ce-t{position:absolute;left:clamp(14px,1.6vw,22px);bottom:calc(var(--h) - 4px);transform:translateY(-100%);padding-bottom:12px;font-size:clamp(1.8rem,3.6vw,3.6rem);font-weight:500;line-height:1;letter-spacing:-.04em;
  font-variant-numeric:tabular-nums;color:rgba(255,255,255,.4);opacity:0;transition:opacity .8s var(--ease) calc(var(--i) * 110ms + .6s)}
.ce__bars .is-ours .ce-t{color:#fff}
.ce.is-in .ce-t{opacity:1}
.ce-c{position:absolute;left:clamp(14px,1.6vw,22px);bottom:14px;font-size:.78rem;font-weight:600;letter-spacing:.16em;color:rgba(255,255,255,.55)}
.ce__bars .is-ours .ce-c{color:#fff}
/* certificati e documenti */
.ce__docs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(280px,1.15fr);gap:clamp(24px,3vw,48px);align-items:start}
.ce-doc{margin:0;opacity:0;transform:translateY(30px);transition:opacity .9s var(--ease) calc(var(--i) * 120ms + .2s),transform 1.1s var(--ease) calc(var(--i) * 120ms + .2s)}
.ce.is-in .ce-doc{opacity:1;transform:none}
.ce-doc__btn{position:relative;display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in;perspective:900px}
.ce-doc__sheet{display:block;aspect-ratio:1/1.414;overflow:hidden;border-radius:3px;background:#fff;box-shadow:0 40px 80px -30px rgba(0,0,0,.8),0 0 0 1px rgba(255,255,255,.06);
  transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .5s var(--ease),box-shadow .5s}
.ce-doc__btn:hover .ce-doc__sheet{box-shadow:0 50px 90px -30px rgba(0,0,0,.9),0 0 0 1px rgba(255,255,255,.1)}
.ce-doc__sheet img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}
.ce-doc__ic{position:absolute;right:14px;bottom:14px;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--ink);color:#fff;opacity:0;transform:scale(.8);transition:opacity .35s,transform .45s var(--ease)}
.ce-doc__ic svg{width:17px;height:17px}
.ce-doc__btn:hover .ce-doc__ic,.ce-doc__btn:focus-visible .ce-doc__ic{opacity:1;transform:none}
.ce-doc figcaption{margin-top:18px;font-size:clamp(1rem,1.15vw,1.12rem);font-weight:500;line-height:1.35;letter-spacing:-.01em}
.ce__files ul{margin:0;padding:0;list-style:none;border-top:1px solid var(--line-d)}
.ce-f{display:flex;align-items:center;gap:16px;padding:16px 4px;border-bottom:1px solid var(--line-d);color:rgba(255,255,255,.85);text-decoration:none;transition:background .3s,color .3s,padding .4s var(--ease)}
.ce-f:hover{background:rgba(255,255,255,.04);color:#fff;padding-left:12px}
.ce-f__tag{flex:none;padding:4px 7px;border-radius:4px;background:rgba(226,64,75,.16);color:#ff8a80;font-size:.62rem;font-weight:600;letter-spacing:.12em}
.ce-f__n{flex:1;font-size:.96rem;font-weight:500}
.ce-f__n::first-letter{text-transform:uppercase}
.ce-f__ic{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.2);transition:background .3s,color .3s,border-color .3s}
.ce-f__ic svg{width:15px;height:15px}
.ce-f:hover .ce-f__ic{background:#fff;color:var(--ink);border-color:#fff}
.ce-go{display:inline-flex;align-items:center;gap:12px;margin-top:28px;padding-bottom:6px;color:#fff;font-weight:500;text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat}
.ce-go span{display:inline-block;text-transform:lowercase}.ce-go span::first-letter{text-transform:uppercase}
.ce-go svg{width:18px;height:18px;transition:transform .45s var(--ease)}
.ce-go:hover svg{transform:translateX(4px)}
/* lightbox */
.ce-box{max-width:min(92vw,900px);max-height:92vh;padding:0;border:0;border-radius:6px;background:#fff;overflow:auto}
.ce-box::backdrop{background:rgba(10,12,15,.82);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.ce-box img{display:block;width:100%;height:auto}
.ce-box__x{position:fixed;top:18px;right:18px;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:0;background:#fff;color:var(--ink);cursor:pointer;box-shadow:0 10px 30px -10px rgba(0,0,0,.5)}
.ce-box__x svg{width:20px;height:20px}
@media (max-width:900px){
  .ce__head{grid-template-columns:1fr}
  .ce__docs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ce__files{grid-column:1/-1}
}
@media (max-width:560px){
  .ce__bars{gap:6px;height:260px}
  .ce-t{left:8px;font-size:1.35rem}
  .ce-c{left:8px}
}
@media (prefers-reduced-motion:reduce){.ce-bar,.ce-doc,.ce-t{transform:none;opacity:1;transition:none}}

/* ===== GEN-DQ2: Dicono di Noi (build_home.dicono) — fascia editoriale compatta, 08/10 ===== */
.dq2{padding-block:clamp(72px,8vw,120px)}
.dq2__hd{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px 32px;padding-bottom:clamp(20px,2.2vw,28px);border-bottom:1px solid rgba(10,12,15,.14)}
.dq2__k{display:flex;align-items:center;gap:12px;margin:0;font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--red-deep)}
.dq2__k::before{content:"";width:22px;height:1px;background:currentColor}
.dq2__h{margin:0;font-family:var(--body);font-weight:500;text-transform:none;font-size:clamp(1.25rem,1.9vw,1.75rem);line-height:1.2;letter-spacing:-.025em;color:var(--ink)}
.dq2__row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;list-style:none}
.dq2-v{display:flex;flex-direction:column;padding:clamp(28px,3vw,40px) clamp(24px,3vw,48px) 0;border-left:1px solid rgba(10,12,15,.1);
  opacity:0;transform:translateY(16px);transition:opacity .9s var(--ease) calc(var(--i) * 120ms),transform 1s var(--ease) calc(var(--i) * 120ms)}
.dq2-v:first-child{padding-left:0;border-left:0}
.dq2-v:last-child{padding-right:0}
.dq2.is-in .dq2-v{opacity:1;transform:none}
.dq2-co{margin:0 0 18px;font-size:.74rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--ink)}
.dq2-q{position:relative;margin:0 0 28px;font-size:.92rem;line-height:1.72;color:rgba(10,12,15,.64);text-wrap:pretty}
.dq2-q p{margin:0}
.dq2-q--own::before{content:none}   /* la citazione del sito ha già le sue virgolette */
.dq2-q::before{content:"“";position:absolute;left:-.55em;top:-.05em;font-size:1.5em;line-height:1;color:var(--red)}
.dq2-by{margin-top:auto;padding-top:16px;border-top:1px solid rgba(10,12,15,.08)}
.dq2-n,.dq2-r{margin:0}
.dq2-n{font-size:.9rem;font-weight:600;color:var(--ink)}
.dq2-r{margin-top:2px;font-size:.78rem;color:var(--dim-l)}
@media (max-width:900px){
  .dq2__row{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad);scroll-padding-inline:var(--pad)}
  .dq2__row::-webkit-scrollbar{display:none}
  .dq2-v{flex:0 0 min(80vw,380px);scroll-snap-align:start;padding:28px 24px 0}
  .dq2-v:first-child{padding-left:0}
}
@media (prefers-reduced-motion:reduce){.dq2-v{opacity:1;transform:none;transition:none}}

/* ===== GEN-CLS: Classi di isolamento — il termometro (build_inner.build_classi) ===== */
.ph__cls{display:flex;flex-wrap:wrap;gap:8px 10px;width:100%;opacity:0;transform:translateY(14px);transition:opacity .9s var(--ph-out) .7s,transform .9s var(--ph-out) .7s}
.ph.is-in .ph__cls{opacity:1;transform:none}
.ph__cls a{padding:8px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.2);font-size:.88rem;font-weight:500;font-variant-numeric:tabular-nums;color:rgba(255,255,255,.82);
  transition:background .3s,color .3s,border-color .3s}
.ph__cls a:hover{background:#fff;color:var(--ink);border-color:#fff}
.cl{--heat:0;position:relative;color:#fff;padding-block:clamp(72px,8vw,120px);
  background:color-mix(in oklab,#0A0C0F,#2a0b0e calc(var(--heat) * 100%));transition:background .4s linear}
.cl::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:calc(var(--heat) * .9);
  background:radial-gradient(80% 60% at 70% 100%,rgba(226,64,75,.35),rgba(226,64,75,0) 70%)}
.cl__g{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr);gap:clamp(24px,4vw,64px)}
/* termometro laterale */
.cl__th{position:sticky;top:calc(var(--hdr-h) + 40px);align-self:start;display:flex;flex-direction:column;align-items:center;gap:16px;height:calc(100vh - var(--hdr-h) - 120px)}
.cl__tube{position:relative;flex:1;width:6px;border-radius:6px;background:rgba(255,255,255,.1);overflow:hidden}
.cl__tube i{position:absolute;inset:auto 0 0;height:calc(var(--heat) * 100%);border-radius:6px;background:linear-gradient(0deg,#5b6470 0%,#c98a4b 45%,var(--red) 75%,#ff8a5c 100%);
  box-shadow:0 0 18px rgba(226,64,75,.6);transition:height .3s linear}
.cl__now{font-size:.86rem;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.cl__now::after{content:attr(data-t)}
/* righe */
.cl__rows{margin:0;padding:0;list-style:none;border-top:1px solid rgba(255,255,255,.12)}
.cl-row{display:grid;grid-template-columns:minmax(220px,4fr) minmax(0,8fr);gap:24px clamp(24px,4vw,64px);align-items:center;padding:clamp(28px,3.2vw,44px) 0;border-bottom:1px solid rgba(255,255,255,.12);
  scroll-margin-top:calc(var(--hdr-h) + 20px)}
.cl-row__t{display:flex;align-items:baseline;gap:14px}
.cl-row__n{font-size:clamp(3.2rem,7vw,7rem);font-weight:500;line-height:.9;letter-spacing:-.055em;font-variant-numeric:tabular-nums;
  color:color-mix(in oklab,rgba(255,255,255,.5),#fff calc(var(--k) * 100%));transition:color .4s}   /* 19/10: .35 era troppo scuro */
.cl-row__l{font-size:clamp(1.2rem,2vw,1.8rem);font-weight:600;letter-spacing:.04em;color:rgba(255,255,255,.55)}
.cl-row.is-ours .cl-row__n{color:#fff;text-shadow:0 0 40px rgba(226,64,75,.55)}
.cl-row.is-ours .cl-row__l{color:var(--red)}
.cl-row__p{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}
.cl-p{display:flex;align-items:center;gap:12px;padding:6px 14px 6px 6px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:#fff;text-decoration:none;
  transition:background .3s,border-color .3s,color .3s}
.cl-p:hover{background:#fff;border-color:#fff;color:var(--ink)}
.cl-p__img{flex:none;width:40px;height:40px;border-radius:50%;overflow:hidden;background:#222}
.cl-p__img img{display:block;width:100%;height:100%;object-fit:cover}
.cl-p__n{font-size:.94rem;font-weight:500;white-space:nowrap}
.cl-p__arr svg{display:block;width:15px;height:15px;opacity:.6;transition:transform .4s var(--ease),opacity .3s}
.cl-p:hover .cl-p__arr svg{transform:translateX(3px);opacity:1}
.cl-row{opacity:.35;transition:opacity .6s var(--ease)}
.cl-row.is-on{opacity:1}
@media (max-width:820px){
  .cl__g{grid-template-columns:1fr}
  .cl__th{display:none}
  .cl-row{grid-template-columns:1fr;opacity:1}
  .cl-row__p{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad)}
  .cl-row__p::-webkit-scrollbar{display:none}
}
@media (prefers-reduced-motion:reduce){.cl,.cl-row,.cl__tube i{transition:none}.cl-row{opacity:1}}

/* ===== GEN-QUAL: pagina Qualità (build_inner.build_qualita) ===== */
.ph__idx2{display:flex;flex-wrap:wrap;gap:8px 10px;width:100%;opacity:0;transform:translateY(14px);transition:opacity .9s var(--ph-out) .7s,transform .9s var(--ph-out) .7s}
.ph.is-in .ph__idx2{opacity:1;transform:none}
.ph__idx2 a{padding:8px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.2);font-size:.88rem;font-weight:500;color:rgba(255,255,255,.82);transition:background .3s,color .3s,border-color .3s}
.ph__idx2 a:hover{background:#fff;color:var(--ink);border-color:#fff}
#q-impegno,#q-politiche,#q-cert,#q-sociale{scroll-margin-top:var(--hdr-h)}
/* i 4 principi: elenco editoriale guidato dallo scroll (08/10) */
.qp{background:var(--bg);color:#fff;padding-block:clamp(88px,10vw,150px)}
.qp__g{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,6vw,110px)}
.qp__side{position:sticky;top:calc(var(--hdr-h) + 48px);align-self:start;display:flex;flex-direction:column;gap:clamp(28px,4vw,56px)}
.qp-h{margin:0;max-width:22ch;font-size:clamp(1.3rem,2vw,1.9rem);font-weight:500;line-height:1.2;letter-spacing:-.025em;color:rgba(255,255,255,.9)}
.qp__big{display:block;font-size:clamp(6rem,15vw,15rem);font-weight:500;line-height:.82;letter-spacing:-.07em;font-variant-numeric:tabular-nums;
  background:linear-gradient(180deg,#ff7a6b,var(--red) 45%,var(--red-deep));-webkit-background-clip:text;background-clip:text;color:transparent}
.qp__big::before{content:attr(data-n)}
.qp__list{margin:0;padding:0;list-style:none;counter-reset:qp}
.qp-r{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr);gap:20px;padding:clamp(30px,3.6vw,52px) 0;border-top:1px solid rgba(255,255,255,.1)}
.qp-r:last-child{border-bottom:1px solid rgba(255,255,255,.1)}
.qp-r__n{padding-top:.55em;font-size:.8rem;font-weight:600;letter-spacing:.12em;font-variant-numeric:tabular-nums;color:rgba(255,255,255,.35);transition:color .5s}
.qp-r__n::before{counter-increment:qp;content:counter(qp,decimal-leading-zero)}
.qp-r__t{margin:0;font-size:clamp(1.35rem,2.4vw,2.3rem);font-weight:500;line-height:1.22;letter-spacing:-.028em;color:rgba(255,255,255,.28);transition:color .6s var(--ease)}
.qp-r__t b{font-weight:500;color:#fff}
.qp-r.is-on .qp-r__t{color:rgba(255,255,255,.92)}
.qp-r.is-on .qp-r__t b{color:var(--red)}
.qp-r__line{position:absolute;left:0;top:-1px;height:1px;width:100%;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform 1s var(--ease)}
.qp-r.is-on .qp-r__line{transform:none}
.qp-r.is-on .qp-r__n{color:#fff}
@media (max-width:900px){
  .qp__g{grid-template-columns:1fr;gap:28px}
  .qp__side{position:static}
  .qp__big{display:none}
  .qp-r{grid-template-columns:40px minmax(0,1fr);gap:12px}
  .qp-r__t{color:rgba(255,255,255,.85)}
}
@media (prefers-reduced-motion:reduce){.qp-r__t,.qp-r__line{transition:none}}
/* politiche: selettore Cliente | Fornitori (08/10) */
.vh{position:absolute!important;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.qpol{padding-block:clamp(88px,10vw,150px)}
.qt{position:relative;display:inline-flex;gap:4px;padding:5px;border-radius:999px;background:#fff;box-shadow:0 0 0 1px rgba(10,12,15,.06),0 20px 40px -30px rgba(10,12,15,.35);max-width:100%;overflow-x:auto;scrollbar-width:none}
.qt::-webkit-scrollbar{display:none}
.qt__b{position:relative;z-index:1;flex:none;padding:14px 24px;border:0;border-radius:999px;background:none;font:inherit;font-size:clamp(.92rem,1.05vw,1.02rem);font-weight:500;color:var(--dim-l);cursor:pointer;white-space:nowrap;transition:color .4s}
.qt__b[aria-selected="true"]{color:#fff}
.qt__b:hover:not([aria-selected="true"]){color:var(--ink)}
.qt__ind{position:absolute;z-index:0;top:5px;bottom:5px;left:0;width:0;border-radius:999px;background:var(--ink);transition:transform .6s var(--ease),width .6s var(--ease)}
.qpol__panels{display:grid;margin-top:clamp(40px,5vw,72px)}
.qpol__p{grid-area:1/1;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:24px clamp(32px,5vw,96px);align-items:start;
  opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .5s var(--ease),transform .7s var(--ease),visibility 0s .5s}
.qpol__p.is-on{opacity:1;visibility:visible;transform:none;transition:opacity .7s var(--ease) .1s,transform .9s var(--ease) .1s,visibility 0s}
.qpol__big{margin:0;font-size:clamp(1.35rem,2.2vw,2.1rem);font-weight:500;line-height:1.28;letter-spacing:-.025em;color:var(--ink);text-wrap:pretty}
.qpol__rest p{margin:0 0 1em;font-size:clamp(.98rem,1.06vw,1.04rem);line-height:1.72;color:var(--dim-l)}
.qpol__rest p:last-child{margin-bottom:0}
html:not(.js) .qpol__p{position:relative;opacity:1;visibility:visible;transform:none;grid-area:auto;margin-bottom:48px}
@media (max-width:900px){.qpol__p{grid-template-columns:1fr}}
@media (max-width:600px){.qt{display:flex;width:100%;overflow:visible}.qt__b{flex:1 1 0;padding:12px 10px;white-space:normal;line-height:1.25;font-size:.88rem}}
@media (prefers-reduced-motion:reduce){.qpol__p,.qt__ind{transition:none}}
/* nota sopra i PDF (Parità di Genere e Repackaging UL) */
.ce-note{margin-bottom:22px}
.ce-note__h{margin:0 0 12px;font-size:1.06rem;font-weight:600;line-height:1.3;color:#fff}
.ce-note p{margin:0 0 .7em;font-size:.94rem;line-height:1.6;color:var(--dim)}
@media (max-width:900px){
}



/* ===== GEN-LV2: Lavorazioni della home (lav.section_v2) — approvata da Danilo l'08/10 ===== */
.lv2{background:var(--bg);color:#fff;padding-block:clamp(96px,11vw,170px)}
.lv2__top{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,96px);align-items:end}
.lv2__media{position:relative;margin:0;aspect-ratio:16/10;overflow:hidden;border-radius:10px;background:#111}
.lv2__media video{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 2.4s var(--ease)}
.lv2.is-in .lv2__media video{transform:scale(1)}
.lv2__h{margin:0 0 clamp(24px,2.8vw,36px);font-family:var(--body);font-weight:500;text-transform:none;font-size:clamp(1.9rem,3.4vw,3.4rem);line-height:1.05;letter-spacing:-.045em;text-wrap:balance}
.lv2__go{display:inline-flex;align-items:center;gap:12px;padding-bottom:6px;color:#fff;font-weight:500;text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat}
.lv2__go svg{width:18px;height:18px;transition:transform .45s var(--ease)}
.lv2__go:hover svg{transform:translateX(4px)}
.lv2__blk{margin-top:clamp(72px,8vw,120px)}
.lv2__lab{display:flex;align-items:center;gap:16px;margin:0 0 clamp(28px,3vw,44px);font-size:.74rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.lv2__lab::after{content:"";flex:1;height:1px;background:rgba(255,255,255,.14)}
.lv2__specs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,4vw,64px);margin:0;padding:0;list-style:none}
.lv2-v{display:flex;align-items:baseline;gap:6px;margin:0;font-size:clamp(2.6rem,5vw,4.8rem);font-weight:500;line-height:1;letter-spacing:-.05em;font-variant-numeric:tabular-nums}
.lv2-v em{align-self:center;margin-right:6px;font-style:normal;font-size:.3em;font-weight:500;letter-spacing:0;color:rgba(255,255,255,.6)}
.lv2-v small{margin-left:4px;font-size:.32em;font-weight:500;letter-spacing:0;color:rgba(255,255,255,.6)}
.lv2-to::before{content:"–";margin:0 .04em;color:rgba(255,255,255,.4)}
.lv2-k{margin:10px 0 0;font-size:.98rem;font-weight:500;color:rgba(255,255,255,.7)}
.lv2-k::first-letter{text-transform:uppercase}
.lv2-dim{display:block;width:clamp(56px,5vw,72px);height:auto;margin-bottom:18px;color:rgba(255,255,255,.85)}
.lv2-dim path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.8s var(--ease) calc(var(--i) * 150ms + .25s)}
.lv2-dim path:nth-child(n+3){stroke:var(--red)}   /* quote in rosso */
.lv2.is-in .lv2-dim path{stroke-dashoffset:0}
.lv2__ops{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none}
.lv2__ops li{display:flex;flex-direction:column;justify-content:space-between;gap:28px;min-height:clamp(170px,15vw,210px);padding:clamp(18px,1.8vw,24px);border-radius:8px;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);transition:background .4s,border-color .4s}
.lv2__ops li:hover{background:rgba(226,64,75,.1);border-color:rgba(226,64,75,.4)}
.lv2-ic{width:clamp(52px,4.4vw,64px);height:auto;color:#fff}
.lv2-ic path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.8s var(--ease) calc(var(--i) * 110ms + .2s)}
.lv2__ops.is-in .lv2-ic path{stroke-dashoffset:0}
.lv2__ops li:hover .lv2-ic{color:var(--red)}
.lv2__ops span{font-size:.94rem;font-weight:500;line-height:1.3}
@media (max-width:1024px){.lv2__ops{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:820px){
  .lv2__top{grid-template-columns:1fr;align-items:start}
  .lv2__specs{grid-template-columns:1fr;gap:36px}
  .lv2__ops{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (prefers-reduced-motion:reduce){.lv2__media video,.lv2-dim path,.lv2-ic path{transition:none;transform:none;stroke-dashoffset:0}}

/* ===== GEN-ERA2: storia della home allineata al linguaggio nuovo (08/10, "accertati che sia all'altezza") ===== */
.era__bgs::after{background:
  linear-gradient(180deg,rgba(10,12,15,.55) 0%,rgba(10,12,15,0) 30%,rgba(10,12,15,.15) 55%,rgba(10,12,15,.92) 100%),
  linear-gradient(90deg,rgba(10,12,15,.88) 0%,rgba(10,12,15,.5) 45%,rgba(10,12,15,.05) 100%)}
.era__intro .eyebrow{display:flex;align-items:center;gap:12px;font-family:var(--body);font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#ff8a80}
.era__intro .eyebrow::before{content:"";width:22px;height:1px;background:currentColor}
.era__intro .h2{font-family:var(--body);font-weight:500;text-transform:none;font-size:clamp(2.4rem,5vw,5rem);line-height:.98;letter-spacing:-.05em;max-width:12ch}
.era__year{top:calc(var(--hdr-h) + clamp(20px,4vw,48px));bottom:auto;font-family:var(--body);font-weight:500;letter-spacing:-.06em;line-height:.85;
  font-size:clamp(4.5rem,11vw,11rem);-webkit-text-stroke:0;color:rgba(255,255,255,.14);-webkit-text-fill-color:rgba(255,255,255,.14)}
.era__year[data-era="0"]{font-size:clamp(3rem,6.4vw,6.4rem)}
.era__year[data-era="2"]{-webkit-text-stroke:0;color:rgba(226,64,75,.4);-webkit-text-fill-color:rgba(226,64,75,.4)}
.era__line{height:2px}
.era__line i{box-shadow:none}
.era__dot{width:11px;height:11px;border-width:1.5px}
.era__nodes li.is-on .era__dot{box-shadow:0 0 0 5px rgba(226,64,75,.18)}
.era__cap{font-family:var(--body);font-weight:500;text-transform:none;letter-spacing:-.01em;font-size:clamp(1rem,1.4vw,1.25rem)}
.era__nodes li.is-on .era__cap{text-shadow:none}
.era__panel{max-width:46ch}
.era__panel p{font-size:clamp(1.1rem,1.5vw,1.4rem);line-height:1.5;letter-spacing:-.01em;color:rgba(255,255,255,.88)}
.era__panel--2{max-width:62ch}
.era__panel--2 p{font-size:clamp(.98rem,1.12vw,1.1rem);line-height:1.6}
.era__scroll{font-family:var(--body);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase}
@media (max-width:820px){
  .era__intro .h2{font-size:clamp(2rem,8vw,2.8rem)}
  .era__year{bottom:auto;top:calc(var(--hdr-h) + 18px);font-size:clamp(3rem,16vw,5rem)}
  .era__year[data-era="0"]{font-size:clamp(2rem,10vw,3.4rem)}
  .era__cap{font-size:.98rem}
  .era__panel p{font-size:1.02rem}
  .era__panel--2 p{font-size:.96rem}
}

/* ===== GEN-POLISH (08/10): pagine con l'intestazione semplice (Contatti, News, policy) allineate al linguaggio nuovo ===== */
.mh .crumb{font-family:var(--body);font-size:.78rem;letter-spacing:.01em;text-transform:none}
.mh .crumb i{opacity:.6}
.mh__h{font-family:var(--body);font-weight:500;text-transform:none;font-size:clamp(2.6rem,5.4vw,5.2rem);line-height:.98;letter-spacing:-.05em;max-width:14ch}
.mh__tag{font-family:var(--body);font-size:.72rem;font-weight:600;letter-spacing:.18em}
.mh__lead{max-width:56ch}
.h2s,.h2s--lg{font-family:var(--body)!important;font-weight:500!important;text-transform:none!important;letter-spacing:-.035em!important;line-height:1.05!important}
.h2s--lg{font-size:clamp(1.8rem,3.2vw,3rem)!important}
/* contatti */
.sec--panel .cblock h2,.cblock h2,.cblock h3{font-family:var(--body);font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--red-deep);margin:0 0 10px}
.sec--panel .cblock p,.sec--panel .cblock a{color:var(--ink)}
.sec--panel .cform{background:#fff;border:0;box-shadow:0 0 0 1px rgba(10,12,15,.06),0 40px 80px -50px rgba(10,12,15,.35);border-radius:12px}
.cform label{font-family:var(--body);font-size:.78rem;font-weight:500;letter-spacing:.02em;text-transform:none;color:var(--dim-l)}
.sec--panel .cform input,.sec--panel .cform textarea{background:var(--paper);border:1px solid transparent;color:var(--ink);border-radius:8px}
.sec--panel .cform input:focus,.sec--panel .cform textarea:focus{background:#fff;border-color:var(--red);outline:0}
.cform__consent{display:flex!important;grid-template-columns:none;align-items:center;gap:10px;font-size:.88rem!important;color:var(--dim-l)!important}
.cform__consent input{width:18px;height:18px;flex:none;accent-color:var(--red);margin:0}
.cform .btn{border-radius:999px;height:54px;font-family:var(--body);font-weight:500;font-size:1rem;letter-spacing:0;text-transform:none}
.csede{background:var(--paper);padding-block:0 clamp(72px,8vw,120px)}
.csede__a{position:relative;display:block;overflow:hidden;border-radius:12px;aspect-ratio:21/9;color:#fff;text-decoration:none}
.csede__a img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.csede__a:hover img{transform:scale(1.03)}
.csede__a::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,12,15,.72) 0,rgba(10,12,15,0) 55%)}
.csede__t{position:absolute;z-index:1;left:clamp(20px,3vw,44px);right:clamp(20px,3vw,44px);bottom:clamp(20px,3vw,40px);display:flex;align-items:center;justify-content:space-between;gap:20px;
  font-size:clamp(1.15rem,2vw,1.8rem);font-weight:500;letter-spacing:-.02em;line-height:1.2}
.csede__a:hover .pc-ic{background:#fff;border-color:#fff;color:var(--ink)}
@media (max-width:640px){.csede__a{aspect-ratio:4/5}}
/* news */
.nart__i{grid-template-columns:150px minmax(0,1fr) auto}
.nart__date{font-family:var(--body);font-size:.74rem;font-weight:600;letter-spacing:.08em;color:var(--red-deep)}
.nart__t{font-family:var(--body);font-weight:500;text-transform:none;font-size:clamp(1.15rem,1.8vw,1.6rem);line-height:1.2;letter-spacing:-.022em}
.nart__go{transition:transform .45s var(--ease),color .3s}
.nart__i:hover .nart__go{transform:translateX(4px);color:var(--red)}
@media (max-width:640px){.nart__i{grid-template-columns:1fr auto}.nart__date{grid-column:1/-1}}
/* 08/10: in Chi siamo i loghi partner a colori su fascia bianca, come in home (Danilo aveva bocciato i loghi resi grigi) */
.ab-brand{background:#fff}
.ab-brand__track img{filter:none;mix-blend-mode:normal;opacity:1;height:40px}

/* GEN-FTR (08/10, "sfuma e rendi più luxury l'integrazione del logo"): la scritta emerge dal fondo invece di essere un blocco pieno */
.ft__word{transform:translateY(30%)}
.ft.is-in .ft__word{transform:translateY(14%)}
.ft__word::before{content:"";position:absolute;left:10%;right:10%;top:-10%;bottom:0;pointer-events:none;
  background:radial-gradient(60% 70% at 50% 60%,rgba(226,64,75,.16),rgba(226,64,75,0) 70%);filter:blur(10px)}
.ft__word span{
  -webkit-mask:url(../img/logo-word.png) no-repeat center/100% 100%,linear-gradient(180deg,#000 0%,rgba(0,0,0,.85) 30%,rgba(0,0,0,.25) 68%,transparent 92%);
  -webkit-mask-composite:source-in;
  mask:url(../img/logo-word.png) no-repeat center/100% 100%,linear-gradient(180deg,#000 0%,rgba(0,0,0,.85) 30%,rgba(0,0,0,.25) 68%,transparent 92%);
  mask-composite:intersect;
  background:linear-gradient(100deg,#7d1620 0%,#b52a36 30%,#e2404b 46%,#ff9a8f 50%,#e2404b 54%,#b52a36 70%,#7d1620 100%);background-size:300% 100%;background-position:100% 0}
.ft.is-in .ft__word span{animation:ftSweep 3.4s cubic-bezier(.45,0,.2,1) .6s both}

/* GEN-CERT (08/10, "più basso, con animazioni, sempre premium"): colonne di calore compatte + numeri che salgono + riflesso che sale una volta */
.ce__bars{height:clamp(190px,19vw,260px);margin-bottom:clamp(56px,6vw,90px)}
.ce-t{font-size:clamp(1.3rem,2.4vw,2.4rem);padding-bottom:8px}
.ce-c{bottom:10px;font-size:.72rem}
.ce-bar::after{content:"";position:absolute;left:0;right:0;bottom:-60%;height:60%;background:linear-gradient(0deg,rgba(255,255,255,0),rgba(255,255,255,.28),rgba(255,255,255,0));opacity:0}
.ce.is-in .is-ours .ce-bar::after{animation:ceRise 1.8s cubic-bezier(.45,0,.2,1) calc(var(--i) * 110ms + 1.1s) both}
@keyframes ceRise{0%{bottom:-60%;opacity:0}20%{opacity:1}100%{bottom:110%;opacity:0}}
.ce__bars .is-ours .ce-bar{box-shadow:0 -14px 40px -12px rgba(226,64,75,.5)}
@media (max-width:560px){.ce__bars{height:200px}.ce-t{font-size:1.15rem}}
@media (prefers-reduced-motion:reduce){.ce.is-in .is-ours .ce-bar::after{animation:none}}
/* 08/10: team della home più compatto sopra e sotto */
.sec.sec--tm{padding-block:clamp(64px,7vw,104px)}
.sec--tm .h2--lead{margin-bottom:0}
.sec--tm .eyebrow{margin-bottom:18px}
.sec--tm .teamlane{margin-top:clamp(28px,3vw,44px)}
.sec--tm .tm__act{margin-top:clamp(24px,2.4vw,32px)}
/* 08/10: Lavorazioni della home più compatta sopra e sotto */
.lv2{padding-block:clamp(64px,7vw,104px)}
.lv2__blk{margin-top:clamp(48px,5vw,80px)}
.lv2__lab{margin-bottom:clamp(20px,2.2vw,32px)}

/* GEN-LV2 (08/10, "più premium e rettangoli più piccoli"): lavorazioni come righe compatte, icona a sinistra, numerino, bordo che si accende */
.lv2__ops{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;counter-reset:lvo}
.lv2__ops li{position:relative;flex-direction:row;align-items:center;justify-content:flex-start;gap:18px;min-height:0;padding:16px 20px 16px 16px;border-radius:12px;
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.015));border:1px solid rgba(255,255,255,.07);
  transition:background .45s,border-color .45s,transform .45s var(--ease)}
.lv2__ops li::after{counter-increment:lvo;content:counter(lvo,decimal-leading-zero);margin-left:auto;font-size:.68rem;font-weight:600;letter-spacing:.12em;color:rgba(255,255,255,.28);font-variant-numeric:tabular-nums;transition:color .4s}
.lv2__ops li:hover{background:linear-gradient(180deg,rgba(226,64,75,.14),rgba(226,64,75,.04));border-color:rgba(226,64,75,.45);transform:translateY(-2px)}
.lv2__ops li:hover::after{color:var(--red)}
.lv2-ic{flex:none;width:44px;height:44px;padding:8px;border-radius:10px;background:rgba(255,255,255,.05);box-sizing:content-box;color:#fff;transition:color .4s,background .4s}
.lv2__ops li:hover .lv2-ic{background:rgba(226,64,75,.16);color:#ff8a80}
.lv2__ops span{font-size:.96rem;font-weight:500;line-height:1.3;letter-spacing:-.005em}
@media (max-width:1024px){.lv2__ops{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.lv2__ops{grid-template-columns:1fr}.lv2-ic{width:36px;height:36px}}

/* 08/10: video della hero senza bande nere incise (video/hero-clean*.mp4) — riempie sempre lo schermo, a ogni proporzione */
.hero__video{object-position:center center}

/* 08/10: logo dell'header con un leggerissimo riflesso metallico interno (maschera del logo + sfumatura chiara) */
.hdr__logo{position:relative;display:inline-block}
.hdr__logo::after{content:"";position:absolute;inset:0;pointer-events:none;
  -webkit-mask:url(../img/logo.png) no-repeat center/contain;mask:url(../img/logo.png) no-repeat center/contain;
  background:linear-gradient(180deg,rgba(255,255,255,.22) 0%,rgba(255,255,255,.04) 45%,rgba(0,0,0,.14) 55%,rgba(0,0,0,.04) 100%),
    linear-gradient(110deg,rgba(255,255,255,0) 35%,rgba(255,255,255,.28) 48%,rgba(255,255,255,0) 60%);
  background-size:100% 100%,260% 100%;background-position:0 0,110% 0;transition:background-position 1.6s var(--ease)}
.hdr__logo:hover::after{background-position:0 0,-10% 0}
/* 08/10 ("fallo animato e più luminoso"): riflesso più chiaro che passa sul logo ogni ~6 secondi */
.hdr__logo::after{
  background:linear-gradient(180deg,rgba(255,255,255,.32) 0%,rgba(255,255,255,.08) 45%,rgba(0,0,0,.12) 55%,rgba(0,0,0,0) 100%),
    linear-gradient(110deg,rgba(255,255,255,0) 38%,rgba(255,255,255,.75) 48%,rgba(255,255,255,0) 58%);
  background-size:100% 100%,300% 100%;background-position:0 0,120% 0;
  animation:logoSheen 6.5s cubic-bezier(.45,0,.2,1) 1.2s infinite;transition:none}
.hdr__logo:hover::after{background-position:0 0,120% 0}
@keyframes logoSheen{0%{background-position:0 0,120% 0}28%,100%{background-position:0 0,-20% 0}}
@media (prefers-reduced-motion:reduce){.hdr__logo::after{animation:none}}

/* 08/10 storia home ("non mi fa impazzire l'impaginazione dei testi"): testo come citazione editoriale, filo rosso a sinistra,
   niente parole sole a capo, fondo più scuro dietro il testo così non si legge sopra i volti */
.era__panel{max-width:600px;align-self:start;padding-left:clamp(18px,2vw,26px);border-left:2px solid var(--red)}
.era__panel p{text-wrap:pretty;font-size:clamp(1.05rem,1.35vw,1.3rem);line-height:1.55}
.era__panel--2 p{font-size:clamp(.96rem,1.05vw,1.04rem)}
.era__stage::after{content:"";position:absolute;inset:auto 0 0 0;height:62%;z-index:1;pointer-events:none;
  background:linear-gradient(0deg,rgba(10,12,15,.92) 0%,rgba(10,12,15,.7) 45%,rgba(10,12,15,0) 100%)}
.era__panels,.era__rail,.era__intro{z-index:2}
@media (max-width:820px){.era__panel{padding-left:16px}.era__stage::after{height:70%}}
/* 08/10 ("dividi il testo in modo equo"): stessa misura di testo in tutti e tre i capitoli; il capitolo 2008 (due paragrafi)
   su desktop va in due colonne così il blocco ha la stessa altezza degli altri */
.era__panel p,.era__panel--2 p{font-size:clamp(1rem,1.2vw,1.15rem);line-height:1.55}
@media (min-width:900px){
  .era__panel--2{max-width:1000px;column-count:2;column-gap:clamp(28px,3.4vw,56px);column-fill:balance}   /* il testo scorre in due colonne di uguale altezza */
  .era__panel--2 p+p{margin-top:.9em}
}
/* 08/10: quattro pannelli su tre pallini (il 2008 ha due paragrafi in sequenza) */
.era__bg[data-era="2"]{background-position:center 40%}
.era__year[data-era="3"]{-webkit-text-stroke:0;color:rgba(226,64,75,.4);-webkit-text-fill-color:rgba(226,64,75,.4)}
.era__year[data-era="2"]{color:rgba(255,255,255,.14);-webkit-text-fill-color:rgba(255,255,255,.14)}
/* 08/10: quattro tappe con scritta (Anni settanta · 2008 · Pochi anni fa · Oggi): i pallini esattamente a 0 · 1/3 · 2/3 · fine della barra */
.era__nodes{position:relative;display:block;height:2.2em}
.era__nodes li,.era__nodes li:nth-child(2){position:absolute;top:0;transform:none;margin:0}
.era__nodes li:nth-child(1){left:0}
.era__nodes li:nth-child(2){left:calc(100% / 3 - 7px)}
.era__nodes li:nth-child(3){left:calc(200% / 3 - 7px)}
.era__nodes li:nth-child(4){right:0;flex-direction:row-reverse}
.era__year[data-era="2"]{font-size:clamp(3rem,6.4vw,6.4rem)}
@media (max-width:820px){.era__cap{font-size:.86rem}.era__nodes li{gap:7px}.era__year[data-era="2"]{font-size:clamp(2rem,10vw,3.4rem)}}
/* telefono: le scritte delle 4 tappe sotto i pallini (non si sovrappongono) */
@media (max-width:640px){
  .era__nodes{height:3.6em}
  .era__nodes li,.era__nodes li:nth-child(2),.era__nodes li:last-child{flex-direction:column;gap:6px}
  .era__nodes li:nth-child(1){align-items:flex-start}
  .era__nodes li:nth-child(2){left:calc(100% / 3);transform:translateX(-50%);align-items:center}
  .era__nodes li:nth-child(3){left:calc(200% / 3);transform:translateX(-50%);align-items:center}
  .era__nodes li:last-child{align-items:flex-end}
  .era__cap{font-size:.8rem;text-align:center;white-space:nowrap}
}

/* 08/10 modulo contatti con Netlify Forms: campo trappola anti-spam nascosto, messaggio di esito */
.cform__hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.cform__msg{margin:0;font-size:.92rem;line-height:1.5;color:var(--ink)}
.cform__msg:empty{display:none}
.cform__msg.is-err{color:var(--red-deep)}
.cform.is-sending .btn{opacity:.6;pointer-events:none}

/* 08/10 pagina 404 */
.e404{min-height:calc(100svh - 120px);display:flex;align-items:center}
.e404 .wrap{width:100%}
.e404__n{margin:0 0 6px;font-size:clamp(5rem,16vw,13rem);font-weight:500;line-height:.85;letter-spacing:-.07em;color:var(--red)}
.e404__act{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;margin:clamp(28px,3vw,40px) 0 0}
.e404 .cta__btn{color:#fff;background:var(--ink)}
.e404__l{font-weight:500;color:var(--ink);text-decoration:none;padding-bottom:4px;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat}

/* ===== GEN-ART: articoli delle News (build_articoli.py) ===== */
.art-hd{padding-top:calc(var(--hdr-h) + clamp(28px,4vw,48px));padding-bottom:clamp(28px,3vw,44px)}
.art-hd .crumb{margin-bottom:clamp(20px,2.4vw,30px);font-family:var(--body);font-size:.78rem;text-transform:none;letter-spacing:.01em}
.art-hd .crumb a{color:var(--dim-l)}.art-hd .crumb a:hover{color:var(--red-deep)}.art-hd .crumb i{font-style:normal;opacity:.5;margin:0 4px}
.art-date{margin:0 0 14px;font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--red-deep)}
.art-h{margin:0;max-width:22ch;font-family:var(--body);font-weight:500;text-transform:none;font-size:clamp(2rem,4.4vw,4rem);line-height:1.04;letter-spacing:-.04em;color:var(--ink);text-wrap:balance}
.art-cover{margin:0;background:var(--paper)}
.art-cover img{display:block;width:100%;aspect-ratio:21/9;object-fit:cover;border-radius:12px;background:var(--paper-2)}
.art-body{padding-top:clamp(40px,5vw,72px)}
.art-txt{max-width:70ch;margin:0 auto;font-size:clamp(1.02rem,1.12vw,1.1rem);line-height:1.78;color:rgba(10,12,15,.82)}
.art-txt>*{margin:0 0 1.1em}
.art-txt h2,.art-txt h3,.art-txt h4{font-family:var(--body);font-weight:600;text-transform:none;letter-spacing:-.02em;line-height:1.2;color:var(--ink);margin:1.9em 0 .6em}
.art-txt h2{font-size:clamp(1.4rem,2vw,1.75rem)}.art-txt h3{font-size:clamp(1.18rem,1.5vw,1.35rem)}.art-txt h4{font-size:1.08rem}
.art-txt ul,.art-txt ol{padding-left:1.25em}.art-txt li{margin:.35em 0}.art-txt li::marker{color:var(--red)}
.art-txt a{color:var(--red-deep);text-decoration:underline;text-underline-offset:3px}
.art-txt strong,.art-txt b{color:var(--ink);font-weight:600}
.art-txt blockquote{margin:1.6em 0;padding-left:18px;border-left:2px solid var(--red);font-size:1.12em;color:var(--ink)}
.art-fig{margin:2em 0}.art-fig img{display:block;width:100%;height:auto;border-radius:10px}
.art-nav{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:70ch;margin:clamp(48px,5vw,72px) auto 0;padding-top:28px;border-top:1px solid rgba(10,12,15,.12)}
.art-nav a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border-radius:10px;background:#fff;color:var(--ink);text-decoration:none;
  box-shadow:0 0 0 1px rgba(10,12,15,.06);transition:box-shadow .3s,transform .4s var(--ease)}
.art-nav a:hover{box-shadow:0 0 0 1px rgba(226,64,75,.45);transform:translateY(-2px)}
.art-nav__p{flex-direction:row-reverse}.art-nav__p svg{transform:rotate(180deg)}
.art-nav__n{grid-column:2}
.art-nav__t{font-size:.95rem;font-weight:500;line-height:1.35}
.art-nav svg{flex:none;width:18px;height:18px;color:var(--red)}
.art-back{max-width:70ch;margin:28px auto 0}
.art-back a{display:inline-flex;align-items:center;gap:10px;font-weight:500;color:var(--ink);text-decoration:none;padding-bottom:4px;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat}
.art-back svg{width:18px;height:18px}
@media (max-width:640px){.art-nav{grid-template-columns:1fr}.art-nav__n{grid-column:auto}.art-cover img{aspect-ratio:16/10;border-radius:8px}}

/* 08/10 Lavorazioni: fascia "Grazie alle 7 macchine di taglio" (lav.section_specs) al posto del film a capitoli */
.lv2--specs{padding-block:clamp(72px,8vw,120px)}
.lv2__h--sm{margin:0 0 clamp(36px,4vw,56px);font-size:clamp(1.5rem,2.6vw,2.4rem);letter-spacing:-.03em}
.lv2-k--full{max-width:30ch;font-size:clamp(.98rem,1.08vw,1.06rem);line-height:1.5;color:rgba(255,255,255,.72)}
.lv2-k--full::first-letter{text-transform:none}

/* 08/10 bento Prodotti: su schermi piccoli il "+" va nell'angolo in alto, il nome ha tutta la larghezza (Termoprotettori usciva dal bordo) */
@media (max-width:900px){
  .pc-tile .pc-ic{position:absolute;top:10px;right:10px;width:34px;height:34px;background:rgba(10,12,15,.3);border-color:rgba(255,255,255,.38)}   /* in alto la foto è chiara: vetro scuro per leggerlo */
  .pc-tile .pc-ic svg{width:15px;height:15px}
  .pc-tile__b{inset:0;align-items:flex-end;padding-right:clamp(14px,1.4vw,20px)}   /* il corpo copre la tessera: il "+" si aggancia all'angolo della tessera, non alla barra in basso */
  .pc-tile__n{min-width:0;overflow-wrap:anywhere;hyphens:auto;-webkit-hyphens:auto}
}

/* 08/10 leggibilità su telefono: niente etichette sotto i 12px, bersagli tattili di almeno 24px */
@media (max-width:820px){
  .ft__h,.ph__spec dt,.c2-row dt,.catm__tag,.ce-f__tag,.lvc__lab,.lvc__k,.eyebrow,.cblock h2,.cblock h3{font-size:.75rem}
  .ft__h a,.ft__legal a,.crumb a,.ph__crumb a,.cx-back,.pc-pan__fam,.mh .crumb a{display:inline-block;padding-block:5px}
  .cblock a{display:inline-block;padding-block:3px}
  .ft__col li a{padding-block:3px}
  .cform__consent a{display:inline-block;padding-block:3px}
}
.art-hd .crumb{color:rgba(10,12,15,.6)}.art-hd .crumb i{color:rgba(10,12,15,.4);opacity:1}

/* 08/10 telefono: nessun testo sotto i 12px (etichette, date, bottoni piccoli); il bottone grande e quello del modulo restano come sono */
@media (max-width:820px){
  .btn:where(:not(.btn--lg)),.lv2__lab,.ce-c,.dq2__k,.dq2-co,.nart__date,.era__intro .eyebrow,.sec--panel .cblock h2,.sec--panel .cblock h3{font-size:.75rem}
}
.faq__i p a{color:var(--red-deep);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.faq__i p a:hover{text-decoration-thickness:2px}
@supports (height:1svh){.ce-box{max-height:92svh}}   /* iPhone: il certificato a schermo intero non finisce sotto la barra di Safari */

/* ===== GEN-CATSUM 08/10: Prodotti della home — riassunto (Danilo) in un riquadro sotto le 5 tessere, stesso stile minimal (raggio 4px, fondo delle tessere) ===== */
.cat__note{margin-top:10px;padding:clamp(22px,2.6vw,36px) clamp(22px,2.8vw,40px);border-radius:4px;background:var(--raise);border:1px solid rgba(255,255,255,.06)}
.cat__sum{margin:0;max-width:none;font-size:clamp(1rem,1.2vw,1.18rem);line-height:1.6;color:rgba(255,255,255,.78);text-wrap:pretty}
@media (max-width:640px){.cat__note{margin-top:12px}}

/* 08/10 Lavorazioni (home + pagina) sotto gli 820px ("anche qui puoi ottimizzare"): i 3 valori non più impilati con disegno sopra,
   ma righe compatte — disegno a sinistra, valore e nome a destra, filetti sottili fra le righe (circa metà altezza) */
@media (max-width:820px){
  .lv2__specs{gap:0}
  .lv2-s{display:grid;grid-template-columns:clamp(48px,12vw,60px) minmax(0,1fr);column-gap:clamp(16px,4vw,28px);align-items:center;padding:clamp(16px,3.5vw,22px) 0;border-top:1px solid rgba(255,255,255,.1)}
  .lv2-s:last-child{border-bottom:1px solid rgba(255,255,255,.1)}
  .lv2-dim{grid-row:1 / span 2;align-self:center;width:100%;margin:0}
  .lv2-v{font-size:clamp(2.1rem,8.5vw,3rem)}
  .lv2-k{margin-top:6px}
  .lv2-k--full{max-width:none}
}

/* 08/10 Certificazioni (home + Qualità, "un pelo più piccolo e i testi affianco, che non si sovrapponga mai"):
   titolo più piccolo, colonna del titolo larga quanto la parola, testo accanto nello spazio che resta; sotto i 900px uno sotto l'altro */
.ce__head{grid-template-columns:max-content minmax(0,1fr);align-items:end;column-gap:clamp(32px,4.5vw,80px)}
.ce__h{font-size:clamp(2.6rem,6vw,6.2rem)}
.ce__lead{justify-self:end;max-width:48ch}
@media (max-width:900px){.ce__head{grid-template-columns:1fr}.ce__lead{justify-self:start}}
/* 08/10 controllo finale: indirizzi lunghi scritti per intero negli articoli vanno a capo (su telefono uscivano dal bordo) */
.art-txt a,.art-txt p,.art-txt li{overflow-wrap:anywhere}
/* righe compatte di Lavorazioni su telefono: unità e "fino a" mai sotto i 12px */
@media (max-width:820px){.lv2-v small,.lv2-v em{font-size:max(.75rem,.32em)}}

/* ===== GEN-CONT 08/10: pagina Contatti rifatta (build_inner.build_contatti) — hero Cinema, uffici, modulo + sede, domande frequenti ===== */
/* hero: barra in basso con indirizzo e recapiti */
.cbar{gap:16px clamp(36px,5vw,96px)}
.cbar .ph__spec dd{line-height:1.5}
.cbar a{color:inherit;text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .45s var(--ease)}
.cbar a:hover{background-size:100% 1px}
.cbar__sep{display:inline-block;width:1px;height:.95em;margin:0 .9em;vertical-align:-.12em;background:rgba(255,255,255,.3)}
@media (max-width:900px){
  .cbar .ph__spec{display:block;padding:14px 0}
  .cbar .ph__spec dt{margin:0 0 6px}
  .cbar .ph__spec dd{text-align:left;font-size:.98rem}
  .cbar__sep{display:block;width:0;height:4px;margin:0;background:none}
}
/* uffici: 4 carte su scuro */
.cof{padding-block:clamp(72px,8vw,120px);background:var(--bg)}
.cof__g{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,1.6vw,24px)}
.cof__c{position:relative;overflow:hidden;padding:clamp(22px,2vw,30px);border-radius:12px;border:1px solid rgba(255,255,255,.08);
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.012));transition:border-color .4s,background .4s}
.cof__c::before{content:"";position:absolute;inset:0 0 auto;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .8s var(--ease)}
.cof__c:hover{border-color:rgba(255,255,255,.16);background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.02))}
.cof__c:hover::before{transform:scaleX(1)}
.cof__h{margin:0 0 16px;font-size:.75rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.cof__l{list-style:none;margin:0;padding:0}
.cof__l a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.07);
  color:rgba(255,255,255,.84);text-decoration:none;font-size:clamp(.88rem,.95vw,.98rem);transition:color .3s}
.cof__l li:last-child a{border-bottom:0;padding-bottom:0}
.cof__l a span{min-width:0;overflow-wrap:anywhere}
.cof__l a svg{flex:none;width:16px;height:16px;opacity:.3;transform:translateX(-4px);transition:opacity .35s,transform .45s var(--ease),color .35s}
.cof__l a:hover{color:#fff}
.cof__l a:hover svg{opacity:1;transform:none;color:var(--red)}
@media (max-width:1180px){.cof__g{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.cof__g{grid-template-columns:1fr}.cof__l a{font-size:1rem}}
/* modulo + sede su chiaro */
.cwr{padding-block:clamp(80px,9vw,140px)}
.cwr__g{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(36px,5vw,90px);align-items:stretch}
.cwr__h{margin:0 0 clamp(24px,3vw,40px);font-size:clamp(2.2rem,4.4vw,4rem);font-weight:500;line-height:1;letter-spacing:-.045em;color:var(--ink)}
.sec--panel .cform.cform--x{display:grid;gap:clamp(20px,2.2vw,28px);padding:0;border:0;border-radius:0;background:none;box-shadow:none}
.cform--x .cform__row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,2.2vw,32px)}
.sec--panel .cform.cform--x label{display:grid;gap:6px;font-family:var(--body);font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--dim-l)}
.sec--panel .cform.cform--x input,.sec--panel .cform.cform--x textarea{width:100%;padding:10px 0 12px;font:inherit;font-size:max(16px,1.06rem);font-weight:400;letter-spacing:0;text-transform:none;color:var(--ink);
  background:transparent;border:0;border-bottom:1px solid rgba(10,12,15,.22);border-radius:0;outline:0;transition:border-color .3s,box-shadow .3s}
.sec--panel .cform.cform--x input:focus,.sec--panel .cform.cform--x textarea:focus{border-bottom-color:var(--red-deep);box-shadow:0 1px 0 0 var(--red-deep)}
.sec--panel .cform.cform--x textarea{min-height:128px;resize:vertical}
.cform__end{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px 28px;margin-top:4px}
.sec--panel .cform.cform--x .cform__consent{display:flex;align-items:center;gap:10px;font-size:.95rem;font-weight:400;letter-spacing:0;text-transform:none;color:var(--dim-l)}
.sec--panel .cform.cform--x .cform__consent input{flex:none;width:18px;height:18px;padding:0;border:0;box-shadow:none;accent-color:var(--red-deep)}
.cform--x .cform__consent a{color:var(--red-deep);text-decoration:underline;text-underline-offset:3px}
.cform__btn{display:inline-flex;align-items:center;gap:14px;padding:16px 24px 16px 30px;border:0;border-radius:999px;background:var(--ink);color:#fff;
  font:inherit;font-size:1rem;font-weight:500;cursor:pointer;transition:background .35s}
.cform__btn svg{width:18px;height:18px;transition:transform .45s var(--ease)}
.cform__btn:hover{background:var(--red-deep)}
.cform__btn:hover svg{transform:translateX(4px)}
.cform.is-sending .cform__btn{opacity:.6;pointer-events:none}
.cwr__sede{aspect-ratio:auto;min-height:420px;height:100%}
@media (max-width:900px){.cwr__g{grid-template-columns:1fr}.cwr__sede{height:auto;min-height:0;aspect-ratio:4/3}}
@media (max-width:560px){.cform--x .cform__row{grid-template-columns:1fr}.cform__btn{width:100%;justify-content:center}}
/* domande frequenti su scuro, numerate, una aperta alla volta */
.cfaq{padding-block:clamp(80px,9vw,140px);background:var(--bg-2)}
.cfaq__g{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(36px,6vw,110px);align-items:start}
.cfaq__l{position:sticky;top:calc(var(--hdr-h) + 36px)}
.cfaq__h{margin:0 0 22px;font-size:clamp(1.9rem,3.2vw,3rem);font-weight:500;line-height:1.06;letter-spacing:-.035em;color:#fff;text-wrap:balance}
.cfaq__l p{margin:0 0 14px;max-width:44ch;font-size:clamp(.98rem,1.05vw,1.05rem);line-height:1.6;color:var(--dim)}
.cfaq__list{border-top:1px solid rgba(255,255,255,.12)}
.cfaq__i{--g:clamp(14px,2vw,28px);position:relative;border-bottom:1px solid rgba(255,255,255,.12)}
.cfaq__i::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .9s var(--ease)}
.cfaq__i[open]::after{transform:scaleX(1)}
.cfaq__i summary{display:grid;grid-template-columns:2.4rem minmax(0,1fr) auto;align-items:center;gap:var(--g);padding:clamp(22px,2.4vw,32px) 0;cursor:pointer;list-style:none}
.cfaq__i summary::-webkit-details-marker{display:none}
.cfaq__n{font-family:var(--mono);font-size:.78rem;letter-spacing:.04em;color:var(--red)}
.cfaq__q{font-size:clamp(1.08rem,1.55vw,1.42rem);font-weight:500;line-height:1.3;letter-spacing:-.015em;color:rgba(255,255,255,.86);transition:color .3s}
.cfaq__i summary:hover .cfaq__q,.cfaq__i[open] .cfaq__q{color:#fff}
.cfaq__ic{position:relative;width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.22);color:#fff;transition:background .35s,border-color .35s}
.cfaq__ic::before,.cfaq__ic::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;background:currentColor;transform:translate(-50%,-50%)}
.cfaq__ic::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .45s var(--ease)}
.cfaq__i summary:hover .cfaq__ic{border-color:rgba(255,255,255,.5)}
.cfaq__i[open] .cfaq__ic{background:var(--red);border-color:var(--red)}
.cfaq__i[open] .cfaq__ic::after{transform:translate(-50%,-50%) rotate(0deg)}
.cfaq__a{padding:0 0 clamp(24px,2.6vw,34px) calc(2.4rem + var(--g))}
.cfaq__a p{margin:0;max-width:60ch;font-size:clamp(.98rem,1.05vw,1.06rem);line-height:1.65;color:var(--dim)}
.cfaq__a a{color:#fff;text-decoration:underline;text-decoration-color:var(--red);text-underline-offset:3px}
.cfaq__i[open] .cfaq__a{animation:cfaqIn .6s var(--ease)}
@keyframes cfaqIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media (max-width:900px){.cfaq__g{grid-template-columns:1fr}.cfaq__l{position:static}}
@media (max-width:560px){.cfaq__i summary{grid-template-columns:1.8rem minmax(0,1fr) auto}.cfaq__a{padding-left:calc(1.8rem + var(--g))}.cfaq__ic{width:32px;height:32px}}
/* entrata delle sezioni (JS GEN-CONT aggiunge .is-in) */
.js .cof__c,.js .cwr__f,.js .cwr__sede,.js .cfaq__l,.js .cfaq__i{opacity:0;transform:translateY(18px)}
.cof.is-in .cof__c,.cwr.is-in .cwr__f,.cwr.is-in .cwr__sede,.cfaq.is-in .cfaq__l,.cfaq.is-in .cfaq__i{opacity:1;transform:none;
  transition:opacity .9s var(--ease) calc(var(--d,0) * 1ms),transform .9s var(--ease) calc(var(--d,0) * 1ms),border-color .4s,background .4s}
.cof__c:nth-child(2),.cwr__sede,.cfaq__i:nth-child(1){--d:90}.cof__c:nth-child(3),.cfaq__i:nth-child(2){--d:180}.cof__c:nth-child(4),.cfaq__i:nth-child(3){--d:270}.cfaq__i:nth-child(4){--d:360}
@media (prefers-reduced-motion:reduce){.js .cof__c,.js .cwr__f,.js .cwr__sede,.js .cfaq__l,.js .cfaq__i{opacity:1;transform:none}.cfaq__i[open] .cfaq__a{animation:none}}
.cof__m{display:grid;gap:2px;min-width:0}
.cof__m b{font-weight:500;color:inherit;overflow-wrap:anywhere}
.cof__m small{font-size:.8em;color:rgba(255,255,255,.45)}
.cof__m small{font-size:max(.75rem,.8em)}
@media (max-width:900px){.cbar a{display:inline-block;padding-block:5px}}
/* 08/10 uffici: 5 carte (con General Manager) */
@media (min-width:1181px){.cof__g{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (max-width:1180px) and (min-width:901px){.cof__g{grid-template-columns:repeat(3,minmax(0,1fr))}}
.cof__c:nth-child(5){--d:360}
.cof__h{line-height:1.35}
@media (min-width:1181px){.cof__h{min-height:4.05em;letter-spacing:.14em}}
@media (max-width:1180px) and (min-width:901px){.cof__h{min-height:2.7em}}
.ph__par picture{display:block;width:100%;height:100%}   /* 08/10: foto verticale per il telefono (scheda_hero.mob_img) */
/* 08/10 telefono — velocità: immagine d'attesa della hero come <picture> (verticale sul telefono), il video compare quando parte davvero */
.hero__ph{position:absolute;inset:0;display:block}
.hero__ph img{width:100%;height:100%;object-fit:cover;object-position:center center}
.hero__video{position:relative;z-index:1;opacity:0;transition:opacity .8s var(--ease)}
.hero__video.is-playing{opacity:1}
@media (max-width:900px){.mega{display:none}}   /* la tendina è solo per computer: sul telefono le sue miniature non si scaricano */
/* 08/10 telefono: niente riquadro grigio al tocco (i link hanno già i loro stati), menu aperto senza "trascinare" la pagina sotto */
a,button,summary,label,[role="button"]{-webkit-tap-highlight-color:transparent}
.mnav{overscroll-behavior:contain}
html:has(body.nav-lock){overflow:hidden}
/* 08/10 uffici (Danilo): 4 carte con una mail affiancate, "Ufficio commerciale Italia" sotto a tutta larghezza con le 4 mail in fila */
.cof__g{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.cof__h{min-height:0!important}
@media (min-width:1101px){.cof__c:not(.cof__c--wide) .cof__h{min-height:2.7em!important}}
.cof__c--wide{grid-column:1/-1}
.cof__c--wide .cof__l{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:clamp(18px,2.4vw,40px)}
.cof__c--wide .cof__l li a,.cof__c--wide .cof__l li:last-child a{border-bottom:0;padding-block:6px}
.cof__c--wide .cof__l li{border-left:1px solid rgba(255,255,255,.08);padding-left:clamp(14px,1.6vw,22px)}
.cof__c--wide .cof__l li:first-child{border-left:0;padding-left:0}
.cof__c:nth-child(5){--d:360}
@media (max-width:1100px){.cof__g{grid-template-columns:repeat(2,minmax(0,1fr))!important}.cof__c--wide .cof__l{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:10px}
  .cof__c--wide .cof__l li:nth-child(odd){border-left:0;padding-left:0}}
@media (max-width:560px){.cof__g{grid-template-columns:1fr!important}.cof__c--wide .cof__l{grid-template-columns:1fr}
  .cof__c--wide .cof__l li{border-left:0;padding-left:0;border-top:1px solid rgba(255,255,255,.07)}.cof__c--wide .cof__l li:first-child{border-top:0}
  .cof__c{padding:18px 20px}.cof__h{margin-bottom:10px}}
@media (max-width:560px){
  .cof__g{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px}
  .cof__c:not(.cof__c--wide){padding:16px 14px}
  .cof__c:not(.cof__c--wide) .cof__h{font-size:.68rem;letter-spacing:.1em;min-height:2.7em!important;margin-bottom:8px}
  .cof__c:not(.cof__c--wide) .cof__l a{font-size:.9rem}
  .cof__c:not(.cof__c--wide) .cof__l a svg{display:none}
}
/* 08/10 Partner in home (Danilo): titolo e testo centrati */
#partner > .wrap:first-child{text-align:center}
#partner > .wrap:first-child .lead{margin-inline:auto;max-width:60ch}
.hero__media::after{z-index:2}   /* 08/10: la sfumatura scura resta sopra al video (il video ha z-index 1 sopra l'immagine d'attesa) */

/* ===== 08/10 modulo Contatti "fallo meglio": scheda bianca, campi pieni arrotondati con etichetta che sale, bordo rosso sul campo attivo ===== */
.cwr__g{align-items:end}
.cwr__card{position:relative;padding:clamp(24px,3vw,44px);border-radius:18px;background:#fff;
  box-shadow:0 1px 0 rgba(10,12,15,.04),0 2px 6px rgba(10,12,15,.04),0 40px 80px -46px rgba(10,12,15,.45)}
.cwr__card::before{content:"";position:absolute;left:clamp(24px,3vw,44px);right:clamp(24px,3vw,44px);top:0;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--red),rgba(226,64,75,0))}
.sec--panel .cform.cform--x{gap:14px}
.cform--x .cform__row{gap:14px}
.sec--panel .cform.cform--x .ff{position:relative;display:block;font-size:inherit;letter-spacing:0;text-transform:none}
.sec--panel .cform.cform--x .ff input,.sec--panel .cform.cform--x .ff textarea{display:block;width:100%;padding:26px 16px 10px;border:1px solid transparent;border-radius:12px;background:#F2F3F5;
  font-size:max(16px,1.02rem);line-height:1.4;color:var(--ink);box-shadow:none;transition:border-color .3s,background .3s,box-shadow .3s}
.sec--panel .cform.cform--x .ff textarea{min-height:168px;resize:vertical}
.sec--panel .cform.cform--x .ff input:hover,.sec--panel .cform.cform--x .ff textarea:hover{background:#ECEEF1}
.sec--panel .cform.cform--x .ff input:focus,.sec--panel .cform.cform--x .ff textarea:focus{background:#fff;border-color:var(--red-deep);box-shadow:0 0 0 4px rgba(194,42,54,.1)}
.cform--x .ff span{position:absolute;left:17px;top:18px;font-size:1rem;font-weight:400;color:rgba(10,12,15,.5);pointer-events:none;transform-origin:left top;transition:transform .3s var(--ease),color .3s}
.cform--x .ff--ta span{top:18px}
.cform--x .ff input:focus+span,.cform--x .ff input:not(:placeholder-shown)+span,
.cform--x .ff textarea:focus+span,.cform--x .ff textarea:not(:placeholder-shown)+span{transform:translateY(-10px) scale(.76);color:var(--dim-l);font-weight:500;letter-spacing:.02em}
.cform--x .ff input:focus+span,.cform--x .ff textarea:focus+span{color:var(--red-deep)}
.cform__end{margin-top:10px}
.sec--panel .cform.cform--x .cform__consent{font-size:.95rem}
.sec--panel .cform.cform--x .cform__consent input{width:20px;height:20px}
.cform__btn{box-shadow:0 14px 30px -16px rgba(10,12,15,.6)}
.cwr__sede{border-radius:18px}
@media (max-width:900px){.cwr__g{align-items:stretch}}
@media (max-width:560px){.cwr__card{padding:20px 16px;border-radius:16px}.cwr__card::before{left:16px;right:16px}}
@media (max-width:560px){.cof__c:not(.cof__c--wide) .cof__h{font-size:.75rem;letter-spacing:.06em;min-height:4.05em!important}}

/* ===== 08/10 selettore lingua con bandierine (header) ===== */
.lang{display:flex;align-items:center;gap:2px;margin-left:clamp(14px,1.4vw,22px);margin-right:clamp(10px,1vw,16px);padding:3px;border:1px solid rgba(255,255,255,.16);border-radius:999px;flex:none}
.lang__i{display:inline-flex;align-items:center;gap:6px;padding:5px 9px 5px 6px;border-radius:999px;font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;line-height:1;color:rgba(255,255,255,.62);text-decoration:none;transition:background .3s,color .3s}
.lang__i svg{width:16px;height:16px;border-radius:50%;box-shadow:0 0 0 1px rgba(255,255,255,.18);flex:none}
.lang__i:hover{color:#fff;background:rgba(255,255,255,.06)}
.lang__i.is-on{background:rgba(255,255,255,.12);color:#fff}
.hdr--light .lang{border-color:rgba(10,12,15,.16)}
.hdr--light .lang__i{color:rgba(10,12,15,.6)}
.hdr--light .lang__i:hover{color:var(--ink);background:rgba(10,12,15,.05)}
.hdr--light .lang__i.is-on{background:rgba(10,12,15,.08);color:var(--ink)}
.hdr--light .lang__i svg{box-shadow:0 0 0 1px rgba(10,12,15,.12)}
.hdr--v2.mega-open .lang,.hdr--v2.menu-open .lang{border-color:rgba(255,255,255,.16)}
.hdr--v2.mega-open .lang__i,.hdr--v2.menu-open .lang__i{color:rgba(255,255,255,.62)}
.hdr--v2.mega-open .lang__i.is-on,.hdr--v2.menu-open .lang__i.is-on{background:rgba(255,255,255,.12);color:#fff}
@media (max-width:1180px){.lang{margin-left:auto}}
@media (max-width:900px){
  .lang{margin-left:auto;margin-right:8px;padding:2px}
  .lang__i{padding:4px 7px 4px 4px;font-size:.75rem;gap:5px}
  .hdr__call{margin-left:0!important}
}
@media (max-width:360px){.lang__i span{display:none}.lang__i{padding:4px}}
@media (min-width:901px){
  .lang{margin-left:clamp(12px,1.2vw,18px);margin-right:clamp(8px,.9vw,14px)}
  .lang__i{padding:4px;gap:0}
  .lang__i span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .lang__i svg{width:18px;height:18px}
  .lang__i:not(.is-on) svg{opacity:.75;filter:saturate(.7)}
  .lang__i:hover svg{opacity:1;filter:none}
  .hdr__nav--v2 > a{white-space:nowrap}
}
@media (min-width:901px){.lang{margin-right:0}}

/* 19/10 Qualità: rimando alla pagina Certificazioni (sezione spostata nella sua pagina) */
.qcert__g{display:grid;grid-template-columns:minmax(0,7fr) auto;gap:28px clamp(32px,5vw,96px);align-items:end}
.qcert__act{margin:0}
@media (max-width:820px){.qcert__g{grid-template-columns:1fr}}
.tgs,.qcert,#q-impegno,#q-politiche,#q-sociale{scroll-margin-top:var(--hdr-h)}   /* 19/10: ancore sotto l'header fisso */
.ls{scroll-margin-top:var(--hdr-h)}

/* 19/10 LOGO (Danilo: "il logo non può mai diventare così"): fra 901 e 1280px l'header non ci stava e il flex schiacciava il logo.
   Il logo non si restringe mai; sotto i 1300px si toglie il telefono e si stringono le voci di menu */
.hdr__logo{flex:none}
.hdr__logo img{flex:none;max-width:none;width:auto}
@media (max-width:1300px){.hdr__tel{display:none}}
@media (max-width:1280px) and (min-width:901px){
  .hdr{gap:clamp(12px,1.6vw,24px)}
  .hdr__nav--v2{gap:clamp(10px,1.4vw,20px)}
  .hdr__nav--v2 > a{font-size:.84rem}
  .hdr .btn--sm{padding-inline:14px}
}
@media (max-width:1060px) and (min-width:901px){
  .hdr__nav--v2 > a{font-size:.8rem}
  .hdr__nav--v2{gap:10px}
  .lang{margin-left:8px}
}
@media (max-width:340px){.hdr__call{display:none!important}.lang{margin-right:4px}}   /* telefoni strettissimi: via il tasto chiama, resta nel menu */

/* 19/10 controllo finale, telefoni stretti (≤360): il logo A.P.I. sbordava a destra; la didascalia della sede sul chiaro della facciata */
@media (max-width:360px){.pt__cell{gap:12px}.pt__cell .eyebrow{flex:1 1 auto;min-width:0;white-space:normal}.pt__img{height:auto;max-height:40px;max-width:44%}.pt__img--seal{max-height:60px}}
@media (max-width:640px){.csede__a::after{background:linear-gradient(0deg,rgba(10,12,15,.88) 0,rgba(10,12,15,.45) 55%,rgba(10,12,15,.05) 100%)}.csede__t{text-shadow:0 1px 14px rgba(0,0,0,.6)}}
/* 19/10: il + della pagina Prodotti è il bottone della fisarmonica (la tessera è un link): area di tocco più larga, focus visibile */
.pc-tile .pc-ic--plus{cursor:pointer}
@media (min-width:901px){.pc-tile .pc-ic--plus{position:relative}}   /* 20/10: sotto i 900px il + resta in alto a destra (position:absolute) */
.pc-tile .pc-ic--plus::before{content:"";position:absolute;inset:-10px}
.pc-tile .pc-ic--plus:focus-visible{outline:2px solid #fff;outline-offset:3px}

/* 20/10 controllo da telefono: Storia e Showreel della home restano fermi con position:sticky (lo fa il browser, in sincronia
   con il dito) invece del pin di GSAP (fissato dal JS un fotogramma dopo: sui telefoni la sezione "scattava" all'aggancio e allo
   sgancio, CLS 3 in home). L'animazione resta guidata da ScrollTrigger (scrub), cambia solo chi tiene ferma la sezione. */
.reel__stick{position:relative;height:100vh;height:100svh;overflow:hidden}
.reel--js{height:calc(100vh + 140vh);height:calc(100svh + 140vh);overflow:visible}
.reel--js .reel__stick{position:sticky;top:0}
.era--js .era__stage{position:sticky;top:0}

/* ===== GEN-MOB1 (20/10) — controllo da telefono: contatti, news, articoli, pagine legali, menu, footer ===== */
/* menu aperto: header pieno (le voci che scorrono sotto non si vedono più attraverso logo e bandierine) e voci che sfumano sotto l'header */
.hdr--v2.menu-open{background:#0A0C0F;box-shadow:0 1px 0 rgba(255,255,255,.08)}
.mnav--v2{-webkit-mask-image:linear-gradient(transparent calc(var(--hdr-h) - 2px),#000 calc(var(--hdr-h) + 10px));mask-image:linear-gradient(transparent calc(var(--hdr-h) - 2px),#000 calc(var(--hdr-h) + 10px))}
.mnav--v2 .mnav__f,.mnav--v2 .mnav__l--b{scroll-margin-top:calc(var(--hdr-h) + 6px)}
/* bersagli tattili ≥ 44px senza cambiare l'aspetto */
@media (max-width:900px){
  .hdr__burger{min-height:44px;min-width:44px}
  .lang__i{position:relative}
  .lang__i::before{content:"";position:absolute;inset:-10px -3px}
  .mnav--v2 .mnav__foot a:not(.btn){padding-block:10px}
}
@media (max-width:820px){
  .ft__col ul{gap:0}
  .ft__col li a{padding-block:8px}
  .ft__legal a{padding-block:10px}
  .ft__h{line-height:1.4}
  .ft__h a{margin-block:-5px}
  .cta__tel{padding-block:8px}
}
@media (max-width:560px){.ft__sep{display:block;flex-basis:100%;width:100%;height:0;background:none}.ft__bot>p:first-child{padding-right:56px;row-gap:4px}}   /* ragione sociale e P.IVA su due righe */
.cform__consent{min-height:44px}
/* Contatti: il pulsante "Contattaci" non fa finire il titolo del modulo sotto l'header; meno vuoto prima degli uffici;
   sotto i 360px le carte degli uffici una per riga (le email andavano a capo a metà parola) */
@media (max-width:760px){#modulo{scroll-margin-top:32px}.cof{padding-block-start:36px}}
@media (max-width:359px){.cof__g{grid-template-columns:1fr!important}.cof__c:not(.cof__c--wide) .cof__h{min-height:0!important}}
/* testate delle pagine interne su telefono: più scuro in basso dove c'è il testo (Contatti: il testo finiva sulla placca chiara) */
@media (max-width:900px){
  .ph__media::after{background:linear-gradient(180deg,rgba(10,12,15,.62) 0,rgba(10,12,15,0) 24%),linear-gradient(0deg,rgba(10,12,15,.96) 0,rgba(10,12,15,.84) 50%,rgba(10,12,15,0) 84%)}
  .ph{--ph-dim:rgba(255,255,255,.8)}
}
/* niente parole sole a fine riga in titoli e testi brevi */
.ph__title,.cta__d,.csede__t span,.mh__lead{text-wrap:balance}
@media (max-width:360px){.mh__h{font-size:clamp(2.1rem,11.2vw,2.6rem)}}
/* News: le schede allineate al margine della pagina */
@media (max-width:760px){.nart__i{padding-inline:0}}
/* Articoli: meno vuoto fra titolo/copertina e testo; elenchi con il pallino (il reset globale lo toglieva) */
.art-txt>:first-child{margin-top:0}
.art-txt ul{list-style:disc}
.art-txt ol{list-style:decimal}
@media (max-width:760px){.art-body{padding-top:clamp(24px,6vw,40px)}.art-hd.sec{padding-bottom:clamp(20px,5vw,32px)}}
/* Privacy e Cookie policy: titoli di sezione veri (il testo è lo stesso) e voci con il pallino rientrate */
.rich h2.pol-h,.rich h3.pol-h{font-family:var(--body);font-weight:600;text-transform:none;letter-spacing:-.015em;line-height:1.22;margin:1.9em 0 .55em}
.rich h2.pol-h{font-size:clamp(1.25rem,1.8vw,1.55rem)}
.rich h3.pol-h{font-size:clamp(1.06rem,1.3vw,1.18rem)}
.rich p.is-li{padding-left:1.1em;text-indent:-1.1em}

/* ===== GEN-MOB2 (20/10) — controllo da telefono: home e pagine prodotto ===== */
/* telefoni in orizzontale (>820px ma tocco): le scritte piccole restano a 12px come sul telefono in verticale */
@media (hover:none) and (pointer:coarse){
  .ft__h,.ph__spec dt,.c2-row dt,.catm__tag,.ce-f__tag,.lvc__lab,.lvc__k,.eyebrow,.cblock h2,.cblock h3,
  .btn:where(:not(.btn--lg)),.lv2__lab,.ce-c,.dq2__k,.dq2-co,.nart__date,.era__intro .eyebrow,.sec--panel .cblock h2,.sec--panel .cblock h3{font-size:max(.75rem,12px)}
}
/* bersagli tattili: area di tocco più grande senza cambiare l'aspetto */
@media (max-width:900px),(hover:none) and (pointer:coarse){
  .catm__l,.lv2__go,.ce-go,.ph__cta,.cx-back,.c1-sib__fam,.pc-pan__fam,.fo__h a{position:relative}
  .catm__l::after,.lv2__go::after,.ce-go::after,.ph__cta::after,.cx-back::after,.c1-sib__fam::after,.pc-pan__fam::after,.fo__h a::after{content:"";position:absolute;inset:-9px -4px}
  .ph__plist a,.ph__idx a{padding-block:6px}
}
/* niente parole sole a capo su telefono */
@media (max-width:900px){
  .h2,.dq2__h,.cta__h,.lv2__op span,.ce-f__n,figcaption,.cta__d,.kpi__l,.eyebrow,.why__h,.cat__head .h2,.c2-sr__t,.fp-card__t,.pc-p__n,.c2-card__h{text-wrap:balance}
  .why__d,.era__panel p,.hero__sub,.lead,.c2-txt p{text-wrap:pretty}
  .cta__h{line-height:1.04}
}
/* HOME — Valori: la voce attiva non sborda più a destra */
@media (max-width:900px){.js .why__i.is-current .why__d{transform:none}.js .why__i.is-current .why__t{transform:scale(1.04)}}
/* HOME — testata con il telefono in orizzontale: titolo, testo e pulsanti dentro lo schermo */
@media (max-height:520px) and (orientation:landscape){
  .hero{padding-top:calc(var(--hdr-h) + 8px)}
  .hero__inner{padding-bottom:16px}
  .hero__h{font-size:clamp(2rem,11vh,2.8rem);margin-bottom:10px}
  .hero__sub{font-size:.95rem;margin-bottom:14px}
}
/* HOME — Storia: su schermi bassi (telefoni piccoli, orizzontale) tutto entra; a 320 l'etichetta e la timeline non si toccano */
@media (max-height:700px),(max-width:340px){
  .era__year{display:none}
  .era__stage{padding-top:calc(var(--hdr-h) + 8px);padding-bottom:16px}
  .era__intro .h2{font-size:clamp(1.5rem,5.5vh,1.9rem)}
  .era__intro{margin-bottom:12px}
  .era__rail{margin-bottom:12px}
  .era__panel p,.era__panel--2 p{font-size:clamp(.84rem,2.15svh,1rem);line-height:1.4}
}
@media (max-height:520px) and (orientation:landscape){
  .era__intro .h2{max-width:none;font-size:1.6rem}
  .era__panel{max-width:none}
  .era__panel p{columns:2 30ch;column-gap:28px}
}
@media (max-width:340px){
  .era__intro .eyebrow{white-space:nowrap;letter-spacing:.1em}
  .era__cap{font-size:.75rem}
}
.era--tight .era__panel p{font-size:.82rem!important;line-height:1.36!important}
.era--tight .era__intro .h2{font-size:1.35rem!important}
/* HOME — meno vuoto fra la fine della Storia e i Prodotti */
@media (max-width:900px){.era--js .era__stage{padding-bottom:20px}#prodotti{padding-top:clamp(32px,6vh,56px)}}
/* HOME — Showreel più corto da scorrere su telefono e tablet */
@media (max-width:900px){.reel--js{height:calc(100vh + 90vh);height:calc(100svh + 90vh)}}
/* HOME — Partner: etichetta sopra, logo sotto (a 768 il logo A.P.I. sbordava, a 320 "IN / COLLABORAZIONE / CON" su tre righe) */
@media (max-width:900px){
  .pt__cell{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:16px}
  .pt__cell .eyebrow{white-space:nowrap;letter-spacing:.12em}
  .pt__img{max-width:min(260px,70%);height:42px}
  .pt__img--seal{height:60px;max-width:none}
}
/* HOME — numeri su tablet: quattro in fila invece di 2×2 */
@media (min-width:700px) and (max-width:900px){
  .kpi{grid-template-columns:repeat(4,minmax(0,1fr))}
  .kpi__it:nth-child(4){border-left:1px solid var(--line-d);padding-left:clamp(16px,2.2vw,36px)}
  .kpi__it:nth-child(n+4){border-top:0}
}
/* PRODOTTI — tessere: nomi su una riga (niente "Termoprotet-tori"), etichette leggibili anche sulle foto chiare */
@media (max-width:900px){
  .pc-tile__n{hyphens:manual;-webkit-hyphens:manual;overflow-wrap:normal}
  .pc-tile::after{background:linear-gradient(180deg,rgba(10,12,15,0) 35%,rgba(10,12,15,.78) 100%)}
}
@media (max-width:340px){.pc-tile__n{font-size:.875rem}}
/* PRODUCT/FAMILY PAGES — testate con il telefono in orizzontale: nome, pulsante e specifiche dentro lo schermo */
@media (orientation:landscape) and (max-height:520px){
  .ph{min-height:100svh}
  .ph__in{padding-top:calc(var(--hdr-h) + 8px);padding-bottom:16px;gap:10px 40px}
  .ph__name--s{font-size:min(25vw,34vh)}
  .ph__name--m{font-size:min(11.6vw,20vh)}
  .ph__name--l{font-size:min(8.4vw,16vh)}
  .ph__name--xl{font-size:min(6.4vw,15vh)}
  .ph__barin{padding-block:12px}
}
/* specifiche: etichetta sopra e valore sotto solo quando non entrano, mai una parola sola */
.ph__spec,.c2-row{flex-wrap:wrap;row-gap:6px}
.ph__spec dd,.c2-row dd{flex:1 1 auto;min-width:0;text-wrap:balance}
.c2-card__h{text-wrap:balance}
/* briciole di pane leggibili sulle foto chiare */
@media (max-width:820px){.ph__crumb{color:rgba(255,255,255,.9);text-shadow:0 1px 12px rgba(0,0,0,.55)}}
/* pagine famiglia e prodotto su tablet: più carte per riga invece di un telefono ingrandito */
@media (min-width:560px) and (max-width:820px){
  .fp__grid li{flex-basis:clamp(250px,36vw,300px)}
  .fo__row li,.fo__row li.is-on,.fo__row li:hover{flex-basis:clamp(220px,31vw,260px)}
}
@media (min-width:600px) and (max-width:820px){.c2-list{grid-template-columns:1fr 1fr}}
/* i prodotti che scorrono nella testata di Prodotti si fermano anche toccandoli; quelli delle famiglie sfumano a destra */
@media (hover:none){.ph__idx:active .ph__mq{animation-play-state:paused}}
@media (max-width:900px){.ph__plist{-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent)}}
/* footer: il pulsante "torna su" non copre la riga della P.IVA */
@media (max-width:760px){.ft__bot>p:first-child{padding-right:56px}}

/* ===== GEN-MOB3 (20/10) — controllo da telefono: pagine azienda ===== */
/* Classi: i prodotti di ogni classe vanno a capo invece di nascondersi in una fascia che scorre di lato */
@media (max-width:820px){.cl-row__p{flex-wrap:wrap;overflow:visible;margin-inline:0;padding-inline:0;gap:8px}.cl-p{max-width:100%}.cl-p__n{white-space:normal}}
/* Lavorazioni: le sei lavorazioni in due colonne (prima una per riga: quasi due schermate) */
@media (max-width:820px){.lo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.lo-card{min-height:148px;gap:16px;padding:18px}.lo-ic{width:64px}}
@media (max-width:359px){.lo-grid{grid-template-columns:1fr}}
/* tablet: foto e testo affiancati invece di una foto alta quasi uno schermo; righe di testo non troppo lunghe */
@media (min-width:561px) and (max-width:820px){.ls__g{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:32px}}
@media (max-width:900px){.qpol__rest p,.ab-mission__txt p{max-width:62ch}}
@media (max-width:820px){.pc-intro__rest{grid-column:1/-1}}
/* Chi siamo: meno vuoti fra i blocchi, margini laterali uguali al resto del sito; foto della missione senza fascia grigia scorrendo */
@media (max-width:820px){.ab-hero{padding-bottom:40px}.ab-about{padding-block:48px 40px}.ab-mission{padding-block:40px}.sec--partner{padding-bottom:48px}.tgs{padding-block:56px}}
@media (max-width:900px){.ab-wrap{padding-inline:var(--pad)}}
.ab-mission__img{position:relative}
.ab-mission__img img{position:absolute;left:0;top:-10%;width:100%;height:120%;margin:0}
/* Certificazioni: meno vuoto dopo la testata, più aria prima delle note; l'icona di ingrandimento si vede anche senza mouse */
@media (max-width:820px){.ce{padding-block:56px}.ce__files{margin-top:40px}}
@media (hover:none){.ce-doc__ic{opacity:1;transform:none}}
/* niente parole sole a capo */
@media (max-width:900px){.ph__title,.ph__ben li,.ab-h2,.lv2-k--full,.qt__b,.ce-doc figcaption{text-wrap:balance}}
/* 21/10 logo A.P.I. 80 (regolamento A.P.I.: almeno 20px liberi attorno, link a apmi.it, logo intero e non dominante) */
.pt__api{display:block;flex:none;line-height:0;border-radius:4px}
.pt__api:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.pt__cell--api{gap:24px}
.pt__img--api{height:104px;max-width:none}
@media (max-width:900px){.pt__img--api{height:88px;max-width:none}}
@media (max-width:360px){.pt__img--api{max-height:none;height:80px;max-width:none}}
/* 10/11 Classi di isolamento: cliccando una classe la riga arriva sulla linea di lettura (45% dello schermo), dove si accende */
.cl-row{scroll-margin-top:calc(45vh - 56px)}
/* 10/11 proposte cliente */
.cof__l a{justify-content:flex-start;gap:14px}.cof__l a>svg{margin-left:auto}
.cof__av{flex:none;width:44px;height:44px;border-radius:50%;object-fit:cover;background:#1b1f24;box-shadow:0 0 0 1px rgba(255,255,255,.14)}
.cof__av--ic{display:grid;place-items:center;color:rgba(255,255,255,.7)}
.cof__l a .cof__av--ic svg{width:20px;height:20px;opacity:1;transform:none;margin:0}
.cof__l a:hover .cof__av--ic svg{color:inherit}
.tg__m{display:block;margin-top:6px;font-size:.8rem;line-height:1.35;color:var(--dim-l);text-decoration:none;overflow-wrap:anywhere;transition:color .25s}
.tg__m:hover,.tg__m:focus-visible{color:var(--red)}
.tmember__m{display:block;margin-top:5px;font-size:.74rem;line-height:1.3;color:rgba(255,255,255,.72);text-decoration:none;overflow-wrap:anywhere}
.tmember__m:hover,.tmember__m:focus-visible{color:#fff}
.ph__meta{display:flex;flex-wrap:wrap;align-items:center;column-gap:32px}
/* 10/11 contatti telefono: con la foto tonda gli indirizzi non entrano in due colonne → una scheda per riga; la busta dell'amministrazione resta visibile */
@media (max-width:600px){.cof__g{grid-template-columns:1fr!important}.cof__c:not(.cof__c--wide) .cof__h{min-height:0!important}.cof__c:not(.cof__c--wide) .cof__l a{font-size:1rem}}
.cof__l a .cof__av--ic svg{display:block!important}
/* 11/11 News: post LinkedIn */
.sec.sec--tight.lk{padding-bottom:0}
.lk__head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}
.lk__head .eyebrow{margin:0}
.lk__follow{font-size:.78rem;font-weight:600;color:var(--ink);text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:2px;transition:color .3s}
.lk__follow:hover{color:var(--red)}
.lk__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,1.6vw,22px)}
.lk__c{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line-l);color:var(--ink);text-decoration:none;overflow:hidden;box-shadow:0 2px 4px rgba(10,12,15,.04);transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.lk__c:hover{transform:translateY(-3px);box-shadow:0 2px 4px rgba(10,12,15,.04),0 18px 40px -22px rgba(10,12,15,.32)}
.lk__img{display:block;aspect-ratio:4/3;background:var(--raise);overflow:hidden}
.lk__img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s var(--ease)}
.lk__c:hover .lk__img img{transform:scale(1.03)}
.lk__b{display:flex;flex-direction:column;gap:10px;padding:18px 18px 20px;flex:1}
.lk__date{font-family:var(--mono);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--red)}
.lk__t{font-size:.9rem;line-height:1.5;color:rgba(10,12,15,.78);white-space:pre-line;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.lk__go{margin-top:auto;padding-top:4px;font-size:.78rem;font-weight:600;transition:color .3s}
.lk__c:hover .lk__go{color:var(--red)}
.lk__lab{margin:0 0 4px}
.lk__c--txt{background:var(--ink);border-color:var(--ink);color:#fff}
.lk__c--txt .lk__b{padding:24px 22px}
.lk__c--txt .lk__t{color:rgba(255,255,255,.88);font-size:1.12rem;line-height:1.45;-webkit-line-clamp:10}
.lk__c--txt .lk__date{color:#ff8a80}
.lk[hidden]+.sec .lk__lab{display:none}
@media (max-width:900px){.lk__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.lk__grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;margin:0 -16px;padding:0 16px 10px;scrollbar-width:none}.lk__grid::-webkit-scrollbar{display:none}.lk__c{flex:0 0 82%;scroll-snap-align:start;scroll-margin-left:16px}.lk__head{margin-bottom:16px}}
@media (prefers-reduced-motion:reduce){.lk__c,.lk__img img{transition:none}.lk__c:hover{transform:none}}
/* 11/11 News NASCOSTA dai menu (temporaneo, in attesa dei post LinkedIn): per riattivarla togliere questo blocco. Le pagine restano raggiungibili. */
#hnav>a[href='/news'],#hnav>a[href='/en/news'],.mnav__l[href='/news'],.mnav__l[href='/en/news'],.ft li:has(>a[href='/news']),.ft li:has(>a[href='/en/news']){display:none!important}
/* 11/11 avviso cookie */
.ck{position:fixed;left:24px;bottom:24px;z-index:50;width:min(400px,calc(100vw - 48px));background:#fff;color:var(--ink);border:1px solid var(--line-l);box-shadow:0 2px 6px rgba(10,12,15,.06),0 24px 60px -24px rgba(10,12,15,.4);padding:18px 20px 16px;opacity:0;transform:translateY(14px);transition:opacity .45s var(--ease),transform .45s var(--ease);pointer-events:none}
.ck.is-on{opacity:1;transform:none;pointer-events:auto}
.ck[hidden]{display:none}
.ck__k{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-family:var(--mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.ck__k svg{width:18px;height:18px;flex:none}
.ck__t{margin:0 0 14px;font-size:.88rem;line-height:1.5;color:rgba(10,12,15,.78)}
.ck__row{display:flex;align-items:center;justify-content:space-between;gap:16px}
.ck__l{font-size:.8rem;font-weight:600;color:var(--ink);text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:1px;transition:color .3s}
.ck__l:hover{color:var(--red)}
.ck__b{appearance:none;border:0;cursor:pointer;background:var(--red);color:#fff;font:inherit;font-family:var(--mono);font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:11px 18px;border-radius:4px;transition:background .3s}
.ck__b:hover{background:var(--red-deep)}
.ck__b:focus-visible,.ck__l:focus-visible{outline:2px solid var(--red);outline-offset:3px}
@media (max-width:600px){.ck{left:0;right:0;bottom:0;width:auto;border-width:1px 0 0;padding:14px 16px calc(14px + env(safe-area-inset-bottom));transform:translateY(100%)}.ck__k{display:none}.ck__t{font-size:.84rem;margin-bottom:10px}}
@media (prefers-reduced-motion:reduce){.ck{transition:none}}
