/* L'Automobile s.r.l. — foglio di stile del sito pubblico
   Mobile first. Colori e misure nei token su :root. */

/* ---------- Font (ospitati in locale, licenza SIL OFL) ---------- */
@font-face {
  font-family: "Archivo";
  src: url("../fonts/archivo-latin-var.woff2") format("woff2");
  font-weight: 600 900;
  font-stretch: 62% 125%;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Atkinson Hyperlegible Next";
  src: url("../fonts/atkinson-next-latin-var.woff2") format("woff2");
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Atkinson Hyperlegible Next";
  src: url("../fonts/atkinson-next-latin-italic.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

/* ---------- Token ---------- */
:root {
  --rosso: #EE1C25;
  --rosso-azione: #D9161F;
  --rosso-scuro: #B01219;
  --nero: #16161A;
  --grafite: #26262B;
  --grigio: #5C5C62;
  --grigio-chiaro: #B9B9C0;
  --bordo-campo: #7C7C84;
  --linea: #E3E0DA;
  --carta: #F5F3EF;
  --bianco: #FFFFFF;
  --verde: #0F7A4B;
  --verde-scuro: #0B5E39;
  --giallo-avviso: #FFF3B0;

  --f-display: "Archivo", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
  --f-testo: "Atkinson Hyperlegible Next", "Segoe UI", Roboto, Arial, sans-serif;

  --r: 4px;
  --larghezza: 1200px;
  --gutter: 16px;
  --barra-h: 72px;
}
@media (min-width: 768px) { :root { --gutter: 32px; } }

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: 16px; }
body {
  margin: 0;
  background: var(--bianco);
  color: var(--nero);
  font: 400 1.125rem/1.6 var(--f-testo);
  padding-bottom: calc(var(--barra-h) + env(safe-area-inset-bottom));
}
@media (min-width: 1000px) { body { padding-bottom: 0; } }
img, svg, video { display: block; max-width: 100%; height: auto; }
a { color: var(--rosso-azione); text-underline-offset: 3px; }
a:hover { color: var(--rosso-scuro); }
h1, h2, h3, h4 { margin: 0 0 .5em; line-height: 1.15; }
p, ul, ol, dl { margin: 0 0 1em; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--nero); outline-offset: 3px; }
.sezione--scura :focus-visible, .piede :focus-visible { outline-color: var(--bianco); }
[hidden] { display: none !important; }
.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }

.visivamente-nascosto {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.salta {
  position: absolute; left: 8px; top: -60px; z-index: 100; background: var(--nero); color: var(--bianco);
  padding: 10px 16px; border-radius: var(--r); font-weight: 700; text-decoration: none;
}
.salta:focus { top: 8px; color: var(--bianco); }

.contenitore { width: 100%; max-width: var(--larghezza); margin: 0 auto; padding: 0 var(--gutter); }
.stretto { max-width: 760px; }

/* Testi da completare (visibili solo finché non arrivano i contenuti definitivi) */
.segnaposto { background: var(--giallo-avviso); outline: 1px dashed #9A7400; padding: 0 .25em; }

/* ---------- Tipografia ---------- */
.display, h1, .h2 {
  font-family: var(--f-display);
  font-stretch: 75%;
  font-weight: 800;
  text-transform: uppercase;
  line-height: .98;
  letter-spacing: -.005em;
}
h1 { font-size: clamp(2.3rem, 7.5vw, 4.4rem); }
h1 em, h2 em, .h2 em { font-style: normal; color: var(--rosso); }
h2, .h2 { font-size: clamp(1.7rem, 4.6vw, 2.6rem); }
h2 { font-family: var(--f-display); font-stretch: 75%; font-weight: 800; text-transform: uppercase; line-height: 1; }
h3 { font-family: var(--f-display); font-stretch: 85%; font-weight: 800; font-size: 1.4rem; }
.occhiello { font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--grigio); margin: 0 0 12px; }
.sottotitolo { font-size: 1.2rem; color: var(--grigio); max-width: 40ch; }
.nota { font-size: .95rem; color: var(--grigio); }
.piccolo { font-size: .875rem; }
.num { font-variant-numeric: tabular-nums; }

/* ---------- Pulsanti ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 48px; padding: 0 20px; border-radius: var(--r); border: 2px solid transparent;
  font: 700 1rem/1.1 var(--f-testo); text-decoration: none; text-align: center; cursor: pointer;
  transition: background-color .15s, color .15s, border-color .15s;
}
.btn svg { width: 20px; height: 20px; flex: none; }
.btn--primario { background: var(--rosso-azione); color: var(--bianco); }
.btn--primario:hover { background: var(--rosso-scuro); color: var(--bianco); }
.btn--secondario { background: var(--bianco); color: var(--nero); border-color: var(--nero); }
.btn--secondario:hover { background: var(--nero); color: var(--bianco); }
.btn--wa { background: var(--verde); color: var(--bianco); }
.btn--wa:hover { background: var(--verde-scuro); color: var(--bianco); }
.btn--chiaro { background: var(--bianco); color: var(--nero); }
.btn--chiaro:hover { background: var(--carta); color: var(--nero); }
.btn--largo { width: 100%; }
.btn[disabled] { opacity: .6; cursor: progress; }
.link-forte { font-weight: 700; color: var(--rosso-azione); }
.pulsanti { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---------- Avviso temporaneo ---------- */
.avviso-sito { background: var(--nero); color: var(--bianco); text-align: center; padding: 10px var(--gutter); font-weight: 700; }

/* ---------- Testata ---------- */
.testata { background: var(--bianco); border-bottom: 2px solid var(--nero); position: relative; z-index: 40; }
.testata__riga { display: flex; align-items: center; gap: 16px; min-height: 68px; }
.testata__logo { display: block; flex: none; }
.testata__logo img { width: 150px; }
@media (min-width: 1000px) { .testata__riga { min-height: 80px; } .testata__logo img { width: 180px; } }

.menu-apri {
  margin-left: auto; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px;
  background: var(--bianco); border: 2px solid var(--nero); border-radius: var(--r); font-weight: 700; cursor: pointer;
}
.menu-apri svg { width: 22px; height: 22px; }
.no-js .menu-apri { display: none; }

.nav-principale ul { list-style: none; margin: 0; padding: 0; }
.nav-principale a { color: var(--nero); text-decoration: none; font-weight: 700; }
.nav-principale a[aria-current="page"] { box-shadow: inset 0 -3px 0 var(--rosso); }
.js .nav-principale { display: none; }
.js .nav-principale.aperto {
  display: block; position: absolute; left: 0; right: 0; top: 100%;
  background: var(--bianco); border-bottom: 2px solid var(--nero); box-shadow: 0 12px 24px rgba(0,0,0,.12);
}
.nav-principale.aperto ul { padding: 8px var(--gutter) 16px; }
.nav-principale.aperto a { display: block; padding: 14px 0; font-size: 1.2rem; border-bottom: 1px solid var(--linea); }
.no-js .nav-principale { width: 100%; order: 3; }
.no-js .testata__riga { flex-wrap: wrap; padding-bottom: 8px; }
.no-js .nav-principale ul { display: flex; flex-wrap: wrap; gap: 4px 16px; }
.testata__azioni { display: none; gap: 10px; }

@media (min-width: 1000px) {
  .menu-apri { display: none; }
  .js .nav-principale, .no-js .nav-principale { display: block; position: static; box-shadow: none; border: 0; margin-left: auto; width: auto; order: 0; }
  .nav-principale ul { display: flex; gap: 22px; }
  .nav-principale a { padding: 8px 0; font-size: 1rem; }
  .testata__azioni { display: flex; }
}

/* ---------- Barra azioni fissa (telefono) ---------- */
.barra-azioni {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
  display: grid; grid-template-columns: 1fr 1fr 1.25fr; gap: 6px;
  padding: 8px 8px calc(8px + env(safe-area-inset-bottom));
  background: var(--bianco); border-top: 2px solid var(--nero);
}
.barra-azioni .btn { flex-direction: column; gap: 2px; min-height: 54px; padding: 0 6px; font-size: .88rem; }
@media (min-width: 1000px) { .barra-azioni { display: none; } }

/* ---------- Sezioni ---------- */
.sezione { padding: 48px 0; }
@media (min-width: 768px) { .sezione { padding: 72px 0; } }
.sezione--carta { background: var(--carta); }
.sezione--scura { background: var(--nero); color: var(--bianco); }
.sezione--scura .nota, .sezione--scura .sottotitolo { color: var(--grigio-chiaro); }
.sezione__testa { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 24px; margin-bottom: 28px; }
.sezione__testa h2 { margin: 0; }

.briciole { font-size: .9rem; padding-top: 16px; }
.briciole ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px; }
.briciole li:not(:last-child)::after { content: "›"; margin-left: 6px; color: var(--grigio); }
.briciole a { color: var(--nero); }
.briciole [aria-current] { color: var(--grigio); }

.intestazione-pagina { padding: 24px 0 32px; border-bottom: 1px solid var(--linea); }
.intestazione-pagina h1 { margin-bottom: 12px; }

/* ---------- Apertura home ---------- */
.apertura { padding: 32px 0 48px; }
.apertura__griglia { display: grid; gap: 32px; }
@media (min-width: 1000px) { .apertura { padding: 48px 0 72px; } .apertura__griglia { grid-template-columns: 1.1fr .9fr; align-items: center; gap: 56px; } }
.apertura h1 { margin-bottom: 8px; }
.apertura__luogo { display: block; font-family: var(--f-testo); font-size: clamp(1.1rem, 2.6vw, 1.35rem); font-weight: 700; text-transform: none; letter-spacing: 0; color: var(--nero); margin-top: 10px; line-height: 1.3; }
.apertura .sottotitolo { margin: 16px 0 24px; }

.ricerca-rapida { border: 2px solid var(--nero); border-radius: var(--r); padding: 16px; display: grid; gap: 14px; background: var(--bianco); }
.ricerca-rapida__campi { display: grid; gap: 12px; grid-template-columns: 1fr 1fr; }
.ricerca-rapida legend { padding: 0; margin-bottom: 8px; font-weight: 700; font-size: .95rem; }
.ricerca-rapida fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }

/* ---------- Chip (scelte rapide) ---------- */
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { position: relative; }
.chip input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.chip span {
  display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px;
  border: 2px solid var(--nero); border-radius: 999px; font-weight: 700; font-size: .95rem; background: var(--bianco);
}
.chip input:checked + span { background: var(--nero); color: var(--bianco); }
.chip input:focus-visible + span { outline: 3px solid var(--rosso-azione); outline-offset: 2px; }

/* ---------- Moduli ---------- */
.campo { display: grid; gap: 6px; min-width: 0; align-content: start; }
.campo > label, .campo > .etichetta { font-weight: 700; font-size: .95rem; }
.campo .aiuto { font-size: .875rem; color: var(--grigio); }
.facoltativo { font-weight: 400; color: var(--grigio); }
input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="month"], select, textarea {
  width: 100%; min-height: 48px; padding: 10px 12px; background: var(--bianco);
  border: 1px solid var(--bordo-campo); border-radius: var(--r); font-size: 1rem;
}
textarea { min-height: 120px; resize: vertical; line-height: 1.5; }
select { appearance: none; padding-right: 40px; cursor: pointer;
  background-image: linear-gradient(45deg, transparent 50%, var(--nero) 50%), linear-gradient(135deg, var(--nero) 50%, transparent 50%);
  background-position: right 18px top 50%, right 12px top 50%; background-size: 6px 6px; background-repeat: no-repeat; }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid var(--nero); outline-offset: 1px; border-color: var(--nero); }
input[type="range"] { width: 100%; accent-color: var(--rosso-azione); min-height: 36px; }
.spunta { display: flex; gap: 10px; align-items: flex-start; font-size: .95rem; }
.spunta input { width: 22px; height: 22px; flex: none; margin-top: 2px; accent-color: var(--rosso-azione); }
.modulo { display: grid; gap: 16px; }
.modulo__riga { display: grid; gap: 16px; }
.modulo fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.legenda-modulo { font: 800 1.4rem/1.1 var(--f-display); font-stretch: 85%; text-transform: uppercase; padding: 0; margin-bottom: 4px; }
@media (min-width: 640px) { .modulo__riga--2 { grid-template-columns: 1fr 1fr; } .modulo__riga--3 { grid-template-columns: 1fr 1fr 1fr; } }
.modulo__esito { padding: 14px 16px; border-radius: var(--r); font-weight: 700; }
.modulo__esito--ok { background: #E6F4EC; color: var(--verde-scuro); border: 2px solid var(--verde); }
.modulo__esito--errore { background: #FDECEC; color: var(--rosso-scuro); border: 2px solid var(--rosso-azione); }
.trappola { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.riquadro-modulo { background: var(--bianco); border: 2px solid var(--nero); border-radius: var(--r); padding: 20px; }
@media (min-width: 768px) { .riquadro-modulo { padding: 32px; } }

/* ---------- Etichette (angolo tagliato, richiamo alla L del logo) ---------- */
/* Forma ritagliata (clip-path) con un solo angolo tagliato a 45°: sugli schermi normali un lato
   a 45° resta liscio, mentre un lato quasi verticale si vede "a scaletta". Altezza fissa 24px. */
.etichetta-auto {
  position: relative; isolation: isolate;
  display: inline-flex; align-items: center; height: 24px; padding: 0 12px 0 14px;
  clip-path: polygon(9px 0, 100% 0, 100% 100%, 0 100%, 0 9px);
  font: 800 .85rem/1 var(--f-display); font-stretch: 85%; letter-spacing: .06em; text-transform: uppercase;
}
.etichetta-auto--nuova { background: var(--nero); color: var(--bianco); }
.etichetta-auto--km0 { background: var(--rosso); color: var(--bianco); font-size: .95rem; }
.etichetta-auto--riservata { background: #FFD24A; color: var(--nero); }
.etichetta-auto--venduta { background: var(--grigio); color: var(--bianco); }
/* Etichette con bordo: la forma esterna ha il colore del bordo, sopra c'è la stessa forma più piccola.
   Taglio interno 7,83px = 9 + 2×√2 − 4: così il bordo è largo 2px anche sul lato a 45°. */
.etichetta-auto--usata { background: var(--nero); color: var(--nero); }
.etichetta-auto--usata::before {
  content: ''; position: absolute; z-index: -1; inset: 2px; background: var(--bianco);
  clip-path: polygon(7.83px 0, 100% 0, 100% 100%, 0 100%, 0 7.83px);
}
.etichetta-auto--esempio { background: #9A7400; color: #5A4300; font-size: .75rem; }
.etichetta-auto--esempio::before {
  content: ''; position: absolute; z-index: -1; inset: 1px; background: var(--giallo-avviso);
  clip-path: polygon(8.41px 0, 100% 0, 100% 100%, 0 100%, 0 8.41px);
}

/* ---------- Card auto ---------- */
.griglia-auto { list-style: none; margin: 0; padding: 0; display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 270px), 1fr)); }
.card { position: relative; height: 100%; display: flex; flex-direction: column; background: var(--bianco); border: 1px solid var(--linea); border-radius: var(--r); overflow: hidden; transition: box-shadow .15s; }
.card:hover, .card:focus-within { box-shadow: 0 0 0 2px var(--nero); }
.card__foto { position: relative; aspect-ratio: 4 / 3; background: #ECEAE5; overflow: hidden; }
.card__foto img { position: relative; width: 100%; height: 100%; object-fit: contain; }
.card__etichette { position: absolute; top: 12px; left: 12px; display: flex; flex-wrap: wrap; gap: 6px; }
.card__corpo { padding: 16px 16px 18px; display: flex; flex-direction: column; flex: 1; }
.card__titolo { margin: 0; font-family: var(--f-display); font-stretch: 85%; font-weight: 800; text-transform: none; font-size: 1.45rem; line-height: 1.1; letter-spacing: 0; }
.card__titolo a { color: var(--nero); text-decoration: none; }
.card__titolo a::after { content: ""; position: absolute; inset: 0; } /* tutta la card è cliccabile */
.card__versione { margin: 4px 0 12px; color: var(--grigio); font-size: 1rem; }
.dati-chiave { list-style: none; margin: 0 0 14px; padding: 10px 0 0; border-top: 1px solid var(--linea); display: grid; grid-template-columns: 1fr 1fr; gap: 4px 12px; font-size: .95rem; }
.dati-chiave li { display: flex; align-items: center; gap: 6px; }
.dati-chiave svg { width: 18px; height: 18px; color: var(--grigio); flex: none; }
.card__prezzo { margin-top: auto; }
.prezzo { font-family: var(--f-display); font-stretch: 75%; font-weight: 800; font-size: 2.1rem; line-height: 1; font-variant-numeric: tabular-nums; margin: 0; }
.rata { margin: 6px 0 0; font-size: .95rem; }
.rata strong { color: var(--rosso-azione); }
.rata small { display: block; color: var(--grigio); font-size: .8rem; line-height: 1.4; }
.card--venduta .card__foto img { filter: grayscale(1); opacity: .7; }
.card--venduta .card__foto .foto-sfondo img { filter: blur(14px) brightness(.9) grayscale(1); }

/* ---------- Elenco con filtri ---------- */
.elenco { display: grid; gap: 24px; padding-top: 32px; padding-bottom: 64px; }
@media (min-width: 1000px) { .elenco { grid-template-columns: 280px 1fr; gap: 40px; align-items: start; } }
.filtri { border: 2px solid var(--nero); border-radius: var(--r); background: var(--bianco); }
.filtri > summary { list-style: none; cursor: pointer; padding: 14px 16px; font-weight: 700; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.filtri > summary::-webkit-details-marker { display: none; }
.filtri > summary::after { content: "+"; font-size: 1.5rem; line-height: 1; }
.filtri[open] > summary::after { content: "–"; }
.filtri__corpo { padding: 0 16px 16px; display: grid; gap: 16px; }
.filtri fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.filtri legend { font-weight: 700; font-size: .95rem; margin-bottom: 8px; padding: 0; }
@media (min-width: 1000px) {
  .filtri { position: sticky; top: 16px; }
  .filtri > summary { cursor: default; pointer-events: none; }
  .filtri > summary::after { content: none; }
}
.no-js .filtri, .no-js .barra-risultati__ordina { display: none; }
.barra-risultati { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 20px; }
.barra-risultati__conteggio { font-weight: 700; font-size: 1.15rem; margin: 0; }
.barra-risultati__ordina { display: flex; align-items: center; gap: 8px; }
.barra-risultati__ordina select { width: auto; min-height: 44px; }
.nessun-risultato { border: 2px dashed var(--bordo-campo); border-radius: var(--r); padding: 24px; background: var(--carta); }

/* ---------- Scheda auto ---------- */
.scheda { display: grid; gap: 28px; padding-top: 24px; padding-bottom: 64px; }
@media (min-width: 1000px) { .scheda { grid-template-columns: minmax(0, 1fr) 380px; gap: 40px; align-items: start; } .scheda__laterale { position: sticky; top: 16px; } }
.scheda__testa h1 { font-size: clamp(2rem, 6vw, 3.2rem); margin-bottom: 6px; }
.scheda__versione { font-size: 1.15rem; color: var(--grigio); margin: 0 0 12px; }
.stato-auto { padding: 14px 16px; border-radius: var(--r); font-weight: 700; margin-bottom: 16px; }
.stato-auto--riservata { background: #FFF6D6; border: 2px solid #C99A00; }
.stato-auto--venduta { background: var(--carta); border: 2px solid var(--grigio); }

.galleria { position: relative; }
.galleria__palco { position: relative; }
.galleria__binario {
  display: flex; overflow-x: auto; scroll-snap-type: x mandatory;
  aspect-ratio: 4 / 3; background: #ECEAE5; border-radius: var(--r); scrollbar-width: none;
}
.galleria__binario::-webkit-scrollbar { display: none; }
.galleria__binario:focus-visible { outline-offset: 2px; }
.galleria__slide { flex: 0 0 100%; scroll-snap-align: start; position: relative; overflow: hidden; }
.galleria__slide img { position: relative; width: 100%; height: 100%; object-fit: contain; }
/* Foto non in 4:3 (formato largo dei telefoni o verticali): si vede intera, mai tagliata;
   lo spazio che avanza lo riempie la stessa foto sfocata (vedi foto_sfondo() in util.php). */
.foto-sfondo { position: absolute; inset: 0; overflow: hidden; }
.foto-sfondo img { object-fit: cover; filter: blur(14px) brightness(.9); transform: scale(1.15); }
.galleria__freccia, .galleria__schermo {
  position: absolute; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%;
  background: rgba(255,255,255,.92); border: 2px solid var(--nero); color: var(--nero); cursor: pointer;
}
.galleria__freccia { top: 50%; transform: translateY(-50%); }
.galleria__freccia--prec { left: 10px; }
.galleria__freccia--succ { right: 10px; }
.galleria__schermo { top: 10px; right: 10px; width: 44px; height: 44px; border-radius: var(--r); }
.galleria__freccia svg, .galleria__schermo svg { width: 22px; height: 22px; }
.galleria__contatore { position: absolute; left: 10px; bottom: 10px; background: rgba(22,22,26,.85); color: var(--bianco); padding: 4px 10px; border-radius: 999px; font-size: .9rem; font-weight: 700; }
.galleria__miniature { display: flex; gap: 8px; overflow-x: auto; margin-top: 10px; padding: 4px 2px; }
.galleria__miniature button { flex: none; width: 88px; aspect-ratio: 4 / 3; padding: 0; border: 2px solid transparent; border-radius: var(--r); overflow: hidden; background: #ECEAE5; cursor: pointer; }
.galleria__miniature button[aria-current="true"] { border-color: var(--rosso-azione); }
.galleria__miniature img { width: 100%; height: 100%; object-fit: cover; }
.no-js .galleria__freccia, .no-js .galleria__schermo { display: none; }

.galleria-dialogo { width: 100vw; height: 100vh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: #000; color: var(--bianco); }
.galleria-dialogo::backdrop { background: #000; }
.galleria-dialogo .galleria { height: 100%; display: flex; flex-direction: column; }
.galleria-dialogo .galleria__palco { flex: 1; display: flex; min-height: 0; }
.galleria-dialogo .galleria__binario { aspect-ratio: auto; flex: 1; background: #000; border-radius: 0; }
.galleria-dialogo .galleria__slide img { object-fit: contain; }
.galleria-dialogo .foto-sfondo { display: none; }
.galleria-dialogo__chiudi { position: absolute; top: 12px; right: 12px; z-index: 2; }

.box-prezzo { background: var(--bianco); border: 2px solid var(--nero); border-radius: var(--r); padding: 20px; display: grid; gap: 12px; }
.box-prezzo .prezzo { font-size: clamp(2.4rem, 8vw, 3rem); }
.box-prezzo .rata { font-size: 1.05rem; padding: 12px; background: var(--carta); border-radius: var(--r); margin: 0; }
.box-prezzo__iva { margin: -6px 0 0; font-size: .9rem; color: var(--grigio); }
.box-prezzo .btn { width: 100%; }
.box-prezzo__titoletto { margin: 0 0 4px; font-size: .9rem; }
.box-prezzo__annuncio { margin: 0; font-size: .85rem; color: var(--grigio); }
.elenco-spunte--stretto { grid-template-columns: 1fr !important; font-size: .9rem; margin-bottom: 8px; }
.btn-link-semplice { display: inline-flex; align-items: center; gap: 4px; background: none; border: 0; padding: 0; color: var(--rosso-azione); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; font-size: inherit; }
.btn-link-semplice svg { width: 16px; height: 16px; }
.scheda__etichette { display: flex; flex-wrap: wrap; gap: 6px; margin: 18px 0 10px; }
.scheda__principale, .scheda__dettagli { min-width: 0; }
@media (min-width: 1000px) {
  .scheda__principale { grid-column: 1; grid-row: 1; }
  .scheda__dettagli { grid-column: 1; grid-row: 2; }
  .scheda__laterale { grid-column: 2; grid-row: 1 / span 2; align-self: start; }
}
.simulatore fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }

.blocco-scheda { padding-top: 8px; }
.blocco-scheda + .blocco-scheda { border-top: 1px solid var(--linea); padding-top: 28px; margin-top: 28px; }
.blocco-scheda h2 { font-size: clamp(1.5rem, 4vw, 2rem); }
.tabella-dati { display: grid; grid-template-columns: 1fr; margin: 0; }
@media (min-width: 640px) { .tabella-dati { grid-template-columns: 1fr 1fr; column-gap: 32px; } }
.tabella-dati div { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--linea); }
.tabella-dati dt { color: var(--grigio); }
.tabella-dati dd { margin: 0; font-weight: 700; text-align: right; }
.elenco-spunte { list-style: none; padding: 0; display: grid; gap: 6px 24px; }
@media (min-width: 640px) { .elenco-spunte { grid-template-columns: 1fr 1fr; } }
.elenco-spunte li { display: flex; gap: 8px; align-items: flex-start; }
.elenco-spunte svg { width: 20px; height: 20px; flex: none; margin-top: 3px; color: var(--verde); }
.elenco-spunte--no svg { color: var(--grigio); }
.dotazioni-gruppo h3 { font-size: 1.15rem; margin: 16px 0 8px; }
.testo-venditore { white-space: pre-line; }

/* ---------- Simulatore rata ---------- */
.simulatore { border: 2px solid var(--nero); border-radius: var(--r); padding: 20px; background: var(--bianco); display: grid; gap: 18px; }
@media (min-width: 768px) { .simulatore { grid-template-columns: 1fr 1fr; gap: 28px; padding: 28px; } }
.sim__controlli { display: grid; gap: 18px; align-content: start; }
.sim__valore { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.sim__valore output { font-weight: 700; font-size: 1.15rem; font-variant-numeric: tabular-nums; }
.sim__risultato { background: var(--carta); border-radius: var(--r); padding: 18px; display: grid; gap: 10px; align-content: start; }
.sim__rata { font-family: var(--f-display); font-stretch: 75%; font-weight: 800; font-size: 3rem; line-height: 1; margin: 0; font-variant-numeric: tabular-nums; }
.sim__rata small { font-family: var(--f-testo); font-size: 1rem; font-weight: 700; letter-spacing: 0; }
.sim__tassi { font-weight: 700; margin: 0; }
.sim__dettaglio { margin: 0; font-size: .92rem; display: grid; gap: 0; }
.sim__dettaglio div { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px solid var(--linea); }
.sim__dettaglio dt { color: var(--grigio); }
.sim__dettaglio dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; text-align: right; }
.sim__legale { grid-column: 1 / -1; font-size: .82rem; color: var(--grigio); margin: 0; }

/* ---------- Blocchi home ---------- */
.fascia-rata { display: grid; gap: 20px; }
@media (min-width: 900px) { .fascia-rata { grid-template-columns: 1fr 1fr; align-items: center; gap: 48px; } }
.fascia-rata__valore { font-family: var(--f-display); font-stretch: 75%; font-weight: 800; font-size: 3.4rem; line-height: 1; color: var(--rosso); font-variant-numeric: tabular-nums; }

.punti { list-style: none; margin: 0; padding: 0; display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.punto { border-top: 4px solid var(--rosso); padding-top: 16px; }
.punto svg { width: 32px; height: 32px; margin-bottom: 10px; }
.punto h3 { font-size: 1.35rem; }
.punto p { margin: 0; color: var(--grigio); }
.sezione--scura .punto p { color: var(--grigio-chiaro); }

.fascia-permuta { display: grid; gap: 20px; }
@media (min-width: 900px) { .fascia-permuta { grid-template-columns: 1.4fr 1fr; align-items: center; } .fascia-permuta .pulsanti { justify-content: flex-end; } }

.passi { list-style: none; margin: 0; padding: 0; display: grid; gap: 20px; counter-reset: passo; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); }
.passi li { counter-increment: passo; background: var(--bianco); border: 1px solid var(--linea); border-radius: var(--r); padding: 20px; }
.passi li::before { content: counter(passo, decimal-leading-zero); display: block; font: 800 2.2rem/1 var(--f-display); font-stretch: 75%; color: var(--rosso); margin-bottom: 10px; }
.passi h3 { font-size: 1.25rem; }
.passi p { margin: 0; color: var(--grigio); }

/* ---------- Dove siamo / mappa ---------- */
.dove { display: grid; gap: 28px; }
@media (min-width: 900px) { .dove { grid-template-columns: 1fr 1.2fr; align-items: start; gap: 48px; } }
.indirizzo { font-style: normal; font-size: 1.15rem; margin-bottom: 16px; }
.orari { margin: 0 0 20px; display: grid; gap: 0; }
.orari div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2px 16px; padding: 8px 0; border-bottom: 1px solid var(--linea); }
.sezione--scura .orari div { border-color: #3A3A40; }
.orari dt { font-weight: 700; }
.orari dd { margin: 0 0 0 auto; text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.aperto-ora { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; margin-bottom: 12px; }
.aperto-ora::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--grigio); }
.aperto-ora--si::before { background: var(--verde); }
.mappa { position: relative; border: 2px solid var(--nero); border-radius: var(--r); overflow: hidden; background: #E8E4DC; aspect-ratio: 4 / 3; }
.mappa iframe { width: 100%; height: 100%; border: 0; display: block; }
.mappa__nota { font-size: .85rem; color: var(--grigio); margin: 8px 0 12px; }
.link-mappe { display: flex; flex-wrap: wrap; gap: 10px; }

/* ---------- Testi lunghi (informative) ---------- */
.testo-lungo { max-width: 760px; padding-top: 32px; padding-bottom: 72px; }
.testo-lungo h2 { font-size: clamp(1.4rem, 3.5vw, 1.8rem); margin-top: 1.8em; }
.testo-lungo h3 { margin-top: 1.4em; }
.testo-lungo li { margin-bottom: .4em; }
.testo-lungo table { width: 100%; border-collapse: collapse; margin: 0 0 1em; font-size: .95rem; }
.testo-lungo th, .testo-lungo td { text-align: left; padding: 10px; border-bottom: 1px solid var(--linea); vertical-align: top; }

/* ---------- Piede ---------- */
.piede { background: var(--nero); color: var(--grigio-chiaro); padding: 48px 0 calc(24px + var(--barra-h)); font-size: 1rem; }
@media (min-width: 1000px) { .piede { padding-bottom: 28px; } }
.piede a { color: var(--bianco); }
.piede a:hover { color: var(--grigio-chiaro); }
.piede strong, .piede h2 { color: var(--bianco); }
.piede h2 { font-size: 1.1rem; font-family: var(--f-testo); text-transform: none; font-weight: 700; letter-spacing: 0; margin-bottom: 10px; }
.piede__logo { width: 200px; margin-bottom: 20px; }
.piede__colonne { display: grid; gap: 28px; }
@media (min-width: 768px) { .piede__colonne { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .piede__colonne { grid-template-columns: 1.3fr 1fr 1fr 1fr; } }
.piede ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.piede .indirizzo { font-size: 1rem; margin-bottom: 10px; }
.piede .orari div { display: block; border-color: #3A3A40; padding: 6px 0; }
.piede .orari dd { text-align: left; white-space: normal; }
.piede .orari dt { font-weight: 400; color: var(--grigio-chiaro); }
.piede .orari dd { color: var(--bianco); }
.piede__legale { border-top: 1px solid #3A3A40; margin-top: 32px; padding-top: 18px; font-size: .85rem; line-height: 1.6; }
.piede__legale p { margin: 0 0 6px; }

/* ---------- Varie ---------- */
.pagina-errore { padding-top: 64px; padding-bottom: 96px; }
.pagina-errore h1 { font-size: clamp(3rem, 12vw, 6rem); }

/* ---------- Animazioni: solo se l'utente non ha chiesto di ridurle ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* ---------- Stampa (scheda auto) ---------- */
@media print {
  body { padding: 0; font-size: 11pt; }
  .testata nav, .testata__azioni, .menu-apri, .barra-azioni, .salta, .galleria__freccia, .galleria__schermo,
  .galleria__miniature, .no-stampa, .piede__colonne, .simulatore, .avviso-sito, .briciole, .foto-sfondo { display: none !important; }
  .scheda { display: block; padding: 0; }
  .galleria__binario { overflow: hidden; aspect-ratio: 4 / 3; max-height: 9cm; }
  .galleria__slide:not(:first-child) { display: none; }
  .box-prezzo { border-width: 1px; margin: 12px 0; break-inside: avoid; }
  .piede { background: none; color: #000; padding: 12px 0 0; border-top: 1px solid #000; }
  .piede a, .piede strong { color: #000; }
  .piede__logo { display: none; }
  a[href^="http"]::after { content: ""; }
}

/* Ritocchi di spaziatura */
.dove h3 { margin-top: 28px; }
.modulo fieldset { margin-top: 8px; }
.pulsanti--spazio { margin-top: 32px; }
.indicazioni { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 12px; }
.indicazioni li { padding-left: 16px; border-left: 4px solid var(--rosso); }
.indicazioni__fine { margin: 16px 0 0; padding: 12px 16px; background: var(--carta); border-radius: var(--r); }
