:root{
  --primary:#0667b0; --primary-dark:#04497d; --accent:#31b485; --accent-dark:#0d7b54;
  --ink:#16222e; --muted:#4b5b6b; --line:#e3e9ef; --bg:#fff; --alt:#f4f8fb;
  --r:14px; --max:1120px;
  --font:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font:1.0625rem/1.65 var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
a{color:var(--primary)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
h1,h2,h3{line-height:1.2;margin:0 0 .6em;letter-spacing:-.01em}
h1{font-size:clamp(2rem,5vw,3.25rem)}
h2{font-size:clamp(1.6rem,3.2vw,2.25rem)}
h3{font-size:1.2rem}
p{margin:0 0 1em}
.container{width:min(100% - 2rem,var(--max));margin-inline:auto}
.narrow{max-width:760px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-999px;top:0;background:var(--primary);color:#fff;padding:.6rem 1rem;z-index:100}
.skip:focus{left:0}

/* header */
.site-header{transition:box-shadow .3s;position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(6px)}
.bar{display:flex;align-items:center;gap:1rem;min-height:68px;flex-wrap:wrap}
.logo{flex:none;display:inline-flex;align-items:center;text-decoration:none}
.logo img{display:block;height:30px;width:auto;max-width:none}
.nav{display:none;order:5;width:100%;padding-bottom:1rem}
.nav.open{display:block}
.nav ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.15rem}
.nav a{display:block;padding:.55rem .25rem;color:var(--ink);text-decoration:none;font-weight:500;border-radius:6px}
.nav a:hover,.nav a[aria-current]{color:var(--primary)}
.nav a[aria-current="page"]{font-weight:700}
.lang{flex-direction:row!important;gap:.25rem!important;margin-top:.5rem!important}
.lang a{padding:.3rem .6rem;border:1px solid var(--line);font-size:.85rem}
.lang a[aria-current]{background:var(--primary);color:#fff;border-color:var(--primary)}
.menu-btn{margin-left:auto;background:none;border:1px solid var(--line);border-radius:8px;padding:.45rem .8rem;font:inherit;cursor:pointer}
.cta-head{white-space:nowrap}
@media (min-width:1180px){
  .menu-btn{display:none}
  .nav,.nav.open{display:flex;order:0;width:auto;padding:0;margin-left:auto;align-items:center;gap:1rem}
  .nav ul{flex-direction:row;gap:.1rem}
  .nav a{padding:.5rem .65rem}
  .lang{margin:0!important}
}
@media (max-width:1179px){ .cta-head{order:3;padding:.5rem .8rem} .menu-btn{margin-left:auto} }

/* buttons */
.btn{display:inline-block;position:relative;background:var(--primary);color:#fff;text-decoration:none;font-weight:700;padding:.85rem 1.5rem;border-radius:999px;border:2px solid var(--primary);font-size:1rem;font-family:inherit;cursor:pointer;transition:background .25s,border-color .25s,color .25s,transform .25s,box-shadow .25s}
.btn:hover{background:var(--primary-dark);border-color:var(--primary-dark);transform:translateY(-2px);box-shadow:0 8px 20px rgba(6,103,176,.28)}
.btn:active{transform:none;box-shadow:none}
.btn-sm{padding:.5rem 1.1rem;font-size:.95rem}
.btn-ghost{background:transparent;color:var(--primary)}
.btn-ghost:hover{background:var(--primary);color:#fff}
.btn-light{background:#fff;color:var(--primary-dark);border-color:#fff}
.btn-light:hover{background:var(--alt);border-color:var(--alt)}
.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}

/* sections */
.hero{padding:clamp(3rem,9vw,6.5rem) 0;background:linear-gradient(180deg,var(--alt),#fff)}
.hero h1{max-width:18ch}
.hero .lead{max-width:56ch}
.eyebrow{color:var(--accent-dark);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.82rem;margin-bottom:.8rem}
.lead{font-size:1.2rem;color:var(--muted)}
.section{padding:clamp(3rem,7vw,5.5rem) 0}
.alt{background:var(--alt)}
.split{display:grid;gap:2rem;align-items:center}
@media (min-width:860px){.split{grid-template-columns:1fr 1fr;gap:4rem}.split.rev>:first-child{order:2}}
.stats{border-block:1px solid var(--line);padding:2rem 0}
.stats dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1.5rem;margin:0;text-align:center}
.stats dd{margin:0;font-size:2.2rem;font-weight:800;color:var(--primary);order:-1}
.stats dt{color:var(--muted);font-size:.95rem}
.stats div{display:flex;flex-direction:column}

.cards{display:grid;gap:1.25rem;margin-top:2rem;list-style:none;padding:0}
@media (min-width:640px){.cards.four{grid-template-columns:repeat(2,1fr)}}
@media (min-width:860px){.cards.three{grid-template-columns:repeat(3,1fr)}.cards.four{grid-template-columns:repeat(4,1fr)}}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.6rem}
.card p:last-child{margin-bottom:0}
.more{font-weight:700;text-decoration:none}
.more:hover{text-decoration:underline}
.numbered{counter-reset:n}
.numbered .card{counter-increment:n;position:relative}
.numbered .card::before{content:counter(n);display:grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:50%;background:var(--accent-dark);color:#fff;font-weight:700;margin-bottom:1rem}
.benefit{border-top:4px solid var(--accent);padding-top:1rem}
.steps{list-style:none;counter-reset:s;padding:0;margin:0;display:grid;gap:.8rem}
.steps li{counter-increment:s;display:flex;gap:1rem;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1rem 1.25rem;font-weight:600}
.steps li::before{content:counter(s);flex:none;display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--primary);color:#fff;font-size:.95rem}
.ticks{list-style:none;padding:0;margin:0;display:grid;gap:.75rem}
.ticks li{padding-left:2rem;position:relative}
.ticks li::before{content:"";position:absolute;left:0;top:.45em;width:1.1rem;height:.6rem;border-left:3px solid var(--accent-dark);border-bottom:3px solid var(--accent-dark);transform:rotate(-45deg) translateY(-30%)}
@media (min-width:860px){.ticks.cols{grid-template-columns:1fr 1fr;column-gap:3rem}}
.chips{list-style:none;padding:0;margin:1.5rem 0 0;display:flex;flex-wrap:wrap;gap:.6rem}
.chips li{background:var(--alt);border:1px solid var(--line);border-radius:999px;padding:.45rem 1rem;font-weight:500}
.alt .chips li{background:#fff}
.timeline .card .eyebrow{margin-bottom:.4rem}

/* CTAs */
.final-cta{background:var(--primary);color:#fff;padding:clamp(3rem,7vw,5.5rem) 0}
.final-cta h2,.final-cta .lead{color:#fff}
.final-cta .card{color:var(--ink)}
.banner{background:var(--primary);color:#fff;padding:3rem 0;text-align:center}
.banner h2{margin-bottom:1.2rem}

/* form */
.demo-form{display:grid;gap:1rem}
.field label{display:block;font-weight:600;margin-bottom:.3rem;font-size:.95rem}
.field input[type=text],.field input[type=email],.field input[type=tel],.field textarea{width:100%;padding:.7rem .85rem;border:1.5px solid #aab7c4;border-radius:10px;font:inherit;background:#fff;color:var(--ink)}
.field.check label{display:flex;gap:.6rem;font-weight:400;align-items:flex-start}
.field.check input{margin-top:.35rem;width:1.1rem;height:1.1rem;flex:none}
.field.invalid input,.field.invalid textarea{border-color:#b3261e}
.err{color:#b3261e;font-size:.88rem;margin:.25rem 0 0;min-height:0}
.err:empty{display:none}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.status{margin:0;font-weight:600}
.status.ok{color:var(--accent-dark)}
.status.fail{color:#b3261e}
.demo-form .btn[disabled]{opacity:.6;cursor:wait}
.contact p{margin-bottom:1.1rem}

/* footer */
.site-footer{background:#0e1a25;color:#c9d4de;padding:3.5rem 0 1.5rem;font-size:.95rem}
.site-footer a{color:#fff}
.site-footer .logo img{filter:brightness(0) invert(1);margin-bottom:.8rem}
.site-footer h2{font-size:1rem;color:#fff;margin-bottom:.8rem}
.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:.4rem}
.site-footer address{font-style:normal}
.site-footer .grid{display:grid;gap:2rem}
@media (min-width:760px){.site-footer .grid{grid-template-columns:1.4fr 1fr 1fr 1.4fr}}
.legal{display:flex;flex-wrap:wrap;gap:.5rem 2rem;justify-content:space-between;margin-top:2.5rem;padding-top:1.2rem;border-top:1px solid #243444;font-size:.85rem}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* ===== immagini e loghi ===== */
.plogo{display:block;margin-bottom:1rem}
.illus{display:block;width:100%;max-width:420px;height:auto;margin:0 auto 1.5rem}
.hero{position:relative;overflow:hidden}
.hero::before,.hero::after{content:"";position:absolute;border-radius:50%;filter:blur(60px);opacity:.35;pointer-events:none;animation:drift 14s ease-in-out infinite alternate}
.hero::before{width:380px;height:380px;background:var(--accent);top:-140px;right:-80px}
.hero::after{width:320px;height:320px;background:var(--primary);bottom:-160px;left:-100px;animation-delay:-6s;opacity:.18}
.hero .container{position:relative;z-index:1}
.hero-grid{display:grid;gap:2.5rem;align-items:center}
@media (min-width:900px){.hero-grid{grid-template-columns:1.05fr .95fr;gap:3rem}}
.hero-media img,.hero-media .viz{display:block;width:100%;height:auto}
.hero-media img[src*="hero-platform"]{border-radius:20px;box-shadow:0 24px 60px rgba(6,103,176,.28)}
.float{animation:float 7s ease-in-out infinite}

/* ===== animazioni di ingresso (solo con JS attivo) ===== */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.7,.2,1) var(--d,0s),transform .8s cubic-bezier(.2,.7,.2,1) var(--d,0s)}
.js .reveal.zoom{transform:translateY(16px) scale(.94)}
.js .reveal.in{opacity:1;transform:none}
.js .stagger>*{opacity:0;transform:translateY(14px);transition:opacity .5s ease calc(.15s + var(--i,0) * .07s),transform .5s ease calc(.15s + var(--i,0) * .07s)}
.js .reveal.in .stagger>*,.js .stagger.in>*{opacity:1;transform:none}
body{animation:pagein .5s ease both}

/* ===== hover ===== */
.lift{transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.lift:hover{transform:translateY(-6px);box-shadow:0 16px 36px rgba(22,34,46,.12);border-color:var(--primary)}
.js .reveal.lift.in{transition:opacity .8s cubic-bezier(.2,.7,.2,1) var(--d,0s),transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.more span[aria-hidden]{display:inline-block;transition:transform .25s}
.more:hover span[aria-hidden]{transform:translateX(5px)}
.chips li{transition:transform .2s,background .2s,border-color .2s}
.chips li:hover{transform:translateY(-3px);border-color:var(--accent);background:#fff}
.nav a{transition:color .2s,background .2s}
.site-header.scrolled{box-shadow:0 6px 24px rgba(22,34,46,.08)}
.steps li{transition:transform .25s,border-color .25s}
.steps li:hover{transform:translateX(6px);border-color:var(--accent)}

/* ===== schede collegate (passaggi) ===== */
@media (min-width:860px){
  .connected .card:not(:last-child)::after{content:"";position:absolute;top:2.65rem;left:calc(100% + 1px);width:1.25rem;height:3px;background:var(--accent);transform-origin:left;transition:transform .6s ease .5s;transform:scaleX(0)}
  .connected .card.in:not(:last-child)::after{transform:scaleX(1)}
}
.numbered .card::before{transition:transform .3s}
.numbered .card:hover::before{transform:scale(1.12) rotate(-6deg)}

/* ===== infografiche ===== */
.viz{margin:0 0 1.5rem;padding:1.5rem;background:#fff;border:1px solid var(--line);border-radius:var(--r)}
.alt .viz{background:#fff}
.viz figcaption{font-weight:700;margin-bottom:1rem;color:var(--muted);font-size:.9rem;text-transform:uppercase;letter-spacing:.05em}

.flow-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.node{display:flex;flex-direction:column;align-items:center;gap:.5rem;font-weight:700;font-size:.95rem;text-align:center}
.node svg{width:52px;height:56px}
.node.ai svg{animation:spin 10s linear infinite}
.node.ai{color:var(--accent-dark)}
.arrow{display:flex;gap:2px;margin-bottom:1.4rem}
.arrow i{width:9px;height:9px;border-top:3px solid var(--accent);border-right:3px solid var(--accent);transform:rotate(45deg);animation:blink 1.4s infinite}
.arrow i:nth-child(2){animation-delay:.2s}.arrow i:nth-child(3){animation-delay:.4s}
.outputs{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin:1.2rem 0 0;padding:0}
.outputs li{background:var(--alt);border:1px solid var(--line);border-radius:999px;padding:.3rem .9rem;font-weight:600;font-size:.9rem;color:var(--primary-dark)}
.js .outputs li{opacity:0;transform:scale(.7);transition:opacity .4s ease calc(.8s + var(--i) * .15s),transform .5s cubic-bezier(.3,1.6,.5,1) calc(.8s + var(--i) * .15s)}
.js .reveal.in .outputs li{opacity:1;transform:none}

.bar-row{display:grid;gap:.35rem;margin-bottom:1rem}
.bar-row>span{font-weight:600;font-size:.95rem}
.track{background:var(--alt);border-radius:999px;height:2.2rem;overflow:hidden}
.fill{height:100%;border-radius:999px;display:flex;align-items:center;justify-content:flex-end;padding-right:.9rem;color:#fff;font-weight:800;min-width:3.5rem;width:var(--w)}
.fill.old{background:#9db8d0}.fill.new{background:var(--accent-dark)}
.js .fill{width:0;transition:width 1.4s cubic-bezier(.2,.7,.2,1) .5s}
.js .reveal.in .fill{width:var(--w)}

.chat{display:grid;gap:.8rem}
.chat .kb{display:flex;align-items:center;gap:.4rem;color:var(--primary);font-weight:600;font-size:.9rem}
.bubble{margin:0;padding:.8rem 1rem;border-radius:16px;max-width:88%;font-size:.98rem}
.bubble.q{justify-self:end;background:var(--primary);color:#fff;border-bottom-right-radius:4px}
.bubble.a{background:var(--alt);border:1px solid var(--line);border-bottom-left-radius:4px}
.bubble small{display:block;margin-top:.45rem;color:var(--accent-dark);font-weight:700}
.js .bubble{opacity:0;transform:translateY(14px) scale(.96);transition:all .55s ease calc(.4s + var(--i) * .9s)}
.js .reveal.in .bubble{opacity:1;transform:none}

.slides{display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap;position:relative;padding-bottom:3rem}
.slides figcaption{position:absolute;left:1.5rem;right:1.5rem;bottom:1rem;display:flex;justify-content:space-between;margin:0}
.slides .arrow{margin:0}
.mini-doc{width:84px;height:108px;border:3px solid var(--primary);border-radius:8px;padding:12px 10px;display:grid;gap:8px;align-content:start;background:#fff}
.mini-doc i{height:5px;background:#9db8d0;border-radius:3px}.mini-doc i:last-child{width:60%}
.deck{position:relative;width:150px;height:108px}
.deck .s{position:absolute;width:120px;height:80px;border-radius:8px;border:3px solid var(--primary);background:#fff;transition:transform .6s ease}
.s1{left:0;top:0;background:var(--alt)!important;transform:rotate(-6deg)}.s2{left:14px;top:10px;background:#e4f5ee!important}
.s3{left:28px;top:22px;padding:10px;display:grid;gap:6px;align-content:start;border-color:var(--accent-dark)!important}
.s3 b{height:10px;width:55%;background:var(--accent);border-radius:3px}.s3 i{height:5px;background:#9db8d0;border-radius:3px}
.reveal.in .s1{transform:rotate(-12deg) translateX(-8px)}.reveal.in .s2{transform:rotate(-3deg)}

.meet{background:#0f2233;border:0;padding:1rem;position:relative}
.live{display:inline-flex;align-items:center;gap:.4rem;background:rgba(255,255,255,.12);color:#fff;border-radius:999px;padding:.2rem .7rem;font-size:.8rem;font-weight:700;margin-bottom:.8rem}
.live i{width:8px;height:8px;border-radius:50%;background:#ff5a5f;animation:pulse 1.4s infinite}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.t{aspect-ratio:16/10;border-radius:10px;display:grid;place-items:center}
.t b{width:2.6rem;height:2.6rem;border-radius:50%;background:rgba(255,255,255,.88);display:grid;place-items:center;color:var(--primary-dark)}
.t1{background:linear-gradient(135deg,#0667b0,#2f8fd8)}.t2{background:linear-gradient(135deg,#31b485,#1d8a63)}.t3{background:linear-gradient(135deg,#6b5bd6,#8f84ec)}.t4{background:linear-gradient(135deg,#f0a13b,#f6c36a)}
.t2{animation:speak 3s ease-in-out infinite}
.toolbar{display:flex;justify-content:center;gap:.7rem;margin-top:.9rem}
.toolbar i{width:2.2rem;height:2.2rem;border-radius:50%;background:rgba(255,255,255,.16)}
.toolbar .end{background:#e5484d}

.roles ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}
.roles li{background:var(--alt);border:1px solid var(--line);border-radius:999px;padding:.5rem 1.1rem;font-weight:600;color:var(--primary-dark)}
.js .roles li{opacity:0;transform:scale(.8);transition:all .5s cubic-bezier(.3,1.5,.5,1) calc(.2s + var(--i) * .12s)}
.js .reveal.in .roles li{opacity:1;transform:none}
@media (max-width:480px){.flow-row{gap:.2rem}.node svg{width:40px}.node{font-size:.8rem}}

@keyframes float{50%{transform:translateY(-10px)}}
@keyframes drift{to{transform:translate(40px,30px) scale(1.15)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes blink{0%,100%{opacity:.25}50%{opacity:1}}
@keyframes pulse{50%{opacity:.35;transform:scale(1.4)}}
@keyframes speak{50%{box-shadow:0 0 0 4px rgba(255,255,255,.55)}}
@keyframes pagein{from{opacity:0}to{opacity:1}}

@media (prefers-reduced-motion:reduce){
  .js .reveal,.js .stagger>*,.js .outputs li,.js .bubble,.js .roles li{opacity:1!important;transform:none!important;transition:none!important}
  .js .fill{width:var(--w);transition:none}
  .float,.hero::before,.hero::after,.node.ai svg,.arrow i,.live i,.t2,body{animation:none!important}
  .connected .card::after{transform:none!important;transition:none!important}
}
@media (min-width:1180px){.bar{flex-wrap:nowrap}.nav a{white-space:nowrap}}

/* ===== percorso interattivo (home) ===== */
.demo{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:0 12px 36px rgba(22,34,46,.08);overflow:hidden}
.demo-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}
@media (min-width:640px){.demo-tabs{grid-template-columns:repeat(4,1fr)}}
.demo-tab{position:relative;display:flex;align-items:center;gap:.5rem;padding:.8rem .75rem;border:0;background:var(--alt);font:inherit;font-size:.88rem;font-weight:600;color:var(--muted);cursor:pointer;text-align:left;transition:background .25s,color .25s}
.demo-tab:hover{background:#fff;color:var(--ink)}
.demo-tab .n{flex:none;display:grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:50%;background:#cfdbe6;color:#fff;font-size:.8rem;transition:background .25s,transform .25s}
.demo-tab[aria-selected=true]{background:#fff;color:var(--ink)}
.demo-tab[aria-selected=true] .n{background:var(--primary);transform:scale(1.12)}
.demo-tab .prog{position:absolute;left:0;bottom:0;height:3px;width:0;background:var(--accent)}
.demo-tab[aria-selected=true] .prog{width:100%;animation:prog var(--dur,3s) linear}
.demo.manual .demo-tab .prog,.demo.paused .demo-tab[aria-selected=true] .prog{animation-play-state:paused}
.demo.manual .demo-tab[aria-selected=true] .prog{animation:none;width:100%;background:var(--primary)}
.demo-stage{min-height:300px;padding:1.4rem}
.demo-panel{animation:panelin .3s ease both}
.demo-panel[hidden]{display:none}
.js .demo-panel:not(.active){display:none}
.demo:not(.is-js) .demo-panel{margin-bottom:1.5rem}
.demo-foot{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 1.2rem;border-top:1px solid var(--line);font-size:.85rem;color:var(--muted)}
.demo-foot em{font-style:normal}
.pause{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.3rem .9rem;font:inherit;font-size:.85rem;cursor:pointer;transition:background .2s}
.pause:hover{background:var(--alt)}

/* 1 */
.dropzone{border:2px dashed #9db8d0;border-radius:12px;padding:1.4rem;text-align:center;color:var(--muted);background:var(--alt);display:grid;gap:.9rem;justify-items:center}
.file{display:inline-flex;gap:.5rem;align-items:center;background:#fff;border:1px solid var(--line);border-radius:10px;padding:.5rem .9rem;font-weight:600;color:var(--primary-dark);animation:drop .4s cubic-bezier(.3,1.4,.5,1) .15s both}
.scan{margin-top:1.2rem}
.scan-bar{height:8px;background:var(--alt);border-radius:99px;overflow:hidden}
.scan-bar i{display:block;height:100%;width:100%;background:var(--accent);transform-origin:left;animation:fillx 1.1s ease .45s both}
.scan p{margin:.6rem 0 0;font-weight:600}
.scan-a{animation:fadeout .2s ease 1.5s both}
.scan-b{color:var(--accent-dark);opacity:0;animation:fadein .2s ease 1.55s both;margin-top:-1.7rem!important}
/* 2 */
.opt-row{display:grid;gap:.4rem;margin-bottom:.9rem}
@media (min-width:560px){.opt-row{grid-template-columns:150px 1fr;align-items:center}}
.opt-row>span{font-weight:700;font-size:.9rem}
.opts{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:.35rem .95rem;font:inherit;font-size:.9rem;cursor:pointer;transition:all .2s}
.chip:hover{border-color:var(--primary)}
.chip[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:#fff}
.sw{width:2rem;height:2rem;border-radius:50%;border:3px solid #fff;background:var(--c);box-shadow:0 0 0 1.5px var(--line);cursor:pointer;transition:transform .2s,box-shadow .2s}
.sw:hover{transform:scale(1.12)}
.sw[aria-pressed=true]{box-shadow:0 0 0 3px var(--c);transform:scale(1.12)}
.avatar-line{display:flex;align-items:center;gap:.8rem;font-weight:600;margin-top:1rem}
.avatar{width:2.6rem;height:2.6rem;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--accent));display:grid;place-items:center;animation:speak 2s infinite}
.avatar i{width:1rem;height:.5rem;border-bottom:3px solid #fff;border-radius:0 0 1rem 1rem;animation:talk .5s infinite alternate}
/* 3 */
.gen-title{font-weight:700;margin:0 0 1rem}
.gen{list-style:none;margin:0;padding:0;display:grid;gap:.9rem}
.gen li{display:grid;grid-template-columns:130px 1fr 70px;align-items:center;gap:.8rem;font-size:.92rem}
.gname{font-weight:600}
.gbar{height:10px;background:var(--alt);border-radius:99px;overflow:hidden}
.gbar i{display:block;height:100%;background:var(--primary);border-radius:99px;transform-origin:left;animation:fillx .6s ease calc(.15s + var(--i) * .45s) both}
.gok{color:var(--accent-dark);font-weight:700;opacity:0;animation:fadein .2s ease calc(.7s + var(--i) * .45s) both}
@media (max-width:480px){.gen li{grid-template-columns:1fr 70px}.gname{grid-column:1/-1}}
/* 4 */
.course-card{display:grid;border:1px solid var(--line);border-radius:14px;overflow:hidden}
@media (min-width:560px){.course-card{grid-template-columns:170px 1fr}}
.thumb{background:linear-gradient(135deg,var(--primary),var(--accent));display:grid;place-items:center;min-height:120px;animation:float 5s ease-in-out infinite}
.cc-body{padding:1.1rem 1.3rem}
.cc-ready{color:var(--accent-dark);font-weight:700;font-size:.85rem;margin:0 0 .2rem}
.cc-body h4{margin:0 0 .6rem;font-size:1.2rem}
.tags{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 1rem;padding:0}
.tags li{background:var(--alt);border-radius:99px;padding:.15rem .7rem;font-size:.82rem;font-weight:600;color:var(--primary-dark)}
.publish[disabled]{background:var(--accent-dark);border-color:var(--accent-dark);opacity:1;cursor:default;transform:none;box-shadow:none}
.pub-ok{margin:.6rem 0 0;font-weight:700;color:var(--accent-dark);min-height:1.4em}

@keyframes prog{from{width:0}to{width:100%}}
@keyframes panelin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes drop{from{opacity:0;transform:translateY(-30px) scale(.9)}to{opacity:1;transform:none}}
@keyframes fillx{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes fadein{from{opacity:0}to{opacity:1}}
@keyframes fadeout{to{opacity:0}}
@keyframes talk{to{height:.15rem}}
@media (prefers-reduced-motion:reduce){
  .demo-panel,.file,.scan-bar i,.gbar i,.gok,.scan-b,.avatar,.avatar i,.thumb{animation:none!important;opacity:1!important}
  .scan-a{display:none}
  .demo-tab[aria-selected=true] .prog{animation:none;width:100%}
}
@media (min-width:1180px){.nav a{padding:.5rem .4rem;font-size:.94rem}.nav,.nav.open{gap:.3rem}}

/* ==========================================================================
   Tema "moderno SaaS": titoli grandi, schede pastello, card con bordo,
   fascia numeri scura, forme geometriche dietro le immagini.
   ========================================================================== */
:root{--ink:#151824;--text:#3d3e47;--muted:#555b66;--line:#dde0e5;--alt:#f6f7f9;--navy:#151824;--tint-blue:#dcecf8;--tint-green:#def4ea}
body{color:var(--text)}
h1,h2,h3{color:var(--ink);letter-spacing:-.02em}
h1{font-weight:700}
h2{font-weight:700}
.center{text-align:center}
.lead{color:var(--text)}

/* barra superiore + header */
.topbar{background:var(--alt);font-size:.8rem;border-bottom:1px solid var(--line)}
.topbar .container{display:flex;justify-content:flex-end;gap:1.5rem;padding:.4rem 0}
.topbar a{color:var(--text);text-decoration:none}
.topbar a:hover{color:var(--primary)}
@media (max-width:1179px){.topbar{display:none}}
.site-header{background:rgba(255,255,255,.97)}
.nav a{font-weight:500;color:var(--ink)}

/* pulsanti */
.btn{border-radius:10px;padding:.8rem 1.5rem}
.btn-accent{background:var(--accent-dark);border-color:var(--accent-dark)}
.btn-accent:hover{background:#0a6143;border-color:#0a6143;box-shadow:0 8px 20px rgba(13,123,84,.3)}
.btn-ghost{border-color:var(--ink);color:var(--ink);border-radius:999px}
.btn-ghost:hover{background:var(--ink);border-color:var(--ink);color:#fff;box-shadow:none}
.link-arrow{color:var(--ink);font-weight:600;text-decoration:underline;text-underline-offset:4px;align-self:center}
.link-arrow span{display:inline-block;transition:transform .25s}
.link-arrow:hover span{transform:translateX(5px)}
.more{display:inline-flex;align-items:center;justify-content:center;min-width:3.4rem;height:2.4rem;border:1.5px solid var(--ink);border-radius:999px;padding:0 1rem;color:var(--ink);text-decoration:none;font-weight:700;transition:background .25s,color .25s}
.more:hover{background:var(--ink);color:#fff;text-decoration:none}

/* hero */
.hero{background:#fff}
.hero::before,.hero::after{display:none}
.hero-center{padding:clamp(2.5rem,6vw,4.5rem) 0 clamp(2rem,5vw,3.5rem);text-align:center}
.hero-center h1{max-width:20ch;margin-inline:auto;font-size:clamp(2.1rem,5vw,3.6rem)}
.hero-center .lead{max-width:60ch;margin-inline:auto}
.hero-cards{display:grid;gap:1.5rem;margin-top:2.5rem;text-align:left}
@media (min-width:900px){.hero-cards{grid-template-columns:1fr 1fr}}
.pcard{display:flex;flex-direction:column;border-radius:28px;padding:clamp(1.5rem,3vw,2.4rem) clamp(1.5rem,3vw,2.4rem) 0;overflow:hidden;min-height:540px}
.pcard.blue{background:var(--tint-blue)}
.pcard.green{background:var(--tint-green)}
.pcard h2{font-size:clamp(1.5rem,2.6vw,2.1rem);font-weight:500;line-height:1.25;max-width:20ch;margin-bottom:1.4rem}
.pcard .actions{margin:0 0 1.5rem}
.pcard .pshot{border-radius:18px 18px 0 0;box-shadow:0 -6px 40px rgba(6,103,176,.12);display:block;width:100%;height:auto;margin-top:auto;transition:transform .5s ease}
.pcard:hover .pshot{transform:translateY(-8px)}

/* striscia prodotti */
.strip{padding:1.5rem 0 3rem}
.strip-title{text-align:center;color:var(--muted);font-weight:600;margin-bottom:1.5rem}
.strip-logos{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1.5rem 3rem}
.strip-logos .plogo{margin:0;filter:grayscale(1);opacity:.65;transition:filter .3s,opacity .3s,transform .3s}
.strip-logos li:hover .plogo{filter:none;opacity:1;transform:scale(1.06)}

/* card e griglie di funzioni con icona */
.card{border-radius:20px;border:1px solid var(--line)}
.card p{color:var(--text)}
.cards.three .card{display:flex;flex-direction:column;gap:.3rem;padding:1.8rem}
.cards.three .card .more{align-self:flex-start;margin-top:auto}
.feature-grid{display:grid;gap:1.25rem;margin-top:2.2rem}
@media (min-width:760px){.feature-grid{grid-template-columns:1fr 1fr}}
.fcard{display:flex;gap:1.3rem;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:20px;padding:2rem;transition:transform .3s,box-shadow .3s,border-color .3s}
.alt .fcard{background:#fff}
.fcard:hover{transform:translateY(-5px);box-shadow:0 16px 36px rgba(22,34,46,.1);border-color:var(--primary)}
.fcard .ico{flex:none;color:var(--primary);transition:transform .4s}
.fcard:hover .ico{transform:scale(1.12) rotate(-6deg)}
.fcard h3{margin-bottom:.4rem}
.fcard p{margin:0}
.js .fcard.reveal.in{transition:opacity .8s cubic-bezier(.2,.7,.2,1) var(--d,0s),transform .3s,box-shadow .3s,border-color .3s}

/* numeri: schede chiare e colorate */
.stats{position:relative;background:linear-gradient(180deg,#f5f9fe 0%,#fff 100%);color:var(--ink);border:0;padding:clamp(3rem,6vw,5rem) 0}
.stats h2{margin-bottom:2rem}
.stats dl{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));text-align:left;gap:1.25rem}
.stats dl>div{--bg-c:#e3f0fb;--fg-c:#0667b0;position:relative;overflow:hidden;border:0;border-radius:28px;padding:1.7rem 1.5rem 1.5rem;min-height:170px;background:var(--bg-c);transition:transform .35s ease,box-shadow .35s ease}
.stats dl>div:nth-child(2){--bg-c:#dff4ea;--fg-c:#0d7b54}
.stats dl>div:nth-child(3){--bg-c:#ece8fb;--fg-c:#5b4bc4}
.stats dl>div:nth-child(4){--bg-c:#fdf0dc;--fg-c:#a15c00}
.stats dl>div::after{content:"";position:absolute;right:-34px;top:-34px;width:130px;height:130px;border-radius:50%;background:var(--fg-c);opacity:.09;transition:transform .5s ease}
.stats dl>div::before{content:"";position:absolute;right:26px;top:26px;width:14px;height:14px;border-radius:50%;background:var(--fg-c);opacity:.35}
.stats dl>div:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(22,34,46,.12);background:var(--bg-c)}
.stats dl>div:hover::after{transform:scale(1.5)}
.stats dd{color:var(--fg-c);font-weight:800;font-size:clamp(2.2rem,3.3vw,3rem);line-height:1;letter-spacing:-.035em;position:relative;z-index:1;white-space:nowrap}
.stats dt{color:var(--ink);font-size:1rem;font-weight:500;margin-top:.7rem;max-width:18ch;position:relative;z-index:1}

/* immagini hero delle pagine interne su forme geometriche */
.hero-grid .hero-media{position:relative;isolation:isolate}
.hero-grid .hero-media::before,.hero-grid .hero-media::after{content:"";position:absolute;z-index:-1;border-radius:28px;animation:shape 16s ease-in-out infinite alternate}
.hero-grid .hero-media::before{width:60%;aspect-ratio:1;top:-6%;right:-3%;background:linear-gradient(135deg,var(--primary),#6b5bd6);--r:18deg;transform:rotate(var(--r))}
.hero-grid .hero-media::after{width:34%;aspect-ratio:1;bottom:-6%;left:2%;background:var(--accent);--r:-14deg;transform:rotate(var(--r));animation-delay:-8s}
.hero-grid .hero-media img{position:relative}
@keyframes shape{to{transform:rotate(calc(var(--r) + 8deg)) translate(10px,-8px)}}
@media (prefers-reduced-motion:reduce){.hero-grid .hero-media::before,.hero-grid .hero-media::after{animation:none}}

/* CTA finale e footer */
.final-cta{background:var(--primary)}
.site-footer{background:var(--navy)}
.demo{border-radius:20px}
.chips li{background:#fff;border-radius:999px}
.alt .chips li{background:#fff}
.plogo{align-self:flex-start;max-width:none}
.strip-logos .plogo{align-self:auto}

/* ===== video iniziale (home) ===== */
.video-hero{margin:clamp(1.5rem,4vw,2.5rem) auto clamp(2rem,5vw,3.5rem)}
.video-frame{position:relative;aspect-ratio:16/9;max-height:72vh;width:100%;margin-inline:auto;border-radius:28px;overflow:hidden;background:var(--navy);box-shadow:0 24px 60px rgba(21,24,36,.2)}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-toggle{position:absolute;right:1rem;bottom:1rem;border:0;border-radius:999px;background:rgba(21,24,36,.72);color:#fff;font:inherit;font-size:.85rem;font-weight:600;padding:.45rem 1rem;cursor:pointer;backdrop-filter:blur(4px);transition:background .2s}
.video-toggle:hover{background:rgba(21,24,36,.92)}
.video-fallback{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:4px;z-index:0;opacity:0;transition:opacity .3s}
.video-frame.no-video .video-fallback{opacity:1}
.video-frame iframe,.video-toggle{z-index:1}

/* titolo home: ingresso parola per parola + sottolineatura animata */
.hero-title .w{display:inline-block;opacity:0;transform:translateY(.45em);animation:word-in .7s cubic-bezier(.2,.7,.2,1) calc(.08s + var(--i) * .09s) forwards}
.hero-title .u{background:linear-gradient(var(--accent),var(--accent)) 0 92%/0 .1em no-repeat;animation:word-in .7s cubic-bezier(.2,.7,.2,1) calc(.08s + var(--i) * .09s) forwards,underline-in .9s cubic-bezier(.65,0,.35,1) calc(.08s + var(--i) * .09s + .5s) forwards}
@keyframes word-in{to{opacity:1;transform:none}}
@keyframes underline-in{to{background-size:100% .1em}}
@media (prefers-reduced-motion:reduce){.hero-title .w{opacity:1;transform:none;animation:none}.hero-title .u{background-size:100% .1em;animation:none}}

/* flusso grafico: documenti -> corso -> registro */
.flow-section{overflow:hidden}
.flow-section .lead{max-width:56ch;margin:0 auto 2rem}
.flow2{display:grid;gap:1.5rem;background:#fff;border:1px solid var(--line);border-radius:28px;padding:1.5rem;box-shadow:0 20px 50px rgba(6,103,176,.08)}
.flow2-chaos{display:none}
.flow2-track{position:relative;padding-left:1.5rem}
.flow2-line{position:absolute;left:.35rem;top:.6rem;bottom:.6rem;width:4px;border-radius:4px;background:var(--primary);transform-origin:top;transform:scaleY(0)}
.flow2-steps{list-style:none;margin:0;padding:0;display:grid;gap:1rem}
.flow2-steps li{position:relative;opacity:0;transform:translateY(14px)}
.flow2-steps .dot{position:absolute;left:-1.5rem;top:.9rem;width:.95rem;height:.95rem;margin-left:-.07rem;border-radius:50%;background:#fff;border:3px solid var(--primary);transform:scale(0)}
.flow2-steps .lab{display:flex;flex-direction:column;background:#fff;border-radius:12px;padding:.6rem .9rem;box-shadow:0 6px 20px rgba(21,24,36,.1)}
.flow2-steps .lab b{font-size:1rem}.flow2-steps .lab span{font-size:.88rem;color:var(--muted)}
.flow2-img{display:block;width:100%;height:auto;border-radius:16px;opacity:0;transform:translateX(40px) scale(.96);box-shadow:0 14px 40px rgba(6,103,176,.18)}

.js .flow2.in .flow2-line{animation:flow-grow-y 1.2s cubic-bezier(.65,0,.35,1) .2s forwards}
.js .flow2.in .flow2-steps li{animation:flow-up .6s cubic-bezier(.2,.7,.2,1) calc(.5s + var(--i) * .28s) forwards}
.js .flow2.in .flow2-steps .dot{animation:flow-pop .5s cubic-bezier(.3,1.6,.5,1) calc(.5s + var(--i) * .28s) forwards}
.js .flow2.in .flow2-img{animation:flow-img .9s cubic-bezier(.2,.7,.2,1) 1.4s forwards}
.js .flow2.in .curve{animation:flow-draw 1.1s cubic-bezier(.65,0,.35,1) .1s forwards}
.js .curve{stroke-dasharray:1;stroke-dashoffset:1}
.chaos-icons g{animation:flow-float 5s ease-in-out calc(var(--i) * -1s) infinite}
.js .flow2:not(.in) .chaos-icons g{animation:none}
.flow2-steps .dot{box-shadow:0 0 0 0 rgba(6,103,176,.35)}
.js .flow2.in .flow2-steps .dot{animation:flow-pop .5s cubic-bezier(.3,1.6,.5,1) calc(.5s + var(--i) * .28s) forwards,flow-pulse 2.4s ease-out calc(2s + var(--i) * .4s) infinite}

@media (min-width:900px){
  .flow2{grid-template-columns:200px 1fr minmax(0,.9fr);align-items:center;gap:0;padding:2rem 2rem 2rem 1rem}
  .flow2-chaos{display:block;height:260px}
  .flow2-chaos svg{width:100%;height:100%}
  .flow2-track{height:260px;padding:0 1rem 0 0}
  .flow2-line{left:0;right:0;top:50%;bottom:auto;width:auto;height:4px;margin-top:-2px;transform-origin:left;transform:scaleX(0)}
  .flow2-steps{display:flex;height:100%;gap:0}
  .flow2-steps li{flex:1;transform:translateY(0)}
  .flow2-steps .dot{left:50%;top:50%;margin:-.5rem 0 0 -.5rem;width:1rem;height:1rem}
  .flow2-steps .lab{position:absolute;left:50%;transform:translateX(-50%);width:max-content;max-width:11rem;text-align:center}
  .flow2-steps .lab b{white-space:nowrap}
  .flow2-steps li:nth-child(odd) .lab{bottom:calc(50% + 1.1rem)}
  .flow2-steps li:nth-child(even) .lab{top:calc(50% + 1.1rem)}
  .flow2-steps li{transform:none}
  .js .flow2.in .flow2-line{animation-name:flow-grow-x}
  .flow2-img{margin-left:.5rem}
}
@keyframes flow-grow-y{to{transform:scaleY(1)}}
@keyframes flow-grow-x{to{transform:scaleX(1)}}
@keyframes flow-up{to{opacity:1;transform:none}}
@keyframes flow-pop{to{transform:scale(1)}}
@keyframes flow-img{to{opacity:1;transform:none}}
@keyframes flow-draw{to{stroke-dashoffset:0}}
@keyframes flow-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes flow-pulse{0%{box-shadow:0 0 0 0 rgba(6,103,176,.35)}70%,100%{box-shadow:0 0 0 12px rgba(6,103,176,0)}}
@media (prefers-reduced-motion:reduce){
  .flow2-line{transform:none!important}.flow2-steps li,.flow2-img{opacity:1!important;transform:none!important}
  .flow2-steps .dot{transform:none!important}.curve{stroke-dashoffset:0!important}.chaos-icons g{animation:none!important}.flow2 *{animation:none!important}
}

/* descrizione al passaggio del mouse sui logo della striscia prodotti */
.strip-logos li{position:relative}
.tip-link{display:block;color:inherit;text-decoration:none;border-radius:8px}
.tip{position:absolute;left:50%;top:calc(100% + .9rem);z-index:5;width:max-content;max-width:16rem;padding:.7rem .95rem;border-radius:12px;background:var(--navy,#151824);color:#fff;font-size:.88rem;font-weight:500;line-height:1.4;text-align:center;box-shadow:0 12px 30px rgba(21,24,36,.25);opacity:0;visibility:hidden;transform:translate(-50%,-6px);transition:opacity .2s,transform .2s,visibility .2s;pointer-events:none}
.tip::before{content:"";position:absolute;left:50%;top:-5px;width:10px;height:10px;background:inherit;transform:translateX(-50%) rotate(45deg)}
.tip-link:hover .tip,.tip-link:focus-visible .tip{opacity:1;visibility:visible;transform:translate(-50%,0)}
.tip-link:hover .plogo,.tip-link:focus-visible .plogo{filter:none;opacity:1;transform:scale(1.06)}
@media (prefers-reduced-motion:reduce){.tip{transform:translateX(-50%)!important}}
@media (max-width:640px){.strip-logos{position:relative}.strip-logos li{position:static}.tip{top:calc(100% + .5rem);max-width:min(16rem,calc(100vw - 2rem))}}

/* LMS: infografica orizzontale Gestisci -> Eroga -> Traccia */
.lms-section .lead{max-width:56ch;margin:0 auto 2.5rem}
.lms-flow{display:grid;gap:0;align-items:stretch}
.stage{background:#fff;border:1px solid var(--line);border-radius:22px;padding:1.5rem;box-shadow:0 14px 40px rgba(6,103,176,.08);display:flex;flex-direction:column;transition:transform .3s,box-shadow .3s}
.stage:hover{transform:translateY(-6px);box-shadow:0 22px 50px rgba(6,103,176,.16)}
.stage header{display:flex;align-items:center;gap:.7rem;margin-bottom:.9rem}
.stage .num{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--primary);color:#fff;font-weight:700;font-size:.95rem}
.stage .k{font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.82rem;color:var(--primary)}
.stage h3{font-size:1.25rem;margin-bottom:.4rem}
.stage p{color:var(--muted);font-size:.95rem;margin-bottom:1.2rem}
.viz2{margin-top:auto;background:var(--alt);border-radius:14px;padding:1rem;min-height:195px;display:flex;flex-direction:column;gap:.8rem;justify-content:center}
.blocks,.chan{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.blocks li{display:flex;align-items:center;gap:.6rem;background:#fff;border-radius:10px;padding:.5rem .7rem;font-size:.85rem;box-shadow:0 2px 8px rgba(21,24,36,.06)}
.blocks i{width:1.1rem;height:1.1rem;border-radius:5px;background:var(--primary)}.blocks i.b1{background:var(--accent)}.blocks i.b2{background:#f2a93b}
.blocks em{margin-left:auto;width:2.4rem;height:.4rem;border-radius:4px;background:#d5e0ea}
.xls,.cert{display:inline-flex;align-items:center;gap:.4rem;align-self:flex-start;background:#e3f4ec;color:var(--accent-dark);border-radius:999px;padding:.3rem .75rem;font-size:.82rem;font-weight:600}
.chan{grid-template-columns:repeat(3,1fr);gap:.5rem}
.chan li{display:flex;flex-direction:column;align-items:center;gap:.3rem;background:#fff;color:var(--primary);border-radius:10px;padding:.7rem .3rem;font-size:.8rem;font-weight:600;box-shadow:0 2px 8px rgba(21,24,36,.06)}
.chan li span{color:var(--ink)}
.roles{display:flex;gap:.4rem}.roles span{width:1.7rem;height:1.7rem;border-radius:50%;background:#bcd3e6;border:2px solid #fff;margin-right:-.9rem}
.roles span:nth-child(2){background:#9fdcc3}.roles span:nth-child(3){background:#f6cf8e}.roles span:nth-child(4){background:#c9c3ee}
.track-row{display:flex;align-items:center;gap:1rem}
.bars2{flex:1;display:grid;gap:.55rem}
.bars2 span{display:block;font-size:.8rem;color:var(--muted);margin-bottom:.15rem}
.bars2 div{height:auto}.bars2 i{display:block;height:.55rem;border-radius:6px;background:var(--primary);width:0;max-width:var(--w)}
.bars2 div:nth-child(2) i{background:var(--accent)}.bars2 div:nth-child(3) i{background:#f2a93b}
.bars2 div{background:#dbe6ef;border-radius:6px;overflow:hidden;position:relative}
.bars2 div:first-child{background:none;overflow:visible}.bars2 div:first-child i{background:var(--primary)}
.link{display:none}
.pills{list-style:none;margin:2rem 0 1.5rem;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem}
.pills li{display:inline-flex;align-items:center;gap:.5rem;background:#fff;border:1px solid var(--line);border-radius:999px;padding:.45rem 1rem;font-weight:600;font-size:.92rem}
.pills li::before{content:"";width:.9rem;height:.5rem;border-left:3px solid var(--accent-dark);border-bottom:3px solid var(--accent-dark);transform:rotate(-45deg) translate(1px,-2px)}

/* animazioni: partono con .reveal.in */
.js .lms-flow:not(.in) .stage{opacity:0}
.js .lms-flow.in .stage{animation:lms-up .7s cubic-bezier(.2,.7,.2,1) calc(.2s + var(--i) * .5s) backwards}
.js .lms-flow .blocks li,.js .lms-flow .xls,.js .lms-flow .chan li,.js .lms-flow .roles span,.js .lms-flow .cert{opacity:0;transform:translateX(-14px) scale(.96)}
.js .lms-flow.in .blocks li,.js .lms-flow.in .xls,.js .lms-flow.in .chan li,.js .lms-flow.in .roles span,.js .lms-flow.in .cert{animation:lms-in .5s cubic-bezier(.3,1.4,.5,1) calc(.7s + var(--i,0) * .5s + var(--j,0) * .15s) forwards}
.js .lms-flow .cert{--j:3}
.arc{stroke-dasharray:100;stroke-dashoffset:100}
.js .lms-flow.in .arc{animation:lms-arc 1.4s cubic-bezier(.65,0,.35,1) 1.8s forwards}
.js .lms-flow .bars2 i{width:0}
.js .lms-flow.in .bars2 i{animation:lms-bar 1.2s cubic-bezier(.65,0,.35,1) calc(1.9s + var(--k,0) * .15s) forwards}
.js .lms-flow.in .bars2 div:nth-child(2) i{--k:1}.js .lms-flow.in .bars2 div:nth-child(3) i{--k:2}
@keyframes lms-up{from{opacity:0;transform:translateY(30px)}}
@keyframes lms-in{to{opacity:1;transform:none}}
@keyframes lms-arc{to{stroke-dashoffset:14}}
@keyframes lms-bar{to{width:var(--w)}}
@keyframes lms-flow-x{to{transform:scaleX(1)}}
@keyframes lms-flow-y{to{transform:scaleY(1)}}
@keyframes lms-dash{to{background-position:-20px 0}}

@media (max-width:899px){
  .lms-flow .link{display:block;height:2.2rem;width:4px;margin:0 auto;border-radius:4px;background:linear-gradient(var(--primary),var(--accent));transform-origin:top;transform:scaleY(0)}
  .js .lms-flow.in .link{animation:lms-flow-y .5s ease calc(.6s + var(--i) * .5s) forwards}
}
@media (min-width:900px){
  .lms-flow{grid-template-columns:1fr 3.2rem 1fr 3.2rem 1fr}
  .lms-flow .link{display:block;align-self:center;position:relative;height:4px;margin:0 .3rem;border-radius:4px;background:repeating-linear-gradient(90deg,var(--primary) 0 10px,transparent 10px 20px);background-size:20px 4px;transform-origin:left;transform:scaleX(0)}
  .lms-flow .link::after{content:"";position:absolute;right:-3px;top:-6px;border-left:10px solid var(--accent);border-top:8px solid transparent;border-bottom:8px solid transparent}
  .js .lms-flow.in .link{animation:lms-flow-x .5s ease calc(.6s + var(--i) * .5s) forwards,lms-dash 1s linear 1.5s infinite}
}
@media (prefers-reduced-motion:reduce){
  .lms-flow *{animation:none!important;transition:none!important}
  .js .lms-flow:not(.in) .stage{opacity:1}
  .js .lms-flow .blocks li,.js .lms-flow .xls,.js .lms-flow .chan li,.js .lms-flow .roles span,.js .lms-flow .cert{opacity:1;transform:none}
  .js .lms-flow .link{transform:none}.arc{stroke-dashoffset:14}.js .lms-flow .bars2 i{width:var(--w)}
}
.lms-section .center .plogo{margin-inline:auto}.lms-section>.container>.center:first-child{display:flex;justify-content:center}

/* Riunioni, risposte e presentazioni: card prodotto con mini-animazioni */
.more-grid{display:grid;gap:1.5rem;margin-top:2.5rem}
@media (min-width:900px){.more-grid{grid-template-columns:repeat(3,1fr)}}
.mcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:24px;overflow:hidden;--tint:#fdf0e0;--ac:#e8890c;transition:transform .3s,box-shadow .3s,border-color .3s}
.mcard.m1{--tint:#e6effb;--ac:#2f6fd0}.mcard.m2{--tint:#efe9fb;--ac:#7a52d1}
.mcard:hover{transform:translateY(-8px);box-shadow:0 22px 50px rgba(21,24,36,.14);border-color:var(--ac)}
.js .mcard.reveal.in{transition:opacity .8s cubic-bezier(.2,.7,.2,1) var(--d,0s),transform .3s,box-shadow .3s,border-color .3s}
.mviz{position:relative;height:210px;background:var(--tint);display:flex;flex-direction:column;justify-content:center;gap:.7rem;padding:1.2rem 1.4rem;overflow:hidden}
.mbody{display:flex;flex-direction:column;flex:1;padding:1.4rem 1.5rem 1.6rem}
.mbody h3{font-size:1.2rem;margin:.9rem 0 .4rem}.mbody p{color:var(--muted);font-size:.95rem;margin-bottom:1rem}
.mticks{list-style:none;margin:0 0 1.2rem;padding:0;display:grid;gap:.4rem;font-size:.9rem;font-weight:600}
.mticks li{position:relative;padding-left:1.5rem}
.mticks li::before{content:"";position:absolute;left:0;top:.35em;width:.8rem;height:.45rem;border-left:3px solid var(--ac);border-bottom:3px solid var(--ac);transform:rotate(-45deg)}
.mbody .more{margin-top:auto;color:var(--ac)}

/* meeting */
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;width:100%}
.tile{position:relative;height:62px;border-radius:10px;background:#fff;display:grid;place-items:center;box-shadow:0 3px 10px rgba(21,24,36,.08)}
.tile i{width:26px;height:26px;border-radius:50%;background:#f3c48a}.tile.t1 i{background:#9fc2f0}.tile.t2 i{background:#a5dcc2}.tile.t3 i{background:#cfc4f0}
.tile.speaking{outline:3px solid transparent}
.rec{position:absolute;top:.8rem;right:1rem;display:flex;align-items:center;gap:.35rem;font-size:.72rem;font-weight:700;color:#d23a3a;background:#fff;border-radius:999px;padding:.15rem .55rem}
.rec b{width:.5rem;height:.5rem;border-radius:50%;background:#d23a3a;animation:blink 1.2s infinite}
.att{height:.5rem;border-radius:6px;background:#fff;overflow:hidden}.att span{display:block;height:100%;width:0;background:var(--ac);border-radius:6px}
@keyframes blink{50%{opacity:.25}}
.js .mcard:not(.in) .tile,.js .mcard:not(.in) .rec{opacity:0;transform:scale(.8)}
.js .mcard.in .tile{animation:m-pop .5s cubic-bezier(.3,1.5,.5,1) calc(.4s + var(--k,0) * .12s) backwards}
.tile.t1{--k:1}.tile.t2{--k:2}.tile.t3{--k:3}
.js .mcard.in .tile.speaking{animation:m-pop .5s cubic-bezier(.3,1.5,.5,1) .52s backwards,m-speak 1.8s ease-in-out 1.2s infinite}
.js .mcard.in .att span{animation:m-fill 1.4s cubic-bezier(.65,0,.35,1) 1s forwards}
@keyframes m-pop{from{opacity:0;transform:scale(.8)}}
@keyframes m-speak{0%,100%{outline-color:transparent}50%{outline-color:var(--ac)}}
@keyframes m-fill{to{width:var(--w,92%)}}
.att span{--w:92%}

/* answer */
.chat2{display:grid;gap:.5rem}
.chat2 p{margin:0;border-radius:14px;padding:.55rem .8rem;font-size:.82rem;line-height:1.35;max-width:88%}
.chat2 .q{justify-self:end;background:var(--ac);color:#fff;border-bottom-right-radius:4px}
.chat2 .a,.chat2 .typing{background:#fff;color:var(--ink);border-bottom-left-radius:4px;box-shadow:0 3px 10px rgba(21,24,36,.08)}
.chat2 .typing{width:3.2rem;display:flex;gap:.25rem;justify-content:center;padding:.65rem}
.chat2 .typing i{width:.4rem;height:.4rem;border-radius:50%;background:#9aa7b6;animation:m-dot 1s infinite}
.chat2 .typing i:nth-child(2){animation-delay:.15s}.chat2 .typing i:nth-child(3){animation-delay:.3s}
.src{display:inline-flex;align-items:center;gap:.25rem;margin-top:.4rem;background:var(--tint);color:var(--ac);border-radius:999px;padding:.1rem .5rem;font-size:.72rem;font-weight:700}
.chat2 .a{display:flex;flex-direction:column;align-items:flex-start}
.js .mcard:not(.in) .chat2 p{opacity:0}
.js .mcard.in .chat2 .q{animation:m-msg .5s ease .4s backwards}
.js .mcard.in .chat2 .typing{animation:m-msg .3s ease .9s backwards,m-hide .01s linear 2s forwards;position:relative}
.js .mcard.in .chat2 .a{animation:m-msg .5s ease 2s backwards}
.chat2 .typing{grid-area:2/1}.chat2 .a{grid-area:2/1}
@keyframes m-dot{50%{transform:translateY(-4px);opacity:.5}}
@keyframes m-msg{from{opacity:0;transform:translateY(10px)}}
@keyframes m-hide{to{opacity:0;visibility:hidden;height:0;padding:0}}

/* slides */
.deck{position:relative;height:110px;margin:0 auto;width:min(100%,210px)}
.sl{position:absolute;inset:0;background:#fff;border-radius:10px;box-shadow:0 6px 18px rgba(21,24,36,.12);padding:.7rem .8rem;transform-origin:bottom center}
.sl.s2{transform:rotate(-7deg) translateX(-14px);opacity:.6}.sl.s1{transform:rotate(4deg) translateX(10px);opacity:.8}
.sl i{display:block;height:.45rem;border-radius:4px;background:#d9d0f0;margin-bottom:.4rem}.sl i.h{width:60%;height:.6rem;background:var(--ac)}.sl i.short{width:45%}
.sl em{position:absolute;right:.8rem;bottom:.7rem;display:flex;align-items:flex-end;gap:.25rem;height:36px}
.sl u{display:block;width:.5rem;background:var(--ac);border-radius:3px 3px 0 0;height:var(--hh,60%);opacity:.8}.sl u:nth-child(1){--hh:40%}.sl u:nth-child(2){--hh:75%}.sl u:nth-child(3){--hh:100%}
.script{display:flex;align-items:center;gap:.5rem;background:#fff;border-radius:10px;padding:.4rem .7rem;box-shadow:0 3px 10px rgba(21,24,36,.08)}
.script b{font-size:.72rem;color:var(--ac);text-transform:uppercase;letter-spacing:.05em}
.script i{flex:1;height:.4rem;border-radius:4px;background:#ddd6f0;position:relative;overflow:hidden}
.script i::after{content:"";position:absolute;inset:0;background:var(--ac);transform-origin:left;transform:scaleX(0)}
.js .mcard:not(.in) .sl,.js .mcard:not(.in) .script{opacity:0}
.js .mcard.in .sl.s0{animation:m-pop .6s cubic-bezier(.3,1.3,.5,1) .3s backwards}
.js .mcard.in .sl.s1{animation:m-deal1 .8s cubic-bezier(.2,.8,.3,1) .6s backwards}
.js .mcard.in .sl.s2{animation:m-deal2 .8s cubic-bezier(.2,.8,.3,1) .8s backwards}
.js .mcard.in .script{animation:m-msg .5s ease 1.2s backwards}
.js .mcard.in .script i::after{animation:m-read 2.6s linear 1.6s infinite}
@keyframes m-deal1{from{transform:none;opacity:0}}
@keyframes m-deal2{from{transform:none;opacity:0}}
@keyframes m-read{0%{transform:scaleX(0)}80%,100%{transform:scaleX(1)}}

@media (prefers-reduced-motion:reduce){
  .mcard *{animation:none!important}.js .mcard:not(.in) .tile,.js .mcard:not(.in) .rec,.js .mcard:not(.in) .chat2 p,.js .mcard:not(.in) .sl,.js .mcard:not(.in) .script{opacity:1;transform:none}
  .chat2 .typing{display:none}.att span{width:92%}
}

/* Una piattaforma che si adatta a te: 4 colonne con filetto animato */
.plus-grid{display:grid;gap:2rem 2.5rem;margin-top:2.5rem}
@media (min-width:640px){.plus-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.plus-grid{grid-template-columns:repeat(4,1fr)}}
.plus{position:relative;padding-top:1.4rem}
.plus::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;border-radius:3px;background:var(--ink);transform-origin:left;transform:scaleX(0);transition:transform .9s cubic-bezier(.65,0,.35,1) calc(var(--d,0s) + .2s),background .3s}
.plus.in::before,html:not(.js) .plus::before{transform:scaleX(1)}
.plus:hover::before{background:var(--accent)}
.plus h3{font-size:1.15rem;margin-bottom:.6rem;transition:color .3s}
.plus:hover h3{color:var(--primary)}
.plus p{color:var(--muted);font-size:.95rem;margin:0}
@media (prefers-reduced-motion:reduce){.plus::before{transform:scaleX(1);transition:none}}

/* Per aziende e enti di formazione */
.aud-grid{display:grid;gap:1.5rem;margin-top:2.5rem;align-items:stretch}
@media (min-width:900px){.aud-grid{grid-template-columns:1fr 1fr;gap:2rem}}
.aud-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:28px;padding:clamp(1.5rem,3vw,2.4rem);box-shadow:0 14px 40px rgba(21,24,36,.06);transition:box-shadow .3s,transform .3s}
.aud-card:hover{box-shadow:0 24px 56px rgba(6,103,176,.16)}
.js .aud-card.reveal{transform:translateX(-40px)}.js .aud-card.reveal.from-r{transform:translateX(40px)}
.js .aud-card.reveal.in{transform:none}
@media (max-width:899px){.js .aud-card.reveal,.js .aud-card.reveal.from-r{transform:translateY(26px)}}
.aud-card h3{font-size:clamp(1.8rem,3.2vw,2.4rem);margin-bottom:.8rem}
.aud-lead{color:var(--muted);max-width:40ch}
.aud-price{margin:1.4rem 0 1.2rem;color:var(--ink)}
.aud-price strong{font-size:2.2rem;line-height:1;color:var(--primary);margin:0 .15rem}
.aud-rows{margin:0 0 1.8rem;border-top:3px solid var(--ink);flex:1}
.aud-rows>div{display:grid;gap:.25rem 1.5rem;padding:1rem 0;border-bottom:1px solid var(--line)}
@media (min-width:560px){.aud-rows>div{grid-template-columns:9rem 1fr}}
.aud-rows dt{font-weight:700;color:var(--ink)}.aud-rows dd{margin:0;color:var(--muted);font-size:.95rem}
.js .aud-card .aud-rows{border-top-color:transparent;position:relative}
.js .aud-card .aud-rows::before{content:"";position:absolute;left:0;right:0;top:-3px;height:3px;background:var(--ink);transform-origin:left;transform:scaleX(0)}
.js .aud-card.in .aud-rows::before{animation:aud-line .9s cubic-bezier(.65,0,.35,1) calc(var(--d,0s) + .4s) forwards}
.js .aud-card .aud-rows>div{opacity:0;transform:translateY(10px)}
.js .aud-card.in .aud-rows>div{animation:flow-up .5s ease calc(var(--d,0s) + .7s + var(--r) * .15s) forwards}
.aud-card .btn{align-self:flex-start}
@keyframes aud-line{to{transform:scaleX(1)}}
@media (prefers-reduced-motion:reduce){.js .aud-card .aud-rows>div{opacity:1;transform:none;animation:none!important}.js .aud-card .aud-rows::before{transform:scaleX(1);animation:none!important}.js .aud-card.reveal{transform:none}}
.mbody .more{align-self:flex-start;gap:.5rem;border-color:var(--ac)}.mbody .more:hover{background:var(--ac);color:#fff}

/* Comincia dal piano Free */
.free-head{display:grid;gap:1rem 3rem;align-items:end;margin-bottom:2rem}
@media (min-width:900px){.free-head{grid-template-columns:1.1fr 1fr}}
.free-head h2{margin:0;font-size:clamp(2rem,4.5vw,3.4rem)}.free-head .lead{margin:0;font-size:1.05rem}
.free-photo{border-radius:28px;overflow:hidden;aspect-ratio:21/9;box-shadow:0 20px 50px rgba(21,24,36,.14)}
.free-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 38%;display:block;transform:scale(1.12);transition:transform 1.8s cubic-bezier(.2,.7,.2,1)}
.free-photo.in img{transform:scale(1)}
.free-steps{list-style:none;margin:0;padding:0 clamp(0rem,2vw,1.5rem);display:grid;gap:1.25rem;position:relative}
@media (min-width:900px){.free-steps{grid-template-columns:repeat(3,1fr);gap:2.5rem;margin-top:-4.5rem;margin-bottom:2rem}}
@media (max-width:899px){.free-steps{margin-top:1.5rem;margin-bottom:1.5rem}}
.free-steps li{position:relative;background:#fff;border-radius:20px;padding:1.5rem;box-shadow:0 14px 40px rgba(21,24,36,.12);transition:transform .3s,box-shadow .3s}
.free-steps li:hover{transform:translateY(-6px);box-shadow:0 22px 50px rgba(6,103,176,.2)}
.free-steps .num{display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:50%;background:var(--primary);color:#fff;font-weight:700;margin-bottom:1rem}
.free-steps h3{font-size:1.25rem;margin-bottom:.4rem}.free-steps p{color:var(--muted);font-size:.95rem;margin:0}
@media (min-width:900px){
  .free-steps li:not(:last-child)::after{content:"";position:absolute;top:2.7rem;left:100%;width:2.5rem;height:3px;background:var(--primary);transform-origin:left;transform:scaleX(0);transition:transform .6s ease calc(var(--d,0s) + .6s)}
  .free-steps li.in:not(:last-child)::after{transform:scaleX(1)}
}
.js .free-steps li.reveal.in{transition:opacity .8s cubic-bezier(.2,.7,.2,1) var(--d,0s),transform .3s,box-shadow .3s}
@media (prefers-reduced-motion:reduce){.free-photo img{transform:none;transition:none}.free-steps li::after{transform:scaleX(1)!important}}

/* FAQ */
.faq-wrap{max-width:820px}
.faq-list{margin-top:2rem;display:grid;gap:.75rem}
.faq{background:#fff;border:1px solid var(--line);border-radius:16px;transition:border-color .25s,box-shadow .25s}
.faq:hover{border-color:var(--primary)}
.faq[open]{border-color:var(--primary);box-shadow:0 10px 30px rgba(6,103,176,.1)}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.3rem;font-weight:700;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary:focus-visible{outline:3px solid var(--primary);outline-offset:2px;border-radius:16px}
.pm{position:relative;flex:none;width:1.6rem;height:1.6rem;border-radius:50%;background:var(--alt);transition:background .25s,transform .35s}
.pm::before,.pm::after{content:"";position:absolute;left:50%;top:50%;width:.7rem;height:2px;background:var(--primary);transform:translate(-50%,-50%);transition:transform .35s,background .25s}
.pm::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq[open] .pm{background:var(--primary);transform:rotate(180deg)}
.faq[open] .pm::before,.faq[open] .pm::after{background:#fff}
.faq[open] .pm::after{transform:translate(-50%,-50%) rotate(0)}
.faq-a{display:grid;grid-template-rows:1fr}
.faq[open] .faq-a{animation:faq-open .35s ease}
@keyframes faq-open{from{grid-template-rows:0fr;opacity:0}to{grid-template-rows:1fr;opacity:1}}
.faq-a>div{overflow:hidden}
.faq-a p{margin:0;padding:0 1.3rem 1.2rem;color:var(--muted)}
@media (prefers-reduced-motion:reduce){.faq[open] .faq-a{animation:none}.pm,.pm::before,.pm::after{transition:none}}

/* LMS: funzioni più apprezzate (righe alternate con immagine) */
.feat-list{display:grid;gap:clamp(2.5rem,6vw,4.5rem);margin-top:2.5rem}
.feat{display:grid;gap:1.5rem;align-items:center}
@media (min-width:860px){.feat{grid-template-columns:1.15fr 1fr;gap:3.5rem}.feat.rev .feat-img{order:2}}
.feat-img{position:relative;border-radius:26px;overflow:hidden;box-shadow:0 22px 56px rgba(6,103,176,.16);background:#e6effb;aspect-ratio:3/2}
.feat-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.feat:hover .feat-img img{transform:scale(1.05)}
.feat-text{position:relative}
.feat-ico{display:grid;place-items:center;width:3.6rem;height:3.6rem;border-radius:18px;background:var(--tint-blue);color:var(--primary);margin-bottom:1rem}
.feat-ico .ico{width:1.9rem;height:1.9rem}
.feat-n{position:absolute;right:0;top:-.6rem;font-size:5rem;font-weight:800;line-height:1;color:rgba(6,103,176,.08)}
.feat-text h3{font-size:clamp(1.4rem,2.6vw,1.9rem);margin-bottom:.6rem}
.feat-text p{color:var(--muted);font-size:1.05rem;max-width:38ch}
.js .feat.reveal{transform:none}
.js .feat:not(.in) .feat-img{opacity:0;transform:translateX(-70px) scale(.94)}
.js .feat.rev:not(.in) .feat-img{transform:translateX(70px) scale(.94)}
.js .feat:not(.in) .feat-text>*{opacity:0;transform:translateY(18px)}
.js .feat .feat-img{transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.js .feat .feat-text>*{transition:opacity .6s ease,transform .6s ease}
.js .feat.in .feat-text>:nth-child(1){transition-delay:.35s}.js .feat.in .feat-text>:nth-child(2){transition-delay:.45s}
.js .feat.in .feat-text>:nth-child(3){transition-delay:.55s}.js .feat.in .feat-text>:nth-child(4){transition-delay:.65s}
.js .feat.in .feat-ico{animation:feat-pop .6s cubic-bezier(.3,1.5,.5,1) .35s backwards}
@keyframes feat-pop{from{transform:scale(0) rotate(-20deg)}}
@media (prefers-reduced-motion:reduce){.js .feat:not(.in) .feat-img,.js .feat:not(.in) .feat-text>*{opacity:1;transform:none}.feat-ico{animation:none!important}}


/* LMS: cosa puoi fare (card con immagine piccola) */
.uses-cards{list-style:none;margin:2.5rem 0 0;padding:0;display:grid;gap:1.25rem}
@media (min-width:560px){.uses-cards{grid-template-columns:repeat(2,1fr)}}
@media (min-width:960px){.uses-cards{grid-template-columns:repeat(3,1fr);gap:1.5rem}}
.ucard{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;transition:transform .35s,box-shadow .35s,border-color .35s}
.ucard:hover{transform:translateY(-6px);box-shadow:0 20px 44px rgba(6,103,176,.16);border-color:var(--primary)}
.uimg{aspect-ratio:3/2;overflow:hidden;background:var(--tint-blue)}
.uimg img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.ucard:hover .uimg img{transform:scale(1.08)}
.umedia{position:relative}
.ucard .ui{position:absolute;left:1.1rem;bottom:-1.4rem;display:grid;place-items:center;width:2.8rem;height:2.8rem;border-radius:14px;background:#fff;color:var(--accent-dark);box-shadow:0 8px 20px rgba(21,24,36,.18);transition:background .3s,color .3s,transform .4s}
.ucard:hover .ui{background:var(--accent-dark);color:#fff;transform:rotate(-8deg) scale(1.08)}
.ucard p{margin:0;padding:1.9rem 1.2rem 1.3rem;font-weight:600;line-height:1.45;color:var(--ink)}
.js .ucard.reveal.in{transition:opacity .8s cubic-bezier(.2,.7,.2,1) var(--d,0s),transform .35s,box-shadow .35s,border-color .35s}
.js .ucard .uimg{clip-path:inset(0 100% 0 0)}
.js .ucard.in .uimg{animation:u-wipe .9s cubic-bezier(.65,0,.35,1) calc(var(--d,0s) + .25s) forwards}
.js .ucard .ui{opacity:0;transform:scale(0)}
.js .ucard.in .ui{animation:u-pop .5s cubic-bezier(.3,1.5,.5,1) calc(var(--d,0s) + .85s) forwards}
@keyframes u-wipe{to{clip-path:inset(0 0 0 0)}}
@keyframes u-pop{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.js .ucard .uimg{clip-path:none;animation:none!important}.js .ucard .ui{opacity:1;transform:none;animation:none!important}}

[id]{scroll-margin-top:5.5rem}
.meet-sub{font-size:1.1rem;margin:1.8rem 0 .8rem}

/* modulo rapido sopra il video (home) */
.quick-wrap{max-width:960px;margin:1.8rem auto 0;text-align:left}
.quick-form{background:#fff;border:1px solid var(--line);border-radius:18px;padding:.9rem;box-shadow:0 14px 40px rgba(6,103,176,.1);gap:.5rem;transition:box-shadow .3s,border-color .3s}
.quick-form:focus-within{border-color:var(--primary);box-shadow:0 14px 44px rgba(6,103,176,.2)}
.quick-row{display:grid;gap:.6rem}
@media (min-width:860px){.quick-row{grid-template-columns:1fr 1fr 1fr auto;align-items:start}}
.quick-form .field{position:relative}
.quick-form .field input{height:3.1rem;padding:0 1rem;border:1.5px solid #cfd8e2;border-radius:12px;transition:border-color .2s,box-shadow .2s}
.quick-form .field input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px rgba(6,103,176,.15)}
.quick-form .err{position:absolute;left:.2rem;top:100%;margin:.15rem 0 0;font-size:.78rem;white-space:nowrap}
.quick-form .btn{height:3.1rem;padding:0 1.5rem;border-radius:12px;white-space:nowrap}
.quick-form .btn span{display:inline-block;transition:transform .25s}
.quick-form .btn:hover span{transform:translateX(4px)}
.quick-note{margin:.2rem .3rem 0;font-size:.8rem;color:var(--muted)}
.quick-form .status:empty{display:none}.quick-form .status{margin:.2rem .3rem 0;font-size:.9rem}
.quick-form .field.invalid{margin-bottom:.9rem}
@media (min-width:860px){.quick-form .field.invalid{margin-bottom:0}.quick-form:has(.invalid) .quick-note{margin-top:.9rem}}

/* cookie banner */
.cookie-banner{position:fixed;left:50%;bottom:1rem;z-index:1000;width:min(100% - 2rem,960px);transform:translateX(-50%);display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;justify-content:space-between;background:#fff;border:1px solid var(--line);border-radius:18px;padding:1rem 1.25rem;box-shadow:0 20px 60px rgba(21,24,36,.28)}
.cookie-banner[hidden],.cookie-panel[hidden],.cookie-overlay[hidden],.cookie-open[hidden]{display:none}
.cookie-banner.in{animation:cookie-up .55s cubic-bezier(.2,.8,.3,1) both}
@keyframes cookie-up{from{opacity:0;transform:translate(-50%,40px)}}
.cookie-banner p{margin:0;flex:1 1 380px;font-size:.92rem;color:var(--text)}
.cookie-banner a,.cookie-policy a{color:var(--primary);font-weight:600}
.cookie-actions{display:flex;gap:.6rem;flex-wrap:wrap}
.cookie-btn{font:inherit;font-weight:700;font-size:.92rem;padding:.65rem 1.2rem;border-radius:10px;border:2px solid var(--primary);cursor:pointer;transition:background .2s,color .2s,transform .2s}
.cookie-btn.primary{background:var(--primary);color:#fff}.cookie-btn.primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}
.cookie-btn.secondary{background:#fff;color:var(--primary)}.cookie-btn.secondary:hover{background:var(--tint-blue)}
.cookie-btn.ghost{background:none;border-color:transparent;color:var(--muted);text-decoration:underline}.cookie-btn.ghost:hover{color:var(--ink)}
.cookie-btn:focus-visible,.cookie-x:focus-visible,.cookie-open:focus-visible{outline:3px solid var(--primary);outline-offset:2px}
.cookie-open{position:fixed;left:.8rem;bottom:.8rem;z-index:900;font:inherit;font-size:.7rem;font-weight:600;background:#fff;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:.3rem .7rem;cursor:pointer;box-shadow:0 4px 14px rgba(21,24,36,.12);transition:color .2s,border-color .2s}
.cookie-open:hover{color:var(--primary);border-color:var(--primary)}
.cookie-overlay{position:fixed;inset:0;z-index:1001;background:rgba(21,24,36,.55);opacity:0;transition:opacity .25s}
.cookie-overlay.in{opacity:1}
.cookie-panel{position:fixed;left:50%;top:50%;z-index:1002;width:min(100% - 2rem,560px);max-height:calc(100vh - 2rem);overflow:auto;transform:translate(-50%,-46%) scale(.97);opacity:0;background:#fff;border-radius:22px;padding:1.5rem;box-shadow:0 30px 80px rgba(21,24,36,.4);transition:opacity .25s,transform .25s}
.cookie-panel.in{opacity:1;transform:translate(-50%,-50%)}
.cookie-panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}
.cookie-panel h2{font-size:1.4rem;margin:0}
.cookie-x{border:0;background:var(--alt);width:2.2rem;height:2.2rem;border-radius:50%;font-size:1.4rem;line-height:1;cursor:pointer;color:var(--ink)}
.cookie-cat{display:flex;gap:1rem;align-items:center;justify-content:space-between;padding:.9rem 0;border-bottom:1px solid var(--line)}
.cookie-cat h3{font-size:1rem;margin:0 0 .15rem}.cookie-cat p{margin:0;font-size:.88rem;color:var(--muted)}
.cookie-switch{position:relative;flex:none;width:3rem;height:1.7rem}
.cookie-switch input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer;z-index:1}
.cookie-switch .slider{position:absolute;inset:0;border-radius:999px;background:#c3cfdb;transition:background .25s}
.cookie-switch .slider::before{content:"";position:absolute;left:.2rem;top:.2rem;width:1.3rem;height:1.3rem;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.3);transition:transform .25s}
.cookie-switch input:checked+.slider{background:var(--primary)}
.cookie-switch input:checked+.slider::before{transform:translateX(1.3rem)}
.cookie-switch input:disabled{cursor:not-allowed}.cookie-switch input:disabled+.slider{background:var(--ink);opacity:.85}
.cookie-switch input:focus-visible+.slider{outline:3px solid var(--primary);outline-offset:2px}
.cookie-policy{margin:1rem 0;font-size:.92rem}
.cookie-actions.col{flex-direction:column;align-items:stretch}.cookie-actions .row{display:flex;gap:.6rem}.cookie-actions .row .cookie-btn{flex:1}
@media (max-width:600px){.cookie-banner{bottom:.5rem;width:calc(100% - 1rem)}.cookie-actions{width:100%}.cookie-actions .cookie-btn{flex:1}}
@media (prefers-reduced-motion:reduce){.cookie-banner.in{animation:none}.cookie-panel,.cookie-overlay{transition:none}}

/* pagine legali: termini di utilizzo e privacy */
.legal-page{padding:clamp(2rem,5vw,3.5rem) 0 clamp(3rem,6vw,5rem)}
.legal-page h1{font-size:clamp(1.9rem,4vw,3rem);margin-bottom:1.2rem}
.legal-wrap{max-width:820px}
.crumbs{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;font-size:.88rem;color:var(--muted);margin-bottom:1rem}
.crumbs a{color:var(--primary);text-decoration:none}.crumbs a:hover{text-decoration:underline}
.legal-notice{background:var(--tint-blue);border-left:4px solid var(--primary);border-radius:10px;padding:.8rem 1rem;font-size:.92rem;color:var(--ink);margin:0 auto 1.5rem;max-width:62ch}
.legal-doc{background:#fff;border:1px solid var(--line);border-radius:22px;padding:clamp(1.25rem,4vw,2.6rem);box-shadow:0 14px 40px rgba(21,24,36,.05);font-size:1rem;line-height:1.7;overflow-wrap:anywhere}
.legal-doc h2{font-size:clamp(1.25rem,2.4vw,1.55rem);margin:2.2rem 0 .8rem;padding-top:1.2rem;border-top:1px solid var(--line)}
.legal-doc h2:first-child{margin-top:0;padding-top:0;border-top:0}
.legal-doc h3{font-size:1.1rem;margin:1.6rem 0 .5rem;color:var(--primary-dark)}
.legal-doc p{margin:0 0 1rem}
.legal-doc ul,.legal-doc ol{margin:0 0 1.1rem;padding-left:1.4rem}
.legal-doc li{margin:.3rem 0}.legal-doc li>ul{margin:.3rem 0 .3rem}
.legal-doc a{color:var(--primary);text-decoration:underline;text-underline-offset:2px}
.legal-doc strong{color:var(--ink)}
.legal-back{margin-top:2rem}
.legal-h{font-size:1.5rem;margin:2.5rem 0 1rem}
.legal-cards{list-style:none;margin:0;padding:0;display:grid;gap:1rem}
@media (min-width:640px){.legal-cards{grid-template-columns:repeat(2,1fr)}.legal-cards.three{grid-template-columns:repeat(3,1fr)}}
.lcard{display:flex;flex-direction:column;gap:.9rem;height:100%;background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.3rem;text-decoration:none;color:var(--ink);transition:transform .3s,box-shadow .3s,border-color .3s}
.lcard:hover,.lcard:focus-visible{transform:translateY(-5px);box-shadow:0 16px 38px rgba(6,103,176,.15);border-color:var(--primary)}
.lc-title{font-weight:700;font-size:1.05rem}
.lc-ico{display:grid;place-items:center;width:2.8rem;height:2.8rem;border-radius:14px;background:var(--tint-green);color:var(--accent-dark)}
.lc-open{margin-top:auto;color:var(--primary);font-weight:700;font-size:.92rem}
.lc-open span{display:inline-block;transition:transform .25s}.lcard:hover .lc-open span{transform:translateX(5px)}
.legal-more{margin-top:3rem;text-align:center;background:var(--alt);border-radius:22px;padding:2rem 1.25rem}
.legal-more h2{font-size:1.35rem}.legal-more p{color:var(--muted)}

/* GoodMeeting: foto con elementi di riunione animati */
.meet-stage{position:relative;padding:0 0 1.6rem 1.6rem}
.ms-photo{border-radius:28px;overflow:hidden;box-shadow:0 24px 60px rgba(21,24,36,.2);aspect-ratio:3/2;background:var(--tint-blue)}
.ms-photo img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.12);transition:transform 2.2s cubic-bezier(.2,.7,.2,1)}
.meet-stage.in .ms-photo img{transform:scale(1)}
.meet-stage>span{position:absolute;z-index:2}
.ms-live{left:2.4rem;top:1rem;display:flex;align-items:center;gap:.4rem;background:#fff;color:#d23a3a;font-size:.78rem;font-weight:700;border-radius:999px;padding:.3rem .8rem;box-shadow:0 8px 22px rgba(21,24,36,.2)}
.ms-live i{width:.55rem;height:.55rem;border-radius:50%;background:#d23a3a;animation:blink 1.2s infinite}
.ms-avatars{right:-.6rem;top:1.6rem;display:flex;flex-direction:column;gap:.5rem;background:#fff;border-radius:18px;padding:.5rem;box-shadow:0 12px 30px rgba(21,24,36,.22)}
.ms-avatars b{display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:50%;background:#bcd3e6;color:var(--primary-dark);font-size:.85rem}
.ms-avatars b:nth-child(2){background:#9fdcc3;color:var(--accent-dark)}.ms-avatars b:nth-child(3){background:#f6cf8e;color:#8a5a0a}.ms-avatars b:nth-child(4){background:#c9c3ee;color:#4c3aa0}
.ms-chat{left:0;bottom:4.2rem;display:flex;gap:.3rem;background:#fff;border-radius:16px 16px 16px 4px;padding:.8rem 1rem;box-shadow:0 12px 30px rgba(21,24,36,.22)}
.ms-chat i{width:.45rem;height:.45rem;border-radius:50%;background:#9aa7b6;animation:m-dot 1s infinite}.ms-chat i:nth-child(2){animation-delay:.15s}.ms-chat i:nth-child(3){animation-delay:.3s}
.ms-bar{left:50%;bottom:0;transform:translateX(-50%);display:flex;align-items:center;gap:.4rem;background:var(--navy,#151824);color:#fff;border-radius:999px;padding:.5rem .9rem;box-shadow:0 12px 30px rgba(21,24,36,.3)}
.ms-bar svg{opacity:.9}.ms-bar em{width:1.9rem;height:1.9rem;border-radius:50%;background:#d23a3a;margin-left:.3rem}
.js .meet-stage:not(.in)>span{opacity:0}
.js .meet-stage.in .ms-live{animation:ms-in .6s ease .9s backwards}
.js .meet-stage.in .ms-avatars{animation:ms-in-x .7s cubic-bezier(.2,.8,.3,1) 1.1s backwards}
.js .meet-stage.in .ms-avatars b{animation:m-pop .5s cubic-bezier(.3,1.5,.5,1) calc(1.4s + var(--i) * .15s) backwards}
.js .meet-stage.in .ms-chat{animation:ms-in .6s ease 1.8s backwards}
.js .meet-stage.in .ms-bar{animation:ms-in-up .7s cubic-bezier(.2,.8,.3,1) 1.3s backwards}
@keyframes ms-in{from{opacity:0;transform:translateY(12px) scale(.9)}}
@keyframes ms-in-x{from{opacity:0;transform:translateX(30px)}}
@keyframes ms-in-up{from{opacity:0;transform:translate(-50%,20px)}}
.js .meet-stage.in .ms-chat,.js .meet-stage.in .ms-avatars{animation-fill-mode:backwards,none}
.meet-stage.in .ms-avatars,.meet-stage.in .ms-chat{will-change:transform}
@media (prefers-reduced-motion:reduce){.ms-photo img{transform:none;transition:none}.js .meet-stage:not(.in)>span{opacity:1}.meet-stage *{animation:none!important}}
#goodmeeting .chips li::before{content:"";display:inline-block;width:.45rem;height:.45rem;border-radius:50%;background:var(--accent);margin-right:.5rem;vertical-align:middle}

/* Meno spostamenti, più efficienza */
.green-card{position:relative;overflow:hidden;display:grid;gap:1.5rem;align-items:center;background:linear-gradient(135deg,#e4f6ee 0%,#f4fbf8 60%,#fff 100%);border:1px solid #cfeadc;border-radius:32px;padding:clamp(1.5rem,4vw,3rem)}
@media (min-width:900px){.green-card{grid-template-columns:1.05fr 1fr;gap:3rem}}
.green-text{position:relative;z-index:1}
.green-text h2{font-size:clamp(1.7rem,3.4vw,2.5rem)}
.green-text .lead{max-width:44ch}
.green-chips{list-style:none;margin:1.5rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.7rem}
.green-chips li{display:inline-flex;align-items:center;gap:.55rem;background:#fff;border:1px solid #cfeadc;border-radius:999px;padding:.45rem 1rem .45rem .5rem;font-weight:600;font-size:.95rem;box-shadow:0 6px 18px rgba(13,123,84,.1);transition:transform .3s,box-shadow .3s}
.green-chips li:hover{transform:translateY(-4px);box-shadow:0 12px 26px rgba(13,123,84,.2)}
.green-chips .gi{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--accent-dark);color:#fff}
.green-photo{position:relative;z-index:1;border-radius:24px;overflow:hidden;aspect-ratio:3/2;box-shadow:0 20px 50px rgba(13,123,84,.22)}
.green-photo img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.15);transition:transform 2.2s cubic-bezier(.2,.7,.2,1)}
.green-card.in .green-photo img{transform:scale(1)}
.js .green-card .green-photo{clip-path:inset(0 0 0 100% round 24px)}
.js .green-card.in .green-photo{animation:g-wipe 1s cubic-bezier(.65,0,.35,1) .2s forwards}
@keyframes g-wipe{to{clip-path:inset(0 0 0 0 round 24px)}}
.js .green-card .green-chips li{opacity:0;transform:translateY(14px)}
.js .green-card.in .green-chips li{animation:flow-up .6s ease calc(.6s + var(--i) * .15s) forwards}
.leaf{position:absolute;width:5rem;height:5rem;background:var(--accent);opacity:.12;border-radius:0 100% 0 100%;z-index:0}
.leaf.l1{right:-1rem;top:-1rem;width:8rem;height:8rem;animation:leaf-sway 7s ease-in-out infinite}
.leaf.l2{left:38%;bottom:-1.5rem;animation:leaf-sway 9s ease-in-out -2s infinite}
.leaf.l3{left:-1rem;top:40%;width:3rem;height:3rem;animation:leaf-sway 6s ease-in-out -4s infinite}
@keyframes leaf-sway{0%,100%{transform:rotate(0) translateY(0)}50%{transform:rotate(14deg) translateY(-10px)}}
@media (prefers-reduced-motion:reduce){.green-photo img{transform:none;transition:none}.js .green-card .green-photo{clip-path:none;animation:none!important}.js .green-card .green-chips li{opacity:1;transform:none;animation:none!important}.leaf{animation:none}}


/* pagina Prezzi (replica del sito attuale: selettori prodotto/gruppo/pagamento) */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pricing-layout{background:#f8faff;padding:clamp(2.5rem,6vw,4.5rem) 0 5rem;scroll-margin-top:5rem}
.pricing-layout.alt-bg{background:#fff;border-top:1px solid #e2e8f0}
.text-center{text-align:center}
.pricing-layout button{font-family:inherit}
.pr-title{font-size:clamp(2rem,4vw,2.9rem);font-weight:700;color:#1e293b;margin:0 0 2rem}
.pr-groups{display:inline-flex;flex-wrap:wrap;justify-content:center;background:#fff;padding:.25rem;border-radius:.6rem;border:1px solid #e2e8f0;margin-bottom:2rem;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.pr-group-btn{border:0;background:#f8f9fa;color:#6c757d;font-weight:700;padding:.55rem 1.9rem;border-radius:.45rem;cursor:pointer;font-size:1rem}
.pr-group-btn.active{background:#2c2c2c;color:#fff}
.pr-promo{margin-bottom:2.2rem}
.pr-promo p{color:#198754;font-weight:700;margin:0 0 .8rem}
.pr-switch{display:inline-flex;flex-wrap:wrap;justify-content:center;background:#fff;padding:.25rem;border-radius:999px;border:1px solid #e2e8f0;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.pr-bill{border:0;background:none;border-radius:999px;padding:.35rem 1.4rem;font-size:.95rem;color:#334155;cursor:pointer}
.pr-bill.active{background:#3f78e0;color:#fff;box-shadow:0 2px 6px rgba(0,0,0,.15)}
.pr-group.is-hidden{display:none}
.pr-row{display:flex;flex-wrap:wrap;justify-content:center;gap:1.5rem}
.pr-card{position:relative;flex:1 1 250px;max-width:340px;display:flex;flex-direction:column;text-align:left;background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:1.75rem;color:#334155;box-shadow:0 1px 3px rgba(0,0,0,.08);transition:border-color .2s}
.pr-card:hover{border-color:#cbd5e1}
.pr-row.n4 .pr-card{flex-basis:220px;max-width:260px}
.pr-card h3{font-size:1.5rem;font-weight:700;color:#1e293b;margin:0 0 .5rem}
.pr-desc{min-height:40px;margin:0 0 1.5rem}
.pr-badge{position:absolute;top:-14px;right:20px;background:#3e9019;color:#fff;font-size:.75rem;font-weight:600;padding:.4rem .9rem;border-radius:999px}
.pr-price{margin-bottom:1.5rem}
.pr-amount{font-size:2rem;font-weight:700;color:#0f172a}
.pr-unit{color:#6c757d;font-size:.875rem}
.pr-sub{color:#6c757d;font-size:.875rem;margin-top:.25rem}
.pr-sub.d-none{display:none}
.pr-cta{display:block;text-align:center;font-weight:700;padding:.55rem;border:1px solid #3f78e0;color:#3f78e0;border-radius:.4rem;text-decoration:none;margin-bottom:1.5rem;transition:all .2s}
.pr-cta:hover{background:#3f78e0;color:#fff}
.pr-feat{list-style:none;margin:.5rem 0 0;padding:0}
.pr-feat li{display:flex;gap:.5rem;align-items:flex-start;margin-bottom:.9rem;line-height:1.4;color:#0f172a}
.pr-feat li::before{content:"";flex:none;width:.5rem;height:.9rem;margin:.1rem .35rem 0 .2rem;border:solid #198754;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.pr-vat{text-align:left;max-width:var(--max);margin:2.5rem auto 2rem;color:#334155}
.pr-enterprise{max-width:960px;margin:0 auto 3.5rem;padding:clamp(1.8rem,5vw,3.5rem);border-radius:var(--r);background-size:cover;background-position:center;display:flex;flex-wrap:wrap;gap:1.5rem;align-items:center;justify-content:space-between;color:#fff;text-align:left}
.pricing-layout .pr-enterprise h3{color:#fff;margin:0;font-size:clamp(1.4rem,2.6vw,1.9rem);line-height:1.3;flex:1 1 380px}
.pr-enterprise .btn{white-space:nowrap}
.pr-faq h3{font-size:clamp(1.7rem,3.5vw,2.4rem);margin:0 0 2.2rem;color:#1e293b}
.pr-faq-cols{display:grid;gap:1rem 1.5rem;grid-template-columns:1fr;text-align:left;align-items:start}
@media (min-width:900px){.pr-faq-cols{grid-template-columns:1fr 1fr}}
.pr-acc{display:grid;gap:1rem}
.pr-item{background:#fff;border:1px solid #e2e8f0;border-radius:12px;color:#334155}
.pr-item summary{cursor:pointer;list-style:none;padding:1rem 3rem 1rem 1.25rem;font-weight:700;color:#1e293b;position:relative}
.pr-item summary::-webkit-details-marker{display:none}
.pr-item summary::after{content:"+";position:absolute;right:1.25rem;top:50%;transform:translateY(-50%);font-size:1.4rem;color:#3f78e0}
.pr-item[open] summary::after{content:"–"}
.pr-ans{padding:0 1.25rem 1.1rem}
.pr-ans p{margin:0 0 .7rem}

/* ===== Chi siamo: immagini, animazioni, transizioni ===== */
.about-photo{position:relative;margin:0;isolation:isolate}
.about-photo::before{--r:0deg;content:"";position:absolute;inset:8% -4% -6% 8%;z-index:-1;border-radius:26px;background:linear-gradient(135deg,var(--primary),var(--accent));opacity:.18;animation:shape 14s ease-in-out infinite alternate}
.about-photo img{display:block;width:100%;height:auto;border-radius:20px;box-shadow:0 20px 50px rgba(6,103,176,.2);transition:transform .6s cubic-bezier(.2,.7,.2,1),box-shadow .6s}
.about-photo:hover img{transform:scale(1.025) rotate(-.4deg);box-shadow:0 28px 64px rgba(6,103,176,.3)}
.about-stats dd{background:linear-gradient(90deg,var(--primary),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent}
.about-timeline .card{transition:transform .3s,box-shadow .3s,border-color .3s}
.about-timeline .card .eyebrow{font-size:1rem;background:linear-gradient(90deg,var(--primary),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:800}
.about-timeline .card::before{content:"";display:block;width:2.4rem;height:4px;border-radius:4px;background:var(--accent);margin-bottom:1rem;transition:width .4s ease}
.about-timeline .card:hover::before{width:100%}
.infra-map{background:#fff;border:1px solid var(--line);border-radius:20px;padding:1.2rem;box-shadow:0 16px 40px rgba(22,34,46,.08)}
.infra-map svg{display:block;width:100%;height:auto}
.infra-map .links path{stroke:var(--primary);stroke-width:1.6;opacity:.28;stroke-dasharray:6 8;animation:infra-flow 3s linear infinite}
.infra-map .dot{fill:var(--primary);transition:fill .3s}
.infra-map .node:nth-child(3n+2) .dot{fill:var(--accent-dark)}
.infra-map .pulse{fill:var(--accent);opacity:.5;transform-box:fill-box;transform-origin:center;animation:infra-pulse 2.6s ease-out infinite;animation-delay:calc(var(--i) * .28s)}
.infra-map .node:hover .dot{fill:var(--ink)}
.infra-map .labels text{font:600 13px var(--font);fill:var(--muted)}
@keyframes infra-flow{to{stroke-dashoffset:-28}}
@keyframes infra-pulse{0%{transform:scale(1);opacity:.55}100%{transform:scale(2.6);opacity:0}}
@media (prefers-reduced-motion:reduce){.about-photo::before,.infra-map .links path,.infra-map .pulse{animation:none}.about-photo:hover img{transform:none}}
.about-photo + div .chips + p,.chips + p.reveal{margin-top:1.5rem}

/* blog */
.blog-head{padding:clamp(2.5rem,7vw,4.5rem) 0 clamp(1.5rem,4vw,2.5rem);background:linear-gradient(180deg,var(--alt),#fff)}
.blog-head h1{max-width:20ch}
.blog-head .lead{max-width:56ch}
.blog-notice{display:inline-block;margin:.5rem 0 1rem;padding:.55rem .9rem;border-left:4px solid var(--accent);background:var(--alt);border-radius:6px;font-size:.95rem;color:var(--muted)}
.blog-list{padding-top:1rem}
.blog-tools{display:grid;gap:1rem;margin-bottom:1.25rem}
.search-box{position:relative;max-width:520px}
.search-box>svg{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.search-box input{width:100%;font:inherit;padding:.8rem 2.8rem .8rem 2.9rem;border:1.5px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;appearance:none}
.search-box input:hover{border-color:var(--primary)}
.search-box input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(6,103,176,.18)}
.search-box input::-webkit-search-cancel-button{display:none}
.search-clear{position:absolute;right:.6rem;top:50%;transform:translateY(-50%);width:2rem;height:2rem;border:0;border-radius:50%;background:var(--alt);color:var(--muted);font-size:1.3rem;line-height:1;cursor:pointer}
.search-clear:hover{background:var(--line);color:var(--ink)}
.blog-tools .chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:0}
.chip-n{display:inline-block;min-width:1.4em;margin-left:.3em;padding:0 .35em;border-radius:999px;background:var(--alt);color:var(--muted);font-size:.78em;text-align:center}
.chip[aria-pressed=true] .chip-n{background:rgba(255,255,255,.22);color:#fff}
.chip-sm{display:inline-block;padding:.15rem .7rem;font-size:.8rem;text-decoration:none;color:var(--primary);font-weight:600;background:var(--alt);border-color:transparent}
a.chip-sm:hover{background:var(--primary);color:#fff;border-color:var(--primary)}
.blog-count{color:var(--muted);font-size:.95rem;margin:0 0 1.25rem}
.post-grid{display:grid;gap:1.5rem}
@media (min-width:700px){.post-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.post-grid{grid-template-columns:repeat(3,1fr)}}
.post-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.post-card[hidden]{display:none}
.post-card-img{display:block;aspect-ratio:16/9;overflow:hidden;background:var(--alt)}
.post-card-img img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.post-card:hover .post-card-img img{transform:scale(1.05)}
.post-card-body{display:flex;flex-direction:column;flex:1;padding:1.25rem 1.4rem 1.4rem}
.post-tags{list-style:none;margin:0 0 .6rem;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}
.post-card-title{font-size:1.2rem;margin:0 0 .5rem}
.post-card-title a{color:var(--ink);text-decoration:none}
.post-card-title a:hover{color:var(--primary)}
.post-card-title a::after{content:"";position:absolute;inset:0}
.post-card{position:relative}
.post-tags,.post-tags a{position:relative;z-index:1}
.post-card-text{color:var(--muted);font-size:.97rem;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.post-meta{display:flex;flex-wrap:wrap;gap:.2rem .6rem;margin:auto 0 0;padding-top:.5rem;font-size:.85rem;color:var(--muted)}
.blog-empty{text-align:center;padding:3rem 0;color:var(--muted)}
.blog-empty[hidden]{display:none}

/* articolo */
.post-head{padding:clamp(2rem,5vw,3.5rem) 0 1.5rem;background:linear-gradient(180deg,var(--alt),#fff)}
.post-head h1{font-size:clamp(1.8rem,4.4vw,2.8rem);margin-bottom:.8rem}
.post-head .post-meta{margin:0;padding:0}
.post-cover{margin:0 0 2rem}
.post-cover img{display:block;width:100%;height:auto;border-radius:var(--r);box-shadow:0 10px 30px rgba(22,34,46,.12)}
.prose{font-size:1.08rem}
.prose h2{margin:2.2em 0 .6em}
.prose>h2:first-child{margin-top:0}
.prose h3{margin:1.8em 0 .5em;font-size:1.3rem}
.prose .lead{color:var(--muted)}
.prose ul,.prose ol{padding-left:1.4em;margin:0 0 1.2em}
.prose li{margin-bottom:.4em}
.prose figure{margin:1.8rem 0}
.prose figure img{display:block;margin-inline:auto;max-height:640px;width:auto;border-radius:10px;border:1px solid var(--line);background:#fff}
.prose a{text-underline-offset:2px}
.prose .steps{list-style:none;padding:0;counter-reset:s;display:grid;gap:1rem}
.prose .steps li{counter-increment:s;position:relative;margin:0;padding:1rem 1.2rem 1rem 4rem;background:var(--alt);border-radius:var(--r)}
.prose .steps li::before{content:counter(s);position:absolute;left:1rem;top:1rem;width:2.1rem;height:2.1rem;border-radius:50%;background:var(--primary);color:#fff;font-weight:700;display:grid;place-items:center}
.prose .steps p{margin:.2rem 0 0;color:var(--muted)}
.prose .callout{margin:2.2rem 0;padding:1.6rem 1.8rem;border-radius:var(--r);background:var(--primary-dark);color:#fff}
.prose .callout h2{margin:.2rem 0 .8rem;color:#fff;font-size:clamp(1.4rem,3vw,1.8rem)}
.prose .callout p:last-child{margin-bottom:0}
.prose .callout-tag{display:inline-block;margin:0;padding:.15rem .75rem;border-radius:999px;background:#fff;color:var(--primary-dark);font-size:.8rem;font-weight:700}
.prose .feature{display:grid;gap:1.5rem;align-items:center;margin:2.2rem 0}
@media (min-width:760px){.prose .feature{grid-template-columns:1fr 1.1fr}}
.prose .feature figure{margin:0}
.prose .feature h3{margin-top:0}
.prose .eyebrow{margin-bottom:.4rem}
.prose .faq{display:grid;gap:.6rem;margin-bottom:1.5rem}
.prose details{border:1px solid var(--line);border-radius:10px;background:#fff}
.prose summary{cursor:pointer;padding:.9rem 1.1rem;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.prose summary::-webkit-details-marker{display:none}
.prose summary::after{content:"+";color:var(--primary);font-size:1.3rem;line-height:1}
.prose details[open] summary::after{content:"−"}
.prose details[open]{border-color:var(--primary)}
.prose details>p{margin:0;padding:0 1.1rem 1rem;color:var(--muted)}
.prose .stats-box{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.8rem;margin:1.2rem 0 1.8rem}
.prose .stats-box div{display:flex;flex-direction:column-reverse;padding:1rem;border:1px solid var(--line);border-radius:var(--r);background:var(--alt);text-align:center}
.prose .stats-box dt{color:var(--muted);font-size:.9rem}
.prose .stats-box dd{margin:0;font-size:1.8rem;font-weight:800;color:var(--primary)}
.prose .info-box{margin:1.4rem 0;padding:1.2rem 1.5rem;border-left:4px solid var(--accent);background:var(--alt);border-radius:0 var(--r) var(--r) 0}
.prose .info-box h3{margin:0 0 .4rem;font-size:1.05rem;text-transform:uppercase;letter-spacing:.04em;color:var(--accent-dark)}
.prose .info-box p:last-child{margin-bottom:0}
.post-page .legal-back{margin:2.5rem 0 3rem}
.related h2{margin-bottom:1.5rem}
@media (prefers-reduced-motion:reduce){.post-card-img img,.post-card:hover .post-card-img img{transition:none;transform:none}}

/* pagine di settore (aziende / enti di formazione) */
.aud-links{margin:0 0 1.6rem}
.aud-links p{margin:0 0 .4rem;font-size:.85rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.aud-links ul{list-style:none;margin:0;padding:0;display:grid;gap:.3rem}
.aud-links a{display:inline-flex;align-items:center;gap:.5rem;color:var(--primary);font-weight:600;text-decoration:none}
.aud-links a span{text-decoration:underline;text-underline-offset:4px;text-decoration-color:transparent;transition:text-decoration-color .2s}
.aud-links a i{font-style:normal;transition:transform .25s}
.aud-links a:hover span{text-decoration-color:currentColor}
.aud-links a:hover i{transform:translateX(5px)}
.js .aud-card .aud-links{opacity:0;animation:flow-up .5s ease calc(var(--d,0s) + 1.2s) forwards}
.js .aud-card:not(.in) .aud-links{animation:none}
@media (prefers-reduced-motion:reduce){.js .aud-card .aud-links{opacity:1;animation:none!important}}

.sector-hero .crumb{margin-bottom:1.2rem;font-size:.92rem}
.sector-hero .crumb a{color:var(--muted);text-decoration:none;font-weight:600}
.sector-hero .crumb a span{display:inline-block;transition:transform .25s}
.sector-hero .crumb a:hover{color:var(--primary)}
.sector-hero .crumb a:hover span{transform:translateX(-4px)}
.sector-hero .actions{display:flex;flex-wrap:wrap;gap:.8rem}
.sector-media img{border-radius:24px;box-shadow:0 24px 60px rgba(6,103,176,.28);aspect-ratio:4/3;object-fit:cover}

.sector-nav{position:sticky;top:68px;z-index:40;background:rgba(255,255,255,.94);backdrop-filter:blur(6px);border-block:1px solid var(--line)}
.sector-nav ul{list-style:none;margin:0;padding:.6rem 0;display:flex;gap:.5rem;overflow-x:auto;scrollbar-width:none}
.sector-nav ul::-webkit-scrollbar{display:none}
.sector-nav a{display:block;white-space:nowrap;padding:.4rem 1rem;border-radius:999px;border:1px solid var(--line);color:var(--ink);font-weight:600;font-size:.92rem;text-decoration:none;transition:background .2s,color .2s,border-color .2s}
.sector-nav a:hover,.sector-nav a.on{background:var(--ink);color:#fff;border-color:var(--ink)}
section[id]{scroll-margin-top:130px}

.sec-head{max-width:760px;margin-bottom:2.2rem}
.sec-head .lead{margin-bottom:.6rem}

.sicon{display:grid;place-items:center;width:64px;height:64px;border-radius:18px;background:linear-gradient(135deg,var(--tint-blue),var(--tint-green));flex:none;transition:transform .4s}
.sicon img{width:40px;height:40px;display:block}
.sicon.sm{width:52px;height:52px;border-radius:14px}.sicon.sm img{width:32px;height:32px}

.sfeat,.scards{list-style:none;margin:0;padding:0;display:grid;gap:1.25rem}
@media (min-width:640px){.sfeat{grid-template-columns:1fr 1fr}.scards.cols-2{grid-template-columns:1fr 1fr}}
@media (min-width:980px){.sfeat{grid-template-columns:repeat(3,1fr)}}
.sfeat-card,.scard{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:22px;padding:1.8rem;transition:transform .3s,box-shadow .3s,border-color .3s}
.sfeat-card::before,.scard::before{content:"";position:absolute;inset:0;background:radial-gradient(260px circle at var(--mx,50%) var(--my,0%),rgba(6,103,176,.09),transparent 70%);opacity:0;transition:opacity .3s;pointer-events:none}
.sfeat-card:hover,.scard:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(22,34,46,.1);border-color:var(--primary)}
.sfeat-card:hover::before,.scard:hover::before{opacity:1}
.sfeat-card:hover .sicon,.scard:hover .sicon{transform:scale(1.1) rotate(-5deg)}
.sfeat-card h3,.scard h3{margin:1.1rem 0 .5rem;font-size:1.15rem}
.sfeat-card p,.scard p{margin:0;color:var(--muted);font-size:.98rem}
.js .sfeat-card.reveal.in,.js .scard.reveal.in{transition:opacity .8s cubic-bezier(.2,.7,.2,1) var(--d,0s),transform .3s,box-shadow .3s,border-color .3s}
.scard .num{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--ink);color:#fff;font-weight:700}

.sector-photo img{aspect-ratio:auto;object-fit:cover}
.sitems{list-style:none;margin:1.6rem 0 0;padding:0;display:grid;gap:1.1rem}
.sitems li{display:flex;gap:1rem;align-items:flex-start}
.sitems h3{font-size:1.05rem;margin:0 0 .25rem}
.sitems p{margin:0;color:var(--muted);font-size:.97rem}
.sitems .dot{flex:none;width:12px;height:12px;margin-top:.45rem;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px var(--tint-green)}
.sitems li:hover .sicon{transform:scale(1.08) rotate(-5deg)}
.checks{list-style:none;margin:1.4rem 0 1.4rem;padding:0;display:grid;gap:.7rem}
.checks li{position:relative;padding-left:2rem;color:var(--text)}
.checks li::before{content:"";position:absolute;left:0;top:.2em;width:1.3rem;height:1.3rem;border-radius:50%;background:var(--accent-dark) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center/70% no-repeat}

.spost{display:grid;gap:1.5rem;align-items:center;border:1px solid var(--line);border-radius:28px;overflow:hidden;background:#fff;text-decoration:none;color:var(--text);box-shadow:0 14px 40px rgba(21,24,36,.06);transition:box-shadow .3s,transform .3s}
@media (min-width:860px){.spost{grid-template-columns:1fr 1.1fr;gap:3rem}}
.spost img{width:100%;height:100%;min-height:240px;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.spost>div{padding:1.5rem 1.5rem 2rem}
@media (min-width:860px){.spost>div{padding:2rem 2.5rem 2rem 0}}
.spost h2{font-size:clamp(1.4rem,2.6vw,1.9rem)}
.spost .meta{color:var(--muted);font-size:.9rem}
.spost:hover{box-shadow:0 24px 56px rgba(6,103,176,.18)}
.spost:hover img{transform:scale(1.04)}
.spost:hover .link-arrow span{transform:translateX(5px)}
.spost>div{overflow:hidden}.spost{overflow:hidden}

.sector-cta .btn-light{margin-top:.4rem}
@media (prefers-reduced-motion:reduce){.sfeat-card,.scard,.spost img{transition:none}}

/* header: "Richiedi una demo" in tinta chiara, "Accedi" in evidenza */
.btn-soft{background:var(--tint-blue);color:var(--primary-dark);border-color:var(--tint-blue)}
.btn-soft:hover{background:#c9e1f4;border-color:#c9e1f4;color:var(--primary-dark);box-shadow:none}
.login-head{white-space:nowrap}
@media (max-width:1179px){.login-head{order:4;padding:.5rem .8rem}}
@media (max-width:479px){.bar{gap:.5rem}.cta-head,.login-head{padding:.45rem .6rem;font-size:.9rem}}
