:root{--blu:#12307a;--verde:#1a8f5c;--verde-chiaro:#e8f5ee;--testo:#1c2433;--grigio:#f4f6fa;--tel:011 1853 3278}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--testo);line-height:1.55;background:#fff}
a{color:inherit}
.wrap{max-width:1100px;margin:0 auto;padding:0 20px}
header{position:sticky;top:0;background:#fff;border-bottom:1px solid #e3e7ef;z-index:10}
header .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:8px;padding-bottom:8px}
header img{height:84px;display:block}
nav{display:flex;gap:20px;align-items:center;font-weight:600;font-size:15px}
nav a{text-decoration:none;color:var(--blu)}
.btn{display:inline-block;background:var(--verde);color:#fff;padding:12px 22px;border-radius:8px;font-weight:700;text-decoration:none;border:0;font-size:16px;cursor:pointer}
.btn.blu{background:var(--blu)}
.hero{background:linear-gradient(180deg,#eaf4fb 0%,#fff 100%);padding:64px 0 16px}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.hero h1{font-size:clamp(30px,4.5vw,46px);line-height:1.12;margin:0 0 16px;color:var(--blu);text-transform:uppercase}
.hero h1 em{font-style:normal;color:var(--verde)}
.hero p.sotto{font-size:19px;color:#3b4660;margin:0 0 24px}
.hero .azioni{display:flex;gap:12px;flex-wrap:wrap}
.hero .card{background:#fff;border-radius:16px;box-shadow:0 12px 40px rgba(18,48,122,.15);padding:28px}
.hero .card h2{margin:0 0 6px;color:var(--blu);font-size:22px}
.hero .card p{margin:0 0 16px;color:#5a6580}
.target{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.target span{background:var(--verde-chiaro);color:var(--verde);font-weight:700;padding:6px 14px;border-radius:99px;font-size:14px}
section{padding:56px 0}
#servizi{padding-top:24px}
section h2.t{font-size:30px;color:var(--blu);margin:0 0 6px}
section p.s{color:#5a6580;margin:0 0 28px;max-width:640px}
.servizi{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
.srv{border:1px solid #e3e7ef;border-radius:14px;padding:22px;background:#fff}
.srv .ico{width:44px;height:44px;border-radius:10px;background:var(--verde-chiaro);display:grid;place-items:center;font-size:24px;margin-bottom:10px}
.srv h3{margin:0 0 4px;color:var(--blu);font-size:18px;text-transform:uppercase;letter-spacing:.02em}
.srv p{margin:0;color:#4a5570;font-size:15px}
.srv .partner{margin-top:12px;font-size:13px;font-weight:700;color:var(--verde)}
.srv .partner img{display:block;height:30px;margin-top:6px}
.grigio{background:var(--grigio)}
.passi{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;counter-reset:p}
.passo{background:#fff;border-radius:14px;padding:22px;counter-increment:p}
.passo::before{content:counter(p);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--blu);color:#fff;font-weight:700;margin-bottom:10px}
.passo b{color:var(--blu)}
.contatti{display:grid;grid-template-columns:1fr 1fr;gap:36px}
form{display:grid;gap:12px}
label{font-size:14px;font-weight:600;color:var(--blu);display:grid;gap:4px}
input,select,textarea{font:inherit;padding:11px 12px;border:1px solid #c9d0de;border-radius:8px;width:100%;background:#fff}
textarea{min-height:90px;resize:vertical}
.riga{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.msg{padding:12px 14px;border-radius:8px;font-weight:600;display:none}
.msg.ok{display:block;background:var(--verde-chiaro);color:var(--verde)}
.msg.err{display:block;background:#fdecec;color:#b42318}
.recapiti{background:var(--blu);color:#fff;border-radius:16px;padding:28px;align-self:start}
.recapiti h3{margin:0 0 14px;font-size:22px}
.recapiti a{display:block;font-size:26px;font-weight:800;text-decoration:none;margin-bottom:10px}
.recapiti .wa{background:var(--verde);padding:14px 16px;border-radius:10px}
.recapiti small{opacity:.8}
footer{background:#0c2058;color:#c9d3f0;padding:28px 0;font-size:14px}
footer a{color:#c9d3f0;text-decoration:underline}footer a:hover{color:#fff}
footer .copy{flex-basis:100%;border-top:1px solid #243a82;padding-top:14px;margin-top:2px;font-size:13px;opacity:.85}
footer .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.wa-fisso{position:fixed;right:18px;bottom:18px;background:#25d366;color:#fff;border-radius:99px;padding:14px 20px;font-weight:700;text-decoration:none;box-shadow:0 6px 20px rgba(0,0,0,.25);z-index:20}
@media(max-width:820px){header img{height:60px}.hero .wrap,.contatti{grid-template-columns:1fr}nav a.h{display:none}.riga{grid-template-columns:1fr}}
.srv[data-srv]{cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s}
.srv[data-srv]:hover,.srv[data-srv]:focus-visible{transform:translateY(-3px);box-shadow:0 10px 26px rgba(18,48,122,.14);border-color:var(--verde);outline:0}
.srv .piu{margin-top:12px;font-weight:700;color:var(--verde);font-size:14px}
.dlg{position:fixed;inset:0;background:rgba(10,20,50,.5);display:none;place-items:center;padding:16px;z-index:60}
.dlg.on{display:grid}
.dlg .box{background:#fff;border-radius:16px;max-width:560px;width:100%;max-height:90vh;overflow:auto;padding:28px;position:relative}
.dlg h3{margin:6px 0 8px;color:var(--blu);font-size:24px;text-transform:uppercase}
.dlg ul{padding-left:20px;margin:12px 0 18px}
.dlg li{margin-bottom:6px}
.dlg .x{position:absolute;right:12px;top:8px;background:none;border:0;font-size:28px;cursor:pointer;color:#6a7590}
.dlg .partner img{display:block;height:34px;margin:6px 0 14px}
.pagina-hero{background:linear-gradient(180deg,#eaf4fb 0%,#fff 100%);padding:40px 0 24px}
.briciole{font-size:14px;color:#5a6580;margin-bottom:14px}
.briciole a{color:var(--blu);text-decoration:none;font-weight:600}
.pagina-hero .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:36px;align-items:center}
.pagina-hero h1{font-size:clamp(28px,4vw,42px);color:var(--blu);text-transform:uppercase;margin:0 0 12px;line-height:1.1}
.pagina-hero .ico-grande{font-size:64px;line-height:1}
.pagina-hero p.lead{font-size:19px;color:#3b4660;margin:0 0 20px}
.box-contatto{background:#fff;border-radius:16px;box-shadow:0 12px 40px rgba(18,48,122,.15);padding:24px}
.box-contatto h3{margin:0 0 8px;color:var(--blu)}
.box-contatto a.btn{display:block;text-align:center;margin-top:10px}
.due{display:grid;grid-template-columns:1fr 1fr;gap:36px}
.elenco{padding-left:0;list-style:none;margin:0}
.elenco li{padding:10px 0 10px 32px;position:relative;border-bottom:1px solid #eef1f6}
.elenco li::before{content:"✓";position:absolute;left:0;top:10px;width:22px;height:22px;border-radius:50%;background:var(--verde-chiaro);color:var(--verde);font-weight:800;display:grid;place-items:center;font-size:13px}
.partner-box{display:flex;gap:18px;align-items:center;background:var(--verde-chiaro);border-radius:14px;padding:18px 22px;margin-top:22px;flex-wrap:wrap}
.partner-box img{height:38px}
details{background:#fff;border:1px solid #e3e7ef;border-radius:10px;padding:14px 18px;margin-bottom:10px}
summary{font-weight:700;color:var(--blu);cursor:pointer}
details p{margin:10px 0 0;color:#4a5570}
.altri{display:flex;gap:10px;flex-wrap:wrap}
.altri a{background:#fff;border:1px solid #dde2ec;border-radius:99px;padding:8px 16px;text-decoration:none;font-weight:600;color:var(--blu)}
.altri a:hover{border-color:var(--verde);color:var(--verde)}
@media(max-width:820px){.pagina-hero .wrap,.due{grid-template-columns:1fr}}

.srv.conv{position:relative;overflow:hidden;isolation:isolate;min-height:200px}
.srv.conv video.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.srv.conv::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(10,30,80,.12) 0%,rgba(10,30,80,.46) 100%);transition:opacity .35s}
.srv.conv:hover::before,.srv.conv:focus-visible::before{opacity:.75}
.srv.conv h3,.srv.conv p{color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.75),0 0 10px rgba(0,0,0,.35)}
.srv.conv .piu{color:#8ff0bf;text-shadow:0 1px 4px rgba(0,0,0,.75),0 0 10px rgba(0,0,0,.35)}
.srv.conv .partner{color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.75),0 0 10px rgba(0,0,0,.35)}
.srv.conv .partner img{background:#fff;border-radius:8px;padding:5px 9px;height:38px;width:auto;text-shadow:none}
.srv.conv .ico{background:rgba(255,255,255,.92)}
@media(prefers-reduced-motion:reduce){.srv.conv video.bg{display:none}}

/* ===== apertura con video ===== */
header{transition:box-shadow .2s}
header.sc{box-shadow:0 6px 22px rgba(18,48,122,.14)}
.hero2{position:relative;color:#fff;overflow:hidden;min-height:min(80vh,660px);display:flex;align-items:center;isolation:isolate;background:#0c2058}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero-vel{position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(8,24,70,.86) 0%,rgba(8,24,70,.64) 48%,rgba(8,24,70,.30) 100%)}
.hero-in{display:grid;grid-template-columns:1.25fr .75fr;gap:40px;align-items:center;padding-top:60px;padding-bottom:118px;width:100%}
.hero-badge{display:inline-block;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.32);border-radius:99px;padding:6px 14px;font-size:13px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;margin-bottom:18px}
.hero2 h1{font-size:clamp(32px,5vw,58px);line-height:1.08;margin:0 0 18px;text-transform:uppercase;font-weight:900;letter-spacing:-.01em;text-shadow:0 2px 18px rgba(0,0,0,.35)}
.hero2 h1 em{font-style:normal;color:#5fe0a4}
.hero2 p.sotto{font-size:clamp(17px,2vw,21px);color:#e5ecff;max-width:560px;margin:0 0 28px}
.hero2 .azioni{display:flex;gap:12px;flex-wrap:wrap}
.btn.bianco{background:#fff;color:var(--blu)}
.hero2 .btn{padding:14px 24px;font-size:17px}
.hero-card{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:20px;padding:26px}
.hero-card h2{margin:0 0 6px;font-size:22px}
.hero-card p{margin:0 0 14px;color:#dbe5ff}
.hero-card a.tel{display:block;font-size:32px;font-weight:800;color:#fff;text-decoration:none;margin-bottom:14px}
.hero-card .btn{display:block;text-align:center}
/* striscia di fiducia che sale sull'apertura */
.fiducia{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-radius:18px;box-shadow:0 18px 46px rgba(18,48,122,.2);margin-top:-64px;position:relative;z-index:2}
.fid{display:flex;gap:14px;align-items:center;padding:22px;border-right:1px solid #eef1f6}
.fid:last-child{border-right:0}
.fid .ico{font-size:30px}
.fid b{display:block;color:var(--blu);font-size:15px;line-height:1.25}
.fid span:not(.ico){font-size:13px;color:#5a6580}
/* a chi ci rivolgiamo */
.chi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.chi{display:block;text-decoration:none;color:inherit;background:#fff;border:1px solid #e3e7ef;border-top:5px solid var(--blu);border-radius:16px;padding:26px;transition:transform .15s,box-shadow .15s}
.chi:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(18,48,122,.15)}
.chi-priv{border-top-color:#1a8f5c}.chi-amm{border-top-color:#12307a}.chi-azi{border-top-color:#e07a1f}
.chi-ico{display:grid;place-items:center;width:58px;height:58px;border-radius:16px;font-size:30px;color:#fff;margin-bottom:14px}
.chi-priv .chi-ico{background:#1a8f5c}.chi-amm .chi-ico{background:#12307a}.chi-azi .chi-ico{background:#e07a1f}
.chi h3{margin:0 0 6px;color:var(--blu);font-size:22px}
.chi p{margin:0 0 14px;color:#4a5570}
.chi-cta{font-weight:700;color:var(--verde)}
/* QR */
.qr{display:flex;gap:14px;align-items:center;margin-top:18px;background:#fff;color:var(--blu);border-radius:14px;padding:12px}
.qr img{width:112px;height:112px;flex:none}
.qr b{display:block;font-size:15px;margin-bottom:4px}
.qr span{font-size:13px;color:#5a6580}
/* comparsa morbida */
.rv{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}.hero-video{display:none}}
@media(max-width:900px){.hero-in{grid-template-columns:1fr;padding-bottom:96px}.fiducia{grid-template-columns:1fr 1fr}.fid{border-bottom:1px solid #eef1f6}.chi-grid{grid-template-columns:1fr}}
@media(max-width:560px){.fiducia{grid-template-columns:1fr}.hero2{min-height:auto}}

/* ===== schermata di apertura con il logo ===== */
#intro{position:fixed;inset:0;z-index:1000;background:#fff;display:grid;place-items:center;overflow:hidden;cursor:pointer;transition:opacity .6s ease,visibility .6s,background .9s ease}
#intro.esce{opacity:0;visibility:hidden}
.intro-logo{width:min(760px,82vw)}
.intro-logo svg{display:block;width:100%;height:auto;overflow:visible}
.intro-skip{position:absolute;bottom:22px;left:0;right:0;text-align:center;color:#aab1c0;font-size:13px;letter-spacing:.04em}
#intro.riduci{background:transparent}
body.blocca header img{opacity:0}
/* spazio della barra di scorrimento sempre riservato: niente scatto quando l'animazione di apertura finisce */
html{scrollbar-gutter:stable}

/* ===== impulso elettrico sull'intestazione ===== */
.impulso-pista{position:absolute;left:0;right:0;bottom:-2px;height:4px;overflow:hidden;pointer-events:none;z-index:3;contain:strict}
/* stessa luce del riquadro: linea sottile, coda verde che sfuma e testa bianca, senza aloni */
.impulso{position:absolute;left:0;top:.5px;width:300px;height:3px;border-radius:3px;opacity:0;will-change:transform,opacity;
 background:linear-gradient(90deg,rgba(26,143,92,0) 0%,rgba(95,224,164,.65) 62%,rgba(255,255,255,.98) 93%,rgba(255,255,255,0) 100%)}
.impulso-pista.attivo .impulso{animation:corsa-fascia 4.8s linear infinite}
@keyframes corsa-fascia{0%{transform:translateX(var(--ini,-280px));opacity:0}5%{opacity:1}68%{opacity:1}74%,100%{transform:translateX(var(--fine,900px));opacity:0}}
@media(prefers-reduced-motion:reduce){.impulso-pista{display:none}}

/* Impulso di luce che gira sul bordo del riquadro "Parla subito con noi" */
@property --ang{syntax:'<angle>';initial-value:0deg;inherits:false}
.hero-card,.box-contatto{position:relative}
.hero-card::before,.box-contatto::before{content:"";position:absolute;inset:-2px;border-radius:inherit;padding:3px;pointer-events:none;
  background:conic-gradient(from var(--ang),transparent 0 55%,rgba(26,143,92,0) 55%,rgba(95,224,164,.65) 82%,rgba(255,255,255,.98) 96%,transparent 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);
  animation:giro-bordo 4.8s linear infinite}
@keyframes giro-bordo{to{--ang:360deg}}
@media (prefers-reduced-motion:reduce){.hero-card::before,.box-contatto::before{animation:none;display:none}}

/* logo dei partner cliccabili */
.partner-link{display:table;line-height:0;border-radius:8px;transition:transform .15s,box-shadow .15s}
.partner-link:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.28)}
.partner-box a{display:inline-block;line-height:0}
.partner img[alt="SOENG"]{height:46px!important}
.partner-box img[alt="SOENG"]{height:46px}

/* avviso quando il numero di telefono viene copiato */
#avviso-tel{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:#12307a;color:#fff;padding:13px 22px;border-radius:12px;font-weight:700;box-shadow:0 12px 34px rgba(0,0,0,.3);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:900}
#avviso-tel.on{opacity:1;transform:translate(-50%,0)}
