/* ==========================================================================
   uniteam: ux.css, strato UX del 18 set 2026 (modelli/CONTRATTO-ux.md)
   Solo produzione: lo iniettano build.py (statiche) e render.php (PHP).
   Parte U1. Gli url() relativi si risolvono rispetto a questo foglio (ux/).

   Indice
     1. Token --ut-*
     2. Fascia del titolo interna (§8)
     3. Header mobile: pulsante «Preventivo» (§9)
     4. Pagina contatti: card
     5. Card veicolo (§4)            U1b
     6. Filtro Marca (§5)            U1b
     7. Galleria della scheda (§7)   U1b
     8. Configuratore (§6)           U1b
     9. Movimento ridotto
    10. Regole per larghezza, in fondo e in ordine decrescente
    11. Piede di pagina (CONTRATTO-footer, 22 set 2026): sta prima del §9,
        le sue regole per larghezza nei blocchi del §10
    12. Caratteristiche della scheda a tessere (22 set 2026): prima dell'11
    13. Invito WhatsApp «Vuoi una configurazione diversa?» al posto del
        banner, scheda e home (22 set 2026): fra il 12 e l'11
    14. Velo di caricamento col tetto di un secondo (23 set 2026): prima del 9
     0. Caratteri: DM Sans ed Epilogue serviti dal sito e sottoinsiemi dei
        font di icone (23 set 2026): in testa a tutto
   Giro 3 (19 set 2026): token dei pulsanti d'azione (§1), veicoli
   commerciali (§4.3), slider con poche auto (§5.8), barra sticky nei due
   versi (§6.1 bis), WhatsApp col banner dei cookie e sulla galleria (§7.4),
   messaggio del configuratore sotto il pulsante (§8.5 bis), «Filtra e
   ordina» chiuso già alla prima pittura (§10, fino a 991 px).
   Specificità: il kit impone (0,1,1) su button, input e h1..h6; ogni regola
   nuova su titoli, pulsanti e campi sta sotto un contenitore proprio, (0,2,0)
   o più.
   ========================================================================== */


/* ==========================================================================
   0. Caratteri (fase F4, 23 set 2026) — audit velocita.md §4 e §11.1/§11.2

   0.1 DM Sans ed Epilogue serviti dal sito.
   Il mirror li chiedeva a `fonts.googleapis.com` con due <link> che bloccano
   il disegno, e i file poi a `fonts.gstatic.com`: due origini nuove, DNS,
   TLS e un foglio in mezzo. Misurato: con Google Fonts la prima pittura
   arriva a 1,25..2,35 s in 12 corse su 18, coi file qui a 0,16..0,25 s in
   21 su 21. In piu' il browser non manda piu' l'indirizzo IP del visitatore
   a Google PRIMA del consenso.
   Sono gli stessi file di gstatic (DM Sans v17, Epilogue v20, licenza OFL),
   **variabili**: un file per famiglia, stile e sottoinsieme, buono per ogni
   peso (DM Sans 100..1000, Epilogue 100..900), cioe' esattamente quello che
   serviva Google. Stessi `unicode-range` di Google: latin si scarica sempre,
   latin-ext solo se in pagina c'e' un carattere dell'Europa dell'est, il
   corsivo solo se qualcuno lo chiede. Misurato sul banco il 23 set 2026:
   una pagina italiana scarica i due file `latin` e basta (72,7 KB), e la sola
   cookie policy si prende anche `dm-sans-italic-latin` (38,9 KB), perche' e'
   l'unica pagina del sito col corsivo. I corsivi e i `latin-ext` stanno qui
   apposta: un testo scritto dal pannello puo' chiederli domani, e allora deve
   uscire il carattere vero e non l'inclinato finto del browser.
   I due file del testo sopra la piega (dm-sans-latin, epilogue-latin) sono
   anche in `<link rel="preload">` subito dopo `<meta charset>`: li mette
   `testa_veloce()` di build.py nelle statiche e `rnd_testa_veloce()` di
   api/render.php in archivi e schede, con lo STESSO indirizzo che sta qui
   sotto (una query diversa sarebbe un secondo scaricamento). I <link> di
   Google li toglie la stessa regola.

   0.2 Sottoinsiemi dei font di icone.
   Ogni pagina scaricava da 530 a 600 KB di font di icone (elementskit 454 KB
   dappertutto) per disegnare al massimo cinque glifi. Qui sotto le stesse
   famiglie, con gli stessi descrittori, puntate a file da uno a tre KB e con
   un `unicode-range` sui soli glifi che il sito usa: a parita' di famiglia,
   peso e stile il browser sceglie prima per `unicode-range` e poi prende
   l'ultima regola dichiarata, e `ux.css` e' l'ultimo foglio della testa.
   Un glifo FUORI dall'intervallo non sparisce: ricade da solo sulla
   dichiarazione originale, cioe' sul file intero, come oggi.
   Una famiglia puo' volere DUE file: il tema dichiara i suoi Font Awesome 6
   coi nomi di famiglia di Font Awesome 5, e i due disegnano gli stessi
   codepoint in modo diverso, quindi ogni glifo si prende dal file che oggi
   lo disegna davvero. I due file NON si fondono: ognuno ha il suo
   `unicode-range`, e i due intervalli non si sovrappongono (fondere con
   fontTools cambiava il contorno di 5 glifi su 17).
   I file e il manifesto `ux/fonti/icone.json` li genera
   `tools/prova_font_icone.py --genera`; la stessa prova, senza argomenti,
   fa fallire il collaudo se il sito usa un glifo che non c'e'. ⚠️ Gli
   `unicode-range` qui sotto devono combaciare col manifesto byte per byte.
   ========================================================================== */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 100 1000;
  font-display: swap;
  src: url("fonti/dm-sans-latin-v17.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
                 U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212,
                 U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 100 1000;
  font-display: swap;
  src: url("fonti/dm-sans-latin-ext-v17.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
                 U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
                 U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 100 1000;
  font-display: swap;
  src: url("fonti/dm-sans-italic-latin-v17.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
                 U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212,
                 U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 100 1000;
  font-display: swap;
  src: url("fonti/dm-sans-italic-latin-ext-v17.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
                 U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
                 U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Epilogue';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("fonti/epilogue-latin-v20.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
                 U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212,
                 U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Epilogue';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("fonti/epilogue-latin-ext-v20.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
                 U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
                 U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Epilogue';
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url("fonti/epilogue-italic-latin-v20.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
                 U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212,
                 U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Epilogue';
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url("fonti/epilogue-italic-latin-ext-v20.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
                 U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
                 U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* 5 glifi, 1136 byte, da site/wp-content/plugins/elementskit-lite/modules/elementskit-icon-pack/assets/fonts/elementskit.woff */
@font-face {
  font-family: elementskit;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonti/elementskit-ut1.woff2") format("woff2");
  unicode-range: U+e87d-e87e, U+e994, U+e9a5, U+eaaa;
}
/* 4 glifi, 3380 byte, da site/wp-content/plugins/elementor/assets/lib/eicons/fonts/eicons.woff2 */
@font-face {
  font-family: eicons;
  font-style: normal;
  font-weight: 400;
  src: url("fonti/eicons-ut1.woff2") format("woff2");
  unicode-range: U+e87d-e87e, U+e994, U+e9a5;
}
/* 12 glifi, 1176 byte, da site/wp-content/plugins/elementor/assets/lib/font-awesome/webfonts/fa-solid-900.woff2 */
@font-face {
  font-family: "Font Awesome 5 Free";
  font-style: normal;
  font-weight: 900;
  font-display: block;
  src: url("fonti/fa5-solid-ut1.woff2") format("woff2");
  unicode-range: U+f007, U+f00d, U+f02b, U+f04b, U+f058, U+f067-f068, U+f073, U+f077-f078, U+f0e0, U+f35a;
}
/* 2 glifi, 716 byte, da site/wp-content/themes/novaride/assets/webfonts/fa-solid-900.woff2 */
@font-face {
  font-family: "Font Awesome 5 Free";
  font-style: normal;
  font-weight: 900;
  font-display: block;
  src: url("fonti/fa5-solid-ut2.woff2") format("woff2");
  unicode-range: U+f177-f178;
}
/* 5 glifi, 984 byte, da site/wp-content/plugins/elementor/assets/lib/font-awesome/webfonts/fa-regular-400.woff2 */
@font-face {
  font-family: "Font Awesome 5 Free";
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("fonti/fa5-regular-ut1.woff2") format("woff2");
  unicode-range: U+f007, U+f058, U+f073, U+f0e0, U+f35a;
}
/* 4 glifi, 1160 byte, da site/wp-content/plugins/elementor/assets/lib/font-awesome/webfonts/fa-brands-400.woff2 */
@font-face {
  font-family: "Font Awesome 5 Brands";
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("fonti/fa5-brands-ut1.woff2") format("woff2");
  unicode-range: U+f0e1, U+f16d, U+f232, U+f39e;
}
/* 1 glifi, 656 byte, da site/wp-content/themes/novaride/assets/webfonts/fa-brands-400.woff2 */
@font-face {
  font-family: "Font Awesome 5 Brands";
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("fonti/fa5-brands-ut2.woff2") format("woff2");
  unicode-range: U+f067;
}
/* 14 glifi, 1572 byte, da site/wp-content/themes/novaride/assets/webfonts/fa-solid-900.woff2 */
@font-face {
  font-family: "Font Awesome 6 Free";
  font-style: normal;
  font-weight: 900;
  font-display: block;
  src: url("fonti/fa6-solid-ut1.woff2") format("woff2");
  unicode-range: U+f007, U+f00d, U+f02b, U+f04b, U+f058, U+f067-f068, U+f073, U+f077-f078, U+f0e0, U+f177-f178, U+f35a;
}
/* 5 glifi, 1336 byte, da site/wp-content/themes/novaride/assets/webfonts/fa-brands-400.woff2 */
@font-face {
  font-family: "Font Awesome 6 Brands";
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("fonti/fa6-brands-ut1.woff2") format("woff2");
  unicode-range: U+f067, U+f0e1, U+f16d, U+f232, U+f39e;
}

/* ==========================================================================
   1. Token
   ========================================================================== */
:root {
  --ut-ink: #040401;
  --ut-accent: #FF3600;
  --ut-accent-ink: #CC2E00;
  --ut-accent-soft: rgba(255, 54, 0, .08);
  --ut-navy: #1B3B6F;
  --ut-navy-900: #0A142A;
  --ut-navy-850: #040A25;
  --ut-cream: #FFF8F6;
  --ut-surface-cool: #F0F4FA;
  --ut-text: #616161;
  --ut-muted: #6E6E6E;
  --ut-line: #ECECEC;
  --ut-line-cool: #E4E9F0;
  --ut-success: #2E8B57;
  --ut-error: #D93A3A;
  --ut-font-head: 'Epilogue', sans-serif;
  --ut-font-body: 'DM Sans', sans-serif;
  --ut-r-xl: 46px;
  --ut-r-lg: 30px;
  --ut-r-md: 16px;
  --ut-r-sm: 12px;
  --ut-r-pill: 100px;
  --ut-shadow-card: 0 2px 16px rgba(27, 59, 111, .07);
  --ut-shadow-modal: 0 16px 48px rgba(10, 20, 42, .25);
  --ut-focus: 0 0 0 3px rgba(27, 59, 111, .15);
  /* Pulsanti d'azione dello strato UX (giro 3, decisione del titolare):
     un solo arancio pieno, #CC2E00 (bianco sopra: 5,3:1, AA anche a 12 px),
     al passaggio il nero del sito; l'ombra dello stesso arancio. */
  --ut-azione: var(--ut-accent-ink);
  --ut-azione-sopra: var(--ut-ink);
  --ut-azione-ombra: 0 6px 18px rgba(204, 46, 0, .22);
}


/* testo per i soli lettori di schermo */
.ut-vh {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}


/* ==========================================================================
   2. Fascia del titolo interna (§8)
   Quattro varianti, una sola fascia:
     E  Elementor .bg-section con breadcrumb ElementsKit: agenzia 529a6c8,
        contatti 6174ccc, faq 7ff3725, servizi 2a4a8cf, veicoli commerciali 41df74a
     T  tema .page-header.background-section con immagine (archivi, schede)
     N  tema senza immagine, prima nera (privacy, cookie, termini)
     B  articoli del blog: .post-single-meta al posto del breadcrumb
   Home e /richiesta-ricevuta/ hanno la hero 5983312: qui non entrano.
   Misure: altezza minima fluida (circa 283 px a 1440, 168 a 390), contenuto
   centrato in verticale, quindi titolo su una o due righe = stessa altezza.
   Composizione: briciole in alto come occhiello (asterisco del marchio),
   titolo grande allineato a sinistra, segno Uniteam a destra in trasparenza.
   ========================================================================== */

/* 2.1 Contenitore: misure, sfondo, segno */
.elementor :is(.elementor-element-529a6c8, .elementor-element-6174ccc, .elementor-element-7ff3725, .elementor-element-2a4a8cf, .elementor-element-41df74a).e-con.bg-section,
body .page-header.background-section {
  --ut-f-m: 50px;                                          /* margine laterale */
  --ut-f-r: var(--ut-r-xl);                                /* raggio */
  --ut-f-h: clamp(168px, calc(110px + 12vw), 284px);       /* altezza minima */
  --ut-f-py: clamp(28px, 3.9vw, 56px);                     /* respiro verticale minimo */
  --ut-f-px: clamp(20px, 3.75vw, 54px);                    /* rientro del testo: a 1440 sotto il logo */
  --ut-f-col: 1270px;                                      /* colonna del testo sugli schermi larghi */
  --ut-f-h1: clamp(30px, calc(16px + 3.1vw), 62px);        /* titolo */
  --ut-f-h1-lungo: min(var(--ut-f-h1), clamp(18px, calc(.5px + 5vw), 46px)); /* articoli: 20 px a 390, mai più grande del titolo normale */
  --ut-f-eb: clamp(12px, calc(10px + .25vw), 13.5px);      /* occhiello */
  --ut-f-gap: clamp(10px, 1.25vw, 18px);                   /* occhiello-titolo */
  --ut-f-segno-h: calc(var(--ut-f-h) * 1.34);              /* altezza del segno */
  --ut-f-segno-x: clamp(-72px, calc(1.5vw - 20px), -8px);  /* dal bordo destro (esce un poco) */
  --ut-f-segno-y: calc(var(--ut-f-h) * .16);               /* dal bordo alto */
  position: relative;
  box-sizing: border-box;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  width: calc(100% - 2 * var(--ut-f-m)) !important;
  max-width: 1820px;
  min-height: var(--ut-f-h) !important;
  margin: 0 auto !important;
  padding: 0 !important;
  border-radius: var(--ut-f-r) !important;
  overflow: hidden !important;
  isolation: isolate;
  color: #fff;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -84 308 265'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23fff' stop-opacity='.15'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='.02'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath fill='url(%23g)' d='M0 -84A84 84 0 0 1 0 84ZM308 -84A84 84 0 0 0 308 84ZM125 0H181A181 181 0 0 1 0 181V125A125 125 0 0 0 125 0ZM183 0A125 125 0 0 0 308 125V181A181 181 0 0 1 127 0Z'/%3E%3C/svg%3E") no-repeat right var(--ut-f-segno-x) top var(--ut-f-segno-y) / auto var(--ut-f-segno-h),
    linear-gradient(100deg, rgba(4, 10, 37, .78) 0%, rgba(4, 10, 37, .5) 42%, rgba(4, 10, 37, .12) 100%),
    url("../wp-content/uploads/2026/03/Progetto-senza-titolo-26.jpg.webp") center top / cover no-repeat,
    #0A2A6B !important;
  --overlay-opacity: 0;                 /* velo di Elementor spento */
  --kit-widget-spacing: 0px;
}
/* veli dei due temi: il velo è già nello sfondo */
.elementor :is(.elementor-element-529a6c8, .elementor-element-6174ccc, .elementor-element-7ff3725, .elementor-element-2a4a8cf, .elementor-element-41df74a).e-con.bg-section::before,
body .page-header.background-section::before {
  content: none !important;
  display: none !important;
}

/* 2.2 Variante E: struttura Elementor */
.elementor :is(.elementor-element-529a6c8, .elementor-element-6174ccc, .elementor-element-7ff3725, .elementor-element-2a4a8cf, .elementor-element-41df74a).e-con.bg-section > .e-con-inner {
  box-sizing: border-box;
  display: block !important;
  flex: 0 0 auto !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-width: calc(var(--ut-f-col) + 2 * var(--ut-f-px)) !important;
  margin: 0 auto !important;
  padding: var(--ut-f-py) var(--ut-f-px) !important;
  gap: 0 !important;
}
.elementor :is(.elementor-element-529a6c8, .elementor-element-6174ccc, .elementor-element-7ff3725, .elementor-element-2a4a8cf, .elementor-element-41df74a).e-con.bg-section > .e-con-inner > .e-con {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center !important;
  gap: var(--ut-f-gap) !important;
  width: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
.elementor :is(.elementor-element-529a6c8, .elementor-element-6174ccc, .elementor-element-7ff3725, .elementor-element-2a4a8cf, .elementor-element-41df74a).e-con.bg-section .elementor-widget {
  width: 100%;
  max-width: 100%;
  margin: 0 !important;
  text-align: left !important;
}
/* le briciole salgono sopra il titolo e restano ferme e visibili, anche senza JS */
.elementor :is(.elementor-element-529a6c8, .elementor-element-6174ccc, .elementor-element-7ff3725, .elementor-element-2a4a8cf, .elementor-element-41df74a).e-con.bg-section .elementor-widget-elementskit-breadcrumb {
  order: -1;
  visibility: visible !important;
  opacity: 1 !important;
  animation: none !important;
  transform: none !important;
}

/* 2.3 Varianti T, N, B: struttura del tema */
body .page-header.background-section > .container {
  box-sizing: border-box;
  width: 100%;
  max-width: calc(var(--ut-f-col) + 2 * var(--ut-f-px));
  margin: 0 auto;
  padding: var(--ut-f-py) var(--ut-f-px);
  position: relative;
  z-index: 1;
}
body .page-header.background-section > .container > .row {
  margin: 0;
}
body .page-header.background-section > .container > .row > [class*="col-"] {
  width: 100%;
  padding: 0;
}
body .page-header.background-section .page-header-box {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--ut-f-gap);
  text-align: left;
}
body .page-header.background-section .page-header-box > .breadcrumb-trail,
body .page-header.background-section .page-header-box > .post-single-meta {
  order: -1;
  max-width: 100%;
  visibility: visible !important;
  opacity: 1 !important;
  animation: none !important;
  transform: none !important;
}

/* 2.4 Titolo (le quattro varianti) */
.elementor :is(.elementor-element-529a6c8, .elementor-element-6174ccc, .elementor-element-7ff3725, .elementor-element-2a4a8cf, .elementor-element-41df74a).e-con.bg-section .elementor-heading-title,
body .page-header.background-section .page-header-box h1 {
  max-width: 16em;
  margin: 0 !important;
  padding: 0;
  font-family: var(--ut-font-head) !important;
  font-size: var(--ut-f-h1) !important;
  font-weight: 700 !important;
  line-height: 1.06 !important;
  letter-spacing: -.02em !important;
  color: #fff !important;
  text-align: left !important;
  text-wrap: balance;
  overflow-wrap: break-word;
  hyphens: manual;
}
/* articoli: titoli lunghi, due righe al massimo anche a 390 */
body.single-post .page-header.background-section .page-header-box h1 {
  max-width: 22em;
  font-size: var(--ut-f-h1-lungo) !important;
  line-height: 1.12 !important;
}
/* descrizione di un archivio, se il pannello la riempie */
body .page-header.background-section .page-header-box .taxonomy-description {
  max-width: 60ch;
  margin: 0;
  font-size: 16px;
  line-height: 1.5;
  color: rgba(255, 255, 255, .82);
}
body .page-header.background-section .page-header-box .taxonomy-description p {
  margin: 0;
}

/* 2.5 Occhiello: briciole (E, T, N) e data dell'articolo (B) */
.elementor :is(.elementor-element-529a6c8, .elementor-element-6174ccc, .elementor-element-7ff3725, .elementor-element-2a4a8cf, .elementor-element-41df74a).e-con.bg-section ol.ekit-breadcrumb,
body .page-header.background-section .page-header-box ol.trail-items,
body .page-header.background-section .post-single-meta ul {
  display: flex !important;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-start !important;
  max-width: 100%;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  font-family: var(--ut-font-body) !important;
  font-size: var(--ut-f-eb) !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .72);
}
/* l'asterisco del marchio, come negli occhielli di tutto il sito */
.elementor :is(.elementor-element-529a6c8, .elementor-element-6174ccc, .elementor-element-7ff3725, .elementor-element-2a4a8cf, .elementor-element-41df74a).e-con.bg-section ol.ekit-breadcrumb::before,
body .page-header.background-section .page-header-box ol.trail-items::before,
body .page-header.background-section .post-single-meta ul::before {
  content: "";
  flex: 0 0 auto;
  width: 1.1em;
  height: 1.1em;
  margin-right: .75em;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='3.5 2.58 12 12'%3E%3Cpath fill='%23FF3600' d='M12.3827 8.57776L15.4995 10.3489L14.0579 12.8066L10.9411 11.0354V14.5778H8.05793V11.0354L4.94109 12.8066L3.49951 10.3489L6.61632 8.57776L3.49951 6.80656L4.94109 4.34893L8.05793 6.12013V2.57776H10.9411V6.12013L14.0579 4.34895L15.4995 6.80659L12.3827 8.57776Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.elementor :is(.elementor-element-529a6c8, .elementor-element-6174ccc, .elementor-element-7ff3725, .elementor-element-2a4a8cf, .elementor-element-41df74a).e-con.bg-section ol.ekit-breadcrumb > li,
body .page-header.background-section .page-header-box ol.trail-items > li,
body .page-header.background-section .post-single-meta ul > li {
  display: block !important;
  flex: 0 0 auto;
  margin: 0 !important;
  padding: 0 !important;
  font: inherit !important;
  letter-spacing: inherit;
  color: inherit !important;
  white-space: nowrap;
}
/* la voce corrente: bianca, e se non ci sta si accorcia (il titolo sotto è intero) */
.elementor :is(.elementor-element-529a6c8, .elementor-element-6174ccc, .elementor-element-7ff3725, .elementor-element-2a4a8cf, .elementor-element-41df74a).e-con.bg-section ol.ekit-breadcrumb > li:last-child,
body .page-header.background-section .page-header-box ol.trail-items > li:last-child {
  flex: 0 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #fff !important;
}
/* separatori: la barra del tema e l'icona di ElementsKit diventano lo stesso segno */
body .page-header.background-section .page-header-box ol.trail-items > li::before,
body .page-header.background-section .post-single-meta ul > li + li::before {
  content: "/" !important;
  display: inline !important;
  margin: 0 .7em !important;
  color: rgba(255, 255, 255, .38) !important;
  font: inherit !important;
}
body .page-header.background-section .page-header-box ol.trail-items > li:first-child::before {
  content: none !important;
  display: none !important;
}
.elementor :is(.elementor-element-529a6c8, .elementor-element-6174ccc, .elementor-element-7ff3725, .elementor-element-2a4a8cf, .elementor-element-41df74a).e-con.bg-section ol.ekit-breadcrumb > li.brd_sep {
  display: flex !important;
  align-items: center;
  margin: 0 .7em !important;
  opacity: .38;
  line-height: 0 !important;
}
.elementor :is(.elementor-element-529a6c8, .elementor-element-6174ccc, .elementor-element-7ff3725, .elementor-element-2a4a8cf, .elementor-element-41df74a).e-con.bg-section ol.ekit-breadcrumb > li.brd_sep svg {
  display: block;
  width: auto;
  height: .9em;
}
/* collegamenti */
.elementor :is(.elementor-element-529a6c8, .elementor-element-6174ccc, .elementor-element-7ff3725, .elementor-element-2a4a8cf, .elementor-element-41df74a).e-con.bg-section ol.ekit-breadcrumb a,
body .page-header.background-section .page-header-box ol.trail-items a,
body .page-header.background-section .post-single-meta a {
  font: inherit !important;
  letter-spacing: inherit;
  color: rgba(255, 255, 255, .78) !important;
  text-decoration: none;
  border-radius: 4px;
  transition: color .2s ease;
}
.elementor :is(.elementor-element-529a6c8, .elementor-element-6174ccc, .elementor-element-7ff3725, .elementor-element-2a4a8cf, .elementor-element-41df74a).e-con.bg-section ol.ekit-breadcrumb a:hover,
body .page-header.background-section .page-header-box ol.trail-items a:hover,
body .page-header.background-section .post-single-meta a:hover {
  color: #fff !important;
  text-decoration: underline;
  text-decoration-color: var(--ut-accent);
  text-decoration-thickness: 2px;
  text-underline-offset: .3em;
}
.elementor :is(.elementor-element-529a6c8, .elementor-element-6174ccc, .elementor-element-7ff3725, .elementor-element-2a4a8cf, .elementor-element-41df74a).e-con.bg-section ol.ekit-breadcrumb a:focus-visible,
body .page-header.background-section .page-header-box ol.trail-items a:focus-visible,
body .page-header.background-section .post-single-meta a:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}
/* articoli: niente icone, la data fa da occhiello */
body .page-header.background-section .post-single-meta ul li i {
  display: none !important;
}


/* ==========================================================================
   3. Header mobile: pulsante «Preventivo» (§9, ultima riga)
   Lo crea ux.js dentro il contenitore del menu (35a01c7), prima dell'hamburger.
   Visibile solo sotto i 1025 px, dove il «Preventivo» dell'header sparisce.
   ========================================================================== */
.elementor-6626 a.ut-preventivo-mobile {
  display: none;
}


/* ==========================================================================
   4. Pagina contatti: card del modulo
   Il contenitore de92ff2 dichiara --content-width 1366px, più largo della
   colonna del sito (1300): la card sbordava di 13 px per lato rispetto alla
   fascia. Torna sulla colonna del sito, come le altre sezioni. Sul telefono
   la colonna del modulo (842353b) si allinea alla card blu (regole in fondo).
   ========================================================================== */
body .elementor-3193 .elementor-element.elementor-element-de92ff2 {
  --content-width: 1300px;
}
/* L'aeroplanino decorativo (sfondo di f96dc6b, a «96% 102%») cadeva dentro
   il modulo a passi, più alto del CF7 che sostituisce: al passo 3 con gli
   errori copriva «per proseguire». Con il modulo sale nell'angolo in alto a
   destra, rimpicciolito, nello spazio libero accanto al titolo «Richiedi un
   preventivo»: vola verso il titolo e la scia resta sopra i passi. Sotto i
   1025 px il tema lo nasconde già (dimensione 0). */
@media (min-width: 1025px) {
  body .elementor-3193 .elementor-element.elementor-element-f96dc6b:has(.ut-richiesta) {
    background-position: right 52px top 30px;
    background-size: 150px auto;
  }
}

/* Tastiera (giro 2): Elementor nasconde con visibility:hidden i blocchi con
   l'animazione d'entrata (.elementor-invisible) finché non entrano nella
   vista, e un elemento nascosto non prende il fuoco: col Tab le CTA della
   home si saltavano. Se il blocco contiene link o pulsanti resta trasparente
   ma visibile (fuoco e lettori di schermo lo trovano); al fuoco si vede
   subito, e ux.js gli toglie l'animazione (.ut-senza-entrata). Le briciole
   della fascia hanno già la loro regola (opacity 1 !important). */
.ut-js .elementor-element.elementor-invisible:has(a[href], button) {
  visibility: visible;
  opacity: 0;
  /* giro 3: trasparente ma non cliccabile (un tocco su uno spazio che sembra
     vuoto apriva la CTA); il fuoco da tastiera non cambia. Dal giro 3
     html.ut-js c'è già alla prima pittura, quindi vale da subito. */
  pointer-events: none;
}
.ut-js .elementor-element.elementor-invisible:has(a[href], button):focus-within,
.ut-js .elementor-element.ut-senza-entrata {
  opacity: 1;
}
.ut-js .elementor-element.ut-senza-entrata,
.ut-js .elementor-element.ut-senza-entrata.animated {
  animation: none !important;
}

/* 4.2 Home, modulo «Devi noleggiare un auto?» (CF7 7750, widget dcb53ca;
   giro 2, decisione del titolare: nome e telefono obbligatori). Il tema
   centra le colonne in verticale: quando CF7 scrive «Compila questo campo.»
   sotto nome e telefono quelle due colonne si allungano e le altre scendono
   (etichette sfalsate di 17 px a 1440, di 30 a 1024, dove «Nome e Cognome»
   andava anche a capo). Qui le colonne restano alte uguali (i separatori
   pure) col contenuto in alto, le etichette stanno su una riga, il pulsante
   resta dov'era (centrato sulla riga dei campi senza errori) e l'errore sta
   su una riga sola, nel rosso dei token (4,7:1 sul bianco; quello del tema,
   3,6:1, non passava). Il modulo si vede da 768 px in su (sotto lo nasconde
   Elementor). */
.elementor-element-dcb53ca .rent-details-box {
  align-items: stretch;
}
.elementor-element-dcb53ca .rent-details-box .rent-details-item label {
  white-space: nowrap;
}
.elementor-element-dcb53ca .rent-details-box .rent-details-item.rent-details-search {
  align-self: flex-start;
}
@media (min-width: 992px) {
  /* una riga sola: il pulsante (50 px) al centro dei 62 px di etichetta e campo */
  .elementor-element-dcb53ca .rent-details-box .rent-details-item.rent-details-search {
    margin-top: 6px;
  }
}
/* il tema scrive il rosso chiaro con !important: per superarlo serve lo stesso */
.elementor-element-dcb53ca .rent-details-item .wpcf7-not-valid-tip {
  margin-top: 4px;
  font-size: 14px;
  line-height: 1.35;
  color: var(--ut-error) !important;
}
.elementor-element-dcb53ca form:is(.invalid, .unaccepted, .failed, .aborted, .spam) .wpcf7-response-output {
  border-color: var(--ut-error) !important;
  color: var(--ut-error) !important;
}
/* Segno di obbligatorio su nome e telefono. La build mette nell'etichetta
   <span class="ut-obbligatorio" aria-hidden="true">*</span> (aria-required
   sui campi): qui lo span prende corpo, peso e interlinea dell'etichetta
   (Elementor e ElementsKit gli davano 16 px, peso 400 e interlinea 27,2:
   l'etichetta diventava più alta delle altre). Se il markup non ha il segno,
   lo disegna ::after, muto per i lettori di schermo. La specificità supera
   quella della regola del widget (.elementor-9080 … label span, 0,5,3). */
body .elementor .elementor-element.elementor-element-dcb53ca .ekit-form form .rent-details-item:has(:is(input[name="fullname"], input[name="phone"])) label:not(:has(*))::after {
  content: "*";
  content: "*" / "";
  color: var(--ut-accent-ink);
}
body .elementor .elementor-element.elementor-element-dcb53ca .ekit-form form .rent-details-item:has(:is(input[name="fullname"], input[name="phone"])) label > :is(span, abbr, b, strong, sup) {
  display: inline;
  margin-left: 2px;
  color: var(--ut-accent-ink);
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  text-decoration: none;
}

/* 4.2 bis Spunta di consenso del modulo 7750 (giro 4, decisione del titolare
   del 20 set 2026: il modulo raccoglieva nome, telefono, email e data senza
   consenso e senza un link all'informativa).

   Il markup lo mette `build.py` (`consenso_7750()`): una sesta colonna
   `.ut-consenso` prima del pulsante, con dentro una casella vera
   (`input[type=checkbox][name=privacy]`) nascosta alla vista e un quadrato
   disegnato qui. Aspetto e testo sono quelli del consenso del modulo a passi
   (`ux/richiesta.css`, blocco «consenso»): stessa misura del quadrato, stesso
   segno di spunta, stessi colori, stesso corpo del testo, così la stessa
   frase non ha due facce in due punti del sito.

   Le quattro colonne dei campi riempiono la prima riga esatta (88% meno
   5 px): la spunta prende la stessa misura e il pulsante le va accanto, dove
   stava. Il separatore verticale che il tema toglie all'ULTIMA colonna adesso
   toccherebbe alla spunta: lo si toglie a tutte e due. */
.elementor-element-dcb53ca .rent-details-box .rent-details-item.ut-consenso,
.elementor-element-dcb53ca .rent-details-box .rent-details-item.rent-details-search {
  padding-right: 0;
  border-right: 0;
}
/* E il filetto va tolto anche al QUARTO campo («Urgenza»). Prima il pulsante
   gli stava di fianco e quel bordo li divideva; ora che il pulsante è sceso
   accanto alla spunta, il quarto campo chiude la riga e il filetto resta
   appeso nel vuoto, con la riga bianca fino in fondo alla scatola (visto a
   1440, 1024 e 1000). Il campo si riconosce da chi ha davanti, non dalla
   posizione: `:has()` non fa danni dove non c'è (resta il filetto di oggi),
   mentre un `nth-last-child` conterebbe male il giorno in cui la riga
   cambia. Il `padding-right` resta: toglierlo allargherebbe di 25 px il solo
   quarto campo, e i quattro devono restare uguali. */
.elementor-element-dcb53ca .rent-details-box .rent-details-item:has(+ .ut-consenso) {
  border-right: 0;
}
.elementor-element-dcb53ca .rent-details-box .rent-details-item.ut-consenso {
  width: 100%;
}
@media (min-width: 992px) {
  .elementor-element-dcb53ca .rent-details-box .rent-details-item.ut-consenso {
    width: calc(88% - 5px);
    align-self: center;
  }
  /* il pulsante non è più in fila coi campi ma accanto alla spunta: i 6 px
     che lo centravano sulla riga di etichetta e campo qui lo scentrerebbero */
  .elementor-element-dcb53ca .rent-details-box .rent-details-item.rent-details-search {
    align-self: center;
    margin-top: 0;
  }
}

body .elementor .elementor-element.elementor-element-dcb53ca .ekit-form form .ut-consenso p {
  margin: 0;
}
body .elementor .elementor-element.elementor-element-dcb53ca .ekit-form form .ut-consenso .wpcf7-form-control-wrap {
  position: relative;
  display: block;
}
/* l'etichetta del consenso è la riga intera, non il nome di un campo: niente
   18 px in grassetto e niente `nowrap` (§4.2), che la terrebbe su una riga
   sola e la farebbe uscire dalla scatola */
body .elementor .elementor-element.elementor-element-dcb53ca .ekit-form form .ut-consenso label.ut-casella {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 0;
  padding: 0;
  color: var(--ut-text);
  font-family: var(--ut-font-body);
  font-size: 14.5px;
  font-weight: 400;
  line-height: 1.5;
  white-space: normal;
  cursor: pointer;
}
/* ElementsKit ed Elementor danno a ogni `span` dentro una `label` del modulo
   13 px grigi e `display:block`: qui i due span sono il quadrato e il testo */
body .elementor .elementor-element.elementor-element-dcb53ca .ekit-form form .ut-consenso .ut-casella > span {
  display: block;
  margin: 0;
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}
/* la casella vera resta nel documento, invisibile ma raggiungibile: la
   tastiera ci arriva, i lettori di schermo la leggono, e il modulo la manda
   al server anche senza JavaScript */
body .elementor .elementor-element.elementor-element-dcb53ca .ekit-form form .ut-consenso .ut-casella-input {
  position: absolute;
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
  margin: 0;
  padding: 0;
  opacity: 0;
  pointer-events: none;
}
body .elementor .elementor-element.elementor-element-dcb53ca .ekit-form form .ut-consenso .ut-casella-segno {
  box-sizing: border-box;
  flex: none;
  width: 22px;
  height: 22px;
  margin-top: 1px;
  border: 1.5px solid #B7C1D0;
  border-radius: 6px;
  background: #fff no-repeat center / 13px 13px;
  transition: background-color .15s ease, border-color .15s ease;
}
/* il segno di spunta è un'immagine di sfondo, non un disegno nel markup:
   senza questo foglio non resta uno scarabocchio in pagina, resta la casella
   di serie del browser */
body .elementor .elementor-element.elementor-element-dcb53ca .ekit-form form .ut-consenso .ut-casella-input:checked + .ut-casella-segno {
  border-color: var(--ut-navy);
  background-color: var(--ut-navy);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-4.9'/%3E%3C/svg%3E");
}
body .elementor .elementor-element.elementor-element-dcb53ca .ekit-form form .ut-consenso .ut-casella-input:focus-visible + .ut-casella-segno {
  outline: 2px solid var(--ut-navy);
  outline-offset: 3px;
}
@media (hover: hover) {
  body .elementor .elementor-element.elementor-element-dcb53ca .ekit-form form .ut-consenso .ut-casella:hover .ut-casella-segno {
    border-color: var(--ut-navy);
  }
}
/* quando manca la spunta, il JavaScript di CF7 mette `wpcf7-not-valid` sulla
   casella e `aria-invalid` a `true`: il quadrato si tinge come gli altri
   errori del modulo */
body .elementor .elementor-element.elementor-element-dcb53ca .ekit-form form .ut-consenso .ut-casella-input:is(.wpcf7-not-valid, [aria-invalid="true"]) + .ut-casella-segno {
  border-color: var(--ut-error);
}
body .elementor .elementor-element.elementor-element-dcb53ca .ekit-form form .ut-consenso .ut-casella-testo a {
  color: var(--ut-navy);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}
@media (hover: hover) {
  body .elementor .elementor-element.elementor-element-dcb53ca .ekit-form form .ut-consenso .ut-casella-testo a:hover {
    color: var(--ut-accent-ink);
  }
}
/* il suggerimento di CF7 arriva dopo l'etichetta: senza `display:block` il
   margine di §4.2 non farebbe niente (su un elemento in linea si perde) */
.elementor-element-dcb53ca .rent-details-item.ut-consenso .wpcf7-not-valid-tip {
  display: block;
}

/* 4.3 /veicoli-commerciali/ (pagina Elementor 6683, giro 3)
   - Occhiello «Veicoli aziendali» (ca31350): il titolo è largo quanto la
     riga e l'asterisco del tema (::before assoluto a sinistra) finiva sul
     bordo dello schermo, a 658 px dal testo centrato (131 a 390). Il titolo
     si stringe sul testo e resta centrato: asterisco accanto alla parola,
     come negli altri occhielli.
   - Slider (0e4bcc4): stava a filo dei bordi (da 10 a 1430 a 1440) mentre la
     pagina e lo slider delle offerte in home stanno nella colonna (da 80 a
     1360): stessa colonna, 1280 px al massimo e 10 px in più per lato fino a
     768 px, a tutta larghezza sotto (come la home). Con tre furgoni la fila
     la sistema il §5.8. */
.elementor-6683 .elementor-element.elementor-element-ca31350 .elementor-heading-title {
  display: inline-block;
  position: relative;
}
.elementor-6683 .elementor-element.elementor-element-0e4bcc4 {
  box-sizing: border-box;
  width: min(1280px, 100% - 20px);
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}


/* ==========================================================================
   5. Card veicolo (§4)                                            U1b
   Ganci del render (R1): .ut-card[data-forma][data-tipo] su archivi
   (.perfect-fleet-item.fleets-collection-item) e slider (.perfect-fleet-item).
   Ogni parte ha un'altezza decisa qui, quindi a parità di larghezza tutte
   le card sono alte uguali e il prezzo cade alla stessa quota:
     riquadro foto 3:2 · titoletto · titolo 2 righe + sottotitolo 2 righe
     riservate · due righe fisse · prezzo in fondo (margin-top:auto).
   Foto (misurate sulle 54 del banco): nelle quadrate l'auto sta fra il 20 e
   il 79% dell'altezza, un 3:2 in cover ne mostra il 16,7-83,3%, nessuna si
   taglia; orizzontali (4:3, 3:2, 1,6) cover; larghe (16:9, 2,46) contain.
   ========================================================================== */

/* 5.1 La card: colonna flessibile a tutta altezza */
.ut-card {
  --ut-c-titolo: 20px;          /* corpo del titolo */
  --ut-c-sotto: 13px;           /* corpo del sottotitolo */
  --ut-c-tag: 28px;             /* altezza del titoletto (pillola) */
  --ut-c-gap: 18px;             /* respiro fra foto, titoli, righe, prezzo */
  position: relative;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  background: #fff;
  border-color: var(--ut-line);
  container-type: inline-size;
  transition: border-color .3s ease, box-shadow .3s ease;
}
/* slider: le slide si allungano alla più alta, la card le riempie */
.novaride-car-slider .swiper-slide {
  height: auto;
}
.novaride-car-slider .swiper-slide > .ut-card {
  height: 100%;
}
.ut-card > .perfect-fleet-content {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
}

/* 5.2 Riquadro della foto: stessa proporzione per tutte */
.ut-card .image-box {
  position: relative;
  flex: 0 0 auto;
  aspect-ratio: 3 / 2;
  margin: 0 0 var(--ut-c-gap);
  overflow: hidden;
  border-radius: var(--ut-r-md);
  background: #fff;
  text-align: center;
}
.ut-card:not([data-forma]) .image-box {
  background: var(--ut-cream);           /* card senza foto: il riquadro resta */
}
.ut-card .image-box > a {
  display: block;
  width: 100%;
  height: 100%;
}
.ut-card .image-box a img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;
  object-fit: cover;
  object-position: 50% 50%;
  transition: transform .6s cubic-bezier(.2, .7, .2, 1);
}
.ut-card[data-forma="larga"] .image-box a img {
  object-fit: contain;
}

/* 5.3 Titoletto, titolo e sottotitolo: righe riservate */
.ut-card .perfect-fleet-title {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin: 0 0 var(--ut-c-gap);
  min-height: calc(var(--ut-c-tag) + 12px + 2.4 * var(--ut-c-titolo) + 6px + 2.8 * var(--ut-c-sotto));
}
.ut-card .perfect-fleet-title h3 {
  box-sizing: border-box;
  display: block;
  max-width: 100%;
  height: var(--ut-c-tag);
  margin: 0 0 12px;
  padding: 8px 14px;
  overflow: hidden;
  border-radius: var(--ut-r-pill);
  background-color: var(--ut-line);
  font-family: var(--ut-font-body) !important;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.ut-card .perfect-fleet-title h3:empty {
  visibility: hidden;                    /* nessun tipo: lo spazio resta */
}
.ut-card .perfect-fleet-title h3 a {
  position: relative;
  z-index: 2;
  color: var(--ut-ink);
  text-decoration: none;
}
/* badge «Offerta del mese»: anche su /car-type/offerta-del-mese/, dove il
   link del tipo è ./ ; accent-ink perché il bianco a 12 px su #FF3600 non
   passa AA (3,6:1), su #CC2E00 sì (5,3:1) */
.ut-card[data-tipo="offerta-del-mese"] .perfect-fleet-title h3,
.ut-card .perfect-fleet-title h3:has(a[href*="offerta-del-mese"]) {
  background-color: var(--ut-accent-ink) !important;
}
.ut-card[data-tipo="offerta-del-mese"] .perfect-fleet-title h3 a,
.ut-card .perfect-fleet-title h3:has(a[href*="offerta-del-mese"]) a {
  color: #fff !important;
}
.ut-card .perfect-fleet-title h2 {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  font-size: var(--ut-c-titolo) !important;
  line-height: 1.2 !important;
  letter-spacing: -.01em;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow-wrap: break-word;
}
.ut-card .perfect-fleet-title h2 a {
  color: var(--ut-ink);
  text-decoration: none;
  transition: color .25s ease;
}
/* tutta la card porta alla scheda (il titoletto e la freccia restano sopra) */
.ut-card .perfect-fleet-title h2 a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: var(--ut-r-lg);
}
.ut-card .novaride-car-subtitle {
  display: -webkit-box;
  margin: 6px 0 0;
  overflow: hidden;
  font-family: var(--ut-font-body);
  font-size: var(--ut-c-sotto);
  font-weight: 400;
  line-height: 1.4;
  color: var(--ut-muted);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}

/* 5.4 Le due righe fisse: «[icona] Durata … 48 mesi» (valore a destra) */
.ut-card .perfect-fleet-body {
  margin: 0 0 var(--ut-c-gap);
  padding: 0 0 var(--ut-c-gap);
  border-bottom: 1px solid var(--ut-line);
}
.ut-card .perfect-fleet-body ul {
  display: grid;
  row-gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ut-card .perfect-fleet-body ul li {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) auto;
  column-gap: 10px;
  align-items: center;
  margin: 0;
  font-family: var(--ut-font-body);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.3;
  color: var(--ut-muted);
}
.ut-card .perfect-fleet-body ul li > label {
  display: contents;
}
.ut-card .perfect-fleet-body ul li i {
  grid-area: 1 / 1;
  display: block;
  width: 18px;
  height: 18px;
  background-color: var(--ut-accent);
  -webkit-mask: var(--ut-c-icona) center / contain no-repeat;
  mask: var(--ut-c-icona) center / contain no-repeat;
}
.ut-card .perfect-fleet-body ul li:nth-child(1) i {
  /* calendario */
  --ut-c-icona: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='3'/%3E%3Cpath d='M8 3v4M16 3v4M3 10h18'/%3E%3C/svg%3E");
}
.ut-card .perfect-fleet-body ul li:nth-child(2) i {
  /* strada */
  --ut-c-icona: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 21 9 3M19 21 15 3M12 5v2M12 11v2M12 17v2'/%3E%3C/svg%3E");
}
.ut-card .perfect-fleet-body ul li .feature-value {
  grid-area: 1 / 2;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.ut-card .perfect-fleet-body ul li .feature-label {
  grid-area: 1 / 3;
  margin: 0;
  font-weight: 700;
  color: var(--ut-ink);
  white-space: nowrap;
}

/* 5.5 Prezzo e freccia, sempre in fondo */
.ut-card .perfect-fleet-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: auto;
}
.ut-card .perfect-fleet-pricing {
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
}
.ut-card .perfect-fleet-pricing h2 {
  margin: 0;
  line-height: 1 !important;
  letter-spacing: -.01em;
  white-space: nowrap;
  color: var(--ut-ink);
}
.ut-card .perfect-fleet-pricing h2 span {
  margin-left: 2px;
  color: var(--ut-muted);
}
.ut-card .perfect-fleet-btn {
  flex: 0 0 auto;
}
.ut-card .perfect-fleet-btn .section-icon-btn {
  position: relative;
  z-index: 2;
  margin: 0;
}

/* 5.6 Passaggio del mouse (solo dove il mouse c'è: sul telefono il tocco
   lascerebbe la foto ingrandita) e fuoco */
@media (hover: hover) {
  .ut-card:hover {
    border-color: rgba(27, 59, 111, .2);
    box-shadow: var(--ut-shadow-card);
  }
  .ut-card:hover .image-box a img {
    transform: scale(1.035);
  }
  .ut-card:hover .perfect-fleet-title h2 a {
    color: var(--ut-accent-ink);
  }
}
.ut-card a:focus-visible {
  outline: 2px solid var(--ut-navy);
  outline-offset: 3px;
  border-radius: 8px;
}
/* il titolo è il link di tutta la card: il fuoco disegna il bordo della card */
.ut-card .perfect-fleet-title h2 a:focus-visible {
  outline: none;
}
.ut-card .perfect-fleet-title h2 a:focus-visible::after {
  outline: 2px solid var(--ut-navy);
  outline-offset: 2px;
}
.ut-card .perfect-fleet-title h3 a:focus-visible,
.ut-card .perfect-fleet-btn a.section-icon-btn:focus-visible {
  outline: 2px solid var(--ut-navy);
  outline-offset: 3px;
}
.ut-card .perfect-fleet-btn a.section-icon-btn:focus-visible {
  border-radius: 50%;
}

/* 5.7 Card strette (1024 px e slider a 5 colonne): righe più compatte */
@container (max-width: 230px) {
  .ut-card .perfect-fleet-body ul li {
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 8px;
    font-size: 13px;
  }
  .ut-card .perfect-fleet-body ul li i {
    display: none;
  }
  .ut-card .perfect-fleet-body ul li .feature-value {
    grid-area: 1 / 1;
  }
  .ut-card .perfect-fleet-body ul li .feature-label {
    grid-area: 1 / 2;
  }
}

/* 5.7 bis Card ancora più strette (griglia degli archivi a due colonne da
   mobile, §10, richiesta del titolare 20 set 2026): sotto i 176 px di
   contenitore, anche col corpo già ridotto (5.7), la colonna flessibile
   dell'etichetta non ha più spazio per «Chilometri/anno» (96 px a 13 px di
   corpo) mentre il valore in grassetto accanto (auto, es. «10.000 km», circa
   66 px) non si stringe mai: coi due affiancati (98 px disponibili nel caso
   più stretto, 320 px di schermo, contro i 170 necessari) il testo finiva
   troncato a una lettera («C…»), leggibile per intero solo dallo screen
   reader. Misurato sulla griglia a due colonne: 98 px di contenitore a
   320 px di schermo, 133 a 390, 145 a 414, 168 a 460 — tutti sotto soglia,
   tutti troncati prima della correzione; 178 a 480, dove il testo passa
   (ci sta per un pelo, 104 di 104 disponibili) e la soglia lascia la riga
   singola di 5.7 com'era. Sotto i 176 px le due colonne diventano due righe:
   l'etichetta sopra per intero, il valore in grassetto sotto. La soglia
   scelta (176) sta apposta sotto i 178 del caso limite di 480 px di schermo
   e ben sotto i 184 dell'archivio a tre colonne di 1024 px (child di 5.7:
   lì il testo c'è già per intero, non deve impilarsi) — attenzione: la
   query confronta il CONTENUTO della card (dopo padding 20 px e bordo 1 px
   per lato), non la larghezza esterna, come già 5.7 e 5.9. Scoperto e
   corretto solo per gli archivi (.page-fleets): gli slider della vetrina
   (home, /veicoli-commerciali/) non scendono mai sotto i 184 px di
   contenuto — 5 per vista, la vista più stretta, resta a 190 — e restano
   quindi con valore ed etichetta affiancati. */
@container (max-width: 176px) {
  .page-fleets .ut-card .perfect-fleet-body ul li {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    row-gap: 2px;
  }
  .page-fleets .ut-card .perfect-fleet-body ul li .feature-value {
    grid-area: 1 / 1;
    overflow: visible;
    white-space: normal;
    text-overflow: clip;
  }
  .page-fleets .ut-card .perfect-fleet-body ul li .feature-label {
    grid-area: 2 / 1;
  }
}

/* 5.8 Slider con poche auto (giro 3). Con meno auto di quante ne entrano in
   una vista (/veicoli-commerciali/: 3 furgoni, 3 per vista da 991 px e 4 da
   1300) il loop di Swiper mostrava la stessa auto due volte. ux.js (modulo
   slider-pochi) mette .ut-slider-fermo finché tutte stanno in vista: fila
   ferma e centrata, card larghe come nello slider (--ut-per-vista e
   --ut-spazio dalla configurazione del widget), niente copie, frecce né
   autoplay. Sotto quella soglia lo slider resta com'è. */
.novaride-car-slider.ut-slider-fermo .swiper-wrapper {
  justify-content: center;
  gap: var(--ut-spazio, 30px);
  transform: none !important;
}
.novaride-car-slider.ut-slider-fermo .swiper-slide {
  flex: 0 0 auto;
  width: calc((100% - (var(--ut-per-vista, 3) - 1) * var(--ut-spazio, 30px)) / var(--ut-per-vista, 3)) !important;
  margin-right: 0 !important;
}
.novaride-car-slider.ut-slider-fermo .swiper-slide-duplicate,
.novaride-car-slider.ut-slider-fermo .car-slider-btn {
  display: none !important;
}

/* 5.9 Card molto strette (griglia degli archivi a due colonne da mobile,
   §10, richiesta del titolare 20 set 2026): sotto i 230 px il testo delle
   righe si compatta già (5.7), ma il prezzo resta al corpo di sempre
   (20/14 px, pulsante 34 px, tutti !important del tema): fra 180 e 230 px
   di contenitore c'è ancora posto, sotto i 180 «€000/mese» supera lo
   spazio che il pulsante lascia libero e il testo finisce sotto il
   pulsante (misurato: 22 px di troppo a 118 px, il caso più stretto della
   griglia a due colonne, 360 px di schermo). Prezzo e pulsante si
   stringono insieme, restano sulla stessa riga e la quota non cambia
   (il prezzo sta comunque sempre in fondo, margin-top:auto su §5.5). */
@container (max-width: 180px) {
  .ut-card .perfect-fleet-footer {
    gap: 6px;
  }
  .ut-card .perfect-fleet-pricing h2 {
    font-size: 16px !important;
  }
  .ut-card .perfect-fleet-pricing h2 span {
    font-size: 11px !important;
  }
  .ut-card .perfect-fleet-btn .section-icon-btn {
    width: 26px;
    height: 26px;
  }
  .ut-card .perfect-fleet-btn .section-icon-btn img {
    max-width: 8px;
  }
}


/* ==========================================================================
   6. Filtro Marca e barra laterale degli archivi (§5)             U1b
   La barra è un solo aside.widget (rosato) con dentro tre blocchi separati
   da <br>: ordinamento (.uniteam-sort), prezzo (.uniteam-pf, stili in linea
   del modello), marche (form.ut-marche di R1). Diventano tre riquadri
   bianchi uguali, con lo stesso titolo. Sotto i 992 px ux.js li mette dietro
   il pulsante «Filtra e ordina» (regole in fondo). Il kit impone (0,1,1) su
   button e input: qui tutto sta sotto .page-fleets, (0,3,0) o più.
   ========================================================================== */

/* 6.1 Contenitore: niente <br>, spazi regolari. La barra è sticky (top
   20 px, dal tema) ma più alta dello schermo (1097 px a 1440×900): con quel
   top le ultime marche restano irraggiungibili finché non finisce la griglia.
   Niente tetto d'altezza né scorrimento interno (tagliavano il riquadro Marca
   a metà di una riga di pillole, anche sulle pagine con poche card): dal
   giro 3 la barra alta scorre con la pagina nei due versi (§6.1 bis, modulo
   barra-sticky di ux.js). Senza JS resta il top 20 px del tema. */
.page-fleets .fleets-sidebar {
  top: var(--ut-barra-top, 20px);
  border-radius: var(--ut-r-lg);
}
/* 6.1 bis Barra sticky sotto l'header fisso (giro 3). Col top negativo la
   parte alta della barra (ordinamento, titolo del prezzo, maniglie) restava
   per sempre sopra lo schermo e sotto l'header da 72 px (1440×900 e
   1280×720). Ora la barra alta si muove con la pagina in tutte e due le
   direzioni e si ferma ai due capi: col fondo a 20 px dal bordo scendendo,
   con la cima 20 px sotto l'header risalendo (basta risalire un poco per
   ritrovare «Ordina per»). Tutto sticky nativo, niente posizioni scritte a
   ogni fotogramma: top (capo basso, negativo) e bottom (capo alto) li scrive
   ux.js (modulo barra-sticky) in --ut-barra-min e --ut-barra-max, e a ogni
   cambio di verso un distanziale in cima alla colonna (--ut-barra-scarto)
   rimette la posizione naturale della barra dove la barra è in quel momento.
   Se la barra ci sta, resta ferma sotto l'header. Altezza dell'header da
   --ut-header-altezza (menu.css), ripiego 72 px. La regola batte quella di
   menu.css (0,3,1) sulle barre degli archivi; senza ux.js resta quella. */
@media (min-width: 992px) {
  html body .page-fleets .fleets-sidebar.fleets-sidebar.ut-barra-js {
    top: var(--ut-barra-min, calc(var(--ut-header-altezza, 72px) + 20px));
    bottom: var(--ut-barra-max, auto);
  }
  .page-fleets .ut-barra-colonna::before {
    content: "";
    display: block;
    height: var(--ut-barra-scarto, 0px);
  }
}
.page-fleets .fleets-sidebar aside.widget {
  padding: 20px;
}
.page-fleets .fleets-sidebar .custom-html-widget {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.page-fleets .fleets-sidebar .custom-html-widget > br {
  display: none;
}
.page-fleets .fleets-sidebar .uniteam-sort,
.page-fleets .fleets-sidebar .uniteam-pf,
.page-fleets .fleets-sidebar form.ut-marche {
  box-sizing: border-box;
  display: block;
  margin: 0;
  padding: 18px;
  border: 1px solid var(--ut-line);
  border-radius: var(--ut-r-md);
  background: #fff;
  box-shadow: none;
  font-family: var(--ut-font-body);
}
/* un titolo solo per i tre riquadri */
.page-fleets .fleets-sidebar .uniteam-sort .uniteam-sort__caption,
.page-fleets .fleets-sidebar .uniteam-pf .uniteam-pf__title,
.page-fleets .fleets-sidebar .ut-marche .ut-marche__titolo {
  margin: 0;
  font-family: var(--ut-font-head);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -.005em;
  text-transform: none;
  color: var(--ut-ink);
  white-space: nowrap;
}

/* 6.2 Ordinamento: didascalia su una riga, select a tutta larghezza */
.page-fleets .fleets-sidebar .uniteam-sort .uniteam-sort__form {
  margin: 0;
}
.page-fleets .fleets-sidebar .uniteam-sort .uniteam-sort__label {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
  width: 100%;
  margin: 0;
}
.page-fleets .fleets-sidebar .uniteam-sort select.uniteam-sort__select {
  box-sizing: border-box;
  width: 100%;
  min-height: 46px;
  margin: 0;
  padding: 0 40px 0 14px;
  border: 1px solid var(--ut-line);
  border-radius: var(--ut-r-sm);
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23040401' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 16px center / 12px 8px;
  font-family: var(--ut-font-body);
  font-size: 15px;
  font-weight: 600;
  color: var(--ut-ink);
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.page-fleets .fleets-sidebar .uniteam-sort select.uniteam-sort__select:hover {
  border-color: var(--ut-navy);
}
.page-fleets .fleets-sidebar .uniteam-sort select.uniteam-sort__select:focus-visible {
  outline: 2px solid var(--ut-navy);
  outline-offset: 2px;
  border-color: var(--ut-navy);
}

/* 6.3 Prezzo: font del sito, «Applica» a misura, «Azzera» */
.page-fleets .fleets-sidebar .uniteam-pf .uniteam-pf__head {
  align-items: baseline;
  margin: 0 0 12px;
}
.page-fleets .fleets-sidebar .uniteam-pf .uniteam-pf__hint {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .06em;
  color: var(--ut-muted);
}
.page-fleets .fleets-sidebar .uniteam-pf .uniteam-pf__values {
  gap: 6px;
  margin: 0 0 8px;
  font-size: 14px;
  color: var(--ut-muted);
}
.page-fleets .fleets-sidebar .uniteam-pf .uniteam-pf__values strong {
  font-size: 16px;
  font-weight: 700;
  color: var(--ut-ink);
}
.page-fleets .fleets-sidebar .uniteam-pf .uniteam-pf__sep {
  color: var(--ut-muted);
}
.page-fleets .fleets-sidebar .uniteam-pf .uniteam-pf__inputs {
  gap: 10px;
  margin: 0 0 14px;
}
.page-fleets .fleets-sidebar .uniteam-pf .uniteam-pf__inputs label {
  gap: 6px;
  margin: 0;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .04em;
  color: var(--ut-muted);
}
.page-fleets .fleets-sidebar .uniteam-pf .uniteam-pf__inputs input {
  box-sizing: border-box;
  min-height: 42px;
  margin: 0;
  padding: 0 12px;
  border: 1px solid var(--ut-line);
  border-radius: var(--ut-r-sm);
  background: #fff;
  font-family: var(--ut-font-body);
  font-size: 15px;
  font-weight: 600;
  color: var(--ut-ink);
}
.page-fleets .fleets-sidebar .uniteam-pf .uniteam-pf__inputs input {
  -moz-appearance: textfield;
  appearance: textfield;
}
.page-fleets .fleets-sidebar .uniteam-pf .uniteam-pf__inputs input::-webkit-inner-spin-button,
.page-fleets .fleets-sidebar .uniteam-pf .uniteam-pf__inputs input::-webkit-outer-spin-button {
  margin: 0;
  -webkit-appearance: none;
}
.page-fleets .fleets-sidebar .uniteam-pf .uniteam-pf__inputs input:focus {
  outline: none;
  border-color: var(--ut-navy);
  box-shadow: var(--ut-focus);
}
.page-fleets .fleets-sidebar .uniteam-pf .uniteam-pf__actions {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 14px;
}
.page-fleets .fleets-sidebar .uniteam-pf .uniteam-pf__actions .uniteam-pf__apply,
.page-fleets .fleets-sidebar .ut-marche .ut-marche__invia {
  box-sizing: border-box;
  display: inline-flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 44px;
  margin: 0;
  padding: 0 20px;
  border: 0;
  border-radius: var(--ut-r-pill);
  background: var(--ut-navy);
  color: #fff;
  font-family: var(--ut-font-body);
  font-size: 15px;
  font-weight: 700;
  font-style: normal;
  line-height: 1;
  letter-spacing: 0;
  text-transform: none;
  white-space: nowrap;
  box-shadow: none;
  cursor: pointer;
  transition: background-color .2s ease;
}
.page-fleets .fleets-sidebar .uniteam-pf .uniteam-pf__actions .uniteam-pf__apply:hover,
.page-fleets .fleets-sidebar .uniteam-pf .uniteam-pf__actions .uniteam-pf__apply:focus,
.page-fleets .fleets-sidebar .ut-marche .ut-marche__invia:hover,
.page-fleets .fleets-sidebar .ut-marche .ut-marche__invia:focus {
  background: var(--ut-ink);
  color: #fff;
}
.page-fleets .fleets-sidebar .uniteam-pf .uniteam-pf__actions .uniteam-pf__apply:focus-visible,
.page-fleets .fleets-sidebar .ut-marche .ut-marche__invia:focus-visible {
  outline: 2px solid var(--ut-navy);
  outline-offset: 3px;
}
.page-fleets .fleets-sidebar .uniteam-pf .uniteam-pf__reset,
.page-fleets .fleets-sidebar .ut-marche .ut-marche__azzera {
  flex: 0 0 auto;
  padding: 4px 2px;
  font-family: var(--ut-font-body);
  font-size: 14px;
  font-weight: 600;
  color: var(--ut-accent-ink);
  text-decoration: none;
  white-space: nowrap;
  border-radius: 4px;
}
.page-fleets .fleets-sidebar .uniteam-pf .uniteam-pf__reset:hover,
.page-fleets .fleets-sidebar .ut-marche .ut-marche__azzera:hover {
  color: var(--ut-ink);
  text-decoration: underline;
  text-underline-offset: .25em;
}
.page-fleets .fleets-sidebar .uniteam-pf .uniteam-pf__reset:focus-visible,
.page-fleets .fleets-sidebar .ut-marche .ut-marche__azzera:focus-visible {
  outline: 2px solid var(--ut-navy);
  outline-offset: 2px;
}

/* 6.4 Marche: pillole che vanno a capo, stato scelto pieno */
.page-fleets .fleets-sidebar .ut-marche .ut-marche__testa {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 14px;
}
.page-fleets .fleets-sidebar .ut-marche .ut-marche__azzera[hidden] {
  display: none;
}
.page-fleets aside.widget .ut-marche ul.ut-marche__elenco {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0 !important;
  list-style: none !important;
}
.page-fleets aside.widget .ut-marche ul.ut-marche__elenco > li {
  display: block;
  margin: 0;
  padding: 0;
  font-weight: 400;
  color: inherit;
}
.page-fleets .fleets-sidebar .ut-marche .ut-marca {
  position: relative;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 36px;
  margin: 0;
  padding: 6px 12px 6px 13px;
  border: 1px solid var(--ut-line);
  border-radius: var(--ut-r-pill);
  background: #fff;
  font-family: var(--ut-font-body);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--ut-ink);
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
/* la casella vera resta (tastiera, lettori di schermo), invisibile */
.page-fleets .fleets-sidebar .ut-marche .ut-marca input {
  position: absolute;
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
  margin: 0;
  opacity: 0;
  pointer-events: none;
}
.page-fleets .fleets-sidebar .ut-marche .ut-marca__conta {
  min-width: 1.3em;
  font-size: 12px;
  font-weight: 600;
  color: var(--ut-muted);
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.page-fleets .fleets-sidebar .ut-marche .ut-marca:hover {
  border-color: var(--ut-navy);
}
.page-fleets .fleets-sidebar .ut-marche .ut-marca:has(input:checked) {
  border-color: var(--ut-navy);
  background: var(--ut-navy);
  color: #fff;
}
.page-fleets .fleets-sidebar .ut-marche .ut-marca:has(input:checked) .ut-marca__conta {
  color: rgba(255, 255, 255, .78);
}
/* spunta: sta sul nome, così si vede anche senza :has() */
.page-fleets .fleets-sidebar .ut-marche .ut-marca input:checked + .ut-marca__nome::before {
  content: "";
  display: inline-block;
  width: 11px;
  height: 11px;
  margin: 0 6px 0 -1px;
  vertical-align: -1px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M2 6.5l2.6 2.6L10 3.2'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M2 6.5l2.6 2.6L10 3.2'/%3E%3C/svg%3E") center / contain no-repeat;
}
.page-fleets .fleets-sidebar .ut-marche .ut-marca:has(input:focus-visible) {
  outline: 2px solid var(--ut-navy);
  outline-offset: 2px;
}
/* «Mostra risultati»: serve solo senza JS (con JS il cambio naviga da sé) */
.page-fleets .fleets-sidebar .ut-marche .ut-marche__invia {
  display: flex;
  width: 100%;
  margin-top: 16px;
}
.ut-js .page-fleets .fleets-sidebar .ut-marche .ut-marche__invia {
  display: none;
}
/* durante il cambio di pagina */
.page-fleets .fleets-sidebar .ut-marche.ut-in-corso .ut-marche__elenco {
  opacity: .6;
  cursor: progress;
}

/* 6.5 Pulsante «Filtra e ordina» (lo crea ux.js, visibile sotto i 992 px) */
.page-fleets .fleets-sidebar .ut-filtri-apri {
  display: none;
}

/* 6.6 Griglia vuota */
.page-fleets .ut-vuoto {
  box-sizing: border-box;
  margin: 0 0 30px;
  padding: 56px 24px;
  border-radius: var(--ut-r-lg);
  background: var(--ut-cream);
  text-align: center;
}
.page-fleets .ut-vuoto p {
  max-width: 28ch;
  margin: 0 auto 22px;
  font-family: var(--ut-font-head);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--ut-ink);
}
.page-fleets .ut-vuoto a {
  display: inline-flex;
  align-items: center;
  min-height: 48px;
  padding: 0 26px;
  border-radius: var(--ut-r-pill);
  background: var(--ut-azione);
  color: #fff;
  font-family: var(--ut-font-body);
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  transition: background-color .2s ease;
}
.page-fleets .ut-vuoto a:hover {
  background: var(--ut-azione-sopra);
  color: #fff;
}
.page-fleets .ut-vuoto a:focus-visible {
  outline: 2px solid var(--ut-navy);
  outline-offset: 3px;
}

/* 6.7 Scroll infinito (giro 2): piede della griglia creato da ux.js al posto
   della paginazione, che resta nell'HTML (senza JS e per i motori) ma si
   nasconde. Stato in aria-live, barra dell'avanzamento, «Mostra altre auto»
   come ripiego per chi non scorre o usa la tastiera, errore con «Riprova».
   Altezza del piede costante fra riposo e caricamento: niente salti. */
.page-fleets .ut-pag-nascosta {
  display: none !important;
}
.page-fleets .ut-altre {
  box-sizing: border-box;
  width: 100%;
  margin: 6px 0 0;
  padding: 0 12px;
}
.page-fleets .ut-altre .ut-altre__box {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  padding: 8px 0 12px;
  text-align: center;
  font-family: var(--ut-font-body);
}
.page-fleets .ut-altre p.ut-altre__stato {
  margin: 0;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--ut-muted);
}
.page-fleets .ut-altre .ut-altre__barra {
  position: relative;
  width: min(240px, 70%);
  height: 4px;
  overflow: hidden;
  border-radius: var(--ut-r-pill);
  background: var(--ut-line);
}
/* la quota la scrive ux.js in --ut-quota (da 0 a 1): si anima solo il
   transform, mai la larghezza (niente ricalcolo del layout a ogni fotogramma) */
.page-fleets .ut-altre .ut-altre__riempi {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: var(--ut-accent);
  transform: scaleX(var(--ut-quota, 0));
  transform-origin: left center;
  transition: transform .45s cubic-bezier(.2, .7, .2, 1);
}
.page-fleets .ut-altre button.ut-altre__piu,
.page-fleets .ut-altre button.ut-altre__riprova {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 52px;
  margin: 2px 0 0;
  padding: 0 30px;
  border: 1px solid var(--ut-ink);
  border-radius: var(--ut-r-pill);
  background: #fff;
  color: var(--ut-ink);
  font-family: var(--ut-font-body);
  font-size: 16px;
  font-weight: 700;
  font-style: normal;
  line-height: 1;
  letter-spacing: 0;
  text-transform: none;
  white-space: nowrap;
  box-shadow: none;
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease;
}
.page-fleets .ut-altre button.ut-altre__piu[hidden] {
  display: none;
}
.page-fleets .ut-altre button.ut-altre__piu:hover,
.page-fleets .ut-altre button.ut-altre__piu:focus,
.page-fleets .ut-altre button.ut-altre__riprova:hover,
.page-fleets .ut-altre button.ut-altre__riprova:focus {
  border-color: var(--ut-ink);
  background: var(--ut-ink);
  color: #fff;
}
.page-fleets .ut-altre button.ut-altre__piu:focus:not(:focus-visible),
.page-fleets .ut-altre button.ut-altre__riprova:focus:not(:focus-visible) {
  background: #fff;
  color: var(--ut-ink);
}
.page-fleets .ut-altre button.ut-altre__piu:hover:focus:not(:focus-visible),
.page-fleets .ut-altre button.ut-altre__riprova:hover:focus:not(:focus-visible) {
  background: var(--ut-ink);
  color: #fff;
}
.page-fleets .ut-altre button.ut-altre__piu:focus-visible,
.page-fleets .ut-altre button.ut-altre__riprova:focus-visible,
.page-fleets .ut-altre a:focus-visible {
  outline: 2px solid var(--ut-navy);
  outline-offset: 3px;
}
/* in caricamento: stesso pulsante, un giro sobrio al posto della freccia */
.page-fleets .ut-altre .ut-altre__giro {
  display: none;
  box-sizing: border-box;
  width: 16px;
  height: 16px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: ut-giro .8s linear infinite;
}
.page-fleets .ut-altre--carica .ut-altre__giro {
  display: inline-block;
}
.page-fleets .ut-altre--carica button.ut-altre__piu {
  cursor: progress;
}
@keyframes ut-giro {
  to { transform: rotate(360deg); }
}
/* errore: messaggio, «Riprova» e il link vero alla pagina successiva */
.page-fleets .ut-altre .ut-altre__errore {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.page-fleets .ut-altre .ut-altre__errore[hidden] {
  display: none;
}
.page-fleets .ut-altre .ut-altre__errore p {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
  color: var(--ut-error);
}
.page-fleets .ut-altre .ut-altre__azioni {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px 20px;
}
.page-fleets .ut-altre a.ut-altre__vai,
.page-fleets .ut-altre a.ut-altre__inizio {
  font-size: 15px;
  font-weight: 600;
  color: var(--ut-navy);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.page-fleets .ut-altre a.ut-altre__vai:hover,
.page-fleets .ut-altre a.ut-altre__inizio:hover {
  color: var(--ut-accent-ink);
}


/* ==========================================================================
   7. Galleria della scheda (§7)                                   U1b
   Markup di R2 (.ut-galleria, niente Swiper né Elementor). Senza JS il
   nastro scorre in orizzontale con scroll-snap; frecce, contatore e schermo
   intero compaiono con html.ut-js (sono sovrapposti: nessuno spostamento).
   Riquadro 4:3 uguale per tutte, contain su bianco: le PNG hanno fondo
   bianco pieno, le foto 16:9 e la verticale restano intere.
   ========================================================================== */

/* 7.1 Riquadro e nastro */
.ut-galleria {
  position: relative;
  width: 100%;
  min-width: 0;
}
.ut-galleria .ut-galleria__vista {
  position: relative;
  box-sizing: border-box;
  /* larghezza intera (giro 2): con la colonna a 836,66 px (1440) le foto
     erano larghe 834,66 e lo scorrimento, che si ferma al pixel intero,
     lasciava dalla terza foto in poi una colonna della foto prima. Dove
     round() non c'è resta la larghezza piena di prima. */
  width: round(down, 100%, 1px);
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border: 1px solid var(--ut-line);
  border-radius: var(--ut-r-lg);
  background: #fff;
}
.ut-galleria ul.ut-galleria__nastro {
  display: flex;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  outline: none;
}
.ut-galleria ul.ut-galleria__nastro::-webkit-scrollbar {
  display: none;
}
.ut-galleria .ut-galleria__nastro.ut-trascina {
  scroll-snap-type: none;                /* durante il trascinamento col mouse */
  cursor: grabbing;
}
.ut-galleria .ut-galleria__nastro > li.ut-galleria__foto {
  display: flex;
  flex: 0 0 100%;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  scroll-snap-align: center;
  scroll-snap-stop: always;
}
.ut-galleria .ut-galleria__nastro > li.ut-galleria__foto::before,
.ut-galleria .ut-galleria__miniature > li::before {
  content: none;
  display: none;
}
.ut-galleria .ut-galleria__foto img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  object-fit: contain;
  background: #fff;
  -webkit-user-drag: none;
  -webkit-user-select: none;
  user-select: none;
}
/* fuoco sul nastro (frecce della tastiera): il bordo del riquadro */
.ut-galleria .ut-galleria__vista:has(.ut-galleria__nastro:focus-visible) {
  outline: 2px solid var(--ut-navy);
  outline-offset: 3px;
}

/* 7.2 Comandi sovrapposti: frecce, contatore, schermo intero */
.ut-galleria .ut-galleria__vista .ut-galleria__freccia,
.ut-galleria .ut-galleria__vista .ut-galleria__grande {
  position: absolute;
  z-index: 2;
  box-sizing: border-box;
  display: none;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  font-size: 0;
  line-height: 0;
  text-transform: none;
  cursor: pointer;
  transition: background-color .25s ease, color .25s ease, transform .25s ease;
}
.ut-js .ut-galleria .ut-galleria__vista .ut-galleria__freccia,
.ut-js .ut-galleria .ut-galleria__vista .ut-galleria__grande {
  display: flex;
}
.ut-galleria .ut-galleria__vista .ut-galleria__freccia {
  top: 50%;
  width: 48px;
  height: 48px;
  margin-top: -24px;
  background: var(--ut-azione);
  color: #fff;
  box-shadow: 0 4px 14px rgba(10, 20, 42, .18);
}
.ut-galleria .ut-galleria__vista .ut-galleria__freccia--prec {
  left: 16px;
}
.ut-galleria .ut-galleria__vista .ut-galleria__freccia--succ {
  right: 16px;
}
.ut-galleria .ut-galleria__vista .ut-galleria__freccia:hover,
.ut-galleria .ut-galleria__vista .ut-galleria__freccia:focus {
  background: var(--ut-azione-sopra);
  color: #fff;
}
.ut-galleria .ut-galleria__vista .ut-galleria__grande {
  top: 16px;
  right: 16px;
  width: 44px;
  height: 44px;
  border: 1px solid var(--ut-line);
  background: rgba(255, 255, 255, .94);
  color: var(--ut-ink);
  box-shadow: 0 2px 10px rgba(10, 20, 42, .1);
}
.ut-galleria .ut-galleria__vista .ut-galleria__grande:hover,
.ut-galleria .ut-galleria__vista .ut-galleria__grande:focus {
  background: var(--ut-ink);
  color: #fff;
}
.ut-galleria .ut-galleria__vista .ut-galleria__freccia:focus-visible,
.ut-galleria .ut-galleria__vista .ut-galleria__grande:focus-visible {
  outline: 2px solid var(--ut-navy);
  outline-offset: 3px;
}
.ut-galleria .ut-galleria__vista button svg {
  display: block;
  width: 22px;
  height: 22px;
  pointer-events: none;
}
.ut-galleria .ut-galleria__vista .ut-galleria__grande svg {
  width: 20px;
  height: 20px;
}
.ut-galleria .ut-galleria__contatore {
  position: absolute;
  left: 16px;
  bottom: 16px;
  z-index: 2;
  display: none;
  padding: 7px 12px;
  border-radius: var(--ut-r-pill);
  background: rgba(4, 10, 37, .74);
  color: #fff;
  font-family: var(--ut-font-body);
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .04em;
  font-variant-numeric: tabular-nums;
  pointer-events: none;
}
.ut-js .ut-galleria .ut-galleria__contatore {
  display: block;
}

/* 7.3 Miniature: sei posti per riga, sincronizzate da ux.js */
.ut-galleria ol.ut-galleria__miniature {
  display: flex;
  gap: 10px;
  margin: 12px 0 0;
  padding: 3px;
  list-style: none;
  overflow-x: auto;
  scrollbar-width: none;
}
.ut-galleria ol.ut-galleria__miniature::-webkit-scrollbar {
  display: none;
}
.ut-galleria ol.ut-galleria__miniature > li {
  flex: 0 0 calc((100% - 50px) / 6);
  min-width: 64px;
  margin: 0;
  padding: 0;
}
.ut-galleria .ut-galleria__miniature button.ut-galleria__mini {
  box-sizing: border-box;
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--ut-line);
  border-radius: var(--ut-r-sm);
  background: #fff;
  box-shadow: none;
  font-size: 0;
  line-height: 0;
  opacity: .72;
  cursor: pointer;
  transition: opacity .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.ut-galleria .ut-galleria__miniature button.ut-galleria__mini:hover,
.ut-galleria .ut-galleria__miniature button.ut-galleria__mini:focus {
  background: #fff;
  opacity: 1;
}
.ut-galleria .ut-galleria__miniature button.ut-galleria__mini[aria-current="true"] {
  border-color: var(--ut-accent);
  box-shadow: inset 0 0 0 1px var(--ut-accent);
  opacity: 1;
}
.ut-galleria .ut-galleria__miniature button.ut-galleria__mini:focus-visible {
  outline: 2px solid var(--ut-navy);
  outline-offset: 2px;
}
.ut-galleria .ut-galleria__mini img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;
  border: 0;
  border-radius: 0;
  object-fit: cover;
  pointer-events: none;
}

/* 7.4 Schermo intero: <dialog> creato da ux.js, nel livello superiore */
html.ut-modale-aperta,
html.ut-modale-aperta body {
  overflow: hidden !important;
}
html.ut-modale-aperta .wa__btn_popup,
html.ut-modale-aperta .wa__popup_chat_box,
html.ut-modale-aperta #magic-cursor {
  display: none !important;
}
/* WhatsApp (giro 3). Il pulsante del plugin sta sopra tutto (999999999):
   - col banner dei cookie di Complianz aperto copriva «Visualizza le
     preferenze» e, sui telefoni, metà di «Nega» (rifiutare deve essere comodo
     quanto accettare): finché il banner è visibile (.cmplz-show) WhatsApp
     non c'è; torna dopo la scelta (.cmplz-dismissed);
   - a 1024×768 copriva la freccia «Foto successiva» della galleria: ux.js
     (modulo wa-schiva) mette html.ut-wa-via finché un comando della galleria
     è sotto il pulsante. Visibility e non display: le misure restano. */
html:has(.cmplz-cookiebanner.cmplz-show) .wa__btn_popup,
html:has(.cmplz-cookiebanner.cmplz-show) .wa__popup_chat_box {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
html.ut-wa-via .wa__btn_popup {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity .2s ease, visibility 0s linear .2s;
}
dialog.ut-schermo {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  box-sizing: border-box;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: 100%;
  max-width: none;
  height: 100%;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: var(--ut-navy-850);
  color: #fff;
  font-family: var(--ut-font-body);
}
dialog.ut-schermo:not([open]) {
  display: none;
}
dialog.ut-schermo::backdrop {
  background: rgba(4, 10, 37, .6);
}
dialog.ut-schermo .ut-schermo__testa {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 20px;
}
dialog.ut-schermo .ut-schermo__titolo {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  font-size: 15px;
  font-weight: 600;
  white-space: nowrap;
  text-overflow: ellipsis;
  color: rgba(255, 255, 255, .86);
}
dialog.ut-schermo .ut-schermo__contatore {
  margin-left: 10px;
  font-variant-numeric: tabular-nums;
  color: rgba(255, 255, 255, .6);
}
dialog.ut-schermo .ut-schermo__foto {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
  padding: 0 88px 32px;
  touch-action: pan-y;
}
dialog.ut-schermo .ut-schermo__foto img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  margin: 0;
  border-radius: var(--ut-r-md);
  background: #fff;
  object-fit: contain;
  -webkit-user-drag: none;
  user-select: none;
}
dialog.ut-schermo button.ut-schermo__btn {
  box-sizing: border-box;
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, .12);
  color: #fff;
  font-size: 0;
  line-height: 0;
  box-shadow: none;
  cursor: pointer;
  transition: background-color .2s ease;
}
dialog.ut-schermo button.ut-schermo__btn:hover,
dialog.ut-schermo button.ut-schermo__btn:focus {
  background: var(--ut-azione);
  color: #fff;
}
dialog.ut-schermo button.ut-schermo__btn:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}
dialog.ut-schermo button.ut-schermo__btn svg {
  display: block;
  width: 22px;
  height: 22px;
  pointer-events: none;
}
dialog.ut-schermo .ut-schermo__foto .ut-schermo__btn {
  position: absolute;
  top: 50%;
  width: 56px;
  height: 56px;
  margin-top: -44px;
}
dialog.ut-schermo .ut-schermo__foto .ut-schermo__prec {
  left: 20px;
}
dialog.ut-schermo .ut-schermo__foto .ut-schermo__succ {
  right: 20px;
}


/* ==========================================================================
   8. Configuratore (§6)                                           U1b
   Markup di R2: .nlt-configurator.ut-conf senza cursori, riga
   .ut-conf-fascia nel riquadro del prezzo. Il JS del configuratore non si
   tocca: i suoi «radio» sono span con un ascoltatore di clic, quindi lo span
   si allarga a coprire tutto il segmento. ux.js aggiunge ruoli e tastiera.
   Colonna utile misurata: 313 px a 1440, 221 a 1024, 211 a 992, 520 max
   sotto i 992 (regole per larghezza in fondo).
   ========================================================================== */

/* 8.1 Contenitore */
.car-single-sidebar aside.widget:has(.ut-conf) {
  padding: 20px;
}
.ut-conf.nlt-configurator {
  padding: 24px 24px 0;
  border: 1px solid var(--ut-line);
  border-radius: var(--ut-r-md);
  box-shadow: var(--ut-shadow-card);
  font-family: var(--ut-font-body);
  color: var(--ut-ink);
}
.ut-conf.nlt-configurator .nlt-eco {
  margin: 0 0 14px;
  font-family: var(--ut-font-body);
  font-size: 12px;
}
.ut-conf.nlt-configurator h3.nlt-title {
  margin: 0 0 4px;
  font-family: var(--ut-font-head);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -.015em;
  text-transform: none;
  color: var(--ut-ink);
}
.ut-conf.nlt-configurator .nlt-car-name {
  margin: 0 0 18px;
  font-size: 14px;
  line-height: 1.35;
  color: var(--ut-muted);
}

/* 8.2 Tipo di cliente: selettore a due segmenti su una riga */
.ut-conf.nlt-configurator .nlt-radio-group {
  display: flex;
  flex-direction: row;
  gap: 4px;
  margin: 0 0 18px;
  padding: 4px;
  border-radius: var(--ut-r-pill);
  background: var(--ut-surface-cool);
}
.ut-conf.nlt-configurator .nlt-radio-group .nlt-radio-label {
  position: relative;
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 40px;
  margin: 0;
  padding: 0 12px;
  border-radius: var(--ut-r-pill);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.15;
  color: var(--ut-muted);
  text-align: center;
  white-space: nowrap;
  transition: background-color .2s ease, color .2s ease, box-shadow .2s ease;
}
.ut-conf.nlt-configurator .nlt-radio-group .nlt-radio-label:hover {
  color: var(--ut-ink);
}
.ut-conf.nlt-configurator .nlt-radio-group .nlt-radio-label:has(.nlt-checked) {
  background: #fff;
  color: var(--ut-navy);
  box-shadow: 0 1px 4px rgba(10, 20, 42, .14);
}
/* lo span cliccabile del configuratore copre tutto il segmento */
.ut-conf.nlt-configurator .nlt-radio-group .nlt-radio-outer {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: auto;
  height: auto;
  margin: 0;
  border: 0;
  border-radius: inherit;
  background: transparent;
}
.ut-conf.nlt-configurator .nlt-radio-group .nlt-radio-inner {
  display: none !important;
}
.ut-conf.nlt-configurator .nlt-radio-group .nlt-radio-outer:focus-visible {
  outline: 2px solid var(--ut-navy);
  outline-offset: 2px;
}

/* 8.3 Anticipo */
.ut-conf.nlt-configurator .nlt-divider {
  margin: 0 0 16px;
  border: 0;
  border-top: 1px solid var(--ut-line);
}
.ut-conf.nlt-configurator .nlt-toggle-row {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 6px 12px;
  margin: 0 0 18px;
}
.ut-conf.nlt-configurator .nlt-toggle-left {
  gap: 10px;
  border-radius: var(--ut-r-pill);
}
.ut-conf.nlt-configurator .nlt-toggle-left:focus-visible {
  outline: 2px solid var(--ut-navy);
  outline-offset: 4px;
}
.ut-conf.nlt-configurator .nlt-toggle-track {
  width: 44px;
  height: 26px;
  border-radius: var(--ut-r-pill);
}
.ut-conf.nlt-configurator .nlt-toggle-thumb {
  top: 3px;
  left: 3px;
  width: 20px;
  height: 20px;
}
.ut-conf.nlt-configurator .nlt-toggle-track.nlt-toggle-on .nlt-toggle-thumb {
  left: 21px;
}
.ut-conf.nlt-configurator .nlt-toggle-label {
  font-size: 15px;
  font-weight: 600;
  color: var(--ut-ink);
  white-space: nowrap;
}
.ut-conf.nlt-configurator .nlt-anticipo-val {
  flex-basis: auto;
  padding: 0;
  font-size: 13px;
  color: var(--ut-muted);
  white-space: nowrap;
}

/* 8.4 Prezzo (con la riga della fascia) e richiesta, uno sotto l'altro */
.ut-conf.nlt-configurator .nlt-bottom {
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  overflow: visible;
}
.ut-conf.nlt-configurator .nlt-price-box {
  box-sizing: border-box;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 6px 10px;
  min-width: 0;
  padding: 16px 18px;
  border-radius: var(--ut-r-sm);
  background: var(--ut-surface-cool);
}
.ut-conf.nlt-configurator .nlt-price-num {
  margin: 0;
  font-family: var(--ut-font-body);
  font-size: 38px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.03em;
  color: var(--ut-navy);
  white-space: nowrap;
}
.ut-conf.nlt-configurator .nlt-price-note {
  font-size: 12px;
  font-weight: 600;
  color: var(--ut-success);
  white-space: nowrap;
}
.ut-conf.nlt-configurator .ut-conf-fascia {
  grid-column: 1 / -1;
  display: block;
  padding-top: 10px;
  border-top: 1px solid var(--ut-line-cool);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--ut-ink);
}
.ut-conf.nlt-configurator .nlt-cta-wrap {
  display: block;
  padding: 14px 0 0;
}
.ut-conf.nlt-configurator .nlt-cta-wrap .nlt-cta {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 52px;
  margin: 0;
  padding: 0 18px;
  border: 0;
  border-radius: var(--ut-r-pill);
  background: var(--ut-azione) !important;
  color: #fff !important;
  font-family: var(--ut-font-body);
  font-size: 16px;
  font-weight: 700;
  font-style: normal;
  line-height: 1;
  letter-spacing: 0;
  text-transform: none;
  white-space: nowrap;
  box-shadow: var(--ut-azione-ombra);
  transform: none;
  transition: background-color .2s ease, box-shadow .2s ease;
}
.ut-conf.nlt-configurator .nlt-cta-wrap .nlt-cta:hover,
.ut-conf.nlt-configurator .nlt-cta-wrap .nlt-cta:focus {
  background: var(--ut-azione-sopra) !important;
  color: #fff !important;
  box-shadow: 0 6px 18px rgba(4, 4, 1, .18);
  transform: none;
}
.ut-conf.nlt-configurator .nlt-cta-wrap .nlt-cta:focus-visible {
  outline: 2px solid var(--ut-navy);
  outline-offset: 3px;
}
.ut-conf.nlt-configurator .nlt-disclaimer {
  padding: 12px 0 18px;
  font-size: 12px;
  line-height: 1.4;
  color: var(--ut-muted);
}

/* 8.5 Modale del preventivo: stili in linea del modello, qui riportati
   al sito (font, raggi, colori). Solo aspetto: il JS la apre e la chiude.
   La modale sta dentro .car-single-sidebar (sticky, z-index 9999), che la
   chiude sotto il banner dei cookie (99999): mentre è aperta (classe messa
   da ux.js) la barra sale sopra tutto, sotto le finestre nuove. */
html.ut-conf-aperta .car-single-sidebar {
  z-index: 2147482000;
}
.ut-conf ~ [id$="_overlay"] {
  background: rgba(10, 20, 42, .62) !important;
}
.ut-conf ~ [id$="_overlay"] > div {
  border-radius: var(--ut-r-lg) !important;
  box-shadow: var(--ut-shadow-modal) !important;
  font-family: var(--ut-font-body) !important;
  color: var(--ut-ink);
}
.ut-conf ~ [id$="_overlay"] h3 {
  padding-right: 44px !important;
  font-family: var(--ut-font-head) !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: -.015em !important;
  color: var(--ut-ink) !important;
  text-transform: none !important;
}
.ut-conf ~ [id$="_overlay"] h3 + p,
.ut-conf ~ [id$="_overlay"] span[style*="text-transform:uppercase"] {
  color: var(--ut-muted) !important;
}
.ut-conf ~ [id$="_overlay"] [id$="_s_tipo"],
.ut-conf ~ [id$="_overlay"] [id$="_s_durata"],
.ut-conf ~ [id$="_overlay"] [id$="_s_km"],
.ut-conf ~ [id$="_overlay"] [id$="_s_anticipo"] {
  color: var(--ut-ink) !important;
}
.ut-conf ~ [id$="_overlay"] [id$="_s_prezzo"] {
  color: var(--ut-navy) !important;
  font-weight: 800 !important;
}
.ut-conf ~ [id$="_overlay"] div[style*="grid-template-columns"] {
  border-radius: var(--ut-r-md) !important;
}
.ut-conf ~ [id$="_overlay"] label {
  color: var(--ut-ink) !important;
}
.ut-conf ~ [id$="_overlay"] label span[style*="E8491D"] {
  color: var(--ut-accent-ink) !important;
}
.ut-conf ~ [id$="_overlay"] label[style*="display:flex"] {
  color: var(--ut-muted) !important;
}
.ut-conf ~ [id$="_overlay"] label a {
  color: var(--ut-navy) !important;
}
.ut-conf ~ [id$="_overlay"] input[type="text"],
.ut-conf ~ [id$="_overlay"] input[type="email"],
.ut-conf ~ [id$="_overlay"] input[type="tel"],
.ut-conf ~ [id$="_overlay"] textarea {
  min-height: 46px;
  border: 1px solid var(--ut-line) !important;
  border-radius: var(--ut-r-sm) !important;
  font-family: var(--ut-font-body) !important;
  font-size: 15px !important;
  color: var(--ut-ink) !important;
}
.ut-conf ~ [id$="_overlay"] input[type="text"]:focus,
.ut-conf ~ [id$="_overlay"] input[type="email"]:focus,
.ut-conf ~ [id$="_overlay"] input[type="tel"]:focus,
.ut-conf ~ [id$="_overlay"] textarea:focus {
  border-color: var(--ut-navy) !important;
  box-shadow: var(--ut-focus) !important;
}
.ut-conf ~ [id$="_overlay"] input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: var(--ut-navy);
}
.ut-conf ~ [id$="_overlay"] button[id$="_close"] {
  padding: 0 !important;
  background: var(--ut-surface-cool) !important;
  color: var(--ut-ink) !important;
  font-family: var(--ut-font-body) !important;
  font-size: 22px !important;
  text-transform: none !important;
}
.ut-conf ~ [id$="_overlay"] button[id$="_close"]:hover,
.ut-conf ~ [id$="_overlay"] button[id$="_close"]:focus {
  background: var(--ut-ink) !important;
  color: #fff !important;
}
.ut-conf ~ [id$="_overlay"] button[id$="_submit"] {
  min-height: 52px;
  border-radius: var(--ut-r-pill) !important;
  background: var(--ut-azione) !important;
  color: #fff !important;
  font-family: var(--ut-font-body) !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  font-style: normal !important;
  line-height: 1 !important;
  text-transform: none !important;
  box-shadow: var(--ut-azione-ombra) !important;
}
.ut-conf ~ [id$="_overlay"] button[id$="_submit"]:hover,
.ut-conf ~ [id$="_overlay"] button[id$="_submit"]:focus {
  background: var(--ut-azione-sopra) !important;
}
.ut-conf ~ [id$="_overlay"] button[id$="_submit"]:disabled {
  opacity: .6;
  cursor: progress !important;
}
.ut-conf ~ [id$="_overlay"] button:focus-visible,
.ut-conf ~ [id$="_overlay"] a:focus-visible {
  outline: 2px solid var(--ut-navy) !important;
  outline-offset: 3px !important;
}
/* 8.5 bis Messaggio del modulo (giro 3). Il configuratore scrive
   «Compila tutti i campi obbligatori.» (e gli altri esiti) in #…_msg, primo
   figlio del modulo: comparendo spingeva «Invia richiesta» in basso di 32..65
   px e un doppio clic o un doppio tocco cadeva sull'etichetta della privacy,
   spuntandola. Qui il messaggio sta sotto il pulsante, in un posto riservato
   sempre (anche vuoto o con display:none dal JS del configuratore): la
   modale non cambia altezza, niente sopra il pulsante cresce, il pulsante non
   si muove. Da 768 px il modulo è la griglia del §8.6 (order vale anche lì);
   sotto diventa una colonna flessibile con le stesse misure del blocco.
   ux.js aggiunge role=alert, segna i campi vuoti e, se il messaggio resta
   fuori dalla parte visibile della modale, lo porta in vista. Colori: il
   rosso #E8491D del modello sul suo fondo rosato faceva 3,5:1; qui 5,1:1
   (errore) e 5,2:1 (esito riuscito). */
.ut-conf ~ [id$="_overlay"] [id$="_form_wrap"]:not([style*="display:none"]):not([style*="display: none"]) {
  display: flex;
  flex-direction: column;
}
.ut-conf ~ [id$="_overlay"] [id$="_form_wrap"] > [id$="_msg"] {
  box-sizing: border-box;
  display: flex !important;
  order: 99;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  margin: 10px 0 0 !important;
  padding: 8px 14px !important;
  border-radius: var(--ut-r-sm) !important;
  background: rgba(217, 58, 58, .07) !important;
  color: #C22F2F !important;
  font-family: var(--ut-font-body) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  text-align: center;
}
.ut-conf ~ [id$="_overlay"] [id$="_form_wrap"] > [id$="_msg"][style*="46, 139, 87"] {
  background: rgba(46, 139, 87, .09) !important;
  color: #23744A !important;
}
.ut-conf ~ [id$="_overlay"] [id$="_form_wrap"] > [id$="_msg"]:empty,
.ut-conf ~ [id$="_overlay"] [id$="_form_wrap"] > [id$="_msg"][style*="display:none"],
.ut-conf ~ [id$="_overlay"] [id$="_form_wrap"] > [id$="_msg"][style*="display: none"] {
  visibility: hidden;
}
/* il posto del messaggio fa anche da margine basso del modulo */
.ut-conf ~ [id$="_overlay"] [id$="_form_wrap"]:has(> [id$="_msg"]) {
  padding-bottom: 16px !important;
}
/* campi obbligatori vuoti (aria-invalid da ux.js) e privacy non spuntata */
.ut-conf ~ [id$="_overlay"] input[aria-invalid="true"]:not([type="checkbox"]),
.ut-conf ~ [id$="_overlay"] textarea[aria-invalid="true"] {
  border-color: var(--ut-error) !important;
  box-shadow: 0 0 0 3px rgba(217, 58, 58, .12) !important;
}
.ut-conf ~ [id$="_overlay"] input[type="checkbox"][aria-invalid="true"] {
  outline: 2px solid var(--ut-error);
  outline-offset: 2px;
}
/* 8.6 Modale più compatta da 768 px in su (giro 2): a 1440×900 il riquadro
   (max 90vh = 810 px) era alto 930 e privacy e «Invia richiesta» restavano
   fuori vista. Riepilogo su una riga di quattro voci col canone accanto alla
   sua etichetta, email e telefono affiancati, note su due righe, margini
   più stretti. Sul telefono resta com'era (scorre, come ogni modulo lungo).
   Giro 3: margini ancora un poco più stretti per fare posto al messaggio
   sotto il pulsante, alta 691 px come prima del posto riservato. */
@media (min-width: 768px) {
  .ut-conf ~ [id$="_overlay"] > div {
    max-width: 560px !important;
  }
  .ut-conf ~ [id$="_overlay"] > div > div[style*="padding:28px 28px 0"] {
    padding: 20px 28px 0 !important;
  }
  .ut-conf ~ [id$="_overlay"] div[style*="grid-template-columns"] {
    grid-template-columns: repeat(4, auto) !important;
    justify-content: space-between;
    gap: 10px 16px !important;
    margin: 14px 28px !important;
    padding: 14px 18px !important;
  }
  .ut-conf ~ [id$="_overlay"] div[style*="grid-template-columns"] > div > span:first-child {
    margin-bottom: 3px !important;
    white-space: nowrap;
  }
  .ut-conf ~ [id$="_overlay"] div[style*="grid-template-columns"] > div > span[id] {
    white-space: nowrap;
  }
  /* canone: etichetta a sinistra, cifra a destra, sulla stessa riga */
  .ut-conf ~ [id$="_overlay"] div[style*="grid-template-columns"] > div[style*="grid-column"] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-top: 2px !important;
    padding-top: 10px !important;
    text-align: left !important;
  }
  .ut-conf ~ [id$="_overlay"] div[style*="grid-template-columns"] > div[style*="grid-column"] > span:first-child {
    margin-bottom: 0 !important;
  }
  .ut-conf ~ [id$="_overlay"] [id$="_s_prezzo"] {
    font-size: 26px !important;
    line-height: 1.1 !important;
  }
  .ut-conf ~ [id$="_overlay"] [id$="_form_wrap"]:not([style*="display:none"]):not([style*="display: none"]) {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 14px;
    padding: 0 28px 14px !important;         /* il resto lo fa il posto del messaggio (§8.5 bis) */
  }
  .ut-conf ~ [id$="_overlay"] [id$="_form_wrap"] > * {
    grid-column: 1 / -1;
  }
  .ut-conf ~ [id$="_overlay"] [id$="_form_wrap"] > div:has(> input[type="email"]),
  .ut-conf ~ [id$="_overlay"] [id$="_form_wrap"] > div:has(> input[type="tel"]) {
    grid-column: auto;
  }
  /* il messaggio no: ha il suo posto (§8.5 bis), e dopo il primo messaggio
     lo stile riscritto dal JS non avrebbe più «margin-bottom:14px» */
  .ut-conf ~ [id$="_overlay"] [id$="_form_wrap"] > div[style*="margin-bottom:14px"]:not([id$="_msg"]) {
    margin-bottom: 10px !important;
  }
  .ut-conf ~ [id$="_overlay"] [id$="_form_wrap"] label[style*="display:block"] {
    margin-bottom: 4px !important;
  }
  .ut-conf ~ [id$="_overlay"] input[type="text"],
  .ut-conf ~ [id$="_overlay"] input[type="email"],
  .ut-conf ~ [id$="_overlay"] input[type="tel"] {
    min-height: 44px;
    padding-top: 9px !important;
    padding-bottom: 9px !important;
  }
  /* note: due righe */
  .ut-conf ~ [id$="_overlay"] textarea {
    height: 60px;
    min-height: 60px !important;
    padding-top: 9px !important;
    padding-bottom: 9px !important;
  }
  .ut-conf ~ [id$="_overlay"] [id$="_form_wrap"] > label[style*="display:flex"] {
    margin-bottom: 12px !important;
  }
  /* col posto del messaggio la modale resta sotto i 691 px: a 1366×768 e a
     1024×768 (90vh) sta tutta in vista, messaggio compreso, senza scorrere */
  .ut-conf ~ [id$="_overlay"] [id$="_form_wrap"] > [id$="_msg"] {
    min-height: 40px;
    margin-top: 8px !important;
  }
}
/* Finestre basse (1280×720 e simili, 90vh = 648 px): la modale scorreva e il
   messaggio, fuori vista sotto il pulsante, faceva scorrere la modale e
   salire il pulsante di 38 px. Qui è alta 645: sta tutta in vista. */
@media (min-width: 768px) and (max-height: 760px) {
  .ut-conf ~ [id$="_overlay"] > div > div[style*="padding:28px 28px 0"] {
    padding: 16px 28px 0 !important;
  }
  .ut-conf ~ [id$="_overlay"] div[style*="grid-template-columns"] {
    margin: 10px 28px !important;
    padding: 10px 18px !important;
  }
  .ut-conf ~ [id$="_overlay"] [id$="_form_wrap"] > div[style*="margin-bottom:14px"]:not([id$="_msg"]) {
    margin-bottom: 8px !important;
  }
  .ut-conf ~ [id$="_overlay"] textarea {
    height: 44px;
    min-height: 44px !important;
  }
  .ut-conf ~ [id$="_overlay"] [id$="_form_wrap"] > label[style*="display:flex"] {
    margin-bottom: 8px !important;
  }
}


/* ==========================================================================
   12. Caratteristiche della scheda (richiesta del titolare, 22 set 2026)
   Il riquadro tratteggiato del tema (contenitore 61738ff con le coppie
   etichetta/valore, CONTRATTO-veicolo §2.4) diventa una griglia di tessere
   sulla superficie fredda del sito, ognuna con l'icona della voce (la mette
   ux.js, modulo «schede», da data-ut-spec) e il valore in evidenza. Il
   titolo sopra (af4e08d) si allinea a sinistra: nome del modello in
   Epilogue, versione in riga sotto, in tono (span messo da ux.js). Solo CSS
   e JS: il markup del render non cambia, il mirror non passa di qui.
   Specificità: il tema scrive la larghezza di ogni box per id (0,3,0) e
   build/render mettono uno style in linea sull'ultima coppia dispari:
   width e max-width vanno con !important.
   ========================================================================== */
.ut-js .elementor-element-af4e08d.section-title {
  --align-self: flex-start;     /* il tema centra il widget stringendolo: qui prende tutta la riga */
  align-self: flex-start !important;
  width: 100%;
  max-width: 100%;
  text-align: left;
  margin-bottom: 18px;
}
.ut-js .elementor-element-af4e08d .elementor-heading-title {
  font-family: var(--ut-font-head) !important;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--ut-ink);
  letter-spacing: -.01em;
}
.ut-js .elementor-element-af4e08d .elementor-heading-title .ut-spec__versione {
  display: block;
  margin-top: 6px;
  font-family: var(--ut-font-body);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.45;
  color: var(--ut-text);
  letter-spacing: 0;
}
.ut-js .elementor-element-61738ff.e-con {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 14px !important;
  margin: 0 0 44px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0;
}
.ut-js .elementor-element-61738ff > .fleets-benefits-item.elementor-widget-icon-box {
  box-sizing: border-box;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 18px 18px 18px 20px;
  border-radius: var(--ut-r-md);
  background: var(--ut-surface-cool);
  border: 1px solid var(--ut-line-cool);
}
.ut-js .elementor-element-61738ff > .fleets-benefits-item .elementor-icon-box-wrapper {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  text-align: left;
}
.ut-js .elementor-element-61738ff .ut-spec__icona {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #fff;
  color: var(--ut-accent-ink);
  box-shadow: 0 1px 2px rgba(27, 59, 111, .08);
}
.ut-js .elementor-element-61738ff .ut-spec__icona svg {
  width: 20px;
  height: 20px;
}
.ut-js .elementor-element-61738ff > [data-ut-spec="optional"] .ut-spec__icona {
  color: var(--ut-success);
}
.ut-js .elementor-element-61738ff > .fleets-benefits-item .elementor-icon-box-content {
  min-width: 0;
  flex: 1 1 auto;
}
.ut-js .elementor-element-61738ff > .fleets-benefits-item .elementor-icon-box-title {
  margin: 0 0 4px !important;
  font-family: var(--ut-font-body) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ut-muted) !important;
}
.ut-js .elementor-element-61738ff > .fleets-benefits-item .elementor-icon-box-description {
  margin: 0 !important;
  font-family: var(--ut-font-body) !important;
  font-size: 17px !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  color: var(--ut-ink) !important;
  overflow-wrap: anywhere;
}


/* ==========================================================================
   13. Invito WhatsApp «Vuoi una configurazione diversa?» (richiesta del
   titolare, 22 set 2026)
   Al posto del banner con il testo dentro l'immagine, che non era nemmeno
   un link (wp-image-9551 nelle schede, wp-image-9975 nella home):
   modelli/cta-whatsapp.html, riempito da render.php
   (rnd_cta_whatsapp_scheda) e da build.py (monta_cta_whatsapp_home) al posto
   del solo widget dell'immagine, dentro il contenitore Elementor che resta
   (margini e rientri del tema). Stessa fascia scura delle altre: navy con il
   segno del marchio in trasparenza come la fascia del titolo (§2), raggio 30,
   occhiello con l'asterisco, pulsante arancio pieno come nel piede (§11.1)
   col glifo di WhatsApp nel tondo bianco. Testi a sinistra e pulsante a
   destra finché c'è posto (836 px nella colonna della scheda a 1440), sotto
   quando il riquadro è stretto (650 nella home a 1440, il telefono): flex
   con a capo, senza soglie. Specificità (0,2,0): il kit impone (0,1,1) su
   h2, h3 e a.
   ========================================================================== */
.ut-wa {
  --ut-w-px: clamp(22px, 3.4vw, 46px);
  --ut-w-py: clamp(26px, 3vw, 40px);
  --ut-w-testo: rgba(255, 255, 255, .78);          /* 12,9:1 sul navy */
  --ut-w-titolo: clamp(24px, calc(15px + 1.1vw), 30px);   /* «Vuoi una configurazione / diversa?» su due righe a 1440 */
  --ut-w-segno: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -84 308 265'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23fff' stop-opacity='.15'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='.02'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath fill='url(%23g)' d='M0 -84A84 84 0 0 1 0 84ZM308 -84A84 84 0 0 0 308 84ZM125 0H181A181 181 0 0 1 0 181V125A125 125 0 0 0 125 0ZM183 0A125 125 0 0 0 308 125V181A181 181 0 0 1 127 0Z'/%3E%3C/svg%3E");
  --ut-w-asterisco: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='3.5 2.58 12 12'%3E%3Cpath fill='%23FF3600' d='M12.3827 8.57776L15.4995 10.3489L14.0579 12.8066L10.9411 11.0354V14.5778H8.05793V11.0354L4.94109 12.8066L3.49951 10.3489L6.61632 8.57776L3.49951 6.80656L4.94109 4.34893L8.05793 6.12013V2.57776H10.9411V6.12013L14.0579 4.34895L15.4995 6.80659L12.3827 8.57776Z'/%3E%3C/svg%3E");
  --ut-w-glifo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23CC2E00' d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.885-9.885 9.885m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z'/%3E%3C/svg%3E");
  --ut-w-glifo-bianco: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.885-9.885 9.885m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z'/%3E%3C/svg%3E");
  position: relative;
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: var(--ut-w-py) var(--ut-w-px);
  border-radius: var(--ut-r-lg, 30px);
  overflow: hidden;
  isolation: isolate;
  color: #fff;
  font-family: var(--ut-font-body, 'DM Sans', sans-serif);
  text-align: left;
  background:
    var(--ut-w-segno) no-repeat right -34px top -26px / auto 230px,
    linear-gradient(100deg, var(--ut-navy-850, #040A25) 0%, var(--ut-navy-900, #0A142A) 52%, #0A2A6B 100%);
}
.ut-wa *,
.ut-wa *::before,
.ut-wa *::after {
  box-sizing: border-box;
}
.ut-wa__in {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 24px 40px;
}
.ut-wa__dire {
  flex: 1 1 340px;                 /* sotto i 340 px di testo il pulsante scende sotto */
  min-width: 0;
}
.ut-wa .ut-wa__occhiello {
  display: flex;
  align-items: center;
  gap: .7em;
  margin: 0 0 12px;
  font-family: var(--ut-font-head, 'Epilogue', sans-serif);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ut-accent, #FF3600);            /* 5,0:1 sul navy */
}
.ut-wa .ut-wa__occhiello::before {
  content: "";
  flex: 0 0 auto;
  width: 1.05em;
  height: 1.05em;
  background: var(--ut-w-asterisco) center / contain no-repeat;
}
.ut-wa .ut-wa__titolo {
  max-width: 24ch;
  margin: 0;
  padding: 0;
  font-family: var(--ut-font-head, 'Epilogue', sans-serif);
  font-size: var(--ut-w-titolo);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -.02em;
  color: #fff;
}
.ut-wa .ut-wa__testo {
  max-width: 52ch;
  margin: 12px 0 0;
  font-size: 16px;
  line-height: 1.55;
  color: var(--ut-w-testo);
}
.ut-wa a.ut-wa__cta {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  min-height: 56px;
  margin: 0;
  padding: 0 8px 0 26px;
  border: 0;
  border-radius: var(--ut-r-pill, 100px);
  background: var(--ut-azione, #CC2E00);
  color: #fff;
  font-family: var(--ut-font-body, 'DM Sans', sans-serif);
  font-size: 17px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  text-decoration: none;
  box-shadow: var(--ut-azione-ombra, 0 6px 18px rgba(204, 46, 0, .22));
  transition: background-color .25s ease, color .25s ease, box-shadow .25s ease;
}
.ut-wa a.ut-wa__cta::after {
  content: "";
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #fff var(--ut-w-glifo) center / 20px 20px no-repeat;
  transition: background-color .25s ease;
}
/* sul navy il passaggio nero del sito sparirebbe: qui il pulsante si accende in bianco, come nel piede */
.ut-wa a.ut-wa__cta:hover,
.ut-wa a.ut-wa__cta:focus-visible {
  background: #fff;
  color: var(--ut-ink, #040401);
  box-shadow: 0 10px 28px rgba(0, 0, 0, .35);
}
.ut-wa a.ut-wa__cta:hover::after,
.ut-wa a.ut-wa__cta:focus-visible::after {
  background: var(--ut-azione, #CC2E00) var(--ut-w-glifo-bianco) center / 20px 20px no-repeat;
}
.ut-wa a.ut-wa__cta:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 4px;
}


/* ==========================================================================
   11. Piede di pagina (modelli/CONTRATTO-footer.md)
   Sostituisce il modello Elementor 82 in produzione (build.py per le
   statiche, render.php per archivi e schede). Stessa fascia scura delle
   altre fasce del sito: navy-900, raggio 46, margine laterale 50 / 20 / 0
   e angoli vivi sotto i 1025 px, come la fascia del titolo (§2).
   Composizione, dall'alto: la chiusura (occhiello, slogan del marchio,
   due righe di presentazione, il pulsante), le quattro colonne (marchio e
   orari, Parco auto, Il sito, Contatti), il registro societario, la riga
   legale. I blocchi orari, PEC e social ci sono solo se azienda.json li ha.
   Specificità: tutto sotto .ut-piede, (0,2,0) o più; il kit impone (0,1,1)
   su h2, a e button.
   ========================================================================== */
.ut-piede {
  --ut-p-m: 50px;                                   /* margine laterale, come --ut-f-m */
  --ut-p-r: var(--ut-r-xl, 46px);                   /* raggio, come --ut-f-r */
  --ut-p-px: clamp(20px, 3.75vw, 54px);             /* rientro interno, come --ut-f-px */
  --ut-p-py: clamp(44px, 5vw, 72px);                /* respiro in alto */
  --ut-p-testo: rgba(255, 255, 255, .78);           /* 12,9:1 sul navy */
  --ut-p-tenue: rgba(255, 255, 255, .6);            /* 8,6:1 sul navy: etichette e legale */
  --ut-p-linea: rgba(255, 255, 255, .13);
  --ut-p-slogan: clamp(30px, calc(12px + 2.5vw), 48px);
  --ut-p-freccia: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M11.665 3.976 1.641 14 0 12.353 10.017 2.329H1.184V0h12.811v12.811h-2.33V3.976Z' fill='%23CC2E00'/%3E%3C/svg%3E");
  --ut-p-freccia-bianca: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M11.665 3.976 1.641 14 0 12.353 10.017 2.329H1.184V0h12.811v12.811h-2.33V3.976Z' fill='%23fff'/%3E%3C/svg%3E");
  --ut-p-asterisco: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='3.5 2.58 12 12'%3E%3Cpath fill='%23FF3600' d='M12.3827 8.57776L15.4995 10.3489L14.0579 12.8066L10.9411 11.0354V14.5778H8.05793V11.0354L4.94109 12.8066L3.49951 10.3489L6.61632 8.57776L3.49951 6.80656L4.94109 4.34893L8.05793 6.12013V2.57776H10.9411V6.12013L14.0579 4.34895L15.4995 6.80659L12.3827 8.57776Z'/%3E%3C/svg%3E");
  position: relative;
  box-sizing: border-box;
  margin: 0;
  padding: 0 var(--ut-p-m) var(--ut-p-m);
  font-family: var(--ut-font-body, 'DM Sans', sans-serif);
  font-size: 15px;
  line-height: 1.5;
  color: #fff;
}
.ut-piede *,
.ut-piede *::before,
.ut-piede *::after {
  box-sizing: border-box;
}
.ut-piede__fascia {
  max-width: 1820px;
  margin: 0 auto;
  border-radius: var(--ut-p-r);
  background: var(--ut-navy-900, #0A142A);
  overflow: hidden;
}
.ut-piede__in {
  max-width: calc(1300px + 2 * var(--ut-p-px));
  margin: 0 auto;
  padding: var(--ut-p-py) var(--ut-p-px) 40px;
}

/* 11.1 La chiusura: occhiello, slogan, presentazione e pulsante */
.ut-piede__apertura {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  column-gap: 48px;
  row-gap: 28px;
  padding-bottom: clamp(36px, 4vw, 56px);
  border-bottom: 1px solid var(--ut-p-linea);
}
.ut-piede .ut-piede__occhiello {
  display: flex;
  align-items: center;
  gap: .7em;
  margin: 0 0 18px;
  font-family: var(--ut-font-head, 'Epilogue', sans-serif);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ut-accent, #FF3600);            /* 5,0:1 sul navy */
}
.ut-piede .ut-piede__occhiello::before {
  content: "";
  flex: 0 0 auto;
  width: 1.05em;
  height: 1.05em;
  background: var(--ut-p-asterisco) center / contain no-repeat;
}
.ut-piede .ut-piede__slogan {
  max-width: 21ch;                                  /* due righe, come nella hero: «Sempre alla guida di / una nuova auto.» */
  margin: 0;
  font-family: var(--ut-font-head, 'Epilogue', sans-serif);
  font-size: var(--ut-p-slogan);
  font-weight: 700;
  line-height: 1.06;
  letter-spacing: -.02em;
  color: #fff;
}
.ut-piede .ut-piede__lead {
  max-width: 56ch;
  margin: 22px 0 0;
  font-size: 17px;
  line-height: 1.6;
  color: var(--ut-p-testo);
}
.ut-piede__fare {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
}
.ut-piede a.ut-piede__cta {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  min-height: 56px;
  padding: 0 8px 0 26px;
  border-radius: var(--ut-r-pill, 100px);
  background: var(--ut-azione, #CC2E00);
  color: #fff;
  font-family: var(--ut-font-body, 'DM Sans', sans-serif);
  font-size: 17px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  text-decoration: none;
  box-shadow: var(--ut-azione-ombra, 0 6px 18px rgba(204, 46, 0, .22));
  transition: background-color .25s ease, color .25s ease, box-shadow .25s ease;
}
.ut-piede a.ut-piede__cta::after {
  content: "";
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #fff var(--ut-p-freccia) center / 13px 13px no-repeat;
  transition: transform .35s cubic-bezier(.2, .7, .2, 1), background-color .25s ease;
}
/* sul navy il passaggio nero del sito sparirebbe: qui il pulsante si accende in bianco */
.ut-piede a.ut-piede__cta:hover,
.ut-piede a.ut-piede__cta:focus-visible {
  background: #fff;
  color: var(--ut-ink, #040401);
  box-shadow: 0 10px 28px rgba(0, 0, 0, .35);
}
.ut-piede a.ut-piede__cta:hover::after,
.ut-piede a.ut-piede__cta:focus-visible::after {
  background: var(--ut-azione, #CC2E00) var(--ut-p-freccia-bianca) center / 13px 13px no-repeat;
  transform: rotate(45deg);
}
.ut-piede a.ut-piede__cta:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 4px;
}
.ut-piede .ut-piede__oppure {
  margin: 0;
  font-size: 14px;
  color: var(--ut-p-tenue);
}
.ut-piede .ut-piede__oppure a {
  color: #fff;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: rgba(255, 255, 255, .35);
  text-underline-offset: 3px;
}
.ut-piede .ut-piede__oppure a:hover {
  text-decoration-color: var(--ut-accent, #FF3600);
}

/* 11.2 Le quattro colonne */
.ut-piede__colonne {
  display: grid;
  grid-template-columns: 1.3fr .9fr .9fr 1.2fr;
  gap: 40px clamp(24px, 3vw, 56px);
  padding: clamp(36px, 4vw, 56px) 0;
  border-bottom: 1px solid var(--ut-p-linea);
}
.ut-piede .ut-piede__titolo,
.ut-piede .ut-piede__etichetta {
  display: block;
  margin: 0;
  font-family: var(--ut-font-head, 'Epilogue', sans-serif);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ut-p-tenue);
}
.ut-piede .ut-piede__titolo {
  margin-bottom: 18px;
}
.ut-piede .ut-piede__logo {
  display: inline-block;
  line-height: 0;
}
.ut-piede .ut-piede__logo img {
  width: 175px;
  height: auto;
}
.ut-piede .ut-piede__logo:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 6px;
  border-radius: 4px;
}
.ut-piede .ut-piede__chi {
  max-width: 30ch;
  margin: 20px 0 0;
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--ut-p-testo);
}
.ut-piede__orari {
  margin-top: 24px;
}
.ut-piede .ut-piede__orari-righe {
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
  font-size: 14.5px;
  line-height: 1.55;
  color: #fff;
}
.ut-piede .ut-piede__orari-righe li + li {
  margin-top: 4px;
}
.ut-piede .ut-piede__nav ul {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ut-piede .ut-piede__nav a {
  display: inline-block;
  padding: 2px 0;
  border-bottom: 1px solid transparent;
  font-size: 15px;
  line-height: 1.45;
  color: rgba(255, 255, 255, .9);
  text-decoration: none;
  transition: color .2s ease, border-color .2s ease;
}
.ut-piede .ut-piede__nav a:hover {
  color: #fff;
  border-bottom-color: var(--ut-accent, #FF3600);
}
.ut-piede .ut-piede__nav a:focus-visible,
.ut-piede .ut-piede__canale:focus-visible,
.ut-piede .ut-piede__documenti a:focus-visible,
.ut-piede .ut-piede__documenti button:focus-visible,
.ut-piede .ut-piede__credito a:focus-visible,
.ut-piede .ut-piede__social a:focus-visible {
  outline: 2px solid var(--ut-accent, #FF3600);
  outline-offset: 3px;
  border-radius: 2px;
}
.ut-piede .ut-piede__recapiti {
  display: grid;
  gap: 16px;
  margin: 0;
  font-style: normal;
  line-height: inherit;
}
.ut-piede a.ut-piede__canale {
  display: grid;
  gap: 3px;
  justify-items: start;
  color: #fff;
  text-decoration: none;
}
.ut-piede .ut-piede__valore {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  border-bottom: 1px solid transparent;
  transition: border-color .2s ease;
}
.ut-piede a.ut-piede__canale:hover .ut-piede__valore {
  border-bottom-color: var(--ut-accent, #FF3600);
}
.ut-piede .ut-piede__apri {
  margin-top: 2px;
  font-size: 13px;
  font-weight: 600;
  color: var(--ut-accent, #FF3600);
}
.ut-piede .ut-piede__social {
  display: flex;
  gap: 10px;
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
}
.ut-piede .ut-piede__social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 50%;
  color: #fff;
  transition: border-color .2s ease, background-color .2s ease;
}
.ut-piede .ut-piede__social a:hover {
  border-color: var(--ut-accent, #FF3600);
  background: rgba(255, 54, 0, .12);
}
.ut-piede .ut-piede__social svg {
  width: 18px;
  height: 18px;
}

/* 11.3 Il registro societario: etichette piccole, valori tabellari */
.ut-piede .ut-piede__registro {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 40px;
  margin: 0;
  padding: 28px 0;
  border-bottom: 1px solid var(--ut-p-linea);
}
.ut-piede .ut-piede__registro > div {
  display: grid;
  gap: 3px;
}
.ut-piede .ut-piede__registro dt {
  font-family: var(--ut-font-head, 'Epilogue', sans-serif);
  font-size: 10.5px;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ut-p-tenue);
}
.ut-piede .ut-piede__registro dd {
  margin: 0;
  font-size: 14px;
  line-height: 1.4;
  color: rgba(255, 255, 255, .88);
  font-variant-numeric: tabular-nums;
}

/* 11.4 La riga legale */
.ut-piede__legale {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 28px;
  padding-top: 24px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--ut-p-tenue);
}
.ut-piede .ut-piede__copy,
.ut-piede .ut-piede__credito {
  margin: 0;
}
.ut-piede .ut-piede__documenti {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 22px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ut-piede .ut-piede__documenti a,
.ut-piede .ut-piede__documenti button {
  display: inline-block;
  margin: 0;
  padding: 0;
  border: 0;
  border-bottom: 1px solid transparent;
  border-radius: 0;
  background: none;
  font: inherit;
  line-height: inherit;
  color: rgba(255, 255, 255, .82);
  text-decoration: none;
  text-transform: none;
  letter-spacing: 0;
  cursor: pointer;
  transition: color .2s ease, border-color .2s ease;
}
.ut-piede .ut-piede__documenti a:hover,
.ut-piede .ut-piede__documenti button:hover {
  color: #fff;
  background: none;
  border-bottom-color: var(--ut-accent, #FF3600);
}
.ut-piede .ut-piede__credito a {
  color: rgba(255, 255, 255, .82);
  text-decoration: underline;
  text-decoration-color: rgba(255, 255, 255, .3);
  text-underline-offset: 3px;
}
.ut-piede .ut-piede__credito a:hover {
  color: #fff;
  text-decoration-color: var(--ut-accent, #FF3600);
}


/* ==========================================================================
   14. Velo di caricamento: tetto di un secondo (fase F4, 23 set 2026)

   Decisione del titolare: il velo del tema RESTA, con la sua animazione, ma
   con un tetto di circa un secondo. Oggi sparisce a `window.load`
   (`assets/js/function.js:593`, `$(".preloader").fadeOut(600)`): su una rete
   lenta misurata (562,5 ms di latenza, 1,47 Mbit/s, CPU 4x) copriva la home
   per 26,5 s e i contatti per 11,1 s, e SENZA JavaScript non spariva mai
   (difetto gia' segnalato nel CONTRATTO-ux §14.5).

   Qui il tetto e' solo CSS, quindi vale anche senza JavaScript: a 700 ms il
   velo comincia a sfumare e a 1100 ms non c'e' piu'. Chi arriva prima vince:
   se `window.load` scatta a 300 ms, il `fadeOut` del tema finisce a 900 ms e
   mette `display: none` in linea, che batte tutto quello che c'e' qui (una
   animazione non disegna niente su un elemento che non e' nel flusso).
   L'animazione del cerchio (`.loading`) non si tocca: e' quella del tema.

   `pointer-events: none` da subito sul velo gia' sfumato: finche' c'e', non
   deve intercettare un tocco su quello che si vede sotto.

   Niente CLS: `.preloader` e' `position: fixed` a tutto schermo, non occupa
   spazio nel flusso, e togliendolo sotto non si sposta niente (misurato).
   ========================================================================== */
@keyframes ut-velo-via {
  to {
    opacity: 0;
    visibility: hidden;
  }
}
body > .preloader {
  animation: ut-velo-via 400ms ease 700ms forwards;
}
body > .preloader,
body > .preloader * {
  pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
  /* niente sfumatura: il velo sparisce e basta, allo stesso momento */
  body > .preloader {
    animation-duration: 1ms;
    animation-delay: 1099ms;
  }
}


/* ==========================================================================
   9. Movimento ridotto
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  /* il titolo animato lettera per lettera (SplitText del tema) resta fermo */
  .elementor :is(.elementor-element-529a6c8, .elementor-element-6174ccc, .elementor-element-7ff3725, .elementor-element-2a4a8cf, .elementor-element-41df74a).e-con.bg-section .elementor-heading-title div {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }
  .elementor-6626 a.ut-preventivo-mobile {
    transition: none !important;
  }
  /* 5. card: niente ingrandimento della foto */
  .ut-card,
  .ut-card .image-box a img,
  .ut-card .perfect-fleet-title h2 a {
    transition: none !important;
  }
  .ut-card:hover .image-box a img {
    transform: none;
  }
  /* 6. barra laterale */
  .page-fleets .fleets-sidebar .ut-marche .ut-marca,
  .page-fleets .fleets-sidebar .ut-filtri-apri svg {
    transition: none !important;
  }
  /* 6.7 scroll infinito: la barra non scorre, il giro pulsa piano invece di girare */
  .page-fleets .ut-altre .ut-altre__riempi,
  .page-fleets .ut-altre button.ut-altre__piu,
  .page-fleets .ut-altre button.ut-altre__riprova {
    transition: none !important;
  }
  .page-fleets .ut-altre .ut-altre__giro {
    border-right-color: currentColor;
    animation: ut-pulsa 1.6s ease-in-out infinite;
  }
  @keyframes ut-pulsa {
    50% { opacity: .35; }
  }
  /* 7. galleria: nessuno scorrimento animato (lo decide anche ux.js) */
  .ut-galleria ul.ut-galleria__nastro {
    scroll-behavior: auto;
  }
  .ut-galleria .ut-galleria__vista button,
  .ut-galleria .ut-galleria__mini {
    transition: none !important;
  }
  /* 8. configuratore */
  .ut-conf.nlt-configurator .nlt-radio-label,
  .ut-conf.nlt-configurator .nlt-toggle-track,
  .ut-conf.nlt-configurator .nlt-toggle-thumb,
  .ut-conf.nlt-configurator .nlt-cta {
    transition: none !important;
  }
  .ut-conf ~ [id$="_overlay"] > div {
    animation: none !important;
  }
  /* 11. piede: niente transizioni, la freccia del pulsante non ruota */
  .ut-piede a.ut-piede__cta,
  .ut-piede a.ut-piede__cta::after,
  .ut-piede .ut-piede__nav a,
  .ut-piede .ut-piede__valore,
  .ut-piede .ut-piede__social a,
  .ut-piede .ut-piede__documenti a,
  .ut-piede .ut-piede__documenti button {
    transition: none;
  }
  .ut-piede a.ut-piede__cta:hover::after,
  .ut-piede a.ut-piede__cta:focus-visible::after {
    transform: none;
  }
}


/* ==========================================================================
   10. Regole per larghezza (in ordine decrescente)
   ========================================================================== */

/* ---- oltre 1820 px ---- */
@media (min-width: 1821px) {
  /* 2. fascia: 1820 px al centro, come fa il tema (il contenitore Elementor è già largo 1820) */
  .elementor :is(.elementor-element-529a6c8, .elementor-element-6174ccc, .elementor-element-7ff3725, .elementor-element-2a4a8cf, .elementor-element-41df74a).e-con.bg-section,
  body .page-header.background-section {
    --ut-f-m: 0px;
  }
}

/* ---- fino a 1366 px ---- */
@media (max-width: 1366px) {
  /* 2. fascia: margini come hero, sezioni e footer del sito */
  .elementor :is(.elementor-element-529a6c8, .elementor-element-6174ccc, .elementor-element-7ff3725, .elementor-element-2a4a8cf, .elementor-element-41df74a).e-con.bg-section,
  body .page-header.background-section {
    --ut-f-m: 20px;
  }

  /* 11. piede: margine laterale 20 px, come la fascia del titolo */
  .ut-piede {
    --ut-p-m: 20px;
  }
}

/* ---- fino a 1199 px ---- */
@media (max-width: 1199px) {
  /* 6. barra laterale stretta (186 px a 1024): margini interni ridotti */
  .page-fleets .fleets-sidebar aside.widget {
    padding: 10px;
  }
  .page-fleets .fleets-sidebar .uniteam-sort,
  .page-fleets .fleets-sidebar .uniteam-pf,
  .page-fleets .fleets-sidebar form.ut-marche {
    padding: 14px 12px;
  }
  .page-fleets .fleets-sidebar .uniteam-sort select.uniteam-sort__select {
    padding: 0 30px 0 12px;
    background-position: right 12px center;
    font-size: 14px;
  }
  .page-fleets .fleets-sidebar .uniteam-pf .uniteam-pf__inputs input {
    padding: 0 10px;
    font-size: 14px;
  }
  .page-fleets .fleets-sidebar .uniteam-pf .uniteam-pf__actions {
    gap: 10px;
  }
  .page-fleets .fleets-sidebar .uniteam-pf .uniteam-pf__actions .uniteam-pf__apply {
    padding: 0 14px;
  }
  .page-fleets .fleets-sidebar .ut-marche .ut-marca {
    min-height: 34px;
    padding: 5px 10px 5px 11px;
    font-size: 13px;
  }

  /* 8. configuratore: colonna stretta (280 px a 1200, 211 a 992), più spazio utile */
  .car-single-sidebar aside.widget:has(.ut-conf) {
    padding: 12px;
  }
  .ut-conf.nlt-configurator {
    padding: 20px 16px 0;
  }
  .ut-conf.nlt-configurator h3.nlt-title {
    font-size: 20px;
  }
  .ut-conf.nlt-configurator .nlt-radio-group .nlt-radio-label {
    padding: 0 8px;
    font-size: 13px;
  }
  .ut-conf.nlt-configurator .nlt-price-box {
    padding: 14px;
  }
  .ut-conf.nlt-configurator .nlt-price-num {
    font-size: 32px;
  }
  .ut-conf.nlt-configurator .ut-conf-fascia {
    font-size: 13px;
  }

  /* 11. piede: quattro colonne più strette, presentazione a 16 px */
  .ut-piede__colonne {
    grid-template-columns: 1.1fr 1fr 1fr 1.15fr;
  }
  .ut-piede .ut-piede__lead {
    font-size: 16px;
  }
}

/* ---- fino a 1024 px ---- */
@media (max-width: 1024px) {
  /* 2. fascia: angoli vivi, come il resto del sito sotto i 1025 px */
  .elementor :is(.elementor-element-529a6c8, .elementor-element-6174ccc, .elementor-element-7ff3725, .elementor-element-2a4a8cf, .elementor-element-41df74a).e-con.bg-section,
  body .page-header.background-section {
    --ut-f-r: 0px;
  }

  /* 3. header: pulsante «Preventivo» accanto all'hamburger */
  /* il logo tiene la sua larghezza (--width di Elementor) finché c'è posto, poi si stringe */
  .ut-js .elementor-6626 .ut-riga-preventivo > .elementor-element.elementor-element-4b6cc83 {
    flex: 1 1 0% !important;
    width: auto !important;
    max-width: var(--width, 100%);
    min-width: 0;
  }
  .ut-js .elementor-6626 .elementor-element.elementor-element-35a01c7.ut-con-preventivo {
    --width: auto;
    flex: 0 0 auto !important;
    width: auto !important;
    margin-left: auto !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 12px;
  }
  .ut-js .elementor-6626 .elementor-element.elementor-element-35a01c7.ut-con-preventivo > .elementor-widget {
    width: auto;
    margin: 0 !important;
  }
  .elementor-6626 a.ut-preventivo-mobile {
    box-sizing: border-box;
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    margin: 0;
    padding: 0 18px;
    border-radius: var(--ut-r-pill);
    background: var(--ut-azione);
    color: #fff;
    font-family: var(--ut-font-body);
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .06em;
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color .25s ease;
  }
  .elementor-6626 a.ut-preventivo-mobile:hover,
  .elementor-6626 a.ut-preventivo-mobile:active {
    background: var(--ut-azione-sopra);
    color: #fff;
  }
  .elementor-6626 a.ut-preventivo-mobile:focus-visible {
    outline: 2px solid var(--ut-navy);
    outline-offset: 3px;
  }

  /* 11. piede: angoli vivi, come la fascia del titolo */
  .ut-piede {
    --ut-p-r: 0px;
  }
}

/* ---- fino a 991 px ---- */
@media (max-width: 991px) {
  /* 2. fascia: a tutta larghezza */
  .elementor :is(.elementor-element-529a6c8, .elementor-element-6174ccc, .elementor-element-7ff3725, .elementor-element-2a4a8cf, .elementor-element-41df74a).e-con.bg-section,
  body .page-header.background-section {
    --ut-f-m: 0px;
  }

  /* 6. barra laterale: non è più sticky, misure piene */
  .page-fleets .fleets-sidebar {
    border-radius: 0;
  }
  .page-fleets .fleets-sidebar aside.widget {
    padding: 20px;
  }
  .page-fleets .fleets-sidebar .uniteam-sort,
  .page-fleets .fleets-sidebar .uniteam-pf,
  .page-fleets .fleets-sidebar form.ut-marche {
    padding: 18px;
  }
  .page-fleets .fleets-sidebar .uniteam-sort select.uniteam-sort__select {
    padding: 0 40px 0 14px;
    background-position: right 16px center;
    font-size: 15px;
  }
  .page-fleets .fleets-sidebar .uniteam-pf .uniteam-pf__inputs input {
    padding: 0 12px;
    font-size: 15px;
  }
  .page-fleets .fleets-sidebar .uniteam-pf .uniteam-pf__actions .uniteam-pf__apply {
    padding: 0 20px;
  }
  .page-fleets .fleets-sidebar .ut-marche .ut-marca {
    min-height: 36px;
    padding: 6px 12px 6px 13px;
    font-size: 14px;
  }
  /* 6. barra laterale: dietro il pulsante «Filtra e ordina» (con JS) */
  .ut-js .page-fleets .fleets-sidebar .ut-filtri-apri {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 54px;
    margin: 0 0 24px;
    padding: 0 20px 0 22px;
    border: 1px solid var(--ut-line);
    border-radius: var(--ut-r-pill);
    background: var(--ut-cream);
    color: var(--ut-ink);
    font-family: var(--ut-font-body);
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0;
    text-transform: none;
    box-shadow: none;
    cursor: pointer;
  }
  .ut-js .page-fleets .fleets-sidebar .ut-filtri-apri:hover,
  .ut-js .page-fleets .fleets-sidebar .ut-filtri-apri:focus {
    border-color: var(--ut-navy);
    background: var(--ut-cream);
    color: var(--ut-ink);
  }
  .ut-js .page-fleets .fleets-sidebar .ut-filtri-apri:focus-visible {
    outline: 2px solid var(--ut-navy);
    outline-offset: 3px;
  }
  .ut-js .page-fleets .fleets-sidebar .ut-filtri-apri .ut-filtri-apri__icona {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    color: var(--ut-accent-ink);
  }
  .ut-js .page-fleets .fleets-sidebar .ut-filtri-apri .ut-filtri-apri__conta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 24px;
    padding: 0 7px;
    box-sizing: border-box;
    border-radius: var(--ut-r-pill);
    background: var(--ut-navy);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
  }
  .ut-js .page-fleets .fleets-sidebar .ut-filtri-apri .ut-filtri-apri__freccia {
    flex: 0 0 auto;
    width: 14px;
    height: 14px;
    margin-left: auto;
    transition: transform .25s ease;
  }
  .ut-js .page-fleets .fleets-sidebar.ut-filtri--aperto .ut-filtri-apri .ut-filtri-apri__freccia {
    transform: rotate(180deg);
  }
  .ut-js .page-fleets .fleets-sidebar.ut-filtri:not(.ut-filtri--aperto) .ut-filtri-pannello {
    display: none;
  }
  /* Già alla prima pittura (giro 3). html.ut-js lo mette lo script nel head
     (uniteam-js-presto), prima che ux.js crei il pulsante: prima la barra si
     chiudeva solo allora e la griglia saliva di 390..1000 px (CLS 0,58 a 390,
     0,35 a 768). Il pannello è chiuso da subito e il posto del pulsante è
     già preso da un segnaposto con le stesse misure e lo stesso aspetto; ux.js
     mette il pulsante vero, il segnaposto sparisce, niente si muove.
     html.ut-filtri-riaperti (sempre dallo script nel head, dopo un filtro
     scelto col pannello aperto) lo tiene aperto fin dall'inizio. Senza :has()
     queste due regole cadono e resta il comportamento di prima. */
  .ut-js:not(.ut-filtri-riaperti) .page-fleets .fleets-sidebar:not(.ut-filtri):not(:has(> .ut-filtri-apri)) .sidebar-widget {
    display: none;
  }
  .ut-js .page-fleets .fleets-sidebar:not(:has(> .ut-filtri-apri))::before {
    content: "Filtra e ordina";
    content: "Filtra e ordina" / "";
    box-sizing: border-box;
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 54px;
    margin: 0 0 24px;
    padding: 0 20px 0 52px;
    border: 1px solid var(--ut-line);
    border-radius: var(--ut-r-pill);
    background:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23CC2E00' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h9M17 6h3M4 12h3M11 12h9M4 18h11M19 18h1M13 4v4M7 10v4M15 16v4'/%3E%3C/svg%3E") no-repeat left 22px center / 20px 20px,
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23040401' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 20px center / 14px 14px,
      var(--ut-cream);
    color: var(--ut-ink);
    font-family: var(--ut-font-body);
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
  }
  .ut-js.ut-filtri-riaperti .page-fleets .fleets-sidebar:not(:has(> .ut-filtri-apri))::before {
    background-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23CC2E00' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h9M17 6h3M4 12h3M11 12h9M4 18h11M19 18h1M13 4v4M7 10v4M15 16v4'/%3E%3C/svg%3E"),
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23040401' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 15l6-6 6 6'/%3E%3C/svg%3E");
  }
  .ut-js .page-fleets .fleets-sidebar .ut-filtri-pannello aside.widget {
    margin-bottom: 30px;
  }
  /* aperto su tablet: ordinamento e prezzo affiancati, marche sotto */
  .page-fleets .fleets-sidebar .custom-html-widget {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
  }
  .page-fleets .fleets-sidebar form.ut-marche {
    grid-column: 1 / -1;
  }

  /* 8. configuratore: fino a 520 px, al centro del riquadro rosato */
  .car-single-sidebar aside.widget:has(.ut-conf) {
    padding: 20px;
  }
  .ut-conf.nlt-configurator {
    margin: 0 auto;
    padding: 24px 24px 0;
  }
  .ut-conf.nlt-configurator h3.nlt-title {
    font-size: 22px;
  }
  .ut-conf.nlt-configurator .nlt-radio-group .nlt-radio-label {
    padding: 0 12px;
    font-size: 14px;
  }
  .ut-conf.nlt-configurator .nlt-price-box {
    padding: 16px 18px;
  }
  .ut-conf.nlt-configurator .nlt-price-num {
    font-size: 38px;
  }

  /* 7. scheda (decisione del titolare, 19 set 2026): su telefono e tablet
     prima la galleria, subito dopo il configuratore, poi il resto della
     scheda. La galleria sta cinque livelli dentro la colonna del contenuto
     (colonna, contenuto, Elementor, sezione, e-con-inner: blocchi e flex senza
     margini, bordi né padding propri): quei contenitori diventano
     display: contents, la galleria e i blocchi della scheda diventano figli
     diretti della riga, che va in colonna col gap di 20 px di Elementor. La
     galleria sale con order: -1, barra laterale e resto restano nell'ordine
     del markup (anche per Tab e lettori di schermo). Scambiare le due colonne
     intere avrebbe messo il configuratore dopo 3600 px di testo. Solo dove
     c'è la galleria nuova; senza :has resta l'ordine del tema. Da 992 px in
     su non cambia niente: la barra resta sticky. */
  .page-fleets-single > .container > .row:has(> .col-lg-8 .ut-galleria) {
    flex-direction: column;
    flex-wrap: nowrap;
    row-gap: 20px;
    margin-left: 0;
    margin-right: 0;
  }
  .page-fleets-single > .container > .row:has(> .col-lg-8 .ut-galleria) > .col-lg-4 {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
  }
  .page-fleets-single > .container > .row > .col-lg-8:has(.ut-galleria),
  .page-fleets-single .col-lg-8 > .fleets-single-content:has(.ut-galleria),
  .page-fleets-single .fleets-single-content > .elementor:has(.ut-galleria),
  .page-fleets-single .fleets-single-content > .elementor > .e-con:has(.ut-galleria),
  .page-fleets-single .fleets-single-content > .elementor > .e-con:has(.ut-galleria) > .e-con-inner {
    display: contents;
  }
  .page-fleets-single .fleets-single-content > .elementor > .e-con > .e-con-inner > .e-con:has(> .ut-galleria) {
    order: -1;
    margin-bottom: 10px;
  }
  /* il configuratore segue a 30 px dalle miniature (il tema mette 30 px sopra
     la barra, pensati per la fascia del titolo) */
  .page-fleets-single > .container > .row:has(> .col-lg-8 .ut-galleria) > .col-lg-4 .car-single-sidebar > .sidebar-widget {
    margin-top: 0;
  }
  /* la foto entra nella prima schermata anche in una finestra bassa e larga
     (a 991×800 la foto a tutta larghezza era alta 721 px): la larghezza non
     supera quella che l'altezza della finestra permette al 4:3, sotto header
     e fascia (circa 380 px). Telefoni e tablet in verticale restano a tutta
     larghezza; mai sotto i 480 px. */
  .page-fleets-single .e-con:has(> .ut-galleria) > .ut-galleria {
    width: 100%;
    max-width: max(480px, calc((100vh - 380px) * 4 / 3));
    max-width: max(480px, calc((100svh - 380px) * 4 / 3));
    margin-left: auto;
    margin-right: auto;
  }

  /* 11. piede: a tutta larghezza; chiusura in colonna; tre colonne e il marchio sotto, come un colophon; riga legale in colonna */
  .ut-piede {
    --ut-p-m: 0px;
    padding-bottom: 0;
  }
  .ut-piede__apertura {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
  }
  /* da 768 a 991: tre colonne (contatti, parco auto, il sito) e il marchio
     sotto, su tutta la riga, come un colophon */
  .ut-piede__colonne {
    grid-template-columns: 1.15fr 1fr 1fr;
    gap: 36px 28px;
  }
  .ut-piede__contatti { order: 1; }
  .ut-piede__nav       { order: 2; }
  .ut-piede__marchio {
    order: 4;
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px 40px;
    padding-top: 8px;
    border-top: 1px solid var(--ut-p-linea);
  }
  .ut-piede .ut-piede__chi {
    margin: 0;
  }
  .ut-piede__orari {
    margin: 0;
    flex-basis: 100%;
  }
  /* la riga legale in colonna, allineata a sinistra (©, documenti, credito);
     a destra restano liberi 96 px per il pulsante WhatsApp (56 px a 30 dal
     bordo). In riga, fra 768 e 991, il credito andava a capo da solo sotto il
     © e «Gestisci i cookie» finiva sotto il pulsante WhatsApp */
  .ut-piede__legale {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    padding-right: 96px;
  }
}

/* ---- fino a 767 px ---- */
@media (max-width: 767px) {
  /* 2. fascia: il segno si sposta verso il bordo, dietro al titolo resta appena accennato */
  .elementor :is(.elementor-element-529a6c8, .elementor-element-6174ccc, .elementor-element-7ff3725, .elementor-element-2a4a8cf, .elementor-element-41df74a).e-con.bg-section,
  body .page-header.background-section {
    --ut-f-segno-h: calc(var(--ut-f-h) * 1.2);
    --ut-f-segno-x: -64px;
    --ut-f-segno-y: calc(var(--ut-f-h) * .2);
  }

  /* 4.2 ter: contenitore vuoto del modulo «Devi noleggiare un auto?» nella
     home (correzione del titolare, 20 set 2026, insieme al pulsante video:
     vedi build.py `togli_pulsante_video_home()`). Il modulo (dcb53ca, dentro
     il contenitore f2a414e) lo nasconde già Elementor sotto i 768 px
     (.elementor-hidden-mobile, commento del §4.2 qui sopra): sul telefono
     non si è mai visto. Il SUO contenitore (d99f6cb) però resta in pagina
     anche vuoto, con un margine sopra, un bordo superiore chiaro
     (rgba(255,255,255,.2), il filo che sul desktop separa il video dalla
     card) e un fondo proprio: senza contenuto, sul telefono restava un
     filo sospeso nel vuoto seguito da un vuoto vero. Con il pulsante video
     tolto (sopra), quel vuoto si vedeva assai di più: dalla fascia scura
     restava solo il titolo, poi il filo, poi altro vuoto prima della
     sezione bianca. Misurato sul banco: -91 px di vuoto morto (margine +
     bordo + riquadro), la fascia scura passa da 355 a 264 px, senza
     spostare nient'altro (il modulo era comunque invisibile). Da 768 px in
     su non cambia niente: lì il modulo torna visibile con la sua card. */
  .elementor-element-d99f6cb {
    display: none;
  }

  /* 4. contatti: la colonna del modulo si allinea alla card blu (prima rientrava di 25 px) */
  body .elementor-3193 .elementor-element.elementor-element-842353b {
    --padding-left: 0px;
    --padding-right: 0px;
  }
  /* 4.3 veicoli commerciali: slider a tutta larghezza, come in home */
  .elementor-6683 .elementor-element.elementor-element-0e4bcc4 {
    width: 100%;
  }

  /* 5. card: corpi del tema per il telefono */
  .ut-card {
    --ut-c-titolo: 18px;
    --ut-c-gap: 16px;
  }

  /* 6. barra laterale aperta: un riquadro sotto l'altro */
  .page-fleets .fleets-sidebar .custom-html-widget {
    display: flex;
    align-items: stretch;
  }
  .page-fleets .fleets-sidebar aside.widget {
    padding: 14px;
    border-radius: var(--ut-r-md);
  }

  /* 6. griglia degli archivi: due colonne da mobile (richiesta del titolare,
     20 set 2026 — «la visualizzazione delle auto da mobile deve essere a 2
     colonne»). Il modello (CONTRATTO-archivio §2.5) marca ogni card con
     .col-lg-4.col-md-6: nel foglio del tema queste due classi esistono SOLO
     dentro le rispettive media query (min-width 992 e 768), quindi sotto i
     768 px la colonna non ha né flex-basis né gutter e la card riempie da
     sola tutta la riga. Qui le si dà lo stesso 50% che il tema applica da
     768 px in su, con un gutter più stretto (10 px invece di 15: a 360-390
     px il gutter pieno lasciava le due card schiacciate) e la stessa
     riduzione ai margini della card. La card (.ut-card) non si tocca: si
     adatta già da sola alla larghezza del contenitore con le sue container
     query (§5.7, attiva sotto i 230 px — qui il contenitore scende a
     115-165 px). La barra laterale dei filtri (.fleets-sidebar) resta fuori
     da questa riga e non cambia. */
  .page-fleets .row > .col-lg-4.col-md-6 {
    flex: 0 0 auto;
    width: 50%;
    padding-left: 10px;
    padding-right: 10px;
  }
  .page-fleets .row > .col-lg-4.col-md-6 .fleets-collection-item {
    margin-bottom: 20px;
  }
  /* 6 bis. un solo risultato: a due colonne la card sola restava a sinistra
     con mezza riga di vuoto a destra (filtro che lascia un solo veicolo, o
     un tipo con un solo modello, es. /car-type/super-car/). :has() individua
     la card quando NON ha nessun'altra .col-lg-4.col-md-6 come fratello
     successivo, indipendentemente da quante altre div (paginazione, scroll
     infinito) restano nella riga: con 2 o più card la regola non scatta e la
     griglia resta a due colonne come sopra. Con più di un risultato ma un
     numero dispari (l'ultima card sola in coda a una lista più lunga, es. 3
     risultati) la card non è :first-child e la regola non la tocca: è la
     coda normale di un elenco, non uno spazio vuoto ingiustificato. */
  .page-fleets .row > .col-lg-4.col-md-6:first-child:not(:has(~ .col-lg-4.col-md-6)) {
    width: 100%;
  }

  /* 7. galleria: comandi un poco più piccoli, miniature a misura di dito */
  .ut-galleria .ut-galleria__vista {
    border-radius: var(--ut-r-md);
  }
  .ut-galleria .ut-galleria__vista .ut-galleria__freccia {
    width: 42px;
    height: 42px;
    margin-top: -21px;
  }
  .ut-galleria .ut-galleria__vista .ut-galleria__freccia--prec {
    left: 10px;
  }
  .ut-galleria .ut-galleria__vista .ut-galleria__freccia--succ {
    right: 10px;
  }
  .ut-galleria .ut-galleria__vista .ut-galleria__grande {
    top: 10px;
    right: 10px;
    width: 40px;
    height: 40px;
  }
  .ut-galleria .ut-galleria__contatore {
    left: 10px;
    bottom: 10px;
  }
  .ut-galleria ol.ut-galleria__miniature > li {
    flex-basis: 72px;
  }
  dialog.ut-schermo .ut-schermo__testa {
    padding: 12px 12px 12px 16px;
  }
  dialog.ut-schermo .ut-schermo__foto {
    padding: 0 12px 96px;
  }
  dialog.ut-schermo .ut-schermo__foto .ut-schermo__btn {
    top: auto;
    bottom: 24px;
    width: 52px;
    height: 52px;
    margin-top: 0;
  }
  dialog.ut-schermo .ut-schermo__foto .ut-schermo__prec {
    left: calc(50% - 64px);
  }
  dialog.ut-schermo .ut-schermo__foto .ut-schermo__succ {
    right: calc(50% - 64px);
  }

  /* 11. piede: tutto in colonna (la riga legale lo è già dai 991) */
  .ut-piede__in {
    padding-bottom: 32px;
  }
  .ut-piede__colonne {
    grid-template-columns: minmax(0, 1fr);
    gap: 34px;
  }
  /* sotto i 768 il marchio torna in colonna (logo, testo, orari) */
  .ut-piede__marchio {
    display: block;
    padding-top: 0;
    border-top: 0;
  }
  .ut-piede .ut-piede__chi {
    margin-top: 20px;
  }
  .ut-piede__orari {
    margin-top: 24px;
  }
  .ut-piede .ut-piede__nav a {
    padding: 5px 0;
    font-size: 16px;
  }
  .ut-piede .ut-piede__registro {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px 20px;
  }
  /* la riga legale è già in colonna dai 991 (96 px liberi a destra per
     WhatsApp): qui i documenti vanno su due righe, un po' più strette */
  .ut-piede .ut-piede__documenti {
    gap: 8px 18px;
  }
}

/* ---- fino a 540 px ---- */
@media (max-width: 540px) {
  /* 8. configuratore: il tema stringe i margini, qui si tengono coerenti */
  .car-single-sidebar aside.widget:has(.ut-conf) {
    padding: 12px;
  }
  .ut-conf.nlt-configurator {
    padding: 20px 18px 0;
    border-radius: var(--ut-r-md);
  }
  .ut-conf.nlt-configurator .nlt-bottom {
    margin: 0;
  }
}

/* ---- fino a 480 px ---- */
@media (max-width: 480px) {
  /* 12. caratteristiche: due tessere per riga, più strette e più fitte */
  .ut-js .elementor-element-af4e08d .elementor-heading-title {
    font-size: 22px;
  }
  .ut-js .elementor-element-61738ff.e-con {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px !important;
    margin-bottom: 32px !important;
  }
  .ut-js .elementor-element-61738ff > .fleets-benefits-item.elementor-widget-icon-box {
    padding: 14px;
  }
  .ut-js .elementor-element-61738ff > .fleets-benefits-item .elementor-icon-box-wrapper {
    flex-direction: column;
    gap: 10px;
  }
  .ut-js .elementor-element-61738ff .ut-spec__icona {
    width: 34px;
    height: 34px;
  }
  .ut-js .elementor-element-61738ff .ut-spec__icona svg {
    width: 17px;
    height: 17px;
  }
  .ut-js .elementor-element-61738ff > .fleets-benefits-item .elementor-icon-box-title {
    font-size: 11px !important;
  }
  .ut-js .elementor-element-61738ff > .fleets-benefits-item .elementor-icon-box-description {
    font-size: 15px !important;
  }
  /* 11. piede: pulsante a tutta larghezza, registro su una colonna */
  .ut-piede a.ut-piede__cta {
    width: 100%;
    justify-content: space-between;
  }
  .ut-piede .ut-piede__registro {
    grid-template-columns: minmax(0, 1fr);
  }
  /* 13. invito WhatsApp: pulsante a tutta larghezza (a 320 px il riquadro
     ha 256 px dentro, il pulsante ne vuole 300), segno più piccolo */
  .ut-wa {
    background-size: auto 170px, auto;
    background-position: right -30px top -22px, 0 0;
  }
  .ut-wa a.ut-wa__cta {
    width: 100%;
    justify-content: space-between;
    font-size: 16px;
  }
}

/* ---- fino a 400 px ---- */
@media (max-width: 400px) {
  /* 3. header: il pulsante si stringe accanto al logo */
  .elementor-6626 a.ut-preventivo-mobile {
    min-height: 40px;
    padding: 0 14px;
    font-size: 12px;
  }
}
