/* MAFE Service — stile (ispirato al cartellone aziendale) */
@font-face{font-family:"Inter";font-style:normal;font-weight:400 800;font-display:swap;src:url(fonts/inter.woff2) format("woff2")}

:root{
  --red:#e30613;        /* rosso MAFE acceso */
  --red-dk:#bf0510;
  --red-50:#fff0f0;
  --ink:#16181b;
  --ink-2:#3b3f45;
  --muted:#6c7178;
  --line:#e6e7ea;
  --bg:#ffffff;
  --bg-2:#f5f5f3;
  --dark:#141619;
  --wrap:1240px;
  --r:10px;
  --shadow:0 1px 2px rgba(16,18,20,.05),0 8px 24px rgba(16,18,20,.06);
  --font:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;font-family:var(--font);font-size:17px;line-height:1.65;color:var(--ink);background:var(--bg);overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--red);text-underline-offset:3px}
a:hover{color:var(--red-dk)}
:focus-visible{outline:3px solid var(--red);outline-offset:3px;border-radius:4px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
@media (max-width:560px){.wrap{padding:0 18px}}
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:10px 14px;z-index:100}
.skip:focus{left:10px;top:10px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

h1,h2,h3,h4{font-weight:800;line-height:1.08;letter-spacing:-.025em;margin:0 0 .45em;color:var(--ink)}
h1{font-size:clamp(40px,6vw,76px);letter-spacing:-.035em}
h2{font-size:clamp(30px,3.8vw,48px)}
h3{font-size:clamp(19px,1.6vw,22px);letter-spacing:-.015em}
p{margin:0 0 1em}
.red{color:var(--red)}
.kicker{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--red);margin-bottom:16px}
.kicker::before{content:"";width:28px;height:2px;background:var(--red)}
.lead{font-size:clamp(17px,1.4vw,20px);color:var(--ink-2);max-width:64ch}
.muted{color:var(--muted)}

/* Bottoni */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 24px;border-radius:8px;font:700 16px/1 var(--font);text-decoration:none;border:2px solid transparent;cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .15s;white-space:nowrap}
.btn svg{width:19px;height:19px;flex:none}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:var(--red-dk);color:#fff}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:#000;color:#fff}
.btn-line{border-color:#cfd2d6;color:var(--ink);background:#fff}
.btn-line:hover{border-color:var(--ink);color:var(--ink)}
.btn-white{background:#fff;color:var(--red)}
.btn-white:hover{background:var(--ink);color:#fff}
.btn-ghost{border-color:rgba(255,255,255,.7);color:#fff}
.btn-ghost:hover{background:#fff;color:var(--ink)}
.btns{display:flex;flex-wrap:wrap;gap:12px}
.link{font-weight:700;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.link svg{width:17px;height:17px;transition:transform .15s}
.link:hover svg{transform:translateX(3px)}

/* Topbar + header */
.topbar{background:var(--dark);color:#c9ccd1;font-size:13.5px}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:40px}
.topbar a{color:#fff;text-decoration:none;font-weight:600}
.topbar a:hover{color:#ff8a82}
.topbar .tb-r{display:flex;gap:22px}
.topbar .tb-r span{color:#8e939a;font-weight:500;margin-right:4px}
@media (max-width:900px){.topbar .tb-l{display:none}.topbar .wrap{justify-content:center}}
@media (max-width:420px){.topbar{font-size:12.5px}.topbar .tb-r{gap:14px}}

header.site{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:saturate(1.5) blur(10px);border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;min-height:80px;gap:20px}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);flex:none}
.logo img{height:46px;width:auto}
.logo b{display:block;font-size:22px;font-weight:800;letter-spacing:-.02em;line-height:1}
.logo small{display:block;font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:5px}
nav.main ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:2px}
nav.main a{display:block;padding:10px 13px;color:var(--ink);text-decoration:none;font-weight:600;font-size:15px;border-radius:8px}
nav.main a:hover{background:var(--bg-2);color:var(--ink)}
nav.main a[aria-current="page"]{color:var(--red)}
nav.main .btn{display:inline-flex;margin-left:10px;min-height:46px;padding:0 20px;font-size:15px;color:#fff}
nav.main .btn:hover{background:var(--red-dk);color:#fff}
.menu-toggle{display:none;background:none;border:0;width:48px;height:48px;cursor:pointer;color:var(--ink);border-radius:8px}
.menu-toggle svg{width:28px;height:28px}
@media (max-width:1060px){
  .menu-toggle{display:grid;place-items:center}
  nav.main{position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 24px 40px rgba(0,0,0,.08);display:none;max-height:calc(100vh - 80px);overflow:auto}
  nav.main.open{display:block}
  nav.main ul{flex-direction:column;align-items:stretch;padding:8px 20px 22px}
  nav.main a{padding:15px 4px;border-bottom:1px solid var(--line);border-radius:0;font-size:17px}
  nav.main a:hover{background:none}
  nav.main .btn{display:flex;margin:16px 0 0;width:100%;min-height:54px}
}
@media (max-width:420px){.logo img{height:38px}.logo b{font-size:19px}.logo small{font-size:9.5px}}

/* Sezioni */
section{padding:clamp(64px,8vw,110px) 0}
.bg-2{background:var(--bg-2)}
.bg-dark{background:var(--dark);color:#d6d8dc}
.bg-dark h2,.bg-dark h3{color:#fff}
.bg-dark .lead{color:#b9bdc3}
.head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:44px;flex-wrap:wrap}
.head>div{max-width:720px}
.head h2{margin-bottom:.3em}
.head p{margin:0}

/* HERO (stile cartellone: bianco + pannello rosso) */
.hero{padding:0;border-bottom:1px solid var(--line);overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.35fr .9fr;align-items:stretch;min-height:clamp(560px,72vh,700px)}
.hero-l{padding:clamp(48px,7vw,90px) clamp(0px,3vw,40px) clamp(48px,6vw,80px) 0;display:flex;flex-direction:column;justify-content:center}
.hero h1{margin-bottom:14px}
.hero .sub{font-size:clamp(19px,1.9vw,25px);font-weight:700;color:var(--ink-2);letter-spacing:-.01em;margin:0 0 10px}
.hero .phases{font-size:13px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:0 0 26px}
.hero .lead{margin-bottom:30px}
.badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}
.badge{display:inline-flex;align-items:center;gap:9px;padding:9px 14px;border:1px solid var(--line);border-radius:999px;font-size:14px;font-weight:600;background:#fff;color:var(--ink)}
.badge svg{width:18px;height:18px;color:var(--red);flex:none}
.hero-r{position:relative;background:var(--red);color:#fff;padding:clamp(40px,5vw,64px) clamp(28px,4vw,56px);display:flex;flex-direction:column;justify-content:center}
.hero-r::before{content:"";position:absolute;top:0;bottom:0;left:-80px;width:81px;background:var(--red);clip-path:polygon(100% 0,100% 100%,0 100%)}
.hero-r::after{content:"";position:absolute;top:0;bottom:0;left:100%;width:50vw;background:var(--red)}
.hero-r .t{font-size:14px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.45);margin-bottom:22px}
.hero-r .ph{margin-bottom:20px}
.hero-r .ph small{display:block;font-size:12.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;opacity:.85}
.hero-r .ph a{color:#fff;text-decoration:none;font-size:clamp(30px,3.2vw,42px);font-weight:800;letter-spacing:-.02em;line-height:1.15}
.hero-r .ph a:hover{text-decoration:underline}
.hero-r .web{font-weight:700;font-size:18px;color:#fff;text-decoration:none;display:block;padding-top:18px;margin-top:6px;border-top:1px solid rgba(255,255,255,.45)}
.hero-r .free{margin-top:22px;display:flex;align-items:center;gap:10px;font-weight:600;font-size:15px}
.hero-r .free svg{width:20px;height:20px}
@media (max-width:960px){
  .hero .wrap{grid-template-columns:1fr;min-height:0;padding:0}
  .hero-l{padding:48px 24px 40px}
  .hero-r{padding:36px 24px 40px}
  .hero-r::before,.hero-r::after{display:none}
}
@media (max-width:560px){.hero-l{padding:36px 18px 34px}.hero-r{padding:30px 18px 34px}}

/* Numeri */
.numbers{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line)}
.numbers div{padding:30px 24px;border-right:1px solid var(--line)}
.numbers div:last-child{border-right:0}
.numbers b{display:block;font-size:clamp(36px,4vw,52px);font-weight:800;letter-spacing:-.035em;line-height:1;color:var(--red)}
.numbers span{display:block;margin-top:8px;font-size:14px;font-weight:600;color:var(--ink-2)}
@media (max-width:760px){.numbers{grid-template-columns:repeat(2,1fr)}.numbers div:nth-child(2){border-right:0}.numbers div:nth-child(-n+2){border-bottom:1px solid var(--line)}}

/* Card servizi con foto */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;text-decoration:none;color:var(--ink);transition:transform .2s,box-shadow .2s,border-color .2s}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:#d8dadd;color:var(--ink)}
.card .ph{aspect-ratio:4/3;overflow:hidden;background:var(--bg-2);position:relative}
.card .ph img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.card:hover .ph img{transform:scale(1.05)}
.card .tag{position:absolute;left:12px;top:12px;background:var(--red);color:#fff;font-size:12px;font-weight:700;padding:5px 10px;border-radius:6px;letter-spacing:.02em}
.card .bd{padding:20px 20px 22px;display:flex;flex-direction:column;flex:1}
.card h3{margin-bottom:8px}
.card p{font-size:15px;color:var(--ink-2);margin-bottom:14px}
.card .link{margin-top:auto;font-size:14.5px;color:var(--red)}
@media (max-width:1100px){.cards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.cards{grid-template-columns:1fr}}

/* Banda Tesla */
.tesla{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:center}
.tesla .photo{border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;background:#23262b}
.tesla .photo img{width:100%;height:100%;object-fit:cover}
.cert{display:inline-flex;align-items:center;gap:10px;background:#fff;color:var(--ink);padding:10px 16px;border-radius:999px;font-weight:800;font-size:14px;letter-spacing:.02em;margin-bottom:22px}
.cert svg{width:20px;height:20px;color:var(--red)}
.checks{list-style:none;padding:0;margin:0 0 28px;display:grid;gap:12px}
.checks li{position:relative;padding-left:34px}
.checks li::before{content:"";position:absolute;left:0;top:3px;width:22px;height:22px;border-radius:50%;background:var(--red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center/14px no-repeat}
@media (max-width:900px){.tesla{grid-template-columns:1fr}}

/* Chi siamo */
.about{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(32px,5vw,72px);align-items:center}
.about .photo{background:#fff;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);margin:0}
.about .photo figcaption{padding:14px 18px;font-size:14px;color:var(--muted);border-top:1px solid var(--line)}
.timeline{list-style:none;margin:28px 0 0;padding:0;border-left:2px solid var(--line)}
.timeline li{position:relative;padding:0 0 20px 26px}
.timeline li::before{content:"";position:absolute;left:-7px;top:6px;width:12px;height:12px;border-radius:50%;background:#fff;border:3px solid var(--red)}
.timeline b{display:block;font-size:15px;color:var(--red);font-weight:800}
.timeline span{font-size:15.5px;color:var(--ink-2)}
@media (max-width:900px){.about{grid-template-columns:1fr}}

/* Team */
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.person{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:28px;display:flex;flex-direction:column}
.person .ini{width:56px;height:56px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;font-weight:800;font-size:20px;margin-bottom:16px}
.person h3{font-size:24px;margin-bottom:2px}
.person .role{font-size:14px;font-weight:700;color:var(--red);margin-bottom:14px}
.person p{font-size:15.5px;color:var(--ink-2)}
.person h4{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:10px 0 10px;font-weight:700}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips span{font-size:13px;font-weight:600;background:var(--bg-2);border:1px solid var(--line);padding:5px 10px;border-radius:6px}
.person .edu{font-size:14.5px;color:var(--ink-2);padding:12px 14px;background:var(--bg-2);border-radius:8px;margin:0 0 6px}
.person .tel{margin-top:auto;padding-top:18px;font-weight:800;font-size:18px;text-decoration:none;color:var(--ink)}
.person .tel:hover{color:var(--red)}
@media (max-width:960px){.team{grid-template-columns:1fr}}

/* Impegno: facciamo / non facciamo */
.dodont{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.dodont>div{border-radius:var(--r);padding:32px}
.dodont h3{font-size:24px;margin-bottom:16px}
.dodont ul{list-style:none;margin:0;padding:0}
.dodont li{position:relative;padding:12px 0 12px 38px;border-top:1px solid rgba(0,0,0,.07);font-weight:600;font-size:16px}
.dodont li::before{position:absolute;left:0;top:11px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:800}
.dodont .do{background:#fff;border:1px solid var(--line)}
.dodont .do li::before{content:"✓";background:var(--red);color:#fff}
.dodont .dont{background:var(--dark);color:#fff}
.dodont .dont h3{color:#fff}
.dodont .dont li{border-top-color:rgba(255,255,255,.12)}
.dodont .dont li::before{content:"✕";background:#fff;color:var(--ink)}
@media (max-width:800px){.dodont{grid-template-columns:1fr}.dodont>div{padding:24px}}

/* Metodo */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;counter-reset:s}
.step{border-top:3px solid var(--red);padding-top:22px}
.step::before{counter-increment:s;content:counter(s,decimal-leading-zero);display:block;font-size:14px;font-weight:800;color:var(--red);letter-spacing:.1em;margin-bottom:8px}
.step p{font-size:15.5px;color:var(--ink-2);margin:0}
@media (max-width:900px){.steps{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* Galleria */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.gallery figure{margin:0;position:relative;border-radius:8px;overflow:hidden;background:var(--bg-2);aspect-ratio:1/1}
.gallery a{display:block;height:100%}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.gallery a:hover img{transform:scale(1.05)}
.gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 14px 12px;color:#fff;font-size:13.5px;font-weight:600;background:linear-gradient(transparent,rgba(0,0,0,.72));pointer-events:none}
@media (max-width:900px){.gallery{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.gallery{gap:8px}.gallery figcaption{font-size:12px;padding:20px 10px 8px}}
dialog.lb{border:0;padding:0;background:transparent;max-width:94vw;max-height:92vh}
dialog.lb::backdrop{background:rgba(0,0,0,.9)}
dialog.lb img{max-width:94vw;max-height:84vh;width:auto;margin:0 auto;border-radius:6px}
dialog.lb p{color:#fff;text-align:center;margin:12px 0 0;font-weight:600}
dialog.lb button{position:fixed;top:14px;right:14px;width:48px;height:48px;border-radius:50%;border:0;background:#fff;font-size:26px;cursor:pointer;line-height:1}

/* Abilitazioni */
.abil{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.abil div{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px}
.abil b{display:grid;place-items:center;width:52px;height:52px;border-radius:10px;background:var(--red);color:#fff;font-size:26px;font-weight:800;margin-bottom:16px}
.abil h3{font-size:18px;margin-bottom:6px}
.abil p{font-size:14.5px;color:var(--muted);margin:0}
@media (max-width:900px){.abil{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.abil{grid-template-columns:1fr}}

/* FAQ */
.faq{max-width:880px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:22px 44px 22px 0;font-weight:700;font-size:18px;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:8px;top:30px;width:12px;height:12px;border-right:2.5px solid var(--red);border-bottom:2.5px solid var(--red);transform:rotate(45deg);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(-135deg);top:34px}
.faq details p{color:var(--ink-2);padding-right:44px}

/* Contattaci */
.contact{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(28px,4vw,56px);align-items:start}
.pcards{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.pcard{border:1px solid var(--line);border-radius:var(--r);padding:22px;background:#fff}
.pcard small{display:block;font-size:12.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.pcard .who{font-weight:800;font-size:19px;margin:2px 0 10px}
.pcard a.num{display:block;font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--ink);text-decoration:none;margin-bottom:14px}
@media (hover:hover){.pcard a.num:hover{color:var(--red)}}
.pcard .acts{display:flex;gap:8px}
.pcard .acts a{flex:1;min-height:42px;font-size:14px;padding:0 12px}
.info{border:1px solid var(--line);border-radius:var(--r);background:#fff}
.info>div{display:flex;gap:14px;padding:16px 20px;border-bottom:1px solid var(--line)}
.info>div:last-child{border-bottom:0}
.info svg{width:22px;height:22px;color:var(--red);flex:none;margin-top:2px}
.info b{display:block;font-size:14px}
.info span,.info a{font-size:15.5px;color:var(--ink-2)}
@media (max-width:960px){.contact{grid-template-columns:1fr}}
@media (max-width:480px){.pcards{grid-template-columns:1fr}}

form.quote{background:#fff;border:1px solid var(--line);border-top:5px solid var(--red);border-radius:var(--r);padding:clamp(22px,3vw,36px);box-shadow:var(--shadow)}
form.quote h2,form.quote h3{font-size:clamp(26px,2.6vw,34px)}
form.quote label{display:block;font-weight:700;font-size:14px;margin:0 0 6px}
form.quote label .opt{font-weight:400;color:var(--muted)}
form.quote .row{margin-bottom:16px}
form.quote .two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
form.quote input,form.quote select,form.quote textarea{width:100%;font:inherit;font-size:16px;padding:12px 14px;border:1px solid #cfd2d6;border-radius:8px;background:#fff;color:var(--ink)}
form.quote input:focus,form.quote select:focus,form.quote textarea:focus{border-color:var(--red);outline:none;box-shadow:0 0 0 3px rgba(227,6,19,.15)}
form.quote textarea{min-height:130px;resize:vertical}
form.quote .check{display:flex;gap:10px;align-items:flex-start;font-weight:400;font-size:14px}
form.quote .check input{width:auto;margin-top:4px}
form.quote .note{font-size:13px;color:var(--muted);margin:14px 0 0}
@media (max-width:520px){form.quote .two{grid-template-columns:1fr;gap:0}}

/* Pagine interne */
.phero{padding:clamp(40px,6vw,76px) 0 clamp(36px,5vw,60px);border-bottom:1px solid var(--line)}
.phero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,5vw,64px);align-items:center}
.phero.solo .wrap{grid-template-columns:1fr}
.phero h1{font-size:clamp(36px,5vw,62px)}
.phero .photo{border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;background:var(--bg-2)}
.phero .photo img{width:100%;height:100%;object-fit:cover}
.phero .btns{margin-top:26px}
.crumbs{font-size:14px;color:var(--muted);margin-bottom:18px}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:0}
.crumbs li+li::before{content:"›";margin-right:6px;color:#aaa}
.crumbs a{color:var(--ink-2);text-decoration:none;font-weight:600}
.crumbs a:hover{color:var(--red)}
@media (max-width:900px){.phero .wrap{grid-template-columns:1fr}}

.blocks{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.blocks.two{grid-template-columns:repeat(2,1fr)}
.block{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:28px}
.block .ic{width:48px;height:48px;border-radius:10px;background:var(--red-50);color:var(--red);display:grid;place-items:center;margin-bottom:16px}
.block .ic svg{width:26px;height:26px}
.block h3{font-size:22px}
.block p{font-size:15.5px;color:var(--ink-2)}
.block ul{margin:0;padding:0;list-style:none}
.block li{position:relative;padding-left:20px;margin-bottom:8px;font-size:15.5px}
.block li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;border-radius:50%;background:var(--red)}
@media (max-width:960px){.blocks,.blocks.two{grid-template-columns:1fr}}

.side{display:grid;grid-template-columns:1fr 340px;gap:clamp(32px,5vw,64px);align-items:start}
.aside{position:sticky;top:110px}
.aside .box{background:var(--red);color:#fff;border-radius:var(--r);padding:28px}
.aside .box h3{color:#fff;font-size:24px}
.aside .box p{font-size:15px;opacity:.95}
.aside .box a.num{display:block;color:#fff;text-decoration:none;font-weight:800;font-size:22px;margin:2px 0}
.aside .box small{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;opacity:.85;margin-top:12px}
.aside .box .btn{width:100%;margin-top:18px}
.aside .others{margin-top:18px;border:1px solid var(--line);border-radius:var(--r);padding:22px}
.aside .others h3{font-size:17px}
.aside .others ul{list-style:none;margin:0;padding:0}
.aside .others a{display:block;padding:9px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);font-weight:600;font-size:15px}
.aside .others li:last-child a{border-bottom:0}
.aside .others a:hover{color:var(--red)}
@media (max-width:1000px){.side{grid-template-columns:1fr}.aside{position:static}}
.prose h2{font-size:clamp(26px,3vw,36px);margin-top:1.4em}
.prose ul.list{padding-left:20px}
.prose ul.list li{margin-bottom:8px}
.prose ul.list li::marker{color:var(--red)}

/* CTA finale */
.cta{background:var(--red);color:#fff;padding:clamp(56px,7vw,90px) 0}
.cta .wrap{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center}
.cta h2{color:#fff;font-size:clamp(34px,4.6vw,60px);margin-bottom:.15em}
.cta .s{font-size:clamp(20px,2vw,26px);font-weight:700;opacity:.95;margin-bottom:22px}
.cta .phs{display:grid;gap:14px}
.cta .phs a{display:flex;justify-content:space-between;align-items:center;gap:16px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.35);border-radius:var(--r);padding:18px 22px;color:#fff;text-decoration:none}
.cta .phs a:hover{background:rgba(255,255,255,.18)}
.cta .phs small{display:block;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;opacity:.85}
.cta .phs b{font-size:clamp(22px,2.4vw,30px);font-weight:800;letter-spacing:-.02em}
.cta .phs svg{width:26px;height:26px;flex:none}
@media (max-width:900px){.cta .wrap{grid-template-columns:1fr}}

/* Footer */
footer.site{background:var(--dark);color:#a9adb3;font-size:15px;padding:68px 0 0}
footer.site .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:36px}
footer.site h2{font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:#fff;margin-bottom:16px}
footer.site ul{list-style:none;margin:0;padding:0}
footer.site li{margin-bottom:9px}
footer.site a{color:#dfe1e4;text-decoration:none}
footer.site a:hover{color:#ff8a82}
footer.site .logo{color:#fff;margin-bottom:16px}
footer.site .logo b{color:#fff}
footer.site .logo small{color:#8e939a}
footer.site .logo img{background:#fff;border-radius:8px;padding:5px}
footer.site .social{display:flex;gap:10px;margin-top:16px}
footer.site .social a{display:grid;place-items:center;width:42px;height:42px;border:1px solid #3a3e44;border-radius:50%}
footer.site .social svg{width:19px;height:19px}
footer.site .legal{border-top:1px solid #2a2d31;margin-top:52px;padding:22px 0;font-size:13px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;color:#80858c}
@media (max-width:960px){footer.site .cols{grid-template-columns:1fr 1fr}}
@media (max-width:520px){footer.site .cols{grid-template-columns:1fr}}

/* Barra mobile */
.callbar{display:none}
@media (max-width:760px){
  body{padding-bottom:66px}
  .callbar{display:grid;grid-template-columns:1fr 1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:60;box-shadow:0 -6px 20px rgba(0,0,0,.15)}
  .callbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:62px;font-weight:700;font-size:13.5px;text-decoration:none;color:#fff;background:var(--red);line-height:1.1}
  .callbar a+a{border-left:1px solid rgba(255,255,255,.3)}
  .callbar a.wa{background:#1f9d55}
  .callbar svg{width:20px;height:20px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.side .blocks{grid-template-columns:repeat(2,1fr)}
@media (max-width:700px){.side .blocks{grid-template-columns:1fr}}

/* ===== v3: menu su una riga + tendina Servizi, home schematica ===== */
header.site .wrap{min-height:84px}
nav.main>ul{gap:4px}
nav.main>ul>li>a,.dd-btn{display:flex;align-items:center;gap:6px;height:44px;padding:0 14px;border-radius:8px;font:600 15.5px/1 var(--font);color:var(--ink);text-decoration:none;background:none;border:0;cursor:pointer}
nav.main>ul>li>a:hover,.dd-btn:hover,.dd.open .dd-btn{background:var(--bg-2);color:var(--ink)}
nav.main>ul>li>a[aria-current="page"],.dd-btn[aria-current="page"]{color:var(--red)}
.chev{width:16px;height:16px;transition:transform .2s}
.dd{position:relative}
.dd.open .chev{transform:rotate(180deg)}
.dd-menu{position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%);width:640px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 24px 60px rgba(16,18,20,.14);padding:12px;display:none;z-index:70}
.dd.open .dd-menu{display:block}
.dd-menu::before{content:"";position:absolute;top:-12px;left:0;right:0;height:12px}
.dd-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px}
.dd-grid a{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:8px;text-decoration:none;color:var(--ink)}
.dd-grid a:hover,.dd-grid a[aria-current="page"]{background:var(--red-50)}
.dd-grid .di{width:38px;height:38px;border-radius:9px;background:var(--red-50);color:var(--red);display:grid;place-items:center;flex:none}
.dd-grid a:hover .di{background:var(--red);color:#fff}
.dd-grid .di svg{width:20px;height:20px}
.dd-grid b{display:block;font-size:15px;font-weight:700;line-height:1.25}
.dd-grid small{display:block;font-size:13px;color:var(--muted);line-height:1.35;margin-top:3px}
.dd-all{display:block;margin-top:6px;padding:12px;border-top:1px solid var(--line);font-weight:700;font-size:14.5px;text-decoration:none}
nav.main .cta-li{margin-left:8px}
nav.main .cta-li .btn{height:46px;min-height:0;padding:0 20px;font-size:15px;color:#fff;margin:0}
@media (hover:hover) and (min-width:941px){.dd:hover .dd-menu{display:block}}
@media (max-width:1100px){.logo small{display:none}}
@media (max-width:940px){
  .menu-toggle{display:grid;place-items:center}
  nav.main{position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 24px 40px rgba(0,0,0,.08);display:none;max-height:calc(100vh - 84px);overflow:auto}
  nav.main.open{display:block}
  nav.main>ul{flex-direction:column;align-items:stretch;padding:8px 18px 20px;gap:0}
  nav.main>ul>li>a,.dd-btn{height:auto;padding:16px 4px;border-radius:0;border-bottom:1px solid var(--line);font-size:17px;width:100%;justify-content:space-between}
  nav.main>ul>li>a:hover,.dd-btn:hover,.dd.open .dd-btn{background:none}
  .dd-menu{position:static;transform:none;width:auto;box-shadow:none;border:0;padding:6px 0 10px;border-radius:0}
  .dd-grid{grid-template-columns:1fr}
  .dd-grid small{display:none}
  nav.main .cta-li{margin:16px 0 0}
  nav.main .cta-li .btn{width:100%;height:54px}
}
@media (min-width:941px){.menu-toggle{display:none}nav.main{position:static;display:block;box-shadow:none;border:0;max-height:none;overflow:visible;background:none}nav.main ul{flex-direction:row;padding:0}}

.btn-lg{min-height:56px;padding:0 28px;font-size:16.5px}

/* Home: chi siamo */
.home-hero{padding:clamp(48px,6vw,88px) 0;background:linear-gradient(180deg,#fff 0%,var(--bg-2) 100%);border-bottom:1px solid var(--line)}
.home-hero .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:center}
.home-hero h1{font-size:clamp(36px,4.6vw,60px);margin-bottom:18px}
.hh-points{list-style:none;padding:0;margin:0 0 30px;display:grid;gap:10px}
.hh-points li{display:flex;align-items:center;gap:10px;font-weight:600}
.hh-points svg{width:22px;height:22px;flex:none;color:#fff;background:var(--red);border-radius:50%;padding:4px}
.hh-photo{margin:0;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}
.hh-photo figcaption{padding:14px 18px;font-size:14px;font-weight:600;color:var(--ink-2);border-top:4px solid var(--red)}
@media (max-width:900px){.home-hero .wrap{grid-template-columns:1fr}.hh-photo{order:-1}}

/* Home: cosa facciamo (schede) */
.center-head{text-align:center;max-width:720px;margin:0 auto 44px}
.center-head .kicker{justify-content:center}
.center-head .kicker::before{display:none}
.center-head .lead{margin:0 auto}
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.tile{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden;text-decoration:none;color:var(--ink);background:#fff;transition:transform .2s,box-shadow .2s}
.tile:hover{transform:translateY(-4px);box-shadow:var(--shadow);color:var(--ink)}
.tile .ph{aspect-ratio:4/3;overflow:hidden;position:relative;background:var(--bg-2)}
.tile .ph img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.tile:hover .ph img{transform:scale(1.05)}
.tile .tag{position:absolute;left:10px;top:10px;background:var(--red);color:#fff;font-size:12px;font-weight:700;padding:5px 10px;border-radius:6px}
.tile .tb{display:flex;align-items:center;gap:12px;padding:16px 18px}
.tile .ti{width:36px;height:36px;border-radius:9px;background:var(--red-50);color:var(--red);display:grid;place-items:center;flex:none}
.tile .ti svg{width:20px;height:20px}
.tile h3{margin:0;font-size:17px;flex:1}
.tile .tb>svg{width:18px;height:18px;color:var(--red);flex:none;transition:transform .15s}
.tile:hover .tb>svg{transform:translateX(3px)}
@media (max-width:1000px){.tiles{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.tiles{grid-template-columns:1fr}}

/* Home: banda preventivo */
.pre-band{background:var(--red);color:#fff;padding:clamp(44px,5vw,64px) 0}
.pre-band .wrap{display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap}
.pre-band h2{color:#fff;font-size:clamp(28px,3.2vw,40px);margin-bottom:6px}
.pre-band p{margin:0;opacity:.95;font-size:17px}
nav.main .dd-grid a{display:flex;padding:12px;border-radius:8px;border-bottom:0;font-size:inherit;font-weight:400}
nav.main a.dd-all{display:block;padding:12px;border-radius:0;border-bottom:0;font-size:14.5px;color:var(--red);font-weight:700}
nav.main .dd-grid a:hover,nav.main .dd-grid a[aria-current="page"]{background:var(--red-50);color:var(--ink)}
@media (max-width:940px){nav.main .dd-grid a{padding:10px 4px}}
nav.main>ul>li.cta-li>a.btn{background:var(--red);color:#fff;border-radius:8px;padding:0 20px;justify-content:center;border-bottom:0}
nav.main>ul>li.cta-li>a.btn:hover{background:var(--red-dk);color:#fff}
.contact.pv{grid-template-columns:1.5fr 1fr}
@media (max-width:960px){.contact.pv{grid-template-columns:1fr}}
.side .gallery{grid-template-columns:repeat(3,1fr)}@media (max-width:560px){.side .gallery{grid-template-columns:1fr 1fr}}
@media (max-width:940px){nav.main .dd-grid a{align-items:center}}

/* ===== v4: contenuti più ricchi ===== */
.red-lt{color:#ff3b45}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}

/* Pilastri */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line)}
.pillars>div{padding:34px 32px 10px 0;border-right:1px solid var(--line)}
.pillars>div+div{padding-left:32px}
.pillars>div:last-child{border-right:0}
.pillars .pn{display:block;font-size:14px;font-weight:800;color:var(--red);letter-spacing:.12em;margin-bottom:14px}
.pillars h3{font-size:24px;margin-bottom:12px}
.pillars p{color:var(--ink-2);font-size:16px;margin:0}
@media (max-width:900px){.pillars{grid-template-columns:1fr}.pillars>div,.pillars>div+div{padding:26px 0;border-right:0;border-bottom:1px solid var(--line)}}

/* Storia + promessa */
.story{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(32px,5vw,72px);align-items:start}
.story p{color:var(--ink-2);font-size:17px}
.story strong{color:var(--ink)}
.promise{display:grid;gap:16px}
.promise>div{border-radius:12px;padding:26px 28px}
.promise h3{font-size:20px;margin-bottom:12px}
.promise ul{list-style:none;margin:0;padding:0}
.promise li{position:relative;padding:8px 0 8px 32px;font-weight:600;font-size:15.5px}
.promise li::before{position:absolute;left:0;top:8px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800}
.promise .do{background:#fff;border:1px solid var(--line);border-top:4px solid var(--red)}
.promise .do li::before{content:"✓";background:var(--red);color:#fff}
.promise .dont{background:var(--dark);color:#fff}
.promise .dont h3{color:#fff}
.promise .dont li::before{content:"✕";background:#fff;color:var(--ink)}
@media (max-width:900px){.story{grid-template-columns:1fr}}

/* Tesla Powerwall */
.pw{background:radial-gradient(circle at 50% 45%,#ffffff 0%,#eceef0 70%);border-radius:14px;display:grid;place-items:center;padding:36px;aspect-ratio:4/3}
.pw img{max-height:420px;width:auto;mix-blend-mode:multiply}
.tile .ph img[src*="powerwall"],.card .ph img[src*="powerwall"]{object-fit:contain;padding:14px;background:#f3f4f5}
.tile .ph:has(img[src*="powerwall"]),.phero .photo:has(img[src*="powerwall"]){background:#f3f4f5}
.phero .photo img[src*="powerwall"]{object-fit:contain;padding:24px;mix-blend-mode:multiply}

/* Perché noi */
.why{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.why>div{border:1px solid var(--line);border-radius:12px;padding:26px;background:#fff}
.why svg{width:30px;height:30px;color:var(--red);margin-bottom:14px}
.why h3{font-size:19px;margin-bottom:8px}
.why p{font-size:15px;color:var(--ink-2);margin:0}
@media (max-width:1000px){.why{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.why{grid-template-columns:1fr}}

/* Altri servizi (pagine servizio) */
.others-band{padding:48px 0;border-top:1px solid var(--line)}
.chips-nav{display:flex;flex-wrap:wrap;gap:10px}
.chips-nav a{display:inline-flex;align-items:center;gap:8px;padding:11px 16px;border:1px solid var(--line);border-radius:999px;text-decoration:none;color:var(--ink);font-weight:600;font-size:15px;background:#fff}
.chips-nav a:hover{border-color:var(--red);color:var(--red)}
.chips-nav svg{width:18px;height:18px;color:var(--red)}

/* Pagina preventivo */
.form-wrap{max-width:760px;margin:0 auto}
.form-wrap form.quote{padding:clamp(26px,4vw,44px)}
.btn-send{width:100%;margin-top:6px}
.alt-contact{text-align:center;margin-top:22px;color:var(--ink-2)}
.alt-contact a{font-weight:700;text-decoration:none}

/* Pagina contatti */
.contact-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media (max-width:900px){.contact-cards{grid-template-columns:1fr}}

/* ===== v5: schede servizi professionali (senza foto) ===== */
.scards{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.scard{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:14px;padding:30px 30px 26px;text-decoration:none;color:var(--ink);transition:border-color .2s,box-shadow .2s,transform .2s}
.scard::before{content:"";position:absolute;left:0;top:26px;bottom:26px;width:4px;border-radius:0 4px 4px 0;background:var(--red);opacity:0;transition:opacity .2s}
.scard:hover{border-color:#d9dbde;box-shadow:0 18px 40px rgba(16,18,20,.08);transform:translateY(-3px);color:var(--ink)}
.scard:hover::before{opacity:1}
.sc-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}
.sc-ic{width:54px;height:54px;border-radius:12px;background:var(--red);color:#fff;display:grid;place-items:center;flex:none}
.sc-ic svg{width:28px;height:28px}
.sc-tag{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:6px 12px}
.sc-tag svg{width:15px;height:15px;color:var(--red)}
.scard h3{font-size:22px;margin-bottom:8px}
.scard p{color:var(--ink-2);font-size:15.5px;margin-bottom:16px}
.scard ul{list-style:none;padding:16px 0 0;margin:0 0 20px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:8px 18px}
.scard li{position:relative;padding-left:18px;font-size:14.5px;color:var(--ink-2);line-height:1.4}
.scard li::before{content:"";position:absolute;left:0;top:.5em;width:7px;height:7px;border-radius:50%;background:var(--red)}
.scard .link{margin-top:auto;color:var(--red);font-size:15px}
@media (max-width:900px){.scards{grid-template-columns:1fr}}
@media (max-width:520px){.scard{padding:24px 22px}.scard ul{grid-template-columns:1fr}}

/* ===== v6: home d'impatto, team e certificazioni ===== */
:root{--r:8px}
.hx{position:relative;background:#0c0d0f;color:#fff;padding:clamp(80px,11vw,150px) 0 0;overflow:hidden}
.hx-bg{position:absolute;inset:0}
.hx-bg img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.1);opacity:.28}
.hx-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0c0d0f 0%,rgba(12,13,15,.92) 45%,rgba(12,13,15,.55) 100%),linear-gradient(0deg,#0c0d0f 0%,transparent 40%)}
.hx .wrap{position:relative}
.hx-kicker{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#c9ccd1;padding-left:40px;position:relative;margin-bottom:26px}
.hx-kicker::before{content:"";position:absolute;left:0;top:50%;width:28px;height:2px;background:var(--red)}
.hx h1{color:#fff;font-size:clamp(46px,7.4vw,104px);line-height:.98;letter-spacing:-.045em;margin-bottom:26px}
.hx h1 .red{color:var(--red)}
.hx-lead{font-size:clamp(17px,1.5vw,21px);color:#c3c7cc;max-width:620px;margin-bottom:36px}
.hx-stats{display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(64px,8vw,110px);border-top:1px solid rgba(255,255,255,.14)}
.hx-stats>div{padding:28px 24px 34px 0}
.hx-stats>div+div{padding-left:24px;border-left:1px solid rgba(255,255,255,.14)}
.hx-stats b{display:block;font-size:clamp(34px,4vw,54px);font-weight:800;letter-spacing:-.035em;line-height:1;color:#fff}
.hx-stats b span{color:var(--red)}
.hx-stats small{display:block;margin-top:10px;font-size:14px;color:#9aa0a7;font-weight:500}
@media (max-width:760px){.hx-stats{grid-template-columns:1fr 1fr}.hx-stats>div:nth-child(3){padding-left:0;border-left:0}.hx-stats>div:nth-child(n+3){border-top:1px solid rgba(255,255,255,.14)}}

.intro .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,88px);align-items:center}
.intro-photo{margin:0;position:relative}
.intro-photo img{width:100%;border-radius:var(--r);background:#fff}
.intro-photo figcaption{display:flex;flex-direction:column;gap:2px;padding:16px 0 0;border-top:3px solid var(--red);margin-top:18px}
.intro-photo figcaption b{font-size:16px}
.intro-photo figcaption span{font-size:14px;color:var(--muted)}
.intro-list{list-style:none;margin:28px 0 0;padding:0;border-top:1px solid var(--line)}
.intro-list li{display:grid;grid-template-columns:210px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.intro-list b{font-size:15.5px}
.intro-list span{color:var(--ink-2);font-size:15.5px}
@media (max-width:900px){.intro .wrap{grid-template-columns:1fr}.intro-list li{grid-template-columns:1fr;gap:2px}}

.team2{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.t2{background:#fff;border:1px solid var(--line);border-top:4px solid var(--red);border-radius:var(--r);padding:28px;display:flex;flex-direction:column}
.t2 header{display:flex;align-items:center;gap:16px;margin-bottom:22px}
.t2-ini{width:58px;height:58px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-weight:800;font-size:19px;flex:none;letter-spacing:.02em}
.t2-ini.sm{width:34px;height:34px;font-size:12.5px;margin:0 auto 6px}
.t2 h3{font-size:23px;margin:0 0 4px}
.t2 header span{font-size:14px;font-weight:600;color:var(--red)}
.t2 dl{margin:0;display:grid;gap:16px}
.t2 dt{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.t2 dd{margin:0;font-size:15.5px;color:var(--ink-2);line-height:1.55}
.t2-tel{margin-top:auto;padding-top:22px;display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:17px;color:var(--ink);text-decoration:none}
.t2-tel svg{width:18px;height:18px;color:var(--red)}
.t2-tel:hover{color:var(--red)}
@media (max-width:960px){.team2{grid-template-columns:1fr}}

.certs{border:1px solid var(--line);border-radius:var(--r);overflow-x:auto;background:#fff}
.certs table{width:100%;border-collapse:collapse;min-width:560px}
.certs th,.certs td{padding:14px 18px;border-bottom:1px solid var(--line);text-align:center;font-size:15px}
.certs thead th{background:var(--ink);color:#fff;font-size:13px;font-weight:700;letter-spacing:.06em;vertical-align:bottom}
.certs thead th:first-child{text-align:left;text-transform:uppercase;letter-spacing:.14em;font-size:12px}
.certs thead .t2-ini.sm{background:var(--red)}
.certs .cn{display:block;font-size:13.5px;letter-spacing:0}
.certs tbody th{text-align:left;font-weight:600;color:var(--ink)}
.certs tbody tr:nth-child(even){background:#fafafa}
.certs tbody tr:last-child th,.certs tbody tr:last-child td{border-bottom:0}
.certs .ok{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--red);color:#fff}
.certs .ok svg{width:15px;height:15px;stroke-width:3}
.certs .no{color:#c3c6ca;font-weight:700}

/* ===== v7: certificazioni, contatti sobri ===== */
.cert-areas{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.ca{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:30px}
.ca-h{display:flex;align-items:center;gap:14px;margin-bottom:10px}
.ca-ic{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--red);color:var(--red);display:grid;place-items:center;flex:none}
.ca-ic svg{width:22px;height:22px}
.ca h3{font-size:19px;margin:0}
.ca>p{font-size:14.5px;color:var(--muted);margin:0 0 18px}
.ca ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.ca li{padding:13px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:2px}
.ca li:last-child{border-bottom:0;padding-bottom:0}
.ca li b{font-size:15px;font-weight:600;color:var(--ink)}
.ca li span{font-size:13px;color:var(--muted);letter-spacing:.02em}
@media (max-width:960px){.cert-areas{grid-template-columns:1fr}}

.cta2{background:#0c0d0f;color:#c3c7cc;padding:clamp(64px,8vw,100px) 0}
.cta2 .wrap{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(36px,6vw,90px);align-items:center}
.cta2 h2{color:#fff;font-size:clamp(30px,3.4vw,44px);line-height:1.1;margin:0 0 16px}
.cta2 h2 span{color:#8e939a;font-weight:700}
.cta2 p{margin:0 0 28px;max-width:520px}
.cta2-list{list-style:none;margin:0;padding:0;border-top:1px solid rgba(255,255,255,.14)}
.cta2-list li{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 0;border-bottom:1px solid rgba(255,255,255,.14)}
.cta2-list b{display:block;color:#fff;font-size:15.5px;font-weight:600}
.cta2-list small{display:block;font-size:13px;color:#8e939a;margin-top:2px}
.cta2-list a{color:#fff;text-decoration:none;font-size:16px;font-weight:600;letter-spacing:.01em;white-space:nowrap;border-bottom:1px solid rgba(255,255,255,.25);padding-bottom:2px}
.cta2-list a:hover{color:#fff;border-color:var(--red)}
@media (max-width:900px){.cta2 .wrap{grid-template-columns:1fr}}
@media (max-width:420px){.cta2-list li{flex-direction:column;align-items:flex-start;gap:8px}}

.ph-line{margin:16px 0 0;font-size:15px;color:var(--muted)}
.ph-line a{color:var(--ink);font-weight:600;text-decoration:none;border-bottom:1px solid var(--line)}
.ph-line a,.alt-contact a{white-space:nowrap}
@media (hover:hover){.ph-line a:hover{color:var(--red);border-color:var(--red)}}

/* telefoni più discreti nelle schede contatto */
.pcard{padding:24px}
.pcard .who{font-size:17px;margin:4px 0 6px}
.pcard a.num{font-size:17px;font-weight:600;letter-spacing:.01em;margin-bottom:16px;color:var(--ink-2)}
.pcard .acts a{min-height:40px;font-size:14px}

/* barra mobile sobria */
@media (max-width:760px){
  .callbar{background:#0c0d0f;box-shadow:0 -1px 0 rgba(255,255,255,.08)}
  .callbar a{background:transparent;color:#fff;font-weight:600;font-size:13px;min-height:58px}
  .callbar a+a{border-left:1px solid rgba(255,255,255,.12)}
  .callbar a.wa{background:transparent}
  .callbar a svg{color:var(--red)}
  .callbar a.wa svg{color:#25d366}
  body{padding-bottom:58px}
}
.form-msg{background:var(--red-50);border:1px solid #f5c2c5;color:#9b0610;border-radius:6px;padding:12px 14px;font-size:14.5px;font-weight:600;margin:0 0 14px}

/* ===== adattamento schermi piccoli ===== */
.numbers div,.hx-stats>div{min-width:0}
@media (max-width:420px){
  .numbers b{font-size:30px}
  .numbers div{padding:22px 14px}
  .numbers span{font-size:13px}
  .hx-stats b{font-size:30px}
  .hx-stats>div{padding:22px 12px 24px 0}
  .hx-stats>div+div{padding-left:12px}
  h1{font-size:34px}
  .hx h1{font-size:40px}
  section{padding:52px 0}
}
.info a{display:inline-block;padding:6px 0}
h1,h2,h3{overflow-wrap:break-word;hyphens:auto;-webkit-hyphens:auto}
.phero .wrap>*,.story>*,.intro .wrap>*,.contact>*,.side>*{min-width:0}
@media (max-width:360px){.phero h1{font-size:30px}}

/* ===== logo ufficiale ===== */
.logo img{height:60px;width:auto;display:block}
header.site .wrap{min-height:88px}
footer.site .logo{display:inline-block;background:#fff;border-radius:8px;padding:10px 14px;margin-bottom:18px}
footer.site .logo img{height:56px;background:none;padding:0;border-radius:0}
@media (max-width:420px){.logo img{height:48px}header.site .wrap{min-height:74px}}
.logo img{height:68px}
header.site .wrap{min-height:92px}
@media (max-width:420px){.logo img{height:52px}header.site .wrap{min-height:76px}}
.svc-badge{display:inline-flex;align-items:center;gap:8px;margin:0 0 16px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;font-size:13.5px;font-weight:700;color:var(--ink);background:#fff}
.svc-badge svg{width:17px;height:17px;color:var(--red)}
.phero .photo img[src*="citofono"]{object-position:center 40%}

/* video nelle pagine servizio */
.vid-wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);align-items:center}
.vid{margin:0;max-width:420px;justify-self:center;width:100%}
.vid video{width:100%;aspect-ratio:9/16;object-fit:cover;border-radius:var(--r);background:#000;display:block;box-shadow:var(--shadow)}
@media (max-width:860px){.vid-wrap{grid-template-columns:1fr}.vid{max-width:360px}}
.phero .photo img[src*="cancello-1"]{object-position:48% 50%}
h1,h2,h3{hyphens:manual;-webkit-hyphens:manual}
.phero .photo:has(img[src*="cancello-1"]){aspect-ratio:auto}
.phero .photo img[src*="cancello-1"]{height:auto}

/* galleria a schermo intero */
dialog.lb{overflow:visible}
dialog.lb img{max-width:88vw;max-height:88vh;border-radius:6px}
dialog.lb .lb-x{position:fixed;top:14px;right:14px;width:48px;height:48px;border-radius:50%;border:0;background:#fff;font-size:26px;cursor:pointer;line-height:1;color:var(--ink)}
dialog.lb .lb-p,dialog.lb .lb-n{position:fixed;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:var(--ink);font-size:34px;line-height:1;cursor:pointer;display:grid;place-items:center;padding-bottom:4px}
dialog.lb .lb-p{left:14px}
dialog.lb .lb-n{right:14px}
dialog.lb .lb-p:hover,dialog.lb .lb-n:hover,dialog.lb .lb-x:hover{background:#fff}
dialog.lb [hidden]{display:none}
@media (max-width:600px){dialog.lb img{max-width:96vw}dialog.lb .lb-p,dialog.lb .lb-n{width:42px;height:42px;font-size:28px;top:auto;bottom:18px;transform:none}}
/* Zone servite: elenco dei comuni (2 colonne se c'è spazio, nomi mai spezzati tra colonne) */
.comuni{columns:2 150px;column-gap:24px;font-size:15px;margin:6px 0 0}
.block .comuni li{break-inside:avoid;margin:0 0 8px}
