/* ============================================================
   zona.css — template unico delle pagine di zona (lombardia/).
   Sostituisce i 6 fogli inline divergenti (redesign 28/08/2026).
   Linguaggio DIAG//LIVE della homepage: token, mono, battito.
   ============================================================ */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Rajdhani',sans-serif;background:var(--bg);color:var(--text);line-height:1.7;-webkit-font-smoothing:antialiased}
a{color:var(--green);text-decoration:none;transition:color .3s}
a:hover{color:var(--green-soft)}
.grid-bg{position:fixed;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(rgba(var(--green-rgb),.022) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--green-rgb),.022) 1px,transparent 1px);background-size:62px 62px}
.grid-bg::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% -10%,rgba(var(--green-rgb),.07) 0%,transparent 55%)}

/* ---- navbar semplice ---- */
nav{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(6,15,10,.92);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);padding:0 clamp(20px,4vw,40px);height:70px;display:flex;align-items:center;justify-content:space-between}
.nav-links{display:flex;gap:28px}
.nav-links a{font-weight:600;font-size:.9rem;color:var(--text2);letter-spacing:1.5px;text-transform:uppercase}
.nav-links a:hover{color:var(--green)}
main{position:relative;z-index:1;padding-top:70px}

/* ---- hero ---- */
.hero{padding:84px clamp(20px,4vw,40px) 56px;max-width:960px;margin:0 auto;text-align:center}
.breadcrumb{font-family:'Share Tech Mono',monospace;font-size:.72rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--text3);margin-bottom:22px}
.breadcrumb a{color:var(--text3)}.breadcrumb a:hover{color:var(--green)}
.breadcrumb span{margin:0 8px;opacity:.4}
.hero-badge{display:inline-flex;align-items:center;gap:8px;font-family:'Share Tech Mono',monospace;font-size:.72rem;color:var(--green);border:1px solid var(--border);padding:7px 18px;border-radius:30px;letter-spacing:3px;margin-bottom:26px;background:rgba(var(--green-rgb),.05);text-transform:uppercase}
.hero-badge .dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green);animation:zonaPulse 2s infinite}
.hero h1{font-family:'Orbitron',sans-serif;font-size:clamp(1.8rem,4.4vw,3rem);font-weight:900;color:var(--text);margin-bottom:22px;line-height:1.18;letter-spacing:-.5px}
.hero h1 span{position:relative;display:inline-block;background:linear-gradient(135deg,var(--green),var(--green2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.ecg-sotto{position:absolute;left:1%;width:98%;bottom:-.22em;height:.3em;display:block;overflow:visible}
.ecg-sotto path{fill:none;stroke:var(--green);stroke-width:2.5;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100;animation:zonaDraw .9s var(--ease) .4s both}
.hero p{font-size:1.12rem;color:var(--text2);max-width:720px;margin:0 auto 32px}
.cta-group{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.btn-primary{background:linear-gradient(135deg,var(--green),var(--green2));color:#060f0a;font-family:'Orbitron',sans-serif;font-size:.8rem;font-weight:700;letter-spacing:2px;padding:14px 32px;border-radius:var(--radius);text-transform:uppercase;transition:transform .25s var(--ease),box-shadow .25s}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(var(--green-rgb),.35);color:#060f0a}
.btn-secondary{border:1px solid var(--border);color:var(--green);font-family:'Orbitron',sans-serif;font-size:.8rem;font-weight:700;letter-spacing:2px;padding:14px 32px;border-radius:var(--radius);text-transform:uppercase;transition:all .25s var(--ease)}
.btn-secondary:hover{background:rgba(var(--green-rgb),.08);border-color:var(--green)}

/* ---- la rotta: citta' <-> laboratorio ---- */
.rotta{display:flex;align-items:center;justify-content:center;gap:14px;margin:42px auto 0;max-width:640px}
.rotta-nodo{font-family:'Share Tech Mono',monospace;font-size:.72rem;letter-spacing:2px;color:var(--text2);white-space:nowrap;display:flex;align-items:center;gap:8px}
.rotta-nodo::before{content:'';width:9px;height:9px;border-radius:50%;border:2px solid var(--text3);flex:0 0 auto}
.rotta-nodo.lab{color:var(--green)}
.rotta-nodo.lab::before{border-color:var(--green);background:var(--green);box-shadow:0 0 12px var(--green);animation:zonaPulse 2s infinite}
.rotta-linea{position:relative;flex:1;min-width:90px;height:24px}
.rotta-linea svg{position:absolute;inset:0;width:100%;height:100%}
.rotta-linea path{fill:none;stroke:var(--green);stroke-width:2;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100;animation:zonaDraw 1.1s var(--ease) .2s both;opacity:.85}
.rotta-km{position:absolute;left:50%;top:-16px;transform:translateX(-50%);font-family:'Share Tech Mono',monospace;font-size:.68rem;letter-spacing:2px;color:var(--green);background:var(--bg);padding:0 8px;white-space:nowrap}

/* ---- sezioni ---- */
section{padding:56px clamp(20px,4vw,40px);max-width:960px;margin:0 auto}
h2{font-family:'Orbitron',sans-serif;font-size:clamp(1.25rem,2.6vw,1.6rem);font-weight:800;color:var(--text);margin-bottom:28px;padding-bottom:14px;border-bottom:1px solid var(--border);letter-spacing:-.3px}
h2::before{content:'// ';font-family:'Share Tech Mono',monospace;font-weight:400;color:var(--green);letter-spacing:0}

/* ---- statistiche (console) ---- */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin:8px 0 44px}
.stat-card{background:var(--card);border:1px solid var(--border);border-top:2px solid var(--green);border-radius:var(--radius);padding:20px;text-align:center;transition:border-color .3s,transform .3s var(--ease)}
.stat-card:hover{transform:translateY(-3px);border-color:var(--green)}
.stat-number{font-family:'Orbitron',sans-serif;font-size:2rem;font-weight:900;color:var(--green);text-shadow:0 0 24px rgba(var(--green-rgb),.35)}
.stat-label{font-family:'Share Tech Mono',monospace;font-size:.68rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--text3);margin-top:6px}

/* ---- servizi ---- */
.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}
.service-card{position:relative;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:26px 22px;transition:border-color .3s,transform .3s var(--ease),box-shadow .3s;display:block;overflow:hidden}
.service-card:hover{border-color:var(--green);transform:translateY(-4px);box-shadow:0 14px 34px -18px rgba(var(--green-rgb),.5)}
.service-icon{width:52px;height:52px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;background:rgba(var(--green-rgb),.07);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:14px}
.service-card h3{font-family:'Rajdhani',sans-serif;font-size:1.12rem;font-weight:700;color:var(--text);margin-bottom:8px}
.service-card p{font-size:.92rem;color:var(--text2);line-height:1.55}
.service-card::after{content:'[\2192]';position:absolute;top:22px;right:18px;font-family:'Share Tech Mono',monospace;font-size:.72rem;color:var(--green);opacity:0;transition:opacity .3s}
.service-card:hover::after{opacity:1}
.service-card:hover h3{color:var(--green-soft)}

/* ---- comuni ---- */
.comuni-section p{color:var(--text2)}
.comuni-zona{margin-bottom:28px}
.zona-label{font-family:'Share Tech Mono',monospace;font-size:.72rem;color:var(--blue);letter-spacing:2.5px;text-transform:uppercase;margin-bottom:12px}
.comuni-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}
.comune-tag{background:var(--card);border:1px solid var(--border);color:var(--text3);padding:8px 14px;border-radius:999px;font-size:.88rem;font-weight:600;text-align:center;transition:border-color .25s,color .25s,background .25s}
.comune-tag.has-page{color:var(--text2);border-color:rgba(var(--green-rgb),.3)}
.comune-tag.has-page:hover{border-color:var(--green);color:var(--green);background:rgba(var(--green-rgb),.07)}

/* ---- info e faq ---- */
.info-box{background:var(--card);border:1px solid var(--border);border-left:3px solid var(--amber);border-radius:var(--radius);padding:20px 24px;color:var(--text2);margin:24px 0}
.faq-item{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px;overflow:hidden;transition:border-color .3s}
.faq-item.open{border-color:rgba(var(--green-rgb),.4)}
.faq-q{padding:16px 22px;cursor:pointer;font-weight:700;font-size:1.02rem;color:var(--text);display:flex;justify-content:space-between;align-items:center;gap:14px;background:var(--card)}
.faq-q:hover{color:var(--green)}
.faq-q span{font-family:'Share Tech Mono',monospace;color:var(--green);flex:0 0 auto;transition:transform .3s var(--ease)}
.faq-item.open .faq-q span{transform:rotate(45deg)}
.faq-a{padding:0 22px 16px;font-size:.95rem;color:var(--text2);line-height:1.7;display:none}
.faq-item.open .faq-a{display:block}
.faq-item.open .faq-q{color:var(--green)}

/* ---- contatto finale ---- */
.contact-box{position:relative;background:var(--card);border:1px solid rgba(var(--green-rgb),.35);border-radius:var(--radius);padding:44px 40px;text-align:center;box-shadow:0 24px 70px -40px rgba(var(--green-rgb),.4)}
.contact-box h3{font-family:'Orbitron',sans-serif;font-size:1.15rem;color:var(--green);margin-bottom:12px}
.contact-box p{color:var(--text2);margin-bottom:24px}
.sede{font-family:'Share Tech Mono',monospace;font-size:.78rem;letter-spacing:1px;color:var(--text3)}

/* ---- footer ---- */
footer{border-top:1px solid var(--border);padding:30px clamp(20px,4vw,40px);text-align:center;color:var(--text2);font-size:.85rem;margin-top:60px}
footer a{color:var(--text2)}footer a:hover{color:var(--green)}
.footer-fiscal{font-family:'Share Tech Mono',monospace;font-size:.72rem;letter-spacing:1px;color:var(--text3);margin-top:8px}


@keyframes zonaPulse{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes zonaDraw{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}

/* Barra su schermi stretti (29/08/2026): queste pagine non hanno l'hamburger
   delle altre famiglie, e a 360-375px logo + 4 voci uscivano dallo schermo
   (scrollWidth 391 contro clientWidth 360). Si stringono voci e spaziature, e
   l'overflow-x resta come rete di sicurezza sotto i 320px: nulla viene tagliato. */
@media(max-width:820px){
  nav{padding:0 16px;height:62px}
  nav .nav-logo img{height:28px}
  main{padding-top:62px}
  .nav-links{gap:15px;min-width:0;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
  .nav-links::-webkit-scrollbar{display:none}
  .nav-links a{font-size:.76rem;letter-spacing:.6px;white-space:nowrap}
}

@media(max-width:640px){
  .cta-group{flex-direction:column;align-items:center}
  .rotta{gap:10px}
  .rotta-nodo{font-size:.62rem;letter-spacing:1.2px}
}
@media (prefers-reduced-motion:reduce){
  .ecg-sotto path,.rotta-linea path{animation:none}
  .hero-badge .dot,.rotta-nodo.lab::before{animation:none}
}

/* ---- tipografia degli articoli (guide editoriali: usano questo
       stesso foglio dal 28/08; l'hub guide/index.html incluso) ---- */
.content-body{max-width:760px;margin:0 auto;color:var(--text2)}
section h3{font-family:'Rajdhani',sans-serif;font-weight:700;font-size:1.16rem;color:var(--text);margin:26px 0 10px}
section h3::before{content:'\203A ';color:var(--green);font-family:'Share Tech Mono',monospace}
section p{font-size:1.05rem;color:var(--text2);margin:0 0 18px}
section ul,section ol{margin:0 0 18px 22px;color:var(--text2)}
section li{margin-bottom:8px}
section li::marker{color:var(--green)}
.content-body a{font-weight:600;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(var(--green-rgb),.4)}
.content-body a:hover{text-decoration-color:var(--green)}
.info-box strong{color:var(--green)}
