
/* =========================================================
   DESIGN TOKENS
   ========================================================= */
:root{
  --navy-950:#081226;
  --navy-900:#0B1833;
  --navy-850:#0E1E3F;
  --navy-800:#12264D;
  --navy-700:#1A3363;
  --navy-600:#23447F;
  --blue-500:#2E6BFF;
  --blue-400:#4F8BFF;
  --blue-300:#86B1FF;
  --blue-200:#BCD3FF;
  --ice-100:#E8F0FD;
  --ice-50:#F4F7FC;
  --white:#FFFFFF;
  --black:#060A14;
  --ink:#0B1426;
  --muted-d:#9FB2D6;   /* testo secondario su dark */
  --muted-l:#4A5B7C;   /* testo secondario su light */
  --line-d:rgba(134,177,255,.14);
  --line-l:rgba(18,38,77,.10);
  --glow:0 0 0 1px rgba(134,177,255,.18), 0 20px 60px -20px rgba(46,107,255,.45);
  --r-sm:10px; --r:18px; --r-lg:28px;
  --f-head:"Space Grotesk", system-ui, sans-serif;
  --f-body:"Inter", system-ui, sans-serif;
  --f-mono:"JetBrains Mono", ui-monospace, monospace;
  --ease:cubic-bezier(.2,.7,.1,1);
  --wrap:1240px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--f-body);background:var(--navy-900);color:var(--white);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
.wrap{width:min(var(--wrap),100% - 40px);margin-inline:auto;position:relative;z-index:3}
::selection{background:var(--blue-500);color:#fff}

/* ---------- Tipografia ---------- */
h1,h2,h3,h4{font-family:var(--f-head);font-weight:600;line-height:1.05;letter-spacing:-.025em}
.h-xl{font-size:clamp(2.4rem,5.4vw,5.2rem)}
.h-lg{font-size:clamp(2.1rem,4.6vw,4rem)}
.h-md{font-size:clamp(1.5rem,2.6vw,2.2rem)}
.lead{font-size:clamp(1.02rem,1.3vw,1.18rem);max-width:62ch}
.eyebrow{font-family:var(--f-mono);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;display:inline-flex;align-items:center;gap:.7em;color:var(--blue-300)}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor}
.light .eyebrow{color:var(--blue-500)}
.grad-text{background:linear-gradient(100deg,#86B1FF 0%,#4F8BFF 25%,#CFE0FF 50%,#4F8BFF 75%,#86B1FF 100%);-webkit-background-clip:text;background-clip:text;color:transparent;background-size:200% auto;animation:shine 8s linear infinite}
.light .grad-text{background-image:linear-gradient(100deg,#1A3363 0%,#2E6BFF 25%,#4F8BFF 50%,#2E6BFF 75%,#1A3363 100%)}
@keyframes shine{to{background-position:200% center}}
.outline-text{-webkit-text-stroke:1.2px var(--blue-300);color:transparent}
.light .outline-text{-webkit-text-stroke-color:var(--navy-600)}
.mono{font-family:var(--f-mono)}

/* ---------- Sezioni dark / light ---------- */
section{position:relative;overflow:hidden;isolation:isolate}
.dark{background:var(--navy-900);color:var(--white)}
.dark.alt{background:var(--navy-850)}
.light{background:var(--ice-50);color:var(--ink)}
.light.alt{background:var(--white)}
.pad{padding:clamp(56px,6.2vw,92px) 0}
.muted{color:var(--muted-d)}
.light .muted{color:var(--muted-l)}

/* Layer di sfondo: immagine in trasparenza + pattern animato + orbs */
.bg-img{position:absolute;inset:-12% 0;z-index:-3;background-size:cover;background-position:center;opacity:.10;filter:grayscale(1) contrast(1.15);will-change:transform}
.dark .bg-img{mix-blend-mode:luminosity;opacity:.13}
.light .bg-img{opacity:.06;mix-blend-mode:multiply}
.bg-fade{position:absolute;inset:0;z-index:-2;pointer-events:none}
.dark .bg-fade{background:radial-gradient(120% 80% at 50% 0%,transparent 0%,var(--navy-900) 85%)}
.dark.alt .bg-fade{background:radial-gradient(120% 80% at 50% 100%,transparent 0%,var(--navy-850) 85%)}
.light .bg-fade{background:radial-gradient(120% 90% at 50% 50%,transparent 20%,var(--ice-50) 90%)}
.light.alt .bg-fade{background:radial-gradient(120% 90% at 50% 50%,transparent 20%,#fff 90%)}

.pat{position:absolute;inset:0;z-index:-1;pointer-events:none}
.pat-grid{background-image:linear-gradient(var(--line-d) 1px,transparent 1px),linear-gradient(90deg,var(--line-d) 1px,transparent 1px);background-size:64px 64px;animation:gridMove 22s linear infinite;mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,#000 30%,transparent 80%)}
.light .pat-grid{background-image:linear-gradient(var(--line-l) 1px,transparent 1px),linear-gradient(90deg,var(--line-l) 1px,transparent 1px)}
@keyframes gridMove{to{background-position:64px 64px}}
.pat-dots{background-image:radial-gradient(rgba(134,177,255,.28) 1.2px,transparent 1.4px);background-size:26px 26px;animation:dotsMove 30s linear infinite;mask-image:linear-gradient(180deg,transparent,#000 20%,#000 80%,transparent)}
.light .pat-dots{background-image:radial-gradient(rgba(26,51,99,.18) 1.2px,transparent 1.4px)}
@keyframes dotsMove{to{background-position:0 260px}}
.pat-circuit{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' fill='none' stroke='%2386B1FF' stroke-opacity='.16' stroke-width='1.2'%3E%3Cpath d='M0 40h60l20 20h60l20-20h80M0 120h30l20 20h90l30-30h70M40 0v30l20 20v40M160 0v50l-20 20v60l20 20v90M200 240v-50l20-20h20M0 200h50l30-30h40'/%3E%3Ccircle cx='60' cy='40' r='3'/%3E%3Ccircle cx='140' cy='60' r='3'/%3E%3Ccircle cx='170' cy='110' r='3'/%3E%3Ccircle cx='60' cy='90' r='3'/%3E%3Ccircle cx='160' cy='150' r='3'/%3E%3Ccircle cx='80' cy='170' r='3'/%3E%3C/svg%3E");background-size:240px;animation:circuitMove 40s linear infinite;mask-image:radial-gradient(ellipse 70% 70% at 70% 50%,#000 20%,transparent 75%)}
.light .pat-circuit{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' fill='none' stroke='%231A3363' stroke-opacity='.10' stroke-width='1.2'%3E%3Cpath d='M0 40h60l20 20h60l20-20h80M0 120h30l20 20h90l30-30h70M40 0v30l20 20v40M160 0v50l-20 20v60l20 20v90M200 240v-50l20-20h20M0 200h50l30-30h40'/%3E%3Ccircle cx='60' cy='40' r='3'/%3E%3Ccircle cx='140' cy='60' r='3'/%3E%3Ccircle cx='170' cy='110' r='3'/%3E%3Ccircle cx='60' cy='90' r='3'/%3E%3Ccircle cx='160' cy='150' r='3'/%3E%3Ccircle cx='80' cy='170' r='3'/%3E%3C/svg%3E")}
@keyframes circuitMove{to{background-position:480px 240px}}
.pat-hex{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='98' fill='none' stroke='%231A3363' stroke-opacity='.09'%3E%3Cpath d='M28 66L0 50V17L28 1l28 16v33L28 66zm0 32L0 82V66'/%3E%3Cpath d='M28 66l28 16v16'/%3E%3C/svg%3E");background-size:56px 98px;animation:hexMove 50s linear infinite;mask-image:linear-gradient(90deg,transparent,#000 30%,#000 70%,transparent)}
.dark .pat-hex{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='98' fill='none' stroke='%2386B1FF' stroke-opacity='.12'%3E%3Cpath d='M28 66L0 50V17L28 1l28 16v33L28 66zm0 32L0 82V66'/%3E%3Cpath d='M28 66l28 16v16'/%3E%3C/svg%3E")}
@keyframes hexMove{to{background-position:0 -490px}}
.scanline{position:absolute;left:0;right:0;height:140px;top:-140px;z-index:-1;background:linear-gradient(180deg,transparent,rgba(79,139,255,.07),transparent);animation:scan 9s linear infinite;pointer-events:none}
@keyframes scan{to{top:110%}}

.orb{position:absolute;border-radius:50%;filter:blur(70px);z-index:-1;pointer-events:none;animation:orbFloat 16s ease-in-out infinite alternate}
.orb.a{width:520px;height:520px;background:rgba(46,107,255,.30)}
.orb.b{width:420px;height:420px;background:rgba(134,177,255,.20);animation-duration:21s}
.light .orb.a{background:rgba(46,107,255,.13)}
.light .orb.b{background:rgba(134,177,255,.25)}
@keyframes orbFloat{0%{transform:translate(0,0) scale(1)}50%{transform:translate(60px,-40px) scale(1.08)}100%{transform:translate(-40px,50px) scale(.95)}}

/* ---------- Bottoni ---------- */
.btn{position:relative;display:inline-flex;white-space:nowrap;align-items:center;gap:.7em;padding:1em 1.6em;border-radius:999px;font-weight:600;font-size:.95rem;letter-spacing:.01em;transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .35s;overflow:hidden;will-change:transform}
.btn svg{width:18px;height:18px;transition:transform .35s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn-primary{background:linear-gradient(135deg,var(--blue-500),var(--blue-400));color:#fff;box-shadow:0 10px 30px -10px rgba(46,107,255,.8),inset 0 1px 0 rgba(255,255,255,.25)}
.btn-primary::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);transition:transform .8s var(--ease)}
.btn-primary:hover::after{transform:translateX(120%)}
.btn-ghost{border:1px solid rgba(134,177,255,.35);color:#fff;background:rgba(255,255,255,.03);backdrop-filter:blur(8px)}
.btn-ghost:hover{background:rgba(134,177,255,.10)}
.light .btn-ghost{color:var(--navy-800);border-color:rgba(18,38,77,.2);background:rgba(255,255,255,.6)}
.btn-dark{background:var(--navy-900);color:#fff}

/* ---------- Reveal in/out viewport ---------- */
[data-rv]{opacity:0;transition:opacity .9s var(--ease),transform 1s var(--ease),filter 1s var(--ease);transition-delay:var(--d,0s)}
[data-rv="up"]{transform:translateY(60px)}
[data-rv="down"]{transform:translateY(-40px)}
[data-rv="left"]{transform:translateX(-70px)}
[data-rv="right"]{transform:translateX(70px)}
[data-rv="zoom"]{transform:scale(.86)}
[data-rv="blur"]{filter:blur(14px);transform:translateY(20px)}
[data-rv="rot"]{transform:perspective(900px) rotateX(18deg) translateY(50px)}
[data-rv].in{opacity:1;transform:none;filter:none}
/* uscita: verso l'alto quando l'elemento esce dal viewport in alto */
[data-rv].out-top{opacity:0;transform:translateY(-50px) scale(.97);filter:blur(4px)}

.split .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em}
.split .w>span{display:inline-block;transform:translateY(110%);transition:transform 1.1s var(--ease);transition-delay:calc(var(--i)*60ms)}
.split.in .w>span{transform:none}

.float{animation:float 6s ease-in-out infinite}
.float.s2{animation-duration:8s;animation-delay:-2s}
.float.s3{animation-duration:10s;animation-delay:-4s}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-18px)}}
.spin{animation:spin 40s linear infinite}
.spin-r{animation:spin 60s linear infinite reverse}
@keyframes spin{to{transform:rotate(360deg)}}

/* =========================================================
   HEADER
   ========================================================= */
.progress{position:fixed;top:0;left:0;height:2px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--blue-500),var(--blue-300));z-index:100}
.site-head{position:fixed;top:0;left:0;right:0;z-index:90;transition:transform .5s var(--ease),background .4s,backdrop-filter .4s,padding .4s}
.site-head .mainbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 0;transition:padding .4s}
.site-head.scrolled{background:rgba(11,24,51,.72);backdrop-filter:blur(16px) saturate(1.4);border-bottom:1px solid var(--line-d)}
.site-head.scrolled .mainbar{padding:12px 0}
.site-head.hide{transform:translateY(-100%)}
.logo{display:flex;align-items:center;gap:12px;font-family:var(--f-head);font-weight:700;font-size:1.15rem;letter-spacing:-.01em}
.logo-mark{width:40px;height:40px;flex:none}
.logo small{display:block;font-family:var(--f-mono);font-weight:400;font-size:.62rem;letter-spacing:.2em;color:var(--blue-300);text-transform:uppercase}
.nav{display:flex;align-items:center;gap:6px}
.nav>li{list-style:none;position:relative}
.nav>li>a{display:block;white-space:nowrap;padding:10px 14px;font-size:.92rem;font-weight:500;color:rgba(255,255,255,.82);border-radius:999px;transition:color .3s,background .3s}
.nav>li>a:hover,.nav>li>a.active{color:#fff;background:rgba(134,177,255,.10)}
.nav .has-sub>a::after{content:"";display:inline-block;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-3px) rotate(45deg);margin-left:8px}
.mega{position:absolute;top:calc(100% + 14px);left:50%;width:760px;transform:translate(-50%,10px);opacity:0;visibility:hidden;transition:.35s var(--ease);background:rgba(14,30,63,.96);backdrop-filter:blur(20px);border:1px solid var(--line-d);border-radius:var(--r-lg);padding:18px;display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:10px;box-shadow:0 40px 80px -30px rgba(0,0,0,.6)}
.has-mega:hover .mega,.has-mega:focus-within .mega{opacity:1;visibility:visible;transform:translate(-50%,0)}
.mega a{display:flex;gap:12px;padding:12px;border-radius:14px;transition:background .3s}
.mega a:hover{background:rgba(134,177,255,.08)}
.mega a svg{width:34px;height:34px;flex:none;color:var(--blue-300)}
.mega b{display:block;font-family:var(--f-head);font-size:.95rem;font-weight:600}
.mega span{font-size:.8rem;color:var(--muted-d);line-height:1.4}
.mega .feat{grid-row:span 3;flex-direction:column;justify-content:flex-end;background:linear-gradient(160deg,rgba(46,107,255,.35),rgba(14,30,63,.2)),url("https://images.unsplash.com/photo-1614064641938-3bbee52942c7?w=600&q=60") center/cover;min-height:260px;position:relative;overflow:hidden}
.mega .feat svg{width:56px;height:56px;color:#fff}
.mega .feat .tag{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.15em;color:var(--blue-200)}
.head-cta{display:flex;align-items:center;gap:10px}
.head-cta .btn{padding:.75em 1.2em;font-size:.88rem}
.burger{display:none;width:44px;height:44px;border-radius:12px;border:1px solid var(--line-d);position:relative}
.burger span{position:absolute;left:12px;right:12px;height:1.5px;background:#fff;transition:.35s var(--ease)}
.burger span:nth-child(1){top:16px}.burger span:nth-child(2){top:22px}.burger span:nth-child(3){top:28px}
.menu-open .burger span:nth-child(1){top:22px;transform:rotate(45deg)}
.menu-open .burger span:nth-child(2){opacity:0}
.menu-open .burger span:nth-child(3){top:22px;transform:rotate(-45deg)}
.mobile-menu{position:fixed;inset:0;z-index:85;background:var(--navy-900);padding:84px 24px 24px;display:flex;flex-direction:column;gap:0;clip-path:circle(0 at calc(100% - 44px) 44px);transition:clip-path .7s var(--ease);overflow:auto}
.menu-open .mobile-menu{clip-path:circle(150% at calc(100% - 44px) 44px)}
.mobile-menu a{font-family:var(--f-head);font-size:1.18rem;font-weight:500;padding:11px 0;border-bottom:1px solid var(--line-d);display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.mobile-menu a small{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--blue-300)}
.mobile-menu .mm-cta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.mobile-menu .mm-cta a{border:0;justify-content:center;font-family:var(--f-body);font-size:.9rem;font-weight:600;padding:13px;border-radius:14px;background:var(--blue-500);align-items:center}
.mobile-menu .mm-cta a.alt{background:rgba(134,177,255,.1);border:1px solid var(--line-d)}

/* =========================================================
   HERO
   ========================================================= */
.hero{min-height:100vh;min-height:100svh;display:flex;align-items:center;padding:140px 0 90px;background:radial-gradient(90% 70% at 50% 0%,#15305F 0%,var(--navy-900) 60%)}
#net{position:absolute;inset:0;z-index:-1;width:100%;height:100%}
.hero .bg-img{opacity:.34;filter:grayscale(.2) contrast(1.1) brightness(1.1);mix-blend-mode:luminosity;mask-image:radial-gradient(ellipse 90% 80% at 50% 45%,#000 35%,transparent 85%);-webkit-mask-image:radial-gradient(ellipse 90% 80% at 50% 45%,#000 35%,transparent 85%)}
.hero-inner{display:grid;grid-template-columns:1fr;justify-items:center;text-align:center;gap:28px}
.status-pill{display:inline-flex;align-items:center;gap:10px;padding:8px 16px 8px 10px;border:1px solid var(--line-d);border-radius:999px;background:rgba(14,30,63,.6);backdrop-filter:blur(10px);font-family:var(--f-mono);font-size:.76rem;letter-spacing:.06em;color:var(--blue-200)}
.status-pill i{width:8px;height:8px;border-radius:50%;background:#5CF2B0;box-shadow:0 0 0 0 rgba(92,242,176,.6);animation:ping 2s infinite}
@keyframes ping{70%{box-shadow:0 0 0 10px rgba(92,242,176,0)}100%{box-shadow:0 0 0 0 rgba(92,242,176,0)}}
.hero h1{max-width:none;font-size:clamp(2.2rem,4.3vw,4.4rem);line-height:1.08}
@media (max-width:900px){.hero h1 .br-d{display:none}}
.hero h1 .accent{position:relative;display:inline-block}
.hero h1 .accent svg{position:absolute;left:0;right:0;bottom:-.08em;width:100%;height:.3em;overflow:visible}
.hero h1 .accent path{stroke-dasharray:600;stroke-dashoffset:600;animation:draw 1.6s 1.2s var(--ease) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.hero .lead{color:var(--muted-d);margin-inline:auto}
.hero-ctas{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
.hero-shield{position:absolute;left:50%;top:50%;width:min(980px,130vw);aspect-ratio:1;transform:translate(-50%,-50%);z-index:-1;opacity:.55;pointer-events:none}
.hud{position:absolute;z-index:2;background:rgba(14,30,63,.62);border:1px solid var(--line-d);backdrop-filter:blur(14px);border-radius:16px;padding:14px 16px;font-family:var(--f-mono);font-size:.72rem;color:var(--blue-200);box-shadow:var(--glow);min-width:190px;text-align:left}
.hud b{display:block;font-family:var(--f-head);font-size:1.25rem;color:#fff;font-weight:600;letter-spacing:-.01em}
.hud .bar{height:4px;border-radius:4px;background:rgba(134,177,255,.15);margin-top:10px;overflow:hidden}
.hud .bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--blue-500),var(--blue-300));border-radius:4px;animation:barFill 2.5s 1.5s var(--ease) forwards}
@keyframes barFill{to{width:var(--w)}}
.hud.h1{left:3%;top:30%}
.hud.h2{right:3%;top:24%}
.hud.h3{left:7%;bottom:12%}
.hud.h4{right:6%;bottom:16%}
.hud .row{display:flex;align-items:center;gap:8px}
.hud .dot{width:7px;height:7px;border-radius:50%;background:#5CF2B0}
.scroll-cue{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;font-family:var(--f-mono);font-size:.65rem;letter-spacing:.25em;color:var(--muted-d);z-index:3}
.scroll-cue span{width:22px;height:36px;border:1.5px solid rgba(134,177,255,.4);border-radius:12px;position:relative}
.scroll-cue span::after{content:"";position:absolute;left:50%;top:7px;width:3px;height:7px;border-radius:2px;background:var(--blue-300);transform:translateX(-50%);animation:wheel 1.8s infinite}
@keyframes wheel{to{transform:translate(-50%,12px);opacity:0}}
.side-coords{position:absolute;left:22px;top:50%;transform:translateY(-50%) rotate(-90deg);transform-origin:left center;font-family:var(--f-mono);font-size:.66rem;letter-spacing:.3em;color:rgba(159,178,214,.5);z-index:3;white-space:nowrap}

/* marquee tecnologie */
.marquee{border-block:1px solid var(--line-l);padding:26px 0;overflow:hidden;background:#fff;color:var(--navy-800);position:relative;z-index:4}
.marquee-track{display:flex;gap:56px;width:max-content;animation:marq 38s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-item{display:flex;align-items:center;gap:14px;font-family:var(--f-head);font-size:1.35rem;font-weight:500;white-space:nowrap;opacity:.75}
.marquee-item svg{width:28px;height:28px;color:var(--blue-500)}
@keyframes marq{to{transform:translateX(-50%)}}

/* =========================================================
   CYBER SECURITY (featured)
   ========================================================= */
#matrix,canvas.matrix{position:absolute;inset:0;width:100%;height:100%;z-index:-1;opacity:.35;mask-image:linear-gradient(90deg,#000,transparent 55%)}
.cyber-head{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:end;margin-bottom:44px}
.badge-feat{display:inline-flex;align-items:center;gap:10px;padding:8px 14px;border-radius:999px;background:linear-gradient(135deg,rgba(46,107,255,.25),rgba(134,177,255,.08));border:1px solid rgba(134,177,255,.35);font-family:var(--f-mono);font-size:.72rem;letter-spacing:.14em;color:var(--blue-200);margin-bottom:22px}
.badge-feat svg{width:16px;height:16px}
.cyber-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:50px;align-items:center}
.radar-wrap{position:relative;aspect-ratio:1;max-width:560px;width:100%;margin-inline:auto}
.radar-wrap svg.radar{width:100%;height:100%}
.radar .sweep{transform-origin:250px 250px;animation:spin 5s linear infinite}
.radar .blip{animation:blip 5s infinite;opacity:0}
@keyframes blip{0%,100%{opacity:0;r:3}8%{opacity:1;r:7}40%{opacity:.2;r:4}}
.shield-core{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}
.shield-core svg{width:38%;filter:drop-shadow(0 0 30px rgba(79,139,255,.7))}
.shield-core .sh-path{stroke-dasharray:900;stroke-dashoffset:900;transition:stroke-dashoffset 2.4s var(--ease)}
.in .shield-core .sh-path,.shield-core.in .sh-path{stroke-dashoffset:0}
.threat-card{position:absolute;background:rgba(11,24,51,.85);border:1px solid var(--line-d);backdrop-filter:blur(10px);border-radius:14px;padding:10px 14px;font-family:var(--f-mono);font-size:.7rem;color:var(--blue-200);display:flex;align-items:center;gap:10px;box-shadow:var(--glow)}
.threat-card svg{width:22px;height:22px;color:var(--blue-300)}
.threat-card.t1{top:6%;right:0}
.threat-card.t2{bottom:14%;left:-4%}
.threat-card.t3{bottom:0;right:10%}
.threat-card b{color:#fff;font-weight:600}

.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px;padding:6px;border:1px solid var(--line-d);border-radius:18px;background:rgba(8,18,38,.35)}
.tab{padding:10px 16px;border-radius:12px;font-size:.86rem;font-weight:500;color:var(--muted-d);transition:.3s var(--ease);position:relative}
.tab[aria-selected="true"]{background:linear-gradient(135deg,var(--blue-500),var(--navy-600));color:#fff;box-shadow:0 8px 24px -10px rgba(46,107,255,.8)}
.tab:hover:not([aria-selected="true"]){color:#fff;background:rgba(134,177,255,.08)}
.panels{display:grid}
.panel{grid-area:1/1;visibility:hidden;opacity:0;pointer-events:none}
.panel.active{visibility:visible;opacity:1;pointer-events:auto;animation:panelIn .7s var(--ease)}
@keyframes panelIn{from{opacity:0;transform:translateY(20px);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
.panel h3{font-size:1.8rem;margin-bottom:14px}
.panel p{color:var(--muted-d);margin-bottom:22px}
.checks{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;margin-bottom:26px}
.checks li{display:flex;gap:10px;align-items:flex-start;font-size:.93rem}
.checks svg{width:20px;height:20px;flex:none;color:var(--blue-300);margin-top:2px}
.light .checks svg{color:var(--blue-500)}
.terminal{border-radius:16px;border:1px solid var(--line-d);background:rgba(6,12,28,.75);overflow:hidden;font-family:var(--f-mono);font-size:.78rem}
.terminal .tbar{display:flex;align-items:center;gap:6px;padding:10px 14px;border-bottom:1px solid var(--line-d);color:var(--muted-d)}
.terminal .tbar i{width:10px;height:10px;border-radius:50%;background:rgba(134,177,255,.25)}
.terminal .tbar span{margin-left:auto;font-size:.68rem}
.term-body{display:grid}
.term-body pre{grid-area:1/1;padding:14px 16px;color:var(--blue-200);white-space:pre-wrap;line-height:1.7;font:inherit}
.term-ghost{visibility:hidden}
.terminal .ok{color:#5CF2B0}.terminal .warn{color:#FFC86B}.terminal .dim{color:#5E7196}
.caret{display:inline-block;width:8px;height:15px;background:var(--blue-300);vertical-align:-2px;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}

.nist{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:52px}
.nist-item{position:relative;padding:26px 22px;border-radius:var(--r);border:1px solid var(--line-d);background:linear-gradient(180deg,rgba(26,51,99,.45),rgba(14,30,63,.2));overflow:hidden;transition:transform .5s var(--ease),border-color .4s}
.nist-item:hover{transform:translateY(-8px);border-color:rgba(134,177,255,.45)}
.nist-item .n{font-family:var(--f-mono);font-size:.7rem;color:var(--blue-300);letter-spacing:.15em}
.nist-item svg{width:54px;height:54px;margin:18px 0;color:#fff}
.nist-item h4{font-size:1.15rem;margin-bottom:6px}
.nist-item p{font-size:.85rem;color:var(--muted-d);line-height:1.5}
.nist-item::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:linear-gradient(90deg,var(--blue-500),var(--blue-300));transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.nist-item:hover::after{transform:scaleX(1)}
.nist-line{position:relative;height:2px;background:var(--line-d);margin-top:30px;border-radius:2px;overflow:hidden}
.nist-line i{position:absolute;inset:0;background:linear-gradient(90deg,transparent,var(--blue-300),transparent);width:30%;animation:flow 3s linear infinite}
@keyframes flow{from{transform:translateX(-100%)}to{transform:translateX(400%)}}

/* =========================================================
   SERVIZI (bento)
   ========================================================= */
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:38px;flex-wrap:wrap}
.sec-head .lead{max-width:48ch}
.bento{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:minmax(240px,auto);gap:18px}
.card{position:relative;border-radius:var(--r-lg);padding:32px;overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s var(--ease);transform-style:preserve-3d;--mx:50%;--my:50%}
.light .card{background:#fff;border:1px solid var(--line-l);box-shadow:0 1px 0 rgba(255,255,255,.8) inset,0 20px 50px -30px rgba(11,24,51,.25)}
.light.alt .card{background:var(--ice-50)}
.dark .card{background:linear-gradient(180deg,rgba(26,51,99,.5),rgba(14,30,63,.3));border:1px solid var(--line-d)}
.card::before{content:"";position:absolute;inset:0;background:radial-gradient(420px circle at var(--mx) var(--my),rgba(46,107,255,.14),transparent 45%);opacity:0;transition:opacity .4s;pointer-events:none}
.card:hover::before{opacity:1}
.card:hover{box-shadow:0 30px 70px -30px rgba(46,107,255,.45)}
.card .ico{width:84px;height:84px;margin-bottom:26px;color:var(--blue-500);transition:transform .6s var(--ease)}
.dark .card .ico{color:var(--blue-300)}
.card:hover .ico{transform:translateZ(40px) scale(1.06) rotate(-4deg)}
.card h3{font-size:1.45rem;margin-bottom:10px}
.card p{font-size:.95rem;color:var(--muted-l)}
.dark .card p{color:var(--muted-d)}
.card .more{display:inline-flex;align-items:center;gap:8px;margin-top:20px;font-weight:600;font-size:.88rem;color:var(--blue-500)}
.dark .card .more{color:var(--blue-300)}
.card .more svg{width:16px;transition:transform .3s}
.card:hover .more svg{transform:translateX(5px)}
.card .num{position:absolute;top:26px;right:28px;font-family:var(--f-mono);font-size:.72rem;color:var(--muted-l);letter-spacing:.1em}
.b-cyber{grid-column:span 4;grid-row:span 2;background:linear-gradient(150deg,var(--navy-800),var(--navy-900))!important;color:#fff;border:0!important;display:flex;flex-direction:column;justify-content:flex-end;min-height:520px}
.b-cyber .bgi{position:absolute;inset:0;background:url("https://images.unsplash.com/photo-1550751827-4bd374c3f58b?w=1400&q=60") center/cover;opacity:.18;filter:grayscale(1);mix-blend-mode:luminosity;transition:transform 1.2s var(--ease)}
.b-cyber:hover .bgi{transform:scale(1.06)}
.b-cyber .big-ico{position:absolute;top:30px;right:30px;width:clamp(160px,22vw,280px);color:var(--blue-300);opacity:.95}
.b-cyber h3{font-size:clamp(2rem,3.4vw,3rem);max-width:14ch}
.b-cyber p{color:var(--muted-d);max-width:48ch;font-size:1.02rem}
.b-cyber .chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.chip{font-family:var(--f-mono);font-size:.72rem;padding:6px 12px;border-radius:999px;border:1px solid var(--line-d);color:var(--blue-200);background:rgba(8,18,38,.4)}
.light .chip{border-color:var(--line-l);color:var(--navy-700);background:var(--ice-100)}
.b-cyber .num{color:var(--blue-300)}
.b-2{grid-column:span 2;grid-row:span 1}
.b-3{grid-column:span 2}
.b-4{grid-column:span 2}
.b-5{grid-column:span 2}
.b-6{grid-column:span 2}
.b-wide{grid-column:span 4;display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:center}
.b-wide .ico{margin:0}

/* =========================================================
   METODO (processo)
   ========================================================= */
.process{position:relative;margin-top:48px}
.process-track{position:absolute;top:56px;left:5%;right:5%;height:2px;background:var(--line-d)}
.process-track i{position:absolute;inset:0;background:linear-gradient(90deg,var(--blue-500),var(--blue-300));transform-origin:left;transform:scaleX(var(--p,0));box-shadow:0 0 18px rgba(79,139,255,.7)}
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;position:relative}
.step{text-align:center;padding:0 6px}
.step .node{width:112px;height:112px;margin:0 auto 26px;border-radius:50%;display:grid;place-items:center;position:relative;background:radial-gradient(circle at 30% 30%,var(--navy-700),var(--navy-900));border:1px solid rgba(134,177,255,.3);box-shadow:0 0 0 8px rgba(11,24,51,1),var(--glow)}
.dark.alt .step .node{box-shadow:0 0 0 8px var(--navy-850),var(--glow)}
.step .node svg{width:50px;height:50px;color:var(--blue-200)}
.step .node::after{content:"";position:absolute;inset:-10px;border-radius:50%;border:1px dashed rgba(134,177,255,.35);animation:spin 18s linear infinite}
.step .idx{font-family:var(--f-mono);font-size:.7rem;color:var(--blue-300);letter-spacing:.2em}
.step h4{font-size:1.2rem;margin:8px 0}
.step p{font-size:.88rem;color:var(--muted-d)}

/* =========================================================
   RECUPERO DATI
   ========================================================= */
.recovery{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;align-items:center}
.orbit{position:relative;aspect-ratio:1;width:100%;max-width:560px;margin-inline:auto}
.orbit .ring{position:absolute;inset:0;border-radius:50%;border:1px dashed rgba(26,51,99,.22)}
.orbit .ring.r2{inset:14%;border-style:solid;border-color:rgba(46,107,255,.18)}
.orbit .ring.r3{inset:28%;border-color:rgba(26,51,99,.12)}
.orbit .disk{position:absolute;inset:26%;filter:drop-shadow(0 30px 40px rgba(11,24,51,.28))}
.orbit .platter{transform-origin:150px 150px;animation:spin 3s linear infinite}
.orbit .arm{transform-origin:250px 60px;animation:arm 4s ease-in-out infinite alternate}
@keyframes arm{from{transform:rotate(0)}to{transform:rotate(18deg)}}
.orbit-rot{position:absolute;inset:0;animation:spin 50s linear infinite}
.orbit-item{position:absolute;width:88px;height:88px;margin:-44px 0 0 -44px;border-radius:22px;background:#fff;border:1px solid var(--line-l);display:grid;place-items:center;box-shadow:0 18px 40px -18px rgba(11,24,51,.35);animation:spin 50s linear infinite reverse}
.orbit-item div{text-align:center}
.orbit-item svg{width:36px;height:36px;color:var(--blue-500);margin:0 auto 4px}
.orbit-item span{font-family:var(--f-mono);font-size:.62rem;color:var(--navy-700);letter-spacing:.06em}
.rec-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:34px 0}
.stat-box{padding:22px;border-radius:var(--r);background:#fff;border:1px solid var(--line-l)}
.light.alt .stat-box{background:var(--ice-50)}
.stat-box b{display:block;font-family:var(--f-head);font-size:2.2rem;font-weight:600;color:var(--navy-800);line-height:1}
.stat-box>span{font-size:.82rem;color:var(--muted-l)}
.warn-box{display:flex;gap:16px;padding:20px 22px;border-radius:var(--r);background:var(--navy-900);color:#fff;margin-top:10px}
.warn-box svg{width:34px;height:34px;flex:none;color:var(--blue-300)}
.warn-box p{font-size:.9rem;color:var(--muted-d)}
.warn-box b{color:#fff}

/* =========================================================
   SETTORI (tabs verticali)
   ========================================================= */
.sectors{display:grid;grid-template-columns:340px 1fr;gap:40px;margin-top:36px}
.vtabs{display:flex;flex-direction:column;gap:6px}
.vtab{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:16px;text-align:left;border:1px solid transparent;transition:.35s var(--ease);color:var(--muted-d);font-weight:500}
.vtab svg{width:30px;height:30px;flex:none}
.vtab[aria-selected="true"]{background:rgba(46,107,255,.14);border-color:rgba(134,177,255,.3);color:#fff}
.vtab[aria-selected="true"] svg{color:var(--blue-300)}
.vtab:hover{color:#fff}
.vstack{display:grid}
.vpanel{grid-area:1/1;display:flex;flex-direction:column;justify-content:flex-end;visibility:hidden;opacity:0;pointer-events:none;position:relative;border-radius:var(--r-lg);overflow:hidden;min-height:440px;padding:48px;border:1px solid var(--line-d);background:var(--navy-800)}
.vpanel.active{visibility:visible;opacity:1;pointer-events:auto;animation:panelIn .8s var(--ease)}
.vpanel .vbg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.22;filter:grayscale(1);mix-blend-mode:luminosity;animation:kb 18s ease-in-out infinite alternate}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.12) translate(-2%,-2%)}}
.vpanel::before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,var(--navy-900) 10%,rgba(11,24,51,.3))}
.vpanel>*{position:relative}
.vpanel .vico{position:absolute;top:40px;right:40px;width:120px;height:120px;color:var(--blue-300)}
.vpanel h3{font-size:2.2rem;margin-bottom:12px;max-width:18ch}
.vpanel p{color:var(--muted-d);max-width:56ch}
.vpanel .chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}

/* =========================================================
   CHI SIAMO
   ========================================================= */
.about{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.big-num{font-family:var(--f-head);font-size:clamp(9rem,22vw,20rem);font-weight:700;line-height:.8;letter-spacing:-.06em;position:relative}
.big-num sup{font-size:.35em;vertical-align:top;color:var(--blue-500);-webkit-text-stroke:0}
.big-num small{display:block;font-size:1rem;letter-spacing:.2em;font-family:var(--f-mono);font-weight:400;color:var(--muted-l);margin-top:24px;text-transform:uppercase}
.values{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:36px}
.value{padding:22px;border-radius:var(--r);border:1px solid var(--line-l);background:rgba(255,255,255,.7);backdrop-filter:blur(6px);transition:transform .4s var(--ease),border-color .4s}
.value:hover{transform:translateY(-6px);border-color:rgba(46,107,255,.35)}
.value svg{width:44px;height:44px;color:var(--blue-500);margin-bottom:12px}
.value h4{font-size:1.05rem;margin-bottom:4px}
.value p{font-size:.86rem;color:var(--muted-l)}

/* =========================================================
   TEAM
   ========================================================= */
.team{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:18px;margin-top:36px}
.member{position:relative;border-radius:var(--r-lg);padding:30px;border:1px solid var(--line-d);background:linear-gradient(180deg,rgba(26,51,99,.55),rgba(14,30,63,.25));overflow:hidden;transition:transform .5s var(--ease)}
.member:hover{transform:translateY(-8px)}
.member.lead-m{grid-row:span 1;background:linear-gradient(160deg,var(--navy-700),var(--navy-900))}
.avatar{width:120px;height:120px;border-radius:30px;display:grid;place-items:center;font-family:var(--f-head);font-size:2.4rem;font-weight:600;background:linear-gradient(135deg,var(--blue-500),var(--navy-600));margin-bottom:22px;position:relative}
.avatar::after{content:"";position:absolute;inset:-6px;border-radius:34px;border:1px solid rgba(134,177,255,.35)}
.member.lead-m .avatar{width:150px;height:150px;font-size:3rem}
.member .role{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.14em;color:var(--blue-300);text-transform:uppercase}
.member h3{font-size:1.6rem;margin:6px 0 10px}
.member p{font-size:.9rem;color:var(--muted-d)}
.member .skills{display:flex;flex-wrap:wrap;gap:6px;margin-top:18px}
.member .tag-ext{position:absolute;top:22px;right:22px;font-family:var(--f-mono);font-size:.62rem;letter-spacing:.12em;padding:5px 10px;border-radius:999px;border:1px solid var(--line-d);color:var(--muted-d)}

/* =========================================================
   FAQ
   ========================================================= */
.faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:start}
.faq-side{position:sticky;top:120px}
.geo-box{margin-top:30px;padding:24px;border-radius:var(--r);background:var(--navy-900);color:#fff;position:relative;overflow:hidden}
.geo-box .mono{font-size:.7rem;letter-spacing:.14em;color:var(--blue-300)}
.geo-box p{font-size:.95rem;color:var(--muted-d);margin-top:8px}
.geo-box svg.ai{position:absolute;right:-20px;bottom:-20px;width:140px;color:rgba(134,177,255,.15)}
.acc{border-bottom:1px solid var(--line-l)}
.acc:first-child{border-top:1px solid var(--line-l)}
.acc button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:26px 0;text-align:left;font-family:var(--f-head);font-size:1.18rem;font-weight:500;color:var(--ink);transition:color .3s}
.acc button:hover{color:var(--blue-500)}
.acc .pm{width:40px;height:40px;flex:none;border-radius:50%;border:1px solid var(--line-l);position:relative;transition:.4s var(--ease)}
.acc .pm::before,.acc .pm::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:1.5px;background:currentColor;transform:translate(-50%,-50%);transition:.4s var(--ease)}
.acc .pm::after{transform:translate(-50%,-50%) rotate(90deg)}
.acc.open .pm{background:var(--blue-500);border-color:var(--blue-500);color:#fff;transform:rotate(180deg)}
.acc.open .pm::after{transform:translate(-50%,-50%) rotate(0)}
.acc .ans{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease)}
.acc.open .ans{grid-template-rows:1fr}
.acc .ans>div{overflow:hidden}
.acc .ans p{padding:0 60px 26px 0;color:var(--muted-l)}
.acc .cat{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.14em;color:var(--blue-500);display:block;margin-bottom:4px}

/* =========================================================
   INSIGHTS
   ========================================================= */
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:36px}
.post{border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line-d);background:rgba(14,30,63,.5);transition:transform .5s var(--ease),border-color .4s;display:flex;flex-direction:column}
.post:hover{transform:translateY(-10px);border-color:rgba(134,177,255,.4)}
.post .thumb{aspect-ratio:16/10;position:relative;overflow:hidden;background:var(--navy-800)}
.post .thumb div{position:absolute;inset:0;background-size:cover;background-position:center;filter:grayscale(1) contrast(1.1);opacity:.55;mix-blend-mode:luminosity;transition:transform 1s var(--ease)}
.post:hover .thumb div{transform:scale(1.08)}
.post .thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(11,24,51,.9),transparent 60%)}
.post .thumb .cat{position:absolute;left:18px;top:18px;z-index:2}
.post .body{padding:24px;display:flex;flex-direction:column;gap:10px;flex:1}
.post .meta{font-family:var(--f-mono);font-size:.7rem;color:var(--muted-d);letter-spacing:.08em}
.post h3{font-size:1.25rem;line-height:1.25}
.post p{font-size:.88rem;color:var(--muted-d)}

/* =========================================================
   CONTATTI
   ========================================================= */
.contact{display:grid;grid-template-columns:.9fr 1.1fr;gap:50px;align-items:stretch}
.c-cards{display:grid;gap:14px;margin-top:36px}
.c-card{display:flex;align-items:center;gap:18px;padding:20px 22px;border-radius:var(--r);background:#fff;border:1px solid var(--line-l);transition:transform .4s var(--ease),border-color .3s}
.c-card:hover{transform:translateX(8px);border-color:rgba(46,107,255,.4)}
.c-card .ci{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;background:var(--ice-100);color:var(--blue-500);flex:none}
.c-card .ci svg{width:26px;height:26px}
.c-card small{display:block;font-family:var(--f-mono);font-size:.68rem;letter-spacing:.12em;color:var(--muted-l);text-transform:uppercase}
.c-card b{font-family:var(--f-head);font-size:1.1rem;font-weight:500;color:var(--ink)}
.form{padding:40px;border-radius:var(--r-lg);background:var(--navy-900);color:#fff;position:relative;overflow:hidden;box-shadow:0 40px 90px -40px rgba(11,24,51,.6)}
.form .pat-grid{opacity:.6}
.form h3{font-size:1.8rem;margin-bottom:6px;position:relative}
.form>p{color:var(--muted-d);margin-bottom:26px;position:relative}
.svc-pick{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px;position:relative}
.svc-pick label{cursor:pointer}
.svc-pick input{position:absolute;opacity:0;pointer-events:none}
.svc-pick span{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:999px;border:1px solid var(--line-d);font-size:.84rem;color:var(--muted-d);transition:.3s}
.svc-pick input:checked+span{background:var(--blue-500);border-color:var(--blue-500);color:#fff}
.svc-pick input:focus-visible+span{outline:2px solid var(--blue-300);outline-offset:2px}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;position:relative}
.field{position:relative}
.field.full{grid-column:1/-1}
.field input,.field textarea{width:100%;padding:22px 16px 10px;border-radius:14px;border:1px solid var(--line-d);background:rgba(8,18,38,.5);color:#fff;font:inherit;font-size:.95rem;transition:border-color .3s,background .3s}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--blue-400);background:rgba(8,18,38,.8)}
.field label{position:absolute;left:16px;top:16px;font-size:.92rem;color:var(--muted-d);pointer-events:none;transition:.25s var(--ease)}
.field input:focus+label,.field input:not(:placeholder-shown)+label,.field textarea:focus+label,.field textarea:not(:placeholder-shown)+label{top:7px;font-size:.68rem;letter-spacing:.08em;color:var(--blue-300)}
.privacy{display:flex;gap:10px;align-items:flex-start;font-size:.8rem;color:var(--muted-d);margin:18px 0 22px;position:relative}
.privacy input{margin-top:3px;accent-color:var(--blue-500)}
.form .btn{position:relative}

/* =========================================================
   CTA BAND + FOOTER
   ========================================================= */
.cta-band{padding:clamp(60px,6vw,88px) 0;text-align:center}
.cta-band h2{max-width:18ch;margin:14px auto 24px}
.cta-band .hero-ctas{margin-top:10px}
.footer{background:var(--navy-950);color:#fff;padding:90px 0 30px;position:relative;overflow:hidden}
.f-grid{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:40px}
.f-grid h5{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.16em;color:var(--blue-300);text-transform:uppercase;margin-bottom:18px;font-weight:500}
.f-grid ul{list-style:none;display:grid;gap:10px}
.f-grid a{font-size:.9rem;color:var(--muted-d);transition:color .3s}
.f-grid a:hover{color:#fff}
.f-grid .nap{font-size:.9rem;color:var(--muted-d);font-style:normal;line-height:1.8;margin-top:18px}
.f-giant{font-family:var(--f-head);font-weight:700;font-size:clamp(4rem,14vw,13rem);letter-spacing:-.06em;line-height:.8;margin-top:80px;color:transparent;-webkit-text-stroke:1px rgba(134,177,255,.22);white-space:nowrap;user-select:none}
.f-bottom{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;border-top:1px solid var(--line-d);padding-top:24px;margin-top:30px;font-size:.8rem;color:var(--muted-d)}

/* back to top + whatsapp */
.fab{position:fixed;right:22px;bottom:22px;z-index:80;display:flex;flex-direction:column;gap:10px}
.fab a{width:54px;height:54px;border-radius:18px;display:grid;place-items:center;background:var(--blue-500);color:#fff;box-shadow:0 14px 30px -10px rgba(46,107,255,.8);transition:transform .3s var(--ease)}
.fab a:hover{transform:translateY(-4px)}
.fab a.top{background:var(--navy-800);border:1px solid var(--line-d);opacity:0;pointer-events:none;transition:.4s}
.fab a.top.show{opacity:1;pointer-events:auto}
.fab svg{width:24px;height:24px}

/* cursor glow */
.cursor-glow{position:fixed;left:0;top:0;width:500px;height:500px;margin:-250px 0 0 -250px;border-radius:50%;background:radial-gradient(circle,rgba(79,139,255,.10),transparent 60%);pointer-events:none;z-index:1;transition:opacity .3s;mix-blend-mode:screen}

/* dev label anteprima */
.dev-note{position:fixed;left:18px;bottom:18px;z-index:80;font-family:var(--f-mono);font-size:.66rem;letter-spacing:.12em;padding:8px 12px;border-radius:10px;background:rgba(8,18,38,.85);border:1px solid var(--line-d);color:var(--blue-200);backdrop-filter:blur(8px)}

/* tilt 3D */
.tilt.in{transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:opacity .9s var(--ease),transform .25s ease-out,box-shadow .5s var(--ease)}

/* =========================================================
   TEMA WORDPRESS – COMPONENTI AGGIUNTIVI
   ========================================================= */
:root{--amb:#FFB547;--amb-2:#FFD48A;--head-h:86px}
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:#fff;color:var(--ink);padding:10px 16px;border-radius:8px}
.skip:focus{left:12px;top:12px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}
.pad-sm{padding:clamp(48px,5vw,72px) 0}
.narrow{max-width:820px}
.center-head{text-align:center;max-width:780px;margin:0 auto}
.center-head .lead{margin-inline:auto}
.te-noanim [data-rv],.te-noanim .split .w>span{opacity:1!important;transform:none!important;filter:none!important}
.btn-sm{padding:.72em 1.15em;font-size:.86rem}
.btn-dark{box-shadow:0 12px 30px -14px rgba(11,24,51,.8)}
.btn-dark:hover{background:var(--navy-700)}
.dot.warn,.status-pill i.warn{background:var(--amb)!important;box-shadow:none}
.hud svg{width:14px;height:14px}
.more{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:.88rem;color:var(--blue-300)}
.light .more{color:var(--blue-500)}
.more svg{width:16px;height:16px;transition:transform .3s}
a:hover>.more svg,.more:hover svg{transform:translateX(5px)}

/* ---------- Header ---------- */
.site-head{position:fixed;top:0;left:0;right:0;z-index:90}
body.admin-bar .site-head{top:32px}
body.admin-bar .progress{top:32px}
.alertbar{background:linear-gradient(90deg,#3a2a0e,#1a2140 40%,#12264D);border-bottom:1px solid rgba(255,181,71,.25);font-size:.82rem;overflow:hidden;max-height:44px;transition:max-height .45s var(--ease),opacity .4s}
.alertbar .wrap{display:flex;align-items:center;justify-content:center;gap:12px;padding:9px 0;text-align:center}
.ab-dot{width:8px;height:8px;border-radius:50%;background:var(--amb);flex:none;box-shadow:0 0 0 0 rgba(255,181,71,.6);animation:pingA 2s infinite}
@keyframes pingA{70%{box-shadow:0 0 0 9px rgba(255,181,71,0)}100%{box-shadow:0 0 0 0 rgba(255,181,71,0)}}
.ab-text{color:#F3E6CF}
.ab-cta{color:var(--amb-2);font-weight:600;white-space:nowrap}
.ab-cta:hover{color:#fff}
.site-head.scrolled .alertbar{max-height:0;opacity:0;border:0}
.site-head .mainbar{padding:18px 0}
.logo img.logo-mark{width:40px;height:46px;object-fit:contain}
.logo>span{white-space:nowrap;line-height:1.15}
.logo small{letter-spacing:.1em;font-size:.56rem;margin-top:3px}
.main-nav .nav{display:flex;align-items:center;gap:2px;list-style:none}
.nav>li{position:relative}
.nav>li>a{font-size:.9rem;padding:10px 12px}
.nav>li.is-active>a{color:#fff;background:rgba(134,177,255,.10)}
.dd{position:absolute;top:calc(100% + 12px);left:50%;transform:translate(-50%,10px);min-width:300px;opacity:0;visibility:hidden;transition:.3s var(--ease);background:rgba(14,30,63,.97);backdrop-filter:blur(18px);border:1px solid var(--line-d);border-radius:20px;padding:10px;box-shadow:0 40px 80px -30px rgba(0,0,0,.6)}
.dd::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.has-sub:hover>.dd,.has-sub:focus-within>.dd{opacity:1;visibility:visible;transform:translate(-50%,0)}
.dd-list{list-style:none;display:grid;gap:2px}
.dd-list a{display:block;padding:11px 14px;border-radius:12px;transition:background .25s}
.dd-list a:hover,.dd-list li.is-active a{background:rgba(134,177,255,.10)}
.dd-list b{display:block;font-family:var(--f-head);font-weight:600;font-size:.93rem;color:#fff}
.dd-list span{display:block;font-size:.78rem;color:var(--muted-d);margin-top:2px}
.te-fraud>a,.nav>li:nth-child(2)>a{color:var(--amb-2)!important}
.icon-btn{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;border:1px solid var(--line-d);background:rgba(255,255,255,.04);transition:.3s}
.icon-btn svg{width:20px;height:20px}
.icon-btn.wa:hover{background:#25D366;border-color:#25D366}
.head-cta .head-phone svg{width:16px;height:16px}

/* mobile menu */
.mobile-menu{padding:calc(var(--head-h) + 10px) 22px 24px}
.mm-nav{list-style:none}
.mm-nav>li{border-bottom:1px solid var(--line-d);display:flex;flex-wrap:wrap;align-items:center}
.mm-nav>li>a{flex:1;font-family:var(--f-head);font-size:1.12rem;font-weight:500;padding:11px 0;border:0;display:block}
.mm-nav>li:nth-child(2)>a{color:var(--amb-2)}
.mm-toggle{width:40px;height:40px;display:grid;place-items:center;border-radius:10px;color:var(--blue-200)}
.mm-toggle svg{width:20px;height:20px;transition:transform .3s}
.mm-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
.mm-sub{list-style:none;width:100%;display:none;padding:0 0 10px 12px;border-left:1px solid var(--line-d);margin:0 0 8px 4px}
.mm-sub.open{display:block}
.mm-sub a{display:block;padding:7px 0;font-size:.92rem;color:var(--muted-d);border:0;font-family:var(--f-body)}
.mobile-menu .mm-cta a{display:flex;gap:8px}
.mobile-menu .mm-cta svg{width:18px;height:18px}
.mm-fraud{margin-top:10px;display:flex;align-items:center;justify-content:center;gap:8px;padding:13px;border-radius:14px;background:rgba(255,181,71,.12);border:1px solid rgba(255,181,71,.35);color:var(--amb-2);font-weight:600;font-size:.9rem}
.mm-fraud svg{width:18px;height:18px}

/* ---------- Hero home: percorsi ---------- */
.hero{padding-top:calc(var(--head-h) + 80px)}
.hero h1{max-width:none;font-size:clamp(2.2rem,4.3vw,4.4rem);line-height:1.08}
.paths{display:grid;grid-template-columns:1fr 1fr;gap:14px;width:min(760px,100%);margin-top:6px}
.path{display:flex;align-items:center;gap:16px;text-align:left;padding:18px 20px;border-radius:20px;background:rgba(14,30,63,.66);border:1px solid var(--line-d);backdrop-filter:blur(12px);transition:border-color .3s,background .3s,transform .4s var(--ease)}
.path:hover{border-color:rgba(134,177,255,.5);background:rgba(26,51,99,.7)}
.path b{display:block;font-family:var(--f-head);font-size:1.08rem;font-weight:600}
.path small{display:block;color:var(--muted-d);font-size:.82rem;margin-top:2px}
.path>svg{width:20px;height:20px;margin-left:auto;flex:none;color:var(--blue-300)}
.path-ico{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;background:rgba(46,107,255,.2);color:var(--blue-200);flex:none}
.path-ico svg{width:26px;height:26px}
.path-fraud{border-color:rgba(255,181,71,.4);background:linear-gradient(135deg,rgba(255,181,71,.16),rgba(14,30,63,.7))}
.path-fraud .path-ico{background:rgba(255,181,71,.2);color:var(--amb-2)}
.path-fraud>svg{color:var(--amb-2)}
.path-fraud:hover{border-color:var(--amb)}

/* ---------- Badge alert ---------- */
.badge-alert{display:inline-flex;align-items:center;gap:9px;padding:8px 14px;border-radius:999px;background:linear-gradient(135deg,rgba(255,181,71,.22),rgba(255,181,71,.06));border:1px solid rgba(255,181,71,.45);font-family:var(--f-mono);font-size:.72rem;letter-spacing:.12em;color:var(--amb-2);text-transform:uppercase;margin-bottom:22px}
.badge-alert svg{width:16px;height:16px}
.light .badge-alert{color:#8a5a00;background:rgba(255,181,71,.18);border-color:rgba(214,140,20,.4)}

/* ---------- Hero pagine interne ---------- */
.page-hero{padding:calc(var(--head-h) + 56px) 0 64px;min-height:560px;display:flex;align-items:center;background:radial-gradient(90% 70% at 30% 0%,#15305F 0%,var(--navy-900) 60%)}
.page-hero.is-fraud{background:radial-gradient(90% 70% at 30% 0%,#2a2a45 0%,var(--navy-900) 60%)}
.page-hero.is-small{min-height:0;padding-bottom:56px}
.page-hero .bg-img{opacity:.26;mask-image:linear-gradient(90deg,transparent,#000 50%);-webkit-mask-image:linear-gradient(90deg,transparent,#000 50%)}
.ph-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:40px;align-items:center}
.ph-text .h-xl{font-size:clamp(2.2rem,4.6vw,4.2rem);margin:6px 0 22px}
.page-hero.is-small .h-lg{margin:8px 0 18px;max-width:22ch}
.ph-text .lead{margin-bottom:30px}
.ph-text .hero-ctas{justify-content:flex-start}
.ph-art{position:relative;aspect-ratio:1;width:100%;max-width:420px;justify-self:center}
.ph-rings{width:100%;height:100%}
.ph-icon{position:absolute;inset:0;display:grid;place-items:center}
.ph-icon svg{width:34%;height:34%;color:var(--blue-200);filter:drop-shadow(0 0 30px rgba(79,139,255,.6))}
.is-fraud .ph-icon svg{color:var(--amb-2);filter:drop-shadow(0 0 30px rgba(255,181,71,.45))}
.hud-mini{position:absolute;padding:10px 14px;border-radius:14px;background:rgba(11,24,51,.85);border:1px solid var(--line-d);backdrop-filter:blur(10px);font-family:var(--f-mono);font-size:.68rem;color:var(--blue-200);display:flex;align-items:center;gap:8px;box-shadow:var(--glow)}
.hud-mini b{color:#fff;margin-left:4px}
.hud-mini svg{width:16px;height:16px}
.hud-mini .dot{width:7px;height:7px;border-radius:50%;background:#5CF2B0}
.hud-mini.h-a{top:8%;left:-6%}
.hud-mini.h-b{bottom:10%;right:-4%}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;font-family:var(--f-mono);font-size:.7rem;letter-spacing:.08em;color:var(--muted-d);margin-bottom:22px;text-transform:uppercase}
.crumbs li+li::before{content:"/";margin-right:6px;opacity:.5}
.crumbs a:hover{color:#fff}
.crumbs [aria-current]{color:var(--blue-200)}
.post-meta{display:flex;flex-wrap:wrap;gap:8px 20px;font-family:var(--f-mono);font-size:.74rem;color:var(--muted-d);letter-spacing:.06em}

/* ---------- Intro + risposta breve ---------- */
.intro-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:start}
.prose-lead p{font-size:1.06rem;color:var(--muted-l);line-height:1.75}
.dark .prose-lead p{color:var(--muted-d)}
.answer-box{position:sticky;top:120px;padding:30px;border-radius:var(--r-lg);background:var(--navy-900);color:#fff;box-shadow:0 40px 80px -40px rgba(11,24,51,.7);overflow:hidden}
.answer-box::after{content:"";position:absolute;right:-60px;top:-60px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(46,107,255,.35),transparent 70%)}
.ab-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;color:var(--blue-300)}
.ab-head svg{width:28px;height:28px}
.ab-head .mono{font-size:.72rem;letter-spacing:.16em}
.answer-box p{color:#DCE6FA;font-size:.98rem;line-height:1.7;position:relative;z-index:1}
.answer-box .chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:18px;position:relative;z-index:1}
.answer-box .chip{background:rgba(134,177,255,.08);color:var(--blue-200);border-color:var(--line-d)}

/* ---------- Feature cards ---------- */
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.feat-grid.n4{grid-template-columns:repeat(4,1fr)}
.feat-grid.n4 .feat .ico,.feat-grid.n4 .feat .ico{width:70px;height:70px}
.feat{min-height:280px}
.feat .ico{width:78px;height:78px}
.steps.n4{grid-template-columns:repeat(4,1fr)}
.light .step p{color:var(--muted-l)}
.light .step .node{box-shadow:0 0 0 8px var(--ice-50),0 20px 50px -20px rgba(11,24,51,.5)}
.light.alt .step .node{box-shadow:0 0 0 8px #fff,0 20px 50px -20px rgba(11,24,51,.5)}
.light .process-track{background:var(--line-l)}
.light .step .idx{color:var(--blue-500)}

/* ---------- Truffe (home) ---------- */
.fraud-sec .bg-fade{background:radial-gradient(120% 80% at 50% 0%,rgba(42,36,30,.25) 0%,var(--navy-850) 85%)}
.fraud-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
.trace-wrap{position:relative;max-width:560px;width:100%;margin-inline:auto}
.trace{width:100%;height:auto;overflow:visible}
.trace .flow path{stroke-dasharray:10 16;animation:flowD 1.6s linear infinite}
@keyframes flowD{to{stroke-dashoffset:-52}}
.trace .tn{transition:transform .4s}
.trace .hit rect{animation:hitG 2.4s ease-in-out infinite}
@keyframes hitG{50%{stroke-opacity:.35}}
.trace-card{position:absolute;background:rgba(11,24,51,.88);border:1px solid rgba(255,181,71,.3);backdrop-filter:blur(10px);border-radius:14px;padding:10px 14px;font-family:var(--f-mono);font-size:.7rem;color:var(--blue-200);display:flex;align-items:center;gap:10px;box-shadow:0 20px 40px -20px rgba(0,0,0,.6)}
.trace-card svg{width:22px;height:22px;color:var(--amb-2)}
.trace-card b{color:#fff}
.trace-card.t1{top:-4%;left:0}
.trace-card.t2{bottom:-2%;right:4%}
.types{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.type{display:flex;align-items:center;gap:14px;padding:18px;border-radius:18px;border:1px solid var(--line-d);background:linear-gradient(180deg,rgba(26,51,99,.5),rgba(14,30,63,.3));transition:.35s var(--ease)}
.type svg{width:44px;height:44px;flex:none;color:var(--amb-2)}
.type b{font-family:var(--f-head);font-weight:600;font-size:1rem;line-height:1.25}
.type:hover{border-color:rgba(255,181,71,.5);transform:translateY(-4px)}
.fraud-cta{margin-top:26px}
.soglia{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;border-radius:14px;background:rgba(255,181,71,.12);border:1px solid rgba(255,181,71,.35);color:var(--amb-2);font-weight:600;font-size:.9rem;margin-bottom:20px}
.soglia svg{width:22px;height:22px}
.light .soglia{color:#7a4f00;background:rgba(255,181,71,.16)}
.fraud-sec .nist{grid-template-columns:repeat(4,1fr)}
.fraud-sec .nist-item svg{color:var(--amb-2)}
.nist-line.amber i{background:linear-gradient(90deg,transparent,var(--amb),transparent)}
#truffe .cyber-head h2{max-width:18ch}

/* ---------- Checklist ---------- */
.checklist-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:start}
.checklist{list-style:none;display:grid;gap:12px;counter-reset:ck}
.checklist li{display:flex;gap:18px;align-items:flex-start;padding:20px 22px;border-radius:var(--r);background:rgba(255,255,255,.85);border:1px solid var(--line-l);backdrop-filter:blur(6px);transition:transform .4s var(--ease),border-color .3s}
.checklist li:hover{transform:translateX(6px);border-color:rgba(46,107,255,.4)}
.ck-ico{width:52px;height:52px;border-radius:16px;background:var(--navy-900);color:var(--amb-2);display:grid;place-items:center;flex:none;position:relative}
.ck-ico::after{counter-increment:ck;content:counter(ck);position:absolute;top:-8px;right:-8px;width:22px;height:22px;border-radius:50%;background:var(--amb);color:var(--navy-900);font:600 .7rem/22px var(--f-mono);text-align:center}
.ck-ico svg{width:28px;height:28px}
.checklist b{font-family:var(--f-head);font-size:1.08rem;font-weight:600;display:block;margin-bottom:3px}
.checklist p{font-size:.9rem;color:var(--muted-l)}
.partner-mini{display:flex;gap:16px;align-items:center;padding:18px 20px;border-radius:var(--r);background:#fff;border:1px solid var(--line-l);margin-top:26px}
.partner-mini>svg{width:46px;height:46px;color:var(--blue-500);flex:none}
.partner-mini small{display:block;font-family:var(--f-mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-l)}
.partner-mini b{display:block;font-family:var(--f-head);font-size:1.15rem}
.partner-mini span{font-size:.85rem;color:var(--muted-l)}

/* ---------- Bento: card truffe ---------- */
.b-fraud{background:linear-gradient(150deg,#2a2440,var(--navy-900))!important}
.b-fraud .big-ico{color:var(--amb-2)}
.b-fraud .num{color:var(--amb-2)!important}
.b-fraud .more{color:var(--amb-2)!important}
.bento .b-2{grid-column:span 2}
.bento .b-3,.bento .b-4,.bento .b-5,.bento .b-6{grid-column:span 2}
.bento .b-2 .ico{color:var(--blue-500)}

/* ---------- Partner legale ---------- */
.partner{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;align-items:center}
.partner-card{position:relative;padding:28px;border-radius:var(--r-lg);background:linear-gradient(160deg,var(--navy-700),var(--navy-900));color:#fff;text-align:center;box-shadow:0 40px 80px -40px rgba(0,0,0,.6);border:1px solid var(--line-d)}
.partner-photo{width:200px;height:200px;margin:0 auto 20px;border-radius:30px;overflow:hidden;border:1px solid rgba(134,177,255,.35);box-shadow:0 0 0 8px rgba(134,177,255,.06)}
.partner-photo img{width:100%;height:100%;object-fit:cover}
.partner-badge{display:inline-flex;align-items:center;gap:8px;font-family:var(--f-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-200);margin-bottom:8px}
.partner-badge svg{width:20px;height:20px}
.partner-card b{display:block;font-family:var(--f-head);font-size:1.6rem;font-weight:600;margin-bottom:8px}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:26px 0 20px}
.duo>div{padding:20px;border-radius:var(--r);border:1px solid var(--line-d);background:rgba(14,30,63,.45)}
.light .duo>div{background:#fff;border-color:var(--line-l)}
.duo svg{width:40px;height:40px;color:var(--blue-300);margin-bottom:10px}
.light .duo svg{color:var(--blue-500)}
.duo b{display:block;font-family:var(--f-head);font-size:1.05rem}
.duo span{font-size:.86rem;color:var(--muted-d)}
.light .duo span{color:var(--muted-l)}

/* ---------- Correlati / sottopagine ---------- */
.rel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.rel-grid.n4{grid-template-columns:repeat(4,1fr)}
.rel-card .ico,.sub-card .ico{width:66px;height:66px;margin-bottom:20px}
.rel-card h3,.sub-card h3{font-size:1.25rem}
.sub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.sub-card{display:flex;flex-direction:column;min-height:280px}
.sub-card .more{margin-top:auto;padding-top:18px}
.sub-card p{flex:0}

/* ---------- Pillars (servizi) ---------- */
.pillars{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.pillar{position:relative;overflow:hidden;border-radius:var(--r-lg);padding:40px;min-height:520px;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(150deg,var(--navy-800),var(--navy-900))}
.pillar.is-fraud{background:linear-gradient(150deg,#2a2440,var(--navy-900))}
.pillar .bgi{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.18;filter:grayscale(1);mix-blend-mode:luminosity}
.pillar>*{position:relative}
.pillar .big-ico{position:absolute;top:30px;right:30px;width:150px;height:150px;color:var(--blue-300)}
.pillar.is-fraud .big-ico,.pillar.is-fraud .num{color:var(--amb-2)}
.pillar .num{position:absolute;top:34px;left:40px;font-size:.72rem;letter-spacing:.12em;color:var(--blue-300)}
.pillar h3{font-size:clamp(1.8rem,3vw,2.6rem);margin-bottom:12px}
.pillar p{color:var(--muted-d);max-width:44ch}
.pillar ul{list-style:none;margin:20px 0 26px;display:grid;gap:6px}
.pillar ul a{color:var(--blue-200);font-size:.92rem}
.pillar ul a:hover{color:#fff}
.pillar .btn{align-self:flex-start}

/* ---------- Sedi ---------- */
.sedi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.sede-card{position:relative;padding:28px;border-radius:var(--r-lg);background:#fff;border:1px solid var(--line-l);transition:transform .5s var(--ease),box-shadow .5s;--mx:50%;--my:50%}
.dark .sede-card{background:linear-gradient(180deg,rgba(26,51,99,.5),rgba(14,30,63,.3));border-color:var(--line-d)}
.sede-card:hover{box-shadow:0 30px 70px -30px rgba(46,107,255,.45)}
.sede-card .num{font-size:.68rem;letter-spacing:.14em;color:var(--blue-500)}
.dark .sede-card .num{color:var(--blue-300)}
.sede-card .ico{width:60px;height:60px;color:var(--blue-500);margin:16px 0}
.dark .sede-card .ico{color:var(--blue-300)}
.sede-card h3{font-size:1.6rem;margin-bottom:6px}
.sede-card .addr{color:var(--muted-l);font-size:.92rem;margin-bottom:12px}
.dark .sede-card .addr{color:var(--muted-d)}
.sede-links{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px}
.sedi-grid.compact .sede-card{padding:22px}
.sedi-grid.compact .ico{width:40px;height:40px;margin:0 0 10px}
.sedi-grid.compact h3{font-size:1.25rem}
.remote-box{display:flex;align-items:center;gap:20px;margin-top:30px;padding:24px 28px;border-radius:var(--r-lg);background:var(--navy-900);color:#fff}
.remote-box>svg{width:44px;height:44px;color:#5CF2B0;flex:none}
.remote-box b{font-family:var(--f-head);font-size:1.2rem}
.remote-box p{color:var(--muted-d);font-size:.92rem}
.remote-box .btn{margin-left:auto}
.sede-box{position:static}
.sede-info{list-style:none;display:grid;gap:12px;margin:6px 0 22px;position:relative;z-index:1}
.sede-info li{display:flex;gap:12px;align-items:center;color:#DCE6FA}
.sede-info svg{width:22px;height:22px;color:var(--blue-300);flex:none}
.sede-info a:hover{color:#fff;text-decoration:underline}

/* ---------- FAQ su dark + filtri ---------- */
.dark .acc{border-color:var(--line-d)}
.dark .acc button{color:#fff}
.dark .acc .pm{border-color:var(--line-d)}
.dark .acc .ans p,.dark .acc .ans div{color:var(--muted-d)}
.dark .acc button:hover{color:var(--blue-300)}
.dark .geo-box{background:rgba(14,30,63,.6);border:1px solid var(--line-d)}
.acc .ans div>p:first-child{margin-top:0}
.acc .ans>div>*:not(:last-child){margin-bottom:10px}
.acc .ans>div{padding-right:60px}
.acc .ans>div>p{padding:0}
.acc.open .ans>div{padding-bottom:24px}
.acc .ans>div,.acc .ans p{color:var(--muted-l)}
.faq-filter,.cat-filter{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 10px}
.cat-filter{margin:0 0 34px}
.faq-filter .chip,.cat-filter .chip{cursor:pointer;font-size:.78rem;padding:8px 14px;transition:.25s}
.chip.is-on{background:var(--navy-900)!important;color:#fff!important;border-color:var(--navy-900)!important}
.acc.is-hidden{display:none}

/* ---------- Team ---------- */
.team.n2{grid-template-columns:1.2fr 1fr}
.team.n1{grid-template-columns:1fr;max-width:640px}
.avatar{overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
.m-bio{font-size:.92rem;color:var(--muted-d)}
.m-bio p+p{margin-top:8px}
.m-links{display:flex;gap:16px;margin-top:16px;font-size:.86rem}
.m-links a{color:var(--blue-300)}
.light .member{background:linear-gradient(160deg,var(--navy-700),var(--navy-900));color:#fff;border-color:transparent}
.light .member .chip{background:rgba(134,177,255,.08);border-color:var(--line-d);color:var(--blue-200)}

/* ---------- Form ---------- */
.form-wrap{position:relative}
.form-switch{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:6px;border-radius:18px;background:rgba(11,24,51,.06);border:1px solid var(--line-l);margin-bottom:14px}
.form-switch button{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;border-radius:13px;font-weight:600;font-size:.88rem;color:var(--muted-l);transition:.3s}
.form-switch button svg{width:18px;height:18px}
.form-switch button[aria-selected="true"]{background:var(--navy-900);color:#fff}
.form-switch button[aria-selected="true"]:first-child svg{color:var(--amb-2)}
.ff{display:none}
.ff.active{display:block;animation:panelIn .6s var(--ease)}
.form-fraud{box-shadow:0 40px 90px -40px rgba(11,24,51,.6),inset 0 0 0 1px rgba(255,181,71,.18)}
.form .badge-alert{position:relative;margin-bottom:14px}
.field.sel select{width:100%;padding:22px 40px 10px 16px;border-radius:14px;border:1px solid var(--line-d);background:rgba(8,18,38,.5) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%2386B1FF' stroke-width='1.8'%3E%3Cpath d='m1 1 5 5 5-5'/%3E%3C/svg%3E") no-repeat right 16px center;color:#fff;font:inherit;font-size:.95rem;appearance:none;-webkit-appearance:none}
.field.sel select option{color:#0B1426}
.field.sel select:focus{outline:none;border-color:var(--blue-400)}
.field.sel label{top:7px;font-size:.68rem;letter-spacing:.08em;color:var(--blue-300)}
.form-actions{display:flex;flex-wrap:wrap;gap:10px;position:relative}
.form-note{position:relative;font-size:.76rem;color:var(--muted-d);margin-top:16px}
.form-ok,.form-err{position:relative;display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:14px;margin-bottom:18px;font-size:.9rem}
.form-ok{background:rgba(92,242,176,.12);border:1px solid rgba(92,242,176,.4);color:#D4FBEA}
.form-ok svg{width:22px;height:22px;flex:none;color:#5CF2B0}
.form-ok a{color:#5CF2B0;text-decoration:underline}
.form-err{background:rgba(255,120,120,.12);border:1px solid rgba(255,120,120,.4);color:#FFD9D9}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.privacy a{color:var(--blue-300);text-decoration:underline}
.c-card.is-note .ci{background:rgba(255,181,71,.16);color:#a06500}
.c-card .ci svg{width:26px;height:26px}

/* ---------- Blog ---------- */
.posts-light .post{background:#fff;border-color:var(--line-l)}
.posts-light .post .body h3{color:var(--ink)}
.posts-light .post .body p,.posts-light .post .meta{color:var(--muted-l)}
.posts-light .post .more{color:var(--blue-500)}
.post .more{color:var(--blue-300);margin-top:auto}
.post .thumb .cat{background:rgba(8,18,38,.7);color:var(--blue-200);border-color:var(--line-d)}
.pager .nav-links{display:flex;gap:8px;justify-content:center;margin-top:50px}
.pager .page-numbers{min-width:44px;height:44px;display:grid;place-items:center;border-radius:12px;border:1px solid var(--line-l);background:#fff;font-weight:600;padding:0 12px}
.pager .page-numbers.current{background:var(--navy-900);color:#fff;border-color:var(--navy-900)}
.empty{text-align:center;padding:40px 0}
.search-form{display:flex;gap:10px;max-width:520px;margin:20px auto 0}
.search-form input{flex:1;padding:14px 16px;border-radius:14px;border:1px solid var(--line-l);font:inherit}
.article-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:60px;align-items:start}
.side-box{padding:28px;border-radius:var(--r-lg);background:var(--navy-900);color:#fff;display:grid;gap:12px}
.side-box h3{font-size:1.4rem}
.side-box p{color:var(--muted-d);font-size:.9rem}
.side-box .btn{justify-content:center}
.sticky{position:sticky;top:120px}
.post-cover{margin:0 0 30px;border-radius:var(--r-lg);overflow:hidden}
.prose{font-size:1.06rem;line-height:1.8;color:#24324F}
.prose>*+*{margin-top:1.1em}
.prose h2{font-size:clamp(1.5rem,2.4vw,2rem);margin-top:1.8em;color:var(--ink)}
.prose h3{font-size:1.3rem;margin-top:1.5em;color:var(--ink)}
.prose a{color:var(--blue-500);text-decoration:underline}
.prose ul,.prose ol{padding-left:1.3em}
.prose li+li{margin-top:.4em}
.prose blockquote{border-left:3px solid var(--blue-500);padding:6px 0 6px 20px;font-family:var(--f-head);font-size:1.2rem;color:var(--ink)}
.prose img{border-radius:16px;height:auto}
.share{display:flex;align-items:center;gap:10px;margin-top:40px!important;padding-top:24px;border-top:1px solid var(--line-l)}
.share .mono{font-size:.7rem;letter-spacing:.16em;color:var(--muted-l);margin-right:6px}
.share a{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:var(--ice-100);color:var(--navy-800);text-decoration:none}
.share svg{width:18px;height:18px}
.is-404{min-height:100vh}
.is-404 h1{font-size:clamp(7rem,22vw,16rem)}

/* ---------- Footer ---------- */
.f-grid{grid-template-columns:1.6fr 1fr 1fr 1fr}
.f-text{color:var(--muted-d);font-size:.9rem;margin:18px 0;max-width:42ch}
.f-contacts{list-style:none;display:grid;gap:8px}
.f-contacts a{display:inline-flex;align-items:center;gap:10px;color:#fff;font-size:.92rem}
.f-contacts svg{width:18px;height:18px;color:var(--blue-300)}
.f-sedi{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;margin-top:22px}
.f-sedi b{display:block;font-family:var(--f-head);font-size:.92rem}
.f-sedi span{font-size:.8rem;color:var(--muted-d)}
.f-social{display:flex;gap:8px;margin-top:20px}
.f-social a{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;border:1px solid var(--line-d)}
.f-social svg{width:18px;height:18px}
.f-grid ul{list-style:none}
.f-legal ul{display:flex;gap:16px;list-style:none}
.f-bottom a:hover{color:#fff}
.fab a.wa{background:#25D366;box-shadow:0 14px 30px -10px rgba(37,211,102,.7)}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1320px){.head-cta .btn-ghost{display:none}.nav>li>a{padding:10px 11px}}
@media (max-width:1100px){
  .nav,.head-cta .btn-ghost{display:none}
  .burger{display:block}
  .hud.h1,.hud.h4{display:none}
  .cyber-head,.cyber-grid,.recovery,.about,.faq,.contact{grid-template-columns:1fr}
  .faq-side{position:static}
  .nist{grid-template-columns:repeat(3,1fr)}
  .bento{grid-template-columns:repeat(2,1fr)}
  .b-cyber,.b-wide{grid-column:span 2}
  .b-2,.b-3,.b-4,.b-5,.b-6{grid-column:span 1}
  .sectors{grid-template-columns:1fr}
  .vtabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
  .vtab{flex-direction:column;justify-content:center;text-align:center;gap:8px;padding:14px 8px;font-size:.8rem;line-height:1.25;border-color:var(--line-d);background:rgba(14,30,63,.45)}
  .vtab svg{width:26px;height:26px}
  .recovery{gap:0}
  .rec-text{display:contents}
  .rec-text>*{order:2}
  .rec-text>.eyebrow,.rec-text>h2{order:0}
  .orbit{order:1;width:calc(100% - 96px);margin:36px auto 56px}
  .team{grid-template-columns:1fr 1fr}
  .member.lead-m{grid-column:span 2}
  .f-grid{grid-template-columns:1fr 1fr 1fr}
  .f-grid>div:first-child{grid-column:1/-1}
}
@media (max-width:760px){
  .wrap{width:calc(100% - 32px)}
  .hud,.side-coords{display:none}
  .steps{grid-template-columns:1fr;gap:34px}
  .process-track{display:none}
  .nist{grid-template-columns:1fr 1fr}
  .bento{grid-template-columns:1fr}
  .b-cyber,.b-wide,.b-2,.b-3,.b-4,.b-5,.b-6{grid-column:span 1}
  .b-wide{grid-template-columns:1fr}
  .b-cyber{padding-top:190px}
  .b-cyber .big-ico{width:120px;top:50px;right:auto;left:28px;opacity:.9}
  .head-cta .btn-primary{display:none}
  .hero h1 .accent svg{display:none}
  .logo{font-size:1rem}
  .checks{grid-template-columns:1fr}
  .rec-stats{grid-template-columns:1fr 1fr 1fr;gap:8px}
  .stat-box{padding:14px}.stat-box b{font-size:1.5rem}
  .team,.posts{grid-template-columns:1fr}
  .member.lead-m{grid-column:span 1}
  .values{grid-template-columns:1fr}
  .fields{grid-template-columns:1fr}
  .form{padding:26px}
  .vpanel{padding:110px 24px 28px;min-height:420px}
  .vpanel h3{font-size:1.6rem}
  .vpanel .vico{width:70px;height:70px;top:24px;right:24px}
  .f-grid{grid-template-columns:1fr 1fr}
  .threat-card{display:none}
  .orbit{width:calc(100% - 76px)}
  .orbit-item{width:66px;height:66px;margin:-33px 0 0 -33px;border-radius:16px}
  .vtabs{grid-template-columns:repeat(3,1fr)}
  .vtab{font-size:.74rem;padding:12px 6px}
  .orbit-item svg{width:26px;height:26px}
  .dev-note{display:none}
  .acc .ans p{padding-right:0}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  [data-rv]{opacity:1;transform:none;filter:none}
  .split .w>span{transform:none}
}
/* responsive aggiuntivo tema */
.hud.h4{bottom:14%;right:7%}
.privacy span{flex:1}
@media (max-width:1560px){.head-phone{display:none!important}}
@media (max-width:1320px){.nav>li>a{padding:10px 9px;font-size:.86rem}}
@media (max-width:1180px){
  .main-nav{display:none}
  .burger{display:block}
  .head-cta .btn-primary{display:none}
  .ph-grid,.intro-grid,.fraud-grid,.checklist-grid,.partner,.article-grid{grid-template-columns:1fr}
  .ph-art{max-width:320px}
  .answer-box{position:static}
  .feat-grid,.feat-grid.n4,.sub-grid,.rel-grid,.rel-grid.n4{grid-template-columns:1fr 1fr}
  .sedi-grid{grid-template-columns:1fr 1fr}
  .pillars{grid-template-columns:1fr}
  .fraud-sec .nist{grid-template-columns:1fr 1fr}
  .steps.n4{grid-template-columns:1fr 1fr;gap:40px 20px}
  .steps.n4~.process-track,.process:has(.steps.n4) .process-track{display:none}
  .f-grid{grid-template-columns:1fr 1fr 1fr}
  .side{order:2}
  .sticky{position:static}
}
@media (max-width:782px){body.admin-bar .site-head,body.admin-bar .progress{top:46px}}
@media (max-width:760px){
  :root{--head-h:72px}
  .alertbar{font-size:.74rem}
  .alertbar .ab-text{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-align:left}
  .paths{grid-template-columns:1fr}
  .ph-art{display:none}
  .page-hero{min-height:0;padding-bottom:70px}
  .feat-grid,.feat-grid.n4,.sub-grid,.rel-grid,.rel-grid.n4,.types,.duo,.sedi-grid{grid-template-columns:1fr}
  .steps.n4{grid-template-columns:1fr}
  .fraud-sec .nist{grid-template-columns:1fr}
  .trace-card{display:none}
  .team.n2{grid-template-columns:1fr}
  .remote-box{flex-direction:column;align-items:flex-start}
  .remote-box .btn{margin-left:0}
  .pillar{padding:28px;min-height:480px}
  .pillar .big-ico{width:90px;height:90px}
  .form-switch button{font-size:.78rem;padding:10px 6px}
  .f-grid{grid-template-columns:1fr 1fr}
  .f-legal ul{flex-wrap:wrap}
  .acc .ans>div{padding-right:0}
  .hud{display:none}
}

/* form scuro dentro sezioni chiare */
.form .btn-ghost,.light .form .btn-ghost{color:#fff;border-color:rgba(134,177,255,.35);background:rgba(255,255,255,.04)}
.form .btn-ghost:hover{background:rgba(134,177,255,.12)}
.form .badge-alert,.light .form .badge-alert{color:var(--amb-2);background:linear-gradient(135deg,rgba(255,181,71,.22),rgba(255,181,71,.06));border-color:rgba(255,181,71,.45)}
.light .answer-box .chip{background:rgba(134,177,255,.08);color:var(--blue-200);border-color:var(--line-d)}
.big-num small{line-height:1.4;margin-top:34px}
@media (max-width:760px){.form-switch button{flex-direction:column;gap:4px;line-height:1.2}}
.side-box .btn-ghost,.light .side-box .btn-ghost{color:#fff;border-color:rgba(134,177,255,.35);background:rgba(255,255,255,.04)}
.side-box .badge-alert,.light .side-box .badge-alert{color:var(--amb-2);background:rgba(255,181,71,.14);border-color:rgba(255,181,71,.45);margin-bottom:4px;justify-self:start}
.pillar{padding-top:210px}

/* =========================================================
   SPAZI COMPATTI + ANIMAZIONI EXTRA (v1.1)
   ========================================================= */
.hero{padding-bottom:70px}
.feat{min-height:0}
.sub-card{min-height:240px}
.pillar{min-height:460px}
.checklist-grid,.intro-grid,.partner,.about,.faq,.contact,.recovery,.cyber-grid,.fraud-grid{gap:44px}
.marquee{padding:20px 0}
.f-giant{margin-top:50px}
.footer{padding:70px 0 26px}

/* icone che fluttuano dentro le card (sfasate) */
.card .ico,.nist-item svg,.type svg,.ck-ico svg,.value svg{animation:icoFloat 5s ease-in-out infinite}
.card:nth-child(2n) .ico,.nist-item:nth-child(2n) svg,.type:nth-child(2n) svg{animation-delay:-1.6s}
.card:nth-child(3n) .ico,.nist-item:nth-child(3n) svg,.type:nth-child(3n) svg{animation-delay:-3.1s}
@keyframes icoFloat{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-7px) rotate(-3deg)}}
.card:hover .ico{animation-play-state:paused}

/* bordo luminoso rotante sulle card in evidenza */
@property --ang{syntax:'<angle>';inherits:false;initial-value:0deg}
.b-cyber,.pillar,.answer-box,.partner-card,.form{position:relative}
.b-cyber::after,.pillar::after,.answer-box::before,.partner-card::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;background:conic-gradient(from var(--ang),transparent 0 70%,rgba(134,177,255,.9) 80%,transparent 90%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:spinBorder 6s linear infinite;pointer-events:none;z-index:2}
.b-fraud::after,.pillar.is-fraud::after{background:conic-gradient(from var(--ang),transparent 0 70%,rgba(255,181,71,.95) 80%,transparent 90%)}
@keyframes spinBorder{to{--ang:360deg}}

/* linea dell'eyebrow che si allunga in entrata */
.eyebrow::before{transition:width 1s var(--ease) .2s}
.eyebrow[data-rv]:not(.in)::before{width:0}

/* nodi del processo: impulso */
.step .node::before{content:"";position:absolute;inset:0;border-radius:50%;box-shadow:0 0 0 0 rgba(79,139,255,.45);animation:nodePulse 2.8s infinite}
.step:nth-child(2) .node::before{animation-delay:.5s}.step:nth-child(3) .node::before{animation-delay:1s}.step:nth-child(4) .node::before{animation-delay:1.5s}.step:nth-child(5) .node::before{animation-delay:2s}
@keyframes nodePulse{70%{box-shadow:0 0 0 18px rgba(79,139,255,0)}100%{box-shadow:0 0 0 0 rgba(79,139,255,0)}}

/* pulsante principale: alone che respira */
.btn-primary{animation:btnGlow 3.2s ease-in-out infinite}
@keyframes btnGlow{50%{box-shadow:0 14px 40px -8px rgba(46,107,255,.95),inset 0 1px 0 rgba(255,255,255,.25)}}

/* scintilla che attraversa le sezioni scure */
.dark>.wrap::before{content:"";position:absolute;top:-1px;left:-20%;width:20%;height:1px;background:linear-gradient(90deg,transparent,rgba(134,177,255,.7),transparent);animation:sweepLine 7s linear infinite;pointer-events:none}
@keyframes sweepLine{to{left:120%}}

/* chip e type: piccolo shimmer al passaggio */
.type,.c-card,.path{position:relative;overflow:hidden}
.type::after,.path::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.08) 50%,transparent 70%);transform:translateX(-120%);transition:transform .9s var(--ease)}
.type:hover::after,.path:hover::after{transform:translateX(120%)}

/* orbs più vivi */
.orb{animation-duration:11s}.orb.b{animation-duration:14s}

@media (max-width:760px){
  .pad{padding:48px 0}
  .pad-sm{padding:40px 0}
  .sec-head{margin-bottom:26px;gap:16px}
  .cyber-head{margin-bottom:28px;gap:16px}
  .nist{margin-top:34px}
  .process{margin-top:30px}
  .steps{gap:26px!important}
  .step .node{width:88px;height:88px;margin-bottom:16px}
  .step .node svg{width:40px;height:40px}
  .checklist-grid,.intro-grid,.partner,.about,.faq,.contact,.recovery,.cyber-grid,.fraud-grid{gap:30px}
  .hero{padding-top:calc(var(--head-h) + 50px);padding-bottom:50px;min-height:auto}
  .page-hero{padding:calc(var(--head-h) + 36px) 0 46px}
  .cta-band{padding:52px 0}
  .feat,.card{padding:24px}
  .card .ico{width:60px;height:60px;margin-bottom:16px}
  .rec-stats{margin:22px 0}
  .big-num{font-size:8rem}
  .footer{padding:54px 0 22px}
  .f-giant{margin-top:30px}
  .acc button{padding:20px 0;font-size:1.05rem}
  .scroll-cue{display:none}
}
@media (prefers-reduced-motion:reduce){.b-cyber::after,.pillar::after,.answer-box::before,.partner-card::after,.dark>.wrap::before{display:none}}
/* pioggia binaria a tutto sfondo (fix v1.1.1) */
canvas.matrix{position:absolute;inset:0;width:100%;height:100%;z-index:-1;opacity:.32;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,#000,transparent 60%);mask-image:linear-gradient(90deg,#000,transparent 60%)}
@media (max-width:760px){canvas.matrix{opacity:.22}}
