/* ==========================================================================
   Pieffe Auto · direzione creativa "Adriatica"
   Pietra (fondo caldo) · Blu Adriatico (marchio) · Notte (sezioni immersive)
   Zafferano (azioni) · Archivo variabile (larga per i titoli) · taglio obliquo PF
   ========================================================================== */

@font-face {
  font-family: "Archivo";
  src: url("/static/fonts/archivo-latin.woff2?v=258a93fe93") format("woff2");
  font-weight: 100 900;
  font-stretch: 62% 125%;
  font-style: normal;
  font-display: swap;
}

:root {
  color-scheme: light;
  --ink: #14181d;
  --ink-2: #39424c;
  --ink-3: #59626c;
  --stone: #f3f0e8;
  --stone-2: #e9e4d8;
  --stone-3: #ddd6c6;
  --line: #d9d2c2;
  --line-2: #e7e2d6;
  --paper: #ffffff;
  --blue: #0e4a7b;
  --blue-2: #165d96;
  --blue-soft: #e2ecf5;
  --night: #0b1b2b;
  --night-2: #13293f;
  --night-3: #1d3a56;
  --saffron: #f2a30f;
  --saffron-2: #ffb933;
  --saffron-soft: #fdf0d3;
  --saffron-ink: #7a4b00;
  --wa: #13843f;
  --wa-2: #0f6e34;
  --ok: #17703f;
  --ok-soft: #e1f2e8;
  --warn-soft: #fff4dc;
  --red: #b42318;
  --red-2: #941c13;
  --red-soft: #fde8e6;
  /* offerte: bordo e fondo del riquadro (il rosso resta quello delle promozioni) */
  --red-line: #f1c7c2;
  --red-tint: #fdf2f0;
  --sea: #dce9f3;
  /* Km 0: verde Adriatico (bianco sopra: contrasto 5,5:1) */
  --km0: #0a7570;
  --km0-2: #075f5b;
  --km0-soft: #dcefec;
  --km0-tint: #ebf5f3;
  --nuovo-tint: #e9edf2;
  --radius-sm: 10px;
  --radius: 16px;
  --radius-lg: 24px;
  --shadow-sm: 0 1px 2px rgb(20 24 29 / 6%);
  --shadow: 0 1px 2px rgb(20 24 29 / 5%), 0 10px 28px -14px rgb(20 24 29 / 22%);
  --shadow-lg: 0 2px 4px rgb(20 24 29 / 4%), 0 24px 60px -24px rgb(11 27 43 / 35%);
  --font: "Archivo", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --gutter: clamp(16px, 4vw, 40px);
  --max: 1320px;
  --header-h: 76px;
  --slant: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}

/* --- base ---------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 16px); }
body {
  margin: 0;
  font-family: var(--font);
  font-size: 1.0625rem;
  line-height: 1.55;
  color: var(--ink);
  background: var(--stone);
  font-synthesis-weight: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
a { color: var(--blue); text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { color: var(--blue-2); }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
h1, h2, h3, h4 { line-height: 1.12; margin: 0 0 .5em; font-weight: 750; letter-spacing: -.01em; text-wrap: balance; }
p { margin: 0 0 1em; text-wrap: pretty; }
ul, ol { margin: 0; padding: 0; }
dl, dd { margin: 0; }
figure { margin: 0; }
fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
legend { padding: 0; }
summary { cursor: pointer; }
code { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: .9em; }
:focus-visible { outline: 3px solid var(--blue-2); outline-offset: 2px; border-radius: 4px; }
::selection { background: var(--saffron-soft); color: var(--ink); }
[hidden] { display: none !important; }
main:focus { outline: none; }

.i { width: 1.25em; height: 1.25em; flex: none; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--night); color: #fff; padding: 10px 16px; border-radius: 10px; font-weight: 650; }
.skip-link:focus { top: 12px; color: #fff; }

.wrap { width: 100%; max-width: var(--max); margin-inline: auto; padding-inline: var(--gutter); }
.wrap--wide { max-width: 1600px; }
.narrow { max-width: 820px; }
.mt { margin-top: 2rem; }
.small { font-size: .875rem; }
.nowrap { white-space: nowrap; }
.hint { font-size: .9rem; color: var(--ink-3); }
.opt { font-weight: 400; color: var(--ink-3); font-size: .9em; }
.h3 { font-size: 1.2rem; font-stretch: 105%; }

/* --- tipografia ---------------------------------------------------------------- */
.display {
  font-size: clamp(2.2rem, 1.2rem + 3.6vw, 4.5rem);
  line-height: 1;
  font-weight: 820;
  font-stretch: 112%;
  letter-spacing: -.03em;
  margin: 0 0 .45em;
}
.hl {
  background: linear-gradient(transparent 74%, var(--saffron) 74%, var(--saffron) 90%, transparent 90%);
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  padding-inline: .04em;
}
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .55em;
  margin: 0 0 .9rem;
  font-size: .78rem;
  font-weight: 680;
  font-stretch: 118%;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--blue);
}
.eyebrow::before {
  content: "";
  width: 22px;
  height: 7px;
  background: var(--saffron);
  transform: skewX(-24deg);
  border-radius: 1px;
}
.eyebrow .i { width: 1.15em; height: 1.15em; }
.eyebrow--saffron { color: var(--saffron-2); }
.section-title { font-size: clamp(1.65rem, 1.2rem + 1.6vw, 2.55rem); font-stretch: 110%; font-weight: 780; letter-spacing: -.02em; margin-bottom: .35em; }
.section-intro { color: var(--ink-2); max-width: 62ch; margin: 0; }
.page-title { font-size: clamp(2rem, 1.4rem + 2.2vw, 3.3rem); font-stretch: 112%; font-weight: 800; letter-spacing: -.025em; margin-bottom: .3em; }
.page-intro { font-size: 1.12rem; color: var(--ink-2); max-width: 68ch; }
.prose { max-width: 70ch; }
.prose h2 { font-size: 1.35rem; margin-top: 1.6em; }
.prose ul { padding-left: 1.2em; margin-bottom: 1em; }
.prose li { margin-bottom: .35em; }

/* --- sezioni ----------------------------------------------------------------- */
.section { padding-block: clamp(48px, 7vw, 96px); }
.section--tight { padding-block: clamp(28px, 4vw, 52px); }
.section--paper { background: var(--paper); }
.section--stone-2 { background: var(--stone-2); }
.section--night {
  background:
    radial-gradient(1200px 500px at 85% -10%, rgb(22 93 150 / 35%), transparent 60%),
    var(--night);
  color: #e8eef4;
}
.section--night .section-title { color: #fff; }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 16px 32px; flex-wrap: wrap; margin-bottom: clamp(20px, 3vw, 36px); }
.link-arrow { display: inline-flex; align-items: center; gap: .4em; font-weight: 680; text-decoration: none; color: var(--blue); }
.link-arrow .i { transition: transform .2s ease; }
.link-arrow:hover .i { transform: translateX(3px); }
.section--night .link-arrow { color: var(--saffron-2); }

/* --- pulsanti ------------------------------------------------------------------ */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5em;
  min-height: 48px;
  padding: .7em 1.25em;
  border-radius: 12px;
  border: 1.5px solid transparent;
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.15;
  text-decoration: none;
  text-align: center;
  text-wrap: balance;
  max-width: 100%;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease, transform .15s ease, box-shadow .15s ease;
}
.table .btn, .site-header .btn { white-space: nowrap; }
.btn:active { transform: translateY(1px); }
.btn--sm { min-height: 40px; padding: .5em .95em; font-size: .94rem; border-radius: 10px; }
.btn--lg { min-height: 56px; padding: .85em 1.5em; font-size: 1.06rem; }
.btn--block { width: 100%; }
.btn--primary { background: var(--saffron); color: var(--ink); box-shadow: inset 0 -2px 0 rgb(0 0 0 / 12%); }
.btn--primary:hover { background: var(--saffron-2); color: var(--ink); }
.btn--ghost { background: var(--paper); color: var(--ink); border-color: var(--line); }
.btn--ghost:hover { border-color: var(--ink-2); color: var(--ink); }
.btn--wa { background: var(--wa); color: #fff; }
.btn--wa:hover { background: var(--wa-2); color: #fff; }
.btn--light { background: #fff; color: var(--night); }
.btn--light:hover { background: var(--stone); color: var(--night); }
.btn--outline-light { background: transparent; color: #fff; border-color: rgb(255 255 255 / 45%); }
.btn--outline-light:hover { border-color: #fff; color: #fff; }
.btn-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 1rem; }
.linklike { background: none; border: 0; padding: 0; color: inherit; text-decoration: underline; text-underline-offset: .18em; }

.icon-btn {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  border: 1.5px solid var(--line);
  background: var(--paper);
  color: var(--ink);
  text-decoration: none;
}
.icon-btn:hover { border-color: var(--ink-2); color: var(--ink); }
.icon-btn--wa { color: var(--wa); }
.icon-btn__badge { position: absolute; top: -6px; right: -6px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--saffron); color: var(--ink); font-size: .72rem; font-weight: 800; display: grid; place-items: center; }

.chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; }
.chip {
  display: inline-flex; align-items: center; gap: .5em;
  padding: .45em .85em; border-radius: 999px;
  background: var(--paper); border: 1px solid var(--line);
  color: var(--ink); text-decoration: none; font-weight: 600; font-size: .94rem;
}
.chip span { font-variant-numeric: tabular-nums; color: var(--ink-3); font-weight: 650; }
.chip:hover { border-color: var(--ink-2); color: var(--ink); }
.pill { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 11px; background: var(--saffron); color: var(--ink); font-size: .78rem; font-weight: 800; }

.badges { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin-bottom: 10px; }
.badge {
  font-size: .72rem; font-weight: 720; font-stretch: 110%;
  letter-spacing: .06em; text-transform: uppercase;
  padding: .32em .6em; border-radius: 6px;
  background: var(--stone-2); color: var(--ink-2);
}
.badge--km0 { background: var(--km0); color: #fff; }
.badge--nuovo { background: var(--night); color: #fff; }
.badge--aziendale { background: #e9e6f5; color: #3d3577; }
.badge--arrivo { background: var(--saffron-soft); color: var(--saffron-ink); }
.badge--riservato { background: var(--red-soft); color: var(--red); }
.badge--promo { background: var(--red); color: #fff; }
.badge--neo { background: var(--ok-soft); color: var(--ok); }
.badge--demo { background: var(--stone-3); color: var(--ink); }

.note { display: flex; gap: .6em; align-items: flex-start; padding: .85em 1em; border-radius: 12px; background: var(--paper); border: 1px solid var(--line); font-size: .95rem; margin: 1rem 0 0; }
.note .i { margin-top: .12em; color: var(--blue); }
.note--info { background: var(--blue-soft); border-color: #c8dbea; }
.note--warn { background: var(--warn-soft); border-color: #f0dba7; }
.note--warn .i { color: var(--saffron-ink); }

/* --- moduli ------------------------------------------------------------------------- */
.field { display: grid; gap: 6px; align-content: start; }
.field > label, .field > legend, .field__label { font-size: .88rem; font-weight: 650; color: var(--ink-2); }
.field small { font-size: .82rem; color: var(--ink-3); }
.field--wide { grid-column: 1 / -1; }
.field--inline { display: flex; align-items: center; gap: 8px; }
input:where([type=text], [type=search], [type=email], [type=tel], [type=date], [type=number], :not([type])), select, textarea {
  width: 100%;
  min-height: 48px;
  padding: .65em .8em;
  border: 1.5px solid var(--line);
  border-radius: 10px;
  background: var(--paper);
  font-size: 1rem;
  transition: border-color .15s ease, box-shadow .15s ease;
}
textarea { min-height: 96px; resize: vertical; }
select {
  appearance: none;
  padding-right: 2.2em;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2339424c' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right .7em center;
  background-size: 1.1em;
}
select:disabled { opacity: .55; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--blue-2); box-shadow: 0 0 0 3px rgb(22 93 150 / 18%); }
.field.is-invalid input, .field.is-invalid select, .field.is-invalid textarea, input[aria-invalid="true"] { border-color: var(--red); }
.field__error { color: var(--red); font-size: .85rem; font-weight: 600; }
.input-affix { position: relative; }
.input-affix input { padding-right: 2.4em; font-variant-numeric: tabular-nums; }
.input-affix span { position: absolute; right: .9em; top: 50%; transform: translateY(-50%); color: var(--ink-3); font-weight: 650; pointer-events: none; }
.input-icon { position: relative; }
.input-icon .i { position: absolute; left: .8em; top: 50%; transform: translateY(-50%); color: var(--ink-3); pointer-events: none; }
.input-icon input { padding-left: 2.6em; }
.input-icon--sm input { min-height: 40px; font-size: .94rem; }

.check { display: flex; gap: .7em; align-items: flex-start; font-size: .92rem; line-height: 1.45; cursor: pointer; }
.check input { width: 20px; height: 20px; margin: .1em 0 0; flex: none; accent-color: var(--blue); }

.segmented { display: flex; flex-wrap: wrap; gap: 6px; }
.segmented label { position: relative; cursor: pointer; }
.segmented input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.segmented span {
  display: inline-flex; align-items: center; min-height: 42px; padding: .45em 1em;
  border-radius: 999px; border: 1.5px solid var(--line); background: var(--paper);
  font-weight: 650; font-size: .94rem;
}
.segmented input:checked + span { background: var(--night); border-color: var(--night); color: #fff; }
.segmented input:focus-visible + span { outline: 3px solid var(--blue-2); outline-offset: 2px; }
.segmented--tight span { min-width: 48px; justify-content: center; padding-inline: .7em; font-variant-numeric: tabular-nums; }

.hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* modulo richiesta */
.lead { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: clamp(18px, 3vw, 32px); display: grid; gap: 18px; box-shadow: var(--shadow-sm); }
.lead__title { font-size: clamp(1.35rem, 1.1rem + .8vw, 1.75rem); font-stretch: 108%; margin: 0; }
.lead__car { display: flex; gap: 12px; align-items: center; padding: 10px; border-radius: 14px; background: var(--stone); }
.lead__car img, .lead__car-ph { width: 96px; height: 72px; object-fit: cover; border-radius: 10px; flex: none; }
.lead__car-ph { display: grid; place-items: center; background: var(--paper); color: var(--ink-3); padding: 8px; }
.lead__car div { display: grid; line-height: 1.3; }
.lead__car span { font-size: .88rem; color: var(--ink-3); }
.lead__car-price { font-variant-numeric: tabular-nums; color: var(--ink-2) !important; font-weight: 650; }
.lead__motivi legend { font-weight: 700; margin-bottom: 8px; }
.lead__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.lead__when { display: none; }
.lead:has(input[name=tipo][value=visita]:checked) .lead__when,
.lead:has(input[name=tipo][value=test-drive]:checked) .lead__when { display: grid; }
.lead__permuta { border: 1px dashed var(--stone-3); border-radius: 14px; padding: 12px 14px; }
.lead__permuta summary { display: flex; align-items: center; gap: .5em; font-weight: 650; list-style: none; }
.lead__permuta summary::-webkit-details-marker { display: none; }
.lead__permuta summary::after { content: "+"; margin-left: auto; font-size: 1.3rem; line-height: 1; color: var(--ink-3); }
.lead__permuta[open] summary::after { content: "−"; }
.lead__permuta[open] .lead__grid { margin-top: 12px; }
.lead__permuta .hint { margin: 10px 0 0; }
.lead__consents { display: grid; gap: 10px; }
.lead__submit { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.lead__status { margin: 0; font-weight: 600; }
.lead__status.is-ok { color: var(--ok); }
.lead__status.is-error { color: var(--red); }
.lead.is-sent .lead__grid, .lead.is-sent .lead__motivi, .lead.is-sent .lead__permuta, .lead.is-sent .field--wide, .lead.is-sent .lead__avviso, .lead.is-sent .lead__consents, .lead.is-sent button[type=submit] { display: none; }
.lead__done { padding: 18px; border-radius: 14px; background: var(--ok-soft); color: var(--ok); }
.lead__done strong { display: block; font-size: 1.15rem; color: var(--ink); }

/* --- header -------------------------------------------------------------------- */
.site-header {
  position: sticky; top: 0; z-index: 40;
  background: rgb(243 240 232 / 88%);
  -webkit-backdrop-filter: saturate(1.4) blur(12px);
  backdrop-filter: saturate(1.4) blur(12px);
  border-bottom: 1px solid transparent;
  transition: border-color .2s ease, background-color .2s ease;
}
.site-header.is-scrolled { border-bottom-color: var(--line); background: rgb(243 240 232 / 96%); }
.site-header__in { display: flex; align-items: center; gap: 20px; height: var(--header-h); }
.brand { flex: none; display: block; }
.brand img { width: 236px; height: auto; }
.main-nav { margin-inline: auto; }
.main-nav > ul { display: flex; align-items: center; gap: 2px; list-style: none; }
.main-nav > ul > li > a, .nav-mega__btn {
  display: flex; align-items: center; gap: .3em; padding: .55em .8em; border: 0; border-radius: 10px;
  background: none; color: var(--ink); text-decoration: none; font: inherit; font-weight: 620; font-size: .97rem; white-space: nowrap;
}
.main-nav > ul > li > a:hover, .nav-mega__btn:hover { background: var(--stone-2); color: var(--ink); }
.main-nav > ul > li > a[aria-current=page], .nav-mega__btn[data-current] { background: var(--paper); box-shadow: inset 0 0 0 1px var(--line); }
.nav-mega__btn .i { width: 1em; height: 1em; transition: transform .2s ease; }
.nav-mega.is-open .nav-mega__btn { background: var(--saffron-soft); color: var(--saffron-ink); box-shadow: none; }
.nav-mega.is-open .nav-mega__btn .i { transform: rotate(180deg); }
.site-header__actions { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.main-nav + .site-header__actions { margin-left: 0; }
.menu-toggle { display: none; }

/* pannello «Auto»: sotto l'intestazione, al centro. Con JavaScript si apre al clic e al passaggio
   del mouse (site.js, classe is-open); senza, al passaggio del mouse e con la tastiera */
.mega {
  position: absolute; top: calc(100% + 6px); left: 50%; z-index: 45; transform: translateX(-50%);
  display: none; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr) minmax(0, 1fr);
  width: min(1240px, calc(100vw - 2 * var(--gutter))); padding: 26px;
  border: 1px solid var(--line-2); border-radius: var(--radius-lg); background: var(--paper); box-shadow: var(--shadow-lg);
}
/* ponte invisibile tra la voce e il pannello: il mouse non lo chiude passando */
.mega::before { content: ""; position: absolute; left: 0; right: 0; top: -26px; height: 26px; }
.nav-mega.is-open .mega { display: grid; animation: mega-in .16s ease-out; }
html:not(.js) .nav-mega:hover .mega, html:not(.js) .nav-mega:focus-within .mega { display: grid; }
@keyframes mega-in { from { opacity: 0; transform: translate(-50%, -6px); } }
.mega__col { min-width: 0; padding: 4px 26px 4px 4px; }
.mega__col--links { padding-inline: 26px; border-left: 1px solid var(--line-2); }
.mega__title, .sheet__title { margin: 0 0 12px; font-size: .76rem; font-weight: 700; font-stretch: 112%; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); }
.mega__list, .mega__links { display: grid; gap: 4px; list-style: none; }
.mega-item { display: flex; align-items: center; gap: 14px; margin-inline: -10px; padding: 8px 10px; border-radius: 14px; color: var(--ink); text-decoration: none; }
.mega-item:hover { background: var(--stone); color: var(--ink); }
.mega-item__icon { flex: none; display: grid; place-items: center; width: 50px; height: 50px; border: 1px solid var(--line-2); border-radius: 14px; background: var(--paper); box-shadow: var(--shadow-sm); }
.mega-item__icon .i { width: 26px; height: 26px; }
.mega-item__text { flex: 1; display: grid; gap: 1px; min-width: 0; }
.mega-item__text strong { display: inline-flex; align-items: center; gap: .3em; font-size: 1.02rem; font-weight: 720; }
.mega-item__text strong .i { width: .85em; height: .85em; transition: transform .15s ease; }
.mega-item:hover .mega-item__text strong .i { transform: translateX(3px); }
.mega-item__text small { color: var(--ink-3); font-size: .87rem; line-height: 1.35; }
.mega-item__n { flex: none; padding: .2em .6em; border-radius: 999px; background: var(--stone-2); color: var(--ink-2); font-size: .8rem; font-weight: 720; font-variant-numeric: tabular-nums; }
.mega__links a { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-inline: -10px; padding: 11px 10px; border-radius: 12px; color: var(--ink); text-decoration: none; }
.mega__links a:hover { background: var(--stone); color: var(--ink); }
.mega__links span { display: grid; gap: 2px; }
.mega__links strong { font-weight: 680; }
.mega__links small { color: var(--ink-3); font-size: .86rem; }
.mega__links .i { flex: none; width: 1.05em; height: 1.05em; color: var(--ink-2); }
.mega__promo { position: relative; isolation: isolate; display: flex; align-items: flex-end; min-height: 360px; overflow: hidden; border-radius: 18px; background: var(--night); color: #fff; text-decoration: none; }
.mega__promo-img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.mega__promo::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgb(11 27 43 / 0%) 0%, rgb(11 27 43 / 60%) 42%, rgb(11 27 43 / 92%) 72%, rgb(11 27 43 / 96%) 100%); }
.mega__promo-text { display: grid; justify-items: start; gap: 10px; width: 100%; min-width: 0; padding: 24px; }
.mega__promo-text strong { color: #fff; font-size: 1.65rem; font-weight: 780; font-stretch: 110%; line-height: 1.08; text-wrap: balance; }
.mega__promo-text > span:not(.btn) { color: #d6e0ea; }
.mega__promo:hover { color: #fff; }
.mega__promo:hover .btn--primary { background: var(--saffron-2); }

/* ricerca: barra sotto il bordo superiore della finestra */
.cerca[popover] { inset: 0 0 auto; width: 100%; max-width: none; margin: 0; padding: 0; border: 0; background: var(--paper); color: var(--ink); box-shadow: var(--shadow-lg); }
.cerca[popover]:popover-open { animation: cerca-in .18s ease-out; }
.cerca::backdrop { background: rgb(11 27 43 / 35%); }
.cerca__in { display: flex; align-items: center; gap: 10px; min-height: var(--header-h); padding-block: 12px; }
.cerca__field { flex: 1; min-width: 0; }
.cerca__field input { min-height: 52px; font-size: 1.05rem; }
@keyframes cerca-in { from { opacity: 0; transform: translateY(-10px); } }

/* menu del telefono: pannello laterale a tutta altezza */
.sheet[popover] {
  margin: 0; padding: 0; border: 0;
  inset: 0 0 0 auto; width: min(440px, 100%); height: 100dvh; max-height: none;
  background: var(--stone); color: var(--ink);
  box-shadow: var(--shadow-lg);
  overflow: hidden;
}
.sheet[popover]:popover-open { display: flex; flex-direction: column; animation: sheet-in .22s ease-out; }
.sheet::backdrop { background: rgb(11 27 43 / 45%); }
@keyframes sheet-in { from { transform: translateX(24px); opacity: 0; } }
.sheet__head { flex: none; display: flex; align-items: center; justify-content: space-between; padding: 10px var(--gutter); border-bottom: 1px solid var(--line-2); background: var(--paper); }
.sheet__head img { width: 176px; height: auto; }
.sheet__body { flex: 1; display: flex; flex-direction: column; gap: 10px; overflow-y: auto; overscroll-behavior: contain; padding: 14px var(--gutter) 22px; }
/* nella colonna che scorre nessun blocco si restringe (un riquadro con overflow nascosto sparirebbe) */
.sheet__body > * { flex: none; }
.sheet__promo { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; border-radius: 16px; background: var(--night); color: #fff; text-decoration: none; }
.sheet__promo:hover { color: #fff; }
.sheet__promo strong { font-size: 1.05rem; font-stretch: 108%; }
.sheet__promo span { display: inline-flex; align-items: center; gap: .3em; color: var(--saffron-2); font-size: .9rem; font-weight: 700; white-space: nowrap; }
.sheet__title { margin: 10px 0 0; }
.sheet .mega__list { gap: 6px; }
.sheet .mega-item { margin: 0; padding: 10px 12px; border: 1px solid var(--line-2); background: var(--paper); }
.sheet .mega-item__icon { width: 44px; height: 44px; border: 0; background: var(--stone); box-shadow: none; }
.sheet .mega-item__icon .i { width: 24px; height: 24px; }
.sheet__quick { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; list-style: none; }
.sheet__quick a { display: flex; align-items: center; gap: 8px; height: 100%; min-height: 54px; padding: 10px 12px; border: 1px solid var(--line-2); border-radius: 14px; background: var(--paper); color: var(--ink); text-decoration: none; font-size: .92rem; font-weight: 650; line-height: 1.2; }
.sheet__quick .i { flex: none; color: var(--blue); }
.sheet__nav { display: grid; overflow: hidden; border: 1px solid var(--line-2); border-radius: 16px; background: var(--paper); }
.sheet__nav a { display: flex; align-items: center; gap: 12px; padding: 13px 14px; border-bottom: 1px solid var(--line-2); color: var(--ink); text-decoration: none; font-weight: 650; }
.sheet__nav a:last-child { border-bottom: 0; }
.sheet__nav a span { flex: 1; }
.sheet__nav .i { color: var(--ink-3); }
.sheet__nav .i:first-child { color: var(--blue); }
.sheet__contacts { flex: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 12px var(--gutter) calc(12px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line-2); background: var(--paper); }

@media (max-width: 1240px) {
  .main-nav > ul > li > a, .nav-mega__btn { padding-inline: .6em; font-size: .94rem; }
  .brand img { width: 210px; }
}
@media (max-width: 1179px) {
  .main-nav { display: none; }
  .menu-toggle { display: inline-grid; }
  .main-nav + .site-header__actions { margin-left: auto; }
}
@media (max-width: 640px) {
  :root { --header-h: 64px; }
  .hide-sm { display: none !important; }
  .site-header__in { gap: 10px; }
  .site-header__actions { gap: 6px; }
  .brand img { width: 176px; }
  .cerca__in .btn { display: none; }
}
@media (max-width: 380px) { .brand img { width: 158px; } }

/* --- footer ------------------------------------------------------------------------- */
.site-footer { background: var(--night); color: #c9d4de; padding-top: clamp(40px, 6vw, 72px); font-size: .95rem; }
.site-footer a:not(.btn) { color: #fff; text-decoration: none; }
.site-footer a:not(.btn):hover { text-decoration: underline; color: #fff; }
.site-footer__grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr .9fr; gap: 32px; padding-bottom: 40px; }
.site-footer__brand img { width: 212px; margin-bottom: 16px; }
.site-footer__brand p { max-width: 36ch; }
.site-footer__cta { display: flex; flex-wrap: wrap; gap: 8px; }
.site-footer__title { font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; font-stretch: 118%; color: var(--saffron-2); margin-bottom: 14px; }
.site-footer__sedi, .site-footer__links { list-style: none; display: grid; gap: 10px; }
.site-footer__sedi li { display: grid; }
.site-footer__sedi span { color: #9fb0bf; font-size: .88rem; font-variant-numeric: tabular-nums; }
.site-footer__legal { border-top: 1px solid rgb(255 255 255 / 12%); padding-block: 20px 28px; font-size: .82rem; color: #9fb0bf; }
.site-footer__legal p { margin: 0 0 .5em; }
.site-footer__legal a:not(.btn) { color: #c9d4de; text-decoration: underline; text-underline-offset: .2em; }
.site-footer__policies { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.site-footer__policies .linklike { color: #c9d4de; text-decoration: none; }
@media (max-width: 900px) { .site-footer__grid { grid-template-columns: 1fr 1fr; } .site-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 520px) { .site-footer__grid { grid-template-columns: 1fr; } }

/* --- hero e ricerca ------------------------------------------------------------- */
.hero {
  position: relative;
  padding: clamp(28px, 5vw, 72px) 0 clamp(36px, 6vw, 80px);
  background:
    radial-gradient(900px 420px at 100% 0%, rgb(14 74 123 / 9%), transparent 70%),
    linear-gradient(180deg, var(--stone) 0%, var(--stone) 100%);
  overflow: hidden;
}
.hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: clamp(24px, 3.5vw, 56px); row-gap: clamp(18px, 2.5vw, 32px); align-items: stretch; }
.hero__copy { grid-column: 1 / -1; min-width: 0; }
.hero__copy .display { max-width: 15.5em; margin-bottom: .3em; }
.only-lg { display: none; }
@media (min-width: 1000px) { .only-lg { display: inline; } }
.hero__search { min-width: 0; display: flex; flex-direction: column; }
.hero__lead { font-size: clamp(1.05rem, 1rem + .3vw, 1.22rem); color: var(--ink-2); max-width: 62ch; margin: 0; }
.eyebrow--line { color: var(--ink-2); }
.hero__chips { margin-top: 16px; }

.finder { background: var(--paper); border-radius: var(--radius-lg); padding: clamp(14px, 2vw, 20px); box-shadow: var(--shadow-lg); border: 1px solid var(--line-2); display: grid; gap: 14px; }
.finder__tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 5px; background: var(--stone); border-radius: 14px; }
.finder__tabs label { position: relative; }
.finder__tabs input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.finder__tabs span { display: flex; align-items: center; justify-content: center; gap: .45em; min-height: 44px; border-radius: 10px; font-weight: 680; color: var(--ink-2); }
.finder__tabs b { font-variant-numeric: tabular-nums; font-weight: 800; color: var(--ink-3); }
.finder__tabs input:checked + span { background: var(--paper); color: var(--ink); box-shadow: var(--shadow-sm), inset 0 0 0 1px var(--line); }
.finder__tabs input:checked + span b { color: var(--blue); }
.finder__tabs input:focus-visible + span { outline: 3px solid var(--blue-2); }
.finder__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.finder__go { width: 100%; }
.finder__go span { font-variant-numeric: tabular-nums; }

.hero__feature {
  position: relative; display: block; border-radius: var(--radius-lg); overflow: hidden;
  min-height: 340px; background: var(--night);
  clip-path: polygon(14% 0, 100% 0, 100% 100%, 0 100%, 0 13%);
  color: #fff; text-decoration: none; box-shadow: var(--shadow-lg);
}
.hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.hero__feature:hover .hero__img { transform: scale(1.03); }
.hero__feature::after { content: ""; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgb(11 27 43 / 88%)); pointer-events: none; }
.hero__feature-tag { position: absolute; top: 18px; right: 18px; z-index: 1; display: inline-flex; gap: .4em; align-items: center; padding: .4em .8em; border-radius: 999px; background: var(--saffron); color: var(--ink); font-weight: 750; font-size: .85rem; }
.hero__feature-cap { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; display: flex; align-items: end; justify-content: space-between; gap: 16px; padding: 20px 22px; }
.hero__feature-cap strong { display: block; font-size: 1.35rem; font-stretch: 110%; }
.hero__feature-cap small { display: block; opacity: .85; font-size: .9rem; }
.hero__feature-price { display: inline-flex; align-items: center; gap: .4em; font-size: 1.3rem; font-weight: 800; white-space: nowrap; font-variant-numeric: tabular-nums; }

@media (max-width: 960px) {
  .hero__grid { grid-template-columns: minmax(0, 1fr); }
  .hero__feature { min-height: 0; aspect-ratio: 16 / 11; clip-path: polygon(10% 0, 100% 0, 100% 100%, 0 100%, 0 14%); }
}
@media (max-width: 520px) {
  .finder__fields { grid-template-columns: 1fr 1fr; gap: 10px; }
  .finder__fields .field > label { font-size: .8rem; }
  .hero__chips { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); scrollbar-width: none; }
  .hero__chips li { flex: none; }
}

/* --- testata con la foto di una sede e ricerca (profilo aspetto.ricerca 'avanzata') -------------
   La foto (public/img/home) sta dietro a tutto con un velo Notte più scuro a sinistra, dove ci sono
   i testi; i decori dei temi stagionali (.hero::before/::after) restano sopra la foto. Il fondo
   resta Notte anche dove la grafica di un sito ridefinisce .hero (Pieffe Moto); senza foto
   (aspetto.fotoRicerca false) un alone del colore del sito. */
.hero.hero--foto { padding: clamp(36px, 6vw, 84px) 0 clamp(28px, 4vw, 52px); background: var(--night); color: #fff; isolation: isolate; }
.hero.hero--senza-foto { background: radial-gradient(900px 460px at 100% 0%, color-mix(in srgb, var(--saffron) 26%, transparent), transparent 70%), var(--night); }
.hero__sfondo { position: absolute; inset: 0; z-index: -1; }
.hero__sfondo img { width: 100%; height: 100%; object-fit: cover; object-position: 70% 38%; }
.hero__sfondo::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgb(11 27 43 / 93%) 0%, rgb(11 27 43 / 76%) 40%, rgb(11 27 43 / 38%) 100%),
    linear-gradient(180deg, rgb(11 27 43 / 0%) 50%, rgb(11 27 43 / 80%) 100%);
}
.hero__in { display: grid; gap: clamp(20px, 2.6vw, 30px); }
.hero--foto .hero__copy .display { color: #fff; }
.hero--foto .eyebrow--line { color: #d7e3ee; }
.hero--foto .hero__lead { color: #d3dde7; }
.hero--foto .hero__chips { margin-top: 0; }

.hero-cerca { position: relative; display: flex; align-items: center; gap: 8px; max-width: 780px; margin-top: clamp(20px, 2.6vw, 30px); padding: 6px; border-radius: 16px; background: var(--paper); box-shadow: var(--shadow-lg); }
.hero-cerca:focus-within { box-shadow: var(--shadow-lg), 0 0 0 3px var(--saffron); }
.hero-cerca__icona { position: absolute; left: 20px; top: 50%; width: 1.4em; height: 1.4em; transform: translateY(-50%); color: var(--ink-3); pointer-events: none; }
.hero-cerca__campo { flex: 1; min-width: 0; min-height: 56px; padding: 0 12px 0 52px; border: 0; background: transparent; color: var(--ink); font-size: 1.12rem; }
.hero-cerca__campo:focus { border: 0; box-shadow: none; }
.hero-cerca__campo::placeholder { color: var(--ink-3); }
.hero-cerca__vai { min-height: 56px; padding-inline: 1.7em; }

.hero--foto .finder { color: var(--ink); }
.finder--foto { grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 14px 16px; }
.finder--foto .finder__scelte, .finder--foto .finder__piede { grid-column: 1 / -1; }
.finder--foto .finder__fields { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.finder--foto .finder__go { width: auto; min-width: 250px; }
.finder__scelte { display: flex; flex-wrap: wrap; gap: 6px; justify-self: start; padding: 5px; border-radius: 14px; background: var(--stone); }
.finder__scelte label { position: relative; flex: 1 1 auto; }
.finder__scelte input { position: absolute; inset: 0; margin: 0; opacity: 0; cursor: pointer; }
.finder__scelte span { display: flex; align-items: center; justify-content: center; gap: .45em; min-height: 44px; padding: 0 1.05em; border-radius: 10px; color: var(--ink-2); font-weight: 690; white-space: nowrap; }
.finder__scelte b { color: var(--ink-3); font-size: .86em; font-weight: 800; font-variant-numeric: tabular-nums; }
.finder__scelte input:checked + span { background: var(--night); color: #fff; box-shadow: var(--shadow-sm); }
.finder__scelte input:checked + span b { color: var(--saffron-2); }
.finder__scelte input:focus-visible + span { outline: 3px solid var(--blue-2); outline-offset: 2px; }
.finder__piede { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 20px; padding-top: 12px; border-top: 1px solid var(--line-2); }
.finder__avanzati { display: inline-flex; align-items: center; gap: .5em; min-height: 40px; padding: 0; border: 0; background: none; color: var(--blue); font-weight: 720; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: .2em; }
.finder__avanzati:hover { color: var(--blue-2); text-decoration-color: currentColor; }
.finder__avanzati .i:last-child { transition: transform .2s ease; }
.finder__avanzati:hover .i:last-child { transform: translateX(3px); }
.finder__arrivo { display: inline-flex; align-items: center; gap: .45em; color: var(--ink-2); font-weight: 650; text-decoration: none; }
.finder__arrivo b { color: var(--saffron-ink); font-variant-numeric: tabular-nums; }
.finder__arrivo:hover { color: var(--ink); }

@media (max-width: 1100px) {
  .finder--foto { grid-template-columns: minmax(0, 1fr); }
  .finder--foto .finder__go { width: 100%; }
}
@media (max-width: 860px) {
  .finder--foto .finder__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .hero__sfondo img { object-position: 50% 30%; }
  .hero__sfondo::after { background: linear-gradient(180deg, rgb(11 27 43 / 84%) 0%, rgb(11 27 43 / 70%) 45%, rgb(11 27 43 / 88%) 100%); }
  .hero--foto .hero__lead { font-size: 1rem; }
  .hero-cerca { padding: 5px; border-radius: 14px; }
  .hero-cerca__icona { left: 16px; width: 1.25em; height: 1.25em; }
  .hero-cerca__campo { min-height: 50px; padding-left: 44px; font-size: 1rem; }
  .hero-cerca__vai { min-height: 50px; padding-inline: 1.1em; }
  /* le cinque scelte su una riga: il numero va sotto il nome */
  .finder__scelte { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); justify-self: stretch; gap: 4px; padding: 4px; }
  .finder__scelte span { flex-direction: column; gap: 0; min-height: 50px; padding: 4px 2px; font-size: .86rem; line-height: 1.2; }
  .finder__scelte b { font-size: .78rem; }
}

/* --- ricerca avanzata (views/pages/ricerca.js) ------------------------------------------------ */
.ra-wrap { padding-top: clamp(20px, 3vw, 32px); }
.ra { display: grid; gap: 16px; }
.ra-cerca, .ra-blocco { padding: 20px 22px 22px; border: 1px solid var(--line-2); border-radius: var(--radius); background: var(--paper); }
.ra-cerca { display: grid; gap: 12px; }
.ra-corpo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.ra.is-loading .ra-corpo { opacity: .6; transition: opacity .2s ease; }
.ra-blocco { display: grid; gap: 14px; align-content: start; min-width: 0; }
.ra-blocco--largo { grid-column: 1 / -1; }
/* legenda nel flusso della griglia (non disegnata sul bordo del fieldset) */
.ra-blocco__titolo { float: left; display: flex; align-items: center; gap: .5em; width: 100%; margin: 0; font-size: 1.14rem; font-weight: 760; font-stretch: 108%; }
.ra-blocco__titolo .i { color: var(--blue); }
.ra-blocco__nota { margin: 0; color: var(--ink-3); font-size: .86rem; }
.ra-scelte { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; }
.ra .fchip { padding: .5em .9em; background: var(--paper); font-size: .94rem; }
.ra .fchip .fcheck__label { display: inline-flex; align-items: center; }
.ra-riga { display: grid; gap: 8px; }
.ra-riga__label { margin: 0; color: var(--ink-2); font-size: .88rem; font-weight: 650; }
.ra-modelli { display: grid; gap: 8px; padding-top: 14px; border-top: 1px dashed var(--line); }
.ra-campi { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ra .fcheck { padding-inline: 0; }
.ra-offerta { justify-self: start; padding: 8px 12px !important; border: 1px solid var(--red-line); background: var(--red-tint); font-weight: 650; }
.ra-offerta input { accent-color: var(--red); }
.ra-offerta .i { display: inline-block; width: 1.1em; height: 1.1em; margin-right: .2em; vertical-align: -.2em; color: var(--red); }

.ra-tipo { position: relative; display: flex; align-items: baseline; justify-content: space-between; gap: 14px; min-width: 150px; padding: 14px 16px; border: 1.5px solid var(--line); border-radius: 14px; cursor: pointer; font-size: 1.06rem; font-weight: 720; }
.ra-tipo input, .ra-forma input { position: absolute; inset: 0; z-index: 1; margin: 0; opacity: 0; cursor: pointer; }
.ra-tipo:hover, .ra-forma:hover { border-color: var(--ink-2); }
.ra-tipo:has(input:checked) { border-color: var(--night); background: var(--night); color: #fff; }
.ra-tipo:has(input:checked) .fcheck__n { color: var(--saffron-2); }
.ra-tipo:has(input:focus-visible), .ra-forma:has(input:focus-visible) { outline: 3px solid var(--blue-2); outline-offset: 2px; }

.ra-forme { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; list-style: none; }
.ra-forma { position: relative; display: grid; grid-template-columns: 1fr auto; align-items: start; gap: 0 8px; padding: 12px 14px 8px; overflow: hidden; border: 1.5px solid var(--line); border-radius: 14px; cursor: pointer; }
.ra-forma__nome { font-weight: 700; }
.ra-forma .silhouette { grid-column: 1 / -1; grid-row: 2; justify-self: end; width: 112px; margin-top: 4px; color: var(--stone-3); --sil-bg: var(--paper); transition: color .2s ease; }
.ra-forma:has(input:checked) { border-color: var(--night); box-shadow: inset 0 0 0 1.5px var(--night); }
.ra-forma:has(input:checked) .silhouette { color: var(--saffron); }

.pallino { display: inline-block; flex: none; width: 1.05em; height: 1.05em; margin-right: .45em; border-radius: 50%; background: var(--c); box-shadow: inset 0 0 0 1px rgb(20 24 29 / 25%); }
.fchip:has(input:checked) .pallino { box-shadow: 0 0 0 1.5px rgb(255 255 255 / 70%); }

.ra-barra { position: sticky; bottom: 0; z-index: 5; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 20px; padding: 14px clamp(16px, 2vw, 22px); border: 1px solid var(--line-2); border-bottom: 0; border-radius: var(--radius) var(--radius) 0 0; background: var(--paper); box-shadow: 0 -12px 30px -20px rgb(11 27 43 / 50%); }
.ra-barra__n { margin: 0; color: var(--ink-2); font-size: 1.02rem; }
.ra-barra__n strong { color: var(--ink); font-size: 1.65rem; font-weight: 820; font-variant-numeric: tabular-nums; }
.ra-barra__azioni { display: flex; gap: 10px; }
@media (max-width: 760px) {
  .ra-corpo { grid-template-columns: minmax(0, 1fr); }
  .ra-cerca, .ra-blocco { padding: 16px; }
  .ra-tipo { flex: 1 1 140px; min-width: 0; }
  .ra-scelte:has(.ra-tipo) > li { display: flex; flex: 1 1 140px; }
  .ra-scelte:has(.ra-tipo) > li > .ra-tipo { flex: 1; }
  .ra-barra { margin-inline: calc(var(--gutter) * -1); border-inline: 0; border-radius: 0; }
  .ra-barra__n strong { font-size: 1.35rem; }
  .ra-barra__azioni { flex: 1 1 100%; }
  .ra-barra__azioni .btn--primary { flex: 1; }
}

/* --- tasselli carrozzeria ----------------------------------------------------------- */
.body-tiles { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(158px, 1fr)); gap: 12px; }
.body-tile {
  position: relative; display: grid; align-content: start; gap: 2px;
  min-height: 132px; padding: 16px 16px 12px; overflow: hidden;
  background: var(--paper); border: 1px solid var(--line-2); border-radius: var(--radius);
  color: var(--ink); text-decoration: none;
  transition: border-color .15s ease, transform .2s ease, box-shadow .2s ease;
}
.body-tile:hover { border-color: var(--ink-2); color: var(--ink); transform: translateY(-2px); box-shadow: var(--shadow); }
.body-tile__n { font-size: 2.3rem; line-height: 1; font-weight: 820; font-stretch: 118%; font-variant-numeric: tabular-nums; color: var(--blue); }
.body-tile__label { font-weight: 700; }
.body-tile .silhouette { position: absolute; right: -14px; bottom: -6px; width: 128px; color: var(--stone-3); --sil-bg: var(--paper); transition: color .2s ease, transform .3s ease; }
.body-tile:hover .silhouette { color: var(--saffron); transform: translateX(-4px); }

/* --- scheda auto (card) ------------------------------------------------------------- */
.vgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 262px), 1fr)); gap: clamp(14px, 1.6vw, 20px); }
/* prezzi allineati nella stessa riga di schede: ogni scheda occupa due fasce condivise con le
   altre della riga (dati e prezzo; pulsante «Scopri lo sconto» delle nuove), quindi il prezzo cade
   alla stessa altezza anche accanto a una scheda con il pulsante. Lo spazio tra le righe diventa
   il margine sotto le schede. */
@supports (grid-template-rows: subgrid) and selector(:has(*)) {
  .vgrid:has(> .vcard) { row-gap: 0; }
  .vgrid > .vcard { display: grid; grid-row: span 2; grid-template-rows: subgrid; row-gap: 0; margin-bottom: clamp(14px, 1.6vw, 20px); }
  .vgrid > .vcard > .vcard__cta { align-self: end; }
}
.vcard { position: relative; display: flex; flex-direction: column; background: var(--paper); border: 1px solid var(--line-2); border-radius: var(--radius); overflow: hidden; transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease; }
.vcard:hover { box-shadow: var(--shadow); border-color: var(--line); transform: translateY(-2px); }
.vcard__link { display: flex; flex-direction: column; flex: 1; color: inherit; text-decoration: none; }
.vcard__link:hover { color: inherit; }
.vcard__link:focus-visible { outline-offset: -3px; border-radius: var(--radius); }
.vcard__media { position: relative; aspect-ratio: 4 / 3; background: var(--stone-2); overflow: hidden; }
.vcard__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.2, .7, .2, 1); }
.vcard:hover .vcard__media img { transform: scale(1.04); }
.vcard__placeholder { position: absolute; inset: 0; display: grid; place-items: center; align-content: center; gap: 6px; color: #b9ae98; --sil-bg: #efe9dc; background: repeating-linear-gradient(-45deg, #efe9dc 0 14px, #ebe4d5 14px 28px); }
.vcard__placeholder .silhouette { width: 62%; }
.vcard__placeholder span { font-size: .78rem; font-weight: 720; letter-spacing: .12em; text-transform: uppercase; color: var(--saffron-ink); background: var(--saffron-soft); padding: .3em .7em; border-radius: 6px; }
.vcard__count { position: absolute; left: 10px; bottom: 10px; display: inline-flex; gap: .35em; align-items: center; padding: .25em .55em; border-radius: 8px; background: rgb(11 27 43 / 72%); color: #fff; font-size: .78rem; font-weight: 650; }
.vcard__count .i { width: 1em; height: 1em; }
.vcard__body { display: flex; flex-direction: column; flex: 1; padding: 14px 16px 16px; }
.vcard__title { font-size: 1.18rem; font-stretch: 106%; margin: 0; font-weight: 780; }
.vcard__make { font-weight: 520; color: var(--ink-2); }
.vcard__version { font-size: .9rem; color: var(--ink-3); margin: 2px 0 10px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.vcard__specs { list-style: none; display: flex; flex-wrap: wrap; gap: 4px 0; font-size: .86rem; color: var(--ink-2); font-variant-numeric: tabular-nums; margin-bottom: 14px; }
.vcard__specs li:not(:last-child)::after { content: "·"; margin-inline: .45em; color: var(--stone-3); }
.vcard__foot { margin-top: auto; display: flex; align-items: end; justify-content: space-between; gap: 10px; padding-top: 12px; border-top: 1px solid var(--line-2); }
/* il prezzo non si restringe mai: le sedi lunghe (Mosciano Sant'Angelo, San Benedetto del Tronto)
   vanno su due righe restando a destra, così i prezzi restano allineati tra le schede */
.vcard__foot .price { flex: none; }
/* la riga «IVA esposta/esclusa» sotto il prezzo: dove manca se ne tiene lo spazio, così il prezzo
   resta alla stessa altezza delle schede vicine */
.vcard__foot .price__vat { line-height: 1.3; }
.vcard__foot .price:not(:has(.price__vat, .price__ref, .price__sub)) { padding-bottom: calc(.78rem * 1.3 + 2px); }
.vcard__where { display: block; min-width: 0; font-size: .82rem; line-height: 1.3; color: var(--ink-3); text-align: right; text-wrap: balance; }
.vcard__where .i { display: inline-block; width: 1em; height: 1em; margin-right: .2em; vertical-align: -.15em; }
.vcard--arrivo .vcard__title::after { content: ""; }

.save-btn { position: absolute; top: 10px; right: 10px; z-index: 2; width: 42px; height: 42px; border-radius: 50%; border: 0; background: rgb(255 255 255 / 92%); color: var(--ink); display: grid; place-items: center; box-shadow: var(--shadow-sm); }
.save-btn:hover { color: var(--red); }
.save-btn .i { width: 22px; height: 22px; }
.save-btn__on { display: none; color: var(--red); }
[aria-pressed=true] .save-btn__on { display: block; }
[aria-pressed=true] .save-btn__off { display: none; }

.price { display: grid; gap: 2px; }
.price__value { font-size: 1.38rem; font-weight: 820; font-stretch: 106%; font-variant-numeric: tabular-nums; letter-spacing: -.01em; line-height: 1.1; }
.price__value--ask { font-size: 1.05rem; font-weight: 700; }
.price__vat, .price__note { font-size: .78rem; color: var(--ink-3); font-weight: 600; }
.price__tag { justify-self: start; font-size: .72rem; font-weight: 750; text-transform: uppercase; letter-spacing: .06em; background: var(--red); color: #fff; padding: .2em .5em; border-radius: 5px; }
.price--promo .price__value { color: var(--red); }
/* nuova senza campagna: listino della casa barrato, con la dicitura, e invito a chiedere lo sconto */
.price__label { font-size: .72rem; font-weight: 750; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-3); }
.price--listino .price__value { text-decoration-thickness: 2px; color: var(--ink-2); font-weight: 760; }
.vcard__cta { margin: 0 16px 16px; justify-content: center; text-align: center; white-space: normal; }
.vdp__listino-hint { margin: -2px 0 4px; font-size: .85rem; color: var(--ink-3); text-align: center; }
.actionbar__price s { text-decoration-thickness: 2px; }
.price__ref { font-size: .78rem; color: var(--ink-3); }
.price--lg .price__value { font-size: clamp(2rem, 1.6rem + 1.2vw, 2.6rem); font-weight: 840; font-stretch: 112%; }
.price--lg .price__vat { font-size: .88rem; }

/* --- auto in offerta -------------------------------------------------------------------
   Rosso delle promozioni (bianco sopra: contrasto 6,6:1), mai lo zafferano delle azioni.
   Schede: fascetta sulla foto con il taglio obliquo del monogramma PF, prezzo in rosso e prezzo
   barrato nella riga dell'IVA (stessa altezza delle schede vicine). Scheda dell'auto: riquadro
   con etichetta, risparmio, prezzo precedente barrato e prezzo in offerta. */
.price--offerta .price__value { color: var(--red); }
/* altezza della riga uguale a quella dell'IVA delle schede vicine, anche con il barrato più grande */
.price__sub { font-size: .78rem; line-height: calc(.78rem * 1.3); color: var(--ink-3); font-weight: 600; font-variant-numeric: tabular-nums; }
.price__was s { font-size: .88rem; color: var(--ink-2); font-weight: 680; text-decoration-thickness: 1.5px; font-variant-numeric: tabular-nums; }
/* prezzo con la rottamazione (campagne delle case): la condizione sta sempre accanto al prezzo;
   nella scheda dell'auto sotto c'è il prezzo per chi non rottama */
.price__cond { color: var(--red); font-weight: 760; }
.price__cond--sm { display: block; font-size: .78rem; line-height: 1.3; }
.actionbar__cond { display: block; font-size: .72rem; font-weight: 700; line-height: 1.2; }
.price__cond--lg { display: block; margin-top: 2px; font-size: .9rem; text-decoration: underline; text-underline-offset: 2px; }
.price__alt { display: block; margin-top: 8px; font-size: .92rem; color: var(--ink-2); }
.price__alt strong { font-variant-numeric: tabular-nums; }
.price__head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 0 0 8px; }
.price__tag .i { display: inline-block; width: 1.15em; height: 1.15em; margin-right: .15em; vertical-align: -.22em; }
.price__save { font-size: .84rem; font-weight: 760; color: var(--red); background: var(--paper); border: 1px solid var(--red-line); padding: .12em .6em; border-radius: 999px; font-variant-numeric: tabular-nums; }
.price--lg .price__was { font-size: .9rem; font-weight: 600; color: var(--ink-3); }
.price--lg .price__was s { margin-left: .2em; font-size: 1.08rem; }
/* più specifico di «.vdp__card .price» (filetto sopra, nessun margine laterale) */
.vdp__card .price.price--offerta { margin: 2px 0 14px; padding: 14px 16px 16px; border: 1px solid var(--red-line); border-radius: var(--radius); background: linear-gradient(180deg, var(--red-tint), var(--paper) 75%); }
.vcard--offerta { border-color: var(--red-line); }
.vcard--offerta:hover { border-color: #e7aaa3; }
.vcard__deal {
  position: absolute; z-index: 1; top: 12px; left: 0;
  display: inline-flex; align-items: baseline; gap: .5em; max-width: calc(100% - 64px);
  padding: .4em 1.15em .4em .8em; background: var(--red); color: #fff;
  clip-path: polygon(0 0, 100% 0, calc(100% - 9px) 100%, 0 100%);
  font-size: 1rem; font-weight: 820; font-stretch: 106%; line-height: 1.15; font-variant-numeric: tabular-nums;
}
.vcard__deal-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .68rem; font-weight: 760; font-stretch: 112%; letter-spacing: .1em; text-transform: uppercase; }
.vcard__deal-save { flex: none; white-space: nowrap; }
.vcard__media:has(.vcard__deal) .vcard__indicativa { top: 50px; }
.chip--offerta { background: var(--red); border-color: var(--red); color: #fff; }
.chip--offerta span { color: var(--red-soft); }
.chip--offerta:hover { background: var(--red-2); border-color: var(--red-2); color: #fff; }
.section--offerte .eyebrow { color: var(--red); }
.section--offerte .eyebrow::before { background: var(--red); }
.stage-tabs__offerte .i { color: var(--red); }
.stage-tabs a.stage-tabs__offerte b, .stage-tabs a.stage-tabs__offerte[aria-current=page] b { color: var(--red); }
.filters__group--offerta .fcheck { border: 1px solid var(--red-line); background: var(--red-tint); font-weight: 650; }
.filters__group--offerta .fcheck:hover { background: var(--red-soft); }
.filters__group--offerta .fcheck input { accent-color: var(--red); }
.filters__group--offerta .fcheck__label .i { display: inline-block; width: 1.1em; height: 1.1em; margin-right: .2em; vertical-align: -.2em; color: var(--red); }
.actionbar__was { font-size: .78rem; font-weight: 650; color: var(--ink-2); }
.price-was { font-weight: 600; opacity: .75; text-decoration-thickness: 1.5px; }
.offer-band { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin-top: 28px; padding: 16px 20px; border: 1px solid var(--red-line); border-radius: var(--radius); background: var(--paper); }
.offer-band p { display: flex; align-items: flex-start; gap: .6em; margin: 0; }
.offer-band p > .i { flex: none; width: 1.3em; height: 1.3em; margin-top: .1em; color: var(--red); }
.tag-mini.tag-mini--offerta { background: var(--red-soft); color: var(--red); }

/* binario orizzontale */
.rail { --rail-pad: max(var(--gutter), calc((100% - var(--max)) / 2 + var(--gutter))); overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--rail-pad); overscroll-behavior-x: contain; scrollbar-width: thin; scrollbar-color: var(--stone-3) transparent; padding-bottom: 12px; }
.rail__track { display: grid; grid-auto-flow: column; grid-auto-columns: min(82vw, 312px); gap: 16px; padding-inline: var(--rail-pad); width: max-content; }
.rail .vcard { scroll-snap-align: start; }

/* --- in arrivo --------------------------------------------------------------------- */
.arrivo { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.arrivo__copy p { color: #c7d3de; max-width: 52ch; }
.arrivo__list { list-style: none; display: grid; gap: 10px; }
.arrivo__item { display: grid; grid-template-columns: 96px 1fr auto; align-items: center; gap: 16px; padding: 12px 18px 12px 12px; border-radius: 16px; background: rgb(255 255 255 / 5%); border: 1px solid rgb(255 255 255 / 10%); color: #fff; text-decoration: none; transition: background-color .15s ease, border-color .15s ease; }
.arrivo__item:hover { background: rgb(255 255 255 / 9%); border-color: rgb(242 163 15 / 55%); color: #fff; }
.arrivo__sil { display: grid; place-items: center; height: 60px; border-radius: 10px; background: rgb(255 255 255 / 6%); color: rgb(255 255 255 / 55%); --sil-bg: var(--night-2); padding: 6px; }
.arrivo__txt { display: grid; line-height: 1.3; min-width: 0; }
.arrivo__txt small { color: #a9b8c6; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.arrivo__price { font-weight: 800; font-variant-numeric: tabular-nums; }
@media (max-width: 900px) { .arrivo { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .arrivo__item { grid-template-columns: 72px 1fr; } .arrivo__price { grid-column: 2; } }

/* --- mappa della rete -------------------------------------------------------------- */
.rete-section { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .85fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.rete { position: relative; }
.rete__svg { width: 100%; height: auto; overflow: hidden; font-family: var(--font); border-radius: var(--radius-lg); }
.rete__sea { fill: var(--sea); }
.rete__dot { fill: #b8cfe1; }
.rete__coast { fill: none; stroke: #8db0cb; stroke-width: 2; stroke-linejoin: round; }
.rete__sea-label { font-size: 13px; letter-spacing: .5em; fill: #6f97b8; font-weight: 650; font-stretch: 120%; }
.rete__border { fill: none; stroke: #b6aa92; stroke-width: 1.6; stroke-dasharray: 2 6; stroke-linecap: round; }
.rete__region { font-size: 12px; letter-spacing: .32em; fill: #a1957d; font-weight: 700; font-stretch: 120%; }
.rete__mount path { fill: #d8cfbe; stroke: #c3b8a3; stroke-width: 1; }
.rete__mount text { font-size: 12px; fill: #8c826f; font-weight: 650; letter-spacing: .04em; }
.rete__route-bg { fill: none; stroke: var(--stone); stroke-width: 13; stroke-linecap: round; stroke-linejoin: round; }
.rete__route { fill: none; stroke: var(--saffron); stroke-width: 6; stroke-linecap: round; stroke-linejoin: round; }
.rete__hit { fill: transparent; }
.rete__node { fill: #fff; stroke: var(--night); stroke-width: 3.5; transition: r .2s ease; }
.rete__node-in { fill: var(--night); }
.rete__label { font-size: 15.5px; font-weight: 760; fill: var(--night); paint-order: stroke; stroke: var(--stone); stroke-width: 5px; stroke-linejoin: round; font-stretch: 104%; }
.rete__sub { font-size: 12px; font-weight: 600; fill: var(--ink-3); paint-order: stroke; stroke: var(--stone); stroke-width: 4px; font-variant-numeric: tabular-nums; }
.rete__stop:hover .rete__node, .rete__stop:focus-visible .rete__node, .rete__stop.is-active .rete__node { fill: var(--saffron); }
.rete__stop:focus-visible { outline: none; }
.rete__stop:focus-visible .rete__label { text-decoration: underline; }
.rete__compass path { fill: var(--ink-3); }
.rete__compass text { font-size: 12px; font-weight: 700; fill: var(--ink-3); }
.rete__cap { font-size: .82rem; color: var(--ink-3); margin-top: 8px; }
.section--paper .rete__route-bg, .section--paper .rete__label, .section--paper .rete__sub { stroke: var(--paper); }

.sedi-mini { list-style: none; display: grid; border-top: 1px solid var(--line); margin-top: 8px; }
.sedi-mini a { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 2px 12px; padding: 14px 4px; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.sedi-mini a:hover { background: var(--stone-2); }
.sedi-mini__name { font-weight: 720; font-size: 1.05rem; }
.sedi-mini__meta { grid-row: 2; font-size: .86rem; color: var(--ink-3); }
.sedi-mini .i { grid-row: 1 / 3; grid-column: 2; color: var(--ink-3); }
@media (max-width: 900px) { .rete-section { grid-template-columns: 1fr; } .rete-section .rete { max-width: 520px; margin-inline: auto; } }

/* --- marchi ---------------------------------------------------------------------------- */
.brand-logos { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 132px), 1fr)); gap: 12px; }
.brand-logos__item { display: grid; justify-items: center; align-content: center; gap: 8px; height: 100%; min-height: 112px; padding: 16px 10px 12px; border: 1px solid var(--line-2); border-radius: var(--radius); background: var(--paper); color: var(--ink-2); text-align: center; text-decoration: none; transition: border-color .15s ease, box-shadow .2s ease, transform .2s ease; }
.brand-logos__item:hover { border-color: var(--blue); box-shadow: var(--shadow); transform: translateY(-2px); color: var(--ink); }
.brand-logos__item .brand-logo { height: 48px; max-width: 80%; }
.brand-logos__item > span { font-size: .8rem; font-weight: 650; line-height: 1.2; }
.brand-logos__item:has(.brand-logo--text) > span { display: none; }
.brand-logos--sm { grid-template-columns: repeat(auto-fill, minmax(min(100%, 112px), 1fr)); gap: 10px; }
.brand-logos--sm .brand-logos__item { min-height: 92px; padding: 12px 8px 10px; }
.brand-logos--sm .brand-logos__item .brand-logo { height: 38px; }
@media (max-width: 520px) {
  .brand-logos, .brand-logos--sm { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .brand-logos__item { min-height: 86px; padding: 10px 6px 8px; gap: 6px; }
  .brand-logos__item .brand-logo, .brand-logos--sm .brand-logos__item .brand-logo { height: 32px; max-width: 86%; }
  .brand-logos__item > span { font-size: .72rem; }
}

.brand-list { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 14px; }
.brand-row { background: var(--paper); border: 1px solid var(--line-2); border-radius: var(--radius); padding: 18px 20px; display: grid; gap: 6px; scroll-margin-top: calc(var(--header-h) + 20px); }
.brand-row__logo { justify-self: start; display: block; margin-bottom: 4px; }
.brand-row__logo .brand-logo { height: 44px; max-width: 160px; }
.brand-row__name a { color: inherit; text-decoration: none; }
.brand-row__name a:hover { text-decoration: underline; }
.brand-row:target { border-color: var(--saffron); box-shadow: 0 0 0 3px var(--saffron-soft); }
.brand-row__name { font-size: 1.45rem; font-stretch: 114%; margin: 0; }
.brand-row__sedi { font-size: .92rem; color: var(--ink-2); margin: 0; display: flex; gap: .4em; align-items: baseline; flex-wrap: wrap; }
.brand-row__sedi .i { width: 1em; height: 1em; align-self: center; color: var(--ink-3); }
.brand-row__stock { margin: 6px 0 0; }
.tag-list { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.tag-list a, .tag-list li:not(:has(a)) { display: inline-flex; gap: .45em; align-items: center; padding: .4em .8em; border-radius: 999px; background: var(--paper); border: 1px solid var(--line); color: var(--ink); text-decoration: none; font-weight: 600; font-size: .92rem; }
.tag-list a span { color: var(--ink-3); font-variant-numeric: tabular-nums; }
/* pagine automatiche del catalogo (lib/landing.js): link correlati e sedi della città */
.correlati h2 { margin: 1.6rem 0 .7rem; }
.correlati h2:first-child { margin-top: 0; }
.sedi-list--righe { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); margin-top: 12px; }

/* --- servizi ------------------------------------------------------------------------------ */
.service-grid { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 14px; }
.service-card { height: 100%; display: grid; align-content: start; gap: 6px; padding: 22px; border-radius: var(--radius); background: var(--paper); border: 1px solid var(--line-2); color: var(--ink); text-decoration: none; transition: border-color .15s ease, box-shadow .2s ease, transform .2s ease; }
.service-card:hover { border-color: var(--line); box-shadow: var(--shadow); color: var(--ink); transform: translateY(-2px); }
.service-card strong { font-size: 1.15rem; font-stretch: 106%; }
.service-card > span:not(.service-card__icon):not(.link-arrow) { color: var(--ink-2); font-size: .95rem; }
.service-card__icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 14px; background: var(--night); color: var(--saffron-2); margin-bottom: 8px; }
.service-card__icon .i { width: 24px; height: 24px; }
.service-card .link-arrow { margin-top: 8px; }

/* --- gruppo -------------------------------------------------------------------------------- */
.gruppo-strip { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(24px, 5vw, 64px); align-items: center; }
.timeline-mini { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); row-gap: 28px; }
@media (max-width: 640px) { .timeline-mini { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.timeline-mini li { position: relative; padding: 30px 18px 0 0; font-size: .9rem; color: var(--ink-2); border-top: 3px solid var(--night); }
.timeline-mini li::before { content: ""; position: absolute; top: -9px; left: 0; width: 15px; height: 15px; border-radius: 50%; background: var(--saffron); border: 3px solid var(--night); }
.timeline-mini span { position: absolute; top: 8px; left: 0; font-weight: 820; font-stretch: 118%; color: var(--night); font-size: 1rem; }
@media (max-width: 900px) { .gruppo-strip { grid-template-columns: 1fr; } }

/* percorso del cliente (views/percorso.js) al posto della storia nella home classica: intestazione
   su due colonne, sotto le cinque tappe sulla linea; dal telefono alla tavoletta la linea è verticale */
.percorso-strip { display: grid; gap: clamp(32px, 4vw, 52px); }
.percorso-strip__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px clamp(24px, 5vw, 64px); align-items: end; }
.percorso-strip__head .section-title { margin-bottom: 0; }
.percorso-strip__head p { margin: 0 0 10px; }
@media (max-width: 900px) { .percorso-strip__head { grid-template-columns: 1fr; } }
.percorso { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); counter-reset: passo; }
.percorso__passo { position: relative; display: flex; flex-direction: column; padding: 34px 20px 0 0; border-top: 3px solid var(--night); counter-increment: passo; font-size: .95rem; color: var(--ink-2); }
.percorso__passo::before { content: counter(passo); position: absolute; top: -15px; left: 0; display: grid; place-items: center; width: 27px; height: 27px; border-radius: 50%; background: var(--saffron); border: 3px solid var(--night); color: var(--night); font-size: .8rem; font-weight: 820; line-height: 1; }
.percorso__titolo { margin: 0 0 6px; color: var(--night); font-size: 1.1rem; font-weight: 820; font-stretch: 118%; }
.percorso__passo p { margin: 0; }
.percorso__passo .percorso__azioni { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: auto; padding-top: 12px; }
.percorso__azioni .link-arrow { font-size: .92rem; }
.percorso__chat { padding: 0; border: 0; background: none; font-family: inherit; cursor: pointer; }
@media (max-width: 900px) {
  .percorso { grid-template-columns: 1fr; margin-left: 12px; border-left: 3px solid var(--night); }
  .percorso__passo { padding: 0 0 26px 30px; border-top: 0; }
  .percorso__passo::before { top: -3px; left: -15px; }
  .percorso__passo:last-child { padding-bottom: 0; }
  .percorso__passo .percorso__azioni { padding-top: 8px; }
}
.percorso--verticale { grid-template-columns: 1fr; margin-left: 12px; border-left: 3px solid var(--night); }
.percorso--verticale .percorso__passo { padding: 0 0 26px 30px; border-top: 0; }
.percorso--verticale .percorso__passo::before { top: -3px; left: -15px; }
.percorso--verticale .percorso__passo:last-child { padding-bottom: 0; }
.percorso--verticale .percorso__passo .percorso__azioni { padding-top: 8px; }
.h3.mt + .percorso--verticale { margin-top: 22px; }

.numbers { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.numbers li { background: var(--paper); border: 1px solid var(--line-2); border-radius: var(--radius); padding: 18px 20px; }
.numbers strong { display: block; font-size: clamp(2.1rem, 1.6rem + 1.6vw, 3rem); line-height: 1; font-weight: 840; font-stretch: 120%; color: var(--blue); font-variant-numeric: tabular-nums; }
.numbers span { color: var(--ink-2); font-weight: 600; }
.timeline { list-style: none; display: grid; gap: 0; border-left: 3px solid var(--night); margin-left: 8px; }
.timeline li { position: relative; padding: 0 0 22px 26px; }
.timeline li::before { content: ""; position: absolute; left: -10px; top: 4px; width: 17px; height: 17px; border-radius: 50%; background: var(--saffron); border: 3px solid var(--night); }
.timeline__year { font-weight: 840; font-stretch: 120%; font-size: 1.25rem; color: var(--night); }
.timeline p { margin: 2px 0 0; color: var(--ink-2); }

/* --- fascia contatti ---------------------------------------------------------------------- */
.contact-band { background: linear-gradient(110deg, var(--night) 0%, var(--night-2) 60%, var(--night-3) 100%); color: #d6e0ea; padding-block: clamp(40px, 6vw, 72px); position: relative; overflow: hidden; }
.contact-band::before, .contact-band::after { content: ""; position: absolute; top: -10%; height: 120%; background: var(--saffron); transform: skewX(-20deg); pointer-events: none; }
.contact-band::before { right: 4%; width: 64px; opacity: .9; z-index: 0; }
.contact-band::after { right: -1%; width: 22px; opacity: .35; z-index: 0; }
.contact-band .btn--outline-light { background: rgb(11 27 43 / 60%); }
@media (max-width: 960px) { .contact-band::before { right: -4%; } .contact-band::after { right: -9%; } }
.contact-band__in { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px 48px; align-items: center; }
.contact-band .section-title { color: #fff; }
.contact-band p { margin: 0; max-width: 54ch; }
.contact-band__actions { display: flex; flex-wrap: wrap; gap: 10px; }
@media (max-width: 960px) { .contact-band__in { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .contact-band__actions .btn { width: 100%; } }

.help-strip { display: flex; flex-wrap: wrap; gap: 16px 32px; align-items: center; justify-content: space-between; padding: 22px 24px; border-radius: var(--radius-lg); background: var(--paper); border: 1px solid var(--line-2); }
.help-strip p { margin: 0; max-width: 62ch; }
.help-strip__actions { display: flex; flex-wrap: wrap; gap: 10px; }

/* --- testate di pagina --------------------------------------------------------------- */
.page-head { padding: clamp(18px, 3vw, 32px) 0 clamp(22px, 3vw, 36px); border-bottom: 1px solid var(--line-2); }
.page-head--center { text-align: center; padding-block: clamp(48px, 8vw, 110px); border: 0; }
.page-head--center .page-intro, .page-head--center .narrow { margin-inline: auto; }
.page-head--center .btn-row { justify-content: center; }
.page-head__row { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 16px 32px; }
.page-head__row .page-intro { margin-bottom: 0; }
.page-head__logo { display: block; width: auto; height: clamp(34px, 22px + 2vw, 48px); margin: 6px 0 16px; }
.rete-logo { display: block; width: auto; height: 34px; }
.crumbs ol { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 2px 4px; font-size: .86rem; color: var(--ink-3); margin-bottom: 16px; }
.crumbs li { display: inline-flex; align-items: center; gap: 4px; }
.crumbs a { color: var(--ink-3); text-decoration: none; }
.crumbs a:hover { color: var(--ink); text-decoration: underline; }
.crumbs .i { width: .95em; height: .95em; opacity: .6; }
.crumbs [aria-current] { color: var(--ink-2); font-weight: 600; max-width: 40ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.done-mark { display: inline-grid; place-items: center; width: 72px; height: 72px; border-radius: 50%; background: var(--ok-soft); color: var(--ok); margin-bottom: 16px; }
.done-mark .i { width: 36px; height: 36px; }
.ref-box { display: inline-block; padding: .7em 1.1em; border-radius: 12px; background: var(--paper); border: 1px dashed var(--stone-3); font-size: 1.05rem; }
.ref-box strong { font-variant-numeric: tabular-nums; letter-spacing: .04em; }
.error-list { padding-left: 1.2em; color: var(--red); font-weight: 600; margin-bottom: 1em; }

/* --- catalogo ---------------------------------------------------------------------------- */
.stage-tabs { display: inline-flex; padding: 5px; gap: 4px; border-radius: 14px; background: var(--stone-2); }
.stage-tabs a { display: inline-flex; align-items: center; gap: .45em; padding: .55em 1em; border-radius: 10px; color: var(--ink-2); font-weight: 680; text-decoration: none; }
.stage-tabs a:hover { color: var(--ink); }
.stage-tabs a b { font-variant-numeric: tabular-nums; color: var(--ink-3); }
.stage-tabs a[aria-current=page] { background: var(--paper); color: var(--ink); box-shadow: var(--shadow-sm); }
.stage-tabs a[aria-current=page] b { color: var(--blue); }
@media (max-width: 520px) {
  .stage-tabs { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); width: 100%; }
  .stage-tabs a { justify-content: center; flex-wrap: wrap; gap: .3em; padding: .55em .5em; font-size: .92rem; text-align: center; }
}

.catalog { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 28px; padding-block: 24px 64px; align-items: start; }
.catalog__form { display: contents; }

.filters[popover] {
  display: flex; flex-direction: column;
  position: sticky; top: calc(var(--header-h) + 16px); inset: auto;
  width: auto; height: auto; max-height: calc(100dvh - var(--header-h) - 32px);
  margin: 0; padding: 0; border: 1px solid var(--line-2); border-radius: var(--radius);
  background: var(--paper); color: var(--ink); overflow: hidden;
}
.filters__head { display: none; }
.filters__body { overflow-y: auto; padding: 6px 18px 18px; overscroll-behavior: contain; scrollbar-width: thin; }
.filters__group { padding: 16px 0; border-bottom: 1px solid var(--line-2); }
.filters__group:last-child { border-bottom: 0; }
.filters__group legend { font-weight: 750; font-size: .95rem; margin-bottom: 10px; float: left; width: 100%; }
.filters__group legend + * { clear: both; }
.filters__list { list-style: none; display: grid; gap: 2px; }
.filters__list--scroll { max-height: 260px; overflow-y: auto; padding-right: 4px; scrollbar-width: thin; }
.fcheck { display: flex; align-items: center; gap: 10px; padding: 7px 6px; border-radius: 8px; cursor: pointer; font-size: .95rem; }
.fcheck:hover { background: var(--stone); }
.fcheck input { width: 18px; height: 18px; margin: 0; accent-color: var(--blue); flex: none; }
.fcheck__label { flex: 1; }
.fcheck__n { font-size: .82rem; color: var(--ink-3); font-variant-numeric: tabular-nums; }
.is-zero { opacity: .45; }
.filters__chips { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; }
.fchip { position: relative; display: inline-flex; align-items: center; gap: 6px; padding: .4em .75em; border-radius: 999px; border: 1.5px solid var(--line); cursor: pointer; font-size: .9rem; font-weight: 620; }
.fchip input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.fchip:has(input:checked) { background: var(--night); border-color: var(--night); color: #fff; }
.fchip:has(input:checked) .fcheck__n { color: #b8c6d3; }
.fchip:has(input:focus-visible) { outline: 3px solid var(--blue-2); outline-offset: 2px; }
.filters__pair { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.filters__pair select { min-height: 42px; font-size: .94rem; }
.filters__empty { font-size: .88rem; color: var(--ink-3); margin: 0; }
.filters__foot { display: flex; gap: 10px; padding: 12px 18px; border-top: 1px solid var(--line-2); background: var(--paper); }
.filters__foot .btn { flex: 1; }
.js .filters__foot { display: none; }
.filters-toggle { display: none; }

.toolbar { display: flex; align-items: center; gap: 12px 20px; flex-wrap: wrap; margin-bottom: 14px; }
.toolbar__count { margin: 0; font-size: 1.05rem; color: var(--ink-2); }
.toolbar__count strong { font-size: 1.3rem; color: var(--ink); font-variant-numeric: tabular-nums; }
.toolbar__sort { margin-left: auto; }
.toolbar__sort label { font-size: .9rem; color: var(--ink-3); font-weight: 600; }
.toolbar__sort select { min-height: 42px; width: auto; }
.active-chips { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 18px; }
.achip { display: inline-flex; align-items: center; gap: .35em; padding: .35em .5em .35em .8em; border-radius: 999px; background: var(--night); color: #fff; text-decoration: none; font-size: .88rem; font-weight: 620; }
.achip:hover { background: var(--night-3); color: #fff; }
.achip .i { width: 1em; height: 1em; opacity: .8; }
.achip--reset { background: transparent; color: var(--ink-2); text-decoration: underline; padding-inline: .5em; }
.achip--reset:hover { background: transparent; color: var(--ink); }
[data-results].is-loading { opacity: .55; transition: opacity .15s ease; }

.pager { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; margin-top: 32px; }
.pager ol { list-style: none; display: flex; gap: 4px; }
.pager__num { display: grid; place-items: center; min-width: 44px; height: 44px; border-radius: 10px; text-decoration: none; color: var(--ink); font-weight: 680; font-variant-numeric: tabular-nums; }
a.pager__num:hover { background: var(--paper); }
.pager__num[aria-current] { background: var(--night); color: #fff; }
.pager__gap { display: grid; place-items: center; min-width: 24px; color: var(--ink-3); }
.pager__step { display: inline-flex; align-items: center; gap: .3em; font-weight: 680; text-decoration: none; }
.pager__step:last-child { justify-self: end; }
.empty { text-align: center; padding: 32px 16px; }
.empty .lead { text-align: left; max-width: 720px; margin: 24px auto 0; }

@media (max-width: 1000px) {
  .catalog { grid-template-columns: 1fr; padding-top: 16px; }
  .filters[popover] { display: none; }
  .filters[popover]:popover-open {
    display: flex; position: fixed; inset: auto 0 0 0; width: 100%; height: 92dvh; max-height: none;
    border-radius: 22px 22px 0 0; border: 0; box-shadow: var(--shadow-lg);
    animation: sheet-up .25s ease-out;
  }
  .filters::backdrop { background: rgb(11 27 43 / 45%); }
  .filters__head { display: flex; align-items: center; justify-content: space-between; padding: 12px 18px; border-bottom: 1px solid var(--line-2); }
  .filters__head h2 { font-size: 1.25rem; margin: 0; }
  .filters__body { flex: 1; }
  .js .filters__foot { display: flex; }
  .filters-toggle { display: inline-flex; }
  .toolbar { position: sticky; top: var(--header-h); z-index: 20; background: rgb(243 240 232 / 96%); padding-block: 8px; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px 10px; }
  .toolbar__count { font-size: .9rem; grid-column: 1 / -1; grid-row: 2; }
  .toolbar__count strong { font-size: 1.05rem; }
  .toolbar__sort { margin-left: 0; position: relative; }
  .toolbar__sort label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .toolbar__sort select { width: 100%; max-width: none; }
}
@keyframes sheet-up { from { transform: translateY(30px); opacity: .4; } }
@media (max-width: 520px) {
  .pager { grid-template-columns: 1fr 1fr; }
  .pager ol { grid-column: 1 / -1; grid-row: 1; justify-content: center; }
}

/* --- scheda veicolo --------------------------------------------------------------------- */
.vdp { padding-top: clamp(12px, 2vw, 20px); }
/* «Torna a…» e percorso; su telefono resta solo il pulsante */
.vdp__top { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; margin-bottom: 16px; }
.vdp__top .crumbs { min-width: 0; }
.vdp__top .crumbs ol { margin-bottom: 0; }
.vdp__back { display: inline-flex; align-items: center; gap: .3em; min-width: 0; max-width: 100%; min-height: 40px; padding: .4em 1em .4em .65em; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); color: var(--ink); font-size: .92rem; font-weight: 680; text-decoration: none; box-shadow: var(--shadow-sm); transition: border-color .15s ease; }
.vdp__back:hover { border-color: var(--ink-2); color: var(--ink); }
.vdp__back .i { width: 1.15em; height: 1.15em; transition: transform .2s ease; }
.vdp__back:hover .i { transform: translateX(-2px); }
.vdp__back span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vdp__grid { display: grid; grid-template-columns: minmax(0, 1fr) 390px; grid-template-areas: "media side" "content side"; gap: 28px 40px; align-items: start; padding-bottom: 56px; }
.vdp__media { grid-area: media; min-width: 0; }
.vdp__side { grid-area: side; position: sticky; top: calc(var(--header-h) + 16px); }
.vdp__content { grid-area: content; min-width: 0; display: grid; gap: 22px; }
.vdp__card { background: var(--paper); border: 1px solid var(--line-2); border-radius: var(--radius-lg); padding: 22px; box-shadow: var(--shadow); }
.vdp__title { font-size: clamp(1.7rem, 1.3rem + 1.3vw, 2.35rem); font-stretch: 110%; font-weight: 820; letter-spacing: -.02em; margin: 0; }
.vdp__make { display: block; font-size: .5em; letter-spacing: .14em; text-transform: uppercase; font-stretch: 120%; color: var(--blue); font-weight: 750; margin-bottom: 4px; }
.vdp__version { color: var(--ink-2); margin: 6px 0 4px; font-size: 1.02rem; }
.vdp__summary { font-size: .92rem; color: var(--ink-3); margin-bottom: 16px; font-variant-numeric: tabular-nums; }
.vdp__card .price { padding: 14px 0 16px; border-top: 1px solid var(--line-2); }
.vdp__ctas { display: grid; gap: 10px; }
.vdp__ctas-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.vdp__tools { display: flex; align-items: center; gap: 6px; margin-top: 14px; flex-wrap: wrap; }
.tool-btn { display: inline-flex; align-items: center; gap: .4em; padding: .45em .7em; border-radius: 10px; border: 0; background: transparent; color: var(--ink-2); font-weight: 650; font-size: .92rem; }
.tool-btn:hover { background: var(--stone); color: var(--ink); }
.tool-btn .i { width: 1.15em; height: 1.15em; }
.tool-btn[aria-pressed=true] { color: var(--red); }
.vdp__code { margin-left: auto; font-size: .82rem; color: var(--ink-3); }
.vdp__code b { color: var(--ink); letter-spacing: .06em; font-variant-numeric: tabular-nums; }
.vdp__where { display: flex; align-items: flex-start; gap: .4em; margin: 12px 0 0; padding-top: 12px; border-top: 1px solid var(--line-2); font-size: .94rem; color: var(--ink-2); }
.vdp__where .i { margin-top: .15em; color: var(--ink-3); }

.vdp__section { background: var(--paper); border: 1px solid var(--line-2); border-radius: var(--radius-lg); padding: clamp(18px, 2.6vw, 28px); }
.vdp__section > h2, .vdp__section-head h2 { font-size: 1.35rem; font-stretch: 108%; margin-bottom: 14px; }
.vdp__section-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin-bottom: 8px; }
.vdp__section-head h2 { margin: 0; }
.vdp__lead { padding: 0; border: 0; background: none; }

/* galleria */
.gallery { position: relative; }
.gallery__stage { position: relative; }
.gallery__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; border-radius: var(--radius-lg); background: var(--night); aspect-ratio: 4 / 3; overscroll-behavior-x: contain; }
.gallery__track::-webkit-scrollbar { display: none; }
.gallery__slide { flex: 0 0 100%; scroll-snap-align: center; scroll-snap-stop: always; }
.gallery__slide a { display: block; height: 100%; cursor: zoom-in; }
.gallery__slide img { width: 100%; height: 100%; object-fit: cover; }
.gallery__counter { position: absolute; right: 14px; bottom: 14px; padding: .3em .7em; border-radius: 999px; background: rgb(11 27 43 / 75%); color: #fff; font-size: .85rem; font-weight: 650; font-variant-numeric: tabular-nums; pointer-events: none; }
.gallery__nav { position: absolute; top: calc(50% - 26px); width: 52px; height: 52px; border-radius: 50%; border: 0; background: rgb(255 255 255 / 92%); color: var(--ink); display: grid; place-items: center; box-shadow: var(--shadow); opacity: 0; transition: opacity .2s ease; }
.gallery:hover .gallery__nav, .gallery__nav:focus-visible { opacity: 1; }
.gallery__nav--prev { left: 14px; }
.gallery__nav--next { right: 14px; }
/* fila delle miniature (tutte le foto): si scorre col dito, col trackpad, trascinando col mouse e
   con le frecce ai lati, che compaiono solo se c'è altro da vedere da quella parte; i bordi sfumati
   dicono che la fila continua (site.js, Federico 07/11/2026) */
.gallery__strip { position: relative; margin-top: 10px; --fade: 56px; }
.gallery__thumbs { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; overscroll-behavior-x: contain; }
.gallery__thumbs::-webkit-scrollbar { display: none; }
.gallery__strip.can-prev .gallery__thumbs { -webkit-mask-image: linear-gradient(to right, transparent, #000 var(--fade)); mask-image: linear-gradient(to right, transparent, #000 var(--fade)); }
.gallery__strip.can-next .gallery__thumbs { -webkit-mask-image: linear-gradient(to left, transparent, #000 var(--fade)); mask-image: linear-gradient(to left, transparent, #000 var(--fade)); }
.gallery__strip.can-prev.can-next .gallery__thumbs { -webkit-mask-image: linear-gradient(to right, transparent, #000 var(--fade), #000 calc(100% - var(--fade)), transparent); mask-image: linear-gradient(to right, transparent, #000 var(--fade), #000 calc(100% - var(--fade)), transparent); }
.gallery__thumbs.is-drag { cursor: grabbing; user-select: none; -webkit-user-select: none; }
.gallery__thumbs button { flex: none; padding: 0; border: 2px solid transparent; border-radius: 10px; overflow: hidden; background: none; opacity: .7; transition: opacity .15s ease, border-color .15s ease; }
.gallery__thumbs button:hover { opacity: 1; }
.gallery__thumbs button[aria-current=true] { border-color: var(--saffron); opacity: 1; }
.gallery__thumbs img { width: 96px; height: 72px; object-fit: cover; -webkit-user-drag: none; }
.gallery__tnav { position: absolute; top: 50%; z-index: 1; width: 40px; height: 40px; padding: 0; border: 1px solid var(--line-2); border-radius: 50%; background: var(--paper); color: var(--ink); display: grid; place-items: center; box-shadow: var(--shadow); transform: translateY(-50%); cursor: pointer; }
.gallery__tnav[hidden] { display: none; }
.gallery__tnav:hover { background: var(--stone); }
.gallery__tnav .i { width: 22px; height: 22px; }
.gallery__tnav--prev { left: 6px; }
.gallery__tnav--next { right: 6px; }
.gallery--empty { border-radius: var(--radius-lg); overflow: hidden; }
.gallery__placeholder { aspect-ratio: 4 / 3; display: grid; place-items: center; align-content: center; gap: 20px; padding: 24px; text-align: center; color: #b9ae98; --sil-bg: #efe9dc; background: repeating-linear-gradient(-45deg, #efe9dc 0 18px, #ebe4d5 18px 36px); }
.gallery__placeholder .silhouette { width: min(70%, 420px); }
.gallery__placeholder p { max-width: 46ch; color: var(--ink-2); margin: 0; }
.gallery__placeholder strong { display: block; font-size: 1.3rem; color: var(--saffron-ink); margin-bottom: 4px; }
.lightbox { width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: #070f18; }
.lightbox::backdrop { background: #070f18; }
/* con le foto ingrandite la pagina sotto resta ferma (rotella del mouse), e alla chiusura si è dove si era */
html:has(.lightbox[open]) { overflow: hidden; }
.lightbox__track { display: flex; height: 100%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.lightbox__track figure { flex: 0 0 100%; scroll-snap-align: center; display: grid; place-items: center; padding: 56px 0 24px; }
.lightbox__track img { max-height: 100%; width: auto; object-fit: contain; }
.lightbox__close { position: fixed; top: 12px; right: 12px; z-index: 2; background: rgb(255 255 255 / 92%); border: 0; }
.vdp__360 { margin-top: 18px; }
.vdp__360 h2 { display: flex; align-items: center; gap: .4em; font-size: 1.2rem; }
.vdp__360-frame { aspect-ratio: 16 / 10; border-radius: var(--radius); background: var(--stone-2); display: grid; place-items: center; overflow: hidden; }
.vdp__360-frame iframe { width: 100%; height: 100%; border: 0; }

/* cruscotto: dati principali */
.keyfacts { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; border-radius: var(--radius-lg); overflow: hidden; background: rgb(255 255 255 / 10%); border: 1px solid var(--night-2); background-color: var(--night-3); }
.keyfacts li { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 12px; align-items: center; padding: 16px 18px; background: var(--night); color: #fff; }
.keyfacts .i { grid-row: 1 / 3; width: 26px; height: 26px; color: var(--saffron-2); }
.keyfacts__label { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: #9fb0bf; font-weight: 650; font-stretch: 115%; }
.keyfacts strong { font-size: 1.18rem; font-weight: 780; font-stretch: 108%; font-variant-numeric: tabular-nums; }
@media (max-width: 560px) { .keyfacts { grid-template-columns: repeat(2, minmax(0, 1fr)); } .keyfacts li { padding: 14px; } }

.specs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; }
.specs div { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px dashed var(--line); font-size: .96rem; }
.specs dt { color: var(--ink-3); }
.specs dd { font-weight: 650; text-align: right; }
.specs--compact div { font-size: .92rem; }
.specs__title { font-size: 1rem; margin: 26px 0 2px; }
h2 + .specs__title { margin-top: 10px; }
@media (max-width: 640px) { .specs { grid-template-columns: 1fr; } }

.equip__title { font-size: 1rem; margin: 18px 0 8px; display: flex; align-items: center; gap: .5em; }
.equip__title span { font-size: .8rem; background: var(--stone-2); color: var(--ink-2); padding: .1em .5em; border-radius: 6px; font-variant-numeric: tabular-nums; }
.equip__list { list-style: none; columns: 2 260px; column-gap: 28px; }
.equip__list li { display: flex; gap: .5em; align-items: flex-start; break-inside: avoid; padding: 5px 0; font-size: .93rem; }
.equip__list .i { width: 1.05em; height: 1.05em; margin-top: .2em; color: var(--blue-2); flex: none; }
.equip mark { background: var(--saffron-soft); padding: 0 .1em; border-radius: 3px; }

/* simulatore */
.sim { background: var(--paper); border: 1px solid var(--line-2); border-radius: var(--radius-lg); padding: clamp(18px, 2.6vw, 28px); display: grid; gap: 18px; scroll-margin-top: calc(var(--header-h) + 16px); container: sim / inline-size; }
.sim__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; }
.sim__title { display: flex; align-items: center; gap: .45em; font-size: 1.35rem; margin: 0; }
.sim__flag { display: inline-flex; align-items: center; gap: .35em; margin: 0; padding: .35em .75em; border-radius: 999px; background: var(--warn-soft); color: var(--saffron-ink); font-size: .82rem; font-weight: 700; }
.sim__flag .i { width: 1.05em; height: 1.05em; }
.sim__form { display: grid; gap: 18px; }
/* riga in alto: prezzo, anticipo, TAN fisso (deciso in gestione) */
.sim__top { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px 18px; align-items: start; }
.sim__top input[type=range] { width: 100%; accent-color: var(--blue); margin: 4px 0 0; }
.sim__top input[readonly] { background: var(--stone); font-weight: 700; cursor: default; }
.sim__top input[readonly]:focus { border-color: var(--line); box-shadow: none; }
/* sotto: i due piani affiancati */
.sim__plans { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
.sim__plans--one { grid-template-columns: minmax(0, 1fr); }
.sim__plan { display: flex; flex-direction: column; gap: 12px; min-width: 0; padding: 16px; border: 1px solid var(--line-2); border-radius: var(--radius); background: var(--stone); }
.sim__plan-title { margin: 0; font-size: 1.15rem; font-stretch: 106%; }
.sim__plan-sub { margin: -6px 0 0; color: var(--ink-2); font-size: .88rem; }
.sim__durate { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.sim__durate legend { width: 100%; margin-bottom: 4px; font-size: .88rem; font-weight: 650; color: var(--ink-2); }
.sim__plan .segmented { gap: 5px; }
.sim__plan .segmented--tight span { min-width: 40px; min-height: 40px; padding-inline: .45em; background: var(--paper); }
/* le parti dei due piani allineate tra le colonne (titolo, testo, durata, risultato, pulsante) */
@supports (grid-template-rows: subgrid) {
  .sim__plans:not(.sim__plans--one) { grid-template-rows: repeat(5, auto); row-gap: 0; }
  .sim__plans:not(.sim__plans--one) > .sim__plan { display: grid; grid-row: span 5; grid-template-rows: subgrid; row-gap: 12px; align-content: start; }
}
.sim__sconto { display: flex; align-items: flex-start; gap: .4em; margin: 0; padding: .45em .75em; border-radius: 10px; background: var(--ok-soft); color: var(--ok); font-size: .9rem; font-weight: 650; }
.sim__out .sim__sconto { justify-self: start; }
.sim__sconto .i { flex: none; width: 1.05em; height: 1.05em; margin-top: .15em; }
.sim__out { display: grid; align-content: start; gap: 12px; padding: 16px; border-radius: var(--radius); background: var(--night); color: #fff; }
.sim__rata, .sim__finale { margin: 0; display: grid; }
.sim__rata span, .sim__finale span { font-size: .76rem; letter-spacing: .12em; text-transform: uppercase; color: #9fb0bf; font-weight: 650; }
.sim__rata strong { font-size: clamp(1.9rem, 1.5rem + 1.2vw, 2.5rem); font-weight: 840; font-stretch: 112%; font-variant-numeric: tabular-nums; color: var(--saffron-2); line-height: 1.1; }
.sim__finale strong { font-size: 1.3rem; font-weight: 800; font-stretch: 108%; font-variant-numeric: tabular-nums; line-height: 1.15; }
.sim__msg { margin: 0; color: #c7d3de; font-size: .92rem; }
.sim__dl { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 16px; padding-top: 12px; border-top: 1px solid rgb(255 255 255 / 12%); }
.sim__dl dt { font-size: .78rem; color: #9fb0bf; }
.sim__dl dd { font-weight: 720; font-variant-numeric: tabular-nums; }
.sim__plan > .btn { margin-top: auto; align-self: end; }
.btn[aria-disabled=true] { opacity: .5; pointer-events: none; }
.sim__legal { margin: 0; font-size: .84rem; color: var(--ink-3); border-left: 3px solid var(--saffron); padding-left: 12px; }
/* la disposizione dipende dallo spazio del simulatore (scheda auto, pagina con il modulo accanto, telefono) */
@container sim (max-width: 620px) {
  .sim__top { grid-template-columns: 1fr 1fr; }
  .sim__top > .field:nth-child(3) { grid-column: 1 / -1; }
}
@container sim (max-width: 660px) {
  .sim__plans, .sim__plans:not(.sim__plans--one) { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; row-gap: 16px; }
  .sim__plans:not(.sim__plans--one) > .sim__plan { grid-row: auto; grid-template-rows: none; }
}
@container sim (max-width: 360px) { .sim__top { grid-template-columns: 1fr; } }
/* piano scelto nel modulo di richiesta */
.lead__fin { display: flex; flex-wrap: wrap; align-items: center; gap: .5em; padding: 10px 12px; border-radius: 12px; background: var(--saffron-soft); color: var(--ink); font-size: .92rem; font-weight: 600; }
.lead__fin .i { width: 1.2em; height: 1.2em; color: var(--saffron-ink); }
.lead__fin .linklike { margin-left: auto; font-weight: 650; }

/* sede */
.sede-card { display: grid; gap: 14px; }
.sede-card p { margin: 0 0 6px; }
.sede-card__name { display: flex; align-items: center; gap: .4em; font-weight: 750; font-size: 1.1rem; }
.sede-card__name a { color: var(--ink); }
.sede-card__hours { display: flex; align-items: center; gap: .4em; color: var(--ink-2); font-size: .93rem; }
.sede-card__actions { display: flex; flex-wrap: wrap; gap: 8px; }

/* barra azioni mobile */
.actionbar { display: none; }
@media (max-width: 1100px) {
  .vdp__grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "media" "side" "content"; gap: 20px; }
  .vdp__side { position: static; }
  .page-vehicle .vdp__card .vdp__ctas { display: grid; }
}
@media (max-width: 760px) {
  .vdp .crumbs { display: none; }
  .vdp__top { margin-bottom: 12px; }
  .vdp__grid { padding-inline: 0; }
  .vdp__grid > .vdp__side, .vdp__grid > .vdp__content { padding-inline: var(--gutter); }
  .gallery__track, .gallery--empty { border-radius: 0; }
  .gallery__nav { display: none; }
  /* telefono: miniature più piccole, a filo del bordo, da scorrere col dito (niente frecce) */
  .gallery__strip { margin-top: 8px; --fade: 28px; }
  .gallery__thumbs { gap: 6px; padding-inline: var(--gutter); }
  .gallery__thumbs button { border-radius: 8px; }
  .gallery__thumbs img { width: 72px; height: 54px; }
  .gallery__tnav { display: none !important; }
  .vdp__360 { padding-inline: var(--gutter); }
  .vdp__card { box-shadow: none; }
  .page-vehicle { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
  .actionbar {
    position: fixed; z-index: 35; left: 0; right: 0; bottom: 0;
    display: grid; grid-template-columns: auto auto 1fr; gap: 8px;
    padding: 10px var(--gutter) calc(10px + env(safe-area-inset-bottom));
    background: rgb(255 255 255 / 96%); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    border-top: 1px solid var(--line); box-shadow: 0 -8px 24px -16px rgb(11 27 43 / 40%);
  }
  .actionbar__btn { display: grid; place-items: center; align-content: center; gap: 2px; min-width: 64px; min-height: 52px; padding: 4px 10px; border-radius: 12px; background: var(--stone); color: var(--ink); text-decoration: none; font-size: .74rem; font-weight: 700; }
  .actionbar__btn .i { width: 22px; height: 22px; }
  .actionbar__btn--wa { background: var(--wa); color: #fff; }
  .actionbar__btn--wa:hover { color: #fff; }
  .actionbar__btn--primary { background: var(--saffron); font-size: .95rem; }
  .actionbar__price { font-size: 1.05rem; font-weight: 820; font-variant-numeric: tabular-nums; }
}

/* --- pagine informative ------------------------------------------------------------------ */
.sedi-layout { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(24px, 4vw, 56px); align-items: start; }
.sedi-layout__map { position: sticky; top: calc(var(--header-h) + 16px); }
.sedi-region { font-size: .82rem; letter-spacing: .16em; text-transform: uppercase; font-stretch: 118%; color: var(--blue); margin: 8px 0 12px; }
.sedi-region:not(:first-child) { margin-top: 32px; }
.sedi-list { display: grid; gap: 12px; }
.sede { background: var(--paper); border: 1px solid var(--line-2); border-radius: var(--radius); padding: 18px 20px; display: grid; gap: 8px; scroll-margin-top: calc(var(--header-h) + 20px); }
.sede:target { border-color: var(--saffron); box-shadow: 0 0 0 3px var(--saffron-soft); }
.sede__region { margin: 0; font-size: .78rem; color: var(--ink-3); text-transform: uppercase; letter-spacing: .1em; font-weight: 650; }
.sede__name { font-size: 1.3rem; font-stretch: 108%; margin: 0; }
.sede__name a { color: var(--ink); text-decoration: none; }
.sede__name a:hover { text-decoration: underline; }
.sede__addr, .sede__phones { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; margin: 0; font-size: .95rem; }
.sede__phones a { display: inline-flex; align-items: center; gap: .35em; font-weight: 650; font-variant-numeric: tabular-nums; }
.sede__addr .i, .sede__phones .i { width: 1.05em; height: 1.05em; color: var(--ink-3); }
.sede__brands { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; }
.sede__brands li { display: inline-flex; align-items: center; gap: .4em; font-size: .8rem; font-weight: 650; padding: .25em .6em; border-radius: 6px; background: var(--stone); color: var(--ink-2); }
.brand-logo--xs { height: 16px; max-width: 48px; }
.sede__brands .is-service { display: inline-flex; gap: .3em; align-items: center; background: var(--blue-soft); color: var(--blue); }
.sede__brands .i { width: 1em; height: 1em; }
.sede__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.hours { display: grid; gap: 4px; font-size: .92rem; color: var(--ink-2); margin: 0; }
.hours div { display: flex; gap: 10px; }
.hours dt { display: inline-flex; align-items: center; gap: .35em; min-width: 150px; }
.hours dd { font-weight: 650; font-variant-numeric: tabular-nums; }
.hours .i { width: 1em; height: 1em; color: var(--ink-3); }
.hours--unknown { display: flex; align-items: center; gap: .35em; color: var(--ink-3); font-size: .92rem; }
.hours--unknown .i { width: 1em; height: 1em; }
@media (max-width: 900px) { .sedi-layout { grid-template-columns: 1fr; } .sedi-layout__map { position: static; max-width: 480px; margin-inline: auto; width: 100%; } }

.sede-page { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(24px, 4vw, 56px); align-items: start; }
.sede-page__info h2 { margin-top: 1.8rem; }
.info-card { background: var(--paper); border: 1px solid var(--line-2); border-radius: var(--radius-lg); padding: 22px; display: grid; gap: 12px; }
.info-card__row { display: flex; gap: .7em; align-items: flex-start; margin: 0; }
.info-card__row > .i { margin-top: .2em; color: var(--blue); }
.info-card__row a { font-weight: 650; }
@media (max-width: 900px) { .sede-page { grid-template-columns: 1fr; } .sede-page__map { max-width: 480px; } }

.two-col { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); align-items: start; }
.two-col--wide-left { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); }
@media (max-width: 900px) { .two-col, .two-col--wide-left { grid-template-columns: 1fr; } }

.contact-list { list-style: none; display: grid; gap: 10px; }
.contact-list a { display: flex; gap: 14px; align-items: center; padding: 16px 18px; border-radius: var(--radius); background: var(--paper); border: 1px solid var(--line-2); color: var(--ink); text-decoration: none; }
.contact-list a:hover { border-color: var(--ink-2); color: var(--ink); }
.contact-list .i { width: 28px; height: 28px; color: var(--blue); }
.contact-list span { display: grid; }
.contact-list strong { font-size: 1.05rem; }
.phone-list { list-style: none; display: grid; }
.phone-list li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line-2); }
.phone-list li a:last-child { font-weight: 650; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* --- consenso ---------------------------------------------------------------------------- */
.consent { position: fixed; z-index: 60; left: 16px; right: 16px; bottom: 16px; display: flex; justify-content: flex-start; pointer-events: none; }
.consent__in { pointer-events: auto; max-width: 540px; padding: 18px 20px; border-radius: var(--radius); background: var(--night); color: #dbe4ec; box-shadow: var(--shadow-lg); font-size: .92rem; }
.consent__in p { margin: 0 0 12px; }
.consent__in strong { color: #fff; }
.consent__in a { color: var(--saffron-2); }
.consent__actions { display: flex; gap: 8px; flex-wrap: wrap; }
.consent .btn--ghost { background: transparent; color: #fff; border-color: rgb(255 255 255 / 35%); }
.page-vehicle .consent { bottom: calc(86px + env(safe-area-inset-bottom)); }
@media (min-width: 761px) { .page-vehicle .consent { bottom: 16px; } }

/* --- gestione ----------------------------------------------------------------------------- */
.admin { background: var(--stone); }
.admin__main { padding-block: 28px 64px; }
.admin__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; }
.admin__cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; margin-top: 18px; }
.admin__tabs { display: flex; gap: 4px; margin: 12px 0 18px; flex-wrap: wrap; }
.admin__tabs a { padding: .45em .9em; border-radius: 999px; text-decoration: none; color: var(--ink-2); font-weight: 650; }
.admin__tabs a[aria-current] { background: var(--night); color: #fff; }
.admin__filters { display: flex; flex-wrap: wrap; gap: 10px; margin: 14px 0; }
.admin__filters .input-icon { flex: 1 1 260px; }
.admin__filters select { width: auto; }
.admin__bulk { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; padding: 12px 14px; border-radius: 12px; background: var(--paper); border: 1px solid var(--line-2); margin-bottom: 12px; }
.admin__bulk select { width: auto; min-height: 40px; }
.admin__sil { display: grid; place-items: center; width: 80px; height: 60px; background: var(--stone); border-radius: 8px; color: var(--ink-3); padding: 6px; }
.numbers--admin { margin: 16px 0; }
.table-wrap { overflow-x: auto; background: var(--paper); border: 1px solid var(--line-2); border-radius: var(--radius); }
.table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.table th, .table td { padding: 10px 12px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line-2); }
.table th { font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-3); background: var(--stone); position: sticky; top: 0; }
.table img { border-radius: 6px; object-fit: cover; }
.table select { min-height: 36px; padding: .3em 2em .3em .6em; font-size: .88rem; }
.inline-form { display: flex; gap: 6px; }
.status { display: inline-block; padding: .15em .55em; border-radius: 6px; font-size: .8rem; font-weight: 700; background: var(--stone-2); }
.status--pubblicato { background: var(--ok-soft); color: var(--ok); }
.status--scartato, .status--bloccato { background: var(--red-soft); color: var(--red); }
.plain { padding-left: 1.2em; display: grid; gap: 6px; }
.promo-form { margin: 18px 0; }

/* etichette QR (stampa) */
.admin--print { background: #fff; }
.print-bar { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 14px 0; }
.labels { display: grid; gap: 6mm; }
.labels--etichette { grid-template-columns: repeat(2, 95mm); }
.labels--cartello { grid-template-columns: 1fr; }
.label { display: grid; grid-template-columns: 36mm 1fr; gap: 5mm; align-items: center; height: 64mm; padding: 5mm; border: .3mm dashed #b8b8b8; border-radius: 3mm; break-inside: avoid; color: #0b1b2b; font-family: var(--font); }
.label__qr svg { width: 36mm; height: 36mm; }
.label__txt img { width: 30mm; margin-bottom: 2mm; }
.label__title { font-size: 15pt; font-weight: 820; margin: 0; line-height: 1.1; font-stretch: 108%; }
.label__version { font-size: 9pt; margin: 1mm 0 2mm; color: #39424c; }
.label__facts { font-size: 11pt; font-weight: 650; margin: 0 0 3mm; }
.label__cta { font-size: 8.5pt; margin: 0 0 1.5mm; font-weight: 650; }
.label__code { font-size: 8.5pt; margin: 0; font-family: ui-monospace, Menlo, Consolas, monospace; }
.labels--cartello .label { width: 200mm; height: 138mm; grid-template-columns: 90mm 1fr; padding: 10mm; gap: 10mm; border-style: solid; page-break-after: always; }
.labels--cartello .label__qr svg { width: 90mm; height: 90mm; }
.labels--cartello .label__txt img { width: 52mm; margin-bottom: 6mm; }
.labels--cartello .label__title { font-size: 28pt; }
.labels--cartello .label__version { font-size: 13pt; }
.labels--cartello .label__facts { font-size: 15pt; }
.labels--cartello .label__cta { font-size: 13pt; background: #f2a30f; padding: 2mm 3mm; border-radius: 2mm; }
.labels--cartello .label__code { font-size: 12pt; }

/* --- accesso e gestione --------------------------------------------------------------- */
.login { min-height: 70vh; display: grid; place-items: center; padding: 32px 0; }
.login__card { width: min(440px, 100%); display: grid; gap: 14px; padding: 28px; border-radius: var(--radius-lg); background: var(--paper); border: 1px solid var(--line-2); box-shadow: var(--shadow); }
.login__card img { margin-bottom: 4px; }
.login__card .h3 { margin: 0; }
.big-code { font-size: 1.25rem; letter-spacing: .08em; background: var(--saffron-soft); padding: .2em .5em; border-radius: 6px; user-select: all; }
.note--ok { background: var(--ok-soft); border-color: #bfe0cb; }
.note--ok .i { color: var(--ok); }
.tag-mini { display: inline-block; font-size: .72rem; font-weight: 700; padding: .1em .45em; border-radius: 5px; background: var(--blue-soft); color: var(--blue); }
.status--bozza { background: var(--stone-2); color: var(--ink-2); }
.status--programmato, .status--attesa { background: var(--saffron-soft); color: var(--saffron-ink); }
.admin-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; margin-top: 16px; }
.admin-card { position: relative; display: grid; gap: 4px; padding: 18px 44px 18px 18px; border-radius: var(--radius); background: var(--paper); border: 1px solid var(--line-2); color: var(--ink); text-decoration: none; }
.admin-card:hover { border-color: var(--ink-2); color: var(--ink); }
.admin-card span { color: var(--ink-2); font-size: .92rem; }
.admin-card .i { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); color: var(--ink-3); }
.admin-form { gap: 18px; }
.admin-form .h3 { margin: 10px 0 0; padding-top: 14px; border-top: 1px solid var(--line-2); }
.admin-form .h3:first-of-type { border: 0; padding: 0; margin: 0; }
.photo-manager { display: grid; gap: 10px; }
.photo-manager legend { font-weight: 650; font-size: .88rem; color: var(--ink-2); margin-bottom: 6px; }
.photo-manager__list { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; }
.photo-manager__list li { display: grid; gap: 4px; justify-items: start; }
.photo-manager__list img { width: 120px; height: 90px; object-fit: cover; border-radius: 8px; }
.photo-manager__list .check { font-size: .82rem; }
.input-prefix { display: flex; align-items: stretch; }
.input-prefix span { display: grid; place-items: center; padding: 0 .6em; border: 1.5px solid var(--line); border-right: 0; border-radius: 10px 0 0 10px; background: var(--stone); color: var(--ink-3); font-size: .9rem; }
.input-prefix input { border-radius: 0 10px 10px 0; }

/* editor a blocchi */
.cms-editor { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 24px; align-items: start; }
.cms-editor__main { display: grid; gap: 16px; background: var(--paper); border: 1px solid var(--line-2); border-radius: var(--radius-lg); padding: 22px; }
.cms-editor__main .h3 { margin: 8px 0 0; }
.cms-editor__side { display: grid; gap: 14px; position: sticky; top: 16px; }
.cms-editor__side .info-card { gap: 12px; }
.cms-editor__side .h3 { margin: 0; }
.blocks { display: grid; gap: 12px; }
.block-card { border: 1px solid var(--line); border-radius: 14px; background: var(--stone); overflow: hidden; }
.block-card__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px 8px 14px; background: var(--stone-2); }
.block-card__tools { display: flex; gap: 4px; }
.block-card__tools .icon-btn { width: 34px; height: 34px; border-radius: 8px; font-size: 1rem; }
.block-card__tools .icon-btn:disabled { opacity: .35; cursor: default; }
.block-card__body { display: grid; gap: 10px; padding: 14px; }
.block-card__body textarea { font-size: .96rem; }
.blocks__add { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 12px; border: 1.5px dashed var(--stone-3); border-radius: 14px; }
.blocks__add > span { font-weight: 650; color: var(--ink-2); margin-right: 4px; }
.md-toolbar { display: flex; flex-wrap: wrap; gap: 4px; }
.md-toolbar button { min-width: 38px; height: 34px; padding: 0 .6em; border-radius: 8px; border: 1px solid var(--line); background: var(--paper); font-size: .88rem; }
.md-toolbar button:hover { border-color: var(--ink-2); }
.faq-edit { display: grid; gap: 12px; }
.faq-edit__item { display: grid; gap: 8px; padding: 12px; border-radius: 10px; background: var(--paper); border: 1px solid var(--line-2); }
.faq-edit__item .linklike { justify-self: start; font-size: .85rem; color: var(--red); }
.media-field { display: grid; gap: 8px; }
.media-field__preview { display: grid; place-items: center; min-height: 110px; border-radius: 10px; background: var(--stone); border: 1px dashed var(--stone-3); color: var(--ink-3); font-size: .88rem; overflow: hidden; }
.media-field__preview img { width: 100%; max-height: 200px; object-fit: cover; }
.media-dialog { width: min(920px, 94vw); max-height: 86vh; padding: 0; border: 0; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
.media-dialog::backdrop { background: rgb(11 27 43 / 55%); }
.media-dialog__head { display: flex; justify-content: space-between; align-items: center; padding: 14px 18px; border-bottom: 1px solid var(--line-2); position: sticky; top: 0; background: var(--paper); }
.media-dialog__head .h3 { margin: 0; }
.media-dialog__upload { margin: 14px 18px 0; cursor: pointer; }
.media-dialog [data-media-status] { margin: 8px 18px 0; }
.media-grid { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; padding: 14px 18px 18px; }
.media-grid__pick { width: 100%; padding: 0; border: 2px solid transparent; border-radius: 10px; overflow: hidden; background: var(--stone); }
.media-grid__pick:hover, .media-grid__pick:focus-visible { border-color: var(--saffron); }
.media-grid__pick img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.media-grid--page { padding: 0; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.media-grid--page li { background: var(--paper); border: 1px solid var(--line-2); border-radius: 12px; overflow: hidden; }
.media-grid--page img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.media-grid__form { display: grid; gap: 6px; padding: 10px; }
.media-grid__form input { min-height: 38px; font-size: .9rem; }
.serp { display: grid; gap: 2px; padding: 12px; border-radius: 10px; background: #fff; border: 1px solid var(--line-2); font-family: Arial, sans-serif; }
.serp__url { font-size: .78rem; color: #4d5156; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.serp__title { font-size: 1.1rem; color: #1a0dab; line-height: 1.3; }
.serp__desc { font-size: .85rem; color: #4d5156; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
/* costruttore dei filtri dei blocchi di veicoli (gestione) */
.fb { display: grid; gap: 12px; }
.fb__titolo { margin: 6px 0 0; font-size: 1rem; }
.fb__righe { display: grid; gap: 10px; }
.fb__righe:empty { display: none; }
.fb__riga { display: grid; gap: 8px; padding: 10px 12px; border-radius: 10px; background: var(--paper); border: 1px solid var(--line-2); }
.fb__testa { display: flex; align-items: center; gap: 8px; }
.fb__testa strong { font-size: .95rem; }
.fb__testa small { color: var(--ink-3); font-size: .8rem; }
.fb__testa .icon-btn { margin-left: auto; width: 30px; height: 30px; border-radius: 8px; }
.fb__corpo { display: grid; gap: 8px; }
.fb__coppia { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.fb__chips { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; max-height: 220px; overflow: auto; }
.fb__chip { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 0 10px; border-radius: 999px; border: 1px solid var(--line); background: var(--stone); font-size: .88rem; color: var(--ink); }
.fb__chip span { font-size: .78rem; color: var(--ink-3); font-variant-numeric: tabular-nums; }
.fb__chip.is-on { background: var(--night); border-color: var(--night); color: #fff; }
.fb__chip.is-on span { color: rgb(255 255 255 / 75%); }
.fb__chip.is-zero { opacity: .5; }
.fb__cerca { max-width: 260px; min-height: 36px; }
.fb__altro { display: flex; gap: 6px; max-width: 380px; }
.fb__altro input { min-height: 34px; font-size: .88rem; }
.fb__aggiungi { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.fb__aggiungi select { width: auto; min-width: 220px; }
.fb__incolla { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; }
.fb__incolla .hint { grid-column: 1 / -1; }
.fb__esito { display: grid; gap: 10px; margin: 0; padding: 12px; border-radius: 10px; background: var(--paper); border: 1px dashed var(--stone-3); }
.fb__totale { margin: 0; }
.fb__totale strong { font-size: 1.2rem; }
.fb__anteprima { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; margin: 0; padding: 0; }
.fb__anteprima li { display: grid; gap: 2px; min-width: 0; font-size: .82rem; }
.fb__anteprima img, .fb__nofoto { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 8px; background: var(--stone); }
.fb__nofoto { display: grid; place-items: center; color: var(--ink-3); font-size: .78rem; }
.fb__anteprima small { color: var(--ink-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fb__avvisi { display: grid; gap: 4px; margin: 0; padding-left: 1.2em; font-size: .86rem; color: var(--ink-2); }
@media (max-width: 600px) { .fb__coppia, .fb__incolla { grid-template-columns: 1fr; } }
/* costruttore a sezioni (gestione): elenco dei blocchi, tavolozza, colonne, anteprima dal vivo */
.blocks__testa { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.blocks__testa .h3 { margin: 0; }
.blocks__strumenti { display: flex; flex-wrap: wrap; gap: 6px; }
.blocks__lista { display: grid; gap: 4px; padding: 2px; border-radius: 12px; }
.blocks__lista.is-fine { box-shadow: inset 0 -3px 0 var(--saffron); }
.blocks__lista--colonna { min-height: 64px; padding: 6px; background: var(--paper); border: 1.5px dashed var(--stone-3); }
.blocks__ins { justify-self: center; width: 30px; height: 18px; border: 0; border-radius: 9px; background: transparent; color: transparent; font-weight: 800; line-height: 1; cursor: pointer; }
.blocks__ins:hover, .blocks__ins:focus-visible { background: var(--saffron); color: var(--ink); }
.blocks__aggiungi { justify-self: start; margin-top: 6px; }
.block-card.is-sopra { box-shadow: 0 -3px 0 var(--saffron); }
.block-card.is-trascinato { opacity: .45; }
.block-card__maniglia { cursor: grab; padding: 4px 6px; color: var(--ink-3); letter-spacing: -2px; user-select: none; }
.block-card__nome { display: grid; flex: 1; min-width: 0; text-align: left; padding: 2px 0; border: 0; background: none; color: inherit; cursor: pointer; }
.block-card__nome small { color: var(--ink-3); font-weight: 400; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.block-card__head { gap: 6px; }
.block-card--sezione > .block-card__head { background: var(--night); color: #fff; }
.block-card--sezione > .block-card__head .icon-btn { color: var(--ink); }
.block-card--sezione > .block-card__head .block-card__maniglia, .block-card--sezione > .block-card__head .block-card__nome small { color: rgb(255 255 255 / 70%); }
.sez-opzioni summary { cursor: pointer; font-weight: 650; padding: 4px 0; }
.sez-colonne { display: grid; gap: 10px; }
.sez-colonne--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sez-colonne--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sez-colonna { display: grid; gap: 6px; align-content: start; min-width: 0; }
.sez-colonna__nome { margin: 0; font-size: .8rem; font-weight: 700; color: var(--ink-3); text-transform: uppercase; letter-spacing: .04em; }
.galleria-edit { display: grid; gap: 10px; }
.galleria-edit__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); }
.galleria-edit__lista li { display: grid; gap: 6px; padding: 8px; border-radius: 10px; background: var(--paper); border: 1px solid var(--line-2); }
.galleria-edit__lista img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; }
.tavolozza { width: min(860px, 94vw); max-height: 88vh; padding: 0; border: 0; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
.tavolozza::backdrop, .link-dialog::backdrop { background: rgb(11 27 43 / 55%); }
.tavolozza__testa { position: sticky; top: 0; display: flex; justify-content: space-between; align-items: center; padding: 14px 18px; background: var(--paper); border-bottom: 1px solid var(--line-2); }
.tavolozza__testa .h3 { margin: 0; }
.tavolozza__gruppo { padding: 12px 18px; }
.tavolozza__gruppo h3 { margin: 0 0 8px; font-size: .85rem; text-transform: uppercase; letter-spacing: .05em; color: var(--ink-3); }
.tavolozza__voci { display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.tavolozza__voce { display: grid; gap: 2px; padding: 10px 12px; text-align: left; border-radius: 10px; border: 1px solid var(--line); background: var(--stone); color: var(--ink); cursor: pointer; }
.tavolozza__voce:hover, .tavolozza__voce:focus-visible { border-color: var(--saffron); background: var(--paper); }
.tavolozza__voce span { font-size: .84rem; color: var(--ink-2); line-height: 1.35; }
.link-dialog { width: min(480px, 94vw); padding: 18px; border: 0; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
.link-dialog form { display: grid; gap: 12px; }
.media-dialog__cerca { margin: 10px 18px 0; }
.media-dialog__cerca input { min-height: 40px; }
.media-dialog__piede { position: sticky; bottom: 0; padding: 12px 18px; background: var(--paper); border-top: 1px solid var(--line-2); }
.media-grid__pick.is-scelta { border-color: var(--saffron); box-shadow: 0 0 0 3px var(--saffron-soft, rgb(240 170 40 / 35%)); }
.cms-anteprima { position: fixed; top: 0; right: 0; z-index: 60; display: grid; grid-template-rows: auto 1fr auto; width: min(48vw, 980px); height: 100vh; background: var(--stone-2); border-left: 1px solid var(--line); box-shadow: var(--shadow-lg); }
.cms-anteprima[hidden] { display: none; }
.cms-anteprima__barra { display: flex; align-items: center; gap: 10px; padding: 10px 14px; background: var(--paper); border-bottom: 1px solid var(--line-2); }
.cms-anteprima__misure { display: inline-flex; gap: 4px; margin-left: auto; }
.cms-anteprima__misure button { padding: 5px 10px; border-radius: 999px; border: 1px solid var(--line); background: var(--paper); font-size: .82rem; }
.cms-anteprima__misure button[aria-pressed="true"] { background: var(--night); border-color: var(--night); color: #fff; }
.cms-anteprima__cornice { overflow: auto; display: grid; justify-items: center; padding: 10px; }
.cms-anteprima iframe { width: 100%; height: 100%; min-height: 70vh; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.cms-anteprima__nota { margin: 0; padding: 6px 14px; font-size: .8rem; color: var(--ink-3); }
body.con-anteprima .adm__main { width: auto; max-width: none; margin-right: min(48vw, 980px); }
body.con-anteprima .cms-editor { grid-template-columns: 1fr; }
body.con-anteprima .cms-editor__side { position: static; }
@media (max-width: 1100px) { .cms-anteprima { width: 100vw; } body.con-anteprima .adm__main { margin-right: 0; } }
.cms-modelli { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.cms-modello { display: grid; gap: 6px; }
.cms-modello > a { display: grid; gap: 6px; height: 100%; padding: 16px; border-radius: 12px; background: var(--paper); border: 1px solid var(--line-2); color: var(--ink); text-decoration: none; }
.cms-modello > a:hover { border-color: var(--saffron); box-shadow: var(--shadow-sm); }
.cms-modello span { color: var(--ink-2); font-size: .9rem; }
.cms-salva-modello { display: grid; gap: 8px; }
.cms-salva-modello summary { cursor: pointer; font-weight: 650; font-size: .9rem; }
@media (max-width: 700px) { .sez-colonne--2, .sez-colonne--3 { grid-template-columns: 1fr; } }
@media (max-width: 1100px) { .cms-editor { grid-template-columns: 1fr; } .cms-editor__side { position: static; } }

/* --- contenuti pubblici (CMS) ---------------------------------------------------------- */
.preview-bar { position: sticky; top: var(--header-h); z-index: 30; display: flex; align-items: center; justify-content: center; gap: .5em; padding: 8px var(--gutter); background: var(--saffron); color: var(--ink); font-weight: 650; font-size: .92rem; }
.preview-bar a { color: var(--ink); }
.cms-body { display: grid; gap: 22px; }
.cms-body > * { margin: 0; }
.cms-text { max-width: 72ch; }
.cms-text h2 { font-size: 1.5rem; margin: .6em 0 .3em; }
.cms-text h3 { font-size: 1.2rem; margin: .6em 0 .3em; }
.cms-text ul, .cms-text ol { padding-left: 1.3em; margin-bottom: 1em; }
.cms-title { font-size: clamp(1.4rem, 1.1rem + 1vw, 2rem); font-stretch: 108%; margin: .4em 0 0; }
h3.cms-title { font-size: 1.25rem; }
.cms-figure img { width: 100%; border-radius: var(--radius); }
.cms-figure figcaption { font-size: .88rem; color: var(--ink-3); margin-top: 8px; }
.cms-figure--wide { width: min(1240px, 100vw - 2 * var(--gutter)); justify-self: center; }
.wrap.narrow .cms-figure--wide { margin-inline: calc((min(1240px, 100vw - 2 * var(--gutter)) - 100%) / -2); width: auto; }
.cms-quote { margin: 0; padding: 18px 24px; border-left: 6px solid var(--saffron); background: var(--paper); border-radius: 0 var(--radius) var(--radius) 0; }
.cms-quote p { font-size: 1.25rem; font-stretch: 104%; font-weight: 600; margin: 0; }
.cms-quote footer { margin-top: 8px; color: var(--ink-3); font-size: .92rem; }
.cms-cta { margin: 0; }
.cms-cars .section-head { margin-bottom: 14px; }
.rail--inset { margin-inline: calc(var(--gutter) * -1); }
.wrap.narrow .rail--inset { margin-inline: 0; }
.wrap.narrow .rail--inset .rail__track { padding-inline: 0; }
.faq { border-bottom: 1px solid var(--line); }
.faq summary { list-style: none; display: flex; justify-content: space-between; gap: 16px; padding: 16px 0; font-weight: 700; font-size: 1.05rem; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font-size: 1.4rem; line-height: 1; color: var(--ink-3); }
.faq[open] summary::after { content: "−"; }
.faq .prose { padding-bottom: 16px; }
.cms-hero { padding: clamp(20px, 3vw, 36px) 0 clamp(28px, 4vw, 48px); border-bottom: 1px solid var(--line-2); }
.cms-hero__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(20px, 4vw, 56px); align-items: center; }
.cms-hero:not(.cms-hero--image) .cms-hero__grid { grid-template-columns: 1fr; }
.cms-hero__media img { width: 100%; border-radius: var(--radius-lg); aspect-ratio: 4 / 3; object-fit: cover; clip-path: polygon(12% 0, 100% 0, 100% 100%, 0 100%, 0 12%); }
.cms-more { margin: 20px 0 0; text-align: center; }
/* blocco «Auto dal catalogo»: griglia ed elenco completo larghi come la pagina, anche nelle colonne strette */
.cms-cars--largo { width: min(1240px, 100vw - 2 * var(--gutter)); justify-self: center; }
.wrap.narrow .cms-cars--largo { justify-self: stretch; width: auto; margin-inline: calc((min(1240px, 100vw - 2 * var(--gutter)) - 100%) / -2); }
.cms-listato .wrap.catalog { max-width: none; padding-inline: 0; padding-block: 8px 24px; }
.cms-listato__titolo { margin: 0; }
.cms-cars--vuoto { padding: clamp(16px, 3vw, 24px); border-radius: var(--radius-lg); background: var(--paper); border: 1px solid var(--line-2); }
.cms-cars--vuoto .section-head { margin-bottom: 12px; }
.cms-cover img { width: 100%; max-height: 560px; object-fit: cover; border-radius: var(--radius-lg); margin-top: 8px; }
@media (max-width: 900px) { .cms-hero__grid { grid-template-columns: 1fr; } }
.news-grid { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 18px; }
.news-card { display: flex; flex-direction: column; height: 100%; border-radius: var(--radius); overflow: hidden; background: var(--paper); border: 1px solid var(--line-2); color: var(--ink); text-decoration: none; transition: box-shadow .2s ease, transform .2s ease; }
.news-card:hover { box-shadow: var(--shadow); transform: translateY(-2px); color: var(--ink); }
.news-card__media { aspect-ratio: 16 / 10; background: var(--night); overflow: hidden; }
.news-card__media img { width: 100%; height: 100%; object-fit: cover; }
.news-card__ph { display: grid; place-items: center; height: 100%; color: var(--saffron-2); }
.news-card__ph .i { width: 40px; height: 40px; }
.news-card__body { display: grid; gap: 6px; padding: 16px 18px 20px; }
.news-card__body time { font-size: .82rem; color: var(--ink-3); font-weight: 600; text-transform: uppercase; letter-spacing: .06em; }
.news-card__body strong { font-size: 1.15rem; font-stretch: 106%; line-height: 1.25; }
.news-card__body span { color: var(--ink-2); font-size: .94rem; }

/* --- prenotazione e finanziamento ------------------------------------------------------- */
.btn--night { background: var(--night); color: #fff; }
.btn--night:hover { background: var(--night-3); color: #fff; }
.vdp__booking-hint { margin: -2px 0 0; font-size: .82rem; color: var(--ink-3); text-align: center; }
.steps { list-style: none; counter-reset: passo; display: grid; gap: 14px; margin: 20px 0; }
.steps li { counter-increment: passo; position: relative; display: grid; gap: 2px; padding: 4px 0 4px 54px; }
.steps li::before { content: counter(passo); position: absolute; left: 0; top: 0; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: var(--night); color: var(--saffron-2); font-weight: 820; font-stretch: 118%; }
.steps span { color: var(--ink-2); font-size: .95rem; }
.booking__car { background: var(--paper); border: 1px solid var(--line-2); }
.booking__car img { width: 120px; height: 90px; }
.booking__car .price { margin-top: 6px; }
.finance-example { border-color: var(--saffron); box-shadow: inset 6px 0 0 var(--saffron); }
.finance-example h2 { display: flex; align-items: center; gap: .4em; }
.finance-example__legal { margin: 14px 0 0; font-size: .82rem; color: var(--ink-3); white-space: pre-line; }

/* --- area B2B ------------------------------------------------------------------------------ */
.b2b-bar { background: var(--night-2); color: #dbe4ec; font-size: .92rem; }
.b2b-bar__in { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; min-height: 48px; }
.b2b-bar strong { display: inline-flex; align-items: center; gap: .4em; color: var(--saffron-2); }
.b2b-bar nav { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; margin-left: auto; }
.b2b-bar a, .b2b-bar .linklike { color: #fff; text-decoration: none; }
.b2b-bar a:hover, .b2b-bar .linklike:hover { text-decoration: underline; }
.b2b-filters { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.b2b-filters .input-icon { flex: 1 1 240px; }
.b2b-filters select { width: auto; flex: 0 1 220px; }
.b2b-photos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.b2b-photos img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; }
.b2b-photos a:first-child { grid-column: 1 / -1; }

/* --- sezione Nuovo: marchi, modelli, promozioni ------------------------------------------- */
.brand-logo { display: block; width: auto; max-width: 100%; object-fit: contain; }
.brand-logo--sm { height: 32px; max-width: min(120px, 100%); }
.brand-logo--md { height: 56px; max-width: min(150px, 100%); }
.brand-logo--lg { height: 64px; max-width: min(200px, 100%); }
.brand-logo--text { display: inline-grid; place-items: center; height: auto; color: var(--night); font-size: 1.05rem; font-weight: 800; font-stretch: 112%; text-align: center; }
.brand-filter { max-width: 460px; margin: 0 auto 22px; }
.brand-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.brand-tile { display: grid; justify-items: center; align-content: center; gap: 10px; min-height: 150px; padding: 18px 12px; border: 1px solid var(--line-2); border-radius: var(--radius); background: var(--paper); color: var(--ink); text-align: center; text-decoration: none; transition: border-color .15s, box-shadow .15s, transform .15s; }
.brand-tile:hover { border-color: var(--blue); box-shadow: var(--shadow); transform: translateY(-2px); color: var(--ink); }
.brand-tile:focus-visible { outline: 3px solid var(--blue-2); outline-offset: 2px; }
.brand-tile__name { font-weight: 700; font-size: .92rem; }
.brand-tile__n { padding: .1em .6em; border-radius: 999px; background: var(--ok-soft); color: var(--ok); font-size: .76rem; font-weight: 700; }
.brand-head { display: inline-flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.brand-head__sedi { margin: 10px 0 0; color: var(--ink-2); }
.brand-head__sedi .i { display: inline-block; margin-right: .3em; vertical-align: -.22em; color: var(--ink-3); }

/* conteggi per tipo: Km 0 (verde Adriatico) e Nuove (notte), uguali in tutta la sezione */
.stock-chip { display: inline-flex; align-items: baseline; gap: .3em; padding: .28em .7em; border-radius: 999px; background: var(--stone-2); color: var(--ink-2); font-size: .86rem; font-weight: 680; }
.stock-chip b { font-weight: 820; font-variant-numeric: tabular-nums; }
.stock-chip--km0 { background: var(--km0); color: #fff; }
.stock-chip--nuovo { background: var(--night); color: #fff; }

/* pagina del marchio: griglia dei modelli */
.model-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 268px), 1fr)); gap: clamp(14px, 1.6vw, 20px); margin: 0; padding: 0; list-style: none; }
.model-card { display: flex; flex-direction: column; height: 100%; overflow: hidden; border: 1px solid var(--line-2); border-radius: var(--radius-lg); background: var(--paper); color: var(--ink); text-decoration: none; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.model-card:hover { border-color: var(--line); box-shadow: var(--shadow); transform: translateY(-2px); color: var(--ink); }
.model-card__media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: #fff; }
.model-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.2, .7, .2, 1); }
.model-card:hover .model-card__media img { transform: scale(1.04); }
.model-card__ph { display: grid; place-items: center; height: 100%; padding: 24px 15%; background: repeating-linear-gradient(-45deg, #efe9dc 0 14px, #ebe4d5 14px 28px); color: #b9ae98; --sil-bg: #efe9dc; }
.model-card__promo { position: absolute; top: 10px; left: 10px; display: inline-flex; align-items: center; gap: .35em; padding: .3em .7em; border-radius: 999px; background: var(--red); color: #fff; font-size: .78rem; font-weight: 750; box-shadow: var(--shadow-sm); }
.model-card__promo .i { width: 1em; height: 1em; }
.model-card__body { display: flex; flex-direction: column; gap: 10px; flex: 1; padding: 14px 16px 16px; }
.model-card__title { margin: 0; font-size: 1.3rem; font-stretch: 108%; font-weight: 790; }
.model-card__title span { display: block; color: var(--blue); font-size: .72rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.model-card__price { margin: -4px 0 0; font-weight: 750; font-variant-numeric: tabular-nums; }
.model-card__price small { color: var(--ink-3); font-weight: 500; }
.model-card__stock { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; }
.model-card__go { display: flex; align-items: center; justify-content: space-between; gap: .5em; margin-top: auto; padding-top: 12px; border-top: 1px solid var(--line-2); color: var(--blue); font-size: .92rem; font-weight: 700; }
.model-card__go .i { transition: transform .2s ease; }
.model-card:hover .model-card__go .i { transform: translateX(3px); }

/* pagina del modello: testata */
.model-hero { padding: 4px 0 clamp(24px, 3.5vw, 40px); }
.model-hero__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(20px, 4vw, 52px); align-items: center; }
.model-hero__media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow); }
.model-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.model-hero__media .model-card__ph { padding-inline: 18%; }
.model-hero__note { position: absolute; left: 12px; bottom: 12px; margin: 0; padding: .25em .6em; border-radius: 6px; background: rgb(255 255 255 / 90%); color: var(--ink-2); font-size: .76rem; font-weight: 650; }
.model-hero__info { display: grid; gap: 16px; align-content: center; min-width: 0; }
.model-hero__info .page-title { margin: 0; }
.model-hero__info .prose p:last-child { margin-bottom: 0; }
.model-hero__info .btn-row { margin-top: 4px; }
.model-hero__make { display: block; color: var(--blue); font-size: .4em; letter-spacing: .1em; text-transform: uppercase; }
.model-hero__brand { justify-self: start; }
.model-hero__price { margin: 0; font-size: 1.15rem; }
.model-hero__price strong { font-size: 1.6em; font-weight: 840; font-stretch: 112%; }
.model-hero__price small { display: block; color: var(--ink-3); font-size: .8rem; }
.model-hero__facts { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; }
.fact { display: inline-flex; align-items: baseline; gap: .35em; min-height: 40px; padding: .45em 1em; border-radius: 999px; font-weight: 700; text-decoration: none; transition: background-color .15s ease; }
.fact b { font-size: 1.15rem; font-weight: 830; font-stretch: 108%; font-variant-numeric: tabular-nums; }
.fact--km0 { background: var(--km0); color: #fff; }
.fact--km0:hover { background: var(--km0-2); color: #fff; }
.fact--nuovo { background: var(--night); color: #fff; }
.fact--nuovo:hover { background: var(--night-3); color: #fff; }
.fact--promo { background: var(--red-soft); color: var(--red); }
.fact--promo:hover { background: #fbd5d1; color: var(--red); }
@media (max-width: 860px) {
  .model-hero__grid { grid-template-columns: minmax(0, 1fr); }
  .model-hero__info { gap: 12px; }
  .model-hero__brand { display: none; }
  .model-hero__info .btn-row .btn { flex: 1 1 auto; }
}
@media (max-width: 520px) {
  .model-hero__facts { gap: 6px; }
  .fact { min-height: 36px; padding: .35em .75em; font-size: .88rem; }
  .fact b { font-size: 1.05rem; }
}
.model-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 10px; }
.model-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius); }
.color-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.color-list li { padding: .4em .9em; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); font-weight: 600; }
.color-list small { color: var(--ink-3); }
.versions td, .versions th { white-space: normal; }

/* promozioni: scheda compatta (immagine e titolo in evidenza, dettagli che si aprono) */
.promo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr)); gap: 16px; align-items: start; }
.pcard { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--line-2); border-radius: var(--radius); background: var(--paper); box-shadow: var(--shadow-sm); }
.pcard__img { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--stone-2); }
.pcard__img img { width: 100%; height: 100%; object-fit: cover; }
.pcard__ph { display: grid; place-items: center; height: 100%; background: linear-gradient(135deg, var(--stone) 0%, var(--stone-2) 100%); }
.pcard__tag { position: absolute; left: 10px; bottom: 10px; padding: .28em .6em; border-radius: 6px; background: var(--blue); color: #fff; font-size: .68rem; font-weight: 760; font-stretch: 110%; letter-spacing: .07em; text-transform: uppercase; }
.pcard--pieffe .pcard__tag { background: var(--night); color: var(--saffron-2); }
.pcard__body { display: flex; flex-direction: column; gap: 6px; flex: 1; padding: 14px 16px 6px; }
.pcard__title { margin: 0; min-height: calc(3 * 1.22em); font-size: 1.05rem; font-stretch: 104%; font-weight: 760; line-height: 1.22; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.pcard__sub { margin: 2px 0 0; color: var(--red); font-size: 1.22rem; font-weight: 830; font-stretch: 106%; line-height: 1.15; font-variant-numeric: tabular-nums; }
.pcard__until { display: inline-flex; align-items: center; gap: .35em; margin: 0; color: var(--ink-3); font-size: .82rem; }
.pcard__until .i { width: 1em; height: 1em; }
.pcard__more { margin: 6px -16px 0; border-top: 1px solid var(--line-2); }
.pcard__more > summary { display: flex; align-items: center; justify-content: space-between; gap: .5em; min-height: 46px; padding: 0 16px; list-style: none; color: var(--blue); font-size: .92rem; font-weight: 700; }
.pcard__more > summary::-webkit-details-marker { display: none; }
.pcard__more > summary .i { transition: transform .2s ease; }
.pcard__more[open] > summary .i { transform: rotate(180deg); }
.pcard__detail { display: grid; gap: 12px; padding: 0 16px 14px; color: var(--ink-2); font-size: .92rem; }
.pcard__detail p { margin: 0; }
.pcard__legal summary { color: var(--ink-2); font-size: .85rem; font-weight: 650; }
.pcard__legal p { max-height: 15em; margin-top: 8px; padding-right: 6px; overflow: auto; color: var(--ink-3); font-size: .78rem; line-height: 1.5; white-space: pre-line; scrollbar-width: thin; }
.promo-wrap { display: grid; gap: 8px; }
.promo-wrap__brand { justify-self: start; }
.promo-filter { margin-bottom: 18px; }
.promo-filter .fchip { text-decoration: none; }
.promo-filter .fchip.is-on { background: var(--night); border-color: var(--night); color: #fff; }

/* promozioni del modello: un'unica riga che scorre a destra */
.promo-band { background: var(--stone-2); }
.rail-head { display: flex; align-items: end; justify-content: space-between; gap: 12px 24px; margin-bottom: clamp(14px, 2vw, 24px); }
.rail-head .section-title { margin: 0; }
.count-pill { display: inline-grid; place-items: center; min-width: 1.7em; height: 1.7em; padding: 0 .5em; border-radius: 999px; background: var(--red); color: #fff; font-size: .48em; font-stretch: 100%; letter-spacing: 0; vertical-align: .35em; font-variant-numeric: tabular-nums; }
.rail-nav { display: flex; gap: 8px; flex: none; }
.rail-nav .icon-btn:disabled { opacity: .35; cursor: default; }
.rail--promo .rail__track { grid-auto-columns: min(82vw, 300px); align-items: start; list-style: none; }
.rail--promo .rail__track > li { scroll-snap-align: start; min-width: 0; }
.rail-hint { display: none; }
@media (max-width: 699px) {
  .rail-nav { display: none !important; }
  .rail-hint { display: flex; align-items: center; gap: .4em; margin: 2px 0 0; color: var(--ink-3); font-size: .84rem; font-weight: 600; }
  .rail-hint .i { width: 1em; height: 1em; }
}

/* pagina del modello: auto disponibili, prima le Km 0 e poi le Nuove */
.stock-switch { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 20px; }
.stock-switch a { display: inline-flex; align-items: center; gap: .5em; min-height: 44px; padding: .4em .5em .4em 1.1em; border-radius: 999px; font-weight: 740; text-decoration: none; transition: background-color .15s ease; }
.stock-switch b { min-width: 2em; padding: .1em .55em; border-radius: 999px; background: rgb(255 255 255 / 20%); text-align: center; font-variant-numeric: tabular-nums; }
.stock-switch__km0 { background: var(--km0); color: #fff; }
.stock-switch__km0:hover { background: var(--km0-2); color: #fff; }
.stock-switch__nuovo { background: var(--night); color: #fff; }
.stock-switch__nuovo:hover { background: var(--night-3); color: #fff; }
.stock-group { --kind: var(--night); --kind-tint: var(--nuovo-tint); padding: clamp(14px, 2.4vw, 26px); border: 1px solid var(--line-2); border-top: 6px solid var(--kind); border-radius: var(--radius-lg); background: var(--kind-tint); scroll-margin-top: calc(var(--header-h) + 12px); }
.stock-group--km0 { --kind: var(--km0); --kind-tint: var(--km0-tint); }
.stock-group + .stock-group { margin-top: clamp(20px, 3vw, 32px); }
.stock-group__head { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin-bottom: 18px; }
.stock-group__head > div { flex: 1 1 260px; min-width: 0; }
.stock-group__head p { margin: 0; color: var(--ink-2); font-size: .95rem; }
.stock-group__title { margin: 0 0 2px; font-size: clamp(1.2rem, 1rem + .6vw, 1.5rem); font-stretch: 108%; }
.stock-flag { display: inline-grid; place-items: center; min-width: 104px; padding: .6em 1.3em; background: var(--kind); color: #fff; font-size: 1rem; font-weight: 830; font-stretch: 118%; letter-spacing: .08em; text-transform: uppercase; clip-path: polygon(10px 0, 100% 0, calc(100% - 10px) 100%, 0 100%); }
.stock-group .vcard { border-color: transparent; box-shadow: var(--shadow-sm); }
.js .vgrid--more > :nth-child(n + 9) { display: none; }
.stock-group__more { margin: 18px 0 0; text-align: center; }
.stock-alt { margin: 20px 0 0; }

.quote__opt { margin: 0; padding: 0; border: 0; }
.quote__opt legend { margin-bottom: 8px; font-weight: 700; }
.quote__opt-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 6px 18px; }
.quote__opt small { color: var(--ink-3); }
.vcard__indicativa { position: absolute; top: 10px; left: 10px; padding: .2em .55em; border-radius: 6px; background: rgb(255 255 255 / 90%); color: var(--ink-2); font-size: .72rem; font-weight: 700; }
.vdp__photo-note { display: flex; align-items: flex-start; gap: .4em; margin: 8px 0 0; color: var(--ink-3); font-size: .85rem; }
.vdp__photo-note .i { flex: none; width: 1.1em; height: 1.1em; }
/* offerta della casa con condizioni (rottamazione), subito sotto le foto della scheda auto:
   rosso delle promozioni, il pulsante resta allo zafferano delle azioni */
.vdp-cond { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; margin-top: 16px; padding: 16px 20px; border: 1px solid var(--red-line); border-left: 5px solid var(--red); border-radius: var(--radius); background: linear-gradient(180deg, var(--red-tint), var(--paper) 85%); }
.vdp-cond__text { flex: 1 1 280px; min-width: 0; }
.vdp-cond__title { display: flex; align-items: center; gap: .4em; margin: 0 0 4px; font-size: .78rem; font-weight: 780; letter-spacing: .06em; text-transform: uppercase; color: var(--red); }
.vdp-cond__title .i { width: 1.15em; height: 1.15em; }
.vdp-cond__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin: 0; }
.vdp-cond__price strong { font-size: clamp(1.7rem, 1.4rem + 1vw, 2.2rem); font-weight: 840; font-stretch: 112%; font-variant-numeric: tabular-nums; letter-spacing: -.01em; line-height: 1.1; color: var(--red); }
.vdp-cond__save { font-size: .84rem; font-weight: 760; color: var(--red); background: var(--paper); border: 1px solid var(--red-line); padding: .12em .6em; border-radius: 999px; font-variant-numeric: tabular-nums; }
.vdp-cond__cond { margin: 6px 0 0; color: var(--ink-2); font-size: .9rem; }
.vdp-cond__alt { margin: 6px 0 0; color: var(--ink-2); font-size: .9rem; }
.vdp-cond__alt strong { font-variant-numeric: tabular-nums; }
.vdp-cond__cta { flex: none; }
@media (max-width: 560px) { .vdp-cond__cta { flex: 1 1 100%; justify-content: center; } }

/* --- Wrap360: badge nelle schede e vista a 360° nella scheda ------------------------------------ */
.vcard__360 { position: absolute; right: 10px; bottom: 10px; display: inline-flex; align-items: center; gap: .3em; padding: .25em .55em; border-radius: 8px; background: rgb(11 27 43 / 72%); color: #fff; font-size: .78rem; font-weight: 700; }
.vcard__360 .i { width: 1em; height: 1em; color: var(--saffron-2); }
/* nel riquadro della galleria (vehicle.js vista360): 360° · Interni · Dettaglio · Galleria foto */
/* galleria tolta (non nascosta): così le sue foto non si scaricano finché non si apre «Galleria foto» */
.gallery--360 .gallery__stage { aspect-ratio: 4 / 3; }
.gallery--360:not([data-vista="foto"]) :is(.gallery__track, .gallery__counter, .gallery__nav, .gallery__all) { display: none; }
.gallery--360[data-vista="foto"] .v360 { display: none; }
.v360 { position: absolute; inset: 0; z-index: 1; overflow: hidden; border-radius: var(--radius-lg); background: #eceae6; }
.v360__pane, .v360__frame, .spin, .v360__det { position: absolute; inset: 0; }
.v360__pane[hidden] { display: none; }
.v360__frame iframe { width: 100%; height: 100%; border: 0; background: #000; }
.v360__cover, .spin__img, .v360__det img { width: 100%; height: 100%; object-fit: cover; }
.v360__play { position: absolute; left: 50%; bottom: 16px; transform: translateX(-50%); box-shadow: var(--shadow); white-space: nowrap; }
.v360__det { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.v360__det img { flex: 0 0 100%; scroll-snap-align: center; }
.spin { touch-action: pan-y; cursor: grab; user-select: none; -webkit-user-select: none; }
.spin.is-drag { cursor: grabbing; }
.spin:focus-visible { outline: 3px solid var(--blue-2); outline-offset: -3px; }
/* anche lo sfondo sfocato di Motornex: un'immagine trascinabile sotto il mouse ferma la rotazione */
.spin :is(img, canvas) { pointer-events: none; -webkit-user-drag: none; }
.spin__hint { position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%); display: inline-flex; align-items: center; gap: .4em; padding: .4em .85em; border-radius: 999px; background: rgb(11 27 43 / 75%); color: #fff; font-size: .85rem; font-weight: 650; white-space: nowrap; pointer-events: none; transition: opacity .3s ease; }
.spin__hint .i { width: 1.1em; height: 1.1em; color: var(--saffron-2); }
.spin.is-touched .spin__hint { opacity: 0; }
.spin__bar { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; pointer-events: none; }
.spin__bar span { display: block; width: 0; height: 100%; background: var(--saffron); transition: width .2s ease; }
.spin.is-ready .spin__bar { opacity: 0; transition: opacity .4s ease; }
.v360__tabs { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.v360__tab { display: inline-flex; align-items: center; gap: .4em; min-height: 42px; padding: .4em 1em; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); color: var(--ink); font: inherit; font-weight: 650; cursor: pointer; }
.v360__tab .i { width: 1.1em; height: 1.1em; }
.v360__tab:hover { border-color: var(--ink-3); }
.v360__tab[aria-selected="true"] { background: var(--night); border-color: var(--night); color: #fff; }
.v360__n { color: var(--ink-3); font-variant-numeric: tabular-nums; }
.v360__tab[aria-selected="true"] .v360__n { color: inherit; opacity: .75; }
/* telefono: quattro colonne, icona sopra */
@media (max-width: 640px) {
  .v360__tabs { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
  .v360__tab { flex-direction: column; justify-content: center; gap: 2px; min-height: 56px; padding: .35em .3em; border-radius: 14px; font-size: .84rem; line-height: 1.2; text-align: center; }
  .v360__lungo { display: none; }
}

/* --- garanzie e servizi nella scheda veicolo -------------------------------------------- */
.extras__intro { color: var(--ink-2); margin: -6px 0 14px; max-width: 64ch; }
.extras__cat { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--ink-3); font-weight: 700; margin: 20px 0 10px; }
.extras__cat:first-of-type { margin-top: 4px; }
.extras__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.xcard { position: relative; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); padding: 18px 20px; transition: border-color .15s, background-color .15s, box-shadow .15s; }
.xcard--included, .xcard--mandatory { display: grid; gap: 8px; }
.xcard__hit { display: grid; gap: 8px; cursor: pointer; }
.xcard__head { display: flex; align-items: center; gap: 12px; }
.xcard__title { flex: 1; margin: 0; font-weight: 740; font-size: 1.08rem; font-stretch: 104%; line-height: 1.3; color: var(--night); }
.xcard__pill { flex: none; display: inline-flex; align-items: center; gap: .35em; padding: .4em .95em; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); font-weight: 650; font-size: .95rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.xcard__pill .i { width: 1em; height: 1em; }
.xcard__pill--ok .i { color: var(--ok); }
.xcard__text { margin: 0; color: var(--ink-2); font-size: .97rem; line-height: 1.6; max-width: 72ch; }
.xcard--option .xcard__text, .xcard--option .xcard__alt { padding-left: 34px; }
.xcard__note { margin: 0; display: flex; align-items: center; gap: .4em; font-size: .85rem; color: var(--ink-3); }
.xcard__alt { font-size: .8rem; color: var(--ink-3); }
.xcard__doc { display: inline-flex; align-items: center; gap: .35em; margin-top: 10px; font-size: .86rem; font-weight: 650; }
.xcard--option .xcard__doc { margin-left: 34px; }
.xcard__input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.xcard__box { flex: none; display: grid; place-items: center; width: 22px; height: 22px; border: 2px solid var(--ink-3); border-radius: 6px; background: var(--paper); transition: background-color .15s, border-color .15s; }
.xcard__box .i { width: 14px; height: 14px; color: #fff; opacity: 0; }
.xcard--option:hover { border-color: var(--blue-2); }
.xcard--option:has(.xcard__input:focus-visible) { outline: 3px solid var(--blue-2); outline-offset: 2px; }
.xcard--option:has(.xcard__input:checked) { border-color: var(--blue); background: var(--blue-soft); box-shadow: inset 0 0 0 1px var(--blue); }
.xcard--option:has(.xcard__input:checked) .xcard__box { background: var(--blue); border-color: var(--blue); }
.xcard--option:has(.xcard__input:checked) .xcard__box .i { opacity: 1; }
.xcard--option:has(.xcard__input:checked) .xcard__pill { background: var(--blue); border-color: var(--blue); color: #fff; }
.xcard--draft { border-style: dashed; }
.xcard--draft .xcard__hit { cursor: default; }
/* servizi calcolati (Garanzia Spoticar, passaggio di proprietà): libretto da leggere o scaricare,
   vantaggi della Premium Plus, note precontrattuali e asterischi in fondo alla sezione */
.xcard__docs { display: flex; flex-wrap: wrap; gap: 4px 20px; margin: 2px 0 0; }
.xcard--option .xcard__docs { margin-left: 34px; }
.xcard .xcard__docs .xcard__doc { margin: 0; }
.xcard__pros { display: grid; gap: 5px; padding-left: 34px; font-size: .93rem; font-weight: 560; color: var(--ink); }
.xcard__pros span { display: flex; align-items: baseline; gap: .5em; }
.xcard__pros .i { flex: none; width: 1em; height: 1em; color: var(--ok); transform: translateY(.14em); }
.xcard--spoticar.xcard--included { border-left: 4px solid var(--ok); }
.xcard__logo { display: block; width: auto; height: 18px; justify-self: start; }
.xcard--option .xcard__logo { margin-left: 34px; }
.extras__notes { display: grid; gap: 6px; margin-top: 14px; font-size: .82rem; line-height: 1.55; color: var(--ink-3); }
.extras__notes p { margin: 0; max-width: 90ch; }
.price__extra.price__extra--note { margin-top: 2px; font-size: .78rem; font-weight: 500; color: var(--ink-3); }
.draft-tag { justify-self: start; display: inline-block; margin-top: 8px; padding: .2em .6em; border-radius: 6px; background: var(--saffron-soft); color: var(--saffron-ink); font-size: .75rem; font-weight: 700; }
.extras__summary { display: grid; gap: 14px; margin-top: 18px; padding: 16px 20px; border-radius: var(--radius); background: var(--stone); }
.extras__sum { display: grid; gap: 6px; margin: 0; }
.extras__sum div { display: flex; justify-content: space-between; gap: 16px; font-variant-numeric: tabular-nums; }
.extras__sum dt { color: var(--ink-2); }
.extras__sum dt small { color: var(--ink-3); }
.extras__sum dd { margin: 0; font-weight: 650; white-space: nowrap; }
.extras__count { display: inline-grid; place-items: center; min-width: 1.6em; margin-left: .3em; padding: 0 .4em; border-radius: 999px; background: var(--night); color: #fff; font-size: .75rem; font-weight: 700; }
.extras__total { margin-top: 4px; padding-top: 10px; border-top: 1px solid var(--line); font-size: 1.18rem; }
.extras__total dt { color: var(--ink); font-weight: 740; }
.extras__total dd { font-weight: 840; font-stretch: 108%; color: var(--blue); }
.extras__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.extras__actions .btn { white-space: normal; text-align: center; }
@media (max-width: 560px) { .extras__actions .btn { flex: 1 1 100%; } }
.vdp__content, .vdp__content > * { min-width: 0; }
.price__extra { margin: 6px 0 0; font-size: .86rem; font-weight: 620; color: var(--ink-2); }
.price__extra span { font-weight: 500; color: var(--ink-3); }
.vdp__with-extras { margin: 6px 0 4px; font-size: .95rem; color: var(--ink-2); }
.vdp__with-extras strong { color: var(--blue); font-variant-numeric: tabular-nums; }
.lead__extras { margin: 0; padding: 10px 12px; border-radius: 12px; background: var(--blue-soft); color: var(--night); font-size: .9rem; font-weight: 600; }

/* --- pagina Garanzia Spoticar (/garanzia-spoticar/, views/pages/spoticar.js) ---------------- */
.sc-intro { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; padding: 18px 22px; border: 1px solid var(--line-2); border-radius: var(--radius); background: var(--paper); }
.sc-intro .btn-row { margin: 0; }
.sc-count { margin: 0; font-size: 1.05rem; color: var(--ink-2); }
.sc-count strong { font-size: 1.5rem; font-weight: 820; color: var(--night); font-variant-numeric: tabular-nums; }
.sc-h2 { margin-top: clamp(32px, 4vw, 52px); font-size: clamp(1.4rem, 1.1rem + 1vw, 1.95rem); }
.wrap > .sc-h2:first-child { margin-top: 0; }
.sc-levels { list-style: none; margin: 22px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 16px; }
.sc-level { display: flex; flex-direction: column; gap: 10px; padding: 22px; border: 1px solid var(--line); border-top: 4px solid var(--ok); border-radius: var(--radius); background: var(--paper); }
.sc-level--plus { border-top-color: var(--saffron); background: var(--stone); }
.sc-level__tag { margin: 0; display: inline-flex; align-items: center; gap: .4em; font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--ok); }
.sc-level__tag--plus { color: var(--saffron-ink); }
.sc-level__tag .i { width: 1.1em; height: 1.1em; }
.sc-level__name { margin: 0; font-size: 1.25rem; font-weight: 780; font-stretch: 106%; color: var(--night); }
.sc-level__for { margin: 0; font-weight: 650; color: var(--ink); }
.sc-level__text { margin: 0; color: var(--ink-2); font-size: .95rem; line-height: 1.6; }
.sc-level__n { margin: 0; font-size: .85rem; color: var(--ink-3); }
.sc-pros { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: .93rem; font-weight: 560; }
.sc-pros li { display: flex; align-items: baseline; gap: .5em; }
.sc-pros .i { flex: none; width: 1em; height: 1em; color: var(--ok); transform: translateY(.14em); }
.sc-docs { margin: auto 0 0; padding-top: 6px; display: flex; flex-wrap: wrap; gap: 4px 18px; font-size: .88rem; font-weight: 650; }
.sc-docs a { display: inline-flex; align-items: center; gap: .35em; }
.sc-table-wrap { margin-top: 18px; }
.sc-table-wrap + .hint { margin-top: 10px; }
.sc-two h2 { margin-top: 0; }
.sc-table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.sc-table th, .sc-table td { padding: 12px 16px; text-align: left; border-bottom: 1px solid var(--line-2); vertical-align: top; }
.sc-table thead th { font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-3); background: var(--stone); }
.sc-table tbody th { font-weight: 650; }
.sc-table tr:last-child > * { border-bottom: 0; }
.sc-features { list-style: none; margin: 22px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 20px 28px; }
.sc-features li { display: flex; align-items: flex-start; gap: 14px; }
.sc-features .i { flex: none; width: 26px; height: 26px; margin-top: 2px; color: var(--blue); }
.sc-features strong { display: block; color: var(--night); }
.sc-features p { margin: 4px 0 0; color: var(--ink-2); font-size: .95rem; line-height: 1.55; }
.sc-two { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(24px, 4vw, 56px); }
@media (max-width: 860px) { .sc-two { grid-template-columns: 1fr; } }
.sc-files { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 8px; }
.sc-files li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); font-weight: 600; }
.sc-files li > span:first-child { display: inline-flex; align-items: center; gap: .5em; }
.sc-files__act { display: inline-flex; gap: 14px; font-size: .9rem; }
.sc-note { margin: 22px 0 0; font-size: .85rem; color: var(--ink-3); }

/* --- controlli dell'usato --------------------------------------------------------------- */
.checks { text-align: center; }
.checks .eyebrow { justify-content: center; }
.vdp__section > .checks__title { margin: 0 0 8px; font-size: clamp(1.45rem, 1.15rem + 1.1vw, 1.95rem); font-stretch: 112%; font-weight: 800; letter-spacing: -.015em; }
.checks__intro { max-width: 60ch; margin: 0 auto 22px; color: var(--ink-2); }
.checks__grid { display: grid; gap: 14px; max-width: 780px; margin-inline: auto; text-align: left; }
.checks__badge { display: flex; align-items: center; gap: 18px; padding: 18px 22px; border-radius: var(--radius); background: var(--night); color: #fff; }
.checks__seal { position: relative; flex: none; display: grid; place-items: center; width: 68px; height: 68px; border-radius: 16px; background: #fff; }
.checks__seal img { width: 54px; height: 54px; }
.checks__tick { position: absolute; top: -9px; right: -9px; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--saffron); color: var(--night); box-shadow: 0 0 0 3px var(--night); }
.checks__tick .i { width: 15px; height: 15px; }
.checks__badge-title { margin: 0; font-size: 1.12rem; font-weight: 780; font-stretch: 108%; }
.checks__badge-text { margin: 4px 0 0; color: #c9d4df; }
.checks__num { margin: 6px 0 0; color: var(--saffron-2); font-weight: 700; }
.checks__num strong { font-size: 1.3em; }
.checks__list { display: grid; margin: 0; padding: 4px 22px; list-style: none; border: 1px solid var(--line); border-radius: var(--radius); }
.checks__list li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 0; border-bottom: 1px solid var(--line-2); }
.checks__list li:last-child { border-bottom: 0; }
.checks__list .i { flex: none; width: 20px; height: 20px; color: var(--ok); }
@media (min-width: 760px) {
  .checks__list { grid-template-columns: 1fr 1fr; column-gap: 36px; }
  .checks__list li:nth-last-child(2):nth-child(odd) { border-bottom: 0; }
}
.checks--draft { border: 2px dashed var(--saffron); }
.draft-banner { display: flex; align-items: center; gap: .5em; margin: 0 0 16px; padding: 8px 12px; border-radius: 10px; background: var(--saffron-soft); color: var(--saffron-ink); font-size: .85rem; font-weight: 600; text-align: left; }

/* --- scheda PDF: modulo e pagine --------------------------------------------------------- */
.sheet-pop[popover] { width: min(540px, calc(100% - 24px)); max-height: calc(100dvh - 24px); margin: auto; padding: 0; overflow: auto; border: 0; border-radius: var(--radius-lg); background: var(--paper); color: var(--ink); box-shadow: var(--shadow-lg); }
.sheet-pop::backdrop { background: rgb(11 27 43 / 50%); }
.sheet-form { position: relative; display: grid; gap: 14px; padding: 26px clamp(18px, 4vw, 30px); }
.sheet-form .eyebrow { margin: 0; }
.sheet-form__close { position: absolute; top: 12px; right: 12px; }
.sheet-form__title { margin: 0; padding-right: 40px; font-size: 1.45rem; font-stretch: 108%; }
.sheet-form__intro { margin: 0; color: var(--ink-2); }
.sheet-form__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.sheet-form__fields .field--wide { grid-column: 1 / -1; }
@media (max-width: 520px) { .sheet-form__fields { grid-template-columns: minmax(0, 1fr); } }
/* avvisi per e-mail (lib/avvisi.js): «Salva la ricerca» sopra i risultati e pagine dei link delle e-mail */
/* «Avvisami se il prezzo scende…» nella carta del prezzo: ben visibile ma diverso dalla richiesta di preventivo */
/* «Avvisami se il prezzo scende…»: pieno nel colore del marchio, con la campanella che suona due volte */
.btn--avviso { min-height: 52px; background: var(--blue); color: #fff; border-color: var(--blue); font-weight: 750; white-space: normal; text-align: center; line-height: 1.3; box-shadow: 0 8px 18px -10px color-mix(in srgb, var(--blue) 70%, transparent); }
.btn--avviso:hover { background: var(--blue-2); color: #fff; border-color: var(--blue-2); }
.btn--avviso .i { flex: none; width: 1.3em; height: 1.3em; transform-origin: 50% 12%; animation: avviso-suona 1.3s ease-in-out 1.2s 2; }
@keyframes avviso-suona {
  0%, 60%, 100% { transform: rotate(0); }
  10% { transform: rotate(16deg); }
  20% { transform: rotate(-13deg); }
  30% { transform: rotate(9deg); }
  40% { transform: rotate(-6deg); }
  50% { transform: rotate(3deg); }
}
@media (prefers-reduced-motion: reduce) { .btn--avviso .i { animation: none; } }
/* riquadro degli avvisi nel modulo di richiesta: un servizio, ben separato dai consensi */
.lead__avviso { display: flex; gap: 14px; align-items: flex-start; margin: 4px 0 14px; padding: 16px 18px; border-radius: var(--radius); background: var(--blue-soft); border: 2px solid var(--blue); }
.lead__avviso-i { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 50%; background: var(--blue); color: #fff; }
.lead__avviso-i .i { width: 22px; height: 22px; }
.lead__avviso-c { display: grid; gap: 6px; min-width: 0; }
.lead__avviso-t { margin: 0; font-size: 1.05rem; font-weight: 800; color: var(--ink); }
.lead__avviso-x { margin: 0; font-size: .9rem; line-height: 1.45; color: var(--ink-2); }
.lead__avviso-x span { color: var(--ink-3); }
.lead__avviso-s { display: inline-flex; align-items: center; gap: .6em; justify-self: start; margin-top: 4px; padding: .55em .9em; border-radius: 10px; background: var(--paper); border: 1.5px solid var(--blue); font-weight: 750; font-size: .95rem; color: var(--blue); cursor: pointer; }
.lead__avviso-s input { width: 22px; height: 22px; margin: 0; flex: none; accent-color: var(--blue); }
.lead__avviso-s:has(input:checked) { background: var(--blue); color: #fff; }
.lead__avviso-s:has(input:focus-visible) { outline: 3px solid var(--blue-2); outline-offset: 2px; }
@media (max-width: 520px) { .lead__avviso { padding: 14px; gap: 10px; } .lead__avviso-i { width: 36px; height: 36px; } }
/* consenso marketing proposto dopo l'invio (views/components.js → propostaMarketing): dopo il modulo
   inviato, nelle pagine «Richiesta inviata», della scheda PDF e dell'avviso attivato */
.consenso-mk { display: flex; gap: 14px; align-items: flex-start; margin: 16px 0 0; padding: 16px 18px; border-radius: var(--radius); background: var(--paper); border: 1.5px solid var(--line-2); text-align: left; }
.consenso-mk__i { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 50%; background: var(--saffron-soft); color: var(--saffron-ink); }
.consenso-mk__i .i { width: 22px; height: 22px; }
.consenso-mk__c { display: grid; gap: 6px; min-width: 0; }
.consenso-mk__t { margin: 0; font-size: 1.05rem; font-weight: 800; color: var(--ink); }
.consenso-mk__x { margin: 0; font-size: .9rem; line-height: 1.45; color: var(--ink-2); }
.consenso-mk__b { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin-top: 4px; }
.consenso-mk__b .linklike { font-size: .9rem; color: var(--ink-3); }
.consenso-mk__s { margin: 0; font-size: .9rem; }
.consenso-mk__s:empty { display: none; }
.consenso-mk__s.is-ok { color: var(--ok); font-weight: 700; }
.consenso-mk__s.is-error { color: var(--red); }
.consenso-mk.is-sent .consenso-mk__b { display: none; }
@media (max-width: 520px) { .consenso-mk { padding: 14px; gap: 10px; } .consenso-mk__i { width: 36px; height: 36px; } }
.avviso-consenso { margin: 0; font-size: .9rem; line-height: 1.5; color: var(--ink-2); }
.avviso-ricerca { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0 0 18px; color: var(--ink-2); font-size: .94rem; }
.avviso-ricerca .btn .i { width: 1.15em; height: 1.15em; }
/* suggerimenti mentre si scrive (site.js, campi con data-suggerimenti) */
.cerca[popover] { overflow: visible; }
.suggerimenti { position: absolute; z-index: 40; top: calc(100% + 6px); left: 0; right: 0; display: grid; gap: 2px; margin: 0; padding: 6px; list-style: none; max-height: min(420px, 60vh); overflow: auto; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); color: var(--ink); box-shadow: var(--shadow-lg); text-align: left; }
.suggerimenti[hidden] { display: none; }
.suggerimenti li { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: .6em .8em; border-radius: 8px; cursor: pointer; font-weight: 600; }
.suggerimenti li[aria-selected="true"], .suggerimenti li:hover { background: var(--stone-2); }
.suggerimenti small { flex: none; color: var(--ink-3); font-weight: 500; font-variant-numeric: tabular-nums; }
/* ricerca testuale (views/pages/catalog.js ricercaInfo): parole corrette e «Cerchi anche» */
.ricerca-info { display: grid; gap: 8px; margin: -6px 0 18px; font-size: .94rem; color: var(--ink-2); }
.ricerca-info p { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin: 0; }
.ricerca-info__corr .i { width: 1.05em; height: 1.05em; }
.ricerca-info__corr strong { color: var(--ink); }
.achip--anche { padding: .35em .8em; background: var(--paper); color: var(--ink); border: 1px solid var(--line); }
.achip--anche:hover { background: var(--stone-2); color: var(--ink); }
.achip--anche span { color: var(--ink-3); font-variant-numeric: tabular-nums; }
/* ricerca testuale a cascata (views/pages/catalog.js): un titolo per condizione, poi le nuove */
.cascata { --cond: var(--ink-3); }
.cascata--km0 { --cond: var(--km0); }
.cascata--aziendale { --cond: #3d3577; }
.cascata--nuovo { --cond: var(--night); }
.cascata + .cascata { margin-top: clamp(28px, 4vw, 44px); }
.cascata__titolo { display: flex; flex-wrap: wrap; align-items: center; gap: .3em .5em; margin: 0 0 14px; padding-left: 12px; border-left: 5px solid var(--cond); font-size: clamp(1.15rem, 1rem + .5vw, 1.4rem); font-stretch: 108%; }
.cascata__n { display: inline-grid; place-items: center; min-width: 1.8em; height: 1.8em; padding: 0 .55em; border-radius: 999px; background: var(--stone-2); color: var(--ink-2); font-size: .7em; font-stretch: 100%; font-variant-numeric: tabular-nums; }
.cascata__nota { margin: 0 0 12px; color: var(--ink-2); }
.cascata-nuove { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; margin-top: clamp(24px, 3vw, 36px); padding: 20px 24px; border-radius: var(--radius-lg); background: var(--night); color: #fff; }
.cascata-nuove p { flex: 1 1 320px; margin: 0; max-width: 62ch; }
/* «Richiedi una vettura specifica» in fondo agli elenchi delle nuove e nella pagina del Nuovo */
.richiesta-nuova { margin-top: clamp(24px, 3vw, 36px); border: 1px solid var(--line-2); border-radius: var(--radius-lg); background: var(--paper); text-align: left; }
.richiesta-nuova__testa { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; padding: 20px 24px; cursor: pointer; list-style: none; }
.richiesta-nuova__testa::-webkit-details-marker { display: none; }
.richiesta-nuova__i { display: grid; flex: none; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--night); color: #fff; }
.richiesta-nuova__testo { display: grid; flex: 1 1 320px; gap: 4px; min-width: 0; }
.richiesta-nuova__testo strong { font-size: 1.1rem; }
.richiesta-nuova__testo span { max-width: 70ch; color: var(--ink-2); }
.richiesta-nuova[open] .richiesta-nuova__apri { display: none; }
.richiesta-nuova .lead, .empty .richiesta-nuova .lead { max-width: none; margin: 0; border: 0; border-top: 1px solid var(--line); border-radius: 0 0 var(--radius-lg) var(--radius-lg); box-shadow: none; }
.empty .richiesta-nuova { max-width: 820px; margin-inline: auto; }
.stock-alt--richiesta { max-width: 80ch; color: var(--ink-2); }
.stock-alt--richiesta strong { color: var(--ink); }
.avvisi-lista { display: grid; gap: 10px; margin: 18px auto; padding: 0; max-width: 560px; list-style: none; text-align: left; }
.avvisi-lista li { display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px; border: 1px solid var(--line-2); border-radius: var(--radius); background: var(--paper); }
.avvisi-lista li > .i { flex: none; margin-top: .15em; color: var(--blue); }
.avvisi-lista li > span:first-of-type { flex: 1; min-width: 0; }
.avvisi-lista small { color: var(--ink-3); }
.avvisi-lista--azioni li { flex-wrap: wrap; }
.avvisi-azioni { display: flex; gap: 6px; }
.avvisi-azione { display: inline; margin: 0; }
.sheet-car { display: flex; align-items: center; gap: 16px; max-width: 540px; margin: 20px auto; padding: 14px; border: 1px solid var(--line-2); border-radius: var(--radius); background: var(--paper); text-align: left; }
.sheet-car img, .sheet-car__ph { flex: none; width: 160px; height: 120px; object-fit: cover; border-radius: 12px; }
.sheet-car__ph { display: grid; place-items: center; padding: 12px; background: var(--stone); color: var(--ink-3); }
.sheet-car > div { flex: 1; min-width: 0; }
.sheet-car p { margin: 0; }
.sheet-car__title { font-size: 1.1rem; }
.sheet-car__version { color: var(--ink-3); font-size: .9rem; }
.sheet-car__price { margin-top: 4px !important; color: var(--blue); font-size: 1.25rem; font-weight: 800; }
.sheet-car__extras { display: grid; gap: 2px; margin: 8px 0 0; padding: 8px 0 0; border-top: 1px solid var(--line-2); list-style: none; font-size: .88rem; }
.sheet-car__extras li { display: flex; justify-content: space-between; gap: 12px; }
.sheet-car__extras li span { flex: none; white-space: nowrap; }
.sheet-car__total { font-weight: 750; }
@media (max-width: 520px) {
  .sheet-car { flex-direction: column; align-items: stretch; }
  .sheet-car img, .sheet-car__ph { width: 100%; height: auto; aspect-ratio: 4 / 3; }
}

/* --- gestione: menu laterale a gruppi --------------------------------------------------- */
.adm { display: grid; grid-template-columns: 252px minmax(0, 1fr); min-height: 100dvh; }
.adm-top { display: none; }
.adm__side[popover] { position: sticky; top: 0; inset: auto; display: flex; flex-direction: column; width: auto; height: 100dvh; margin: 0; padding: 0; overflow: auto; border: 0; background: var(--night); color: #fff; }
.adm__side-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 20px 18px 10px; }
.adm__brand { display: inline-flex; align-items: center; gap: 10px; color: #fff; text-decoration: none; }
.adm__brand span { color: var(--saffron-2); font-size: .74rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.adm__close { display: none; }
.adm__groups { display: grid; gap: 16px; padding: 8px 10px 20px; }
.adm__group-title { margin: 0 0 4px; padding: 0 10px; color: #8ea3b6; font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.adm__group ul { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.adm__group a { display: flex; align-items: center; gap: 10px; padding: .55em .7em; border-radius: 10px; color: #d3dde6; font-size: .95rem; font-weight: 620; text-decoration: none; }
.adm__group a .i { width: 18px; height: 18px; color: #8ea3b6; }
.adm__group a:hover { background: var(--night-2); color: #fff; }
.adm__group a[aria-current] { background: var(--night-3); color: #fff; box-shadow: inset 3px 0 0 var(--saffron); }
.adm__group a[aria-current] .i { color: var(--saffron-2); }
.adm__badge { margin-left: auto; min-width: 1.7em; padding: 0 .45em; border-radius: 999px; background: var(--saffron); color: var(--night); font-size: .74rem; line-height: 1.7; text-align: center; }
.adm__me { margin-top: auto; padding: 14px 18px 20px; border-top: 1px solid var(--night-2); font-size: .88rem; }
.adm__me-name { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 10px; }
.adm__me-name span { display: grid; }
.adm__me-name small { color: #8ea3b6; overflow-wrap: anywhere; }
.adm__me-links { display: flex; flex-wrap: wrap; gap: 6px 14px; }
.adm__me-links a, .adm__me-links .linklike { display: inline-flex; align-items: center; gap: .3em; color: #c9d4de; text-decoration: none; }
.adm__me-links a:hover, .adm__me-links .linklike:hover { color: #fff; text-decoration: underline; }
.adm__me .i { width: 16px; height: 16px; }
.adm__main { width: 100%; max-width: 1180px; padding: 30px clamp(16px, 3vw, 44px) 64px; }
.adm__main--wide { max-width: 1600px; }
@media (max-width: 1000px) {
  .adm { grid-template-columns: minmax(0, 1fr); }
  .adm-top { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 16px; background: var(--night); }
  .adm-top__menu { display: inline-flex; align-items: center; gap: .4em; min-height: 44px; padding: .45em .9em; border: 1px solid var(--night-3); border-radius: 10px; background: transparent; color: #fff; font: inherit; font-weight: 650; cursor: pointer; }
  .adm__side[popover] { display: none; }
  .adm__side[popover]:popover-open { position: fixed; inset: 0 auto 0 0; display: flex; width: min(300px, 86vw); height: 100dvh; box-shadow: var(--shadow-lg); }
  .adm__side::backdrop { background: rgb(11 27 43 / 50%); }
  .adm__close { display: inline-grid; border-color: var(--night-3); background: transparent; color: #fff; }
}

/* --- gestione: sezione Nuovo ------------------------------------------------------------- */
.admin-brand { display: inline-flex; align-items: center; gap: 12px; }
.admin-thumb { display: block; width: 96px; height: 72px; object-fit: contain; border-radius: 8px; background: #fff; border: 1px solid var(--line-2); }
.admin-gallery { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
.admin-gallery__item { display: grid; gap: 4px; justify-items: start; font-size: .8rem; }
.admin-thumb--wide { width: 96px; height: 60px; object-fit: cover; }
/* marchi e loghi */
.admin-logo { display: grid; place-items: center; width: 96px; height: 48px; padding: 4px; border: 1px solid var(--line-2); border-radius: 8px; background: #fff; }
.admin-logo .brand-logo { max-height: 100%; }
.admin-logo .brand-logo--text { font-size: .72rem; }
.logo-preview { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
.logo-preview p { margin: 0; flex-basis: 100%; }
.logo-preview__box { display: grid; justify-items: center; gap: 6px; min-width: 200px; padding: 18px 20px 10px; border: 1px solid var(--line-2); border-radius: 12px; background: #fff; }
.logo-preview__box--stone { background: var(--stone); }
.logo-preview__box small { color: var(--ink-3); font-size: .75rem; }
/* gestione del finanziamento: sconto con l'unità accanto */
.fin-sconto { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.fin-sconto select { width: auto; }
.fin-prova-form { display: flex; flex-wrap: wrap; align-items: end; gap: 10px; }
.fin-prova-form .field { flex: 0 1 320px; }
.fin-prova { margin-top: 12px; }
.fin-prova p { margin: 0; }
.admin-gallery .admin-thumb--wide { width: 160px; height: 100px; }
.admin-thumb--none { display: grid; place-items: center; color: var(--ink-3); background: var(--stone); }
/* foto del modello: immagine attuale e scelta tra le immagini disponibili */
.photo-form h2:not(:first-of-type) { margin-top: 12px; }
.photo-now { display: grid; grid-template-columns: minmax(0, 360px) minmax(0, 1fr); gap: 16px 24px; align-items: start; }
.photo-now img, .photo-now__none { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border: 1px solid var(--line-2); border-radius: 12px; background: #fff; }
.photo-now__none { display: grid; place-items: center; padding: 16px; color: var(--ink-3); text-align: center; background: var(--stone); }
.photo-now p { margin: 0 0 12px; }
@media (max-width: 700px) { .photo-now { grid-template-columns: minmax(0, 1fr); } }
.photo-pick { display: grid; gap: 10px; margin: 0; padding: 0; border: 0; }
.photo-pick legend { margin-bottom: 8px; font-size: 1.05rem; font-weight: 750; }
.photo-pick h3 { margin: 10px 0 0; }
.photo-pick h3 small { color: var(--ink-3); font-weight: 600; }
.photo-pick .small { margin: 0; }
.photo-auto { padding: 10px 12px; border: 1.5px solid var(--line-2); border-radius: 12px; background: #fff; }
.photo-auto:has(input:checked) { border-color: var(--blue-2); box-shadow: 0 0 0 3px rgb(22 93 150 / 18%); }
.photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 170px), 1fr)); gap: 10px; }
.photo-opt { display: grid; gap: 6px; align-content: start; min-width: 0; padding: 6px 6px 8px; border: 1.5px solid var(--line-2); border-radius: 12px; background: #fff; font-size: .82rem; }
.photo-opt:has(input[type=radio]:checked) { border-color: var(--blue-2); box-shadow: 0 0 0 3px rgb(22 93 150 / 18%); }
.photo-opt__img { position: relative; display: block; cursor: pointer; }
.photo-opt__img input { position: absolute; top: 6px; left: 6px; width: 22px; height: 22px; margin: 0; accent-color: var(--blue); }
.photo-opt__img img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 8px; background: var(--stone); }
.photo-opt .check { font-size: .82rem; }
.photo-opt .check input { width: 18px; height: 18px; }
.photo-opt__in { display: inline-flex; align-items: center; gap: .3em; color: var(--ok); font-weight: 650; }
.photo-opt__in .i { width: 1em; height: 1em; }
.photo-opt small { overflow: hidden; color: var(--ink-3); text-overflow: ellipsis; white-space: nowrap; }
/* immagini del configuratore: una cartella del repertorio per riquadro, poi allestimenti e colori */
.photo-folder { padding: 2px 12px 12px; border: 1px solid var(--line-2); border-radius: 12px; background: var(--paper); }
.photo-folder > summary { padding: 9px 0; }
.photo-folder > summary small { color: var(--ink-3); font-weight: 600; }
.photo-folder__trim { margin: 10px 0 6px; font-size: .92rem; }
.photo-opt__more > summary { color: var(--blue); font-size: .8rem; font-weight: 650; }
.photo-views { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin-top: 6px; }
.photo-view { display: grid; gap: 2px; min-width: 0; }
.photo-view .photo-opt__img input { top: 4px; left: 4px; width: 18px; height: 18px; }
.photo-filter .lead__grid { align-items: end; }

/* --- gestione: cartellini per targa ------------------------------------------------------- */
.plate-form { display: grid; gap: 10px; max-width: 720px; margin: 16px 0 20px; padding: 20px; border: 1px solid var(--line-2); border-radius: var(--radius); background: var(--paper); }
.plate-form__label { font-weight: 700; }
.plate-form__label small { color: var(--ink-3); font-weight: 500; }
.plate-form__row { display: flex; flex-wrap: wrap; gap: 10px; }
.plate-form__row textarea { flex: 1 1 260px; min-height: 64px; resize: vertical; font-size: 1.9rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; font-variant-numeric: tabular-nums; }
.plate-form__formats { display: flex; flex-wrap: wrap; gap: 6px 22px; margin: 0; padding: 0; border: 0; }
.plate-results { display: grid; gap: 8px; max-width: 980px; margin: 0 0 12px; padding: 0; list-style: none; }
.plate-result { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; padding: 10px 14px; border: 1px solid var(--line-2); border-radius: 12px; background: var(--paper); }
.plate-result > span:not(.plate-chip) { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .35em; }
.plate-result.is-ok .i { color: var(--ok); }
.plate-result.is-wait { background: var(--saffron-soft); border-color: var(--saffron-soft); }
.plate-result.is-error { background: var(--red-soft); border-color: var(--red-soft); color: var(--red); }
.plate-chip { padding: .2em .6em; border: 2px solid var(--night); border-radius: 6px; background: #fff; font-weight: 800; letter-spacing: .1em; font-variant-numeric: tabular-nums; }

/* --- gestione: gruppi di caselle ------------------------------------------------------- */
.check-group { margin: 0; padding: 0; border: 0; }
.with-icon { display: inline-flex; align-items: center; gap: .35em; }
.check-group legend { margin-bottom: 6px; font-size: .9rem; font-weight: 650; }
.check-group__list { display: flex; flex-wrap: wrap; gap: 6px 18px; max-height: 240px; overflow: auto; }
.check-group small { display: block; margin-top: 6px; color: var(--ink-3); }

/* --- prestazioni: il browser disegna subito la parte visibile e rimanda il resto ---------- */
.hero ~ .section, .contact-band, .vdp__content > .vdp__section, .vdp > .section, .catalog ~ .section {
  content-visibility: auto;
  contain-intrinsic-size: auto 720px;
}
.contact-band { contain-intrinsic-size: auto 320px; }
.vdp__content > .vdp__section { contain-intrinsic-size: auto 420px; }

/* --- accessibilità e stampa ------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
@media print {
  .site-header, .site-footer, .actionbar, .consent, .no-print, .lead, .sim__top input[type=range], .sim__durate, .sim__plan > .btn, .save-btn, .vdp__ctas, .vdp__tools, .rail, .print-bar { display: none !important; }
  body { background: #fff; }
  .labels--etichette { grid-template-columns: repeat(2, 95mm); }
  .adm-top, .adm__side { display: none !important; }
  .adm { display: block; }
  .adm__main { max-width: none; padding: 0; }
  /* scheda veicolo: solo i servizi scelti, inclusi e sempre dovuti, con il totale */
  .extras__actions, .extras__intro, .sheet-pop, .draft-tag, .draft-banner, .xcard__doc, .xcard__box, .gallery__strip, .gallery__nav, .gallery__counter, .vdp__360, .v360__tabs, .spin__hint, .v360__play, [data-recommend], .section--stone-2 { display: none !important; }
  .xcard--option:not(:has(.xcard__input:checked)), .xcard--draft, .checks--draft { display: none !important; }
  .xcard, .checks__grid, .extras__summary { break-inside: avoid; }
  .xcard--option .xcard__text, .xcard--option .xcard__alt { padding-left: 0; }
  @page { size: A4; margin: 10mm; }
}
@media print and (orientation: landscape) { .labels--cartello .label { page-break-after: always; } }

/* --- temi stagionali (src/lib/temi.js) ---------------------------------------------------
   Il tema in onda aggiunge data-tema="<codice>" su <html> e il suo tema.css DOPO questo file:
   può ridefinire le variabili di :root e decorare le pagine. Qui solo la base neutra dei due
   agganci che esistono solo quando c'è un tema: la fascia del messaggio e lo strato decorativo
   (tre <i> vuoti, ognuno con ::before e ::after a disposizione del tema). */
.tema-fascia { background: var(--tema-fascia-fondo, var(--night)); color: var(--tema-fascia-testo, #fff); font-size: .95rem; line-height: 1.4; }
.tema-fascia__in { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 4px 16px; padding-block: 10px; text-align: center; }
.tema-fascia__testo { margin: 0; font-weight: 600; }
.tema-fascia__link { display: inline-flex; align-items: center; gap: .35em; color: inherit; font-weight: 750; }
.tema-fascia__link:hover { color: inherit; }
.tema-fascia__link .i { width: 1em; height: 1em; }
.tema-decoro { position: fixed; inset: 0; z-index: 30; pointer-events: none; overflow: hidden; }
.tema-decoro > i { position: absolute; inset: 0; display: block; }
@media print { .tema-fascia, .tema-decoro, .tema-prova { display: none !important; } }
.admin-tema-card { align-content: start; }
.admin-tema-img { width: auto; max-width: 100%; max-height: 220px; border-radius: 10px; border: 1px solid var(--line-2); }

/* --- noleggio a lungo termine (Pieffe Rent, views/pages/noleggio.js) -------------------------
   Le foto dei noleggiatori sono auto scontornate: intere, su un fondo chiaro, mai tagliate. */
.ocard__media, .odp__foto { background: radial-gradient(120% 90% at 50% 100%, var(--stone-2), var(--paper) 70%); }
.ocard__media { aspect-ratio: 16 / 10; }
.ocard__media img, .vcard:hover .ocard__media img { object-fit: contain; padding: 6% 5% 4%; transform: none; }
.ocard__flag { position: absolute; left: 10px; top: 10px; display: inline-flex; align-items: center; gap: .35em; padding: .3em .6em; border-radius: 8px; background: var(--night); color: #fff; font-size: .78rem; font-weight: 700; }
.ocard__flag .i { width: 1.05em; height: 1.05em; }
.ocard__foot .price { flex: 1 1 auto; min-width: 0; }
.badge--partner { background: var(--stone-2); color: var(--ink-2); }
.canone .price__value small { font-size: .62em; font-weight: 700; color: var(--ink-2); margin-left: .1em; }
.canone__cond { font-size: .8rem; color: var(--ink-2); line-height: 1.35; font-variant-numeric: tabular-nums; }
/* due righe sempre riservate alle condizioni: i canoni di una fila di schede restano allineati */
.ocard .canone__cond { min-height: calc(2em * 1.35); }
.canone__altro { margin-top: 4px; font-size: .78rem; color: var(--ink-3); }
.canone--large .price__value { font-size: 2.1rem; }
.canone--large .canone__cond { font-size: .9rem; }
.odp__foto { position: relative; aspect-ratio: 16 / 10; border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--line-2); }
.odp__foto img { width: 100%; height: 100%; object-fit: contain; padding: 4% 4% 3%; }
.odp__nota { margin: 12px 0 0; }
@media (max-width: 760px) {
  .odp__foto { border-radius: 0; border-inline: 0; }
  .odp .vdp__photo-note { padding-inline: var(--gutter); }
}
.canoni { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 14px; margin-bottom: 12px; }
.canoni__item { padding: 16px 18px 8px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--stone); }
.canoni__chi { margin: 0 0 4px; font-size: .78rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-3); }
.canoni__canone { margin: 0 0 6px; font-size: 1rem; color: var(--ink-2); }
.canoni__canone strong { font-size: 1.7rem; font-weight: 820; color: var(--ink); font-variant-numeric: tabular-nums; }
.canoni__canone span { margin-left: .4em; font-size: .85rem; font-weight: 650; color: var(--ink-3); }
.canoni .specs { grid-template-columns: 1fr; }
.passi { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 16px; counter-reset: passo; }
.passi__item { position: relative; display: grid; gap: 6px; align-content: start; padding: 20px 20px 22px; border: 1px solid var(--line-2); border-radius: var(--radius); background: var(--paper); }
.passi__n { position: absolute; right: 16px; top: 10px; font-size: 2.4rem; font-weight: 820; line-height: 1; color: var(--stone-3); font-variant-numeric: tabular-nums; }
.passi__icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--saffron-soft); color: var(--saffron-ink); }
.passi__item strong { font-size: 1.08rem; }
.passi__item span:last-child { color: var(--ink-2); font-size: .95rem; }
.hero__feature--noleggio { background: radial-gradient(110% 80% at 50% 90%, var(--night-3), var(--night) 72%); }
.hero__feature--noleggio .hero__img { object-fit: contain; padding: 12% 6% 24%; }
.hero__feature--noleggio:hover .hero__img { transform: scale(1.02); }
.filters__label { display: block; margin-bottom: 10px; font-size: .95rem; }

/* --- gestione: Garanzia Spoticar (views/gestione/spoticar.js) ---------------------------------- */
.sc-sub { margin: 0 0 16px; }
.sc-listino th, .sc-listino td { padding: 6px 8px; }
.sc-listino thead th { font-size: .78rem; line-height: 1.25; vertical-align: bottom; }
.sc-cell { width: 9ch; padding: .35em .45em; text-align: right; font-variant-numeric: tabular-nums; }

/* --- «Prenotala online»: percorso di pre-acquisto (views/pages/acquisto.js, js/acquisto.js) ---------
   Pulsante nella scheda, finestra con tre passi e riepilogo fisso, pagina «La tua prenotazione».
   Colori dalle variabili del sito (Motornex: Tiffany per l'azione, Ink per la testata). */
.vdp__acq { display: grid; gap: 8px; margin-bottom: 4px; }
.btn--acq { position: relative; isolation: isolate; overflow: hidden; }
.btn--acq .i { width: 1.25em; height: 1.25em; }
.vdp__acq-bonus { display: flex; align-items: center; justify-content: center; gap: .45em; margin: 0; padding: .45em .8em; border-radius: 10px; background: var(--red-tint); border: 1px solid var(--red-line); color: var(--red-2); font-size: .88rem; line-height: 1.3; text-align: center; }
.vdp__acq-bonus .i { flex: none; width: 1.05em; height: 1.05em; }
.vdp__acq-hint { margin: 0; font-size: .8rem; line-height: 1.4; color: var(--ink-3); text-align: center; }
.vdp__intesta-p .vdp__acq-bonus { margin-top: 6px; }

.acq-dialog { width: min(1180px, calc(100vw - 32px)); height: min(900px, calc(100dvh - 32px)); max-width: none; max-height: none; padding: 0; border: 0; border-radius: var(--radius-lg); background: var(--stone); color: var(--ink); box-shadow: var(--shadow-lg); overflow: hidden; }
.acq-dialog::backdrop { background: rgb(11 17 20 / 62%); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.acq-dialog[open] { animation: acq-in .22s ease-out; }
@keyframes acq-in { from { opacity: 0; transform: translateY(14px) scale(.985); } to { opacity: 1; transform: none; } }
.acq-dialog__slot { height: 100%; }
.acq-dialog__wait { display: flex; align-items: center; justify-content: center; gap: .5em; height: 100%; margin: 0; color: var(--ink-3); font-weight: 650; }
html.acq-aperta { overflow: hidden; }

.acq { display: grid; grid-template-rows: auto minmax(0, 1fr); background: var(--stone); }
.acq--modale { height: 100%; }
.acq__top { display: flex; align-items: center; gap: 12px 20px; padding: 12px clamp(16px, 2.4vw, 26px); background: var(--night); color: #fff; }
.acq__brand { display: flex; align-items: center; gap: .5em; margin: 0; font-weight: 750; white-space: nowrap; }
.acq__brand .i { width: 1.3em; height: 1.3em; color: var(--saffron); }
.acq__steps { list-style: none; display: flex; gap: 6px; margin: 0 auto 0 0; padding: 0; counter-reset: none; }
.acq__steps li { display: inline-flex; align-items: center; gap: .45em; padding: .35em .8em .35em .4em; border-radius: 999px; background: rgb(255 255 255 / 8%); color: rgb(255 255 255 / 72%); font-size: .86rem; font-weight: 650; }
.acq--passi .acq__steps li { cursor: pointer; }
.acq__steps li span { display: inline-grid; place-items: center; width: 1.6em; height: 1.6em; border-radius: 50%; background: rgb(255 255 255 / 14%); color: #fff; font-size: .8rem; font-variant-numeric: tabular-nums; }
.acq__steps li[aria-current] { background: #fff; color: var(--ink); }
.acq__steps li[aria-current] span { background: var(--saffron); color: var(--ink); }
.acq__steps li.is-done span { background: var(--saffron); color: var(--ink); }
.acq__close { color: #fff; background: rgb(255 255 255 / 10%); border-color: transparent; }
.acq__close:hover { background: rgb(255 255 255 / 20%); color: #fff; }
.acq__back-link { color: #fff; font-weight: 650; display: inline-flex; align-items: center; gap: .3em; text-decoration: none; white-space: nowrap; }
.acq__back-link:hover { color: #fff; text-decoration: underline; }

.acq__grid { display: grid; grid-template-columns: minmax(0, 370px) minmax(0, 1fr); min-height: 0; }
.acq__side { display: grid; align-content: start; gap: 14px; padding: clamp(16px, 2vw, 24px); background: var(--paper); border-right: 1px solid var(--line-2); }
.acq--modale .acq__side, .acq--modale .acq__form { overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.page-acquisto .acq { border-radius: var(--radius-lg); overflow: clip; border: 1px solid var(--line-2); }
.page-acquisto .acq__side { position: sticky; top: calc(var(--header-h) + 12px); }
.acq__car { display: grid; gap: 10px; }
.acq__car img, .acq__car-ph { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 14px; background: var(--stone-2); }
.acq__car-ph { display: grid; place-items: center; color: var(--ink-3); }
.acq__car-t { margin: 0; font-size: 1.02rem; line-height: 1.3; }
.acq__car-t strong { font-size: 1.15rem; }
.acq__car-d { margin: 2px 0 0; font-size: .85rem; color: var(--ink-3); }
.acq__bonus { display: flex; gap: .55em; align-items: flex-start; margin: 0; padding: .7em .9em; border-radius: 12px; background: var(--red-tint); border: 1px solid var(--red-line); color: var(--red-2); font-size: .9rem; line-height: 1.35; }
.acq__bonus .i { flex: none; margin-top: .1em; }
.acq__bonus strong { display: block; font-size: 1rem; }
.acq__sum { transition: opacity .15s ease; }
.acq.is-loading .acq__sum, .acq.is-loading [data-acq-fin-out], .acq.is-loading [data-acq-consegna] { opacity: .55; }
.acq-righe { display: grid; gap: 0; margin: 0; }
.acq-r { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px dashed var(--line); font-size: .92rem; }
.acq-r dt { color: var(--ink-2); }
.acq-r dt small { display: block; font-size: .78rem; color: var(--ink-3); }
.acq-r dt .i { display: inline; width: 1em; height: 1em; vertical-align: -.12em; }
.acq-r dd { font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; text-align: right; }
.acq-r dd s { color: var(--ink-3); font-weight: 500; margin-right: .35em; }
.acq-r--incl dd { color: var(--ok); }
.acq-r--bonus dt, .acq-r--bonus dd { color: var(--red-2); }
.acq-tot { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin: 12px 0 0; }
.acq-tot span { font-weight: 700; }
.acq-tot strong { font-size: 1.7rem; font-weight: 820; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.acq-tot__rata { display: flex; gap: .5em; align-items: flex-start; margin: 4px 0 0; font-size: .86rem; line-height: 1.4; color: var(--ink-2); }
.acq-tot__rata .i { width: 1.1em; height: 1.1em; flex: none; margin-top: .1em; }
.acq-tot__oggi { display: flex; gap: .55em; align-items: flex-start; margin: 10px 0 0; padding: .6em .8em; border-radius: 10px; background: var(--saffron-soft); color: var(--saffron-ink); font-size: .9rem; line-height: 1.4; }
.acq-tot__oggi .i { flex: none; margin-top: .12em; }
.acq__promesse { list-style: none; display: grid; gap: 10px; margin: 4px 0 0; padding: 14px 0 0; border-top: 1px solid var(--line-2); }
.acq__promesse li { display: flex; gap: .7em; align-items: flex-start; font-size: .86rem; color: var(--ink-2); line-height: 1.4; }
.acq__promesse .i { flex: none; width: 1.3em; height: 1.3em; color: var(--blue); margin-top: .05em; }
.acq__promesse strong { display: block; color: var(--ink); font-size: .92rem; }

/* colonna: il passo con la sua altezza, poi la barra (fissa in basso mentre il passo scorre) */
.acq__form { display: flex; flex-direction: column; min-width: 0; }
.acq__step { display: grid; align-content: start; gap: 16px; padding: clamp(18px, 2.6vw, 32px); }
.acq__step + .acq__step { border-top: 1px solid var(--line-2); }
.acq--passi .acq__step + .acq__step { border-top: 0; }
.acq__h { margin: 0; font-size: clamp(1.35rem, 1.1rem + .8vw, 1.75rem); }
.acq__h:focus { outline: none; }
.acq__box { display: grid; gap: 10px; }
.acq__box > legend, .acq-fin__flag { margin-bottom: 4px; font-size: .78rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3); }
.acq-opt, .acq-serv { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 14px 16px; border: 1.5px solid var(--line); border-radius: 14px; background: var(--paper); cursor: pointer; transition: border-color .15s ease, box-shadow .15s ease; }
.acq-opt:hover, .acq-serv:hover { border-color: var(--ink-3); }
.acq-opt:has(input:checked), .acq-serv:has(input:checked) { border-color: var(--saffron); box-shadow: 0 0 0 3px var(--saffron-soft); }
.acq-opt input, .acq-serv input { width: 20px; height: 20px; margin: .15em 0 0; accent-color: var(--blue); }
.acq-opt__t { display: grid; gap: 3px; min-width: 0; }
.acq-opt__t b { font-size: 1rem; }
.acq-opt__t > .i { display: none; }
.acq-opt__t small, .acq-serv small { display: block; font-size: .84rem; line-height: 1.4; color: var(--ink-3); }
.acq-opt__t small .i { display: inline; width: 1em; height: 1em; vertical-align: -.15em; }
.acq-opt__p, .acq-serv > b { font-weight: 750; white-space: nowrap; font-variant-numeric: tabular-nums; }
.acq-pill { display: inline-block; margin-left: .4em; padding: .12em .55em; border-radius: 999px; background: var(--ok-soft); color: var(--ok); font-size: .72rem; font-style: normal; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; vertical-align: .12em; }
.acq-serv span { display: grid; gap: 2px; font-weight: 650; }
.acq-serv span small { font-weight: 500; }
.acq-serv--fisso, .acq-serv--omaggio { cursor: default; grid-template-columns: auto minmax(0, 1fr) auto; margin: 0; background: var(--stone); border-style: dashed; }
.acq-serv--fisso:hover, .acq-serv--omaggio:hover { border-color: var(--line); }
.acq-serv--fisso .i, .acq-serv--omaggio .i { width: 20px; height: 20px; color: var(--ok); }
.acq-serv--omaggio { background: var(--red-tint); border-color: var(--red-line); }
.acq-serv--omaggio .i, .acq-serv--omaggio > b { color: var(--red-2); }
.acq__servizi { display: grid; gap: 8px; }
.acq-dove { display: grid; gap: 10px; padding: 14px 16px; border-radius: 14px; background: var(--paper); border: 1px solid var(--line-2); }
.acq--passi:not(.acq--domicilio) .acq-dove { display: none; }
.acq-esito { display: flex; gap: .5em; align-items: flex-start; margin: 0; font-size: .92rem; }
.acq-esito .i { flex: none; margin-top: .15em; color: var(--blue); }
.acq-esito--warn { color: var(--saffron-ink); }
.acq-fin { padding: 16px; border-radius: 14px; background: var(--paper); border: 1px solid var(--line-2); }
.acq--passi:not(.acq--fin) .acq-fin { display: none; }
.acq-fin__flag { display: flex; align-items: center; gap: .4em; margin: 0; text-transform: none; letter-spacing: 0; font-size: .84rem; font-weight: 650; }
.acq-fin__campi { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 14px; align-items: start; }
.acq-fin__campi input[type=range] { width: 100%; accent-color: var(--blue); }
.acq-fin__campi .segmented--tight span { min-width: 44px; min-height: 40px; }
.acq-fin__out { display: grid; gap: 8px; padding-top: 6px; }
.acq-fin__rata { display: flex; justify-content: space-between; align-items: baseline; margin: 0; }
.acq-fin__rata strong { font-size: 1.9rem; font-weight: 820; font-variant-numeric: tabular-nums; }
.acq-fin__riga { display: flex; justify-content: space-between; margin: 0; }
.acq-fin__dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.acq-fin__dl div { padding: 8px 10px; border-radius: 10px; background: var(--stone); }
.acq-fin__dl dt { font-size: .74rem; color: var(--ink-3); }
.acq-fin__dl dd { font-weight: 750; font-variant-numeric: tabular-nums; }
.acq-fin__sconto { display: flex; gap: .4em; align-items: center; margin: 0; color: var(--ok); font-size: .9rem; }
.acq-fin__legale { margin: 0; font-size: .74rem; line-height: 1.45; color: var(--ink-3); }
.acq-permuta { padding: 12px 16px; border-radius: 14px; background: var(--paper); border: 1px solid var(--line-2); }
.acq-permuta summary { display: flex; align-items: center; gap: .5em; font-weight: 700; }
.acq-permuta summary small { color: var(--ink-3); font-weight: 500; }
.acq-permuta[open] summary { margin-bottom: 12px; }
.acq-clienti { margin-bottom: 4px; }
.acq--passi:not(.acq--azienda) .acq-azienda { display: none; }
.acq__consensi { display: grid; gap: 10px; }
.acq__consensi .check.is-invalid { color: var(--red); }
.acq__go { margin-top: 4px; }
.acq__go .i { width: 1.2em; height: 1.2em; }
.acq__metodi { display: flex; gap: .55em; align-items: flex-start; margin: 0; font-size: .84rem; color: var(--ink-2); }
.acq__metodi .i { flex: none; width: 1.2em; height: 1.2em; margin-top: .05em; color: var(--ink-3); }
.acq__legal { margin: 0; font-size: .78rem; }
.acq__status { margin: 0; font-size: .92rem; font-weight: 650; }
.acq__status.is-error { color: var(--red); }
.acq__status:empty { display: none; }
.acq__nav { display: none; }
.acq--passi .acq__nav { position: sticky; bottom: 0; z-index: 2; margin-top: auto; display: flex; align-items: center; gap: 12px; padding: 12px clamp(18px, 2.6vw, 32px) calc(12px + env(safe-area-inset-bottom)); background: rgb(255 255 255 / 96%); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border-top: 1px solid var(--line); }
.acq__nav [data-acq-next], .acq__nav-go { margin-left: auto; min-width: 150px; }
.acq--passi .acq__go { display: none; }
.acq__nav-tot { display: none; margin: 0; line-height: 1.15; }
.acq__nav-tot span { display: block; font-size: .74rem; color: var(--ink-3); font-weight: 650; }
.acq__nav-tot strong { font-size: 1.1rem; font-variant-numeric: tabular-nums; }
.acq[data-passo="3"] .acq__nav [data-acq-prev] { margin-right: auto; }

@media (max-width: 900px) {
  .acq__grid { grid-template-columns: minmax(0, 1fr); }
  .acq--modale .acq__grid { overflow-y: auto; overscroll-behavior: contain; }
  .acq--modale .acq__side, .acq--modale .acq__form { overflow: visible; }
  .acq__side { order: 2; border-right: 0; border-top: 1px solid var(--line-2); }
  .page-acquisto .acq__side { position: static; }
  .acq__car { grid-template-columns: 120px minmax(0, 1fr); align-items: center; }
  .acq__nav-tot { display: block; }
  .acq__nav [data-acq-next], .acq__nav-go { margin-left: 0; min-width: 0; }
  .acq--passi .acq__nav { position: sticky; bottom: 0; }
  .acq-fin__campi { grid-template-columns: 1fr; }
  .acq-fin__dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .acq-dialog { width: 100vw; height: 100dvh; border-radius: 0; }
  .acq__top { flex-wrap: wrap; padding-block: 10px; }
  .acq__brand { order: 1; }
  .acq__close { order: 2; margin-left: auto; }
  .acq__steps { order: 3; width: 100%; margin: 0; }
  .acq__steps li { flex: 1; justify-content: center; padding-inline: .3em; font-size: .78rem; }
  .acq__steps li b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .acq__steps li:not([aria-current]) b { display: none; }
  .acq-opt, .acq-serv { grid-template-columns: auto minmax(0, 1fr); }
  .acq-opt__p, .acq-serv > b { grid-column: 2; }
  .acq__nav .btn { min-height: 48px; padding-inline: 1em; }
  .page-acquisto .acq { border-radius: 0; border-inline: 0; }
  .page-acquisto > .wrap { padding-inline: 0; }
  .actionbar__btn--acq small { display: block; font-size: .68rem; font-weight: 700; color: var(--red-2); }
  /* barra del percorso sempre in fondo allo schermo, anche scorrendo il riepilogo sotto i passi */
  .acq--passi .acq__nav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 5; gap: 10px; padding-inline: 16px; }
  .acq--passi { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
  .acq--modale.acq--passi { padding-bottom: 0; }
  .acq--modale.acq--passi .acq__grid { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
  .acq__nav [data-acq-prev] { min-width: 48px; padding-inline: .7em; }
  .acq__nav [data-acq-prev] span { display: none; }
  .acq__nav-tot { margin-right: auto; }
  .acq .lead__grid { grid-template-columns: minmax(0, 1fr); }
  .acq-dialog[open] { animation: none; }
}
@media (prefers-reduced-motion: reduce) { .acq-dialog[open] { animation: none; } }

/* «La tua prenotazione» */
.area__head .eyebrow .i { color: var(--saffron); }
.area__count { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .5em .8em; margin: 4px 0 14px; padding: .55em 1em; border-radius: 999px; background: var(--paper); border: 1px solid var(--line); font-size: .95rem; }
.area__count .i { color: var(--blue); }
.area__count b { font-variant-numeric: tabular-nums; color: var(--saffron-ink); }
.area__passi { list-style: none; display: grid; gap: 10px; margin: 0 0 28px; padding: 0; }
.area__passi li { display: flex; gap: 14px; align-items: flex-start; padding: 14px 16px; border-radius: 14px; background: var(--paper); border: 1px solid var(--line-2); }
.area__passi .i { flex: none; width: 26px; height: 26px; color: var(--blue); }
.area__passi strong { display: block; margin-bottom: 2px; }
.area__docs { margin: 0 0 24px; padding: 20px; border-radius: var(--radius-lg); background: var(--paper); border: 2px solid var(--saffron); }
.area__docs h2 { display: flex; align-items: center; gap: .45em; }
.area__docs-n { margin: 0 0 10px; color: var(--ink-2); }
.area__doclist { list-style: none; display: grid; gap: 8px; margin: 0; padding: 0; }
.area__doclist li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 14px; padding: 10px 12px; border-radius: 12px; background: var(--stone); }
.area__doclist li.is-done { background: var(--ok-soft); }
.area__doclist li.is-done .area__doc-t .i { color: var(--ok); }
.area__doclist li.is-loading { opacity: .6; }
.area__doc-t { display: flex; align-items: flex-start; gap: .5em; font-weight: 650; font-size: .94rem; }
.area__doc-t .i { flex: none; width: 1.2em; height: 1.2em; margin-top: .1em; color: var(--ink-3); }
.area__up label { cursor: pointer; }
.area__up input[type=file] { position: absolute; width: 1px; height: 1px; opacity: 0; }
.area__up:has(:focus-visible) label { outline: 3px solid var(--blue-2); outline-offset: 2px; }
.area__up-msg { width: 100%; margin: 0; font-size: .86rem; color: var(--ok); }
.area__up-msg.is-error { color: var(--red); }
.area__annulla { margin-top: 8px; font-size: .9rem; }
.area__annulla .linklike { color: var(--ink-3); }
.area__card img { width: 100%; border-radius: 14px; aspect-ratio: 3 / 2; object-fit: cover; }
.area__card p { margin: 0; }
.area__tot strong { font-size: 1.3rem; font-variant-numeric: tabular-nums; }
.area__bonus { color: var(--red-2); font-size: .9rem; }
@media print { .acq-dialog, .acq__nav { display: none !important; } }
.acq-esito__nota { margin: 6px 0 0; font-size: .8rem; line-height: 1.4; color: var(--ink-3); }

/* --- consegna a domicilio nella scheda (Pieffe Moto, views/pages/consegna.js) ----------------- */
.vdp__cons { display: grid; grid-template-columns: auto 1fr; gap: 10px 12px; align-items: center; margin-top: 14px; padding: 12px 14px; border: 1px solid var(--line-2); border-radius: 12px; background: var(--stone); }
.vdp__cons-i { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--paper); color: var(--blue); }
.vdp__cons-i .i { width: 22px; height: 22px; }
.vdp__cons-t { margin: 0; font-size: .88rem; line-height: 1.4; color: var(--ink-2); }
.vdp__cons-t strong { display: block; font-size: .98rem; color: var(--ink); }
.vdp__cons-btn { grid-column: 1 / -1; }
.cons-pop[popover] { width: min(480px, calc(100% - 24px)); }
.cons__form { display: grid; gap: 12px; }
.cons__form .btn { justify-self: start; }
.cons__esito { padding: 12px 14px; border-radius: 10px; background: var(--stone); }
.cons__esito:empty { display: none; }
.cons__tariffa, .cons__nota { display: flex; gap: .5em; align-items: flex-start; margin: 0; font-size: .85rem; line-height: 1.45; color: var(--ink-2); }
.cons__nota { padding: 10px 12px; border-radius: 10px; background: var(--saffron-soft); color: var(--saffron-ink); }
.cons__tariffa .i, .cons__nota .i { flex: none; margin-top: .15em; }
.cons__azioni { display: grid; gap: 8px; }
.cons--pagina { padding: 0; }
@media print { .vdp__cons { display: none; } }
/* gestione del percorso: stato, andamento e documenti (views/gestione/acquisto.js, prenotazioni.js) */
.check-list { list-style: none; display: grid; gap: 8px; margin: 0; padding: 0; }
.check-list li { display: flex; gap: .5em; align-items: flex-start; font-size: .92rem; }
.check-list .i { flex: none; margin-top: .15em; color: var(--ok); }
.check-list li:has(use[href$="#alert"]) .i { color: var(--saffron-ink); }
.acq-funnel { list-style: none; display: grid; gap: 8px; margin: 0; padding: 0; }
.acq-funnel li { position: relative; display: flex; justify-content: space-between; gap: 10px; padding: 6px 10px; border-radius: 8px; background: var(--stone); font-size: .9rem; overflow: hidden; isolation: isolate; }
.acq-funnel i { position: absolute; z-index: -1; left: 0; top: 0; bottom: 0; background: var(--saffron-soft); }
.acq-funnel b { font-variant-numeric: tabular-nums; }
.doc-admin { display: grid; gap: 10px; margin: 0; padding-left: 1.1em; }
.doc-admin ul { margin: 4px 0 0; padding-left: 1.1em; font-size: .92rem; }
.doc-admin .inline-form { display: inline-flex; }
.muted { color: var(--ink-3); font-weight: 500; }

/* nuove e km 0 uguali (lib/gruppi.js): «N disponibili» sulla scheda, «da» davanti al prezzo, pagina del gruppo */
.vcard__uguali { position: absolute; right: 10px; bottom: 10px; display: inline-flex; gap: .4em; align-items: center; padding: .3em .65em; border-radius: 8px; background: var(--night); color: #fff; font-size: .82rem; font-weight: 760; font-variant-numeric: tabular-nums; box-shadow: 0 2px 8px rgb(11 27 43 / 25%); }
.vcard__uguali .i { width: 1.1em; height: 1.1em; }
.price__da { font-size: .62em; font-weight: 700; letter-spacing: 0; color: var(--ink-3); }
.price--offerta .price__da { color: inherit; }
.gruppo-head { padding: 4px 0 clamp(20px, 3vw, 36px); }
.gruppo-head__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(20px, 4vw, 48px); align-items: center; }
.gruppo-head__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow); }
.gruppo-head__media img { width: 100%; height: 100%; object-fit: cover; }
.gruppo-head__info .page-title { margin: 10px 0 4px; }
.gruppo-head__make { font-weight: 500; }
.gruppo-head__version { margin: 0; color: var(--ink-2); font-size: 1.05rem; }
.gruppo-head__n { margin: 14px 0 0; font-size: 1.05rem; }
.gruppo-head__n b { font-size: 1.5em; font-weight: 820; font-variant-numeric: tabular-nums; }
.gruppo-head__prezzo { margin-top: 12px; }
.gruppo-head__sedi { display: flex; gap: .4em; align-items: baseline; margin: 14px 0 0; color: var(--ink-2); font-size: .95rem; }
.gruppo__titolo { margin-bottom: 6px; }
.gruppo__nota { margin: 0 0 18px; color: var(--ink-2); max-width: 62ch; }
.varianti { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.variante { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 8px 20px; align-items: center; padding: 16px 20px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); color: inherit; text-decoration: none; box-shadow: var(--shadow-sm); transition: border-color .2s ease, box-shadow .2s ease; }
.variante:hover { border-color: var(--ink-3); color: inherit; box-shadow: var(--shadow); }
.variante__n { display: grid; justify-items: center; min-width: 4.2em; padding: 8px 10px; border-radius: 12px; background: var(--stone-2); font-size: .82rem; font-weight: 650; line-height: 1.1; }
.variante__n b { font-size: 1.7rem; font-weight: 840; font-variant-numeric: tabular-nums; }
.variante__testo { display: grid; gap: 4px; min-width: 0; }
.variante__nome { font-size: 1.06rem; line-height: 1.3; }
.variante__sedi { display: flex; gap: .35em; align-items: baseline; color: var(--ink-3); font-size: .88rem; }
.variante__prezzo .price { align-items: flex-end; text-align: right; }
.variante__vai { display: inline-flex; gap: .3em; align-items: center; font-weight: 700; color: var(--blue); white-space: nowrap; }
.link-arrow--back:hover .i { transform: translateX(-3px); }
@media (max-width: 760px) {
  .gruppo-head__grid { grid-template-columns: minmax(0, 1fr); }
  .variante { grid-template-columns: auto minmax(0, 1fr); padding: 14px; }
  .variante__prezzo { grid-column: 1 / -1; }
  .variante__prezzo .price { align-items: flex-start; text-align: left; }
  .variante__vai { display: none; }
}

/* --- chat del sito (respond.io, public/js/chat.js) ------------------------------------------------ */
.chat-lancia {
  position: fixed; z-index: 50; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom));
  display: inline-flex; align-items: center; gap: 8px; min-height: 52px; padding: 0 20px 0 16px;
  border: 0; border-radius: 999px; background: var(--night); color: #fff; font: inherit; font-size: .95rem; font-weight: 700;
  box-shadow: var(--shadow-lg); cursor: pointer;
}
.chat-lancia:hover { background: var(--night-3); }
.chat-lancia:focus-visible { outline: 3px solid var(--saffron); outline-offset: 3px; }
.chat-lancia__i { flex: none; width: 24px; height: 24px; }
.chat-lancia[aria-busy="true"] { opacity: .7; cursor: progress; }
/* mentre il banner dei consensi è aperto il pulsante aspetta */
.consent:not([hidden]) ~ .chat-lancia { display: none; }
@media (max-width: 760px) {
  .chat-lancia { right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); justify-content: center; width: 56px; height: 56px; padding: 0; }
  .chat-lancia__testo { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  /* sopra la barra Chiama / WhatsApp delle schede e la barra dell'acquisto online */
  .page-vehicle .chat-lancia, .page-acquisto .chat-lancia { bottom: calc(86px + env(safe-area-inset-bottom)); }
}

/* --- campagne promozionali (views/campagne-promo.js): adesivo sopra la foto, barra e banner ----------
   L'adesivo è un livello sopra la foto (le foto originali non si toccano), grande in percentuale della
   foto (--cp-s) e leggibile anche nelle miniature: lo strato misura la foto (container query). */
.cp-strato { position: absolute; inset: 0; pointer-events: none; container-type: size; z-index: 2; }
.gallery__slide:has(.cp-strato) { position: relative; }
.cp-adesivo { position: absolute; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; line-height: 1.05; color: var(--cp-testo, #fff); background: var(--cp-colore, #c8102e); box-shadow: 0 2px 8px rgb(0 0 0 / 28%); font-weight: 800; }
.cp-adesivo--bollino { width: calc(var(--cp-s, 30) * 1cqw); padding: calc(var(--cp-s, 30) * .04cqw) calc(var(--cp-s, 30) * .03cqw); border-radius: calc(var(--cp-s, 30) * .06cqw); transform: rotate(-4deg); }
.cp-adesivo--alto-sinistra { top: 4cqh; left: 3cqw; }
.cp-adesivo--alto-destra { top: 4cqh; right: 3cqw; }
.cp-adesivo--basso-sinistra { bottom: 5cqh; left: 3cqw; }
.cp-adesivo--basso-destra { bottom: 5cqh; right: 3cqw; }
.cp-adesivo--banda { left: 0; right: 0; bottom: 0; width: auto; flex-direction: row; gap: .5em; padding: 1.6cqh 3cqw; border-radius: 0; transform: none; font-size: max(11px, 3.4cqw); max-height: 14cqh; }
.cp-adesivo__sopra { font-size: max(8px, calc(var(--cp-s, 30) * .085cqw)); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; opacity: .92; }
.cp-adesivo__testo { font-size: max(12px, calc(var(--cp-s, 30) * .21cqw)); white-space: nowrap; }
.cp-adesivo--banda .cp-adesivo__sopra, .cp-adesivo--banda .cp-adesivo__testo { font-size: inherit; }
.cp-adesivo--immagine { width: calc(var(--cp-s, 30) * 1cqw); height: auto; background: none; box-shadow: none; }
.cp-barra { background: var(--cp-fondo, #111); color: var(--cp-testo, #fff); font-size: .95rem; line-height: 1.35; }
.cp-barra__in { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 4px 16px; padding-block: 9px; text-align: center; }
.cp-barra__testo { margin: 0; }
.cp-barra__testo strong { color: var(--cp-accento, #c8102e); filter: brightness(1.25); margin-right: .35em; }
.cp-barra__link { display: inline-flex; align-items: center; gap: .35em; color: inherit; font-weight: 750; }
.cp-banner { background: var(--cp-fondo, #111); color: var(--cp-testo, #fff); }
.cp-banner__in { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; padding-block: clamp(18px, 3vw, 30px); }
.cp-banner__logo { max-height: 64px; width: auto; }
.cp-banner__nome { margin: 0; font-weight: 800; font-size: 1.4rem; }
.cp-banner__testo { flex: 1 1 260px; }
.cp-banner__testo p { margin: 0; }
.cp-banner__titolo { font-size: clamp(1.25rem, 2.6vw, 1.8rem); font-weight: 800; }
.cp-banner__btn { background: var(--cp-accento, #c8102e); color: #fff; }
/* riferimento in home come grafica della campagna e card della promo nei listati (views/campagne-promo.js) */
.cp-banner--immagine { background: var(--cp-fondo, #111); }
.cp-banner__grafica, .cp-banner__grafica img { display: block; width: 100%; height: auto; }
.cp-banner__grafica img { max-width: 1600px; margin-inline: auto; }
.cp-vcard { background: var(--cp-fondo, #111); color: var(--cp-testo, #fff); border-color: transparent; overflow: hidden; }
.cp-vcard__link { display: flex; flex-direction: column; justify-content: center; gap: 12px; height: 100%; min-height: 320px; padding: clamp(18px, 3vw, 28px); color: inherit; text-decoration: none; text-align: center; align-items: center; }
.cp-vcard__logo { max-width: 70%; max-height: 72px; width: auto; height: auto; }
.cp-vcard__nome { margin: 0; font-weight: 800; font-size: 1.3rem; }
.cp-vcard__titolo { margin: 0; font-size: clamp(1.35rem, 2.4vw, 1.75rem); line-height: 1.15; font-weight: 850; }
.cp-vcard__testo { margin: 0; opacity: .92; }
.cp-vcard__btn { background: var(--cp-accento, #c8102e); color: #fff; }
.cp-vcard--immagine .cp-vcard__link { padding: 0; min-height: 0; }
.cp-vcard--immagine img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* campagna come prima scheda della pagina Promozioni (views/campagne-promo.js, schedaPromozioni) */
.pcard--campagna { border-color: var(--cp-accento, #c8102e); box-shadow: 0 0 0 1px var(--cp-accento, #c8102e), var(--shadow-sm); }
.pcard--campagna .pcard__img { display: block; background: var(--cp-fondo, #111); }
.pcard--campagna .pcard__img img.is-intera { object-fit: contain; }
.pcard--campagna .pcard__ph { background: var(--cp-fondo, #111); color: var(--cp-testo, #fff); }
.pcard--campagna .pcard__cp-logo { width: auto; height: auto; max-width: 60%; max-height: 64px; object-fit: contain; }
.pcard__cp-nome { padding: 0 16px; font-size: 1.5rem; font-weight: 850; text-align: center; }
.pcard--campagna .pcard__tag { background: var(--cp-accento, #c8102e); color: #fff; }
.pcard--campagna .pcard__title a { color: inherit; text-decoration: none; }
.pcard--campagna .pcard__title a:hover { text-decoration: underline; }
.cp-pcard__btn { align-self: flex-start; margin: 6px 0 14px; background: var(--cp-accento, #c8102e); color: #fff; }

/* «Lavora con noi» (views/pages/lavoro.js): posizioni aperte per reparto, filtri, modulo con il curriculum */
.lavoro-filtri { display: grid; gap: 14px; margin-bottom: clamp(20px, 3vw, 32px); }
.lavoro-filtri__etichetta { margin: 0 0 6px; font-size: .8rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-3); }
.chip.is-scelto { background: var(--night); border-color: var(--night); color: #fff; }
.chip.is-scelto span { color: rgb(255 255 255 / 75%); }
.lavoro-gruppo + .lavoro-gruppo { margin-top: clamp(24px, 3vw, 36px); }
.lavoro-gruppo__titolo { display: flex; align-items: center; gap: .5em; font-size: 1.25rem; margin: 0 0 12px; }
.lavoro-elenco { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 14px; }
.lavoro-carta { display: grid; gap: 6px; height: 100%; padding: 18px 20px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-lg); color: var(--ink); text-decoration: none; box-shadow: var(--shadow-sm); transition: border-color .15s ease, transform .15s ease; }
.lavoro-carta:hover { border-color: var(--ink-2); transform: translateY(-2px); color: var(--ink); }
.lavoro-carta__titolo { font-size: 1.15rem; line-height: 1.3; }
.lavoro-carta__dati { display: flex; align-items: flex-start; gap: .4em; color: var(--ink-2); font-size: .94rem; }
.lavoro-carta__dati .i { flex: none; margin-top: .2em; }
.lavoro-carta__data { color: var(--ink-3); font-size: .85rem; }
.lavoro-carta .link-arrow { margin-top: 6px; }
.lavoro-modulo__intro { margin: 0; color: var(--ink-2); }
/* il campo LinkedIn come gli altri (la regola comune dei campi non comprende type=url) */
.lavoro-modulo input[type=url] { width: 100%; min-height: 48px; padding: .65em .8em; border: 1.5px solid var(--line); border-radius: 10px; background: var(--paper); font-size: 1rem; }
.lavoro-modulo__file { width: 100%; padding: 14px; border: 1.5px dashed var(--stone-3); border-radius: 10px; background: var(--stone); font-size: .95rem; cursor: pointer; }
.lavoro-modulo__file:focus { outline: none; border-color: var(--blue-2); box-shadow: 0 0 0 3px rgb(22 93 150 / 18%); }
.lavoro-modulo .field.is-invalid .lavoro-modulo__file { border-color: var(--red); }
.lavoro-testo > p:first-child { margin-top: 0; }
.lavoro-testo h2:first-of-type { margin-top: 1em; }
