/* Swissimpianti — demo Digitam. Carbonio ta-C + rosso del marchio (la bandiera di croci). */
:root{
  --carbon:#0f1012;--graphite:#1a1c20;--line-d:rgba(255,255,255,.14);
  --paper:#f4f2ee;--white:#fff;--ink:#141518;--muted:#555b63;--line:#dcd8d0;
  --red:#d81e16;--red-d:#b3160f;
  --hdr:72px;--pad:clamp(20px,4vw,64px);--max:1360px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-padding-top:calc(var(--hdr) + 16px);-webkit-text-size-adjust:100%}
body{font-family:'Chivo',system-ui,sans-serif;font-weight:400;font-size:17px;line-height:1.55;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.mono{font-family:'Chivo Mono',ui-monospace,monospace;letter-spacing:.01em}
.skip{position:absolute;left:-999px;top:8px;z-index:99;background:#fff;color:var(--ink);padding:10px 14px}
.skip:focus{left:8px}
.wrap{max-width:var(--max);margin:0 auto}

/* ---------- header ---------- */
.hdr{position:fixed;inset:0 0 auto 0;z-index:50;height:var(--hdr);display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 var(--pad);color:#fff;background:var(--carbon)}
.hdr.is-stuck{box-shadow:0 1px 0 var(--line-d)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:500;font-size:15px;letter-spacing:.16em;white-space:nowrap}
.brand svg{width:26px;height:26px;flex:none}
.brand small{font-weight:300;letter-spacing:.04em;opacity:.7;font-size:13px}
.nav{display:flex;align-items:center;gap:clamp(18px,2.2vw,34px)}
.nav a{color:rgba(255,255,255,.8);text-decoration:none;font-size:15px;padding:6px 0}
.nav a:hover,.nav a[aria-current="page"]{color:#fff}
.nav a[aria-current="page"]{text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:2px;text-underline-offset:8px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:50px;padding:0 24px;border-radius:999px;background:var(--red);color:#fff;font-weight:500;font-size:16px;text-decoration:none;white-space:nowrap;transition:background-color .25s,color .25s,box-shadow .25s}
.btn:hover{background:var(--red-d)}
.btn--ghost{background:transparent;box-shadow:inset 0 0 0 1px rgba(255,255,255,.42)}
.btn--ghost:hover{background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px #fff}
.btn--white{background:#fff;color:var(--red-d)}
.btn--white:hover{background:var(--ink);color:#fff}
.btn--ink{background:var(--ink)}
.btn--ink:hover{background:var(--red)}
.btn svg{width:16px;height:16px}
.nav .btn{min-height:42px;padding:0 18px;font-size:15px;color:#fff}
.menu-btn{display:none;align-items:center;gap:10px;min-height:44px;padding:0 16px;border-radius:999px;border:1px solid rgba(255,255,255,.4);background:transparent;color:#fff;font:inherit;font-size:15px;cursor:pointer}
.menu-btn i{display:block;width:16px;height:2px;background:currentColor;box-shadow:0 -5px 0 currentColor,0 5px 0 currentColor;transition:box-shadow .2s}
.menu-btn[aria-expanded="true"] i{box-shadow:none}

@media (max-width:960px){
  .menu-btn{display:inline-flex}
  .nav{position:absolute;top:var(--hdr);left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--carbon);padding:8px var(--pad) 24px;max-height:calc(100svh - var(--hdr));overflow:auto;border-top:1px solid var(--line-d);
    visibility:hidden;opacity:0;transform:translateY(-8px);transition:opacity .25s,transform .25s,visibility 0s .25s}
  .nav.is-open{visibility:visible;opacity:1;transform:none;transition:opacity .25s,transform .25s}
  .nav a{display:flex;align-items:center;min-height:52px;font-size:18px;border-bottom:1px solid var(--line-d)}
  .nav a[aria-current="page"]{text-decoration:none;color:#fff;box-shadow:inset 3px 0 0 var(--red);padding-left:14px}
  .nav .btn{margin-top:18px;min-height:52px;border-bottom:0}
  .hdr.menu-open{background:var(--carbon)}
}
@media (max-width:420px){.brand small{display:none}}

/* ---------- hero (home) ---------- */
.hero{position:relative;background:var(--carbon);color:#fff;display:grid;grid-template-columns:minmax(0,11fr) minmax(0,13fr);min-height:calc(100svh - 112px);padding-top:var(--hdr);overflow:hidden}
.hero__text{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:space-between;gap:40px;padding:clamp(28px,7vh,80px) var(--pad) clamp(28px,5vh,48px)}
.hero h1{font-weight:300;font-size:clamp(44px,5vw,90px);line-height:.98;letter-spacing:-.025em}
.hero h1 span{display:block}
.hero__lead{margin-top:34px;max-width:30em;font-size:clamp(17px,1.25vw,19px);color:rgba(255,255,255,.78);font-weight:300}
.hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.hero__media{position:relative;overflow:hidden;min-height:420px}
.hero__media img{position:absolute;inset:-6% 0;width:100%;height:112%;object-fit:cover;object-position:60% 50%;will-change:transform}
.hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--carbon) 0,rgba(15,16,18,0) 26%),linear-gradient(0deg,rgba(15,16,18,.55),rgba(15,16,18,0) 30%);pointer-events:none}
.hero__crosses{position:absolute;z-index:3;left:calc(45.8% - 20px);bottom:12%;width:clamp(200px,20vw,330px);pointer-events:none;will-change:transform}
.hero__cap{position:absolute;z-index:3;right:var(--pad);bottom:clamp(20px,4vh,36px);max-width:22em;text-align:right;font-size:13px;color:rgba(255,255,255,.72)}

.who{display:grid;grid-template-columns:64px 1fr;gap:16px;align-items:center;max-width:31em;padding-top:22px;border-top:1px solid var(--line-d)}
.who img{width:64px;height:64px;border-radius:50%;object-fit:cover;filter:grayscale(1) contrast(1.05)}
.who p{font-size:14px;line-height:1.45;color:rgba(255,255,255,.72)}
.who strong{display:block;color:#fff;font-weight:500;font-size:15px}

/* barra prezzi sotto l'hero: le tre macchine con il prezzo pubblicato */
.rail{display:grid;grid-template-columns:repeat(3,1fr);background:var(--graphite);color:#fff}
.rail a{display:grid;grid-template-columns:1fr auto;align-items:end;gap:4px 16px;min-height:112px;padding:22px var(--pad) 22px clamp(20px,2.4vw,40px);text-decoration:none;border-left:1px solid var(--line-d);transition:background-color .25s}
.rail a:first-child{border-left:0;padding-left:var(--pad)}
.rail a:hover{background:var(--red)}
.rail b{grid-column:1/-1;font-weight:500;font-size:18px;letter-spacing:.02em}
.rail span{font-size:13px;color:rgba(255,255,255,.66)}
.rail a:hover span{color:#fff}
.rail em{font-style:normal;font-size:22px;font-weight:300}

/* ---------- sezioni ---------- */
.sec{padding:clamp(72px,10vw,140px) var(--pad)}
.sec-head{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(24px,5vw,80px);align-items:end;margin-bottom:clamp(40px,5vw,72px)}
.sec h2,.page-hero h1{font-weight:300;font-size:clamp(36px,4.3vw,70px);line-height:1.02;letter-spacing:-.022em}
.sec-head p{color:var(--muted);max-width:34em}
.dark{background:var(--carbon);color:#fff}
.dark .sec-head p{color:rgba(255,255,255,.7)}
.link{display:inline-flex;align-items:center;gap:10px;font-weight:500;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:3px}
.link:hover{color:var(--red)}
.dark .link:hover,.coat .link:hover{color:#fff;border-color:transparent}

/* macchine: schede affiancate per confrontare */
.machines{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,1.6vw,24px)}
.machine{display:flex;flex-direction:column;background:var(--white);border-radius:4px;overflow:hidden;text-decoration:none;color:inherit;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}
.machine:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(20,21,24,.12)}
.machine figure{position:relative;aspect-ratio:5/4;overflow:hidden;background:#e7e5e0}
.machine figure img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.machine:hover figure img{transform:scale(1.035)}
.machine__body{display:flex;flex-direction:column;gap:18px;flex:1;padding:clamp(20px,2vw,30px)}
.machine h3{font-weight:400;font-size:clamp(24px,2vw,30px);line-height:1.1}
.tag{display:inline-block;margin-top:8px;padding:3px 10px;border-radius:999px;background:var(--ink);color:#fff;font-size:12px}
.spec{display:grid;grid-template-columns:auto 1fr;gap:7px 18px;font-size:15px}
.spec dt{font-family:'Chivo Mono',ui-monospace,monospace;font-size:13px;color:var(--muted);padding-top:2px}
.price{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:auto;padding-top:16px;border-top:1px solid var(--line)}
.price b{font-weight:400;font-size:clamp(26px,2.2vw,32px);letter-spacing:-.01em}
.price span{font-size:14px;color:var(--muted)}
.machine:hover .price span{color:var(--red)}

/* coating: campo rosso pieno, pezzi veri a profondità diverse */
.coat{position:relative;overflow:hidden;background:var(--red);color:#fff;padding:clamp(80px,10vw,150px) var(--pad)}
.coat__crosses{position:absolute;right:-6%;top:-10%;width:clamp(360px,44vw,720px);filter:brightness(0) invert(1);opacity:.16;pointer-events:none;will-change:transform}
.coat__grid{position:relative;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,96px);align-items:center}
.coat h2{font-weight:300;font-size:clamp(38px,4.6vw,76px);line-height:1;letter-spacing:-.025em}
.coat__text>p{margin-top:24px;max-width:30em;font-weight:300;font-size:clamp(17px,1.3vw,19px)}
.coat__facts{display:flex;flex-wrap:wrap;gap:16px 40px;margin-top:32px;padding-top:20px;border-top:1px solid rgba(255,255,255,.35)}
.coat__facts dt{font-size:13px;opacity:.85}
.coat__facts dd{font-size:clamp(24px,2.2vw,32px);font-weight:300}
.coat .link{color:#fff;align-self:center}
.collage{position:relative;aspect-ratio:1/0.92}
.collage figure{position:absolute;overflow:hidden;border-radius:3px;box-shadow:0 24px 50px rgba(60,6,3,.35);will-change:transform}
.collage img{width:100%;height:100%;object-fit:cover}
.collage .c1{left:0;top:4%;width:52%;aspect-ratio:4/3;z-index:2}
.collage .c2{right:0;top:0;width:44%;aspect-ratio:16/10}
.collage .c3{left:22%;top:44%;width:62%;aspect-ratio:2/1;z-index:3}
.collage .c4{right:2%;bottom:0;width:38%;aspect-ratio:16/10;z-index:1}

/* tecnologia */
.tech{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,80px);align-items:start}
.hv{width:100%;border-collapse:collapse;font-size:clamp(16px,1.3vw,19px)}
.hv caption{text-align:left;font-size:13px;color:rgba(255,255,255,.6);padding-bottom:14px}
.hv th,.hv td{text-align:left;padding:20px 12px 20px 0;border-top:1px solid var(--line-d);font-weight:400;vertical-align:baseline}
.hv thead th{font-family:'Chivo Mono',ui-monospace,monospace;font-size:13px;color:rgba(255,255,255,.6);padding-top:0;border-top:0}
.hv tbody th span{display:block;font-size:13px;color:rgba(255,255,255,.55);font-family:'Chivo Mono',ui-monospace,monospace;margin-top:2px}
.hv td{font-weight:300}
.hv .is-tac th,.hv .is-tac td{font-size:clamp(20px,1.9vw,28px);color:#fff;border-top:2px solid var(--red)}
.hv .is-tac td:nth-child(2){color:#ff5a4f}
.tech__more{margin-top:28px}
.sem{background:#000;border-radius:3px;overflow:hidden}
.sem img{width:100%;height:auto;filter:grayscale(1) contrast(1.05)}
.sem figcaption{padding:12px 16px;font-size:13px;color:rgba(255,255,255,.7)}

/* service */
.parts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(14px,1.6vw,24px)}
.part{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:var(--white);border-radius:4px;overflow:hidden;text-decoration:none;transition:box-shadow .35s}
.part:hover{box-shadow:0 18px 40px rgba(20,21,24,.12)}
.part img{width:100%;height:100%;object-fit:cover;aspect-ratio:1/1}
.part>div{display:flex;flex-direction:column;gap:12px;padding:clamp(20px,2vw,30px)}
.part h3{font-weight:400;font-size:clamp(22px,1.8vw,26px);line-height:1.15}
.part p{color:var(--muted);font-size:15px}
.part b{margin-top:auto;font-weight:400;font-size:clamp(24px,2vw,30px)}
.part:hover b{color:var(--red)}

/* about */
.about{background:var(--white)}
.about__grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(32px,6vw,96px);align-items:center}
.about__img{max-width:360px}
.about__img img{width:100%;height:auto;border-radius:3px;filter:grayscale(1) contrast(1.04)}
.about__lead{margin-top:24px;max-width:36em;font-size:clamp(17px,1.3vw,20px);font-weight:300}
.about__facts{margin-top:32px}
.about__facts div{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:14px 0;border-top:1px solid var(--line)}
.about__facts dt{font-size:13px;color:var(--muted);padding-top:3px}

/* contatti */
.contact{position:relative;overflow:hidden;padding:clamp(80px,10vw,150px) var(--pad)}
.contact__crosses{position:absolute;right:-4%;bottom:-18%;width:clamp(300px,36vw,600px);opacity:.9;pointer-events:none;will-change:transform}
.contact__grid{position:relative;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(32px,6vw,96px);align-items:end}
.contact h2{font-weight:300;font-size:clamp(38px,4.8vw,80px);line-height:1;letter-spacing:-.025em;max-width:13em}
.contact__lead{margin-top:24px;max-width:32em;color:rgba(255,255,255,.75);font-weight:300;font-size:clamp(17px,1.3vw,19px)}
.contact__card{position:relative;font-style:normal;background:var(--graphite);border-radius:4px;padding:28px;display:grid;gap:16px;line-height:1.6}
.contact__card .mono{font-size:13px;color:rgba(255,255,255,.6)}
.contact__card a{text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3)}
.contact__card a:hover{border-color:var(--red)}

.foot{background:var(--carbon);color:rgba(255,255,255,.7);border-top:1px solid var(--line-d);padding:28px var(--pad);font-size:14px}
.foot__grid{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 32px}
.foot b{color:#fff;font-weight:500}
.foot nav{display:flex;flex-wrap:wrap;gap:6px 22px}
.foot a{text-decoration:none;display:inline-block;padding:6px 0}
.foot a:hover{color:#fff}
.foot__note{opacity:.75}

/* ---------- pagine interne ---------- */
.page-hero{position:relative;overflow:hidden;background:var(--carbon);color:#fff;padding:calc(var(--hdr) + clamp(48px,8vw,110px)) var(--pad) clamp(48px,6vw,88px)}
.page-hero__grid{position:relative;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,80px);align-items:end}
.page-hero h1{font-size:clamp(44px,5.4vw,92px);line-height:.98}
.page-hero p{color:rgba(255,255,255,.75);font-weight:300;font-size:clamp(17px,1.3vw,19px);max-width:32em}
.page-hero .crumbs{font-size:13px;color:rgba(255,255,255,.6);margin-bottom:22px}
.page-hero .crumbs a{text-decoration:none}
.page-hero__crosses{position:absolute;right:-2%;top:calc(var(--hdr) + 12px);width:clamp(200px,20vw,320px);opacity:.85;pointer-events:none;will-change:transform}
.page-hero__img{margin-top:clamp(36px,5vw,64px);position:relative;border-radius:3px;overflow:hidden;max-height:560px}
.page-hero__img img{width:100%;height:100%;object-fit:cover}

.compare-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:4px;background:var(--white)}
.compare{width:100%;min-width:760px;border-collapse:collapse;font-size:15px}
.compare th,.compare td{text-align:left;padding:15px 20px;border-top:1px solid var(--line);vertical-align:top}
.compare thead th{border-top:0;padding-top:22px;font-weight:500;font-size:18px}
.compare thead th a{text-decoration:none}
.compare thead th a:hover{color:var(--red)}
.compare tbody th{font-family:'Chivo Mono',ui-monospace,monospace;font-weight:400;font-size:13px;color:var(--muted);width:170px}
.compare .row-price td{font-size:24px;font-weight:300}
.compare caption{text-align:left;padding:0 0 14px;color:var(--muted);font-size:14px}

.sheet{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:clamp(28px,5vw,80px);padding:clamp(56px,7vw,100px) 0;border-top:1px solid var(--line);align-items:start}
.sheet:first-child{border-top:0;padding-top:0}
.sheet__media{display:grid;gap:14px;position:sticky;top:calc(var(--hdr) + 24px)}
.sheet__media img{width:100%;height:auto;border-radius:3px;background:#e7e5e0}
.sheet__media .pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.sheet__media .pair img{aspect-ratio:1/1;object-fit:cover}
.sheet h2{font-weight:300;font-size:clamp(34px,3.4vw,56px);line-height:1.02;letter-spacing:-.02em}
.sheet .tag{margin-top:12px}
.sheet .spec{margin-top:28px;font-size:16px;gap:10px 22px}
.sheet h3{font-family:'Chivo Mono',ui-monospace,monospace;font-weight:400;font-size:13px;color:var(--muted);margin:32px 0 10px}
.opts{list-style:none;border-top:1px solid var(--line)}
.opts li{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--line);font-size:15px}
.opts li b{font-weight:400;white-space:nowrap}
.sheet .price{margin-top:28px;border-top:2px solid var(--ink)}
.sheet__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}

.gallery{columns:3 280px;column-gap:16px}
.gallery figure{break-inside:avoid;margin-bottom:16px;border-radius:3px;overflow:hidden;background:#e7e5e0}
.gallery img{width:100%;height:auto}
.gallery figcaption{padding:10px 14px;font-size:13px;color:var(--muted);background:var(--white)}

.points{list-style:none;counter-reset:p;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(28px,4vw,64px)}
.points li{counter-increment:p;display:grid;grid-template-columns:44px 1fr;gap:12px;padding:20px 0;border-top:1px solid var(--line);font-size:clamp(17px,1.3vw,19px);font-weight:300}
.points li::before{content:counter(p,decimal-leading-zero);font-family:'Chivo Mono',ui-monospace,monospace;font-size:13px;color:var(--red);padding-top:4px}
.dark .points li{border-color:var(--line-d)}
.plain{list-style:none;display:grid;gap:0}
.plain li{padding:12px 0;border-top:1px solid var(--line);font-size:16px}
.dark .plain li{border-color:var(--line-d)}
.split{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:clamp(28px,5vw,80px);align-items:start}
.split figure img{width:100%;height:auto;border-radius:3px}
.split figcaption{font-size:13px;margin-top:10px;color:var(--muted)}
.dark .split figcaption{color:rgba(255,255,255,.6)}
.lead-l{font-size:clamp(19px,1.6vw,24px);font-weight:300;line-height:1.45;max-width:30em}

@media (max-width:900px){
  .page-hero__grid,.sheet,.split{grid-template-columns:1fr}
  .sheet__media{position:static}
  .points{grid-template-columns:1fr}
  .page-hero__crosses{width:150px;top:auto;bottom:4%;opacity:.5}
}

/* apertura dell'hero: la camera si assesta, le croci arrivano dalla bandiera; nulla resta nascosto */
@keyframes settle{from{transform:scale(1.09)}to{transform:none}}
@keyframes drift{from{translate:-48px 26px}to{translate:0 0}}
@keyframes rise{from{translate:0 .28em}to{translate:0 0}}
.hero__media picture{display:block;position:absolute;inset:0;animation:settle 2.2s cubic-bezier(.2,.7,.2,1) both}
.hero__crosses{animation:drift 2.4s cubic-bezier(.2,.7,.2,1) both}
.hero h1 span{animation:rise 1.1s cubic-bezier(.2,.7,.2,1) both}
.hero h1 span:nth-child(2){animation-delay:.08s}
.hero h1 span:nth-child(3){animation-delay:.16s}

@media (max-width:1100px){
  .machines{grid-template-columns:1fr 1fr}
  .machines .machine:last-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}
  .machines .machine:last-child figure{aspect-ratio:auto;height:100%}
  .parts{grid-template-columns:1fr}
}
@media (max-width:900px){
  .hero{grid-template-columns:1fr;min-height:0}
  .hero__media{order:-1;height:42svh;min-height:280px}
  .hero__media::after{background:linear-gradient(0deg,var(--carbon) 0,rgba(15,16,18,0) 40%)}
  .hero__text{padding-top:8px}
  .hero__crosses{left:auto;right:3%;bottom:auto;top:calc(var(--hdr) + 42svh - 130px);width:128px}
  .hero__cap{display:none}
  .rail{grid-template-columns:1fr}
  .rail a,.rail a:first-child{border-left:0;border-top:1px solid var(--line-d);min-height:0;padding:16px var(--pad)}
  .sec-head,.coat__grid,.tech,.about__grid,.contact__grid{grid-template-columns:1fr}
  .collage{aspect-ratio:1/1}
  .about__img{max-width:240px}
}
@media (max-width:640px){
  .machines{grid-template-columns:1fr}
  .machines .machine:last-child{display:flex}
  .machines .machine:last-child figure{aspect-ratio:5/4}
  .part{grid-template-columns:1fr}
  .part img{aspect-ratio:16/10}
  .about__facts div{grid-template-columns:1fr;gap:2px}
  .hv th,.hv td{padding-right:8px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important}
}
