/* Brescia Chiusure — foglio di stile unico. Nessuna libreria, nessuna risorsa esterna. */

@font-face {
  font-family: "Archivo";
  src: url("/assets/fonts/archivo-variable.woff2") format("woff2");
  font-weight: 100 900;
  font-stretch: 62% 125%;
  font-style: normal;
  font-display: swap;
}

:root {
  --verde: #1e3b2f;        /* verde portone */
  --verde-fondo: #142820;
  --ambra: #f5b301;        /* lampeggiante */
  --ambra-scura: #c98f00;
  --carta: #f3f5f1;        /* intonaco chiaro */
  --bianco: #fff;
  --inchiostro: #16211b;
  --grigio: #4f5d55;
  --linea: #d3d9d1;
  --wa: #0f7a41;
  --errore: #a3231a;
  --largo: 76rem;
  --raggio: 3px;
  --font: "Archivo", "Helvetica Neue", Arial, system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 1rem; }
body {
  margin: 0;
  font-family: var(--font);
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--inchiostro);
  background: var(--carta);
  font-stretch: 100%;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--verde); text-underline-offset: .18em; text-decoration-thickness: .08em; }
a:hover { text-decoration-thickness: .16em; }
:focus-visible { outline: 3px solid var(--ambra); outline-offset: 2px; }
h1, h2, h3 { font-stretch: 112%; line-height: 1.1; letter-spacing: -.015em; margin: 0 0 .6em; text-wrap: balance; }
h1 { font-size: clamp(2rem, 1.2rem + 3.2vw, 3.35rem); font-weight: 800; line-height: 1.03; letter-spacing: -.025em; }
h2 { font-size: clamp(1.45rem, 1.1rem + 1.4vw, 2.05rem); font-weight: 760; }
h3 { font-size: 1.15rem; font-weight: 720; letter-spacing: -.005em; }
p, ul, ol, dl { margin: 0 0 1.1em; }
address { font-style: normal; }
.ico { flex: none; vertical-align: -.22em; }

.contenitore { width: min(100% - 2.5rem, var(--largo)); margin-inline: auto; }
.stretto { max-width: 46rem; }
.salta { position: absolute; left: -999rem; top: 0; background: var(--ambra); color: var(--inchiostro); padding: .6rem 1rem; z-index: 50; font-weight: 700; }
.salta:focus { left: .5rem; top: .5rem; }

/* ---------- Pulsanti ---------- */
.bottone {
  display: inline-flex; align-items: center; justify-content: center; gap: .55em;
  padding: .8em 1.25em; border: 2px solid transparent; border-radius: var(--raggio);
  font: inherit; font-weight: 750; font-stretch: 106%; line-height: 1.15; text-decoration: none; cursor: pointer;
  transition: background-color .15s, border-color .15s, color .15s;
}
.bottone--tel { background: var(--ambra); color: var(--inchiostro); font-variant-numeric: tabular-nums; }
.bottone--tel:hover { background: #ffc61f; }
.bottone--wa { background: var(--bianco); color: var(--wa); border-color: var(--wa); }
.bottone--wa:hover { background: var(--wa); color: var(--bianco); }
.bottone--linea { background: transparent; color: var(--verde); border-color: var(--verde); }
.bottone--linea:hover { background: var(--verde); color: var(--bianco); }
.bottone--scuro { background: var(--verde); color: var(--bianco); }
.bottone--scuro:hover { background: var(--verde-fondo); }
.bottone--chiaro { background: var(--bianco); color: var(--verde); }
.bottone--chiaro:hover { background: var(--ambra); color: var(--inchiostro); }
.bottone--pieno { display: flex; width: 100%; }
.azioni { display: flex; flex-wrap: wrap; gap: .7rem; margin: 1.6rem 0 0; }
.tel-inline { font-weight: 750; white-space: nowrap; }

/* ---------- Intestazione ---------- */
.barra-alta { background: var(--verde-fondo); color: #dfe7e1; font-size: .9rem; }
.barra-alta__in { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 2.4rem; }
.barra-alta p { margin: 0; }
.barra-alta a { color: var(--bianco); text-decoration: none; font-weight: 650; }
.barra-alta a:hover { text-decoration: underline; }
.barra-alta__contatti { display: flex; gap: 1.4rem; white-space: nowrap; }
.barra-alta__tel { font-variant-numeric: tabular-nums; }

.testata { background: var(--bianco); border-bottom: 1px solid var(--linea); position: relative; z-index: 20; }
.testata__in { display: flex; align-items: center; gap: 1.2rem; min-height: 5rem; }
.testata__logo { flex: none; display: block; }
.testata__logo img { width: auto; height: 3rem; }
.testata__tel { margin-left: auto; white-space: nowrap; }
.menu__stato { position: absolute; opacity: 0; width: 1px; height: 1px; }
.menu__apri { display: none; }
.menu { margin-left: auto; }
.menu + .testata__tel { margin-left: 0; }
.menu__lista { list-style: none; display: flex; gap: .15rem; margin: 0; padding: 0; }
.menu__voce { position: relative; }
.menu__link { display: block; padding: .7rem .7rem; font-weight: 680; font-stretch: 104%; font-size: .98rem; color: var(--inchiostro); text-decoration: none; border-bottom: 3px solid transparent; white-space: nowrap; }
.menu__link:hover, .menu__voce:focus-within > .menu__link, .menu__link[aria-current] { border-bottom-color: var(--ambra); }
.menu__sub { list-style: none; margin: 0; padding: .5rem 0; position: absolute; left: 0; top: 100%; min-width: 17rem; background: var(--bianco); border: 1px solid var(--linea); border-top: 3px solid var(--verde); box-shadow: 0 14px 28px -18px rgba(20, 40, 32, .55); visibility: hidden; opacity: 0; transition: opacity .12s, visibility .12s; }
.menu__voce--sub:hover > .menu__sub, .menu__voce--sub:focus-within > .menu__sub { visibility: visible; opacity: 1; }
.menu__sub a { display: block; padding: .5rem 1.1rem; color: var(--inchiostro); text-decoration: none; font-size: .98rem; }
.menu__sub a:hover, .menu__sub a[aria-current] { background: var(--carta); color: var(--verde); }

/* ---------- Pagina iniziale: eroe con portone ---------- */
.eroe { background: var(--bianco); padding: clamp(2rem, 5vw, 4.5rem) 0 0; overflow: hidden; }
.eroe__in { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: end; }
.eroe__testo { padding-bottom: clamp(2rem, 5vw, 4.5rem); }
.eroe__sotto { font-size: 1.2rem; line-height: 1.5; color: var(--grigio); max-width: 34rem; }
.eroe__numero { margin: 1.6rem 0 1.1rem; }
.eroe__numero a { display: inline-flex; align-items: center; gap: .35em; font-size: clamp(2.2rem, 1.2rem + 3.6vw, 3.6rem); font-weight: 850; font-stretch: 118%; letter-spacing: -.03em; line-height: 1; color: var(--verde); text-decoration: none; font-variant-numeric: tabular-nums; border-bottom: .14em solid var(--ambra); padding-bottom: .12em; }
.eroe__numero a:hover { color: var(--verde-fondo); border-bottom-color: var(--ambra-scura); }
.eroe__numero .ico { width: .7em; height: .7em; }
.eroe__azioni { display: flex; flex-wrap: wrap; gap: .7rem; margin: 0; }

/* Il portone: cornice ad arco come nel marchio; all'apertura della pagina le doghe salgono. */
.portone { position: relative; overflow: hidden; aspect-ratio: 1 / 1.02; border: .85rem solid var(--verde); border-bottom: 0; border-radius: 50% 50% 0 0 / 46% 46% 0 0; background: var(--verde); box-shadow: inset 0 -1rem 0 var(--ambra); }
.portone img { width: 100%; height: calc(100% - 1rem); object-fit: cover; object-position: 50% 60%; }
.portone::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1rem; background: var(--ambra); }
.portone__doga { position: absolute; left: 0; right: 0; height: 20.2%; background: var(--verde); border-bottom: 3px solid var(--bianco); animation: sali .95s cubic-bezier(.6, .05, .25, 1) .25s both; }
.portone__doga:nth-of-type(1) { top: 0; }
.portone__doga:nth-of-type(2) { top: 20%; animation-delay: .29s; }
.portone__doga:nth-of-type(3) { top: 40%; animation-delay: .33s; }
.portone__doga:nth-of-type(4) { top: 60%; animation-delay: .37s; }
.portone__doga:nth-of-type(5) { top: 80%; animation-delay: .41s; }
@keyframes sali { to { transform: translateY(-520%); } }

.fatti { background: var(--verde); color: #d9e2dc; }
.fatti__lista { list-style: none; padding: 0; margin-block: 0; display: grid; grid-template-columns: repeat(4, 1fr); }
.fatti__lista li { padding: 1.3rem 1.2rem 1.3rem 0; font-size: .97rem; line-height: 1.4; }
.fatti__lista li + li { padding-left: 1.2rem; border-left: 1px solid rgba(255, 255, 255, .22); }
.fatti__lista strong { display: block; color: var(--bianco); font-stretch: 108%; font-size: 1.05rem; margin-bottom: .15rem; }

/* ---------- Sezioni ---------- */
.sezione { padding: clamp(2.5rem, 6vw, 5rem) 0; }
.sezione--chiara { background: var(--bianco); }
.sezione--scura { background: var(--verde); color: #e6ece8; }
.sezione--scura h2 { color: var(--bianco); }
.sezione--scura a:not(.bottone) { color: var(--bianco); }
.sezione__intro { font-size: 1.15rem; max-width: 44rem; color: var(--grigio); }
.sezione--scura .sezione__intro { color: #cfdad3; }
.sezione-interna { padding: clamp(2rem, 5vw, 3.5rem) 0; }
.due-col { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 5vw, 4.5rem); }
.due-col--largo { align-items: start; }

/* ---------- Doghe: l'elenco dei servizi come i pannelli di un portone sezionale ---------- */
.doghe { background: var(--verde); padding: 4px; border-radius: var(--raggio); display: grid; gap: 4px; margin: 1.6rem 0 0; }
.doga { background: var(--bianco); display: grid; grid-template-columns: minmax(0, 20rem) minmax(0, 1fr); gap: 1rem 2.5rem; padding: 1.35rem 1.5rem; }
.doga:first-child { border-radius: 2px 2px 0 0; }
.doga:last-child { border-bottom: 6px solid var(--ambra); }
.doga__titolo { margin: 0 0 .3rem; font-size: 1.3rem; }
.doga__testo { margin: 0; color: var(--grigio); font-size: .97rem; line-height: 1.45; }
.doga__link { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; align-content: center; }
.doga__link a { display: inline-block; padding: .5rem .85rem; background: var(--carta); border: 1px solid var(--linea); border-radius: var(--raggio); color: var(--inchiostro); font-weight: 650; text-decoration: none; line-height: 1.25; }
.doga__link a:hover { background: var(--verde); border-color: var(--verde); color: var(--bianco); }
.doga__dove { font-weight: 400; color: var(--grigio); }
.doga__link a:hover .doga__dove { color: #cfdad3; }
.due-col .doga, .testo .doga, .sezione-interna .doga { grid-template-columns: 1fr; gap: .8rem; }
.sezione-interna .doga { grid-template-columns: minmax(0, 20rem) minmax(0, 1fr); gap: 1rem 2.5rem; }

/* ---------- Galleria ---------- */
.galleria { list-style: none; margin: 1.4rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr)); gap: .6rem; }
.galleria a { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--raggio); background: var(--linea); }
.galleria img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s; }
.galleria a:hover img { transform: scale(1.04); }

/* ---------- Fascia "chiama" ---------- */
.chiama { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.6rem; background: var(--verde); color: #e6ece8; padding: 1.4rem 1.6rem; border-radius: var(--raggio); border-bottom: 6px solid var(--ambra); margin: 2.2rem 0; }
.chiama__testo { flex: 1 1 16rem; }
.chiama p { margin: 0; }
.chiama__titolo { color: var(--bianco); font-weight: 780; font-stretch: 110%; font-size: 1.25rem; line-height: 1.2; margin-bottom: .25rem !important; }
.chiama__numero { display: inline-flex; align-items: center; gap: .35em; color: var(--ambra); font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.1rem); font-weight: 850; font-stretch: 116%; letter-spacing: -.02em; text-decoration: none; white-space: nowrap; font-variant-numeric: tabular-nums; }
.chiama__numero:hover { color: var(--bianco); }
.chiama .bottone--wa { background: transparent; color: var(--bianco); border-color: rgba(255, 255, 255, .6); }
.chiama .bottone--wa:hover { background: var(--bianco); color: var(--wa); }

/* ---------- Passi (sequenza reale: i numeri hanno senso) ---------- */
.passi { list-style: none; counter-reset: passo; padding: 0; margin: 1.6rem 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border-top: 4px solid var(--verde); }
.passi li { counter-increment: passo; padding: 1.3rem 1.4rem 0 0; }
.passi li + li { padding-left: 1.4rem; border-left: 1px solid var(--linea); }
.passi li::before { content: counter(passo); display: block; font-size: 2.4rem; font-weight: 850; font-stretch: 118%; line-height: 1; color: var(--ambra-scura); margin-bottom: .6rem; }
.passi h3 { margin-bottom: .35rem; }
.passi p { margin: 0; color: var(--grigio); font-size: .98rem; }

/* ---------- Aree (pagina iniziale) ---------- */
.aree { list-style: none; padding: 0; margin: 1.6rem 0 2rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 2.5rem; }
.aree li { padding: 1rem 0; border-top: 1px solid rgba(255, 255, 255, .25); }
.aree__nome { display: block; font-weight: 780; font-stretch: 110%; font-size: 1.15rem; text-decoration: none; margin-bottom: .2rem; }
.aree__nome:hover { color: var(--ambra); }
.aree__comuni { font-size: .95rem; color: #cfdad3; line-height: 1.5; }
.aree__comuni a { color: #e6ece8; text-decoration-color: rgba(255, 255, 255, .4); }

/* ---------- Pagine interne ---------- */
.briciole { font-size: .9rem; color: var(--grigio); padding: 1.1rem 0 0; }
.briciole ol { list-style: none; display: flex; flex-wrap: wrap; gap: .1rem .5rem; margin: 0; padding: 0; }
.briciole li + li::before { content: "/"; margin-right: .5rem; color: #98a39c; }
.briciole a { color: var(--grigio); }

.testa { padding: clamp(1.2rem, 3vw, 2.2rem) 0 clamp(2rem, 4vw, 3rem); }
.testa__in { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.testa--solo .testa__in { grid-template-columns: minmax(0, 48rem); }
.testa__gruppo { margin: 0 0 .5rem; font-weight: 700; font-stretch: 106%; color: var(--ambra-scura); }
.testa__sotto { font-size: 1.17rem; line-height: 1.55; color: #33413a; max-width: 46rem; }
.testa__sotto p:last-child { margin-bottom: 0; }
.testa__foto { margin: 0; border-bottom: 8px solid var(--ambra); border-radius: var(--raggio) var(--raggio) 0 0; overflow: hidden; background: var(--linea); }
.testa__foto img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.titolo-pagina { padding: clamp(1.2rem, 3vw, 2.2rem) 0 clamp(1.5rem, 3vw, 2.5rem); max-width: 54rem; }

.corpo { display: grid; grid-template-columns: minmax(0, 1fr) 19rem; gap: clamp(2rem, 5vw, 4rem); align-items: start; padding-bottom: clamp(2.5rem, 6vw, 4.5rem); }
.testo > section { margin-bottom: 2.4rem; }
.testo section > p, .testo section > ul:not(.galleria):not(.comuni):not(.focus), .legale p, .legale ul { max-width: 44rem; }
.testo h2 { margin-top: 0; padding-top: 1.1rem; border-top: 4px solid var(--verde); }
.testo h3 { margin-top: 1.4em; }
.testo ul:not([class]) { padding-left: 1.2rem; }
.testo li { margin-bottom: .45em; }
.inbreve { background: var(--bianco); border: 1px solid var(--linea); border-left: 6px solid var(--ambra); padding: 1.3rem 1.5rem .6rem; border-radius: var(--raggio); }
.inbreve h2 { border: 0; padding: 0; font-size: 1.25rem; }
.inbreve ul { list-style: none; padding: 0; }
.inbreve li { display: flex; gap: .65rem; align-items: flex-start; }
.inbreve .ico { color: var(--wa); margin-top: .22em; }

.fianco { position: sticky; top: 1rem; display: grid; gap: 1.2rem; }
.fianco__scheda { background: var(--verde); color: #e6ece8; padding: 1.4rem; border-radius: var(--raggio); border-bottom: 6px solid var(--ambra); }
.fianco__scheda p { margin: 0 0 .8rem; font-size: .97rem; }
.fianco__scheda p:last-child { margin-bottom: 0; }
.fianco__titolo { font-weight: 780; font-stretch: 110%; font-size: 1.12rem; line-height: 1.2; }
.fianco__scheda .fianco__titolo { color: var(--bianco); }
.fianco__tel a { display: inline-flex; align-items: center; gap: .35em; color: var(--ambra); font-size: 1.75rem; font-weight: 850; font-stretch: 116%; letter-spacing: -.02em; text-decoration: none; white-space: nowrap; font-variant-numeric: tabular-nums; }
.fianco__scheda .bottone--linea { color: var(--bianco); border-color: rgba(255, 255, 255, .6); }
.fianco__scheda .bottone--linea:hover { background: var(--bianco); color: var(--verde); }
.fianco__lista { background: var(--bianco); border: 1px solid var(--linea); border-radius: var(--raggio); padding: 1.2rem 1.4rem; }
.fianco__lista p { margin: 0 0 .6rem; }
.fianco__lista ul { list-style: none; margin: 0; padding: 0; }
.fianco__lista li { border-top: 1px solid var(--linea); }
.fianco__lista a { display: block; padding: .5rem 0; text-decoration: none; font-weight: 600; font-size: .98rem; }
.fianco__lista a:hover { text-decoration: underline; }

/* ---------- FAQ ---------- */
.faq { margin: 2.4rem 0; }
.faq h2 { padding-top: 1.1rem; border-top: 4px solid var(--verde); }
.faq__voce { border-bottom: 1px solid var(--linea); }
.faq__voce summary { cursor: pointer; padding: .95rem 2.2rem .95rem 0; font-weight: 700; font-stretch: 104%; position: relative; list-style: none; }
.faq__voce summary::-webkit-details-marker { display: none; }
.faq__voce summary::after { content: "+"; position: absolute; right: .2rem; top: .62rem; font-size: 1.5rem; font-weight: 500; color: var(--ambra-scura); line-height: 1.3; }
.faq__voce[open] summary::after { content: "\2212"; }
.faq__risposta { padding: 0 2rem 1rem 0; max-width: 44rem; }
.faq__risposta p { margin: 0; }

/* ---------- Recensioni Google ---------- */
.stelle { display: inline-flex; gap: 1px; color: var(--ambra); vertical-align: -.18em; }
.voto { margin: 1rem 0 0; font-size: .98rem; }
.voto a { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .1rem .5rem; color: var(--inchiostro); text-decoration: none; }
.voto a:hover span:last-child { text-decoration: underline; }
.voto strong { font-stretch: 108%; }
.voto span:last-child { color: var(--grigio); }
.voto--scuro a, .voto--scuro span:last-child { color: #e9efeb; }
.eroe .voto { margin: 0 0 1.1rem; }
.recensioni { margin: 2.4rem 0; }
.sezione > .contenitore > .recensioni { margin: 0; }
.recensioni__capo { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem 2rem; padding-top: 1.1rem; border-top: 4px solid var(--verde); margin-bottom: 1.4rem; }
.recensioni__capo h2 { margin: 0; padding: 0; border: 0; }
.recensioni__voto { display: flex; align-items: center; gap: .8rem; margin: 0; font-size: .95rem; line-height: 1.35; color: var(--grigio); }
.recensioni__voto small { font-size: .85rem; }
.recensioni__numero { font-size: 3.2rem; font-weight: 850; font-stretch: 118%; letter-spacing: -.03em; line-height: 1; color: var(--verde); font-variant-numeric: tabular-nums; }
.recensioni__lista { list-style: none; margin: 0 0 1.6rem; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(19.5rem, 1fr)); gap: 1rem; }
.recensioni__lista li { background: var(--carta); border-left: 6px solid var(--ambra); border-radius: var(--raggio); padding: 1.2rem 1.3rem 1rem; margin: 0; display: flex; flex-direction: column; justify-content: space-between; gap: .9rem; }
.testo .recensioni__lista li, .p-home .sezione:not(.sezione--chiara) .recensioni__lista li { background: var(--bianco); }
.recensioni blockquote { margin: 0; }
.recensioni blockquote p { margin: 0; max-width: none; font-size: 1.02rem; line-height: 1.5; }
.recensioni__chi { margin: 0; font-size: .88rem; color: var(--grigio); }

/* ---------- Zone ---------- */
.indice-aree ul { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem; padding: 0; margin: 0 0 2rem; }
.indice-aree a { display: inline-block; padding: .45rem .8rem; background: var(--bianco); border: 1px solid var(--linea); border-radius: var(--raggio); text-decoration: none; font-weight: 650; }
.indice-aree a:hover { background: var(--verde); color: var(--bianco); border-color: var(--verde); }
.area-blocco { padding: 1.6rem 0 1rem; border-top: 4px solid var(--verde); scroll-margin-top: 1rem; }
.area-blocco h2 a { text-decoration: none; }
.area-blocco h2 a:hover { text-decoration: underline; }
.area-blocco > p { max-width: 50rem; }
.comuni { list-style: none; padding: 0; margin: 1rem 0 1.4rem; columns: 5 10rem; column-gap: 1.6rem; font-size: .98rem; }
.comuni li { break-inside: avoid; padding: .16rem 0; margin: 0; color: var(--grigio); }
.comuni a { font-weight: 680; }
.focus { padding-left: 1.2rem; }
.focus a { font-weight: 700; }
.scheda-comune { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: 0; background: var(--bianco); border: 1px solid var(--linea); border-bottom: 6px solid var(--ambra); border-radius: var(--raggio); margin-bottom: 2.4rem; }
.scheda-comune div { padding: 1rem 1.2rem; }
.scheda-comune div + div { border-left: 1px solid var(--linea); }
.scheda-comune dt { font-size: .88rem; color: var(--grigio); }
.scheda-comune dd { margin: 0; font-weight: 720; font-stretch: 106%; }

/* ---------- Contatti e modulo ---------- */
.contatti { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(2rem, 5vw, 4rem); padding-bottom: 2rem; align-items: start; }
.contatti__canali { display: grid; gap: .8rem; }
.canale { display: grid; grid-template-columns: auto 1fr; gap: .1rem .9rem; align-items: center; padding: 1.1rem 1.3rem; background: var(--bianco); border: 1px solid var(--linea); border-radius: var(--raggio); text-decoration: none; color: var(--inchiostro); }
.canale .ico { grid-row: span 2; width: 1.9rem; height: 1.9rem; color: var(--verde); }
.canale__nome { font-size: .88rem; color: var(--grigio); }
.canale__valore { grid-column: 2; font-weight: 750; font-stretch: 108%; }
.canale--tel { background: var(--ambra); border-color: var(--ambra); }
.canale--tel .canale__nome { color: #4a3a05; }
.canale--tel .canale__valore { font-size: 1.9rem; font-weight: 850; font-stretch: 118%; letter-spacing: -.02em; line-height: 1.1; font-variant-numeric: tabular-nums; }
.canale--wa .ico { color: var(--wa); }
.canale--sede a { grid-column: 2; font-size: .95rem; }
a.canale:hover { border-color: var(--verde); }
.dati { font-size: .95rem; color: var(--grigio); line-height: 1.6; }
.dati strong { color: var(--inchiostro); }

.modulo { display: grid; gap: 1rem; margin-top: 1.2rem; }
.modulo p { margin: 0; }
.modulo__riga { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.modulo label { display: block; font-weight: 680; font-size: .95rem; margin-bottom: .3rem; }
.modulo__opz { font-weight: 400; color: var(--grigio); }
.modulo input[type="text"], .modulo input[type="tel"], .modulo input[type="email"], .modulo select, .modulo textarea {
  width: 100%; font: inherit; color: var(--inchiostro); background: var(--bianco); border: 1.5px solid #9aa69f; border-radius: var(--raggio); padding: .7rem .8rem; min-height: 3rem;
}
.modulo textarea { resize: vertical; min-height: 7.5rem; }
.modulo input:focus, .modulo select:focus, .modulo textarea:focus { outline: 3px solid var(--ambra); outline-offset: 0; border-color: var(--verde); }
.modulo [aria-invalid="true"] { border-color: var(--errore); border-width: 2px; }
.modulo__errore { color: var(--errore); font-size: .92rem; font-weight: 600; margin-top: .3rem !important; }
.modulo__avviso { background: #fbe9e7; border-left: 5px solid var(--errore); padding: .8rem 1rem; font-weight: 600; }
.modulo__trappola { position: absolute !important; left: -999rem; width: 1px; height: 1px; overflow: hidden; }
.modulo__privacy { display: grid; grid-template-columns: auto 1fr; gap: .7rem; align-items: start; font-size: .93rem; }
.modulo__privacy input { width: 1.25rem; height: 1.25rem; margin: .15rem 0 0; accent-color: var(--verde); }
.modulo__privacy label { font-weight: 400; margin: 0; }
.modulo__invio { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.4rem; font-size: .95rem; color: var(--grigio); }
.messaggio { padding: clamp(2.5rem, 7vw, 5rem) 0 2rem; }
.legale { padding-bottom: 4rem; }
.legale h1 { margin-top: 1.5rem; }
.legale h2 { margin-top: 2em; font-size: 1.4rem; }
.legale h3 { margin-top: 1.5em; }

/* ---------- Piè di pagina ---------- */
.piede { background: var(--verde-fondo); color: #c9d5cd; padding: clamp(2.5rem, 5vw, 4rem) 0 2rem; font-size: .96rem; }
.piede a { color: #e9efeb; text-decoration: none; }
.piede a:hover { color: var(--ambra); text-decoration: underline; }
.piede__alto { display: grid; grid-template-columns: 1.5fr repeat(5, minmax(0, 1fr)); gap: 2rem 1.6rem; }
.piede__marca img { height: 3rem; width: auto; margin-bottom: 1rem; }
.piede__tel a { font-size: 1.8rem; font-weight: 850; font-stretch: 118%; letter-spacing: -.02em; color: var(--ambra); font-variant-numeric: tabular-nums; }
.piede .bottone--wa { background: transparent; color: var(--bianco); border-color: rgba(255, 255, 255, .5); }
.piede .bottone--wa:hover { background: var(--bianco); color: var(--wa); text-decoration: none; }
.piede__titolo { color: var(--bianco); font-weight: 760; font-stretch: 108%; margin: 0 0 .6rem; }
.piede__col ul, .piede__zone ul, .piede__legali { list-style: none; margin: 0; padding: 0; }
.piede__col li { padding: .22rem 0; line-height: 1.35; }
.piede__zone { margin-top: 2.2rem; padding-top: 1.4rem; border-top: 1px solid rgba(255, 255, 255, .18); }
.piede__zone ul { display: flex; flex-wrap: wrap; gap: .3rem 1.4rem; }
.piede__basso { margin-top: 1.8rem; padding-top: 1.4rem; border-top: 1px solid rgba(255, 255, 255, .18); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem 2rem; font-size: .9rem; line-height: 1.55; }
.piede__basso strong { color: var(--bianco); }
.piede__legali { display: flex; flex-wrap: wrap; gap: .3rem 1.4rem; align-content: flex-start; }

.barra-mobile { display: none; }

/* ---------- Schermi medi e piccoli ---------- */
@media (max-width: 82rem) {
  .testata__tel-etichetta { display: none; }
  .menu__link { padding-inline: .55rem; }
}

@media (max-width: 66rem) {
  .menu__apri { display: inline-flex; align-items: center; gap: .45rem; margin-left: auto; padding: .65rem .9rem; border: 2px solid var(--verde); border-radius: var(--raggio); font-weight: 750; cursor: pointer; color: var(--verde); }
  .menu__stato:focus-visible + .menu__apri { outline: 3px solid var(--ambra); outline-offset: 2px; }
  .menu { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--bianco); border-top: 1px solid var(--linea); border-bottom: 4px solid var(--verde); box-shadow: 0 24px 30px -22px rgba(20, 40, 32, .6); max-height: calc(100vh - 8rem); overflow: auto; margin: 0; }
  .menu__stato:checked ~ .menu { display: block; }
  .menu__lista { flex-direction: column; gap: 0; width: min(100% - 2.5rem, var(--largo)); margin-inline: auto; padding: .6rem 0 1.2rem; }
  .menu__voce { border-bottom: 1px solid var(--linea); }
  .menu__link { padding: .8rem 0 .5rem; font-size: 1.08rem; border: 0; }
  .menu__sub { position: static; visibility: visible; opacity: 1; border: 0; box-shadow: none; padding: 0 0 .7rem; min-width: 0; columns: 2 12rem; }
  .menu__sub a { padding: .4rem 0; color: var(--grigio); }
  .testata__tel { margin-left: 0; }
  .piede__alto { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .piede__marca { grid-column: 1 / -1; max-width: 34rem; }
  .corpo { grid-template-columns: minmax(0, 1fr) 16.5rem; gap: 2rem; }
}

@media (max-width: 56rem) {
  .barra-alta__dove { display: none; }
  .barra-alta__in { justify-content: flex-end; }
  .eroe__in, .testa__in, .due-col, .contatti, .corpo { grid-template-columns: minmax(0, 1fr); }
  .eroe__testo { padding-bottom: 0; }
  .eroe__foto { max-width: 30rem; margin-inline: auto; width: 100%; }
  .fatti__lista { grid-template-columns: repeat(2, 1fr); }
  .fatti__lista li, .fatti__lista li + li { padding: 1rem .9rem 1rem 0; border-left: 0; border-top: 1px solid rgba(255, 255, 255, .2); }
  .fatti__lista li:nth-child(-n+2) { border-top: 0; }
  .doga, .sezione-interna .doga { grid-template-columns: 1fr; gap: .8rem; padding: 1.2rem; }
  .passi { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .passi li, .passi li + li { padding: 1.2rem 1rem 1.2rem 0; border-left: 0; border-bottom: 1px solid var(--linea); }
  .aree { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fianco { position: static; }
  .fianco__scheda { display: none; }   /* su mobile c'è la barra fissa in basso */
  .scheda-comune div + div { border-left: 0; border-top: 1px solid var(--linea); }
  .testata__tel-etichetta { display: none; }

  body { padding-bottom: 3.6rem; }
  .barra-mobile { display: grid; grid-template-columns: 1.15fr 1fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; box-shadow: 0 -6px 18px -10px rgba(0, 0, 0, .5); }
  .barra-mobile a { display: flex; align-items: center; justify-content: center; gap: .5rem; min-height: 3.6rem; font-weight: 800; font-stretch: 108%; font-size: 1.08rem; text-decoration: none; }
  .barra-mobile__tel { background: var(--ambra); color: var(--inchiostro); }
  .barra-mobile__wa { background: var(--wa); color: var(--bianco); }
}

@media (max-width: 36rem) {
  body { font-size: 1rem; }
  .contenitore { width: min(100% - 2rem, var(--largo)); }
  .testata__in { min-height: 4.2rem; gap: .6rem; }
  .testata__logo img { height: 2.5rem; }
  .testata__tel { display: none; }
  .barra-alta { font-size: .85rem; }
  .aree, .passi, .modulo__riga { grid-template-columns: 1fr; }
  .piede__alto { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .chiama { padding: 1.2rem; }
  .galleria { grid-template-columns: repeat(2, 1fr); }
  .comuni { columns: 2; }
  .eroe__sotto, .testa__sotto { font-size: 1.08rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .portone__doga { animation: none; display: none; }
  .galleria img, .bottone { transition: none; }
}

@media print {
  .barra-alta, .menu, .menu__apri, .barra-mobile, .fianco, .modulo, .piede__alto, .piede__zone { display: none !important; }
  body { background: #fff; padding: 0; }
}
