/* ============================================================
   globale.css — regole valide su tutte le 259 pagine.
   Caricato da ogni pagina a prescindere dal template usato,
   perche' il sito ha tre famiglie di CSS che non si parlano.
   Usa var() con fallback: funziona anche dove i token mancano.
   ============================================================ */

/* ── Focus da tastiera ────────────────────────────────────────
   La regola esisteva solo in css/main.css, caricato da 24 pagine
   su 259: sulle altre 235 nessun elemento mostrava il focus. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible{
  outline:2px solid var(--green, #2CE8A5);
  outline-offset:3px;
  border-radius:4px;
}

/* ── Errore dei form ──────────────────────────────────────────
   Sostituisce alert(), che non e' annunciato in modo affidabile,
   interrompe il flusso e su mobile e' un blocco modale. */
.form-error{
  background:rgba(255,92,92,.10);
  border:1px solid rgba(255,92,92,.45);
  color:#ffb4b4;
  padding:12px 16px; border-radius:var(--radius, 8px);
  margin-bottom:14px; font-size:.92rem; line-height:1.5;
}

/* ── Hamburger ────────────────────────────────────────────────
   Era un <div onclick> con role=button ma senza handler tastiera:
   Invio e Spazio non lo aprivano, e sotto 960px .nav-links e'
   display:none, quindi nessun link era raggiungibile da tastiera.
   Ora e' un <button>, che quei tasti li gestisce da solo. */
button.hamburger{
  background:none; border:0; margin:0; font:inherit; color:inherit;
  -webkit-appearance:none; appearance:none;
}

/* ── Skip link ────────────────────────────────────────────────
   Prima del contenuto ci sono nav, hamburger, selettore lingua e
   float WhatsApp: senza scorciatoia sono 10 tabulazioni ogni volta. */
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:10000;
  background:var(--green, #2CE8A5); color:#04130d;
  padding:12px 20px; border-radius:0 0 var(--radius, 8px) 0;
  font-weight:700; text-decoration:none;
}
.skip-link:focus{ left:0; }

/* ============================================================
   consent.css — banner del consenso cookie.
   Autonomo: usa var() con fallback, quindi funziona anche sulle
   pagine che non caricano css/main.css.
   ============================================================ */
#cookie-banner{
  position:fixed; inset:auto 0 0 0; z-index:9998;
  background:var(--bg, #060f0a); background:rgba(6,15,10,.97);
  border-top:1px solid var(--border, rgba(var(--green-rgb),.16));
  padding:18px clamp(16px, 4vw, 40px);
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; flex-wrap:wrap;
  -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px);
  /* visibility:hidden lo toglie dal tab order e dall'albero di
     accessibilita' finche' non viene mostrato: con la sola translate
     restava raggiungibile con Tab pur essendo fuori schermo. */
  visibility:hidden;
  transform:translateY(110%);
  transition:transform .5s var(--ease, cubic-bezier(.22,1,.36,1)), visibility .5s;
}
#cookie-banner.show{ visibility:visible; transform:translateY(0); }
#cookie-banner p{
  color:var(--text2, #aec2b6);
  font-size:.88rem; line-height:1.6; flex:1 1 240px; min-width:0; margin:0;
}
#cookie-banner a{ color:var(--green, #2CE8A5); }

.cookie-btns{ display:flex; gap:10px; flex:0 1 auto; flex-wrap:wrap; }
.cookie-accept,.cookie-reject{
  padding:11px 22px; border-radius:var(--radius, 8px);
  cursor:pointer; font-family:'Rajdhani', system-ui, sans-serif;
  font-size:.9rem; letter-spacing:1px; min-height:44px;
}
.cookie-accept{
  background:linear-gradient(135deg, var(--green, #2CE8A5), var(--green2, #1FBF8A));
  color:#04130d; border:none; font-weight:700;
}
/* --text3 (#5a7066) dava 3.65:1 su fondo scuro, sotto il minimo AA.
   --text2 (#aec2b6) dà 10.36:1 mantenendo la stessa famiglia di tinta. */
.cookie-reject{
  background:transparent; color:var(--text2, #aec2b6);
  border:1px solid var(--text2, #aec2b6); font-weight:600;
}
.cookie-reject:hover{ color:var(--text, #eaf4ef); border-color:var(--text, #eaf4ef); }
.cookie-accept:focus-visible,.cookie-reject:focus-visible{
  outline:2px solid var(--green, #2CE8A5); outline-offset:3px;
}

/* Sotto i 560px i due bottoni vanno a piena larghezza: a 320px
   'Accetta tutti' usciva dal viewport e non era interamente toccabile. */
@media (max-width:560px){
  #cookie-banner{ flex-direction:column; align-items:stretch; gap:12px; padding:14px 16px; }
  #cookie-banner p{ flex:0 0 auto; font-size:.82rem; line-height:1.5; }
  .cookie-btns{ width:100%; gap:8px; }
  .cookie-accept,.cookie-reject{ flex:1 1 0; padding:12px 8px; font-size:.85rem; letter-spacing:.5px; }
}
@media (prefers-reduced-motion:reduce){
  #cookie-banner{ transition:none; }
}

/* ── Fascia legale: identita' fiscale + link obbligatori ──────── */
.legal-strip{
  padding:18px clamp(16px,4vw,40px);
  border-top:1px solid var(--border, rgba(var(--green-rgb),.16));
  text-align:center;
  font-size:.78rem; line-height:1.7;
  color:var(--text2, #aec2b6);
}
.legal-strip p{ margin:0 0 .4em; }
.legal-strip a{ color:var(--text2, #aec2b6); text-decoration:none; }
.legal-strip a:hover{ color:var(--green, #2CE8A5); text-decoration:underline; }
.legal-strip a:focus-visible{ outline:2px solid var(--green,#2CE8A5); outline-offset:2px; }
.legal-strip .sep{ opacity:.45; padding:0 .35em; }

/* ============================================================
   Brand: logo nelle nav semplici di guide/ e lombardia/
   (le nav di main.css e nav-servizi.css hanno gia' le loro regole)
   ============================================================ */
nav:not([id]):not(.nav) .nav-logo img{height:36px;width:auto;max-width:56vw;object-fit:contain;object-position:left center;display:block}

/* ---- Float WhatsApp per le pagine che non caricano servizi.css ---- */
.wa-float-g{position:fixed;bottom:28px;right:28px;z-index:997;width:56px;height:56px;background:#25d366;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 24px rgba(37,211,102,.45);transition:transform .3s var(--ease)}
.wa-float-g::after{content:'';position:absolute;inset:0;border-radius:50%;border:2px solid #25d366;animation:waPulsaG 2.6s infinite}
.wa-float-g:hover{transform:scale(1.08)}
.wa-float-g svg{width:30px;height:30px;fill:#fff}
@keyframes waPulsaG{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.7);opacity:0}}
@media (prefers-reduced-motion:reduce){.wa-float-g::after{animation:none;opacity:0}}

/* ---- CTA contatto diretto nella sezione contatti (unificata come il float) ---- */
.contact-cta{display:flex;flex-wrap:wrap;gap:12px;margin:10px 0 8px}
.contact-cta .btn{justify-content:center;text-decoration:none}
.contact-cta .cta-wa-ic{width:20px;height:20px;fill:currentColor;flex-shrink:0}
.contact-cta .cta-tel-ic,.contact-cta .cta-mail-ic{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
@media (max-width:640px){.contact-cta{flex-direction:column;align-items:stretch}}
