/* ==================================================================
   CARATTERI OSPITATI LOCALMENTE
   Newsreader (titoli, numeri, citazioni) e Inter (testi e interfaccia).
   File variabili: un solo file copre tutti i pesi dichiarati.
   unicode-range fa scaricare al browser solo il sottoinsieme che serve.
   Nessuna richiesta a Google: il sito non contatta domini esterni.
   ================================================================== */

@font-face{
  font-family:'Inter';
  font-style:normal;
  font-weight:400 600;
  font-display:swap;
  src:url('../fonts/inter-normal-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Inter';
  font-style:normal;
  font-weight:400 600;
  font-display:swap;
  src:url('../fonts/inter-normal-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Newsreader';
  font-style:italic;
  font-weight:300 400;
  font-display:swap;
  src:url('../fonts/newsreader-italic-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Newsreader';
  font-style:italic;
  font-weight:300 400;
  font-display:swap;
  src:url('../fonts/newsreader-italic-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Newsreader';
  font-style:normal;
  font-weight:300 500;
  font-display:swap;
  src:url('../fonts/newsreader-normal-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Newsreader';
  font-style:normal;
  font-weight:300 500;
  font-display:swap;
  src:url('../fonts/newsreader-normal-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Castelnuovo Impianti Termoidraulici — tema "Lago"
   Stesso contratto di classi del sito (testata, menu, barra-mobile, piede…):
   js/main.js funziona senza modifiche. */

:root{
  /* superfici */
  --pietra:#f5f2ec; --pietra-2:#eae4d9; --bianco:#fffefb;
  --verde:#22463d; --verde-2:#2f6053; --verde-scuro:#17332c;
  --riga:#ded7c9; --riga-forte:#cabfab;

  /* testo */
  --testo:#23201b; --testo-2:#575048; --testo-3:#6a6257;

  /* ottone: decorativo / azione / testo — separati per rispettare AA */
  --ottone:#a4763c;          /* solo filetti, pallini, bordi: mai testo */
  --ottone-azione:#8a5f2b;   /* fondo pulsante, testo bianco = 5.6:1 */
  --ottone-testo:#855b28;    /* testo su pietra 5.33:1 e su pietra-2 4.71:1 */
  --sabbia:#e2c79c;          /* accento su fondi scuri */

  /* le tre porte: personalità sobrie, non tre brand */
  --p-casa:#8a5f2b; --p-pro:#22463d; --p-enti:#2f5878;

  --wrap:1320px; --gutter:clamp(20px,4.4vw,60px); --sez:clamp(56px,7vw,116px);
  --serif:Newsreader,"Iowan Old Style",Georgia,serif;
  --sans:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:clip}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--pietra);color:var(--testo);font-family:var(--sans);
  font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
input,select,textarea,button{font-family:inherit;font-size:16px}
a{color:var(--verde)}
a:hover{color:var(--ottone-testo)}
a:focus-visible,button:focus-visible{outline:2px solid var(--ottone-azione);outline-offset:3px;border-radius:2px}
::selection{background:var(--sabbia);color:var(--testo)}
h1,h2,h3{margin:0}
p{margin:0;text-wrap:pretty}
ul,ol{margin:0;padding:0;list-style:none}

.salta{position:absolute;left:-9999px;top:0;z-index:60;background:var(--verde);color:#fff;padding:14px 20px;text-decoration:none;font-weight:600}
.salta:focus{left:10px;top:10px}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.sezione{padding-top:var(--sez);padding-bottom:var(--sez)}
.sez-chiara{background:var(--pietra-2)}
.sez-scura{background:var(--verde);color:#fff}
.sez-bianca{background:var(--bianco)}

/* ---------- tipografia: serif solo per titoli, numeri e citazioni ---------- */
.h1,.h2,.h2-min{font-family:var(--serif);font-weight:400;letter-spacing:-.014em;line-height:1.08;text-wrap:balance}
.h1{font-size:clamp(32px,4.9vw,68px);font-weight:300;line-height:1.06}
.h1 em{font-style:italic;color:var(--sabbia)}
.h2{font-size:clamp(26px,3.4vw,46px);font-weight:300}
.h2-min{font-size:clamp(21px,2.4vw,31px)}
/* i titoli di scheda restano in Inter: tengono il tono tecnico */
.h3{font-family:var(--sans);font-size:clamp(17px,1.7vw,20px);font-weight:600;letter-spacing:-.012em;line-height:1.3}
.lead{font-size:clamp(16.5px,1.3vw,19px);line-height:1.66;color:var(--testo-2)}
.sez-scura .lead{color:rgba(255,255,255,.84)}
.nota{font-size:14px;line-height:1.6;color:var(--testo-3)}
.misura{max-width:46ch}.misura-s{max-width:34ch}

.kicker{display:flex;align-items:center;gap:13px;margin:0 0 18px;
  font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ottone-testo)}
.kicker::before{content:"";width:34px;height:1px;background:var(--ottone);flex:none}
.sez-scura .kicker{color:var(--sabbia)}
.sez-scura .kicker::before{background:var(--sabbia)}

/* ---------- pulsanti: leggermente arrotondati, non pillole ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;
  min-height:52px;padding:15px 26px;border-radius:4px;border:1px solid transparent;cursor:pointer;
  font-size:13px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;text-decoration:none;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease}
.btn-primario{background:var(--ottone-azione);color:#fff}
.btn-primario:hover{background:#744e22;color:#fff}
.btn-verde{background:var(--verde);color:#fff}
.btn-verde:hover{background:var(--verde-2);color:#fff}
.btn-contorno{border-color:rgba(255,255,255,.5);color:#fff;background:none}
.btn-contorno:hover{background:rgba(255,255,255,.14);border-color:#fff;color:#fff}
.btn-contorno-scuro{border-color:var(--riga-forte);color:var(--testo);background:none}
.btn-contorno-scuro:hover{background:var(--verde);border-color:var(--verde);color:#fff}
.btn-largo{width:100%}
.azioni{display:flex;gap:12px;flex-wrap:wrap;align-items:center}

.link-sotto{display:inline-flex;align-items:center;gap:9px;font-size:12px;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;color:var(--testo);text-decoration:none;border-bottom:1px solid var(--ottone);padding-bottom:5px}
.link-sotto::after{content:"\2192";transition:transform .25s ease}
.link-sotto:hover{color:var(--ottone-testo)}
.link-sotto:hover::after{transform:translateX(4px)}
.sez-scura .link-sotto{color:#fff;border-color:var(--sabbia)}
.sez-scura .link-sotto:hover{color:var(--sabbia)}

/* ---------- testata ---------- */
.testata{position:sticky;top:0;z-index:30;transition:box-shadow .25s ease}
.testata.compatta{box-shadow:0 1px 0 var(--riga),0 12px 30px -24px rgba(35,32,27,.5)}
.topbar{background:var(--verde-scuro);color:rgba(255,255,255,.72);font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase}
.topbar .wrap{display:flex;align-items:center;gap:22px;flex-wrap:wrap;padding-top:9px;padding-bottom:9px}
.topbar a{color:rgba(255,255,255,.9);text-decoration:none}
.topbar a:hover{color:var(--sabbia)}
.topbar-fine{margin-left:auto}
.nav{background:var(--pietra);border-bottom:1px solid var(--riga)}
.testata.compatta .nav{background:rgba(245,242,236,.94);backdrop-filter:saturate(1.3) blur(10px)}
.nav .wrap{display:flex;align-items:center;gap:clamp(14px,2vw,32px);padding-top:14px;padding-bottom:14px;flex-wrap:nowrap}
.marchio{flex:none;display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--testo)}
.marchio img{height:42px;width:auto;flex:none}
.marchio-nome{display:block;font-family:var(--serif);font-size:clamp(16px,1.7vw,20px);font-weight:500;letter-spacing:.09em;line-height:1}
.marchio-sotto{display:block;font-size:8px;font-weight:600;letter-spacing:.24em;color:var(--ottone-testo);margin-top:4px}
.nav-voci{display:none;align-items:center;gap:clamp(14px,1.6vw,26px);margin-left:auto;font-size:13.5px;font-weight:500}
.nav-voci>a,.nav-menu>a{color:var(--testo-2);text-decoration:none;padding:6px 0;white-space:nowrap;
  border-bottom:1px solid transparent;transition:color .2s ease,border-color .2s ease}
.nav-voci a:hover{color:var(--testo);border-bottom-color:var(--ottone)}
.nav-voci a[aria-current="page"]{color:var(--ottone-testo);border-bottom-color:var(--ottone)}
.nav-cta{display:none;min-height:44px;padding:12px 18px;font-size:11.5px;letter-spacing:.09em;white-space:nowrap}
.nav-tel{display:none;align-items:center;gap:9px;flex:none;color:var(--testo);text-decoration:none;
  font-size:17px;font-weight:600;white-space:nowrap}
.nav-tel::before{content:"";width:7px;height:7px;flex:none;border-radius:50%;background:var(--ottone);box-shadow:0 0 0 4px rgba(164,118,60,.16)}
.nav-tel:hover{color:var(--ottone-testo)}
.burger{display:inline-flex;align-items:center;gap:10px;margin-left:auto;background:none;
  border:1px solid var(--riga-forte);color:var(--testo);border-radius:4px;
  font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:12px 15px;min-height:46px;cursor:pointer}
.burger:hover{background:var(--pietra-2);border-color:var(--verde)}
.burger-righe{display:grid;gap:4px;width:18px}
.burger-righe span{height:1.5px;background:var(--testo)}

/* sottomenu desktop */
.nav-menu{position:relative;display:flex;align-items:center}
.nav-menu>a{display:inline-flex;align-items:center;gap:7px}
.nav-menu>a::after{content:"";width:5px;height:5px;flex:none;border-right:1.5px solid var(--ottone);border-bottom:1.5px solid var(--ottone);transform:translateY(-2px) rotate(45deg)}
.nav-drop{position:absolute;top:calc(100% + 18px);left:-18px;z-index:60;min-width:300px;display:grid;padding:8px 0;
  background:var(--bianco);border:1px solid var(--riga);border-top:2px solid var(--ottone);box-shadow:0 26px 50px -24px rgba(35,32,27,.4);
  opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .18s ease,transform .18s ease,visibility .18s}
.nav-drop::before{content:"";position:absolute;left:0;right:0;top:-20px;height:20px}
.nav-menu:hover .nav-drop,.nav-menu:focus-within .nav-drop{opacity:1;visibility:visible;transform:none}
.nav-voci .nav-drop a{color:var(--testo);font-size:14.5px;font-weight:500;letter-spacing:0;text-transform:none;
  padding:11px 20px;border-bottom:0;white-space:nowrap}
.nav-voci .nav-drop a:hover{color:var(--ottone-testo);background:var(--pietra)}

/* selettore lingua */
.lingua{display:none;position:relative;flex:none}
.lingua-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:1px solid var(--riga-forte);color:var(--testo);
  border-radius:4px;font:inherit;font-size:12px;font-weight:600;letter-spacing:.08em;padding:10px 11px;min-height:44px;cursor:pointer}
.lingua-btn:hover{border-color:var(--verde);background:var(--pietra-2)}
.lingua-freccia{width:6px;height:6px;flex:none;display:block;border-right:1.5px solid var(--ottone);border-bottom:1.5px solid var(--ottone);
  transform:translateY(-2px) rotate(45deg);transition:transform .2s ease}
.lingua-btn[aria-expanded="true"]{border-color:var(--ottone)}
.lingua-btn[aria-expanded="true"] .lingua-freccia{transform:translateY(1px) rotate(225deg)}
.lingua-drop{position:absolute;top:calc(100% + 9px);right:0;z-index:60;min-width:168px;display:grid;padding:6px 0;
  background:var(--bianco);border:1px solid var(--riga);border-top:2px solid var(--ottone);box-shadow:0 24px 44px -22px rgba(35,32,27,.42);
  opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .18s ease,transform .18s ease,visibility .18s}
.lingua-btn[aria-expanded="true"]+.lingua-drop{opacity:1;visibility:visible;transform:none}
.lingua-drop a,.lingua-drop span{display:block;padding:11px 18px;font-size:14.5px;font-weight:500;color:var(--testo);text-decoration:none;white-space:nowrap}
.lingua-drop a:hover{color:var(--ottone-testo);background:var(--pietra)}
.lingua-drop [aria-current="true"]{color:var(--ottone-testo);font-weight:600}

/* ---------- menu mobile ---------- */
.menu{position:fixed;inset:0;z-index:50;background:var(--verde);color:#fff;display:flex;flex-direction:column;overflow-y:auto;
  opacity:0;transform:translateY(-8px);transition:opacity .22s ease,transform .22s ease}
.menu[hidden]{display:none}
.menu.aperto{opacity:1;transform:none}
.menu-testa{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px var(--gutter);border-bottom:1px solid rgba(255,255,255,.16)}
.menu-marchio{display:flex;align-items:center;gap:11px;font-family:var(--serif);font-size:17px;font-weight:500;letter-spacing:.09em}
.menu-marchio img{height:34px;width:auto}
.menu-chiudi{background:none;border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:4px;
  font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:12px 16px;min-height:46px;cursor:pointer}
.menu-chiudi:hover{background:rgba(255,255,255,.12)}
.menu nav{display:flex;flex-direction:column;padding:6px var(--gutter) 20px}
.menu nav a{color:#fff;text-decoration:none;font-size:19px;font-weight:500;padding:15px 0;border-bottom:1px solid rgba(255,255,255,.14)}
.menu nav a[aria-current="page"]{color:var(--sabbia)}
/* Voce con sezione espandibile: link a sinistra (porta alla pagina indice),
   pulsante a destra (apre l'elenco dei servizi). Due bersagli distinti. */
.menu-gruppo{display:flex;align-items:stretch;border-bottom:1px solid rgba(255,255,255,.14)}
.menu-gruppo .menu-voce{flex:1;min-width:0}
.menu-voce{border-bottom:0!important;font-weight:600!important}
.menu-piu{flex:none;width:60px;background:none;border:0;border-left:1px solid rgba(255,255,255,.14);
  color:#fff;cursor:pointer;display:grid;place-items:center;transition:background-color .2s ease}
.menu-piu:hover{background:rgba(255,255,255,.08)}
.menu-piu>span{position:relative;display:block;width:15px;height:15px}
.menu-piu>span::before,.menu-piu>span::after{content:"";position:absolute;background:currentColor;transition:transform .25s ease,opacity .2s ease}
.menu-piu>span::before{left:0;right:0;top:6.5px;height:2px}
.menu-piu>span::after{top:0;bottom:0;left:6.5px;width:2px}
.menu-piu[aria-expanded="true"]{color:var(--sabbia)}
.menu-piu[aria-expanded="true"]>span::after{transform:scaleY(0);opacity:0}
.menu-sub{padding:6px 0 14px;border-bottom:1px solid rgba(255,255,255,.14)}
.menu-sub[hidden]{display:none}
.menu nav .menu-sub a{font-size:15.5px;font-weight:400;padding:10px 0 10px 18px;border-bottom:0;color:rgba(255,255,255,.78)}
.menu nav .menu-sub a:hover{color:#fff}
/* selettore lingua nel menu mobile: funziona sia con le voci per esteso
   (markup storico del sito) sia con le sigle in riga */
.menu-lingue{display:grid;gap:6px;padding:14px var(--gutter) 4px}
.menu-lingue p{margin:0 0 4px;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.menu-lingue>a,.menu-lingue>span{display:flex;align-items:center;min-height:48px;padding:11px 16px;
  border:1px solid rgba(255,255,255,.26);border-radius:4px;font-size:16px;font-weight:500;color:#fff;text-decoration:none}
.menu-lingue>a:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.5)}
.menu-lingue [aria-current="true"]{background:var(--sabbia);border-color:var(--sabbia);color:var(--verde-scuro);font-weight:600}
.menu-lingue-righe{display:flex;gap:8px;flex-wrap:wrap}
.menu-lingue-righe a,.menu-lingue-righe span{display:inline-flex;align-items:center;justify-content:center;
  min-width:62px;min-height:48px;padding:10px 14px;border:1px solid rgba(255,255,255,.3);border-radius:4px;
  font-size:15px;font-weight:600;color:#fff;text-decoration:none}
.menu-lingue-righe a:hover{background:rgba(255,255,255,.12)}
.menu-piede{margin-top:auto;padding:16px var(--gutter) calc(24px + env(safe-area-inset-bottom));display:grid;gap:10px}
.menu-piede .btn{min-height:54px}

/* ---------- hero ---------- */
.hero{position:relative;color:#fff;overflow:hidden;background:var(--verde-scuro);isolation:isolate}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 45%;z-index:0;
  filter:brightness(.8) saturate(.95)}
.hero::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(96deg,rgba(15,28,24,.9) 0%,rgba(15,28,24,.72) 42%,rgba(15,28,24,.34) 74%,rgba(15,28,24,.24) 100%)}
.hero .wrap{position:relative;z-index:2;padding-top:clamp(48px,7vw,110px);padding-bottom:clamp(48px,7vw,110px)}
.hero .kicker{color:var(--sabbia)}
.hero .kicker::before{background:var(--sabbia)}
.hero .h1{margin:0 0 22px;max-width:15ch}
.hero .lead{margin:0 0 30px;color:rgba(255,255,255,.88);max-width:46ch}
.hero-prove{display:flex;flex-wrap:wrap;gap:9px 24px;margin-top:32px;font-size:14px;color:rgba(255,255,255,.8)}
.hero-prove li{display:flex;align-items:center;gap:9px}
.hero-prove li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--sabbia);flex:none}
@media (max-width:899px){
  .hero::before{background:linear-gradient(180deg,rgba(15,28,24,.72) 0%,rgba(15,28,24,.6) 42%,rgba(15,28,24,.9) 100%)}
  .hero-img{object-position:center 40%}
}

/* ---------- le tre porte ---------- */
.porte-t{padding:clamp(34px,4.4vw,68px) 0 clamp(20px,2.6vw,36px);text-align:center}
.porte-t .kicker{justify-content:center;display:inline-flex}
.porte-t .kicker::after{content:"";width:34px;height:1px;background:var(--ottone);flex:none}
.porte-t .h2{margin-top:12px}
.porte-t p{margin:14px auto 0;max-width:56ch;color:var(--testo-2)}
.porte{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--riga)}
.porta{position:relative;overflow:hidden;min-height:clamp(360px,32vw,440px);display:flex;align-items:flex-end;
  text-decoration:none;color:#fff;background:var(--verde-scuro);isolation:isolate}
/* la foto resta protagonista: nessun filtro, solo scrim in basso per la leggibilità */
.porta img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;
  transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.porta::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(0deg,rgba(12,18,16,.92) 0%,rgba(12,18,16,.72) 34%,rgba(12,18,16,.18) 66%,rgba(12,18,16,.06) 100%)}
.porta::after{content:"";position:absolute;top:0;left:0;right:0;height:3px;z-index:3}
.porta.p-casa::after{background:var(--p-casa)}
.porta.p-pro::after{background:var(--p-pro)}
.porta.p-enti::after{background:var(--p-enti)}
.porta:hover img,.porta:focus-visible img{transform:scale(1.04)}
.porta-in{position:relative;z-index:2;padding:clamp(20px,2.2vw,30px);width:100%}
.porta-et{display:inline-flex;align-items:center;gap:8px;margin-bottom:11px;
  font-size:10.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#fff}
.porta-et::before{content:"";width:8px;height:8px;border-radius:50%;flex:none}
.porta.p-casa .porta-et::before{background:#d29a55}
.porta.p-pro .porta-et::before{background:#6fae9c}
.porta.p-enti .porta-et::before{background:#7fa8c8}
.porta h3{font-family:var(--sans);font-size:clamp(19px,1.9vw,24px);font-weight:600;letter-spacing:-.012em;margin-bottom:9px}
.porta p{font-size:14.5px;line-height:1.55;color:rgba(255,255,255,.86);margin-bottom:16px;max-width:32ch;
  /* due righe esatte: etichetta e titolo restano allineati fra le tre porte */
  min-height:calc(2 * 1.55em);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.porta .go{display:inline-flex;align-items:center;gap:9px;font-size:11.5px;font-weight:600;letter-spacing:.13em;
  text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.6);padding-bottom:5px}
.porta .go::after{content:"\2192";transition:transform .28s ease}
.porta:hover .go::after{transform:translateX(4px)}

/* ---------- fascia dati ---------- */
/* fascia dati: riga di scheda tecnica, non contatore da startup.
   Etichetta sopra, valore in parole (1920 / Quarta / Uno / Scritto): i quattro
   blocchi hanno larghezza simile e la riga resta equilibrata. */
.dati{background:var(--bianco);border-top:1px solid var(--riga);border-bottom:1px solid var(--riga)}
.dati .wrap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}
.dati .wrap>div{padding:24px clamp(18px,2.2vw,34px);border-left:1px solid var(--riga);display:flex;flex-direction:column;min-width:0;overflow-wrap:break-word}
.dati .wrap>div:first-child{border-left:0;padding-left:0}
.dati h3{font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ottone-testo);margin:0 0 10px}
.dati b{display:block;font-family:var(--serif);font-size:clamp(26px,2.7vw,34px);font-weight:400;color:var(--verde);
  line-height:1.05;letter-spacing:-.02em;margin-bottom:9px}
.dati p{font-size:13.5px;color:var(--testo-2);line-height:1.5;margin-top:auto}

/* ---------- indice servizi compatto (niente ripetizione delle porte) ---------- */
.indice{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.8vw,46px)}
.indice-col{min-width:0}
.indice-col li a,.indice-col li span{overflow-wrap:anywhere}
.indice-col h3{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:var(--testo);padding-bottom:11px;border-bottom:1px solid var(--riga-forte);margin-bottom:4px}
.indice-col h3::before{content:"";width:8px;height:8px;border-radius:50%;flex:none}
.indice-col.i-casa h3::before{background:var(--p-casa)}
.indice-col.i-pro h3::before{background:var(--p-pro)}
.indice-col.i-enti h3::before{background:var(--p-enti)}
.indice-col li{border-bottom:1px solid var(--riga)}
.indice-col li a,.indice-col li span{display:flex;justify-content:space-between;gap:12px;align-items:baseline;
  padding:10px 0;font-size:14.5px;color:var(--testo-2);text-decoration:none}
.indice-col li a:hover{color:var(--ottone-testo)}
.indice-col li em{font-style:normal;font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--testo-3);
  text-align:right;flex:none}
.indice-col .link-sotto{margin-top:18px}

/* ---------- galleria asimmetrica ---------- */
.galleria{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(10px,1.3vw,18px)}
.foto{position:relative;margin:0;overflow:hidden;background:var(--pietra-2)}
.foto img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.foto:hover img{transform:scale(1.035)}
.foto figcaption{position:absolute;left:0;right:0;bottom:0;padding:34px 14px 12px;color:#fff;
  font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  background:linear-gradient(0deg,rgba(12,18,16,.88),transparent)}
.f-7{grid-column:span 7;aspect-ratio:4/3}
.f-5{grid-column:span 5;aspect-ratio:3/4}
.f-4{grid-column:span 4;aspect-ratio:1}

/* ---------- passi ---------- */
.passi{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(16px,2.2vw,32px)}
.passo{min-width:0;overflow-wrap:break-word}
.passo{border-top:1px solid var(--riga-forte);padding-top:16px}
.passo b{display:block;font-family:var(--serif);font-size:24px;font-weight:400;color:var(--ottone-testo);line-height:1;margin-bottom:10px}
.passo h3{font-size:15.5px;font-weight:600;margin-bottom:7px;letter-spacing:-.01em}
.passo p{font-size:14px;color:var(--testo-2);line-height:1.58}

/* ---------- storia ---------- */
.storia .wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,4.6vw,80px);align-items:center}
.storia figure{margin:0;aspect-ratio:3/4;overflow:hidden;max-width:440px}
.storia figure img{width:100%;height:100%;object-fit:cover}
.storia figcaption{margin-top:11px;font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.storia p{color:rgba(255,255,255,.84);margin-bottom:16px;max-width:54ch}
.tappe{margin-top:24px;border-top:1px solid rgba(255,255,255,.2)}
.tappe li{display:grid;grid-template-columns:104px 1fr;gap:18px;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.14);font-size:14.5px}
.tappe b{font-family:var(--serif);font-size:16px;font-weight:400;color:var(--sabbia)}
.tappe span{color:rgba(255,255,255,.8)}
.citazione{margin:30px 0 0;padding-left:22px;border-left:1px solid rgba(226,199,156,.55);
  font-family:var(--serif);font-style:italic;font-size:clamp(18px,1.9vw,25px);line-height:1.38;font-weight:300;color:#fff}
.citazione cite{display:block;margin-top:14px;font-family:var(--sans);font-style:normal;font-size:10.5px;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:#9dbcae}

/* ---------- zone ---------- */
.zone{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:clamp(22px,2.8vw,44px)}
.zona h3{font-size:10.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ottone-testo);
  padding-bottom:12px;border-bottom:1px solid var(--riga);margin-bottom:14px}
.zona p{color:var(--testo-2);font-size:15px;line-height:1.95}

/* ---------- contatti: azioni esplicite ---------- */
.contatti .wrap{display:grid;grid-template-columns:1fr .92fr;gap:clamp(28px,4.4vw,76px);align-items:start}
.azioni-contatto{display:grid;gap:12px;margin-top:26px}
.az-riga{display:flex;align-items:center;gap:16px;padding:16px 20px;background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.22);border-radius:5px;text-decoration:none;color:#fff;transition:background .2s ease,border-color .2s ease}
.az-riga:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.5);color:#fff}
.az-riga .et{font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--sabbia);display:block;margin-bottom:3px}
.az-riga .val{font-size:clamp(17px,1.7vw,21px);font-weight:600;letter-spacing:-.01em;word-break:break-word}
.az-riga .frec{margin-left:auto;flex:none;opacity:.7}
.contatti address{font-style:normal;margin-top:24px;font-size:15px;line-height:1.95;color:rgba(255,255,255,.78)}
.riquadro{background:var(--bianco);color:var(--testo);padding:clamp(24px,2.8vw,40px);border-top:3px solid var(--ottone)}
.riquadro h3{font-family:var(--sans);font-size:21px;font-weight:600;margin-bottom:12px}
.riquadro p{color:var(--testo-2);font-size:15px;margin-bottom:22px}
.riquadro .nota{margin-top:16px}

/* ---------- piede ---------- */
.piede{background:var(--verde-scuro);color:rgba(255,255,255,.7)}
.piede-griglia{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:clamp(26px,3.4vw,50px);
  padding-top:clamp(42px,5vw,70px);padding-bottom:26px}
.piede h2{font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#fff;margin:0 0 16px;font-family:var(--sans)}
.piede ul{display:flex;flex-direction:column;gap:2px;font-size:15px}
.piede a{color:rgba(255,255,255,.7);text-decoration:none;padding:7px 0;display:inline-block}
.piede a:hover{color:var(--sabbia)}
.piede address{font-style:normal;font-size:15px;line-height:1.95}
.piede-marchio{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.piede-marchio img{height:42px;width:auto}
.piede-marchio .marchio-nome{color:#fff}
.piede-dati{font-size:14px;line-height:1.8;margin:0}
.piede-lingue{display:flex;gap:7px;flex-wrap:wrap;margin-top:4px}
.piede-lingue a,.piede-lingue span{display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:40px;padding:8px 12px;
  border:1px solid rgba(255,255,255,.24);border-radius:4px;font-size:13px;font-weight:600;color:rgba(255,255,255,.8);text-decoration:none}
.piede-lingue [aria-current="true"]{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.45)}
.piede-fine{border-top:1px solid rgba(255,255,255,.14);padding:20px 0 calc(30px + env(safe-area-inset-bottom));
  display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:13px}
.piede-legale{display:flex;gap:22px;flex-wrap:wrap}

/* ---------- barra mobile ---------- */
.barra-mobile{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;
  grid-auto-flow:column;grid-auto-columns:1fr;
  background:var(--verde-scuro);border-top:1px solid rgba(255,255,255,.18);padding-bottom:env(safe-area-inset-bottom);
  box-shadow:0 -8px 22px -12px rgba(0,0,0,.55)}
.barra-mobile a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:58px;color:#fff;text-decoration:none;
  font-size:14px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.barra-mobile a:first-child::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--sabbia);flex:none}
.barra-mobile a+a{border-left:1px solid rgba(255,255,255,.16)}
.barra-mobile a{min-width:0;padding:0 6px;text-align:center}
.barra-mobile a:last-child{background:var(--ottone-azione)}
.barra-mobile a:last-child:hover{background:#744e22}

/* ---------- comparsa ---------- */
@keyframes sali{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
[data-reveal]{animation:sali .7s cubic-bezier(.2,.7,.2,1) both;animation-timeline:view();animation-range:entry 0% entry 42%}
@supports not (animation-timeline:view()){
  [data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.2,1);animation:none}
  [data-reveal].visibile{opacity:1;transform:none}
  .senza-js [data-reveal]{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
  [data-reveal]{opacity:1;transform:none;animation:none}
  .porta:hover img,.foto:hover img{transform:none}
}

/* ==================== RESPONSIVE ==================== */

/* barra mobile presente: spazio in fondo, niente sovrapposizioni */
@media (max-width:1059px){
  .piede-fine{padding-bottom:calc(58px + 30px + env(safe-area-inset-bottom))}
}
@media (min-width:1060px){ .barra-mobile{display:none} }

/* Navigazione: il breakpoint è 1180px, lo stesso su cui ragiona main.js.
   Sotto, hamburger. Sopra, main.js misura lo spazio reale e degrada in due
   passi aggiungendo .nav-senza-cta e poi .nav-ridotta su <html>. */
@media (min-width:1180px){
  .nav-voci{display:flex}
  .lingua{display:block}
  .nav-cta{display:inline-flex;flex:none}
  .burger{display:none}
  .menu{display:none!important}
}
@media (max-width:1179px){
  .nav-voci,.nav-cta{display:none}
  .nav-drop{display:none}
  .lingua{display:block;margin-left:auto}
  .burger{margin-left:0}
}
@media (min-width:600px) and (max-width:1179px){ .nav-tel{display:inline-flex} }
@media (max-width:519px){ .lingua{display:none} .burger{margin-left:auto} }

/* Degrado dinamico della testata (classi applicate da main.js).
   Passo 1: esce la CTA. Passo 2: resta logo + hamburger. */
.nav-senza-cta .nav-cta{display:none!important}
.nav-ridotta .nav-voci,
.nav-ridotta .lingua,
.nav-ridotta .nav-cta,
.nav-ridotta .nav-tel{display:none!important}
.nav-ridotta .nav-drop{display:none!important}
.nav-ridotta .burger{display:inline-flex!important;margin-left:auto}
/* il menu deve poter comparire anche sopra i 1180px, dove la media query lo nasconde */
.nav-ridotta .menu:not([hidden]){display:flex!important}

/* fasce compatte da 1059px in giù */
@media (max-width:1059px){
  .indice{grid-template-columns:1fr 1fr}
  .passi{grid-template-columns:1fr 1fr 1fr}
  .storia .wrap{grid-template-columns:1fr}
  .storia figure{aspect-ratio:4/3;max-height:420px;max-width:460px;margin-inline:auto}
  .contatti .wrap{grid-template-columns:1fr}
}
@media (max-width:899px){
  body{font-size:16.5px}
  .topbar{display:none}
  /* tre porte: blocchi bassi, testo corto, foto sempre visibile */
  .porte{grid-template-columns:1fr}
  .porta{min-height:230px}
  .porta::before{background:linear-gradient(0deg,rgba(12,18,16,.94) 0%,rgba(12,18,16,.66) 46%,rgba(12,18,16,.1) 100%)}
  .porta p{display:none}
  .porta-in{padding:18px 20px}
  .azioni{display:grid;grid-template-columns:1fr;width:100%;max-width:400px;gap:10px}
  .azioni .btn{width:100%}
  .dati .wrap{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dati .wrap>div{padding-left:0;padding-right:clamp(14px,3vw,26px)}
  .dati .wrap>div:nth-child(odd){border-left:0;padding-left:0}
  .dati .wrap>div:nth-child(even){padding-left:clamp(14px,3vw,26px)}
  .dati .wrap>div:nth-child(n+3){border-top:1px solid var(--riga);padding-top:22px}
  .galleria{grid-template-columns:repeat(6,1fr)}
  .f-7{grid-column:span 6;aspect-ratio:4/3}
  .f-5{grid-column:span 3;aspect-ratio:3/4}
  .f-4{grid-column:span 3;aspect-ratio:1}
  .passi{grid-template-columns:1fr 1fr}
}
@media (max-width:639px){
  .indice{grid-template-columns:1fr;gap:30px}
  .galleria{grid-template-columns:repeat(2,1fr)}
  .f-7{grid-column:span 2;aspect-ratio:4/3}
  .f-5{grid-column:span 1;aspect-ratio:3/4}
  .f-4{grid-column:span 1;aspect-ratio:1}
  .passi{grid-template-columns:1fr}
  .tappe li{grid-template-columns:84px 1fr;gap:12px}
}
/* schermi molto stretti: 320px */
@media (max-width:389px){
  :root{--gutter:18px}
  .marchio img{height:36px}
  .marchio-nome{font-size:15px}
  .marchio-sotto{display:none}
  .burger{padding:11px 12px;gap:8px}
  .porta{min-height:210px}
  .barra-mobile a{font-size:12px;letter-spacing:.02em;gap:5px;padding:0 4px}
  .barra-mobile a:first-child::before{display:none}
  .az-riga{padding:14px 16px;gap:12px}
}
@media (max-width:339px){
  .barra-mobile a{font-size:11.5px}
  .burger span:not(.burger-righe):not(.burger-righe span){font-size:0}
}


/* leggibilità mobile: nessuna etichetta troppo piccola, pulsanti più generosi */
@media (max-width:899px){
  .kicker{font-size:12px;letter-spacing:.16em}
  .btn{font-size:14px;letter-spacing:.06em;min-height:54px}
  .porta-et{font-size:11.5px;letter-spacing:.14em}
  .dati h3,.zona h3,.indice-col h3,.piede h2,.az-riga .et,.storia figcaption{font-size:11.5px;letter-spacing:.14em}
  .hero-occhiello,.scheda-kicker,.intervento .luogo,.firma,.numeri-titolo{font-size:12px;letter-spacing:.16em}
  .marchio-sotto,.piede-marchio .marchio-sotto{font-size:9.5px;letter-spacing:.18em}
  .foto figcaption{font-size:11.5px;letter-spacing:.1em}
  .passo p,.dati p,.nota{font-size:14.5px}
  .indice-col li a,.indice-col li span{font-size:15px}
  .indice-col li em{font-size:11.5px}
  .tappe li{font-size:15px}
}

/* parole lunghe (composti tedeschi) */
.h1,.h2,.h3,h1,h2,h3{overflow-wrap:break-word}
html[lang="de"] .h1,html[lang="de"] .h2{hyphens:auto}

@media print{
  .testata,.menu,.barra-mobile,.hero-img{display:none!important}
  body{background:#fff;color:#000}
  .sez-scura,.hero,.piede{background:#fff!important;color:#000!important}
  .hero::before{display:none!important}
}

/* ==================================================================
   PAGINE INTERNE — contratto di classi del sito esistente.
   Nessuna modifica al markup delle 64 pagine di servizio: cambia solo
   il foglio di stile richiamato nella <head>.
   ================================================================== */

/* griglie */
.griglia{display:grid;gap:clamp(20px,2.6vw,34px)}
.g-200{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}
.g-240{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.g-250{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))}
.g-280{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.g-300{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.g-320{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
.g-330{grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr))}
.g-stretta{gap:clamp(12px,1.4vw,18px)}
.g-alto{align-items:start}
.g-larga{gap:clamp(34px,5vw,76px)}
.sez-bordo-sopra{border-top:1px solid var(--riga)}

/* intro di sezione */
.intro{max-width:38em;margin-bottom:clamp(30px,4vw,52px)}
.intro .h2{margin-bottom:16px}
.intro p:last-child{margin-bottom:0}
.intro-riga{display:flex;align-items:flex-end;justify-content:space-between;gap:26px;flex-wrap:wrap;
  margin-bottom:clamp(24px,3.2vw,40px);padding-bottom:18px;border-bottom:1px solid var(--riga)}
.sez-scura .intro-riga{border-bottom-color:rgba(255,255,255,.18)}
.intro-riga .h2,.intro-riga .h2-min{margin:0}
.intro-riga p{margin:0;max-width:32em;font-size:15px;line-height:1.65;color:var(--testo-2)}

/* hero delle pagine interne */
.hero-home{min-height:min(74vh,640px)}
.h1-int{font-family:var(--serif);font-size:clamp(30px,4.4vw,58px);font-weight:300;line-height:1.06;letter-spacing:-.016em;text-wrap:balance}
.h1-int em{font-style:italic;color:var(--sabbia)}
.hero-occhiello{display:flex;align-items:center;gap:13px;margin:0 0 20px;
  font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--sabbia)}
.hero-occhiello::before{content:"";width:34px;height:1px;background:var(--sabbia);flex:none}
.hero-sub{font-family:var(--sans);font-size:clamp(17px,1.7vw,21px);font-weight:600;line-height:1.32;margin:0 0 16px;color:rgba(255,255,255,.92)}
.hero-tel{margin:30px 0 0;font-size:15px;color:rgba(255,255,255,.76)}
.hero-tel a{color:#fff;font-weight:600;text-decoration:none;border-bottom:1px solid var(--sabbia);padding-bottom:2px}

/* briciole */
.briciole{position:relative;z-index:2;font-size:12.5px;letter-spacing:.03em;color:rgba(255,255,255,.66);margin:0 0 20px}
.briciole a{color:rgba(255,255,255,.66);text-decoration:none;padding:4px 0;display:inline-block}
.briciole a:hover{color:#fff}
.briciole span{color:rgba(255,255,255,.92)}

/* pulsanti mancanti */
.btn-chiaro{background:var(--bianco);color:var(--verde)}
.btn-chiaro:hover{background:var(--pietra);color:var(--verde)}
.btn-scuro{background:var(--verde);color:#fff}
.btn-scuro:hover{background:var(--verde-2);color:#fff}
.btn-tel{border-color:rgba(255,255,255,.5);color:#fff;background:rgba(255,255,255,.06);
  text-transform:none;letter-spacing:0;font-size:16.5px;font-weight:600;padding:15px 24px}
.btn-tel:hover{background:rgba(255,255,255,.16);border-color:#fff;color:#fff}
.freccia{transition:transform .25s ease}
.link-sotto:hover .freccia{transform:translateX(4px)}

/* schede */
.scheda{background:var(--bianco);border:1px solid var(--riga);display:flex;flex-direction:column;
  padding:clamp(24px,2.9vw,42px);position:relative;overflow:hidden;
  transition:box-shadow .28s ease,border-color .28s ease,transform .28s ease}
.scheda::before{content:"";position:absolute;left:0;top:0;height:2px;width:54px;background:var(--ottone);transition:width .4s cubic-bezier(.2,.7,.2,1)}
.scheda:hover{box-shadow:0 28px 56px -40px rgba(35,32,27,.45);border-color:var(--riga-forte);transform:translateY(-2px)}
.scheda:hover::before{width:100%}
.scheda-top{border-top:1px solid var(--riga)}
.scheda p{color:var(--testo-2)}
.scheda .h3{margin:0 0 14px}
.scheda-kicker{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ottone-testo);margin:0 0 14px}
.scheda-num{display:flex;align-items:center;gap:13px;margin-bottom:14px}
.scheda-num b{font-size:11.5px;font-weight:600;color:var(--verde);letter-spacing:.14em}
.scheda-num i{height:1px;background:var(--riga);flex:1}
.scheda .link-sotto,.scheda .btn{margin-top:auto;align-self:flex-start}

/* elenchi */
.elenco{margin:0 0 26px;display:flex;flex-direction:column;gap:10px}
.elenco-due{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:10px 24px}
.elenco li{display:flex;align-items:flex-start;gap:11px;font-size:15px;line-height:1.55;color:var(--testo-2)}
.elenco li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--ottone);margin-top:9px;flex:none}
.sez-scura .elenco li{color:rgba(255,255,255,.8)}
.sez-scura .elenco li::before{background:var(--sabbia)}

/* voci con filetto */
.voce-top{border-top:1px solid var(--riga);padding-top:18px}
.voce-top h3{font-size:17px;font-weight:600;line-height:1.3;margin:0 0 8px;letter-spacing:-.01em}
.voce-top p{font-size:15px;line-height:1.65;color:var(--testo-2);margin:0}
.voce-nera{border-top:2px solid var(--verde);padding-top:18px}
.voce-nera h3{font-size:18.5px;font-weight:600;line-height:1.3;margin:0 0 9px;letter-spacing:-.012em}
.voce-nera p{font-size:15px;line-height:1.7;color:var(--testo-2);margin:0}
.voce-nera h3 a{color:inherit;text-decoration:none;box-shadow:inset 0 -1px 0 var(--ottone)}
.voce-nera h3 a:hover{color:var(--ottone-testo);box-shadow:inset 0 -2px 0 var(--ottone-azione)}

/* domande frequenti */
.faq{border-top:1px solid var(--riga);padding-top:20px}
.faq h3{font-size:17.5px;font-weight:600;line-height:1.32;margin:0 0 10px;letter-spacing:-.012em}
.faq p{font-size:15px;line-height:1.7;color:var(--testo-2);margin:0}

/* interventi tipici */
.intervento{border-top:2px solid var(--verde);padding-top:20px}
.intervento .luogo{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ottone-testo);margin:0 0 11px}
.intervento h3{font-family:var(--serif);font-size:clamp(20px,2.2vw,26px);font-weight:400;line-height:1.16;margin:0 0 16px;letter-spacing:-.016em}
.intervento dl{margin:0;display:flex;flex-direction:column;gap:13px}
.intervento dt{font-size:10.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--testo-3)}
.intervento dd{margin:5px 0 0;font-size:15px;line-height:1.65;color:var(--testo-2)}

/* storia: tappe e riquadro */
.tappa{display:grid;grid-template-columns:clamp(84px,10vw,120px) 1fr;gap:20px;padding:22px 0;border-top:1px solid var(--riga)}
.tappa b{font-family:var(--serif);font-size:clamp(17px,2vw,22px);font-weight:400;color:var(--verde);letter-spacing:-.02em}
.tappa h3{font-size:17px;font-weight:600;margin:0 0 5px;letter-spacing:-.01em}
.tappa p{font-size:15px;line-height:1.65;color:var(--testo-2);margin:0}
.firma{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--testo-3);margin:0 0 30px}
.impegni{margin:0;display:flex;flex-direction:column;gap:14px}
.impegni li{display:flex;align-items:flex-start;gap:12px;font-size:15px;line-height:1.65;color:var(--testo-2);
  border-top:1px solid var(--riga);padding-top:14px}
.impegni li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--verde);margin-top:9px;flex:none}

/* marchi */
.marchi{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(50%,170px),1fr));gap:1px;background:var(--riga);border:1px solid var(--riga)}
.marchi div{background:var(--bianco);min-height:98px;display:grid;place-items:center;padding:18px 16px;text-align:center;
  font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--testo-2);transition:background-color .2s ease}
.marchi div:hover{background:var(--pietra)}
.marchi-cat{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:1px;background:var(--riga);border:1px solid var(--riga)}
.marchi-cat>div{background:var(--bianco);padding:20px 18px}
.marchi-cat h3{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;margin:0 0 9px}
.marchi-cat p{font-size:13.5px;line-height:1.6;color:var(--testo-3);margin:0}

/* fascia numeri (impaginazione storica delle home straniere) */
.numeri{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));
  background:var(--bianco);border:1px solid var(--riga);border-top:2px solid var(--ottone);position:relative;z-index:5}
.numeri>div{padding:26px clamp(18px,2.2vw,32px);border-left:1px solid var(--riga)}
.numeri>div:first-child{border-left:0}
.numeri-cifra{font-family:var(--serif);font-size:clamp(30px,3.2vw,40px);font-weight:400;color:var(--verde);line-height:1.05;letter-spacing:-.025em}
.numeri-titolo{margin-top:11px;font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ottone-testo)}
.numeri-testo{margin-top:7px;font-size:13.5px;color:var(--testo-2);line-height:1.55}

/* contatti */
.contatto-tel{display:inline-flex;align-items:center;background:var(--bianco);color:var(--verde);text-decoration:none;
  font-family:var(--serif);font-size:clamp(21px,2.5vw,29px);font-weight:400;letter-spacing:-.02em;
  padding:17px 30px;margin-bottom:26px;border-radius:4px;transition:background-color .2s ease,transform .18s ease}
.contatto-tel:hover{background:var(--pietra);color:var(--verde);transform:translateY(-2px)}
.contatto-dati{font-style:normal;font-size:15px;line-height:1.95;color:rgba(255,255,255,.78)}
.contatto-dati a{color:#fff}
.contatto-dati a:hover{color:var(--sabbia)}
.sezione:not(.sez-scura) .contatto-dati{color:var(--testo-2)}
.sezione:not(.sez-scura) .contatto-dati a{color:var(--verde)}
.sezione:not(.sez-scura) .contatto-dati a:hover{color:var(--ottone-testo)}

/* blocco email */
.modulo-box{background:var(--bianco);color:var(--testo);padding:clamp(24px,2.9vw,42px);border-top:3px solid var(--ottone)}
.modulo-titolo{font-family:var(--sans);font-size:clamp(20px,2.2vw,26px);font-weight:600;line-height:1.24;letter-spacing:-.015em;margin:0 0 13px}
.modulo-testo{font-size:15.5px;line-height:1.72;color:var(--testo-2);margin:0 0 24px}
.modulo-mail{font-size:14.5px;line-height:1.72;color:var(--testo-3);margin:18px 0 0;word-break:break-word}
.modulo-mail a{color:var(--verde)}
.modulo-oppure{font-size:15px;line-height:1.72;color:var(--testo-2);margin:22px 0 0;padding-top:20px;border-top:1px solid var(--riga)}
.modulo-oppure a{color:var(--verde);font-weight:600}
.modulo-mail a:hover,.modulo-oppure a:hover{color:var(--ottone-testo)}

/* pagine di solo testo (privacy, cookie) */
.testo{max-width:40em}
.testo h2{font-family:var(--serif);font-size:clamp(23px,2.6vw,30px);font-weight:400;margin:clamp(34px,4vw,50px) 0 12px;letter-spacing:-.016em}
.testo h3{font-size:17px;font-weight:600;margin:26px 0 9px}
.testo p,.testo li{font-size:16.5px;line-height:1.8;color:var(--testo-2)}
.testo ul{padding-left:20px;list-style:disc}
.testo li{margin-bottom:8px}
.testo strong{color:var(--testo)}
.testo a{color:var(--verde)}

/* galleria storica a 6 colonne (home straniere) */
.galleria .foto:not([class*="f-"]){grid-column:span 4}
.galleria .foto:not([class*="f-"]):first-child{grid-column:span 8;grid-row:span 2}

@media (max-width:899px){
  .intro-riga{display:block}
  .intro-riga p{margin-top:12px}
  .contatto-tel{width:100%;justify-content:center;font-size:22px;padding:18px 20px}
  .numeri{grid-template-columns:1fr}
  .numeri>div{border-left:0;border-top:1px solid var(--riga)}
  .numeri>div:first-child{border-top:0}
  .tappa{grid-template-columns:76px 1fr;gap:14px}
  .galleria .foto:not([class*="f-"]),
  .galleria .foto:not([class*="f-"]):first-child{grid-column:span 6;grid-row:auto;aspect-ratio:4/3}
}
@media (max-width:639px){
  .galleria .foto:not([class*="f-"]),
  .galleria .foto:not([class*="f-"]):first-child{grid-column:span 12}
}
