:root{--bg:#fff;--surface:#f5f5f7;--ink:#1d1d1f;--muted:#515154;--graphite:#111214;--navy:#0b1f3a;--accent:#0b5cd5;--accent-hi:#0a4fb8;--line:#d2d2d7;--r:20px;--m:clamp(20px,3vw,40px);
--ease:cubic-bezier(.22,1,.36,1);
--s-small:1rem;--s-body:clamp(1.0625rem,1rem + .25vw,1.1875rem);--s-lead:clamp(1.25rem,1.1rem + .7vw,1.5rem)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:72px;-webkit-text-size-adjust:100%}
body{font:400 var(--s-body)/1.55 'Inter',system-ui,sans-serif;background:var(--bg);color:var(--ink);overflow-x:hidden}
h1,h2,h3{font-weight:600;letter-spacing:-.035em;line-height:1.02}
a{color:inherit}
button,input,textarea{font:inherit;color:inherit}
button,.btn,.link,select{cursor:pointer}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.navy :focus-visible,.close :focus-visible{outline-color:#fff}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;z-index:100;background:var(--ink);color:#fff;padding:12px 16px;border-radius:8px}

/* TOP: l'unica barra in vetro fissa */
.top{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:24px;height:64px;padding:0 var(--m);background:rgba(255,255,255,.82);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%)}
.mark{display:flex;align-items:center;gap:10px;min-height:44px;font-weight:600;font-size:1.25rem;letter-spacing:-.03em;text-decoration:none}
.mark i{width:12px;height:12px;background:var(--accent);display:block;border-radius:3px}
.top nav{display:flex;gap:8px;font-size:var(--s-small);font-weight:500}
.top nav a{display:flex;align-items:center;min-height:44px;padding:0 14px;text-decoration:none;color:var(--muted);border-radius:8px;transition:color .2s,background .2s}
.top nav a:hover{color:var(--ink);background:rgba(0,0,0,.05)}
.menu-btn{display:none}

/* BOTTONI */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;background:var(--accent);color:#fff;font-weight:500;text-decoration:none;border:0;border-radius:12px;transition:background .2s,transform .2s var(--ease)}
.btn:hover{background:var(--accent-hi)}
.btn:active{transform:scale(.98)}
.link{display:inline-flex;align-items:center;min-height:52px;padding:0 12px;color:var(--accent);font-weight:500;text-decoration:none;border-radius:8px}
.link::after{content:"›";margin-left:8px;font-size:1.4em;line-height:1;transition:transform .2s var(--ease)}
.link:hover::after{transform:translateX(4px)}

/* HERO */
.hero{padding:clamp(120px,16vh,160px) var(--m) 0;text-align:center}
.hero-in{max-width:980px;margin:0 auto}
h1{font-size:clamp(2.2rem,5.6vw,5rem);line-height:1;margin-bottom:clamp(20px,3vh,28px)}
.ln{display:block;overflow:hidden;padding-bottom:.1em}
.ln>span{display:block}
.lead{font-size:var(--s-lead);line-height:1.35;color:var(--muted);max-width:34ch;margin:0 auto 28px}
.cta{display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:center;align-items:center}

/* STAGE: pannello grafite con vetro scuro */
.stage{position:relative;overflow:hidden;isolation:isolate;margin:clamp(40px,6vw,72px) 0 0;height:clamp(400px,48vw,560px);border-radius:var(--r);background:var(--graphite);color:#fff;text-align:left}
.sh{position:absolute;z-index:-1;display:block}
.s1{width:44%;aspect-ratio:1;left:8%;top:-14%;border-radius:50%;background:var(--accent)}
.s2{width:34%;aspect-ratio:1;right:6%;bottom:-18%;border-radius:18%;background:#23262b;rotate:12deg}
.glass{background:rgba(255,255,255,.1);-webkit-backdrop-filter:blur(24px) saturate(160%);backdrop-filter:blur(24px) saturate(160%);border:1px solid rgba(255,255,255,.2);border-radius:14px}
.c{position:absolute;display:grid;gap:3px;padding:18px 20px;width:min(300px,58%)}
.c small,.c span{font-size:var(--s-small);color:#d2d3d8}
.c strong{font-size:1.2rem;line-height:1.25;letter-spacing:-.02em;font-weight:600}

/* SEZIONI */
.sec{padding:clamp(72px,10vw,140px) var(--m) 0}
h2{font-size:clamp(2rem,4.2vw,3.8rem)}
.statement{font-size:var(--s-lead);line-height:1.4;max-width:34em}

/* PANNELLO DEL GESTIONALE */
.tech{position:relative;isolation:isolate;overflow:hidden;margin:clamp(72px,10vw,140px) var(--m) 0;padding:clamp(40px,6vw,88px) clamp(20px,4vw,64px);border-radius:var(--r);background:var(--surface)}
.plate-h{grid-column:1/-1;max-width:11em;margin-bottom:clamp(36px,5vw,72px)}
.cap-after{margin-top:12px;font-size:var(--s-small);color:var(--muted);text-align:center}

/* AI: sezione navy */
.navy{margin:clamp(72px,10vw,140px) var(--m) 0;border-radius:var(--r);background:var(--navy);color:#fff;padding:clamp(40px,6vw,88px) clamp(20px,4vw,64px)}
.field-in{display:grid;grid-template-columns:1.1fr .9fr;column-gap:clamp(32px,5vw,80px);align-items:start}
.navy h2{font-size:clamp(2rem,4.6vw,4.2rem);max-width:10em;margin-bottom:clamp(36px,5vw,64px)}
.cols3{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,24px)}
.cols3>div{padding:clamp(22px,2.4vw,32px);border-radius:14px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14)}
.cols3 h3{font-size:clamp(1.3rem,1.8vw,1.6rem);margin-bottom:12px}
.cols3 p{max-width:34ch;color:#d6dbe6}
.chat{display:grid;gap:10px;padding:clamp(18px,2.4vw,26px);border-radius:var(--r);background:rgba(255,255,255,.08);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.18);margin-bottom:clamp(32px,5vw,64px);min-height:340px;align-content:start}
.chat-head{display:flex;align-items:center;gap:10px;font-weight:600;margin-bottom:6px;color:#d6dbe6}
.b{max-width:88%;padding:12px 16px;border-radius:14px;font-size:var(--s-small);line-height:1.4}
.b.u{justify-self:end;background:var(--accent);color:#fff;border-bottom-right-radius:4px}
.b.a{justify-self:start;background:#ffffff;color:var(--ink);border-bottom-left-radius:4px}
.typing{justify-self:start;display:flex;gap:5px;padding:15px 16px;border-radius:14px;border-bottom-left-radius:4px;background:#fff}
.typing i{width:6px;height:6px;border-radius:50%;background:var(--muted);opacity:.5}

/* CALCOLATORE */
.calc{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,6vw,96px);align-items:stretch}
.calc h2{margin-bottom:20px}
.calc-form{display:grid;gap:10px;margin:32px 0 0;max-width:520px}
.calc-form label{display:flex;justify-content:space-between;font-weight:500;gap:16px}
.calc-form output{font-weight:600}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:44px;background:transparent;cursor:pointer}
input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:var(--line)}
input[type=range]::-moz-range-track{height:4px;border-radius:2px;background:var(--line)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;margin-top:-11px;background:#fff;border:1px solid var(--line);border-radius:50%;box-shadow:0 2px 6px rgba(0,0,0,.25)}
input[type=range]::-moz-range-thumb{width:26px;height:26px;background:#fff;border:1px solid var(--line);border-radius:50%;box-shadow:0 2px 6px rgba(0,0,0,.25)}
.calc-out{display:flex;flex-direction:column;justify-content:center;gap:10px;padding:clamp(28px,4vw,52px);border-radius:var(--r);background:var(--graphite);color:#fff;min-height:340px}
.result{font-size:clamp(2.8rem,6.4vw,5.6rem);font-weight:600;letter-spacing:-.05em;line-height:1;font-variant-numeric:tabular-nums}
.result em{font-style:normal;font-size:var(--s-lead);font-weight:400;letter-spacing:0;color:#d2d3d8}
.fine{color:#c7c9cf;font-size:var(--s-small);max-width:44ch}

/* METODO */
.wide{max-width:11em;margin-bottom:clamp(36px,5vw,72px)}
.bar{display:flex;gap:8px;min-height:min(40vh,320px)}
.seg{flex:var(--g) 1 0;min-width:170px;padding:22px;display:flex;flex-direction:column;justify-content:space-between;gap:24px;border-radius:14px}
.seg b{font-size:clamp(1.2rem,1.7vw,1.5rem);line-height:1.15;letter-spacing:-.02em;font-weight:600}
.seg p{font-size:var(--s-small);max-width:24ch}
.g1{background:var(--accent);color:#fff}.g2{background:var(--surface)}.g3{background:var(--graphite);color:#fff}.g4{background:var(--line)}

/* CHI SIAMO */
.about{display:grid;grid-template-columns:34% 1fr;gap:0 32px}
.about dl{display:grid;gap:24px}
.about dt{color:var(--muted);font-size:var(--s-small)}
.about dd{font-weight:600;font-size:1.1rem;max-width:18ch}
.about-txt .statement{font-size:clamp(1.35rem,2vw,1.9rem);line-height:1.35}

/* CONTATTI */
.close{margin:clamp(72px,10vw,140px) var(--m) 0;border-radius:var(--r);background:var(--graphite);color:#fff;padding:clamp(40px,7vw,104px) clamp(20px,4vw,64px)}
.close-in{display:grid;grid-template-columns:1.2fr 1fr;column-gap:clamp(32px,6vw,96px);align-content:start}
.close h2{font-size:clamp(2.2rem,5.6vw,5rem);grid-column:1/-1;max-width:9em;margin-bottom:clamp(28px,4vw,56px)}
.close-in>p{font-size:var(--s-lead);line-height:1.35;max-width:20em;align-self:end;color:#d2d3d8}
.form{display:grid;gap:14px;padding:clamp(20px,3vw,28px);border-radius:var(--r);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16)}
.form label{display:grid;gap:6px;font-weight:500;font-size:var(--s-small)}
.form input,.form textarea{width:100%;min-height:52px;padding:12px 16px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.24);border-radius:10px;color:#fff;font-size:16px}
.form textarea{resize:vertical}
.form [aria-invalid=true]{border-color:#ff8a8a}
.close .btn{min-height:56px;justify-self:start}
.note-f{min-height:1.4em;font-size:var(--s-small)}

/* FOOTER */
.foot{overflow:hidden;padding:0 var(--m)}
.foot-in{padding:40px 0 calc(40px + env(safe-area-inset-bottom));font-size:var(--s-small);color:var(--muted)}

/* MOTION: sobrio, una volta sola, solo se consentito */
@media(prefers-reduced-motion:no-preference){
  .js .ln>span{transform:translateY(105%);animation:rise .8s var(--ease) forwards}
  .js .ln:nth-child(2)>span{animation-delay:.08s}
  @keyframes rise{to{transform:none}}
  .js .hero .lead,.js .hero .cta{animation:fade .8s .25s var(--ease) both}
  .js .hero .stage{animation:fade .9s .4s var(--ease) both}
  @keyframes fade{from{opacity:0;transform:translateY(16px)}}
  .js .rv,.js .calc-txt,.js .calc-out,.js .about-txt>*,.js .about-facts,.js .bar .seg,.js .plate-h,.js .feat{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease),background .2s,color .2s,box-shadow .25s;transition-delay:var(--d,0s)}
  .js .in{opacity:1!important;transform:none!important}
  .fx .chat .b{opacity:0;transform:translateY(8px);transition:opacity .35s var(--ease),transform .35s var(--ease)}
  .fx .chat .b.show{opacity:1;transform:none}
  .typing i{animation:dot 1s infinite}
  .typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
  @keyframes dot{40%{opacity:1;transform:translateY(-2px)}}
}

/* RESPONSIVE */
@media(max-width:900px){
  .menu-btn{display:flex;align-items:center;min-height:44px;padding:0 12px;background:none;border:0;font-weight:500;border-radius:8px}
  .top nav{position:fixed;inset:64px 0 auto;flex-direction:column;gap:0;padding:8px var(--m) 20px;background:rgba(255,255,255,.97);border-bottom:1px solid rgba(0,0,0,.06);display:none;font-size:1.2rem}
  .top nav.open{display:flex}
  .top nav a{min-height:52px;padding:0}
  h1{font-size:clamp(1.9rem,8vw,3.4rem)}
  .stage{height:clamp(420px,108vw,500px)}
  .s1{width:70%;left:-14%;top:-8%}.s2{width:50%;right:-10%;bottom:-8%}
  .c{width:74%;padding:16px 18px}

  .navy h2,.wide{max-width:none}
  .field-in{grid-template-columns:1fr}
  .chat{min-height:0}
  .calc{grid-template-columns:1fr}
  .calc-out{min-height:0}
  .bar{flex-direction:column;min-height:0}
  .seg{flex:none;min-height:calc(100px + var(--g) * 16px);min-width:0}
  .about{grid-template-columns:1fr}
  .about-facts{order:2;margin-top:44px}
  .about dl{grid-template-columns:1fr 1fr}
  .stage.mini{margin-top:32px}
  .close-in{grid-template-columns:1fr}
  .close-in>p{margin-bottom:28px}
  .close .btn{width:100%;justify-self:stretch}
}
@media(max-width:640px){.cols3{grid-template-columns:1fr}}

/* HERO: flusso chiaro in tre passaggi */
.stage.flow{height:auto;padding:clamp(28px,4vw,56px);display:grid;gap:clamp(24px,3vw,40px);justify-items:start}
.stage-cap{font-size:var(--s-lead);line-height:1.3;font-weight:500;max-width:30ch;color:#fff}
.steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(40px,4.5vw,64px);width:100%}
.stage.flow .c{position:relative;width:auto;left:auto;top:auto;right:auto;bottom:auto;translate:none}
.steps li:not(:last-child)::after{content:"";position:absolute;top:50%;left:100%;width:clamp(40px,4.5vw,64px);height:24px;margin-top:-12px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/22px no-repeat}

/* FUNZIONI: scegli e guarda l'esempio */
.tech .plate-h{margin-bottom:16px}
.feat-sub{margin-bottom:clamp(28px,4vw,48px);color:var(--muted)}
.feat{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:clamp(16px,3vw,40px);align-items:start}
.tabs{display:grid;gap:8px}
.tab{display:flex;align-items:center;justify-content:space-between;text-align:left;min-height:56px;padding:0 20px;border:0;border-radius:14px;background:#fff;font-weight:500;font-size:1.05rem;color:var(--ink);transition:background .2s,color .2s}
.tab::after{content:"›";font-size:1.4em;opacity:.5}
.tab:hover{background:#ececf0}
.tab[aria-selected=true]{background:var(--accent);color:#fff}
.view{padding:clamp(24px,3.5vw,44px);border-radius:var(--r);background:#fff;min-height:360px;display:grid;align-content:start;gap:14px}
.view h3{font-size:clamp(1.5rem,2.6vw,2.2rem)}
.view>p{color:var(--muted);max-width:44ch}
.ex{margin-top:14px;display:grid;gap:4px;padding:22px 24px;border-radius:14px;background:var(--surface);max-width:460px}
.ex small{color:var(--muted)}
.ex strong{font-size:clamp(1.4rem,2.3vw,1.9rem);letter-spacing:-.03em;font-weight:600;line-height:1.2}
.ex span{color:var(--muted)}

/* CHAT: avatar dell'assistente */
.av{flex:none;display:block;width:32px;height:32px;border-radius:50%;background:var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M11 3l1.9 5.1L18 10l-5.1 1.9L11 17l-1.9-5.1L4 10l5.1-1.9z'/%3E%3Cpath d='M19 14l.9 2.1L22 17l-2.1.9L19 20l-.9-2.1L16 17l2.1-.9z'/%3E%3C/svg%3E") center/62% no-repeat}
.chat-head{gap:12px}
.chat-head span{display:grid;line-height:1.25}
.chat-head small{font-weight:400;font-size:var(--s-small);color:#b8c0d0}
.msg{display:flex;align-items:flex-end;gap:10px;justify-self:start;max-width:94%}
.msg .b{max-width:none}
.typing{align-self:flex-end}

/* CALCOLATORE e METODO: più chiari */
.out-label{color:#d2d3d8;font-size:var(--s-small)}
.hours{font-weight:500}
.seg{justify-content:flex-start;gap:6px}
.seg em{font-style:normal;font-size:var(--s-small);opacity:.85}
.seg p{margin-top:auto;padding-top:18px}

@media(prefers-reduced-motion:no-preference){
  .view.swap>*{animation:fade .3s var(--ease) both}
  .fx .msg .av{opacity:0;transition:opacity .35s var(--ease)}
  .fx .msg:has(.show) .av,.fx .msg:has(.typing) .av{opacity:1}
}
@media(max-width:900px){
  .stage.flow{padding:24px}
  .steps{grid-template-columns:1fr;gap:44px}
  .steps li:not(:last-child)::after{top:100%;left:50%;width:24px;height:44px;margin:0 0 0 -12px;background-size:22px;rotate:90deg}
  .feat{grid-template-columns:1fr}
  .tabs{display:flex;overflow-x:auto;gap:8px;scrollbar-width:none;padding-bottom:4px;margin-inline:calc(-1 * var(--m));padding-inline:var(--m)}
  .tabs::-webkit-scrollbar{display:none}
  .tab{flex:none;min-height:48px;padding:0 18px}
  .tab::after{display:none}
  .view{min-height:0}
}
