/* ═══════════════════════════════════════════════════════════════
   SISTEMA LANDING PAGE — StoX · condiviso da LP1, LP2, LP3
   Registro: Funzionale/Diretto (B2B operativo) + Swiss/Preciso 25%
   Linguaggio rilevato su www.stox.it, non dedotto:
     · taglio angolato fra sezioni — polygon 501 53.27, h 100px
     · filetto accento sotto i titoli — 100×5px #ff2323
     · bottoni rossi uppercase ls 2px radius 4px
     · icone line 50px · superfici #fff / #f6f6f6 · nessuna forma tonda
   ═══════════════════════════════════════════════════════════════ */

:root{
  --slab:"Roboto Slab", Georgia, serif;
  --sans:"Open Sans", system-ui, sans-serif;

  --red:#ff2323;        /* decorativo: filetti, pittogrammi, rosso su fondo scuro — non-testo, 3.8:1 */
  --red-cta:#e01007;    /* rosso ufficiale del logo: testo bianco su rosso e rosso su bianco — 4.9:1 AA */
  --red-dark:#b80d05;
  --ink:#111111;
  --ink-2:#555555;
  --ink-3:#6b6b6b;   /* 5.3:1 su bianco — AA anche a 13px */
  --rule:#e0e0e0;
  --paper:#ffffff;
  --surface:#f6f6f6;
  --dark:#1b1b1b;
  --darker:#111111;

  /* griglia — base verticale 8px */
  --container:1240px;
  --gutter:32px;
  --sec-y:112px;
  --blk:56px;

  --radius:4px;              /* solo bottoni e campi, come il sito */
  --ease:cubic-bezier(.22,.61,.36,1);
  --t:200ms;
  --t-rev:400ms;             /* Funzionale/Diretto: reveal rapido */
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);font-size:17px;line-height:1.7;color:var(--ink-2);background:var(--paper);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
h1,h2,h3{font-family:var(--slab);color:var(--ink);font-weight:700;line-height:1.14;letter-spacing:-.01em;hyphens:none}
h2,h3{text-wrap:balance}   /* titoli corti: righe equilibrate */
h1{text-wrap:pretty}       /* titolo lungo: niente vedova sull'ultima riga */
p,li{text-wrap:pretty}               /* evita le vedove nei paragrafi */
h1{font-size:clamp(32px,3.9vw,52px)}
h2{font-size:clamp(28px,3.2vw,40px)}
h3{font-size:22px;line-height:1.25}
p{max-width:64ch}
a{color:inherit}
::selection{background:var(--red);color:#fff}

.wrap{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
.sec{padding:var(--sec-y) 0;position:relative}
.sec--surface{background:var(--surface)}

/* ── filetto accento — 100×5px, la firma del sito ───────────── */
.rule{width:100px;height:5px;background:var(--red);margin:20px 0}
.rule--c{margin-inline:auto}

.eyebrow{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--red-cta)}
.eyebrow--muted{color:var(--ink-3)}

/* ── taglio angolato fra sezioni ─────────────────────────────── */
.cut{position:absolute;left:0;right:0;width:100%;height:100px;line-height:0;z-index:2;pointer-events:none}
.cut--bottom{bottom:0}
.cut--top{top:0;transform:rotate(180deg)}
.cut svg{width:100%;height:100px;display:block}

/* ── bottoni — geometria reale stox.it ───────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:12px;
  background:var(--red-cta);color:#fff;border:0;cursor:pointer;
  font-family:var(--sans);font-size:14px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  text-decoration:none;padding:19px 34px;border-radius:var(--radius);
  transition:background var(--t) var(--ease);
}
.btn:hover{background:var(--red-dark)}
.btn:active{transform:translateY(1px)}
.btn--block{width:100%}
.btn .arr{transition:transform var(--t) var(--ease)}
.btn:hover .arr{transform:translateX(5px)}
:focus-visible{outline:3px solid var(--red);outline-offset:3px}
.hero :focus-visible,.band :focus-visible,.lp-single :focus-visible,.final :focus-visible{outline-color:#fff}

/* ── header: topbar scura + barra bianca (pattern F del sito) ── */
header{position:sticky;top:-40px;z-index:50}   /* -40 = altezza topbar: scorre via, la barra resta */
.topbar{background:var(--darker);color:#9a9a9a;font-size:13px}
.topbar .wrap{display:flex;justify-content:flex-end;gap:26px;align-items:center;height:40px}
.topbar a{color:#d4d4d4;text-decoration:none;display:inline-flex;align-items:center;min-height:40px;transition:color var(--t) var(--ease)}
.topbar a:hover{color:var(--red)}
.mast{background:#fff;border-bottom:1px solid var(--rule)}
.mast .wrap{display:flex;justify-content:space-between;align-items:center;height:96px;gap:24px}
.mast .wrap > a:first-child{display:inline-flex;align-items:center;min-height:44px}
.mast img{height:52px;width:auto}
.mast .btn{padding:15px 26px;font-size:13px}

/* ── 1 · HERO — Editorial Split 58/42 ────────────────────────── */
.hero{position:relative;background:var(--darker);overflow:hidden;padding:76px 0 148px}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:62% 50%}
/* anteprima sfocata incorporata: evita il blocco scuro mentre la foto arriva */
.hero-bg img,.band img{background-size:cover;background-position:center;background-repeat:no-repeat}
.hero-bg::after{content:'';position:absolute;inset:0;background:
   /* scrim solo dove passa il testo, poi la foto respira */
   linear-gradient(97deg, rgb(8 8 8 / .95) 0%, rgb(8 8 8 / .86) 22%, rgb(8 8 8 / .38) 64%, rgb(8 8 8 / .22) 100%),
   linear-gradient(to top, rgb(8 8 8 / .60) 0%, rgb(8 8 8 / 0) 38%)}
.hero .eyebrow{color:var(--red)}
.hero .wrap{position:relative;z-index:1;display:grid;grid-template-columns:58fr 42fr;gap:72px;align-items:start}
.hero h1{color:#fff;margin:16px 0 20px;max-width:none}
.hero .lead{color:rgb(255 255 255 / .74);font-size:18px;max-width:50ch}
.hero-proof{display:grid;grid-template-columns:repeat(3,max-content);gap:56px;margin-top:32px;padding-top:24px;border-top:1px solid rgb(255 255 255 / .18)}
.hero-proof b{font-family:var(--slab);display:block;font-size:30px;line-height:1;color:#fff}
.hero-proof span{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgb(255 255 255 / .5);margin-top:8px;display:block}

/* ── wizard 3 step ───────────────────────────────────────────── */
.wz{background:#fff;padding:34px;scroll-margin-top:120px}
.wz-dots{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px;margin-bottom:24px}
.wz-dots i{height:4px;background:var(--rule);display:block;transition:background var(--t) var(--ease)}
.wz-dots i.on{background:var(--red-cta)}
.wz h2{font-family:var(--sans);font-size:21px;font-weight:700;line-height:1.3}
.wz .step-of{font-size:13px;color:var(--ink-3);margin:6px 0 22px}
.wz-pane{display:none}
.wz-pane.on{display:block}
.wz-pane[hidden]{display:none}
.field{margin-bottom:14px}
.field label{display:block;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);margin-bottom:7px}
.field input,.field select,.field textarea{
  font-family:var(--sans);font-size:16px;color:var(--ink);width:100%;
  border:1px solid var(--rule);border-radius:var(--radius);background:#fff;padding:14px 15px;
  transition:border-color var(--t) var(--ease),box-shadow var(--t) var(--ease);
}
.field textarea{resize:vertical;min-height:96px}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--red);box-shadow:0 0 0 3px rgb(255 35 35 / .18)}
.field.bad input,.field.bad select{border-color:var(--red)}
.field .err{display:none;font-size:12px;color:var(--red-cta);margin-top:6px;font-weight:600}
.field.bad .err{display:block}
.wz-nav{display:flex;gap:12px;margin-top:22px}
.wz-back{background:none;border:0;cursor:pointer;font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);padding:19px 4px;transition:color var(--t) var(--ease)}
.wz-back:hover{color:var(--ink)}
.priv{display:flex;gap:11px;align-items:flex-start;font-size:13px;color:var(--ink-3);line-height:1.5;margin:6px 0 4px}
.priv-wrap{margin:6px 0 4px}
.priv-wrap .err{display:none;font-size:12px;color:var(--red-cta);margin:6px 0 0 28px;font-weight:600}
.priv-wrap.bad .err{display:block}
.priv-wrap.bad .priv input{outline:2px solid var(--red-cta);outline-offset:2px}
.priv input{width:17px;height:17px;flex:0 0 17px;margin-top:3px;accent-color:var(--red)}
.priv a{color:var(--red-cta)}
.wz-note{font-size:12px;color:var(--ink-3);text-align:center;margin-top:14px}
.wz-error{margin-top:16px;padding:14px 16px;border-left:3px solid var(--red-cta);background:#fdf0f0;
  font-size:14px;line-height:1.5;color:var(--ink);}
.wz-error[hidden]{display:none}
.wz-ok{display:none;text-align:center;padding:40px 6px}
.wz-ok .ic{color:var(--red);margin:0 auto 16px}
.wz.done .wz-body{display:none}
.wz.done .wz-ok{display:block}

/* ── 2 · strip badge ─────────────────────────────────────────── */
.strip{border-bottom:1px solid var(--rule);background:#fff}
.strip .wrap{display:flex;flex-wrap:wrap;gap:12px 56px;justify-content:center;align-items:center;padding:26px 32px}
.strip span{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.strip svg{color:var(--red);flex:0 0 auto}

/* ── 3 · manifest 3 colonne ──────────────────────────────────── */
.manifest{display:grid;grid-template-columns:repeat(3,1fr);margin-top:var(--blk)}
.manifest > div{padding:0 44px;border-left:1px solid var(--rule)}
.manifest > div:first-child{padding-left:0;border-left:0}
.manifest > div:last-child{padding-right:0}
.manifest .n{font-family:var(--slab);font-size:13px;font-weight:700;letter-spacing:.1em;color:var(--red-cta);margin-bottom:22px}
.manifest .ic{color:var(--red);margin-bottom:22px}
.manifest h3{margin-bottom:12px}
.manifest p{font-size:16px}

/* ── 4 · runway ──────────────────────────────────────────────── */
.runway h2{max-width:none}
.runway-body{margin-top:var(--blk)}
.runway-body p{font-size:17px;max-width:none}
.runway-body p + p{margin-top:18px}
.bene{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:var(--blk);background:var(--rule)}
.bene article{background:var(--surface);padding:34px 40px 36px;display:grid;grid-template-columns:34px 1fr;gap:22px;align-items:start;transition:background var(--t) var(--ease)}
.bene article:hover{background:#fff}
.bene .ic{color:var(--red);margin-top:2px}
.bene h3{font-size:19px;line-height:1.3;margin-bottom:8px}
.bene p{font-size:15px;line-height:1.65;max-width:38ch}

/* ── 5 · fascia foto full-bleed ──────────────────────────────── */
.band{position:relative;background:var(--darker);overflow:hidden;padding:136px 0;text-align:center}
.band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.32}
.band .wrap{position:relative;z-index:1}
.band h2{color:#fff;max-width:28ch;margin-inline:auto}
.band p{color:rgb(255 255 255 / .72);margin:0 auto;text-align:center;font-size:18px}

/* ── 6 · stacked alternato ───────────────────────────────────── */
.row{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.row + .row{margin-top:96px}
.row figure{overflow:hidden;background:var(--ink-100)}
.row figure img{width:100%;height:440px;object-fit:cover;transition:transform 600ms var(--ease)}
.row:hover figure img{transform:scale(1.03)}
.row--rev figure{order:2}
.tags{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}
.tags span{border:1px solid var(--rule);padding:7px 14px;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}

/* ── 7 · dato isolato ────────────────────────────────────────── */
.lp-single{background:var(--dark);text-align:center;padding:112px 0 132px;position:relative}
.lp-single b{font-family:var(--slab);display:block;font-size:clamp(56px,9vw,104px);line-height:1;color:#fff}
.lp-single p{color:rgb(255 255 255 / .66);margin:24px auto 0;text-align:center;max-width:44ch}

/* ── 8 · rail numeri ─────────────────────────────────────────── */
.rail{display:grid;grid-template-columns:repeat(4,1fr);border-top:3px solid var(--ink)}
.rail > div{padding:36px 36px 0;border-left:1px solid var(--rule)}
.rail > div:first-child{padding-left:0;border-left:0}
.rail b{font-family:var(--slab);display:block;font-size:clamp(32px,3.4vw,46px);line-height:1;color:var(--ink)}
.rail span{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-top:12px;display:block}

/* ── 9 · settori — griglia statica ──────────────────────────── */
.settori{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);margin-top:var(--blk)}
.settore{background:var(--surface);display:flex;align-items:center;gap:15px;padding:28px 26px;min-width:0;overflow-wrap:anywhere;
  font-family:var(--slab);font-size:19px;font-weight:700;color:var(--ink);line-height:1.25;
  transition:background var(--t) var(--ease)}
.settore:hover{background:#fff}
.settore svg{color:var(--red);flex:0 0 auto}
.settori-nota{margin-top:var(--blk);font-size:17px;max-width:none}

/* ── 10 · processo ───────────────────────────────────────────── */
.proc{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;margin-top:var(--blk)}
.proc > div{border-top:3px solid var(--red);padding-top:24px}
.proc .ic{color:var(--red);margin-bottom:18px}
.proc .n{font-family:var(--slab);font-size:13px;font-weight:700;letter-spacing:.1em;color:var(--ink-3);margin-bottom:8px}
.proc h3{font-size:20px;margin-bottom:10px}
.proc p{font-size:15px}

/* ── 11 · certificazioni (chamber) ───────────────────────────── */
.chamber{display:grid;grid-template-columns:auto 1fr;gap:96px;align-items:center;
  /* rientro in piu' rispetto al gutter, non al posto del gutter */
  padding-inline:calc(var(--gutter) + 32px)}
.cert{display:flex;gap:20px}
.cert-mark{margin:0;border:1px solid var(--rule);background:#fff;padding:26px 30px 20px;
  display:flex;flex-direction:column;align-items:center;gap:16px;transition:border-color var(--t) var(--ease)}
.cert-mark:hover{border-color:var(--red)}
/* dimensione nativa del file: non ingrandire finché non arriva il vettoriale da eCertMark */
.cert-mark img{width:119px;height:109px}
.cert-mark figcaption{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-3);text-align:center;max-width:16ch;line-height:1.5}
.chamber p{font-size:17px;margin-bottom:14px}
.chamber p strong{color:var(--ink)}

/* ── 12 · CTA finale ─────────────────────────────────────────── */
.final{background:var(--darker);text-align:center;padding:136px 0 120px;position:relative}
.final h2{color:#fff;max-width:none;margin-inline:auto}
.final p{color:rgb(255 255 255 / .68);margin:0 auto 38px;text-align:center;font-size:18px}
.final .final-contacts{margin:52px auto 0;display:flex;gap:6px 14px;align-items:center;justify-content:center;flex-wrap:wrap;font-size:15px;color:rgb(255 255 255 / .5);padding-top:28px;border-top:1px solid rgb(255 255 255 / .12);max-width:640px}
.final-contacts a{color:rgb(255 255 255 / .85);text-decoration:none;display:inline-flex;align-items:center;min-height:44px;padding:0 6px}
.final-contacts a:hover{color:var(--red)}

.foot{background:#0a0a0a;color:#8f8f8f;font-size:13px;padding:30px 0}
.foot .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.foot a{color:#bdbdbd;text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.foot a:hover{color:#fff}

/* ── reveal ──────────────────────────────────────────────────── */
.stoxlp-js .rv{opacity:0;transform:translateY(22px);transition:opacity var(--t-rev) var(--ease),transform var(--t-rev) var(--ease)}
.stoxlp-js .rv.in{opacity:1;transform:none}

/* ── responsive ──────────────────────────────────────────────── */
@media(max-width:1024px){
  :root{--sec-y:88px;--blk:44px}
  .hero{padding:80px 0 128px}
  .hero .wrap,.runway-body,.row{grid-template-columns:1fr;gap:44px}
  .row--rev figure{order:0}
  .row + .row{margin-top:64px}
  .row figure img{height:320px}
  .manifest{grid-template-columns:1fr}
  .manifest > div{padding:32px 0;border-left:0;border-top:1px solid var(--rule)}
  .manifest > div:first-child{padding-top:0;border-top:0}
  .proc{grid-template-columns:1fr 1fr}
  .settori{grid-template-columns:repeat(2,1fr)}
  .bene article{padding:28px 30px}
  .chamber{grid-template-columns:1fr;gap:44px;padding-inline:var(--gutter)}
  .cut,.cut svg{height:64px}
}
@media(max-width:680px){
  :root{--gutter:22px;--sec-y:64px}
  body{font-size:16px}
  header{top:-44px}
  .topbar .wrap{justify-content:center;gap:18px;font-size:12px;height:44px;flex-wrap:nowrap}
  .topbar a{min-height:44px}
  .topbar .wrap > span{display:none}      /* la sede resta nel footer e nella CTA finale */
  .wz{scroll-margin-top:96px}
  .mast .wrap{height:68px}
  .mast img{height:42px}
  .mast .btn{padding:13px 16px;font-size:11px;letter-spacing:.1em}
  .hero-proof{grid-template-columns:repeat(3,1fr);gap:18px}
  .hero-proof b{font-size:22px}
  .bene,.rail,.proc{grid-template-columns:1fr}
  .bene article{padding:26px 22px}
  .rail > div{padding:26px 0;border-left:0;border-top:1px solid var(--rule)}
  .rail > div:first-child{padding-top:26px}
  .settori{grid-template-columns:repeat(2,1fr)}
  .settore{padding:20px 14px;font-size:15px;gap:11px}
  .cert{flex-wrap:wrap}
  .cert-mark{width:100%}
  .cert-mark figcaption{max-width:none}
  .wz{padding:26px 22px}
  .cut,.cut svg{height:42px}
}
@media(max-width:420px){
  .settori{grid-template-columns:1fr}   /* «Macchine industriali» non entra in due colonne */
  .settore{padding:18px 14px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .stoxlp-js .rv{opacity:1;transform:none}
}


/* ── griglia servizi a 3 card (LP2, LP3) ───────────────────────── */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);margin-top:var(--blk)}
.card{background:var(--paper);display:flex;flex-direction:column;transition:background var(--t) var(--ease)}
.sec--surface .card{background:var(--surface)}
.card:hover{background:#fff}
.card figure{overflow:hidden;aspect-ratio:4/3;background:var(--ink-100)}
.card figure img{width:100%;height:100%;object-fit:cover;transition:transform 600ms var(--ease)}
.card:hover figure img{transform:scale(1.04)}
.card-body{padding:30px 32px 34px;display:flex;flex-direction:column;flex:1}
.card-body h3{font-size:21px;margin-bottom:12px}
.card-body p{font-size:15px;flex:1}
.card-body .tags{margin-top:22px}

/* ── nota sotto una griglia ────────────────────────────────────── */
.after-grid{margin-top:var(--blk);font-size:16px;max-width:none}
.after-grid strong{color:var(--ink)}

/* ── materiali: 3 colonne con pittogramma (LP3) ────────────────── */
.materiali{display:grid;grid-template-columns:repeat(3,1fr);margin-top:var(--blk)}
.materiali > div{padding:0 44px;border-left:1px solid var(--rule)}
.materiali > div:first-child{padding-left:0;border-left:0}
.materiali > div:last-child{padding-right:0}
.materiali .ic{color:var(--red);margin-bottom:22px}
.materiali h3{font-size:20px;margin-bottom:12px}
.materiali p{font-size:15px}

@media(max-width:1024px){
  .grid-3{grid-template-columns:1fr}
  .materiali{grid-template-columns:1fr}
  .materiali > div{padding:32px 0;border-left:0;border-top:1px solid var(--rule)}
  .materiali > div:first-child{padding-top:0;border-top:0}
}
@media(max-width:680px){
  .card-body{padding:24px 22px 28px}
}

/* salto ai contenuti: fuori schermo finché non riceve il fuoco da tastiera */
.salta{position:absolute;left:-9999px;top:0;z-index:999;background:var(--red-cta);color:#fff;
  padding:14px 22px;font:700 14px/1 var(--f-body);letter-spacing:.06em;text-transform:uppercase;text-decoration:none}
.salta:focus{left:0}
main#contenuto:focus{outline:none}
