:root{
  --navy:#0a2540;--navy-2:#123a63;--blu:#1463c4;--giallo:#ffc531;--giallo-2:#f5b100;
  --testo:#16202c;--grigio:#5a6878;--chiaro:#f4f7fb;--bordo:#e1e7ef;--bianco:#fff;--wa:#1fa855;
  --r:14px;--ombra:0 10px 30px rgba(10,37,64,.08);--ombra-2:0 18px 40px rgba(10,37,64,.16)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font:17px/1.65 "Inter","Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;color:var(--testo);background:var(--bianco);-webkit-font-smoothing:antialiased}
a{color:var(--blu)}
img{max-width:100%;display:block}
h1,h2,h3{line-height:1.2;letter-spacing:-.02em;color:var(--navy)}
h2{font-size:clamp(1.5rem,3vw,2.1rem);margin:.2em 0 .7em}
h3{font-size:1.12rem;margin:.2em 0 .4em}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.ico{width:1.2em;height:1.2em;flex:none}
.ico-xl{width:100%;height:100%}

/* Header */
.top{background:rgba(8,26,46,.96);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid rgba(255,255,255,.08);position:sticky;top:0;z-index:20}
.bar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:76px}
.logo{display:flex;align-items:center;gap:14px;text-decoration:none}
.logo-stemmi{height:52px;width:auto}
.logo-scritta{height:17px;width:auto}
.logo-piede{width:280px;height:auto;margin-bottom:10px}
nav{display:flex;align-items:center;gap:22px}
nav>a,.menu summary{text-decoration:none;color:#e6eef7;font-weight:600;font-size:.97rem;cursor:pointer}
nav>a:hover,.menu summary:hover{color:var(--giallo)}
.menu{position:relative}
.menu summary{list-style:none}
.menu summary::-webkit-details-marker{display:none}
.menu summary::after{content:"▾";margin-left:5px;font-size:.8em}
.menu ul{position:absolute;right:-60px;top:42px;background:#fff;border:1px solid var(--bordo);border-radius:var(--r);list-style:none;margin:0;padding:10px;min-width:280px;box-shadow:var(--ombra-2)}
.menu li a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;text-decoration:none;color:var(--testo);font-weight:500}
.menu li a .ico{color:var(--blu)}
.menu li a:hover{background:var(--chiaro)}
.nav-cta{background:var(--giallo);color:var(--navy)!important;padding:9px 18px;border-radius:999px}
.nav-cta:hover{background:var(--giallo-2)}

/* Pulsanti */
.cta{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0 0}
.btn{display:inline-flex;align-items:center;gap:9px;background:var(--giallo);color:var(--navy)!important;font-weight:700;text-decoration:none;padding:13px 22px;border-radius:999px;transition:transform .15s,box-shadow .15s,background .15s;box-shadow:0 6px 16px rgba(255,197,49,.35)}
.btn:hover{transform:translateY(-2px);background:var(--giallo-2)}
.btn-wa{background:var(--wa);color:#fff!important;box-shadow:0 6px 16px rgba(31,168,85,.3)}
.btn-wa:hover{background:#178a45}
.btn-ghost{background:rgba(255,255,255,.1);color:#fff!important;border:1.5px solid rgba(255,255,255,.45);box-shadow:none}
.btn-ghost:hover{background:rgba(255,255,255,.2)}
.btn-ghost-scuro{background:transparent;color:var(--navy)!important;border:1.5px solid var(--navy);box-shadow:none}
.btn-ghost-scuro:hover{background:var(--navy);color:#fff!important}

/* Hero */
.hero{position:relative;overflow:hidden;color:#fff;padding:64px 0 70px;
  background:radial-gradient(1200px 500px at 85% -10%,rgba(20,99,196,.55),transparent 60%),
  radial-gradient(700px 400px at -10% 120%,rgba(255,197,49,.18),transparent 60%),
  linear-gradient(160deg,var(--navy) 0%,#0d2f52 60%,var(--navy-2) 100%)}
.hero::before{content:"";position:absolute;inset:0;opacity:.18;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px);
  background-size:44px 44px;mask-image:linear-gradient(180deg,#000,transparent 85%)}
.hero.con-foto{background:linear-gradient(100deg,rgba(10,37,64,.94) 0%,rgba(10,37,64,.78) 45%,rgba(10,37,64,.25) 100%),var(--foto) center/cover}
.hero.con-foto::before{display:none}
.hero-grande{padding:96px 0 110px}
.hero-in{position:relative;display:grid;grid-template-columns:1.5fr 1fr;align-items:center;gap:40px}
.hero h1{color:#fff;font-size:clamp(1.9rem,4.4vw,3.2rem);margin:.15em 0 .45em}
.hero-grande h1{font-size:clamp(2.1rem,5.2vw,3.7rem)}
.hero a{color:#fff}
.kicker{display:inline-block;color:var(--navy);background:var(--giallo);font-weight:700;font-size:.85rem;padding:5px 12px;border-radius:999px;margin:0;letter-spacing:.01em}
.lead{font-size:1.15rem;max-width:640px;color:#d7e3f1;margin:0}
.crumbs{font-size:.9rem;color:#a9bfd8;margin-bottom:10px}
.crumbs a{color:#d7e3f1}
.hero-deco{justify-self:center;width:min(300px,80%);aspect-ratio:1;display:grid;place-items:center;padding:56px;border-radius:50%;color:var(--giallo);
  background:radial-gradient(circle,rgba(255,197,49,.16),rgba(255,197,49,.02) 70%);border:1px solid rgba(255,197,49,.25);box-shadow:inset 0 0 60px rgba(255,197,49,.12)}
.hero-deco .ico-xl{stroke-width:1.2;filter:drop-shadow(0 0 18px rgba(255,197,49,.45))}

/* Numeri */
.numeri{position:relative;z-index:2;margin-top:-44px}
.numeri-in{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-radius:var(--r);box-shadow:var(--ombra-2);padding:0}
.num{padding:24px 22px;text-align:center;border-right:1px solid var(--bordo)}
.num:last-child{border-right:0}
.num b{display:block;font-size:1.7rem;color:var(--navy);letter-spacing:-.02em}
.num span{color:var(--grigio);font-size:.92rem}

/* Sezioni */
.sez{padding-top:72px;padding-bottom:72px}
.sez-chiara{background:var(--chiaro)}
.sopra{color:var(--blu);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;margin:0}
.centro{text-align:center;margin-top:30px}
.due{display:grid;grid-template-columns:1.6fr 1fr;gap:48px;align-items:start}

/* Card servizi */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}
.card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--bordo);border-radius:var(--r);padding:26px;text-decoration:none;color:var(--testo);transition:transform .2s,box-shadow .2s,border-color .2s}
.card:hover{transform:translateY(-4px);box-shadow:var(--ombra-2);border-color:transparent}
.card-ico{display:grid;place-items:center;width:52px;height:52px;border-radius:12px;background:linear-gradient(135deg,#e8f1fc,#fff6dc);color:var(--blu);margin-bottom:14px}
.card-ico .ico{width:26px;height:26px}
.card p{margin:0 0 14px;color:var(--grigio);font-size:.95rem;flex:1}
.link{display:inline-flex;align-items:center;gap:6px;color:var(--blu);font-weight:700;font-size:.93rem}
.card:hover .link .ico{transform:translateX(3px)}
.link .ico{transition:transform .2s}

/* Clienti */
.clienti{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.cliente{background:#fff;border-radius:var(--r);padding:26px;box-shadow:var(--ombra)}
.cliente>.ico{width:34px;height:34px;color:var(--giallo-2)}
.cliente p{color:var(--grigio);margin:0;font-size:.95rem}

/* Passi */
.passi{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;counter-reset:p}
.passi li{position:relative;padding-top:6px}
.passo{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--navy);color:var(--giallo);font-weight:800;font-size:1.1rem;margin-bottom:12px}
.passi li:not(:last-child)::after{content:"";position:absolute;top:29px;left:58px;right:-12px;height:2px;background:repeating-linear-gradient(90deg,var(--bordo) 0 8px,transparent 8px 14px)}
.passi p{color:var(--grigio);margin:0;font-size:.95rem}

/* Lavori */
.lavori{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px}
.lavoro{background:#fff;border-radius:var(--r);overflow:hidden;box-shadow:var(--ombra);display:flex;flex-direction:column}
.lavoro img,.lavoro-ph{aspect-ratio:16/10;object-fit:cover;width:100%}
.lavoro-ph{display:grid;place-items:center;padding:48px;color:var(--giallo);background:radial-gradient(circle at 70% 20%,rgba(20,99,196,.6),transparent 60%),linear-gradient(150deg,var(--navy),var(--navy-2))}
.lavoro-ph .ico-xl{width:84px;height:84px;stroke-width:1.3}
.lavoro-txt{padding:20px 22px 24px}
.lavoro-txt p{margin:0;color:var(--grigio);font-size:.95rem}

.mappa-box{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:36px;border-radius:var(--r);background:linear-gradient(150deg,var(--navy),var(--navy-2));color:#d7e3f1}
.mappa-box .ico-xl{width:56px;height:56px;color:var(--giallo)}
.mappa-box b{color:#fff;font-size:1.1rem}

/* Banda CTA */
.banda{background:linear-gradient(120deg,var(--navy),var(--blu));color:#fff;padding:56px 0}
.banda-in{display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap}
.banda h2{color:#fff;margin:0 0 .3em}
.banda p{margin:0;color:#d7e3f1}
.banda .cta{margin:0}

/* Pagine interne */
.testo h2{margin-top:1.6em}
.testo h2:first-child{margin-top:0}
.check{list-style:none;padding:0;margin:0 0 1em}
.check li{display:flex;gap:12px;align-items:flex-start;padding:7px 0}
.check .ico{color:var(--wa);margin-top:4px;stroke-width:2.4}
.faq details{background:var(--chiaro);border-radius:10px;padding:14px 18px;margin-bottom:10px}
.faq summary{font-weight:700;cursor:pointer;color:var(--navy)}
.faq p{margin:.6em 0 0;color:var(--grigio)}
aside{position:sticky;top:96px}
.box{background:var(--chiaro);border:1px solid var(--bordo);border-radius:var(--r);padding:24px;margin-bottom:18px}
.box strong{font-size:1.1rem;color:var(--navy)}
.box-scuro{background:linear-gradient(150deg,var(--navy),var(--navy-2));border:0;color:#d7e3f1}
.box-scuro strong{color:#fff}
.box-scuro .cta{flex-direction:column}
.box-scuro .btn{justify-content:center}
.altri{list-style:none;padding:0;margin:10px 0 0}
.altri a{display:flex;align-items:center;gap:10px;padding:8px 0;text-decoration:none;color:var(--testo);font-weight:500;border-bottom:1px solid var(--bordo)}
.altri a .ico{color:var(--blu)}
.altri a:hover{color:var(--blu)}
.zone{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.zone li{display:flex;align-items:center;gap:10px;background:var(--chiaro);border-radius:10px;padding:12px 16px;font-weight:500}
.zone .ico{color:var(--blu)}
.contatti{display:grid;gap:14px}
.contatto-card{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid var(--bordo);border-radius:var(--r);padding:20px;box-shadow:var(--ombra)}
.contatto-card>.ico{width:42px;height:42px;padding:10px;border-radius:10px;background:#e8f1fc;color:var(--blu)}
.contatto-card b{display:block;color:var(--navy)}

/* Footer */
.foot{background:var(--navy);color:#b8c8da;padding:56px 0 18px;font-size:.95rem}
.foot a{color:#fff;text-decoration:none}
.foot a:hover{text-decoration:underline}
.foot strong{color:#fff}
.foot ul{list-style:none;padding:0;margin:10px 0}
.foot li{padding:3px 0}
.contatto{display:flex;align-items:center;gap:10px;margin:8px 0}
.contatto .ico{color:var(--giallo)}
.grid3{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:36px}
.legal{opacity:.6;font-size:.82rem;margin-top:36px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12)}

.hero-scritta{display:none}

/* Barra mobile */
.barra-mobile{display:none}

@media (max-width:1100px){.logo-scritta{height:13px}}
@media (max-width:900px){
  .logo-scritta{display:none}
  .hero-in,.due{grid-template-columns:1fr}
  .hero-deco{display:none}
  .clienti{grid-template-columns:1fr 1fr}
  .passi{grid-template-columns:1fr 1fr}
  .passi li::after{display:none}
  .numeri-in{grid-template-columns:1fr 1fr}
  .num:nth-child(2){border-right:0}
  .num:nth-child(-n+2){border-bottom:1px solid var(--bordo)}
  .grid3{grid-template-columns:1fr}
  aside{position:static}
}
@media (max-width:640px){
  body{font-size:16px;padding-bottom:64px}
  .wrap{padding:0 16px}
  .nav-hide{display:none}
  nav{gap:14px}
  .nav-cta{padding:7px 14px}
  .logo-scritta{display:none}
  .logo-stemmi{height:46px}
  .hero-scritta{display:block;width:100%;height:auto;margin:0 0 22px}
  .bar{min-height:66px}
  .menu ul{position:fixed;left:12px;right:12px;top:66px;min-width:0}
  .hero{padding:44px 0 64px}
  .hero-grande{padding:52px 0 80px}
  .hero .cta .btn{flex:1 1 100%;justify-content:center}
  .clienti,.passi{grid-template-columns:1fr}
  .sez{padding-top:52px;padding-bottom:52px}
  .barra-mobile{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:30;box-shadow:0 -6px 20px rgba(0,0,0,.12)}
  .barra-mobile a{display:flex;align-items:center;justify-content:center;gap:8px;padding:15px;font-weight:700;text-decoration:none;background:var(--giallo);color:var(--navy)}
  .barra-mobile a.wa{background:var(--wa);color:#fff}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
