/* ===== MVR Antincendio — foglio di stile condiviso =====
   Sorgente token: DESIGN.md (root). Non duplicare valori hardcoded nelle pagine:
   ogni pagina linka questo file. Regole LEARNINGS.md applicate: mai UI basica,
   fondali atmosferici (mai piatti), ombre stratificate tinte navy, zero em dash
   nel copy, zero pattern "non X ma Y". */

/* ===== Font autoospitati (no Google Fonts CDN: niente IP utente inviato a terzi,
   coerente con provvedimento Garante Privacy 2023 su siti italiani). File variabili:
   un solo woff2 copre l'intero intervallo di peso usato dal sito. ===== */
@font-face{
  font-family:'Big Shoulders Display';
  font-style:normal;
  font-weight:600 900;
  font-display:swap;
  src:url('fonts/big-shoulders-display-latin.woff2') format('woff2-variations'), url('fonts/big-shoulders-display-latin.woff2') format('woff2');
}
@font-face{
  font-family:'Public Sans';
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
  src:url('fonts/public-sans-latin.woff2') format('woff2-variations'), url('fonts/public-sans-latin.woff2') format('woff2');
}

:root{
  --c-primary:#1C1C1E;
  --c-secondary:#1F1339;
  --c-accent:#B3271E;
  --c-accent-hover:#962018;
  --c-accent-active:#7A1A14;
  --c-success:#2E6B4F;
  --s-0:#FFFFFF;
  --s-50:#FAF9F7;
  --s-100:#F3F2F0;
  --s-200:#E4E2DE;
  --s-300:#D9D7D3;
  --s-500:#8A8884;
  --s-600:#5A5A5C;
  --s-900:#1C1C1E;
  --shadow-sm:0 1px 2px rgba(31,19,57,.06), 0 1px 1px rgba(31,19,57,.04);
  --shadow-md:0 4px 8px rgba(31,19,57,.08), 0 2px 4px rgba(31,19,57,.06);
  --shadow-lg:0 12px 24px rgba(31,19,57,.12), 0 4px 8px rgba(31,19,57,.08);
  --r-sm:4px; --r-md:8px; --r-lg:12px; --r-xl:16px; --r-full:9999px;
  --sp-xs:4px; --sp-sm:8px; --sp-md:16px; --sp-lg:24px; --sp-xl:32px; --sp-2xl:48px; --sp-3xl:64px; --sp-4xl:96px;
  --f-display:'Big Shoulders Display', sans-serif;
  --f-body:'Public Sans', sans-serif;
  --wrap:1180px;
}
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }
body{
  margin:0; background:var(--s-0); color:var(--c-primary);
  font-family:var(--f-body); line-height:1.5; -webkit-font-smoothing:antialiased;
}
img,svg{ max-width:100%; display:block; }
a{ color:inherit; }
::selection{ background:var(--c-accent); color:#fff; }
:focus-visible{ outline:2px solid var(--c-secondary); outline-offset:3px; border-radius:2px; }
.wrap{ max-width:var(--wrap); margin:0 auto; padding-inline:var(--sp-lg); }
section{ position:relative; }
[id]{ scroll-margin-top:96px; }

.eyebrow{ font:600 13px/16px var(--f-body); letter-spacing:.08em; text-transform:uppercase; color:var(--c-accent); }
h1,h2,h3{ text-wrap:balance; margin:0; }
.h1{ font:700 clamp(32px,5vw,40px)/1.2 var(--f-body); letter-spacing:-0.01em; }
.h2{ font:700 clamp(26px,4vw,32px)/1.25 var(--f-body); letter-spacing:-0.01em; }
.h3{ font:600 clamp(20px,3vw,24px)/1.33 var(--f-body); }
.body-lg{ font:400 18px/30px var(--f-body); color:var(--s-600); }
.body{ font:400 16px/26px var(--f-body); color:var(--s-600); }
.display{ font:800 clamp(40px,7.5vw,64px)/1.02 var(--f-display); letter-spacing:0em; text-wrap:balance; }

/* ===== Buttons ===== */
.btn{ font:600 15px/20px var(--f-body); border-radius:var(--r-md); padding:14px 26px; border:none; cursor:pointer; display:inline-flex; align-items:center; gap:8px; text-decoration:none; transition:background-color .15s ease; }
.btn-primary{ background:var(--c-accent); color:#fff; }
.btn-primary:hover{ background:var(--c-accent-hover); }
.btn-primary:active{ background:var(--c-accent-active); }
.btn-secondary{ background:transparent; color:var(--c-primary); border:1.5px solid var(--c-primary); }
.btn-secondary:hover{ background:var(--s-100); }
.btn-secondary.on-dark{ color:#fff; border-color:rgba(255,255,255,.5); }
.btn-secondary.on-dark:hover{ background:rgba(255,255,255,.08); }
.btn-row{ display:flex; gap:var(--sp-md); flex-wrap:wrap; }

/* ===== Nav ===== */
.nav{ position:sticky; top:0; z-index:40; background:rgba(255,255,255,.92); backdrop-filter:blur(8px); border-bottom:1px solid var(--s-200); }
.nav-inner{ display:flex; align-items:center; justify-content:space-between; padding-block:14px; }
.brand{ font:700 17px/20px var(--f-body); letter-spacing:-0.01em; text-decoration:none; color:var(--c-primary); display:flex; align-items:center; gap:8px; }
.brand .mark{ width:28px; height:28px; border-radius:var(--r-sm); background:var(--c-primary); color:#fff; display:flex; align-items:center; justify-content:center; font:700 13px/1 var(--f-body); flex:0 0 auto; }
.brand-logo{ height:64px; width:auto; object-fit:contain; flex:0 0 auto; }
.nav-links{ display:flex; align-items:center; gap:var(--sp-xl); }
.nav-links a{ font:500 14px/20px var(--f-body); text-decoration:none; color:var(--c-primary); }
.nav-links a[aria-current="page"]{ text-decoration:underline; text-decoration-color:var(--c-accent); text-underline-offset:5px; text-decoration-thickness:2px; }
.nav-cta{ display:flex; align-items:center; gap:var(--sp-md); }
.nav-burger{ display:none; background:none; border:1px solid var(--s-300); border-radius:var(--r-sm); padding:8px 10px; font-size:16px; }

/* Dropdown "Servizi" */
.nav-item-dropdown{ position:relative; }
.nav-item-dropdown > button{ font:500 14px/20px var(--f-body); background:none; border:none; color:var(--c-primary); cursor:pointer; display:inline-flex; align-items:center; gap:4px; padding:0; }
.nav-item-dropdown .caret{ font-size:10px; color:var(--s-500); }
.nav-dropdown-panel{
  position:absolute; top:calc(100% + 14px); left:50%; transform:translateX(-50%);
  background:var(--s-0); border:1px solid var(--s-200); border-radius:var(--r-md);
  box-shadow:var(--shadow-lg); padding:var(--sp-sm); min-width:240px;
  opacity:0; visibility:hidden; transform:translateX(-50%) translateY(6px);
  transition:opacity .15s ease, transform .15s ease, visibility .15s ease;
}
@media (prefers-reduced-motion:reduce){ .nav-dropdown-panel{ transition:none; } }
.nav-item-dropdown:hover .nav-dropdown-panel,
.nav-item-dropdown:focus-within .nav-dropdown-panel{
  opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);
}
.nav-dropdown-panel a{ display:flex; flex-direction:column; gap:2px; padding:10px 12px; border-radius:var(--r-sm); text-decoration:none; font:600 14px/18px var(--f-body); color:var(--c-primary); white-space:nowrap; }
.nav-dropdown-panel a:hover{ background:var(--s-100); }
.nav-dropdown-panel a .t{ font:600 14px/18px var(--f-body); color:var(--c-primary); }
.nav-dropdown-panel a .d{ font:400 12px/16px var(--f-body); color:var(--s-500); }
.nav-dropdown-panel a[aria-current="page"]{ color:var(--c-accent); }

/* ===== Nav mobile (burger toggle) ===== */
@media (max-width:860px){
  .nav-inner{ position:relative; flex-wrap:wrap; }
  .nav-links{
    display:none; order:3; width:100%; flex-direction:column; align-items:stretch; gap:0;
    margin-top:14px; padding-top:14px; border-top:1px solid var(--s-200);
  }
  .nav-links.is-open{ display:flex; }
  .nav-links > a{ padding:12px 4px; }
  .nav-links > a[aria-current="page"]{ text-decoration-thickness:2px; }
  .nav-item-dropdown{ width:100%; position:static; }
  .nav-item-dropdown > button{ width:100%; justify-content:space-between; padding:12px 4px; }
  .nav-dropdown-panel{
    position:static; transform:none; opacity:1; visibility:visible;
    box-shadow:none; border:none; background:none; padding:0 0 4px 12px; min-width:0;
    max-height:0; overflow:hidden; transition:max-height .2s ease;
  }
  @media (prefers-reduced-motion:reduce){ .nav-dropdown-panel{ transition:none; } }
  .nav-item-dropdown:hover .nav-dropdown-panel,
  .nav-item-dropdown:focus-within .nav-dropdown-panel,
  .nav-item-dropdown.is-open .nav-dropdown-panel{
    position:static; transform:none; max-height:400px;
  }
  .nav-item-dropdown.is-open > button .caret{ transform:rotate(180deg); }
  .nav-burger{ display:inline-flex; }
}

/* ===== Breadcrumb ===== */
.breadcrumb{ padding-block:var(--sp-md); border-bottom:1px solid var(--s-200); }
.breadcrumb ol{ list-style:none; display:flex; gap:8px; margin:0; padding:0; font:400 13px/18px var(--f-body); color:var(--s-500); flex-wrap:wrap; }
.breadcrumb a{ text-decoration:none; color:var(--s-500); }
.breadcrumb a:hover{ color:var(--c-primary); }
.breadcrumb li[aria-current]{ color:var(--c-primary); font-weight:600; }

/* ===== Atmospheric background (regola LEARNINGS: mai colore piatto) ===== */
.atmo{
  background:
    radial-gradient(60% 55% at 18% 12%, rgba(179,39,30,.14), transparent 60%),
    radial-gradient(50% 60% at 88% 85%, rgba(46,107,79,.10), transparent 65%),
    linear-gradient(160deg, #180F2C 0%, #1F1339 45%, #23164450 100%),
    linear-gradient(#1F1339, #1F1339);
  color:#fff;
  position:relative;
  overflow:hidden;
}
.atmo::before{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.5; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.35'/></svg>");
}
.atmo .wrap{ position:relative; z-index:1; }

/* ===== Atmospheric background, variante rossa (accento a tema, mai piatta) ===== */
.atmo-red{
  background:
    radial-gradient(65% 60% at 18% 12%, rgba(230,84,64,.30), transparent 60%),
    radial-gradient(55% 65% at 88% 88%, rgba(122,26,20,.35), transparent 65%),
    linear-gradient(160deg, #2A0E0C 0%, #4A1712 45%, #2A0E0C50 100%),
    linear-gradient(#2A0E0C, #2A0E0C);
  color:#fff;
  position:relative;
  overflow:hidden;
}
.atmo-red::before{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.5; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.35'/></svg>");
}
.atmo-red .wrap{ position:relative; z-index:1; }
.atmo-red .eyebrow{ color:#FFB3A1; }
.atmo-red .h2{ color:#fff; }
.atmo-red .body{ color:rgba(255,255,255,.78); }
.atmo-red .zone-group h3{ color:#FFB3A1; }
.atmo-red .zone-group p{ color:rgba(255,255,255,.72); }
.atmo-red .zone-chip{ background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.28); color:#fff; }

/* ===== Divisore accennato tra due blocchi sullo stesso fondale continuo ===== */
.seam-divider{ position:relative; z-index:1; width:min(560px,70%); height:1px; margin:0 auto; background:linear-gradient(90deg, transparent, rgba(255,255,255,.35), transparent); }

/* ===== Contenuti chiari dentro .atmo (oltre all'hero) ===== */
.atmo .body{ color:rgba(255,255,255,.78); }
.atmo .law-box{ background:rgba(255,255,255,.06); border-top-color:rgba(255,255,255,.18); border-right-color:rgba(255,255,255,.18); border-bottom-color:rgba(255,255,255,.18); }
.atmo .law-box h3{ color:#fff; }
.atmo .law-box li{ color:rgba(255,255,255,.75); }
.atmo .law-box li strong{ color:#fff; }
.atmo .law-box .tick{ color:#6FCF97; }

/* ===== Situazioni normativa (3 card, dentro .atmo) ===== */
.scenario-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--sp-lg); margin-bottom:var(--sp-xl); }
@media (max-width:860px){ .scenario-grid{ grid-template-columns:1fr; } }
.scenario-card{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.18); border-radius:var(--r-md); padding:var(--sp-lg); }
.scenario-card h3{ font:600 17px/24px var(--f-body); color:#fff; margin-bottom:8px; }
.scenario-card p{ font:400 14px/22px var(--f-body); color:rgba(255,255,255,.72); margin:0; }

/* ===== Page hero (pagine interne, più corto dell'hero Home) ===== */
.page-hero{ padding-block:var(--sp-3xl) var(--sp-2xl); }
.page-hero .wrap{ display:flex; flex-direction:column; align-items:center; text-align:center; }
.page-hero .display{ color:#fff; font-size:clamp(36px,9vw,64px); max-width:none; }
.page-hero .hero-title{ margin-bottom:4px; }
.page-hero .hero-subtitle{ font:600 clamp(20px,4.5vw,32px)/1.35 var(--f-body); color:rgba(255,255,255,.75); margin-top:8px; max-width:none; }
.page-hero .hero-caption{ font:400 16px/26px var(--f-body); color:rgba(255,255,255,.6); max-width:72ch; margin-top:var(--sp-md); margin-inline:auto; }
.page-hero .btn-row{ justify-content:center; }
@media (max-width:520px){ .page-hero .btn-row{ flex-direction:column; align-items:stretch; width:100%; } .page-hero .btn-row .btn{ justify-content:center; } }
.trust-logo{ height:120px; width:auto; object-fit:contain; display:block; }

/* ===== Hero (Home) ===== */
.hero{ padding-block:var(--sp-4xl) var(--sp-3xl); }
.hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:var(--sp-3xl); align-items:center; }
@media (max-width:900px){ .hero-grid{ grid-template-columns:1fr; gap:var(--sp-2xl); } }
.hero-copy{ display:flex; flex-direction:column; gap:var(--sp-md); }
.hero-copy .display{ color:#fff; }
.hero-copy .body-lg{ color:rgba(255,255,255,.9); max-width:56ch; }
.hero-copy .body{ color:rgba(255,255,255,.72); max-width:56ch; }
.hero-copy strong{ color:#fff; }
.trust-mini{ display:flex; align-items:center; gap:10px; margin-top:var(--sp-sm); flex-wrap:wrap; justify-content:center; }
@media (max-width:600px){ .trust-mini{ flex-direction:column; gap:10px; } }
.trust-mini .stat{ font:800 24px/1 var(--f-display); color:#fff; letter-spacing:0.01em; }
.trust-mini .stat-label{ font:400 13px/18px var(--f-body); color:rgba(255,255,255,.65); }

.hero-visual{ position:relative; overflow:hidden; border-radius:var(--r-lg); }
.hero-photo{ width:100%; height:100%; min-height:340px; max-height:560px; object-fit:cover; border-radius:var(--r-lg); animation:heroKenBurns 18s ease-in-out infinite alternate; will-change:transform; }
@media (max-width:900px){ .hero-photo{ min-height:260px; } }
@keyframes heroKenBurns{
  from{ transform:scale(1) translate(0,0); }
  to{ transform:scale(1.08) translate(-1.5%,-1%); }
}
@media (prefers-reduced-motion:reduce){ .hero-photo{ animation:none; } }
.blueprint-frame{
  border:1px solid rgba(255,255,255,.18); border-radius:var(--r-lg); padding:var(--sp-md);
  background:rgba(255,255,255,.04); box-shadow:var(--shadow-lg);
}
.blueprint{
  aspect-ratio:4/3; border-radius:var(--r-md); overflow:hidden; position:relative;
  background:
    linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px) 0 0/24px 24px,
    linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px) 0 0/24px 24px,
    #180F2C;
}
.blueprint svg{ position:absolute; inset:0; width:100%; height:100%; }
.blueprint img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.blueprint-caption{ font:400 12px/18px var(--f-body); color:rgba(255,255,255,.55); margin-top:10px; }

/* ===== Proof strip / marquee ===== */
.proof{ padding-block:var(--sp-2xl); border-bottom:1px solid var(--s-200); overflow:hidden; }
.proof-label{ font:600 12px/16px var(--f-body); letter-spacing:.06em; text-transform:uppercase; color:var(--s-500); margin-bottom:var(--sp-md); text-align:center; }
.marquee{ display:flex; align-items:center; gap:var(--sp-4xl); width:max-content; animation:scroll 32s linear infinite; }
@media (prefers-reduced-motion:reduce){ .marquee{ animation:none; } }
.marquee span{ font:600 18px/1 var(--f-body); color:var(--s-500); white-space:nowrap; }
.marquee img{
  height:52px; width:auto; max-width:190px; object-fit:contain; flex:0 0 auto;
  filter:grayscale(1) opacity(.65); transition:filter .2s ease;
}
.marquee img:hover{ filter:grayscale(0) opacity(1); }
@media (prefers-reduced-motion:reduce){ .marquee img{ transition:none; } }
@keyframes scroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ===== Services ===== */
.services{ padding-block:var(--sp-4xl); }
.section-head{ max-width:60ch; margin-bottom:var(--sp-2xl); }
.section-head .eyebrow{ display:block; margin-bottom:var(--sp-sm); }
.svc-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--sp-lg); }
.svc-grid.cols-3{ grid-template-columns:repeat(3,1fr); }
.svc-grid.cols-5{ grid-template-columns:repeat(5,1fr); }
@media (max-width:1080px){ .svc-grid.cols-5{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:900px){ .svc-grid{ grid-template-columns:1fr 1fr; } .svc-grid.cols-3{ grid-template-columns:1fr 1fr; } .svc-grid.cols-5{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .svc-grid{ grid-template-columns:1fr; } .svc-grid.cols-3{ grid-template-columns:1fr; } .svc-grid.cols-5{ grid-template-columns:1fr; } }
.svc-card{ background:var(--s-0); border:1px solid var(--s-200); border-radius:var(--r-md); padding:var(--sp-lg); box-shadow:var(--shadow-sm); transition:box-shadow .15s ease, transform .15s ease; display:flex; flex-direction:column; gap:var(--sp-sm); text-decoration:none; color:inherit; }
.svc-card:hover{ box-shadow:var(--shadow-md); transform:translateY(-2px); }
@media (prefers-reduced-motion:reduce){ .svc-card{ transition:none; } .svc-card:hover{ transform:none; } }
.svc-icon{ width:40px; height:40px; border-radius:var(--r-sm); background:var(--s-100); display:flex; align-items:center; justify-content:center; color:var(--c-primary); }
.svc-card h3{ font:600 19px/26px var(--f-body); }
.svc-card p{ font:400 14px/22px var(--f-body); color:var(--s-600); margin:0; flex:1; }
.svc-link{ font:600 13px/18px var(--f-body); color:var(--c-primary); text-decoration:none; display:inline-flex; align-items:center; gap:4px; }
.svc-link:hover{ color:var(--c-accent); }

/* ===== Why MVR (navy, atmospheric) ===== */
.why{ padding-block:var(--sp-4xl); }
.why .eyebrow{ color:rgba(255,255,255,.7); }
.why h2{ color:#fff; margin-top:var(--sp-sm); max-width:22ch; }
.why-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:var(--sp-3xl); align-items:start; margin-top:var(--sp-2xl); }
@media (max-width:900px){ .why-grid{ grid-template-columns:1fr; gap:var(--sp-2xl); } }
.stat-block{ display:flex; flex-direction:column; gap:4px; }
.brand-seal{
  background:var(--s-0); border-radius:var(--r-md); padding:var(--sp-md) var(--sp-lg);
  display:inline-flex; width:fit-content; box-shadow:var(--shadow-lg); margin-bottom:var(--sp-lg);
}
.brand-seal img{ height:56px; width:auto; object-fit:contain; }
.stat-block .num{ font:800 104px/0.92 var(--f-display); color:#fff; letter-spacing:0.01em; }
.stat-block .cap{ font:400 15px/22px var(--f-body); color:rgba(255,255,255,.65); max-width:26ch; }
.why-list{ display:flex; flex-direction:column; gap:var(--sp-lg); }
.why-item{ display:flex; gap:var(--sp-md); padding-bottom:var(--sp-lg); border-bottom:1px solid rgba(255,255,255,.12); }
.why-item:last-child{ border-bottom:none; padding-bottom:0; }
.why-item .idx{ font:600 13px/1 var(--f-body); color:var(--c-accent); flex:0 0 auto; padding-top:4px; }
.why-item h3{ font:600 18px/26px var(--f-body); color:#fff; margin-bottom:4px; }
.why-item p{ font:400 14px/22px var(--f-body); color:rgba(255,255,255,.68); margin:0; }

/* ===== Social proof ===== */
.social{ padding-block:var(--sp-4xl); background:var(--s-50); }
.social-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:var(--sp-3xl); align-items:start; }
@media (max-width:900px){ .social-grid{ grid-template-columns:1fr; } }
.testimonial-card{ background:var(--s-0); border:1px solid var(--s-200); border-left:3px solid var(--c-accent); border-radius:var(--r-md); padding:var(--sp-xl); box-shadow:var(--shadow-sm); }
.testimonial-card p{ font:400 18px/28px var(--f-body); color:var(--c-primary); margin:0 0 var(--sp-md); }
.testimonial-meta{ font:600 13px/18px var(--f-body); color:var(--s-500); }
.verify-tag{ display:inline-flex; align-items:center; gap:6px; font:600 11px/16px var(--f-body); letter-spacing:.04em; text-transform:uppercase; color:var(--c-accent); background:rgba(179,39,30,.08); padding:3px 10px; border-radius:var(--r-full); margin-bottom:var(--sp-sm); }
.trust-points{ display:flex; flex-direction:column; gap:10px; margin-top:var(--sp-md); }
.trust-points p{ font:400 15px/24px var(--f-body); color:var(--s-600); margin:0; }
.trust-points strong{ color:var(--c-primary); }
.logo-strip{ display:flex; flex-wrap:wrap; gap:var(--sp-sm); margin-top:var(--sp-lg); }
.logo-ph{ font:500 13px/18px var(--f-body); color:var(--s-500); border:1px dashed var(--s-300); border-radius:var(--r-sm); padding:8px 12px; }
.logo-chip{ background:var(--s-0); border:1px solid var(--s-200); border-radius:var(--r-sm); padding:10px 16px; display:flex; align-items:center; }
.logo-chip img{ height:26px; width:auto; max-width:110px; object-fit:contain; }
.reviews-card{ background:var(--s-0); border:1px solid var(--s-200); border-radius:var(--r-md); padding:var(--sp-lg); box-shadow:var(--shadow-sm); }

/* ===== FAQ ===== */
.faq{ padding-block:var(--sp-4xl); }
.faq-list{ max-width:760px; }
.faq-list.wide{ max-width:none; }
.faq-item{ border-bottom:1px solid var(--s-200); }
.faq-item summary{ list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:var(--sp-md); padding:var(--sp-lg) 0; font:600 17px/24px var(--f-body); }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item .chev{ font-size:18px; color:var(--s-500); flex:0 0 auto; }
.faq-item .a{ padding-bottom:var(--sp-lg); font:400 15px/24px var(--f-body); color:var(--s-600); max-width:65ch; }
.faq-category{ font:600 13px/16px var(--f-body); letter-spacing:.06em; text-transform:uppercase; color:var(--c-accent); margin:var(--sp-2xl) 0 var(--sp-sm); }
.faq-category:first-child{ margin-top:0; }

/* ===== Categorie FAQ espandibili (accordion di accordion) ===== */
.faq-category-group{ border-bottom:1px solid var(--s-200); }
.faq-category-group summary{ list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:var(--sp-md); padding:var(--sp-lg) 0; font:700 15px/20px var(--f-body); letter-spacing:.06em; text-transform:uppercase; color:var(--c-accent); }
.faq-category-group summary::-webkit-details-marker{ display:none; }
.faq-category-group summary .chev{ font-size:14px; color:var(--c-accent); transition:transform .15s ease; flex:0 0 auto; }
.faq-category-group[open] summary .chev{ transform:rotate(180deg); }
@media (prefers-reduced-motion:reduce){ .faq-category-group summary .chev{ transition:none; } }
.faq-category-group .faq-list{ max-width:none; padding-bottom:var(--sp-lg); }
.faq-category-group .faq-list .faq-item:last-child{ border-bottom:none; }
.faq-category-group .faq-item summary{ font:700 14px/22px var(--f-body); color:var(--c-primary); }

/* ===== CTA finale ===== */
.cta-final{ padding-block:var(--sp-4xl); text-align:center; }
.cta-final .wrap{ display:flex; flex-direction:column; align-items:center; gap:var(--sp-md); }
.cta-final .display{ color:#fff; max-width:20ch; }
.cta-final .body-lg{ color:rgba(255,255,255,.75); }
.cta-final .btn-row{ justify-content:center; margin-top:var(--sp-sm); }
.cta-final .micro{ font:400 13px/20px var(--f-body); color:rgba(255,255,255,.6); margin-top:var(--sp-sm); }

/* ===== Article / blog ===== */
.article-head{ padding-block:var(--sp-3xl) var(--sp-xl); border-bottom:1px solid var(--s-200); }
.article-head .eyebrow{ display:block; margin-bottom:var(--sp-sm); }
.article-head .h1{ max-width:20ch; }
.article-meta{ display:flex; gap:var(--sp-md); margin-top:var(--sp-md); font:400 13px/18px var(--f-body); color:var(--s-500); }
.article-body{ padding-block:var(--sp-2xl) var(--sp-3xl); max-width:720px; }
.article-body p{ font:400 17px/28px var(--f-body); color:var(--s-600); margin:0 0 var(--sp-lg); }
.article-body h2{ font:700 24px/32px var(--f-body); letter-spacing:-0.01em; margin:var(--sp-2xl) 0 var(--sp-md); }
.article-body h3{ font:600 19px/26px var(--f-body); margin:var(--sp-xl) 0 var(--sp-sm); }
.article-body ul{ margin:0 0 var(--sp-lg); padding-left:20px; }
.article-body li{ font:400 16px/26px var(--f-body); color:var(--s-600); margin-bottom:6px; }
.article-body blockquote{ margin:var(--sp-xl) 0; padding:var(--sp-md) var(--sp-lg); border-left:3px solid var(--c-accent); background:var(--s-50); font:400 17px/26px var(--f-body); color:var(--c-primary); }
.article-cta{ background:var(--s-50); border:1px solid var(--s-200); border-radius:var(--r-md); padding:var(--sp-lg); display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--sp-md); margin-top:var(--sp-2xl); }
.article-cta p{ margin:0; font:600 16px/24px var(--f-body); color:var(--c-primary); max-width:40ch; }
.article-cross{ padding-block:var(--sp-3xl); background:var(--s-50); }
.article-cross-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:var(--sp-lg); margin-top:var(--sp-lg); }
@media (max-width:700px){ .article-cross-grid{ grid-template-columns:1fr; } }
.article-cross-card{ background:var(--s-0); border:1px solid var(--s-200); border-radius:var(--r-md); padding:var(--sp-lg); text-decoration:none; color:inherit; display:block; box-shadow:var(--shadow-sm); }
.article-cross-card .tag{ font:600 11px/16px var(--f-body); letter-spacing:.05em; text-transform:uppercase; color:var(--c-accent); }
.article-cross-card h3{ font:600 17px/24px var(--f-body); margin-top:6px; }

/* Blog teaser dentro pagine servizio */
.blog-teaser{ padding-block:var(--sp-3xl); }
.blog-teaser-card{ display:flex; gap:var(--sp-xl); align-items:center; background:var(--s-50); border:1px solid var(--s-200); border-radius:var(--r-lg); padding:var(--sp-xl); }
@media (max-width:700px){ .blog-teaser-card{ flex-direction:column; align-items:flex-start; } }
.blog-teaser-icon{ width:56px; height:56px; border-radius:var(--r-md); background:var(--c-primary); color:#fff; display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.blog-teaser-copy{ flex:1; }
.blog-teaser-copy h3{ font:600 20px/28px var(--f-body); margin-bottom:6px; }
.blog-teaser-copy p{ font:400 14px/22px var(--f-body); color:var(--s-600); margin:0 0 var(--sp-md); max-width:56ch; }

/* ===== Footer ===== */
footer{ background:var(--c-primary); color:rgba(255,255,255,.75); padding-block:var(--sp-2xl); }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:var(--sp-2xl); }
@media (max-width:700px){ .footer-grid{ grid-template-columns:1fr 1fr; gap:var(--sp-xl); } }
footer h4{ font:600 13px/18px var(--f-body); letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.5); margin:0 0 var(--sp-sm); }
footer p, footer a{ font:400 14px/24px var(--f-body); color:rgba(255,255,255,.75); text-decoration:none; margin:0 0 4px; display:block; }
footer a:hover{ color:#fff; }
.footer-bottom{ margin-top:var(--sp-2xl); padding-top:var(--sp-lg); border-top:1px solid rgba(255,255,255,.12); font:400 12px/18px var(--f-body); color:rgba(255,255,255,.45); display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; }

/* ===== WhatsApp / call FAB ===== */
.fab{ position:fixed; right:20px; bottom:20px; width:56px; height:56px; border-radius:var(--r-full); background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-lg); z-index:50; text-decoration:none; }
.fab svg{ width:26px; height:26px; }

/* ===== Reveal on scroll ===== */
.reveal{ opacity:0; transform:translateY(14px); transition:opacity .5s ease, transform .5s ease; }
.reveal.is-visible{ opacity:1; transform:none; }

/* ===== Law callout (spiegazione normativa) ===== */
.law-box{ background:var(--s-50); border:1px solid var(--s-200); border-left:3px solid var(--c-accent); border-radius:var(--r-md); padding:var(--sp-xl); }
.law-box h3{ font:600 16px/22px var(--f-body); margin-bottom:var(--sp-md); }
.law-box ul{ margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:var(--sp-md); }
.law-box li{ display:flex; gap:var(--sp-sm); font:400 15px/24px var(--f-body); color:var(--s-600); }
.law-box li strong{ color:var(--c-primary); }
.law-box .tick{ flex:0 0 auto; color:var(--c-success); font-weight:700; }

/* ===== Zone servite ===== */
.zone-groups{ display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-2xl); margin-top:var(--sp-xl); }
.zone-groups.cols-3{ grid-template-columns:repeat(3,1fr); }
@media (max-width:900px){ .zone-groups.cols-3{ grid-template-columns:1fr; } }
@media (max-width:700px){ .zone-groups{ grid-template-columns:1fr; } }
.zone-group{ background:var(--s-0); border:1px solid var(--s-200); border-radius:var(--r-md); padding:var(--sp-lg); box-shadow:var(--shadow-sm); }
.zone-group .zone-note{ font:600 13px/18px var(--f-body); color:var(--c-accent); margin-top:var(--sp-sm); }
.zone-group h3{ font:600 14px/20px var(--f-body); letter-spacing:.04em; text-transform:uppercase; color:var(--c-accent); margin-bottom:var(--sp-sm); }
.zone-group p{ font:400 14px/22px var(--f-body); color:var(--s-600); margin:0 0 var(--sp-md); }
.zone-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.zone-chip{ font:600 13px/18px var(--f-body); color:var(--c-primary); background:var(--s-0); border:1px solid var(--s-200); border-radius:var(--r-full); padding:6px 14px; }

/* ===== Tabella tempi di intervento per zona ===== */
.zone-split{ display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-2xl); position:relative; margin-top:var(--sp-xl); }
.zone-split-divider{ position:absolute; top:10%; bottom:10%; left:50%; width:1px; background:linear-gradient(180deg, transparent, rgba(255,255,255,.35), transparent); }
.zone-split-label{ font:600 13px/16px var(--f-body); letter-spacing:.06em; text-transform:uppercase; color:#FFB3A1; margin-bottom:var(--sp-md); }
@media (max-width:700px){ .zone-split{ grid-template-columns:1fr; gap:var(--sp-xl); } .zone-split-divider{ display:none; } }
.zone-time-table{ display:flex; flex-direction:column; }
.zone-time-row{ display:flex; align-items:center; justify-content:space-between; gap:var(--sp-md); padding:var(--sp-md) 0; border-bottom:1px solid rgba(255,255,255,.14); }
.zone-time-row:last-child{ border-bottom:none; }
.zone-time-row strong{ font:600 16px/22px var(--f-body); color:#fff; display:block; }
.zone-time-sub{ font:400 13px/18px var(--f-body); color:rgba(255,255,255,.55); }
.zone-time-badge{ font:600 13px/18px var(--f-body); color:#FFB3A1; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.2); border-radius:var(--r-full); padding:5px 14px; flex:0 0 auto; white-space:nowrap; }

/* ===== Contact form ===== */
.contact-panel{ display:grid; grid-template-columns:.85fr 1.15fr; gap:var(--sp-3xl); align-items:start; text-align:left; width:100%; margin-top:var(--sp-lg); }
@media (max-width:900px){ .contact-panel{ grid-template-columns:1fr; } }
.contact-channels{ display:flex; flex-direction:column; gap:var(--sp-md); }
.contact-channel{ display:flex; align-items:center; gap:var(--sp-md); color:#fff; text-decoration:none; }
.contact-channel .ico{ width:44px; height:44px; border-radius:var(--r-md); background:rgba(255,255,255,.1); display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.contact-channel .lbl{ font:400 13px/18px var(--f-body); color:rgba(255,255,255,.6); display:block; }
.contact-channel .val{ font:600 16px/22px var(--f-body); display:block; }
.contact-form{ background:var(--s-0); border-radius:var(--r-lg); padding:var(--sp-xl); box-shadow:var(--shadow-lg); display:flex; flex-direction:column; gap:var(--sp-md); }
.contact-form .row2{ display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-md); }
@media (max-width:520px){ .contact-form .row2{ grid-template-columns:1fr; } }
.contact-form label{ display:flex; flex-direction:column; gap:6px; font:600 13px/18px var(--f-body); color:var(--c-primary); text-align:left; }
.contact-form input, .contact-form select, .contact-form textarea{ font:400 15px/22px var(--f-body); color:var(--c-primary); border:1px solid var(--s-200); border-radius:var(--r-sm); padding:11px 12px; background:var(--s-0); }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus{ outline:2px solid var(--c-secondary); outline-offset:1px; }
.contact-form textarea{ resize:vertical; min-height:88px; }
.contact-form .btn{ align-self:flex-start; }
.form-note{ font:400 12px/18px var(--f-body); color:var(--s-500); margin:0; }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; transition:none; } }
