:root{
  --navy:#071B2E;
  --navy2:#0E2F52;
  --gold:#E0B85B;
  --gold2:#F2D28B;
  --green:#0D6B57;
  --green2:#0B4C41;

  --text:#0B1220;
  --muted:#5B6676;

  --radius:18px;
  --shadow: 0 18px 45px rgba(0,0,0,.18);
  --shadow2: 0 16px 34px rgba(0,0,0,.22);

  --speed:220ms;

  /* >>> MOD: spostamento verticale del form HERO (Preventivo veloce) */
  --heroFormOffset: 120px; /* aumenta/diminuisci qui (es: 100px / 140px) */
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}

body{
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--text);
  background:#fff;
  line-height:1.55;
}

a{color:inherit;text-decoration:none}
a:hover{opacity:.94}
.container{width:min(1140px,92vw);margin:0 auto}

.sr-only{
  position:absolute!important;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);
  border:0;
}
.skip-link{position:absolute;left:-999px;top:auto}
.skip-link:focus{
  left:12px;top:12px;background:#fff;
  padding:10px 12px;border-radius:10px;
  z-index:9999;box-shadow:var(--shadow);
}

/* Header */
.header{
  position:sticky;top:0;z-index:200;
  background:rgba(255,255,255,.82);
  backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid rgba(0,0,0,.06);
}
.header__inner{display:flex;align-items:center;gap:14px;padding:12px 0}
.brand{display:flex;align-items:center;gap:12px;min-width:240px}
.brand__mark{
  width:44px;height:44px;border-radius:14px;
  display:grid;place-items:center;
  background:linear-gradient(135deg,var(--navy),var(--green2));
  color:#fff;font-weight:900;
  box-shadow:0 14px 26px rgba(7,27,46,.28);
}
.brand__text strong{display:block;font-weight:900}
.brand__text small{display:block;color:var(--muted);font-weight:700;font-size:12px;margin-top:2px}
.header__cta{margin-left:auto;display:flex;align-items:center;gap:10px}

/* Nav */
.nav{display:flex;align-items:center;gap:10px}
.nav__menu{
  display:flex;align-items:center;gap:18px;
  padding:8px 14px;border-radius:999px;
  background:rgba(7,27,46,.06);
  border:1px solid rgba(7,27,46,.08);
}

/* ====== MOD: underline gradiente elegante su hover (SOLO MENU) ====== */
.nav__menu a{
  position:relative;
  font-weight:900;
  color:rgba(7,27,46,.86);
  font-size:14px;
  padding:6px 2px;
}
.nav__menu a:hover{color:var(--navy);opacity:1}

.nav__menu a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-6px;
  height:3px;
  border-radius:99px;
  background:linear-gradient(90deg, var(--gold), var(--gold2), var(--green));
  transform:scaleX(0);
  transform-origin:left;
  opacity:0;
  transition:transform 260ms ease, opacity 180ms ease;
}
.nav__menu a:hover::after{
  transform:scaleX(1);
  opacity:1;
}
/* mobile: niente underline */
@media (max-width:860px){
  .nav__menu a::after{display:none}
}
/* ====== /MOD ====== */

.nav__toggle{
  display:none;border:0;background:transparent;
  width:44px;height:44px;border-radius:12px;cursor:pointer;
}
.nav__toggle:hover{background:rgba(7,27,46,.06)}
.nav__toggleBar{display:block;width:22px;height:2px;margin:4px auto;background:var(--navy);border-radius:99px}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:999px;padding:12px 16px;
  font-weight:900;border:1px solid transparent;
  transition:transform var(--speed) ease, box-shadow var(--speed) ease, filter var(--speed) ease;
  cursor:pointer;gap:8px;
}
.btn:active{transform:translateY(1px)}
.btn--block{width:100%}
.btn--primary{
  background:linear-gradient(135deg,var(--navy),var(--green2));
  color:#fff;box-shadow:0 16px 34px rgba(13,107,87,.20);
}
.btn--primary:hover{filter:saturate(1.06) brightness(1.02);box-shadow:0 18px 40px rgba(13,107,87,.26)}
.btn--secondary{
  background:linear-gradient(135deg,var(--gold),var(--gold2));
  color:var(--navy);box-shadow:0 16px 34px rgba(224,184,91,.28);
}
.btn--secondary:hover{filter:saturate(1.06) brightness(1.02);box-shadow:0 18px 40px rgba(224,184,91,.32)}
.btn--ghost{
  background:#fff;border-color:rgba(7,27,46,.18);color:var(--navy);
}
.btn--ghost:hover{box-shadow:0 12px 26px rgba(0,0,0,.10)}

/* Hero */
.hero{
  position:relative;
  padding:58px 0 44px;
  overflow:hidden;
}

/* >>> FIX: background HERO con immagine + maschera, copre tutta l'altezza della sezione */
.hero__bg{
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:0;
}

/* layer immagine (trasparente) */
.hero__bg::before{
  content:"";
  position:absolute;
  inset:0;

  /* ATTENZIONE: path corretto da /css/ a /images/ */
  background: url("../images/torino-traslochi-bg.jpg") center / cover no-repeat;

  /* MOD: più visibilità alla foto */
  opacity:.36;
  filter:saturate(1.08) contrast(1.03);
  transform:scale(1.02);
}

/* layer maschera/overlay elegante sopra l'immagine */
.hero__bg::after{
  content:"";
  position:absolute;
  inset:0;

  /* MOD: overlay leggermente più “light” per far emergere l’immagine */
  background:
    radial-gradient(1000px 460px at 12% 22%, rgba(224,184,91,.30), transparent 62%),
    radial-gradient(980px 460px at 88% 26%, rgba(13,107,87,.20), transparent 62%),
    radial-gradient(880px 420px at 62% 10%, rgba(14,47,82,.10), transparent 60%),
    linear-gradient(180deg, rgba(7,27,46,.08), transparent);
}

/* contenuto hero sopra lo sfondo */
.hero__grid{
  position:relative;
  z-index:1;

  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap:28px;
  align-items:start;
}

/* >>> MOD: porto GIÙ il form del hero (Preventivo veloce) */
.hero__grid > .card--glass{
  margin-top: var(--heroFormOffset);
}

.badge{
  display:inline-flex;align-items:center;gap:10px;
  padding:9px 12px;border-radius:999px;
  background:rgba(7,27,46,.06);border:1px solid rgba(7,27,46,.10);
  font-weight:900;
}
.badge__dot{width:10px;height:10px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px rgba(224,184,91,.22)}
.hero__title{
  margin:14px 0 10px;
  font-size:clamp(34px,3.6vw,54px);
  line-height:1.02;
  letter-spacing:-.04em;
  color:var(--navy);
  max-width:22ch;
}
.lead{color:rgba(7,27,46,.80);font-size:16px;max-width:62ch}
.accent{
  background:linear-gradient(135deg,var(--navy),var(--green));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero__actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}

/* Mini cards */
.mini-grid{
  margin-top:18px;
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
  max-width:680px;
}
.mini-card{
  position:relative;
  display:flex;align-items:center;gap:12px;
  padding:14px 14px;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(7,27,46,.14);
  box-shadow:0 10px 24px rgba(0,0,0,.06);
  transition:transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.mini-card:hover{
  transform:translateY(-6px);
  box-shadow:0 18px 42px rgba(0,0,0,.10);
  border-color:rgba(7,27,46,.22);
}
.mini-card__icon{
  width:42px;height:42px;border-radius:14px;
  display:grid;place-items:center;
  background:rgba(7,27,46,.04);
  border:1px solid rgba(7,27,46,.10);
  color:var(--navy);
  flex:0 0 auto;
}
.mini-card__icon .ic{width:20px;height:20px}
.mini-card::after{
  content:"";
  position:absolute;
  left:14px; right:14px; bottom:10px;
  height:2px;border-radius:99px;
  background:rgba(7,27,46,.10);
  opacity:.9;
}
.mini-card--gold::after{background:linear-gradient(90deg, rgba(224,184,91,.85), rgba(224,184,91,.15))}
.mini-card--green::after{background:linear-gradient(90deg, rgba(13,107,87,.75), rgba(13,107,87,.12))}
.mini-card--navy::after{background:linear-gradient(90deg, rgba(7,27,46,.85), rgba(7,27,46,.12))}
.mini-card__text strong{display:block;font-weight:1000;color:var(--navy);letter-spacing:-.01em}
.mini-card__text span{display:block;margin-top:2px;color:rgba(7,27,46,.72);font-weight:700;font-size:13px}

/* Cards */
.card{
  border-radius:var(--radius);
  background:#fff;
  border:1px solid rgba(0,0,0,.06);
  box-shadow:var(--shadow);
}
.card--glass{
  background:rgba(255,255,255,.86);
  backdrop-filter: blur(10px) saturate(140%);
  border:1px solid rgba(7,27,46,.10);
}

/* =========================================================
   MOD: HERO Preventivo veloce più trasparente + input vetrati
   ========================================================= */
.hero .card--glass{
  background: rgba(255,255,255,.70);
}
.hero .card--glass input,
.hero .card--glass textarea,
.hero .card--glass select{
  background: rgba(255,255,255,.86);
}
/* Mobile: un filo più solido per leggibilità */
@media (max-width: 768px){
  .hero .card--glass{
    background: rgba(255,255,255,.82);
  }
  .hero .card--glass input,
  .hero .card--glass textarea,
  .hero .card--glass select{
    background: rgba(255,255,255,.92);
  }
}

.card__head{padding:18px 18px 0}
.card__head h2{margin:0 0 6px;font-size:18px;color:var(--navy);letter-spacing:-.01em}
.card__head p{margin:0;color:var(--muted);font-size:13px}
.card__foot{
  display:flex;gap:10px;flex-wrap:wrap;
  padding:14px 18px 18px;align-items:center;
  color:rgba(7,27,46,.70);font-weight:700;
}
.card__foot .dot{opacity:.6}

/* Forms */
.form{padding:16px 18px 18px}
.form--compact{padding:14px 18px 18px}

/* --- Messaggio inline (success) --- */
.form__notice{
  margin:0 0 12px;
  padding:12px 12px;
  border-radius:14px;
  border:1px solid rgba(7,27,46,.12);
  background:rgba(255,255,255,.80);
  box-shadow:0 10px 22px rgba(0,0,0,.06);
  display:grid;
  gap:2px;
}
.form__notice strong{
  font-weight:900;
  color:var(--navy);
  letter-spacing:-.01em;
}
.form__notice span{
  color:rgba(7,27,46,.72);
  font-weight:700;
  font-size:13px;
}
.form__notice--success{
  border-color: rgba(13,107,87,.22);
  background:
    linear-gradient(135deg, rgba(13,107,87,.10), rgba(224,184,91,.08)),
    rgba(255,255,255,.86);
}

/* Label NON grassetto */
.form label{
  display:block;
  font-weight:600;
  font-size:12px;
  color:rgba(7,27,46,.92);
  margin:8px 0 6px;
}

.form input,.form textarea,.form select{
  width:100%;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(7,27,46,.18);
  background:#fff;
  font:inherit;
  outline:none;
  transition:box-shadow var(--speed) ease, border-color var(--speed) ease, transform var(--speed) ease;
}
.form textarea{resize:vertical;min-height:110px}
.form input:focus,.form textarea:focus,.form select:focus{
  border-color:rgba(224,184,91,.95);
  box-shadow:0 0 0 4px rgba(224,184,91,.22);
}

/* =========================================================
   VALIDAZIONE DINAMICA (evidenziazione + animazione campi)
   ========================================================= */
@keyframes invalidShake {
  0%   { transform:translateX(0) }
  18%  { transform:translateX(-6px) }
  36%  { transform:translateX(6px) }
  54%  { transform:translateX(-5px) }
  72%  { transform:translateX(5px) }
  100% { transform:translateX(0) }
}

@keyframes invalidPulse {
  0%   { box-shadow:0 0 0 0 rgba(190,18,60,.00) }
  30%  { box-shadow:0 0 0 6px rgba(190,18,60,.18) }
  60%  { box-shadow:0 0 0 10px rgba(190,18,60,.12) }
  100% { box-shadow:0 0 0 0 rgba(190,18,60,.00) }
}

/* Stato errore */
.form input.is-invalid,
.form textarea.is-invalid,
.form select.is-invalid{
  border-color: rgba(190, 18, 60, .92) !important;
  box-shadow: 0 0 0 4px rgba(190, 18, 60, .14) !important;
}

/* Shake + pulse (riattivabile via JS) */
.form input.is-invalid-anim,
.form textarea.is-invalid-anim,
.form select.is-invalid-anim{
  animation: invalidShake 380ms ease, invalidPulse 520ms ease;
}

/* Rispetta prefers-reduced-motion */
@media (prefers-reduced-motion: reduce){
  .form input.is-invalid-anim,
  .form textarea.is-invalid-anim,
  .form select.is-invalid-anim{
    animation:none !important;
  }
}
/* =========================================================
   /VALIDAZIONE DINAMICA
   ========================================================= */

/* 4 campi per riga */
.form__row{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:10px;
}

.form__meta{margin-top:10px;display:flex;flex-direction:column;gap:6px}
.form__privacy{font-size:12px;color:var(--muted)}

/* Checkboxes normali */
.checkgrid{
  margin:10px 0 6px;
  padding:10px 0 0;
  border:0;
  background:transparent;
}
.checkgrid legend{
  font-weight:600;
  font-size:12px;
  color:rgba(7,27,46,.92);
  padding:0;
  margin:0 0 10px;
}
.checkgrid--grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:10px 18px;
}
.check-item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:0;
  border:0;
  background:transparent;
  border-radius:0;
  box-shadow:none;
  font-weight:600;
  color:rgba(7,27,46,.86);
  transition:none !important;
}
.check-item:hover{transform:none;box-shadow:none;border-color:transparent}
.check-item input{
  width:16px;height:16px;margin:0;
  accent-color: var(--navy2);
  flex:0 0 auto;
}
.check-item span{
  display:block;
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:13px;
}
.checkgrid.is-invalid{outline:none;border:0;box-shadow:none}
.checkgrid.is-invalid legend{color:rgba(190, 18, 60, .95)}

/* animazione anche sul blocco checkbox */
.checkgrid.is-invalid-anim legend{
  animation: invalidShake 380ms ease;
}

/* Sections */
.section{padding:56px 0}
.section__head{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}
.section__head h2{
  margin:0;font-size:28px;letter-spacing:-.02em;color:var(--navy);
  position:relative;width:fit-content;
}
.section__head h2::after{
  content:"";position:absolute;left:0;bottom:-8px;width:58%;height:4px;border-radius:99px;
  background:linear-gradient(135deg,var(--gold),var(--gold2));
}
.section__head p{margin:14px 0 0;color:var(--muted)}
.section--alt{
  background:
    radial-gradient(900px 420px at 25% 20%, rgba(224,184,91,.20), transparent 62%),
    linear-gradient(180deg, rgba(7,27,46,.05), rgba(7,27,46,.02));
  border-top:1px solid rgba(0,0,0,.05);
  border-bottom:1px solid rgba(0,0,0,.05);
}
.grid{display:grid;gap:14px}
.grid--3{grid-template-columns:repeat(3,1fr)}
.feature,.step{
  position:relative;
  padding:16px 16px 18px;border-radius:18px;
  background:#fff;
  border:1px solid rgba(7,27,46,.14);
  box-shadow:0 12px 26px rgba(0,0,0,.07);
  transition:transform var(--speed) ease, box-shadow var(--speed) ease;
}
.feature:hover,.step:hover{transform:translateY(-7px);box-shadow:0 18px 44px rgba(0,0,0,.12)}
.feature h3{margin:0 0 6px;color:var(--navy);letter-spacing:-.01em}
.feature p{margin:0;color:var(--muted);font-weight:600}

.steps{display:grid;gap:14px;grid-template-columns:repeat(3,1fr)}
.step__num{
  display:inline-grid;place-items:center;width:34px;height:34px;border-radius:12px;
  background:linear-gradient(135deg,var(--gold),var(--gold2));
  color:var(--navy);font-weight:1000;
}
.step h3{margin:10px 0 6px;color:var(--navy)}
.step p{margin:0;color:var(--muted);font-weight:600}

/* Pills (zone) */
.pill-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.pill{
  padding:10px 12px;border-radius:999px;
  background:linear-gradient(135deg, rgba(13,107,87,.10), rgba(224,184,91,.10));
  border:1px solid rgba(7,27,46,.14);
  color:rgba(7,27,46,.88);
  font-weight:900;font-size:13px;
  transition:transform var(--speed) ease, box-shadow var(--speed) ease;
}
.pill:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(0,0,0,.10)}

/* CTA section background */
.section--cta{
  background:
    radial-gradient(1000px 460px at 12% 25%, rgba(224,184,91,.28), transparent 62%),
    radial-gradient(900px 420px at 88% 30%, rgba(13,107,87,.18), transparent 62%),
    linear-gradient(180deg, rgba(7,27,46,.06), rgba(7,27,46,.02));
  border-top:1px solid rgba(0,0,0,.05);
}

/* PREVENTIVO ORIZZONTALE */
.preventivo-wrap{
  display:grid;
  grid-template-columns: 1fr 1.65fr;
  gap:28px;
  align-items:start;
}
.preventivo-intro h2{
  margin:0 0 10px;
  font-size:32px;
  letter-spacing:-.02em;
  color:var(--navy);
}
.preventivo-intro p{
  margin:0;
  color:var(--muted);
  font-weight:600;
  max-width:58ch;
}
.preventivo-hint{
  margin-top:18px;
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  max-width:520px;
}
.hint-box{
  padding:12px 14px;
  border-radius:16px;
  background:rgba(255,255,255,.70);
  border:1px solid rgba(7,27,46,.12);
  box-shadow:0 10px 22px rgba(0,0,0,.06);
}
.hint-box strong{
  display:block;color:var(--navy);
  font-weight:900;letter-spacing:-.01em;
}
.hint-box span{
  display:block;margin-top:2px;
  color:rgba(7,27,46,.72);
  font-weight:700;font-size:13px;
}
.preventivo-card{padding:10px}

/* ========= NUOVO BLOCCO: STATSBAND ========= */
.statsband{
  position:relative;
  padding:54px 0;
  overflow:hidden;

  background:
    radial-gradient(900px 360px at 20% 20%, rgba(224,184,91,.18), transparent 62%),
    radial-gradient(900px 360px at 80% 30%, rgba(13,107,87,.20), transparent 62%),
    linear-gradient(135deg, rgba(7,27,46,.06), rgba(7,27,46,.02));
  border-top:1px solid rgba(0,0,0,.05);
  border-bottom:1px solid rgba(0,0,0,.05);
}
.statsband__bg{
  position:absolute;inset:-120px -120px -120px -120px;
  background:
    radial-gradient(520px 240px at 18% 40%, rgba(7,27,46,.08), transparent 64%),
    radial-gradient(520px 240px at 82% 50%, rgba(13,107,87,.10), transparent 64%),
    radial-gradient(460px 220px at 55% 10%, rgba(224,184,91,.10), transparent 66%);
  pointer-events:none;
  filter:saturate(120%);
}
.statsband__inner{
  position:relative;
}
.statsband__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
  margin-bottom:18px;
}
.statsband__head h2{
  margin:0;
  font-size:28px;
  letter-spacing:-.02em;
  color:var(--navy);
}
.statsband__head p{
  margin:0;
  color:var(--muted);
  font-weight:700;
  max-width:60ch;
}
.statsband__grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:14px;
}

.stat{
  --p: 0;
  position:relative;
  border-radius:18px;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(7,27,46,.12);
  box-shadow:0 12px 26px rgba(0,0,0,.07);
  padding:16px 16px 14px;
  display:grid;
  gap:8px;
  align-content:start;
  transition:transform var(--speed) ease, box-shadow var(--speed) ease, border-color var(--speed) ease;
}
.stat:hover{
  transform:translateY(-6px);
  box-shadow:0 18px 44px rgba(0,0,0,.12);
  border-color:rgba(7,27,46,.18);
}

.stat__ring{
  width:88px;height:88px;
  position:relative;
  display:grid;
  place-items:center;
  margin-bottom:2px;
}
.stat__ring svg{
  width:88px;height:88px;
  transform:rotate(-90deg);
}
.stat__track{
  fill:none;
  stroke:rgba(7,27,46,.12);
  stroke-width:10;
}
.stat__bar{
  fill:none;
  stroke:url(#gradStat);
  stroke-width:10;
  stroke-linecap:round;
  stroke-dasharray:289;
  stroke-dashoffset:289;
  transition:stroke-dashoffset 1200ms ease;
}

/* gradient “trucco”: usiamo stroke con un colore coerente */
.stat__bar{ stroke: rgba(13,107,87,.85); }
.stat:nth-child(3) .stat__bar{ stroke: rgba(224,184,91,.92); }
.stat:nth-child(4) .stat__bar{ stroke: rgba(7,27,46,.88); }

.stat.is-animate .stat__bar{
  stroke-dashoffset: calc(289 - (289 * (var(--p) / 100)));
}

.stat__icon{
  position:absolute;
  width:42px;height:42px;
  border-radius:14px;
  display:grid;place-items:center;
  background:linear-gradient(135deg, rgba(7,27,46,.06), rgba(13,107,87,.08));
  border:1px solid rgba(7,27,46,.12);
  color:var(--navy);
}
.stat__icon svg{width:22px;height:22px}

.stat__value{
  font-size:34px;
  line-height:1;
  letter-spacing:-.03em;
  color:var(--navy);
  font-weight:1000;
}
.stat__label{
  font-weight:900;
  color:rgba(7,27,46,.86);
}
.stat__sub{
  color:rgba(7,27,46,.70);
  font-weight:700;
  font-size:13px;
}

.statsband__note{
  margin-top:12px;
  color:rgba(7,27,46,.62);
  font-weight:700;
  font-size:12px;
}

/* ========= /NUOVO BLOCCO: STATSBAND ========= */

/* Footer */
.footer{
  background:linear-gradient(135deg, var(--navy), #050E18);
  color:#fff;padding:42px 0 0;
}
.footer__grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:16px}
.footer h3,.footer h4{margin:0 0 8px}
.footer p{margin:0;color:rgba(255,255,255,.78)}
.footer__list{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.footer__list a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.footer__bottom{margin-top:24px;border-top:1px solid rgba(255,255,255,.12)}
.footer__bottomInner{padding:14px 0;color:rgba(255,255,255,.72);font-weight:700;font-size:13px}

/* Floating call */
.fab{
  position:fixed;right:16px;bottom:16px;z-index:300;
  display:none;padding:12px 14px;border-radius:999px;
  background:linear-gradient(135deg,var(--navy),var(--green2));
  color:#fff;font-weight:1000;box-shadow:var(--shadow2);
  border:1px solid rgba(255,255,255,.14);
}

/* Reveal */
.reveal{
  opacity:0;
  transform:translateY(14px);
  filter:blur(2px);
  transition:opacity 520ms ease, transform 520ms ease, filter 520ms ease;
  will-change:opacity, transform;
}
.reveal.is-visible{opacity:1;transform:translateY(0);filter:blur(0)}
@media (prefers-reduced-motion: reduce){
  *{transition:none!important;animation:none!important}
  .reveal{opacity:1;transform:none;filter:none}
  .stat__bar{transition:none!important}
}

/* BACK TO TOP (a destra) */
.back-to-top{
  position:fixed;
  right:16px;left:auto;
  bottom:74px;
  z-index:350;
  width:46px;height:46px;border-radius:14px;
  border:1px solid rgba(7,27,46,.18);
  background:rgba(255,255,255,.92);
  backdrop-filter: blur(10px) saturate(150%);
  color:var(--navy);
  box-shadow:0 14px 30px rgba(0,0,0,.16);
  display:grid;place-items:center;
  cursor:pointer;
  opacity:0;transform:translateY(10px);
  pointer-events:none;
  transition:opacity 220ms ease, transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.back-to-top__ic{width:20px;height:20px}
.back-to-top:hover{
  box-shadow:0 18px 40px rgba(0,0,0,.20);
  border-color:rgba(7,27,46,.26);
  transform:translateY(6px);
}
.back-to-top.is-visible{
  opacity:1;transform:translateY(0);
  pointer-events:auto;
}

/* Responsive */
@media (max-width: 1200px){
  .form__row{grid-template-columns:repeat(2, minmax(0, 1fr))}
  .checkgrid--grid{grid-template-columns:repeat(2, minmax(0, 1fr))}
  .statsband__grid{grid-template-columns:repeat(2, minmax(0, 1fr))}
}
@media (max-width: 980px){
  .hero__grid{grid-template-columns:1fr;gap:16px}
  .grid--3{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .footer__grid{grid-template-columns:1fr}
  .brand{min-width:auto}
  .header__cta{display:none}
  .fab{display:inline-flex}
  .mini-grid{grid-template-columns:1fr;max-width:520px}
  .preventivo-wrap{grid-template-columns:1fr}

  /* su mobile NON sposto il form */
  .hero__grid > .card--glass{margin-top:0}
}
@media (max-width: 860px){
  .nav__menu{
    position:absolute;right:4vw;top:64px;width:min(360px,92vw);
    display:none;flex-direction:column;align-items:flex-start;gap:12px;
    padding:14px;border-radius:18px;background:#fff;box-shadow:var(--shadow);
    border:1px solid rgba(0,0,0,.06);
  }
  .nav__menu.is-open{display:flex}
  .nav__toggle{display:inline-flex}
}
@media (max-width: 520px){
  .form__row{grid-template-columns:1fr}
  .hero{padding-top:44px}
  .checkgrid--grid{grid-template-columns:1fr}
  .back-to-top{bottom:78px}
  .statsband__grid{grid-template-columns:1fr}
}
