/* ========================================================================
   Dr. Nicolò Caramori — Deep Blue Glassmorphism Landing
   Palette: deep navy + electric cyan/blue neon glow
   ======================================================================== */
:root{
  /* Backgrounds */
  --bg:#03060f;                 /* deepest */
  --bg-1:#050b1f;               /* navy base */
  --bg-2:#091633;               /* mid navy */
  --bg-3:#0c1d44;               /* lighter navy panel */
  --bg-glass:rgba(11,28,68,.55);
  --bg-glass-2:rgba(15,40,95,.45);

  /* Borders & strokes */
  --border:rgba(120,180,255,.14);
  --border-2:rgba(120,180,255,.28);
  --border-glow:rgba(56,189,248,.55);

  /* Text */
  --text:#eaf3ff;
  --text-soft:#bcd1f0;
  --text-dim:#7d97c2;
  --text-mute:#5a749b;

  /* Accent (electric cyan/blue) */
  --neon:#38bdf8;               /* primary cyan */
  --neon-2:#22d3ee;             /* aqua */
  --neon-3:#60a5fa;              /* royal */
  --neon-deep:#0ea5e9;
  --neon-violet:#8b5cf6;
  --warning:#fb923c;
  --danger:#ef4444;
  --good:#34d399;

  /* Glow shadows */
  --glow-sm:0 0 18px rgba(56,189,248,.35);
  --glow-md:0 0 32px rgba(56,189,248,.45),0 0 64px rgba(56,189,248,.18);
  --glow-lg:0 0 48px rgba(56,189,248,.55),0 0 120px rgba(56,189,248,.22);
  --shadow-deep:0 30px 80px -30px rgba(0,10,40,.9);
  --shadow-card:0 18px 50px -22px rgba(0,20,60,.8),inset 0 1px 0 rgba(255,255,255,.04);

  /* Layout */
  --max:1240px;
  --radius:18px;
  --radius-lg:28px;
  --radius-xl:36px;
  --radius-sm:10px;

  --font-sans:'Inter',system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  --font-display:'Space Grotesk','Inter',sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--font-sans);
  font-size:16px;
  line-height:1.6;
  color:var(--text);
  background:var(--bg);
  background-image:
    radial-gradient(1100px 700px at 15% -5%,rgba(56,189,248,.18),transparent 55%),
    radial-gradient(1000px 800px at 100% 10%,rgba(96,165,250,.16),transparent 60%),
    radial-gradient(900px 700px at 50% 100%,rgba(34,211,238,.10),transparent 60%),
    linear-gradient(180deg,var(--bg-1) 0%,var(--bg) 100%);
  background-attachment:fixed;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img,video{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,h4,h5{margin:0;font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;line-height:1.05;color:var(--text)}
p{margin:0 0 .9em;color:var(--text-soft)}

.container{max-width:var(--max);margin:0 auto;padding:0 24px;position:relative;z-index:2}
.container.narrow{max-width:920px}
.muted{color:var(--text-dim)}

/* Inline accent inside H2s (gradient cyan, gerarchia visiva) */
.section-title .accent,
.g-card h2 .accent,
.case-headline .accent{
  background:linear-gradient(135deg,var(--neon-2) 0%,var(--neon) 50%,var(--neon-3) 100%);
  -webkit-background-clip:text;background-clip:text;
  color:transparent;
}

/* Highlighted/neon text */
.g-highlight{
  color:var(--neon);
  text-shadow:0 0 24px rgba(56,189,248,.55);
}
.g-grad{
  background:linear-gradient(135deg,var(--neon-2) 0%,var(--neon) 50%,var(--neon-3) 100%);
  -webkit-background-clip:text;background-clip:text;
  color:transparent;
}

/* ========== Buttons ========== */
.btn{
  position:relative;
  display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  padding:14px 26px;border-radius:14px;font-weight:600;font-size:15px;
  transition:transform .25s ease,box-shadow .25s ease,background .25s ease;
  border:1px solid transparent;white-space:nowrap;
  letter-spacing:.01em;
}
.btn-primary{
  background:linear-gradient(135deg,var(--neon) 0%,var(--neon-3) 100%);
  color:#03060f;
  box-shadow:0 10px 28px -8px rgba(56,189,248,.65),inset 0 1px 0 rgba(255,255,255,.4);
  border:1px solid rgba(255,255,255,.25);
}
.btn-primary:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 42px -8px rgba(56,189,248,.85),inset 0 1px 0 rgba(255,255,255,.5);
}
.btn-ghost{
  background:rgba(56,189,248,.06);
  color:var(--text);
  border:1px solid var(--border-2);
  backdrop-filter:blur(8px);
}
.btn-ghost:hover{
  background:rgba(56,189,248,.14);
  border-color:var(--border-glow);
  box-shadow:var(--glow-sm);
}
.btn-lg{padding:18px 32px;font-size:16px}
.btn-block{width:100%}

/* Hero: nascondi CTA secondaria su mobile (marquee è subito sotto) */
@media (max-width:680px){.hero-cta-secondary{display:none}}

/* ========== Topbar ========== */
.topbar{
  background:linear-gradient(90deg,rgba(56,189,248,.18),rgba(96,165,250,.18),rgba(56,189,248,.18));
  border-bottom:1px solid var(--border);
  color:var(--text);
  font-weight:600;font-size:13px;letter-spacing:.02em;
  padding:8px 16px;text-align:center;
  backdrop-filter:blur(10px);
}
.topbar span{color:var(--neon)}

/* ========== Nav (glass — Framer style: smooth, soft, sempre sticky) ========== */
.nav{
  position:sticky;top:0;z-index:50;
  background:linear-gradient(180deg,rgba(5,11,31,.42),rgba(5,11,31,.28));
  backdrop-filter:saturate(180%) blur(28px);
  -webkit-backdrop-filter:saturate(180%) blur(28px);
  border-bottom:0;
  transition:background .35s ease,box-shadow .35s ease,transform .25s ease;
}
/* hairline soft + glow morbido sotto la nav, niente bordo netto */
.nav::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;
  background:linear-gradient(90deg,transparent,rgba(120,180,255,.18),transparent);
  pointer-events:none;
}
/* Quando si è scrollato — leggero aumento di opacità per leggibilità sopra contenuti chiari */
.nav.is-scrolled{
  background:linear-gradient(180deg,rgba(5,11,31,.62),rgba(5,11,31,.46));
  box-shadow:0 8px 32px -12px rgba(0,10,40,.6);
}
/* Mobile: la nav rimane sticky come stile Framer (non scrolla via) */
@media (max-width:680px){
  .nav{padding:0}
}
.nav-inner{
  max-width:var(--max);margin:0 auto;
  display:grid;
  grid-template-columns:1fr auto 1fr;            /* 3 col: logo · links centrati · CTA */
  align-items:center;gap:24px;
  padding:14px 24px;
}
.nav-inner > .nav-logo{justify-self:start}
.nav-inner > .nav-links{justify-self:center;margin:0 !important}
.nav-inner > .nav-cta{justify-self:end;margin:0 !important}
.nav-inner > .nav-burger{justify-self:end;margin:0 !important}
.nav-logo{
  display:inline-flex;align-items:center;
  padding:0;border-radius:0;
  background:transparent;border:0;box-shadow:none;
  transition:transform .25s,filter .25s;
}
.nav-logo:hover{transform:translateY(-1px)}
.nav-logo img{
  height:56px;width:auto;
  filter:drop-shadow(0 0 14px rgba(56,189,248,.55)) drop-shadow(0 2px 8px rgba(0,10,40,.6));
}
.nav-logo:hover img{filter:drop-shadow(0 0 22px rgba(56,189,248,.85)) drop-shadow(0 2px 8px rgba(0,10,40,.6))}
@media (max-width:680px){.nav-logo img{height:46px}}
.nav-links{display:flex;gap:24px;margin-left:32px}
.nav-links a{font-size:14px;font-weight:500;color:var(--text-soft);transition:color .2s,text-shadow .2s}
.nav-links a:hover{color:var(--neon);text-shadow:0 0 12px rgba(56,189,248,.6)}
.nav-cta{margin-left:auto}
.nav-burger{display:none;flex-direction:column;gap:5px;padding:10px;margin-left:auto}
.nav-burger span{width:22px;height:2px;background:var(--neon);border-radius:2px;transition:transform .25s,opacity .2s;box-shadow:0 0 6px var(--neon)}
.nav-burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-burger.open span:nth-child(2){opacity:0}
.nav-burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.nav-mobile{
  display:none;flex-direction:column;gap:4px;padding:10px 24px 24px;
  border-top:1px solid var(--border);background:rgba(5,11,31,.95);
}
.nav-mobile a{padding:14px 0;border-bottom:1px solid var(--border);font-weight:500;color:var(--text-soft)}
.nav-mobile a.btn{margin-top:12px;border:0;text-align:center;color:#03060f}
@media (max-width:980px){
  /* Layout grid: logo a sx, burger a dx (no più centrato) */
  .nav-inner{grid-template-columns:auto 1fr auto}
  .nav-inner > .nav-logo{grid-column:1}
  .nav-inner > .nav-burger{grid-column:3;justify-self:end}
  .nav-links,.nav-cta{display:none}
  .nav-burger{display:flex}
  .nav-mobile.open{display:flex}
}

/* ========== Mobile: navbar in basso (thumb-reach) ========== */
@media (max-width:680px){
  .nav{
    position:fixed;
    bottom:0;top:auto;
    left:0;right:0;
    padding-bottom:env(safe-area-inset-bottom,0);
    border-bottom:0;
    border-top:1px solid rgba(120,180,255,.14);
    box-shadow:0 -8px 32px -12px rgba(0,10,40,.6);
  }
  .nav::after{
    /* hairline glow sopra la nav (era sotto) */
    top:-1px;bottom:auto;
  }
  .nav.is-scrolled{
    box-shadow:0 -8px 32px -12px rgba(0,10,40,.7);
  }
  /* Spazio in fondo al body così il contenuto non viene coperto dalla nav */
  body{padding-bottom:calc(74px + env(safe-area-inset-bottom,0))}
  /* Mobile menu: si apre VERSO L'ALTO sopra la nav, non in basso */
  .nav-mobile{
    position:absolute;
    left:0;right:0;
    bottom:100%;top:auto;
    border-top:0;
    border-bottom:1px solid var(--border);
    box-shadow:0 -16px 40px -8px rgba(0,10,40,.7);
  }
}

/* ========== Section heads ========== */
.section-head{margin-bottom:48px;max-width:780px;position:relative}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center}
.kicker{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-display);font-weight:600;
  font-size:11.5px;letter-spacing:.22em;color:var(--neon);
  background:rgba(56,189,248,.08);
  padding:7px 14px;border-radius:999px;
  border:1px solid rgba(56,189,248,.32);
  margin-bottom:22px;text-transform:uppercase;
  box-shadow:0 0 24px rgba(56,189,248,.18) inset, 0 0 14px rgba(56,189,248,.25);
}
.kicker::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--neon);box-shadow:0 0 10px var(--neon)}
.kicker.warm{color:var(--warning);background:rgba(251,146,60,.08);border-color:rgba(251,146,60,.32)}
.kicker.warm::before{background:var(--warning);box-shadow:0 0 10px var(--warning)}
.section-title{font-size:clamp(28px,4.4vw,56px);line-height:1.05;margin-bottom:18px;letter-spacing:-.025em}
.section-sub{font-size:18px;color:var(--text-soft);max-width:680px;margin:0 auto}

/* ========== Hero (vertical video centered) ========== */
.hero{
  position:relative;overflow:hidden;
  padding:60px 24px 80px;
  text-align:center;isolation:isolate;
}
.hero::before{
  /* Moving radial glow */
  content:"";position:absolute;inset:-20%;z-index:-2;
  background:
    radial-gradient(600px 600px at 30% 20%,rgba(56,189,248,.25),transparent 60%),
    radial-gradient(700px 600px at 70% 80%,rgba(139,92,246,.2),transparent 65%);
  animation:bgFloat 20s ease-in-out infinite alternate;
}
.hero::after{
  /* Grid mesh */
  content:"";position:absolute;inset:0;z-index:-1;opacity:.4;
  background-image:
    linear-gradient(rgba(120,180,255,.06) 1px,transparent 1px),
    linear-gradient(90deg,rgba(120,180,255,.06) 1px,transparent 1px);
  background-size:54px 54px;
  mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%);
}
@keyframes bgFloat{
  0%{transform:translate(0,0) scale(1)}
  100%{transform:translate(-3%,2%) scale(1.05)}
}
.hero-content{max-width:980px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:20px}
.hero-eyebrow{
  font-size:13px;letter-spacing:.05em;font-weight:600;
  background:rgba(56,189,248,.08);padding:9px 16px;border-radius:999px;
  border:1px solid var(--border-2);color:var(--text-soft);
  backdrop-filter:blur(10px);
  box-shadow:0 0 18px rgba(56,189,248,.18);
}
.hero-eyebrow strong{color:var(--neon)}
.hero-title{
  font-family:var(--font-display);
  font-size:clamp(36px,6.6vw,84px);
  font-weight:700;letter-spacing:-.035em;line-height:1.02;
  margin:6px 0 4px;
  color:var(--text);
  text-wrap:balance;                          /* distribuisce le righe evitando parole orfane */
}
.hero-title .line{text-wrap:balance}
.hero-title .accent{
  display:inline-block;
  background:linear-gradient(135deg,#7dd3fc 0%,#38bdf8 50%,#3b82f6 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  text-shadow:0 0 60px rgba(56,189,248,.45);
}
.hero-sub{font-size:clamp(15px,1.6vw,18px);color:var(--text-soft);max-width:680px;margin:0}
.hero-sub.strong{color:var(--text);font-weight:500;font-size:clamp(16px,1.8vw,20px)}

/* Vertical video frame */
.hero-video-wrap{
  position:relative;margin:30px auto 14px;
  width:min(360px,80vw);aspect-ratio:9/16;
  border-radius:32px;
  background:linear-gradient(180deg,#0c1d44,#03060f);
  border:1px solid var(--border-2);
  overflow:hidden;
  box-shadow:
    0 0 0 1px rgba(56,189,248,.25),
    0 0 60px rgba(56,189,248,.35),
    0 0 140px rgba(56,189,248,.22),
    0 30px 80px -20px rgba(0,10,40,.9);
}
.hero-video-wrap::before{
  /* animated neon border */
  content:"";position:absolute;inset:-2px;border-radius:34px;z-index:0;
  background:conic-gradient(from 0deg,transparent 0%,#38bdf8 25%,transparent 50%,#60a5fa 75%,transparent 100%);
  animation:rotate 6s linear infinite;
  filter:blur(10px);opacity:.5;
}
.hero-video-wrap::after{
  content:"";position:absolute;inset:1px;border-radius:31px;z-index:1;
  background:#03060f;
}
.hero-video-wrap video,.hero-video-wrap .vbtn{position:relative;z-index:2}
.hero-video-wrap video{width:100%;height:100%;object-fit:cover;border-radius:31px}
/* === Hero play/pause overlay (big centered) === */
.vplay{
  position:absolute;inset:0;z-index:3;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;
  background:radial-gradient(ellipse at center,transparent 50%,rgba(0,0,0,.4) 100%);
  cursor:pointer;
  transition:opacity .35s,background .35s;
}
.vplay-circle{
  position:relative;
  width:108px;height:108px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,rgba(56,189,248,.95),rgba(96,165,250,.95));
  color:#03060f;
  border:2px solid rgba(255,255,255,.45);
  box-shadow:
    0 0 0 8px rgba(56,189,248,.18),
    0 0 50px rgba(56,189,248,.6),
    0 14px 40px -8px rgba(0,10,40,.7),
    inset 0 1px 0 rgba(255,255,255,.5);
  transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s,background .25s;
}
.vplay:hover .vplay-circle{
  transform:scale(1.08);
  box-shadow:
    0 0 0 12px rgba(56,189,248,.22),
    0 0 70px rgba(56,189,248,.85),
    0 14px 40px -8px rgba(0,10,40,.7),
    inset 0 1px 0 rgba(255,255,255,.5);
}
.vplay-circle .ic-play{margin-left:6px}
.vplay-circle .ic-pause{display:none}

/* Pulsing ring */
.vplay-ring{
  position:absolute;inset:-6px;border-radius:50%;
  border:2px solid rgba(56,189,248,.7);
  animation:ringPulse 2.2s ease-out infinite;
}
@keyframes ringPulse{
  0%{transform:scale(1);opacity:.7}
  100%{transform:scale(1.6);opacity:0}
}

/* Label */
.vplay-label{
  display:flex;flex-direction:column;align-items:center;
  padding:8px 16px;border-radius:999px;
  background:rgba(3,6,15,.55);
  color:#fff;font-size:13px;font-weight:600;letter-spacing:.02em;
  border:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(10px);
  box-shadow:0 4px 18px -2px rgba(0,10,40,.5);
}
.vplay-label .lbl-pause{display:none}

/* Playing state */
/* Quando il video parte: il pulsante diventa SOLO un cerchio centrato 72x72,
   non più un overlay full-screen, così non blocca la barra controlli nativa in basso. */
.hero-video-wrap.playing .vplay{
  inset:auto;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:72px;height:72px;
  background:transparent;
  padding:0;
  display:flex;align-items:center;justify-content:center;
  opacity:0;                                       /* nascosto, riappare su hover/tap */
  pointer-events:none;
  transition:opacity .25s ease;
}
.hero-video-wrap.playing .vplay-circle{
  width:72px;height:72px;
  background:rgba(3,6,15,.55);color:#fff;
  border-color:rgba(255,255,255,.35);
  box-shadow:0 0 32px rgba(56,189,248,.55),inset 0 1px 0 rgba(255,255,255,.25);
  backdrop-filter:blur(10px);
}
.hero-video-wrap.playing .vplay-circle svg{width:28px;height:28px}
/* Durante il playback: nascondi la label "In riproduzione · clicca per pausa"
   (eccede il wrapper 72×72 e fa l'effetto sgangherato). Solo cerchio. */
.hero-video-wrap.playing .vplay-label{display:none}
.hero-video-wrap.playing .vplay-ring{display:none}

/* Reveal SOLO su desktop con hover reale */
@media (hover:hover) and (pointer:fine){
  .hero-video-wrap.playing:hover .vplay{
    opacity:1;
    pointer-events:auto;
  }
  .hero-video-wrap.playing:hover .vplay-circle:hover{
    transform:scale(1.06);
    background:rgba(56,189,248,.85);
    color:#03060f;
  }
}
/* Mobile / touch: pulsante visibile per ~1.5s dopo tap, poi sparisce */
@media (hover:none) or (pointer:coarse){
  .hero-video-wrap.playing.show-controls .vplay{
    opacity:1;
    pointer-events:auto;
  }
}
.hero-video-wrap.playing .vplay-ring{display:none}
.hero-video-wrap.playing .vplay-circle{
  background:rgba(3,6,15,.6);
  color:#fff;
  border-color:rgba(255,255,255,.3);
}
.hero-video-wrap.playing .ic-play{display:none}
.hero-video-wrap.playing .ic-pause{display:block}
.hero-video-wrap.playing .lbl-play{display:none}
.hero-video-wrap.playing .lbl-pause{display:block}
@keyframes rotate{to{transform:rotate(360deg)}}

.hero-cta{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:14px}

/* Hero stats */
.hero-stats{
  margin-top:36px;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;
  width:100%;max-width:920px;
}
.hs-card{
  position:relative;
  background:var(--bg-glass);
  border:1px solid var(--border-2);
  border-radius:18px;
  padding:22px 18px;
  text-align:center;
  backdrop-filter:blur(14px);
  box-shadow:var(--shadow-card);
  overflow:hidden;
  transition:transform .3s,border-color .3s,box-shadow .3s;
}
.hs-card::before{
  content:"";position:absolute;inset:0;border-radius:18px;
  background:linear-gradient(135deg,rgba(56,189,248,.15),transparent 50%);
  pointer-events:none;
}
.hs-card:hover{transform:translateY(-3px);border-color:var(--border-glow);box-shadow:var(--glow-md),var(--shadow-card)}
.hs-num{
  font-family:var(--font-display);font-weight:700;
  font-size:clamp(28px,3.5vw,42px);
  background:linear-gradient(135deg,#7dd3fc,#38bdf8);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  letter-spacing:-.03em;line-height:1;
}
.hs-lbl{display:block;margin-top:8px;font-size:11.5px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;line-height:1.3}
@media (max-width:680px){.hero-stats{grid-template-columns:repeat(2,1fr)}}

/* ========== Marquee (prima/dopo) ========== */
.trasf{padding:80px 0 60px;position:relative;overflow:hidden}
.trasf .container{margin-bottom:40px}

/* Variant without section header — marquee attached directly under hero */
.trasf--no-head{padding:24px 0 60px;border-top:0}
@media (max-width:680px){.trasf--no-head{padding:12px 0 40px}}
.marquee{
  /* overflow-x AUTO: l'utente può scrollare manualmente a mano. Lo scroll automatico
     è gestito via JS (RAF su scrollLeft), non più via animation CSS. */
  overflow-x:auto;overflow-y:visible;
  padding:60px 0 70px;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 8%,#000 92%,transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 8%,#000 92%,transparent 100%);
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-size:100% 100%;mask-size:100% 100%;
  margin:-46px 0 -56px;
  cursor:grab;
  scrollbar-width:none;                         /* Firefox */
  -ms-overflow-style:none;                      /* IE/Edge legacy */
  scroll-behavior:auto;                         /* JS-driven, no smooth */
  overscroll-behavior-x:contain;
}
.marquee::-webkit-scrollbar{display:none}       /* WebKit/Blink */
.marquee.is-dragging{cursor:grabbing;user-select:none}
.marquee-track{display:flex;gap:18px;width:max-content}
/* CSS animation rimossa — gestita da JS. Manteniamo .marquee:hover pause via JS. */

/* Mobile: marquee resta JS-driven (animazione 2 righe direzioni opposte) +
   touch-action:pan-y per permettere lo swipe orizzontale via JS senza bloccare
   lo scroll verticale della pagina. */
@media (max-width:680px){
  .marquee{
    cursor:auto;
    margin:-30px 0 -40px;
    padding:50px 0 60px;
    touch-action:pan-y;
  }
  .marquee .pd-card{
    flex:0 0 70vw;width:auto;
  }
}
.pd-card{
  flex:0 0 auto;width:280px;
  background:var(--bg-glass);
  border:1px solid var(--border-2);
  border-radius:var(--radius-lg);
  overflow:hidden;
  backdrop-filter:blur(14px);
  box-shadow:var(--shadow-card);
  transition:transform .3s,border-color .3s,box-shadow .3s;
  position:relative;
}
.pd-card:hover{
  transform:translateY(-6px);
  border-color:var(--border-glow);
  box-shadow:var(--glow-md);
}
.pd-img{aspect-ratio:4/5;background:#050b1f;overflow:hidden;border-radius:24px 24px 0 0}
.pd-img img{width:100%;height:100%;object-fit:cover}
.pd-meta{padding:14px 16px;display:flex;justify-content:space-between;align-items:center;gap:10px;background:linear-gradient(180deg,transparent,rgba(56,189,248,.04))}
.pd-name{font-family:var(--font-display);font-weight:700;font-size:14px;letter-spacing:.02em;color:var(--text)}
.pd-phase{font-size:11px;color:var(--neon);background:rgba(56,189,248,.1);padding:4px 8px;border-radius:6px;border:1px solid rgba(56,189,248,.3);white-space:nowrap}

/* ========== Problem ========== */
.problem{padding:100px 0;border-top:1px solid var(--border);position:relative;overflow:hidden}

/* === Problem editorial / asymmetric === */
.problem-kicker{text-align:center;margin-bottom:64px}
.section-title.center{text-align:center;margin-left:auto;margin-right:auto}

.prob-block{
  display:grid;grid-template-columns:minmax(380px,1fr) 1.1fr;
  gap:80px;align-items:center;margin-bottom:90px;
  position:relative;
}
.prob-block--reverse{grid-template-columns:1.1fr minmax(380px,1fr)}
@media (max-width:980px){
  .prob-block,.prob-block--reverse{grid-template-columns:1fr;gap:36px;margin-bottom:60px}
  .prob-block--reverse .prob-img{order:-1}
}

/* Editorial image with strong neon ring (matches reference screenshot) */
.prob-img{
  position:relative;margin:0;
  border-radius:36px;overflow:hidden;
  aspect-ratio:1/1;
  background:#03060f;
  border:1px solid rgba(56,189,248,.28);
  box-shadow:
    0 0 0 6px rgba(56,189,248,.12),
    0 0 80px rgba(56,189,248,.45),
    0 30px 80px -20px rgba(0,10,40,.85);
  transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s;
}
.prob-img::before{
  content:"";position:absolute;inset:-2px;border-radius:38px;z-index:0;
  background:conic-gradient(from 180deg,transparent 0%,#38bdf8 25%,transparent 50%,#22d3ee 75%,transparent 100%);
  filter:blur(14px);opacity:.5;
}
.prob-img::after{
  content:"";position:absolute;inset:0;border-radius:inherit;z-index:2;
  background:linear-gradient(180deg,transparent 60%,rgba(3,6,15,.55));
  pointer-events:none;
}
.prob-img img{
  position:relative;z-index:1;
  width:100%;height:100%;object-fit:cover;object-position:center;
  filter:saturate(1.05) contrast(1.05);
  transition:transform .8s cubic-bezier(.2,.8,.2,1);
}
.prob-img:hover{transform:translateY(-6px)}
.prob-img:hover img{transform:scale(1.04)}

/* Text column — clean editorial */
.prob-text{display:flex;flex-direction:column;gap:18px;max-width:540px}
.prob-h{
  font-family:var(--font-display);font-weight:700;
  font-size:clamp(24px,2.8vw,38px);line-height:1.18;letter-spacing:-.02em;
  color:var(--text);margin:0 0 10px;
}
.prob-points{
  display:flex;flex-direction:column;gap:8px;margin:8px 0;
  list-style:none;padding:0;
}
.prob-points li{
  font-size:16px;color:var(--text-soft);line-height:1.55;
  padding:0;border:none;background:transparent;
}
.prob-p{font-size:16px;color:var(--text-soft);line-height:1.7;margin:0}
.prob-p strong{color:var(--text)}

/* Final full-width statement — glow ruotante CONFINATO dentro la card */
.prob-final{
  margin-top:40px;padding:48px 56px;
  background:linear-gradient(180deg,rgb(13,30,75),rgb(8,20,52));
  border:1px solid var(--border-glow);
  border-radius:var(--radius-xl);
  box-shadow:var(--shadow-card);
  text-align:center;position:relative;
  isolation:isolate;
  overflow:hidden;                              /* clippa il glow dentro i bordi card */
}
/* Glow conic ellittico interno, ruotante. inset negativo grande + overflow:hidden
   sulla card → l'ellisse ruota dentro al box, mai fuori */
.prob-final::before{
  content:"";position:absolute;
  top:-50%;left:-25%;width:150%;height:200%;
  border-radius:50%;
  background:conic-gradient(from 0deg,
    transparent 0deg,
    #38bdf8 60deg,
    transparent 120deg,
    transparent 200deg,
    #22d3ee 280deg,
    transparent 340deg);
  filter:blur(60px);opacity:.5;
  animation:rotate 8s linear infinite;
  z-index:0;pointer-events:none;
}
/* Sicurezza: testo sopra al glow */
.pf-headline,.pf-sub{position:relative;z-index:2}
.pf-headline{
  position:relative;z-index:2;
  font-family:var(--font-display);font-weight:600;
  font-size:clamp(20px,2.6vw,28px);line-height:1.3;letter-spacing:-.015em;
  color:var(--text)!important;
  margin:0 0 14px;
}
.pf-headline strong{
  color:var(--neon)!important;
  background:linear-gradient(135deg,#7dd3fc,#38bdf8);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
}
@supports not (-webkit-text-fill-color:transparent){
  .pf-headline strong{color:var(--neon)!important;background:none!important}
}
.pf-sub{
  position:relative;z-index:2;
  font-size:16.5px;color:var(--text-soft)!important;line-height:1.7;
  max-width:760px;margin:0 auto;
}
@media (max-width:680px){.prob-final{padding:32px 24px}}
.problem::before{
  content:"";position:absolute;left:50%;top:0;width:600px;height:600px;
  transform:translate(-50%,-50%);
  background:radial-gradient(closest-side,rgba(251,146,60,.16),transparent 70%);
  z-index:0;pointer-events:none;
}
.big-headline{font-size:clamp(28px,4.4vw,52px);line-height:1.1;margin:18px 0 32px}
.pain-list{margin:24px 0;display:grid;gap:8px}
.pain-list li{
  font-size:18px;font-weight:500;color:var(--text);
  padding:14px 18px;border-left:3px solid var(--warning);
  background:rgba(251,146,60,.06);border-radius:0 14px 14px 0;
  border-top:1px solid var(--border);
  border-right:1px solid var(--border);
  border-bottom:1px solid var(--border);
}
.lead{font-size:18px;color:var(--text-soft);margin:18px 0}
.lead.big{font-size:20px;color:var(--text);margin-top:32px}
.problem-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin:36px 0}
.pc{
  background:var(--bg-glass);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:22px;display:flex;gap:14px;align-items:flex-start;
  backdrop-filter:blur(14px);
  box-shadow:var(--shadow-card);
  transition:transform .3s,border-color .3s,box-shadow .3s;
}
.pc:hover{transform:translateY(-4px);border-color:var(--border-2);box-shadow:var(--glow-sm),var(--shadow-card)}
.pc-no{
  flex:0 0 auto;width:36px;height:36px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:rgba(239,68,68,.15);color:var(--danger);font-weight:800;
  border:1px solid rgba(239,68,68,.4);
  box-shadow:0 0 18px rgba(239,68,68,.3);
}
.pc p{margin:0;font-size:15px;color:var(--text-soft);line-height:1.55}

/* ========== About ========== */
.about{padding:100px 0;border-top:1px solid var(--border);position:relative;overflow:hidden}
.about::before{
  content:"";position:absolute;right:-15%;top:10%;
  width:700px;height:700px;border-radius:50%;
  background:radial-gradient(closest-side,rgba(56,189,248,.18),transparent 70%);
  pointer-events:none;
}
.about-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:60px;align-items:center;position:relative;z-index:2}
.about-photo{position:relative}
.about-photo>img{
  width:100%;border-radius:var(--radius-xl);
  border:1px solid var(--border-2);
  aspect-ratio:4/5;object-fit:cover;
  box-shadow:0 0 60px rgba(56,189,248,.3),var(--shadow-deep);
}
.about-photo::before{
  content:"";position:absolute;inset:-2px;border-radius:38px;z-index:-1;
  background:conic-gradient(from 0deg,transparent 0%,#38bdf8 25%,transparent 50%,#60a5fa 75%,transparent 100%);
  animation:rotate 8s linear infinite;
  filter:blur(14px);opacity:.5;
}
.about-badge{
  position:absolute;left:-18px;bottom:24px;
  display:flex;align-items:center;gap:14px;
  background:var(--bg-glass);
  border:1px solid var(--border-glow);
  padding:14px 18px;border-radius:18px;
  backdrop-filter:blur(20px);
  box-shadow:var(--glow-sm),var(--shadow-deep);
}
.about-badge img{width:42px;height:42px;object-fit:contain;background:#fff;border-radius:8px;padding:4px}
.about-badge strong{display:block;font-size:13px;color:var(--text)}
.about-badge span{font-size:11px;color:var(--text-dim);line-height:1.3}
.about-text p{font-size:17px;color:var(--text-soft);margin:0 0 14px}
.about-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:30px 0}
.about-stats>div{
  background:var(--bg-glass);
  border:1px solid var(--border-2);
  border-radius:14px;padding:18px;
  display:flex;flex-direction:column;gap:4px;
  backdrop-filter:blur(12px);
  box-shadow:var(--shadow-card);
}
.about-stats strong{font-family:var(--font-display);font-size:30px;color:var(--neon);letter-spacing:-.02em;text-shadow:0 0 18px rgba(56,189,248,.5)}
.about-stats span{font-size:11.5px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}
@media (max-width:880px){.about-grid{grid-template-columns:1fr;gap:40px}.about-badge{position:static;margin-top:14px}}

/* ========== Credentials marquee (under About) ========== */
.credentials{
  margin-top:60px;padding:32px 0 12px;
  border-top:1px solid var(--border);
  position:relative;z-index:2;
}
.credentials-head{text-align:center;margin-bottom:22px}
.cred-label{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-display);font-weight:600;
  font-size:11px;letter-spacing:.22em;color:var(--text-dim);
  text-transform:uppercase;
}
.cred-label::before,.cred-label::after{
  content:"";width:50px;height:1px;
  background:linear-gradient(90deg,transparent,var(--border-2),transparent);
}
.cred-marquee{
  /* Mask SOLO orizzontale: piano gradient horizontal-only senza clipping verticale.
     Usiamo un mask 2D che è 100% opaco verticalmente per non tagliare le shadow */
  overflow-x:clip;
  overflow-y:visible;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 8%,#000 92%,transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 8%,#000 92%,transparent 100%);
  -webkit-mask-repeat:no-repeat;
          mask-repeat:no-repeat;
  -webkit-mask-size:100% 100%;
          mask-size:100% 100%;
}
.cred-track{
  display:flex;align-items:center;gap:48px;
  width:max-content;
  /* Padding generoso: la shadow al hover blur 64px → serve >=70px di respiro */
  padding:72px 0;
  animation:credMarquee 60s linear infinite;
}
/* Compenso: riduco il padding del wrapper per non avere spazi enormi tra sezioni */
.credentials{margin-top:36px;padding:0 0 0}
.cred-marquee:hover .cred-track{animation-play-state:paused}
/* 4 sets in HTML → translate by -25% for seamless loop */
@keyframes credMarquee{from{transform:translateX(0)}to{transform:translateX(-25%)}}
.cred-item{
  flex:0 0 auto;
  display:flex;align-items:center;justify-content:center;
  height:108px;min-width:200px;
  padding:14px 26px;
  border-radius:18px;
  /* Dark glass — logos with white/light text pop here */
  background:linear-gradient(180deg,rgba(15,40,95,.4),rgba(11,28,68,.55));
  border:1px solid var(--border-2);
  box-shadow:var(--shadow-card);
  backdrop-filter:blur(14px);
  transition:transform .35s,border-color .35s,box-shadow .35s,background .35s;
  position:relative;
  overflow:hidden;
}
.cred-item::before{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(135deg,rgba(56,189,248,.12),transparent 50%);
  opacity:.6;
}
.cred-item img{
  position:relative;z-index:2;
  max-height:78px;max-width:240px;width:auto;height:auto;
  object-fit:contain;
  transition:transform .35s;
  filter:drop-shadow(0 0 14px rgba(56,189,248,.35));
}
.cred-item:hover{
  transform:translateY(-3px);
  border-color:var(--border-glow);
  box-shadow:var(--glow-md),var(--shadow-card);
}
.cred-item:hover img{transform:scale(1.06)}

/* Timbro stamp has DARK text on transparent → invert so it pops on dark glass like the others */
.cred-item--invert img{
  filter:invert(1) brightness(1.05) contrast(1.1) drop-shadow(0 0 14px rgba(56,189,248,.5));
}
.cred-text{
  display:flex;flex-direction:column;align-items:center;gap:4px;
  text-align:center;
}
.cred-text strong{
  font-family:var(--font-display);font-weight:700;
  font-size:22px;color:var(--neon);
  letter-spacing:.04em;
  text-shadow:0 0 16px rgba(56,189,248,.55);
}
.cred-text span{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.12em}
@media (max-width:680px){
  .cred-track{gap:40px}
  .cred-item{height:80px;min-width:130px;padding:10px 16px}
  .cred-item img{max-height:54px;max-width:150px}
}

/* ========== Social proof reviews ========== */
.social{padding:100px 0;border-top:1px solid var(--border);position:relative}
.social::before{
  content:"";position:absolute;left:-15%;top:30%;
  width:600px;height:600px;border-radius:50%;
  background:radial-gradient(closest-side,rgba(96,165,250,.15),transparent 70%);
  pointer-events:none;
}
.rv-grid{
  columns:3 320px;column-gap:18px;
  position:relative;
  max-height:1100px;overflow:hidden;transition:max-height .5s ease;
}
.rv-grid.expanded{max-height:none}

/* Mobile: horizontal scroll carousel — REVIEWS (gap molto ampio richiesto) */
@media (max-width:680px){
  .rv-grid{
    columns:initial !important;column-gap:initial !important;
    display:flex !important;flex-wrap:nowrap !important;
    max-height:none !important;
    overflow-x:auto;overflow-y:visible;
    scroll-snap-type:x mandatory;
    scroll-padding:0 20px;
    gap:32px;
    /* Padding verticale ampio per non clippare l'ombra/glow al hover */
    padding:60px 20px 70px;
    margin-left:-20px;margin-right:-20px;
    margin-top:-40px;margin-bottom:-50px;        /* compensa lo spazio extra */
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    touch-action:pan-x;
    overscroll-behavior-x:contain;
  }
  .rv-grid::-webkit-scrollbar{display:none}
  .rv-grid .rv-card{
    flex:0 0 76%;
    /* Safety belt: margin oltre al gap per essere SICURI che il browser
       (alcune versioni di Safari ignoravano gap su flex orizzontali) renda lo spacing */
    margin:0 16px 0 0 !important;
    scroll-snap-align:center;
    scroll-snap-stop:always;
    min-height:auto;
    opacity:1 !important;transform:none !important;
  }
  .rv-grid .rv-card:last-child{margin-right:0 !important}
  .social .rv-fade,
  .social .rv-more{display:none}
}
.rv-card{
  break-inside:avoid;margin:0 0 18px;
  background:var(--bg-glass);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:20px;display:flex;flex-direction:column;gap:14px;
  backdrop-filter:blur(14px);
  box-shadow:var(--shadow-card);
  transition:transform .3s,border-color .3s,box-shadow .3s;
}
.rv-card:hover{transform:translateY(-4px);border-color:var(--border-glow);box-shadow:var(--glow-sm),var(--shadow-card)}
.rv-head{display:flex;align-items:center;gap:12px}
.rv-avatar{width:46px;height:46px;border-radius:50%;overflow:hidden;flex:0 0 auto;background:#0c1d44;border:1px solid var(--border-2)}
.rv-avatar img{width:100%;height:100%;object-fit:cover}
.rv-name{font-weight:700;font-size:14px;color:var(--text)}
.rv-handle{font-size:12px;color:var(--neon)}
.rv-stars{margin-left:auto;color:var(--neon);font-size:14px;letter-spacing:1px;text-shadow:0 0 8px rgba(56,189,248,.5)}
.rv-text{margin:0;font-size:14.5px;color:var(--text-soft);line-height:1.55}
.rv-fade{position:absolute;left:0;right:0;bottom:90px;height:160px;pointer-events:none;background:linear-gradient(180deg,transparent,var(--bg) 90%);transition:opacity .4s}
.rv-fade.hidden{opacity:0}
.rv-more{text-align:center;margin-top:24px;position:relative;z-index:2}

/* ========== Outcomes ========== */
.outcomes{padding:100px 0;border-top:1px solid var(--border);position:relative;overflow:hidden}
.outcomes::before{
  content:"";position:absolute;right:-10%;bottom:-10%;
  width:600px;height:600px;
  background:radial-gradient(closest-side,rgba(34,211,238,.14),transparent 70%);
  pointer-events:none;
}
.oc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.oc-card{
  position:relative;
  background:linear-gradient(180deg,var(--bg-glass) 0%,var(--bg-glass-2) 100%);
  border:1px solid var(--border-2);
  border-radius:var(--radius-lg);
  padding:0;display:flex;flex-direction:column;gap:0;
  backdrop-filter:blur(14px);
  box-shadow:var(--shadow-card);
  overflow:hidden;
  transition:transform .35s,border-color .35s,box-shadow .35s;
}
.oc-card::before{
  content:"";position:absolute;top:-50%;left:-50%;
  width:200%;height:200%;
  background:radial-gradient(circle,rgba(56,189,248,.12),transparent 40%);
  opacity:0;transition:opacity .5s;
  pointer-events:none;z-index:1;
}
.oc-card:hover{transform:translateY(-8px);border-color:var(--border-glow);box-shadow:var(--glow-md),var(--shadow-card)}
.oc-card:hover::before{opacity:1}

/* Image header for outcome card */
.oc-image{
  position:relative;aspect-ratio:4/3;overflow:hidden;
  background:linear-gradient(135deg,#0c1d44,#03060f);
  border-radius:28px 28px 0 0;
}
.oc-image img{
  width:100%;height:100%;object-fit:cover;object-position:center;
  transition:transform .8s cubic-bezier(.2,.8,.2,1);
  filter:saturate(1.05) contrast(1.05);
}
.oc-card:hover .oc-image img{transform:scale(1.06)}
.oc-image::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 40%,rgba(3,6,15,.85));
  pointer-events:none;
}
.oc-step{
  position:absolute;top:14px;right:14px;z-index:2;
  font-family:var(--font-display);font-weight:800;font-size:13px;
  padding:6px 11px;border-radius:8px;
  background:rgba(56,189,248,.95);color:#03060f;
  letter-spacing:.06em;
  box-shadow:0 0 18px rgba(56,189,248,.5),inset 0 1px 0 rgba(255,255,255,.4);
}

/* Body of outcome card */
.oc-body{
  padding:26px 28px 28px;display:flex;flex-direction:column;gap:12px;
  flex:1;position:relative;z-index:2;
}
.oc-eyebrow{
  font-family:var(--font-display);font-weight:600;
  font-size:11px;letter-spacing:.18em;color:var(--neon);
  text-transform:uppercase;
  text-shadow:0 0 12px rgba(56,189,248,.4);
}

/* Legacy fallback: emoji icon (kept for backward compat) */
.oc-icon{font-size:36px;width:64px;height:64px;border-radius:18px;display:flex;align-items:center;justify-content:center;background:rgba(56,189,248,.1);border:1px solid var(--border-2);box-shadow:0 0 20px rgba(56,189,248,.25) inset;margin:32px 32px 0}
.oc-title{font-family:var(--font-display);font-size:20px;line-height:1.2;letter-spacing:-.01em;color:var(--text);margin:0}
.oc-desc{color:var(--text-soft);font-size:14.5px;line-height:1.55;margin:0;flex:1}
.oc-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.oc-tag{font-size:12px;padding:5px 11px;border-radius:999px;background:rgba(56,189,248,.1);color:var(--neon);border:1px solid rgba(56,189,248,.3)}

/* ========== How it works ========== */
.how{padding:100px 0;border-top:1px solid var(--border)}
.hw-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media (max-width:920px){.hw-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:580px){.hw-grid{grid-template-columns:1fr}}
.hw-card{
  position:relative;
  background:var(--bg-glass);
  border:1px solid var(--border-2);
  border-radius:var(--radius-lg);
  overflow:hidden;display:flex;flex-direction:column;gap:0;
  backdrop-filter:blur(14px);
  box-shadow:var(--shadow-card);
  transition:transform .3s,border-color .3s,box-shadow .3s;
}
.hw-card:hover{transform:translateY(-6px);border-color:var(--border-glow);box-shadow:var(--glow-md)}
.hw-video{aspect-ratio:9/12;overflow:hidden;background:#03060f;border-radius:28px 28px 0 0;position:relative}
.hw-video::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 60%,rgba(3,6,15,.7));
  pointer-events:none;
  z-index:1;
}
.hw-video video{width:100%;height:100%;object-fit:cover;position:relative;z-index:0}
/* Card 2: il framing taglia la videocamera. Bias verticale per mantenerla in frame.
   Se ancora non basta, sostituire il girato. */
.hw-card[data-step="2"] .hw-video video{object-position:center 30%}
@media (max-width:680px){
  .hw-card[data-step="2"] .hw-video video{object-position:center 25%}
}

/* Play overlay button on hw-card video — CENTERED (nuovo standard) */
.hw-play{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:3;
  display:inline-flex;align-items:center;justify-content:center;
  width:64px;height:64px;border-radius:50%;
  background:rgba(3,6,15,.55);color:#fff;
  border:1px solid rgba(255,255,255,.35);
  box-shadow:0 0 28px rgba(56,189,248,.45),inset 0 1px 0 rgba(255,255,255,.25);
  backdrop-filter:blur(10px);
  cursor:pointer;
  transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s,opacity .25s,background .25s;
}
.hw-play:hover{
  transform:translate(-50%,-50%) scale(1.08);
  background:rgba(56,189,248,.92);color:#03060f;
  box-shadow:0 0 42px rgba(56,189,248,.85),inset 0 1px 0 rgba(255,255,255,.5);
}
/* Icon swap based on playing state */
.hw-play .ic-pause{display:none}
.hw-video.playing .hw-play .ic-play{display:none}
.hw-video.playing .hw-play .ic-pause{display:inline-block}
/* Durante il playback: pulsante nascosto, riappare su hover (desktop) o tap (mobile) */
.hw-video.playing .hw-play{
  opacity:0;pointer-events:none;
  background:rgba(3,6,15,.6);color:#fff;
  border-color:rgba(255,255,255,.3);
  box-shadow:0 0 18px rgba(0,0,0,.5);
}
@media (hover:hover) and (pointer:fine){
  .hw-video.playing:hover .hw-play{opacity:1;pointer-events:auto}
  .hw-video.playing:hover .hw-play:hover{background:rgba(56,189,248,.92);color:#03060f}
}
.hw-video.playing.show-controls .hw-play{opacity:1;pointer-events:auto}
.hw-step{
  font-family:var(--font-display);font-weight:700;color:var(--neon);
  font-size:14px;letter-spacing:.18em;padding:18px 22px 0;
  text-shadow:0 0 12px rgba(56,189,248,.5);
}
.hw-title{font-size:18px;line-height:1.3;padding:8px 22px 24px;color:var(--text)}

/* ========== Tech / Clarius ========== */
.tech{padding:100px 0;border-top:1px solid var(--border);position:relative;overflow:hidden}
.tech::before{
  content:"";position:absolute;left:-15%;top:50%;
  width:700px;height:700px;
  background:radial-gradient(closest-side,rgba(56,189,248,.16),transparent 70%);
  pointer-events:none;
}
.tech-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;align-items:center;position:relative;z-index:2}
@media (max-width:880px){.tech-grid{grid-template-columns:1fr}}
.tech-text p{color:var(--text-soft);font-size:17px}
.check-list{margin-top:18px;display:grid;gap:12px}
.check-list li{
  position:relative;padding-left:36px;color:var(--text);font-size:15.5px;line-height:1.5;
}
.check-list li::before{
  content:"✓";position:absolute;left:0;top:1px;
  width:24px;height:24px;border-radius:50%;
  background:linear-gradient(135deg,var(--neon),var(--neon-3));color:#03060f;
  font-weight:800;font-size:13px;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 0 16px rgba(56,189,248,.5);
}
.tech-imgs{position:relative;aspect-ratio:1/1}
.tech-imgs img{position:absolute;border-radius:18px;border:1px solid var(--border-2);box-shadow:var(--glow-sm),var(--shadow-deep);object-fit:cover}
.tech-img-1{top:0;left:0;width:62%;aspect-ratio:4/5;background:#fff;z-index:2}
.tech-img-2{
  bottom:0;right:0;width:60%;aspect-ratio:4/3;background:#000;z-index:2;
  border:0 !important;                          /* niente bordino attorno allo schermo iPad */
  box-shadow:0 30px 80px -30px rgba(0,10,40,.85); /* solo ombra, no glow blu */
}
/* tech-img-3 → sotto le altre due (sfondo, dietro al device principale) */
.tech-img-3{top:18%;right:-4%;width:54%;aspect-ratio:1/1;background:#fff;z-index:0;opacity:.85}
/* Mobile-only image — nascosta su desktop */
.tech-img-mobile{display:none}

/* ========== Video Testimonials ========== */
.vtest{padding:100px 0;border-top:1px solid var(--border)}
.vt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media (max-width:920px){.vt-grid{grid-template-columns:repeat(2,1fr)}}

/* Mobile: horizontal scroll carousel — VIDEO TESTIMONIAL (gap moderato) */
@media (max-width:680px){
  .vt-grid{
    display:flex !important;
    grid-template-columns:none;
    flex-wrap:nowrap;
    overflow-x:auto;overflow-y:visible;
    scroll-snap-type:x mandatory;
    scroll-padding:0 20px;
    gap:24px;
    /* Padding verticale ampio: la box-shadow blur 50px e il glow sotto le card
       hanno bisogno di spazio dentro al box auto-overflow per non essere clippate */
    padding:60px 20px 70px;
    margin-left:-20px;margin-right:-20px;
    margin-top:-40px;margin-bottom:-50px;        /* compenso per non avere uno spazio enorme tra le sezioni */
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    touch-action:pan-x;
    overscroll-behavior-x:contain;
  }
  .vt-grid::-webkit-scrollbar{display:none}
  .vt-grid .vt-card{
    flex:0 0 78%;
    scroll-snap-align:center;
    scroll-snap-stop:always;
    opacity:1 !important;transform:none !important;
  }
  .vt-card{transform:none !important}
}

/* Tiny dots indicator for carousel (mobile only) */
.vt-dots{display:none;justify-content:center;gap:8px;margin-top:14px}
@media (max-width:680px){.vt-dots{display:flex}}
.vt-dot{
  width:6px;height:6px;border-radius:50%;
  background:rgba(120,180,255,.25);
  transition:background .25s,width .25s,transform .25s;
}
.vt-dot.active{background:var(--neon);width:22px;border-radius:99px;box-shadow:0 0 10px rgba(56,189,248,.6)}
.vt-card{
  position:relative;
  background:var(--bg-glass);
  border:1px solid var(--border-2);
  border-radius:var(--radius-lg);overflow:hidden;
  backdrop-filter:blur(14px);
  box-shadow:var(--shadow-card);
  transition:transform .3s,border-color .3s,box-shadow .3s;
}
.vt-card:hover{transform:translateY(-6px);border-color:var(--border-glow);box-shadow:var(--glow-md)}
.vt-video{position:relative;aspect-ratio:9/14;background:#000;overflow:hidden;cursor:pointer}
.vt-video video{width:100%;height:100%;object-fit:cover}
.vt-play{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.4) 70%);
  transition:opacity .25s;
}
.vt-play svg{
  width:64px;height:64px;border-radius:50%;
  background:var(--neon);color:#03060f;padding:18px;
  box-shadow:0 0 40px rgba(56,189,248,.7);
}
/* Icon swap — pause CENTRATO come piccolo cerchio (non più overlay full-screen),
   così la barra controlli nativa in basso resta cliccabile. */
.vt-play .ic-pause{display:none}
.vt-video.playing .vt-play{
  inset:auto;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:56px;height:56px;
  background:transparent;
  padding:0;
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;
  transition:opacity .25s ease;
}
.vt-video.playing .vt-play svg{
  width:56px;height:56px;padding:14px;
  background:rgba(3,6,15,.55);color:#fff;
  border:1px solid rgba(255,255,255,.3);
  box-shadow:0 0 24px rgba(56,189,248,.45),inset 0 1px 0 rgba(255,255,255,.2);
  backdrop-filter:blur(10px);
}
.vt-video.playing .vt-play .ic-play{display:none}
.vt-video.playing .vt-play .ic-pause{display:inline-block}
@media (hover:hover) and (pointer:fine){
  .vt-video.playing:hover .vt-play{opacity:1;pointer-events:auto}
  .vt-video.playing:hover .vt-play svg:hover{background:rgba(56,189,248,.92);color:#03060f}
}
.vt-video.playing.show-controls .vt-play{opacity:1;pointer-events:auto}
.vt-meta{padding:16px 18px;background:linear-gradient(180deg,transparent,rgba(56,189,248,.04))}
.vt-name{font-weight:700;font-size:15px;color:var(--text)}
.vt-phase{font-size:12px;color:var(--neon);text-transform:uppercase;letter-spacing:.08em;margin-top:4px;text-shadow:0 0 8px rgba(56,189,248,.4)}

.quotes-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:48px}
@media (max-width:880px){.quotes-grid{grid-template-columns:1fr}}

/* ========== Case study spotlight cards (with photo) ========== */
/* Sezione cases (Storie di Trasformazione) — sotto How It Works */
.cases{padding:100px 0;border-top:1px solid var(--border)}
@media (max-width:680px){.cases{padding:60px 0}}
.cases-grid{
  display:grid;grid-template-columns:1fr;gap:48px;margin-top:64px;
}

.case-card{
  position:relative;
  display:grid;grid-template-columns:minmax(360px,42%) 1fr;gap:0;
  border-radius:var(--radius-xl);
  background:linear-gradient(180deg,var(--bg-glass),var(--bg-glass-2));
  border:1px solid var(--border-2);
  backdrop-filter:blur(18px);
  box-shadow:var(--shadow-card);
  overflow:hidden;
  transition:transform .45s cubic-bezier(.2,.8,.2,1),border-color .45s,box-shadow .45s;
  isolation:isolate;
  min-height:560px;
}
/* Zig-zag: second card flips photo to the right */
.case-card--puddu{grid-template-columns:1fr minmax(360px,42%)}
.case-card--puddu .case-photo{order:2}
.case-card--puddu .case-body{order:1}

@media (max-width:880px){
  .case-card,.case-card--puddu{grid-template-columns:1fr;min-height:0}
  .case-card--puddu .case-photo{order:0}
  .case-card--puddu .case-body{order:1}
}

/* Conic neon border */
.case-card::before{
  content:"";position:absolute;inset:-2px;border-radius:38px;z-index:-1;
  background:conic-gradient(from 0deg,transparent 0%,#38bdf8 18%,transparent 36%,#22d3ee 54%,transparent 72%,#60a5fa 90%,transparent 100%);
  filter:blur(22px);opacity:0;transition:opacity .6s;
}
.case-card:hover{
  transform:translateY(-8px);
  border-color:var(--border-glow);
  box-shadow:var(--glow-md),var(--shadow-deep);
}
.case-card:hover::before{opacity:.85;animation:rotate 6s linear infinite}

/* Inner spotlight follow */
.case-card::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(500px circle at var(--mx,50%) var(--my,50%),rgba(56,189,248,.16),transparent 40%);
  opacity:0;transition:opacity .35s;z-index:1;
}
.case-card:hover::after{opacity:1}

/* Photo column */
.case-photo{
  position:relative;overflow:hidden;
  background:radial-gradient(ellipse at center,rgba(56,189,248,.18),#03060f 70%);
  min-height:560px;
}
@media (max-width:880px){.case-photo{aspect-ratio:4/5;min-height:0}}
.case-photo img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center top;
  transition:transform .8s cubic-bezier(.2,.8,.2,1),filter .6s;
  filter:drop-shadow(0 0 24px rgba(56,189,248,.35));
}
.case-card:hover .case-photo img{transform:scale(1.06)}

/* Animated glow ring behind photo */
.case-photo-glow{
  position:absolute;inset:auto -20% -20% -20%;height:60%;
  background:radial-gradient(ellipse at center,rgba(56,189,248,.5),transparent 65%);
  filter:blur(40px);opacity:.5;
  animation:glowPulse 3.6s ease-in-out infinite;
  pointer-events:none;
}
@keyframes glowPulse{
  0%,100%{opacity:.4;transform:scale(1)}
  50%{opacity:.75;transform:scale(1.1)}
}

/* Vignette overlay on photo */
.case-photo::before{
  content:"";position:absolute;inset:0;z-index:2;
  background:linear-gradient(180deg,transparent 50%,rgba(3,6,15,.6) 100%);
  pointer-events:none;
}
/* Edge fade towards body — direction depends on which side photo sits */
@media (min-width:881px){
  .case-card .case-photo::after{
    content:"";position:absolute;top:0;right:-1px;bottom:0;width:90px;z-index:2;
    background:linear-gradient(90deg,transparent,rgba(11,28,68,.7));
    pointer-events:none;
  }
  .case-card--puddu .case-photo::after{
    right:auto;left:-1px;
    background:linear-gradient(-90deg,transparent,rgba(11,28,68,.7));
  }
}

/* Body column — generous breathing room */
.case-body{
  padding:56px 56px;
  display:flex;flex-direction:column;gap:22px;
  position:relative;z-index:2;
  justify-content:center;
}
@media (max-width:880px){.case-body{padding:36px 28px;gap:18px}}

.case-tag{
  display:inline-flex;align-items:center;gap:8px;align-self:flex-start;
  font-family:var(--font-display);font-weight:600;
  font-size:11.5px;letter-spacing:.2em;color:var(--neon);
  text-transform:uppercase;
  padding:8px 14px;border-radius:999px;
  background:rgba(56,189,248,.08);
  border:1px solid rgba(56,189,248,.3);
  box-shadow:0 0 18px rgba(56,189,248,.18) inset;
}
.case-dot{
  width:6px;height:6px;border-radius:50%;background:var(--neon);
  box-shadow:0 0 10px var(--neon);
  animation:pulse 1.6s ease-in-out infinite;
}
.case-headline{
  font-family:var(--font-display);font-weight:700;
  font-size:clamp(24px,2.6vw,34px);line-height:1.2;
  color:var(--text);letter-spacing:-.018em;
  position:relative;padding-left:36px;margin:8px 0 0;
  max-width:560px;
}
.case-headline::before{
  content:"\201C";position:absolute;left:-4px;top:-22px;
  font-family:var(--font-display);font-size:88px;line-height:1;
  color:var(--neon);opacity:.5;
  text-shadow:0 0 18px rgba(56,189,248,.55);
}
.case-quote{
  font-size:16px;color:var(--text-soft);line-height:1.7;margin:6px 0 0;
  max-width:560px;
}

/* Stats inside the card — more breathing room */
.case-stats{
  display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:8px;
  padding:22px 24px;border-radius:18px;
  background:rgba(3,6,15,.45);
  border:1px solid var(--border);
  backdrop-filter:blur(8px);
  max-width:560px;
}
.case-stats > div{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px}
.case-stats strong{
  font-family:var(--font-display);font-weight:700;font-size:24px;
  background:linear-gradient(135deg,#7dd3fc,#38bdf8);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  letter-spacing:-.02em;line-height:1;
  white-space:nowrap;
}
@media (max-width:680px){
  .case-stats{
    padding:14px 8px;
    gap:6px;
    align-items:start;                          /* le 3 colonne partono dall'alto */
  }
  .case-stats > div{
    gap:4px;
    justify-content:flex-start;
  }
  .case-stats strong{
    font-size:13px;
    line-height:1.2;
    white-space:nowrap;                         /* sempre 1 riga, niente più "Top / form" */
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .case-stats span{
    font-size:9px;
    line-height:1.25;
    letter-spacing:.05em;
  }
}
.case-stats span{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;line-height:1.3}

.case-author{
  margin-top:8px;padding-top:18px;border-top:1px solid var(--border);
  display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;
  max-width:560px;
}
.case-name{font-family:var(--font-display);font-weight:700;font-size:17px;color:var(--text);white-space:nowrap}
.case-handle{font-size:14px;color:var(--neon);text-shadow:0 0 8px rgba(56,189,248,.4);white-space:nowrap}
.case-handle::before{content:"·";margin-right:10px;color:var(--text-dim);text-shadow:none}

/* Stagger reveal for case-cards */
.case-card{opacity:0;transform:translateY(40px) scale(.97);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.8,.2,1),box-shadow .45s,border-color .45s}
.case-card.visible{opacity:1;transform:translateY(0) scale(1)}
.case-card.case-card--puddu{transition-delay:.15s}
.qt{
  position:relative;
  background:linear-gradient(180deg,var(--bg-glass),var(--bg-glass-2));
  border:1px solid var(--border-2);border-radius:var(--radius-lg);
  padding:36px;margin:0;
  backdrop-filter:blur(14px);
  box-shadow:var(--shadow-card);
}
.qt::before{
  content:"“";font-family:var(--font-display);
  position:absolute;top:8px;left:18px;
  font-size:80px;color:var(--neon);opacity:.5;line-height:1;
  text-shadow:0 0 24px rgba(56,189,248,.5);
}
.qt p{font-size:18px;font-weight:600;line-height:1.4;margin:0 0 16px;padding-left:24px;color:var(--text)}
.qt p.qt-body{font-size:15px;font-weight:400;color:var(--text-soft);line-height:1.6}
.qt footer{font-size:13px;color:var(--neon);margin-top:14px;padding-left:24px;font-weight:600}

/* ========== Comparison ========== */
.cmp{padding:100px 0;border-top:1px solid var(--border);position:relative;overflow:hidden}

/* Avatar separator between title and grid */
.cmp-avatar-wrap{
  display:flex;flex-direction:column;align-items:center;gap:14px;margin:0 auto 56px;
  position:relative;z-index:3;
}
.cmp-avatar{
  position:relative;width:180px;height:180px;
  display:flex;align-items:center;justify-content:center;
}
/* Ring rimosso: l'avatar PNG ha già il suo gradient di sfondo */
.cmp-avatar-ring{display:none}
/* Wrapper "raw": niente border/background/clip — mostro la PNG come è */
.cmp-avatar-pic{
  position:relative;width:100%;height:100%;
  background:transparent;border:0;border-radius:0;overflow:visible;
  z-index:2;
  filter:drop-shadow(0 0 32px rgba(56,189,248,.55)) drop-shadow(0 18px 40px rgba(0,10,40,.7));
}
.cmp-avatar-pic img{
  width:100%;height:100%;object-fit:contain;object-position:center;
  transform:none;
}
.cmp-avatar-name{display:flex;flex-direction:column;align-items:center;gap:2px}
.cmp-avatar-label{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--neon);font-weight:600}
.cmp-avatar-name strong{font-family:var(--font-display);font-size:18px;color:var(--text);letter-spacing:-.01em}

.cmp-grid{
  display:grid;grid-template-columns:1fr auto 1fr;gap:18px;max-width:1080px;margin:0 auto;
  align-items:start;position:relative;z-index:2;
}
@media (max-width:760px){.cmp-grid{grid-template-columns:1fr;gap:32px}}

/* VS divider */
.cmp-vs{
  display:flex;align-items:center;justify-content:center;
  width:64px;height:64px;border-radius:50%;
  background:linear-gradient(135deg,rgba(56,189,248,.15),rgba(15,40,95,.6));
  border:1px solid var(--border-glow);
  font-family:var(--font-display);font-weight:800;font-size:18px;
  color:var(--neon);letter-spacing:.05em;
  align-self:center;
  box-shadow:var(--glow-sm);
  position:relative;
}
.cmp-vs::before{
  content:"";position:absolute;inset:-4px;border-radius:50%;
  background:conic-gradient(from 0deg,transparent,#38bdf8,transparent,#8b5cf6,transparent);
  filter:blur(8px);opacity:.6;z-index:-1;
  animation:rotate 4s linear infinite;
}
@media (max-width:760px){.cmp-vs{margin:0 auto}}

/* Column header tag (NEW vs OLD) */
.cmp-col-tag{
  display:inline-flex;align-items:center;align-self:flex-start;
  font-family:var(--font-display);font-weight:600;
  font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;
  padding:5px 10px;border-radius:6px;margin-bottom:10px;
  background:rgba(239,68,68,.12);color:#fca5a5;
  border:1px solid rgba(239,68,68,.25);
}
.cmp-col-tag--good{
  background:rgba(56,189,248,.12);color:var(--neon);
  border-color:rgba(56,189,248,.4);
  box-shadow:0 0 16px rgba(56,189,248,.3);
}
.cmp-col{
  background:var(--bg-glass);
  border:1px solid var(--border-2);border-radius:var(--radius-lg);
  padding:32px;backdrop-filter:blur(14px);
  box-shadow:var(--shadow-card);
}
.cmp-good{
  border-color:var(--border-glow);
  background:linear-gradient(180deg,rgba(56,189,248,.06),var(--bg-glass) 30%);
  box-shadow:var(--glow-sm),var(--shadow-card);
}
.cmp-head{
  font-family:var(--font-display);font-weight:700;font-size:20px;
  margin-bottom:22px;letter-spacing:-.01em;
}
.cmp-good .cmp-head{color:var(--neon);text-shadow:0 0 14px rgba(56,189,248,.45)}
.cmp-bad .cmp-head{color:var(--text-dim)}
.cmp-item{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--border);font-size:15px}
.cmp-item:last-child{border-bottom:0}
.cmp-x{
  flex:0 0 22px;width:22px;height:22px;border-radius:50%;
  background:rgba(239,68,68,.15);color:var(--danger);
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12px;
  border:1px solid rgba(239,68,68,.35);
}
.cmp-v{
  flex:0 0 22px;width:22px;height:22px;border-radius:50%;
  background:linear-gradient(135deg,var(--neon),var(--neon-3));color:#03060f;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12px;
  box-shadow:0 0 14px rgba(56,189,248,.5);
}
.cmp-bad .cmp-item{color:var(--text-dim)}
.cmp-good .cmp-item{color:var(--text-soft)}

/* ========== Form ========== */
.form-sec{padding:100px 0;border-top:1px solid var(--border);position:relative;overflow:hidden}
.form-sec::before{
  content:"";position:absolute;left:50%;top:50%;
  width:900px;height:900px;
  transform:translate(-50%,-50%);
  background:radial-gradient(closest-side,rgba(56,189,248,.12),transparent 70%);
  pointer-events:none;
}
.cta-form{
  position:relative;
  background:linear-gradient(180deg,var(--bg-glass),var(--bg-glass-2));
  border:1px solid var(--border-glow);
  border-radius:var(--radius-xl);
  padding:40px;display:grid;gap:18px;
  backdrop-filter:blur(20px);
  box-shadow:var(--glow-md),var(--shadow-deep);
}
.row-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:560px){.row-2{grid-template-columns:1fr}}
.cta-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--text-soft);font-weight:500}
.cta-form input,.cta-form textarea{
  background:rgba(3,6,15,.6);
  border:1px solid var(--border-2);
  border-radius:14px;
  padding:14px 16px;color:var(--text);font:inherit;font-size:15px;
  transition:border-color .2s,box-shadow .2s,background .2s;
  backdrop-filter:blur(8px);
}
.cta-form input:focus,.cta-form textarea:focus{
  outline:0;border-color:var(--neon);
  background:rgba(3,6,15,.8);
  box-shadow:0 0 0 4px rgba(56,189,248,.15),var(--glow-sm);
}
.check-row{flex-direction:row !important;align-items:flex-start;gap:10px !important;font-size:13px}
.check-row a{color:var(--neon);text-decoration:underline}
.form-contacts{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;margin-top:6px;color:var(--text-dim);font-size:14px}
.form-contacts a:hover{color:var(--neon)}

/* ========== Guarantee ========== */
.guarantee{padding:80px 0;border-top:1px solid var(--border)}
.g-card{
  position:relative;
  background:linear-gradient(135deg,rgba(56,189,248,.12),rgba(96,165,250,.06));
  border:1px solid var(--border-glow);border-radius:var(--radius-xl);
  padding:56px 48px;text-align:center;
  backdrop-filter:blur(20px);
  box-shadow:var(--glow-md),var(--shadow-deep);
  isolation:isolate;
  overflow:hidden;                                  /* contiene conic border + spotlight + glow avatar */
  transition:transform .45s cubic-bezier(.2,.8,.2,1),border-color .45s,box-shadow .45s;
}
/* Conic neon border (idem case-card) */
.g-card::before{
  content:"";position:absolute;inset:-2px;border-radius:38px;z-index:-1;
  background:conic-gradient(from 0deg,transparent 0%,#38bdf8 18%,transparent 36%,#22d3ee 54%,transparent 72%,#60a5fa 90%,transparent 100%);
  filter:blur(22px);opacity:0;transition:opacity .6s;pointer-events:none;
}
.g-card:hover{
  transform:translateY(-6px);
  border-color:var(--border-glow);
  box-shadow:var(--glow-lg),var(--shadow-deep);
}
.g-card:hover::before{opacity:.6;animation:rotate 6s linear infinite}
/* Inner spotlight follow (idem case-card) */
.g-card::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(500px circle at var(--mx,50%) var(--my,50%),rgba(56,189,248,.14),transparent 40%);
  opacity:0;transition:opacity .35s;z-index:0;
}
.g-card:hover::after{opacity:1}
/* Stagger reveal (stesso pattern case-card) — sovrascrive .reveal di default */
.g-card.reveal{opacity:0;transform:translateY(40px) scale(.97);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.8,.2,1),box-shadow .45s,border-color .45s}
.g-card.reveal.visible{opacity:1;transform:translateY(0) scale(1)}
/* Avatar pulse glow durante reveal (analogo .case-photo-glow) */
.g-card .g-avatar::after{
  content:"";position:absolute;inset:-30%;border-radius:50%;z-index:0;
  background:radial-gradient(ellipse at center,rgba(56,189,248,.4),transparent 65%);
  filter:blur(30px);opacity:.45;
  animation:glowPulse 3.6s ease-in-out infinite;
  pointer-events:none;
}
.g-card .g-avatar > *{position:relative;z-index:1}
.g-icon{
  font-size:48px;margin:0 auto 14px;
  width:80px;height:80px;border-radius:50%;
  background:rgba(56,189,248,.12);
  border:1px solid var(--border-glow);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 0 32px rgba(56,189,248,.4) inset;
}

/* === Personal guarantee avatar — RAW PNG, niente cerchio bianco === */
.g-avatar{
  position:relative;width:120px;height:120px;margin:0 auto 14px;
  display:flex;align-items:center;justify-content:center;
}
.g-avatar-ring{display:none}
.g-avatar-pic{
  position:relative;width:100%;height:100%;
  background:transparent;border:0;border-radius:0;overflow:visible;
  z-index:2;
  filter:drop-shadow(0 0 28px rgba(56,189,248,.5)) drop-shadow(0 12px 28px rgba(0,10,40,.6));
}
.g-avatar-pic img{
  width:100%;height:100%;object-fit:contain;object-position:center;
  transform:none;
}
.g-promise{display:flex;flex-direction:column;align-items:center;gap:2px;margin-bottom:18px}
.g-promise-label{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--neon);font-weight:600}
.g-promise strong{font-family:var(--font-display);font-size:16px;color:var(--text);letter-spacing:-.01em}
.g-card h2{font-size:clamp(22px,3vw,32px);margin-bottom:18px}
.g-card p{font-size:17px;color:var(--text-soft);max-width:680px;margin:0 auto;line-height:1.65}
.g-card em{color:var(--neon);font-style:italic}

/* ========== FAQ ========== */
.faq{padding:100px 0;border-top:1px solid var(--border)}
.faq-list{display:grid;gap:12px}
.faq-item{
  background:var(--bg-glass);
  border:1px solid var(--border-2);
  border-radius:var(--radius);
  padding:0 24px;backdrop-filter:blur(14px);
  transition:background .25s,border-color .25s,box-shadow .25s;
}
.faq-item[open]{background:var(--bg-glass-2);border-color:var(--border-glow);box-shadow:var(--glow-sm)}
.faq-item summary{
  list-style:none;cursor:pointer;
  padding:22px 0;display:flex;align-items:center;gap:14px;
  font-family:var(--font-display);font-weight:600;font-size:17px;letter-spacing:-.01em;color:var(--text);
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-icon{
  margin-left:auto;
  flex:0 0 32px;width:32px;height:32px;          /* flex:0 0 → impedisce shrinking, mantiene cerchio */
  aspect-ratio:1/1;
  border-radius:50%;
  background:rgba(56,189,248,.1);border:1px solid var(--border-2);
  display:inline-flex;align-items:center;justify-content:center;
  font-size:18px;font-weight:300;color:var(--neon);line-height:1;
  transition:transform .25s,background .2s;
}
.faq-item[open] .faq-icon{transform:rotate(45deg);background:var(--neon);color:#03060f;box-shadow:0 0 18px rgba(56,189,248,.6)}
.faq-body{padding:0 0 22px;color:var(--text-soft);font-size:15.5px;line-height:1.65}
.faq-body p{margin:0}
.faq-cta{text-align:center;margin-top:36px}

/* ========== Footer ========== */
.footer{padding:60px 0 24px;border-top:1px solid var(--border);background:rgba(3,6,15,.6);backdrop-filter:blur(10px)}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1.5fr 1.4fr;gap:36px}
@media (max-width:780px){.footer-grid{grid-template-columns:1fr 1fr;gap:30px}}
.footer-logo{height:64px;width:auto;filter:drop-shadow(0 0 16px rgba(56,189,248,.45)) drop-shadow(0 2px 8px rgba(0,10,40,.6))}
.footer-name{margin-top:14px;font-weight:600;font-size:15px;color:var(--text)}
.footer-name span{display:block;color:var(--text-dim);font-weight:400;font-size:13px}
.footer h4{font-family:var(--font-display);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--neon);margin:0 0 14px;text-shadow:0 0 10px rgba(56,189,248,.4)}
.footer ul{display:grid;gap:10px}
.footer a{color:var(--text-dim);font-size:14px;transition:color .2s}
.footer a:hover{color:var(--neon)}
.footer-bottom{
  max-width:var(--max);margin:36px auto 0;padding:24px 24px 0;
  border-top:1px solid var(--border);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;
  font-size:12px;color:var(--text-mute);
}

/* ========== Sticky CTA mobile ========== */
.sticky-cta{
  display:none;
  position:fixed;left:14px;right:14px;bottom:14px;z-index:60;
  text-align:center;
  background:linear-gradient(135deg,var(--neon),var(--neon-3));
  color:#03060f;
  font-weight:700;padding:16px 18px;border-radius:999px;
  box-shadow:0 14px 36px -8px rgba(56,189,248,.7);
}
@media (max-width:680px){.sticky-cta{display:block}}

/* ========== Decorative SVG positioning ========== */
.deco{position:absolute;pointer-events:none;z-index:0;opacity:.3}
.deco-dna{top:5%;right:-8%;width:380px;animation:floatY 14s ease-in-out infinite alternate}
.deco-atom{bottom:15%;left:-6%;width:260px;animation:floatY 18s ease-in-out infinite alternate-reverse}
@keyframes floatY{
  0%{transform:translateY(0) rotate(0)}
  100%{transform:translateY(-30px) rotate(8deg)}
}

/* ========== Reveal animation ========== */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease}
.reveal.visible{opacity:1;transform:translateY(0)}

/* ============================================================
   ====== SPECTACULAR ANIMATIONS LAYER =========================
   ============================================================ */

/* --- Scroll progress bar --- */
.scroll-progress{
  position:fixed;top:0;left:0;height:3px;width:0;z-index:100;
  background:linear-gradient(90deg,var(--neon-2),var(--neon),var(--neon-3));
  box-shadow:0 0 14px var(--neon),0 0 24px rgba(56,189,248,.5);
  transition:width .12s ease;
}

/* --- Particle canvas background --- */
.bg-canvas{
  position:fixed;inset:0;width:100%;height:100%;
  z-index:0;pointer-events:none;opacity:.55;
}

/* --- Mouse cursor glow --- */
.cursor-glow{
  position:fixed;top:0;left:0;width:520px;height:520px;
  border-radius:50%;pointer-events:none;z-index:1;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle,rgba(56,189,248,.20) 0%,rgba(56,189,248,.10) 25%,transparent 60%);
  mix-blend-mode:screen;
  transition:opacity .35s ease;
  opacity:0;
  filter:blur(2px);
}
.cursor-glow.active{opacity:1}
@media (hover:none){.cursor-glow{display:none}}

/* --- Hero stagger reveal: title, sub, video, CTA (entry coreografico) --- */
.hero-title-anim .line{
  display:block;opacity:0;transform:translateY(40px);
  animation:lineIn .9s cubic-bezier(.2,.8,.2,1) forwards;
}
.hero-title-anim .line:nth-child(1){animation-delay:.15s}
.hero-title-anim .line:nth-child(2){animation-delay:.30s}
.hero-title-anim .line:nth-child(3){animation-delay:.45s}
@keyframes lineIn{
  0%{opacity:0;transform:translateY(40px) rotateX(20deg)}
  100%{opacity:1;transform:translateY(0) rotateX(0)}
}
/* Sub, video wrap e CTA: fade-up coordinato dopo il titolo */
.hero-sub,.hero-video-wrap,.hero-cta{
  opacity:0;transform:translateY(28px);
  animation:heroFadeUp .85s cubic-bezier(.2,.8,.2,1) forwards;
}
.hero-sub{animation-delay:.55s}
.hero-video-wrap{animation-delay:.70s}
.hero-cta{animation-delay:.95s}
@keyframes heroFadeUp{
  0%{opacity:0;transform:translateY(28px)}
  100%{opacity:1;transform:translateY(0)}
}
@media (prefers-reduced-motion:reduce){
  .hero-title-anim .line,.hero-sub,.hero-video-wrap,.hero-cta{
    animation:none;opacity:1;transform:none;
  }
}

/* --- Eyebrow pulsing dot --- */
.hero-eyebrow .dot{
  display:inline-block;width:8px;height:8px;border-radius:50%;
  background:var(--neon);box-shadow:0 0 12px var(--neon);
  animation:pulse 1.6s ease-in-out infinite;
  vertical-align:middle;margin-right:4px;
}
@keyframes pulse{
  0%,100%{transform:scale(1);box-shadow:0 0 12px var(--neon)}
  50%{transform:scale(1.4);box-shadow:0 0 20px var(--neon),0 0 36px var(--neon)}
}

/* --- Atom electrons orbit --- */
.atom-electron{
  transform-origin:100px 100px;
  filter:drop-shadow(0 0 8px #38bdf8);
}
.atom-electron.e1{animation:orbit1 5s linear infinite}
.atom-electron.e2{animation:orbit2 7s linear infinite}
.atom-electron.e3{animation:orbit3 6s linear infinite}
@keyframes orbit1{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes orbit2{from{transform:rotate(0)}to{transform:rotate(-360deg)}}
@keyframes orbit3{from{transform:rotate(60deg)}to{transform:rotate(420deg)}}

/* --- Magnetic button hover --- */
.magnetic{
  position:relative;transform-origin:center;
  transition:transform .25s cubic-bezier(.2,.8,.2,1);
}
.magnetic::after{
  content:"";position:absolute;inset:-2px;border-radius:inherit;
  background:linear-gradient(135deg,var(--neon-2),var(--neon),var(--neon-3));
  opacity:0;z-index:-1;filter:blur(14px);
  transition:opacity .35s;
}
.magnetic:hover::after{opacity:.7}

/* --- 3D tilt card --- */
[data-tilt]{
  transform-style:preserve-3d;
  transition:transform .25s cubic-bezier(.2,.8,.2,1);
  will-change:transform;
}
[data-tilt-shine]::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.18),transparent 35%);
  opacity:0;transition:opacity .3s;mix-blend-mode:overlay;
}
[data-tilt-shine]:hover::after{opacity:1}

/* --- Floating glow orbs (decorative) --- */
.orb{
  position:absolute;border-radius:50%;pointer-events:none;
  filter:blur(60px);opacity:.5;z-index:0;
}
.orb-1{width:400px;height:400px;background:radial-gradient(circle,#38bdf8,transparent 70%);top:5%;left:-10%;animation:floatOrb 18s ease-in-out infinite alternate}
.orb-2{width:500px;height:500px;background:radial-gradient(circle,#8b5cf6,transparent 70%);bottom:-10%;right:-10%;animation:floatOrb 22s ease-in-out infinite alternate-reverse}
.orb-3{width:300px;height:300px;background:radial-gradient(circle,#22d3ee,transparent 70%);top:50%;left:40%;animation:floatOrb 26s ease-in-out infinite}
@keyframes floatOrb{
  0%{transform:translate(0,0) scale(1)}
  50%{transform:translate(40px,-30px) scale(1.1)}
  100%{transform:translate(-30px,40px) scale(.95)}
}

/* --- Hero stats count-up shimmer --- */
.hs-num.counting{
  background:linear-gradient(90deg,#7dd3fc 0%,#38bdf8 50%,#7dd3fc 100%);
  background-size:200% 100%;
  -webkit-background-clip:text;background-clip:text;
  animation:shimmer 1.6s linear infinite;
}
@keyframes shimmer{
  0%{background-position:200% 0}
  100%{background-position:-200% 0}
}

/* --- Card hover lift with neon trace --- */
.oc-card,.hw-card,.vt-card,.pc,.rv-card,.cmp-col,.faq-item,.hs-card,.qt{position:relative}
.oc-card::after,.hw-card::after,.vt-card::after,.cmp-col::after,.qt::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(600px circle at var(--mx,50%) var(--my,50%),rgba(56,189,248,.14),transparent 40%);
  opacity:0;transition:opacity .3s;
}
.oc-card:hover::after,.hw-card:hover::after,.vt-card:hover::after,.cmp-col:hover::after,.qt:hover::after{opacity:1}

/* --- Button ripple --- */
.btn{overflow:hidden}
.btn .ripple{
  position:absolute;border-radius:50%;background:rgba(255,255,255,.45);
  transform:scale(0);animation:ripple .6s ease-out forwards;pointer-events:none;
}
@keyframes ripple{to{transform:scale(4);opacity:0}}

/* --- Marquee fade in on hover --- */
.pd-card{transform-style:preserve-3d}

/* --- Glitch effect on hover for headings --- */
.glitch{position:relative;display:inline-block}
.glitch::before,.glitch::after{
  content:attr(data-text);position:absolute;top:0;left:0;width:100%;
  opacity:.0;
}
.glitch:hover::before{animation:glitchA .4s steps(2) infinite;color:var(--neon-2);opacity:.7;mix-blend-mode:screen}
.glitch:hover::after{animation:glitchB .4s steps(2) infinite;color:var(--neon-violet);opacity:.7;mix-blend-mode:screen}
@keyframes glitchA{0%{transform:translate(0)}25%{transform:translate(-2px,1px)}50%{transform:translate(1px,-1px)}100%{transform:translate(0)}}
@keyframes glitchB{0%{transform:translate(0)}25%{transform:translate(2px,-1px)}50%{transform:translate(-1px,1px)}100%{transform:translate(0)}}

/* --- Reveal stagger for groups --- */
.reveal-stagger > *{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}
.reveal-stagger.visible > *{opacity:1;transform:translateY(0)}
.reveal-stagger.visible > *:nth-child(1){transition-delay:.05s}
.reveal-stagger.visible > *:nth-child(2){transition-delay:.12s}
.reveal-stagger.visible > *:nth-child(3){transition-delay:.19s}
.reveal-stagger.visible > *:nth-child(4){transition-delay:.26s}
.reveal-stagger.visible > *:nth-child(5){transition-delay:.33s}
.reveal-stagger.visible > *:nth-child(6){transition-delay:.40s}
.reveal-stagger.visible > *:nth-child(7){transition-delay:.47s}
.reveal-stagger.visible > *:nth-child(8){transition-delay:.54s}

/* --- Parallax helpers --- */
.parallax{will-change:transform;transition:transform .15s linear}

/* --- Improved deco SVG sizing --- */
.deco{position:absolute;pointer-events:none;z-index:0;opacity:.35}
.deco-dna{top:5%;right:-6%;width:240px;height:auto;animation:floatY 14s ease-in-out infinite alternate}
.deco-atom{bottom:8%;left:-4%;width:200px;height:auto;animation:floatY 18s ease-in-out infinite alternate-reverse}
@keyframes floatY{
  0%{transform:translateY(0) rotate(0)}
  100%{transform:translateY(-30px) rotate(8deg)}
}
@media (max-width:880px){.deco{display:none}}

/* --- prefers-reduced-motion safety --- */
@media (prefers-reduced-motion:reduce){
  .reveal,.reveal-stagger > *{opacity:1;transform:none;transition:none}
  .marquee-track,.hero::before,.about-photo::before,.hero-video-wrap::before,
  .deco,.orb,.atom-electron,.hero-title-anim .line,.hs-num.counting,
  .hero-eyebrow .dot{animation:none !important;transform:none !important}
  .cursor-glow,.bg-canvas{display:none}
  .hero-title-anim .line{opacity:1}
}

/* ============================================================
   MOBILE RESPONSIVE HARDENING
   Fixes weird viewport spacing, horizontal overflow, padding
   ============================================================ */
html,body{
  /* `clip` invece di `hidden`: blocca lo scroll laterale ma NON crea
     uno scroll container → permette a `position: sticky` di funzionare */
  overflow-x:clip;
  overflow-y:visible;
  width:100%;
  max-width:100vw;
}

/* Tutto: prevenire overflow inaspettati */
img,video,svg{max-width:100%}

/* Container: fluid padding su mobile */
@media (max-width:680px){
  .container{padding-left:20px;padding-right:20px}
  .container.narrow{padding-left:20px;padding-right:20px}

  /* Section padding ridotto: meno spazio sprecato verticalmente */
  .hero{padding:40px 20px 60px}
  .vsl{padding:30px 0 60px}
  .trasf{padding:60px 0 40px}
  .trasf--no-head{padding:8px 0 30px}
  .problem{padding:60px 0}
  .about{padding:60px 0}
  .social{padding:60px 0}
  .outcomes{padding:60px 0}
  .how{padding:60px 0}
  .tech{padding:60px 0}
  .vtest{padding:60px 0}
  .cmp{padding:60px 0}
  .form-sec{padding:60px 0}
  .guarantee{padding:50px 0}
  .faq{padding:60px 0}
  .footer{padding:40px 0 20px}

  /* Hero typography: scala più aggressiva */
  .hero-title{font-size:clamp(28px,8vw,42px);line-height:1.1}
  .section-title{font-size:clamp(24px,6vw,32px);line-height:1.15}
  .big-headline{font-size:clamp(22px,6vw,30px);line-height:1.2}
  .prob-h{font-size:clamp(20px,5.6vw,28px)}

  /* Hero CTA: full width per click target migliore */
  .hero-cta{width:100%;flex-direction:column;gap:10px}
  .hero-cta .btn{width:100%}

  /* Video hero più piccolo per non rubare spazio */
  .hero-video-wrap{width:min(280px,85vw)}

  /* ===== ABOUT — anti-overflow ===== */
  .about-grid{
    grid-template-columns:1fr !important;
    gap:30px;
    width:100%;max-width:100%;min-width:0;
  }
  .about-photo,
  .about-text{min-width:0;max-width:100%;width:100%}
  .about-photo{overflow:hidden;border-radius:var(--radius-xl)}
  .about-photo>img{width:100%;height:auto;aspect-ratio:4/5;display:block;max-width:100%}
  .about-text>*{max-width:100%}
  .about-text p{overflow-wrap:break-word;word-break:break-word;hyphens:auto}

  /* About badge: nascosto su mobile (info ridondante, già nei credentials marquee).
     Evita anche il glitch visivo del rounded che "taglia" la foto */
  .about-badge{display:none !important}

  /* About stats: 3 col compatti, niente più overflow */
  .about-stats{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;margin:24px 0;
    max-width:100%;
  }
  .about-stats>div{
    padding:14px 8px;
    text-align:center;
    align-items:center;
    min-width:0;
  }
  .about-stats strong{font-size:22px;letter-spacing:-.03em}
  .about-stats span{font-size:9.5px;letter-spacing:.05em;line-height:1.25}

  /* ===== TECH (Adipometro) — carousel full-bleed mobile ===== */
  .tech-grid{gap:32px}
  .tech-imgs{
    aspect-ratio:auto;position:relative;
    display:flex !important;flex-wrap:nowrap;
    overflow-x:auto;overflow-y:visible;
    scroll-snap-type:x mandatory;
    /* FULL BLEED: forza la larghezza al 100% del viewport, ignorando container/grid */
    width:100vw !important;max-width:100vw !important;
    margin-left:calc(50% - 50vw) !important;
    margin-right:calc(50% - 50vw) !important;
    /* Spazio per il peek delle card prev/next + glow non clippato */
    scroll-padding-left:20px;scroll-padding-right:20px;
    gap:18px;
    padding:60px 20px 70px;
    margin-top:-46px;margin-bottom:-56px;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    touch-action:pan-x;
    overscroll-behavior-x:contain;
  }
  .tech-imgs::-webkit-scrollbar{display:none}

  /* Card 76% del viewport → peek netto sui 2 lati */
  .tech-img-1,.tech-img-2,.tech-img-3{
    position:static !important;
    flex:0 0 76vw !important;                    /* 76% di 100vw */
    width:auto !important;height:auto !important;
    aspect-ratio:1/1 !important;
    top:auto !important;left:auto !important;right:auto !important;bottom:auto !important;
    object-fit:contain !important;
    object-position:center;
    border-radius:18px !important;
    border:1px solid var(--border-2) !important;
    scroll-snap-align:center;scroll-snap-stop:always;
    opacity:1 !important;
    z-index:auto !important;
    display:block !important;
    box-shadow:var(--glow-sm),var(--shadow-deep);
    padding:18px !important;
  }
  .tech-img-1{background:#fff !important}
  .tech-img-2{background:#000 !important;border:0 !important;padding:0 !important}
  .tech-img-3{background:#fff !important}

  .tech-img-mobile{display:none !important}

  /* Form padding più stretto */
  .cta-form{padding:24px 18px}
  .g-card{padding:30px 22px}
  .prob-final{padding:28px 20px}
  .problem-solution{padding:24px 18px}

  /* SVG decorativi: nascosti su mobile (occupano spazio inutilmente) */
  .deco,.orb-3{display:none}

  /* Footer grid: 1 colonna pulita */
  .footer-grid{grid-template-columns:1fr 1fr;gap:24px}
  .footer-bottom{flex-direction:column;text-align:center;gap:8px}

  /* Sticky CTA: spazio dal bottom safe area */
  .sticky-cta{bottom:max(14px,env(safe-area-inset-bottom,14px))}

  /* Marquee credentials: card più strette per fittare meglio */
  .cred-item{height:84px;min-width:160px;padding:10px 16px}
  .cred-item img{max-height:60px;max-width:160px}
  .credentials{margin-top:36px;padding:24px 0 8px}

  /* Topbar: non andare a capo male */
  .topbar{font-size:11.5px;padding:7px 12px}

  /* Nav: spacing più stretto */
  .nav-inner{padding:10px 18px;gap:12px}
  .nav-logo img{height:38px}

  /* Comparison VS: nasconderlo (su 1 col diventa orizzontale orfano) */
  .cmp-vs{display:none}

  /* Case study cards mobile */
  .case-body{padding:28px 22px;gap:14px}
  .case-headline{font-size:22px;padding-left:24px}
  .case-stats{padding:16px 14px;gap:8px}
  .case-stats strong{font-size:18px}

  /* Outcomes step badge: meno aggressivo */
  .oc-body{padding:22px 22px 24px}
  .oc-title{font-size:18px}

  /* HW card: padding più stretto */
  .hw-step{padding:14px 18px 0}
  .hw-title{padding:8px 18px 18px;font-size:16px}

  /* FAQ: padding più stretto */
  .faq-item{padding:0 18px}
  .faq-item summary{font-size:15.5px;padding:18px 0}
}

/* Schermi molto piccoli (<380px - iPhone SE) */
@media (max-width:380px){
  .container,.container.narrow{padding-left:16px;padding-right:16px}
  .hero-title{font-size:26px}
  .section-title{font-size:22px}
  .footer-grid{grid-template-columns:1fr}
  .nav-logo img{height:34px}
  .topbar span{display:none}
}
