/* ============ GO RENT · stile del sito ============
   Bianco come colore principale, l'arancione esatto del logo come secondo colore, il nero solo per le scritte.
   Titoli sportivi in corsivo (Barlow Condensed), testi in Montserrat. */
:root {
  --arancio: #ea5b21;        /* freccia del logo */
  --arancio-2: #ea5b21;      /* la "G" del logo */
  --arancio-scuro: #c9471a;
  --tenue: #fff3ec;          /* arancione leggerissimo per i fondi */
  --nero: #2b2a28;           /* scritte del logo */
  --grafite: #45433f;
  --grigio: #73716c;
  --linea: #ecebe8;
  --chiaro: #f8f7f5;
  --bianco: #fff;
  --raggio: 16px;
  --ombra: 0 20px 50px -24px rgba(43, 42, 40, .35);
  --ombra-arancio: 0 18px 40px -18px rgba(234, 91, 33, .55);
  --max: 1220px;
  --titoli: "Barlow Condensed", "Arial Narrow", sans-serif;
  --testo: "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
  --altezza-testa: 76px;
}
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; } /* quello che il programma nasconde resta nascosto */
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--altezza-testa) + 12px); -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--testo); font-size: 16px; line-height: 1.6; color: var(--nero); background: var(--bianco); overflow-x: hidden; }
img, video { max-width: 100%; display: block; }
a { color: inherit; }
button, input, select, textarea { font: inherit; color: inherit; }
h1, h2, h3, h4 { font-family: var(--titoli); font-weight: 800; font-style: italic; text-transform: uppercase; line-height: .95; letter-spacing: .005em; margin: 0; }
p { margin: 0 0 1em; }
.cont { width: 100%; max-width: var(--max); margin: 0 auto; padding: 0 20px; }
.arancio { color: var(--arancio); }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
:focus-visible { outline: 3px solid var(--arancio); outline-offset: 3px; }

/* ---------- pulsanti: parallelogramma, come la freccia del logo ---------- */
.btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .6em; padding: .95em 1.7em; border: 0; background: none; cursor: pointer; text-decoration: none;
  font-family: var(--titoli); font-style: italic; font-weight: 800; font-size: 1.12rem; text-transform: uppercase; letter-spacing: .04em; color: #fff; isolation: isolate; white-space: nowrap; }
.btn::before { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, var(--arancio) 30%, var(--arancio-2)); transform: skewX(-12deg); border-radius: 6px; z-index: -1; transition: filter .2s, transform .2s, box-shadow .2s; }
.btn:hover::before { filter: brightness(.92); box-shadow: var(--ombra-arancio); }
.btn:active::before { transform: skewX(-12deg) scale(.97); }
.btn .fr { width: .8em; height: .8em; fill: currentColor; transition: transform .2s; }
.btn:hover .fr { transform: translateX(3px); }
.btn.vuoto { color: var(--arancio); }
.btn.vuoto::before { background: #fff; border: 2px solid var(--arancio); }
.btn.vuoto:hover { color: #fff; }
.btn.vuoto:hover::before { background: var(--arancio); filter: none; }
.btn.bianco { color: var(--arancio); }
.btn.bianco::before { background: #fff; }
.btn.bianco:hover::before { filter: none; box-shadow: 0 16px 34px -16px rgba(0,0,0,.35); }
.btn.bianco-vuoto { color: #fff; }
.btn.bianco-vuoto::before { background: transparent; border: 2px solid rgba(255,255,255,.85); }
.btn.bianco-vuoto:hover { color: var(--arancio); }
.btn.bianco-vuoto:hover::before { background: #fff; filter: none; box-shadow: none; }
.btn.wa { color: #fff; }
.btn.wa::before { background: #1fae55; }
.btn.wa:hover::before { filter: brightness(.9); box-shadow: none; }
.btn.piccolo { font-size: .98rem; padding: .7em 1.25em; }

/* ---------- avviso in alto (si scrive dal pannello) ---------- */
#avviso { display: none; background: var(--arancio); color: #fff; font-size: .86rem; font-weight: 600; text-align: center; padding: .55em 1em; }
#avviso.si { display: block; }

/* ---------- testata ---------- */
.testa { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.94); backdrop-filter: saturate(160%) blur(12px); -webkit-backdrop-filter: saturate(160%) blur(12px); border-bottom: 1px solid transparent; transition: border-color .2s, box-shadow .2s; }
.testa.scesa { border-color: var(--linea); box-shadow: 0 6px 24px -18px rgba(0,0,0,.35); }
.testa .cont { height: var(--altezza-testa); display: flex; align-items: center; gap: 28px; }
.marchio { display: flex; align-items: center; gap: 8px; flex-shrink: 0; text-decoration: none; }
.marchio img { height: 34px; width: auto; }
.marchio .punta { width: 15px; height: 24px; fill: var(--arancio); }
.menu { display: flex; gap: 2px; margin-left: auto; }
.menu > a { position: relative; white-space: nowrap; padding: 8px 10px; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; color: var(--grafite); transition: color .2s; }
.menu > a:hover, .menu > a.att { color: var(--arancio); }
.menu .solo-menu, .menu .menu-contatti { display: none; }
.menu-contatti { gap: 10px; margin-top: 22px; }
.menu-contatti .btn { width: 100%; }
.menu > a::after { content: ""; position: absolute; left: 11px; right: 11px; bottom: 2px; height: 3px; background: var(--arancio); transform: scaleX(0) skewX(-20deg); transform-origin: left; transition: transform .25s; }
.menu > a:hover::after, .menu > a.att::after { transform: scaleX(1) skewX(-20deg); }
.testa-az { display: flex; align-items: center; gap: 14px; }
.tel { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; font-weight: 700; font-size: .92rem; white-space: nowrap; }
.tel svg { width: 36px; height: 36px; padding: 9px; border-radius: 50%; background: var(--tenue); fill: var(--arancio); }
.hamb { display: none; width: 46px; height: 46px; border: 0; background: var(--arancio); border-radius: 10px; cursor: pointer; padding: 0; position: relative; }
.hamb span { position: absolute; left: 13px; right: 13px; height: 2px; background: #fff; transition: transform .25s, opacity .2s; }
.hamb span:nth-child(1) { top: 16px; } .hamb span:nth-child(2) { top: 22px; right: 18px; } .hamb span:nth-child(3) { top: 28px; }
.menu-aperto .hamb span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.menu-aperto .hamb span:nth-child(2) { opacity: 0; }
.menu-aperto .hamb span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* ---------- etichette e titoli di sezione ---------- */
.occhiello { display: inline-flex; align-items: center; gap: .6em; font-size: .78rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--arancio); margin-bottom: 14px; }
.occhiello::before { content: ""; width: 10px; height: 14px; background: currentColor; clip-path: polygon(0 0, 100% 50%, 0 100%); }
.sez { padding: clamp(70px, 9vw, 120px) 0; position: relative; }
.sez.chiara { background: var(--chiaro); }
.sez.tenue { background: linear-gradient(180deg, #fff 0%, var(--tenue) 100%); }
.titolo-sez { font-size: clamp(2.6rem, 6vw, 4.6rem); margin-bottom: 18px; }
.titolo-sez span { color: var(--arancio); }
.intro { font-size: 1.06rem; color: var(--grigio); max-width: 620px; }
.capo { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 46px; flex-wrap: wrap; }
.capo > div { max-width: 680px; }
.capo .intro { margin-bottom: 0; }
.centro { text-align: center; }
.centro .intro { margin-left: auto; margin-right: auto; }

/* ---------- copertina: foto a tutta larghezza con le scritte dentro ---------- */
.copertina { position: relative; overflow: hidden; background: #fff; min-height: clamp(560px, calc(100vw / 2.45), 900px); display: flex; align-items: center; padding: 40px 0 110px; isolation: isolate; }
.cop-sfondo { position: absolute; inset: 0; z-index: -3; overflow: hidden; }
.cop-sfondo img { width: 100%; height: 100%; object-fit: cover; object-position: 100% 50%; transform-origin: 80% 60%; animation: avvicina 14s cubic-bezier(.2,.6,.2,1) both; }
@keyframes avvicina { from { transform: scale(1.05); } to { transform: scale(1); } }
.cop-velo { position: absolute; inset: 0; z-index: -2; background:
  linear-gradient(90deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.9) 26%, rgba(255,255,255,.55) 40%, rgba(255,255,255,0) 52%),
  linear-gradient(0deg, #fff 0%, rgba(255,255,255,0) 20%); }
/* scie di luce che corrono, come nei volantini */
.scie { position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.scie i { position: absolute; left: 0; height: 2px; width: 34vw; border-radius: 2px; background: linear-gradient(90deg, transparent, rgba(234,91,33,.9) 70%, rgba(255,255,255,.95)); opacity: 0; transform: translateX(-40vw) skewX(-30deg); animation: scia 3.6s cubic-bezier(.5,0,.3,1) infinite; }
.scie i:nth-child(1) { top: 58%; animation-delay: .4s; }
.scie i:nth-child(2) { top: 66%; animation-delay: 1.6s; width: 26vw; }
.scie i:nth-child(3) { top: 74%; animation-delay: 2.5s; height: 3px; }
.scie i:nth-child(4) { top: 81%; animation-delay: 1s; width: 40vw; }
.scie i:nth-child(5) { top: 52%; animation-delay: 3s; width: 20vw; height: 1px; }
@keyframes scia { 0% { opacity: 0; transform: translateX(-40vw); } 15% { opacity: .85; } 70% { opacity: .7; } 100% { opacity: 0; transform: translateX(105vw); } }
.cop-dentro { position: relative; max-width: none; padding-left: clamp(20px, 6vw, 120px); }
.cop-testo { max-width: 540px; }
.cop-testo > * { animation: sale .8s cubic-bezier(.2,.7,.2,1) both; }
.cop-testo > :nth-child(2) { animation-delay: .1s; } .cop-testo > :nth-child(3) { animation-delay: .2s; } .cop-testo > :nth-child(4) { animation-delay: .3s; } .cop-testo > :nth-child(5) { animation-delay: .4s; }
@keyframes sale { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
.cop-testo h1 { margin: 6px 0 22px; line-height: .86; }
.cop-testo h1 .r1 { display: block; color: var(--nero); font-size: clamp(4rem, 8.4vw, 7.6rem); }
.cop-testo h1 .r2 { display: block; font-size: clamp(2.1rem, 3.9vw, 3.5rem); background: linear-gradient(95deg, var(--arancio) 10%, var(--arancio-2) 70%); -webkit-background-clip: text; background-clip: text; color: transparent; padding-right: .1em; margin-top: .08em; }
.cop-sotto { font-size: clamp(1.02rem, 1.4vw, 1.18rem); color: var(--grafite); max-width: 500px; margin-bottom: 22px; }
.cop-sotto b { color: var(--nero); }
.vantaggi { list-style: none; padding: 0; margin: 0 0 30px; display: flex; flex-wrap: wrap; gap: 8px; }
.vantaggi li { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px 8px 10px; border-radius: 99px; background: rgba(255,255,255,.9); border: 1px solid var(--linea); font-weight: 700; font-size: .82rem; box-shadow: 0 6px 20px -12px rgba(0,0,0,.3); }
.vantaggi li:first-child { background: var(--arancio); border-color: var(--arancio); color: #fff; }
.vantaggi svg { width: 18px; height: 18px; fill: var(--arancio); }
.vantaggi li:first-child svg { fill: #fff; }
.cop-az { display: flex; gap: 16px; flex-wrap: wrap; align-items: center; }
.cerca-box { position: relative; z-index: 3; margin-top: -70px; }

/* ricerca veloce sotto la copertina */
.cerca { position: relative; z-index: 3; background: #fff; border-radius: 22px; box-shadow: 0 34px 80px -34px rgba(43,42,40,.45), 0 0 0 1px var(--linea); padding: 12px; display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: stretch; }
.formula-sel { position: relative; display: grid; grid-template-columns: 1fr 1fr 1fr; background: var(--chiaro); border-radius: 14px; padding: 5px; min-width: 330px; isolation: isolate; }
.formula-sel label { position: relative; cursor: pointer; display: grid; place-items: center; padding: 0 18px; min-height: 54px; }
.formula-sel input { position: absolute; opacity: 0; pointer-events: none; }
.formula-sel span { font-family: var(--titoli); font-style: italic; font-weight: 800; text-transform: uppercase; font-size: 1.15rem; letter-spacing: .02em; color: var(--grigio); transition: color .3s; white-space: nowrap; }
.formula-sel input:checked + span { color: #fff; }
.formula-sel input:focus-visible + span { outline: 2px solid var(--arancio); outline-offset: 4px; }
.formula-sel .cursore { position: absolute; z-index: -1; top: 5px; bottom: 5px; left: 5px; width: calc((100% - 10px) / 3); border-radius: 10px; background: linear-gradient(100deg, var(--arancio), var(--arancio-2)); box-shadow: var(--ombra-arancio); transition: transform .45s cubic-bezier(.7,0,.2,1); }
.formula-sel:has(input[value="lungo"]:checked) .cursore { transform: translateX(100%); }
.formula-sel:has(input[value="van"]:checked) .cursore { transform: translateX(200%); }
.cerca-campi { display: flex; gap: 10px; align-items: stretch; }
.cerca-campi .campo { flex: 1; animation: entra-campo .45s cubic-bezier(.2,.7,.2,1) both; }
@keyframes entra-campo { from { opacity: 0; transform: translateY(8px); } }
.campo { display: flex; flex-direction: column; justify-content: center; gap: 2px; padding: 9px 16px; border-radius: 14px; border: 1px solid var(--linea); background: #fff; min-width: 0; transition: border-color .2s; }
.campo[hidden] { display: none; }
.campo span { font-size: .66rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--grigio); }
.campo select, .campo input { border: 0; padding: 0; background: transparent; font-weight: 600; font-size: .95rem; outline: none; width: 100%; min-width: 0; }
.campo:focus-within { border-color: var(--arancio); }
.cerca .btn { flex-shrink: 0; }

/* ---------- servizi inclusi ---------- */
.servizi-griglia { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(30px, 6vw, 80px); align-items: center; }
.servizi-testa .titolo-sez { font-size: clamp(3rem, 7vw, 5.6rem); }
.servizi-testa .intro { margin-bottom: 26px; }
.servizi { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.servizio { position: relative; aspect-ratio: 1 / .9; display: flex; flex-direction: column; justify-content: space-between; padding: 22px; border-radius: 20px; background: #fff; border: 1px solid var(--linea); overflow: hidden; isolation: isolate; transition: transform .35s cubic-bezier(.2,.7,.2,1), border-color .3s, box-shadow .3s; }
.servizio::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(150deg, var(--arancio-2), var(--arancio)); transform: translateY(101%); transition: transform .45s cubic-bezier(.7,0,.2,1); }
.servizio:hover { transform: translateY(-6px); box-shadow: var(--ombra-arancio); border-color: transparent; }
.servizio:hover::before { transform: none; }
.servizio svg { width: 40px; height: 40px; fill: var(--arancio); transition: fill .3s, transform .45s; }
.servizio h3 { font-size: clamp(1.25rem, 1.9vw, 1.65rem); line-height: 1; transition: color .3s; }
.servizio:hover svg { fill: #fff; transform: scale(1.1) rotate(-6deg); }
.servizio:hover h3 { color: #fff; }
.servizio::after { content: ""; position: absolute; top: 18px; right: 18px; width: 22px; height: 22px; border-radius: 50%; background: var(--tenue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3 3 7-7' fill='none' stroke='%23ea5b21' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat; }

/* ---------- categorie ---------- */
.categorie { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.cat { position: relative; display: flex; flex-direction: column; min-height: 360px; padding: 30px; border-radius: 22px; overflow: hidden; text-decoration: none; background: #fff; border: 1px solid var(--linea); isolation: isolate; transition: transform .3s, border-color .3s, box-shadow .3s; }
.cat:hover { transform: translateY(-6px); border-color: var(--arancio); box-shadow: var(--ombra); }
.cat::after { content: ""; position: absolute; right: -30%; bottom: -45%; width: 95%; aspect-ratio: 1; z-index: -1; background: radial-gradient(circle, rgba(234,91,33,.22), transparent 65%); transition: transform .5s; }
.cat:hover::after { transform: scale(1.25); }
.cat .num { font-family: var(--titoli); font-style: italic; font-weight: 800; font-size: 1.1rem; color: var(--arancio); }
.cat .gigante { position: absolute; right: -8px; bottom: -22px; font-family: var(--titoli); font-style: italic; font-weight: 800; font-size: 9.5rem; line-height: 1; text-transform: uppercase; color: transparent; -webkit-text-stroke: 1.5px rgba(234,91,33,.16); z-index: -1; }
.cat svg { width: 130px; height: auto; fill: none; stroke: var(--nero); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; margin: 26px 0 auto; }
.cat h3 { font-size: 3rem; margin: 26px 0 8px; }
.cat p { color: var(--grigio); font-size: .95rem; margin: 0 0 20px; }
.cat .vai { display: inline-flex; align-items: center; gap: 10px; font-weight: 700; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--arancio); }
.cat .vai i { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--arancio); transition: transform .25s; }
.cat .vai i svg { width: 13px; margin: 0; fill: #fff; stroke: none; }
.cat:hover .vai i { transform: translateX(6px); }

/* ---------- formule: breve / lungo ---------- */
.formule { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.formula { position: relative; min-height: 400px; padding: clamp(30px, 4vw, 48px); border-radius: 28px; background: #fff; border: 1px solid var(--linea); display: flex; flex-direction: column; text-decoration: none; overflow: hidden; isolation: isolate; transition: transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s, border-color .3s; }
.formula:hover { transform: translateY(-8px); box-shadow: var(--ombra); border-color: rgba(234,91,33,.4); }
.formula.top { background: linear-gradient(150deg, var(--arancio-2) 0%, var(--arancio) 55%, var(--arancio-scuro) 100%); border: 0; color: #fff; }
.formula.top:hover { box-shadow: var(--ombra-arancio); }
.f-sfondo { position: absolute; right: -14px; bottom: -40px; z-index: -1; font-family: var(--titoli); font-style: italic; font-weight: 800; text-transform: uppercase; font-size: clamp(8rem, 16vw, 14rem); line-height: 1; color: transparent; -webkit-text-stroke: 2px rgba(234,91,33,.13); transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.formula.top .f-sfondo { -webkit-text-stroke-color: rgba(255,255,255,.2); }
.formula:hover .f-sfondo { transform: translateX(-30px); }
.formula h3 { font-size: clamp(3rem, 6vw, 4.8rem); line-height: .86; margin-bottom: 26px; }
.formula ul { list-style: none; padding: 0; margin: 0 0 30px; display: grid; gap: 12px; }
.formula li { display: flex; gap: 12px; font-weight: 600; font-size: 1rem; }
.formula li::before, .lista-ok li::before { content: ""; flex-shrink: 0; width: 22px; height: 22px; margin-top: 1px; border-radius: 50%; background: var(--arancio) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3 3 7-7' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/13px no-repeat; }
.formula.top li::before { background-color: #fff; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3 3 7-7' fill='none' stroke='%23ea5b21' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.vai { display: inline-flex; align-items: center; gap: 12px; margin-top: auto; font-weight: 700; font-size: .82rem; letter-spacing: .14em; text-transform: uppercase; color: var(--arancio); }
.formula.top .vai { color: #fff; }
.vai i { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: var(--arancio); transition: transform .3s; }
.formula.top .vai i { background: #fff; }
.vai i svg { width: 14px; height: 14px; fill: #fff; margin: 0; stroke: none; }
.formula.top .vai i svg { fill: var(--arancio); }
.formula:hover .vai i, .cat:hover .vai i { transform: translateX(8px); }

/* ---------- no scoring: sezione grande ---------- */
.noscoring { position: relative; overflow: hidden; padding: clamp(90px, 12vw, 160px) 0; background: linear-gradient(180deg, #fff 0%, var(--tenue) 50%, #fff 100%); text-align: center; isolation: isolate; }
.ns-scritta { position: absolute; left: 0; top: 7%; z-index: -1; white-space: nowrap; font-family: var(--titoli); font-style: italic; font-weight: 800; text-transform: uppercase; font-size: clamp(5rem, 13vw, 12rem); line-height: 1; color: transparent; -webkit-text-stroke: 2px rgba(234,91,33,.14); will-change: transform; }
.ns-scritta.basso { top: auto; bottom: 6%; -webkit-text-stroke-color: rgba(43,42,40,.06); }
.ns-dentro { display: flex; flex-direction: column; align-items: center; }
.noscoring h2 { font-size: clamp(4rem, 11vw, 9.5rem); line-height: .82; margin-bottom: 26px; }
.noscoring h2 span { background: linear-gradient(95deg, var(--arancio) 10%, var(--arancio-2) 80%); -webkit-background-clip: text; background-clip: text; color: transparent; padding-right: .08em; }
.noscoring p { font-size: clamp(1.1rem, 1.8vw, 1.4rem); font-weight: 500; color: var(--grafite); max-width: 640px; margin: 0 auto 40px; }
.ns-punti { display: flex; justify-content: center; gap: clamp(14px, 3vw, 40px); flex-wrap: wrap; margin-bottom: 44px; }
.ns-punti > div { display: flex; align-items: center; gap: 12px; padding: 12px 22px 12px 12px; border-radius: 99px; background: #fff; box-shadow: var(--ombra); }
.ns-punti .ico { width: 46px; height: 46px; border-radius: 50%; background: var(--arancio); display: grid; place-items: center; }
.ns-punti .ico svg { width: 22px; height: 22px; fill: #fff; }
.ns-punti b { font-family: var(--titoli); font-style: italic; font-weight: 800; text-transform: uppercase; font-size: 1.35rem; }

/* ---------- van 9 posti, conducente, transfer ed eventi: sezione grande arancione ---------- */
.van { position: relative; overflow: hidden; background: linear-gradient(135deg, var(--arancio-2) 0%, var(--arancio) 50%, var(--arancio-scuro) 100%); color: #fff; padding: clamp(80px, 10vw, 130px) 0; isolation: isolate; }
.van::before { content: ""; position: absolute; inset: 0; z-index: -1; background: repeating-linear-gradient(-14deg, transparent 0 60px, rgba(255,255,255,.06) 60px 62px, transparent 62px 150px); }
.van-nove { position: absolute; right: -2vw; top: 34%; transform: translateY(-50%); z-index: -1; font-family: var(--titoli); font-style: italic; font-weight: 800; font-size: clamp(22rem, 46vw, 46rem); line-height: .8; color: rgba(255,255,255,.1); }
.van-dentro { display: grid; grid-template-columns: 1.05fr 1fr; gap: 40px; align-items: center; }
.van .occhiello { color: #fff; }
.van h2 { font-size: clamp(3.4rem, 8vw, 7rem); line-height: .84; margin-bottom: 22px; }
.van h2 span { font-size: .58em; display: inline-block; margin-top: .15em; color: var(--nero); }
.van p { font-size: 1.15rem; font-weight: 500; max-width: 480px; opacity: .95; margin-bottom: 24px; }
.van-usi { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 34px; padding: 0; list-style: none; }
.van-usi li { font-size: .82rem; font-weight: 700; padding: 9px 14px; border-radius: 99px; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.3); }
.van-az { display: flex; gap: 14px; flex-wrap: wrap; }
.van-scena { position: relative; height: clamp(240px, 30vw, 380px); overflow: hidden; }
.van-disegno { position: absolute; left: 0; right: 0; margin: 0 auto; bottom: 64px; width: min(100%, 520px); height: auto; fill: none; stroke: #fff; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; --acc: rgba(255,255,255,.35); transform: translateX(-120%); opacity: 0; transition: transform 1.6s cubic-bezier(.2,.7,.2,1), opacity .6s; }
.van.vista .van-disegno { transform: none; opacity: 1; animation: sobbalza 2.4s ease-in-out 1.6s infinite; }
@keyframes sobbalza { 0%, 100% { translate: 0 0; } 50% { translate: 0 -2px; } }
.strada-linee { position: absolute; left: 0; right: 0; bottom: 52px; height: 4px; background: repeating-linear-gradient(90deg, rgba(255,255,255,.85) 0 46px, transparent 46px 86px); animation: corre .6s linear infinite paused; }
.van.vista .strada-linee { animation-play-state: running; }
@keyframes corre { to { background-position: -86px 0; } }
.servizi-extra { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: clamp(50px, 6vw, 80px); }
.servizi-extra > div { padding: 26px; border-radius: 22px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.25); transition: background .3s, transform .3s; }
.servizi-extra > div:hover { background: rgba(255,255,255,.2); transform: translateY(-4px); }
.servizi-extra svg { width: 34px; height: 34px; fill: #fff; margin-bottom: 14px; }
.servizi-extra h3 { font-size: 1.8rem; }

/* ---------- riquadro grande "i nostri veicoli" ---------- */
.vai-veicoli { position: relative; display: flex; align-items: center; min-height: clamp(320px, 38vw, 480px); border-radius: 30px; overflow: hidden; text-decoration: none; isolation: isolate; box-shadow: var(--ombra); }
.vai-veicoli img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 90% 50%; transition: transform 1.2s cubic-bezier(.2,.7,.2,1); }
.vai-veicoli:hover img { transform: scale(1.06); }
.vv-velo { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.88) 32%, rgba(255,255,255,0) 60%); }
.vv-testo { padding: clamp(30px, 5vw, 64px); display: flex; flex-direction: column; }
.vv-testo b { font-family: var(--titoli); font-style: italic; font-weight: 800; text-transform: uppercase; font-size: clamp(3rem, 7vw, 6rem); line-height: .84; margin-bottom: 16px; }
.vv-testo > span:last-child { font-weight: 600; color: var(--grafite); }
.vv-freccia { position: absolute; right: clamp(20px, 4vw, 50px); bottom: clamp(20px, 4vw, 50px); width: 84px; height: 84px; border-radius: 50%; background: var(--arancio); display: grid; place-items: center; box-shadow: var(--ombra-arancio); transition: transform .4s cubic-bezier(.2,.7,.2,1); }
.vv-freccia svg { width: 24px; height: 24px; fill: #fff; margin-left: 3px; }
.vai-veicoli:hover .vv-freccia { transform: translateX(10px) scale(1.06); }

/* ---------- flotta: schede veicolo ---------- */
.filtri { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 30px; }
.filtri .grp { display: flex; background: var(--chiaro); border-radius: 12px; padding: 4px; gap: 4px; flex-wrap: wrap; }
.filtri button { border: 0; background: transparent; padding: 9px 16px; border-radius: 9px; font-weight: 700; font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; color: var(--grigio); transition: background .2s, color .2s; }
.filtri button[aria-pressed="true"] { background: var(--arancio); color: #fff; }
.griglia { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.veicolo { display: flex; flex-direction: column; border-radius: 20px; background: #fff; border: 1px solid var(--linea); overflow: hidden; transition: transform .25s, box-shadow .25s, border-color .25s; cursor: pointer; text-align: left; padding: 0; }
.veicolo:hover { transform: translateY(-5px); box-shadow: var(--ombra); border-color: rgba(234,91,33,.4); }
.v-foto { position: relative; aspect-ratio: 16 / 10; background: var(--chiaro); overflow: hidden; }
.v-foto img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.veicolo:hover .v-foto img { transform: scale(1.05); }
.v-foto .vuota { position: absolute; inset: 0; display: grid; place-items: center; align-content: center; gap: 8px; background: linear-gradient(150deg, #f3f2ef, #fbfaf8); color: #b0aea8; font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.v-foto .vuota svg { width: 46%; max-width: 170px; fill: none; stroke: #cfcdc7; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; --acc: #f3c4ad; }
.v-foto .tag { position: absolute; left: 12px; top: 12px; background: var(--arancio); color: #fff; font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; padding: 5px 9px; border-radius: 6px; }
.v-foto .stato { position: absolute; right: 12px; top: 12px; background: #fff; color: var(--nero); font-size: .68rem; font-weight: 700; padding: 5px 9px 5px 22px; border-radius: 6px; }
.v-foto .stato::before { content: ""; position: absolute; left: 9px; top: 50%; width: 7px; height: 7px; margin-top: -3.5px; border-radius: 50%; background: #1fae55; }
.v-foto .stato.no::before { background: #e0a100; }
.v-corpo { padding: 18px 20px 20px; display: flex; flex-direction: column; flex: 1; }
.v-corpo .cat-v { font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--arancio); }
.v-corpo h3 { font-size: 1.9rem; margin: 4px 0 12px; }
.dati { display: flex; flex-wrap: wrap; gap: 6px 14px; padding: 12px 0; border-top: 1px solid var(--linea); border-bottom: 1px solid var(--linea); margin-bottom: 14px; }
.dati span { display: inline-flex; align-items: center; gap: 6px; font-size: .82rem; font-weight: 600; color: var(--grafite); }
.dati svg { width: 17px; height: 17px; fill: var(--arancio); }
.v-piede { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; }
.colori { display: inline-flex; gap: 6px; }
.colori i { width: 18px; height: 18px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(0,0,0,.15), 0 2px 6px -2px rgba(0,0,0,.3); }
.colori-scheda { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-weight: 600; font-size: .9rem; margin-bottom: 22px; }
.colori-scheda > span:first-child { width: 100%; font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--grigio); }
.scelte.due-scelte { grid-template-columns: 1fr 1fr; }
.due-scelte label { font-family: var(--titoli); font-style: italic; font-weight: 800; text-transform: uppercase; font-size: 1.3rem; padding: 18px 10px; }
.faq { display: flex; flex-direction: column; }
.chip { display: flex; gap: 6px; flex-wrap: wrap; }
.chip i { font-style: normal; font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 4px 8px; border-radius: 6px; background: var(--tenue); color: var(--arancio-scuro); }
.v-piede .freccia { flex-shrink: 0; width: 40px; height: 40px; border-radius: 50%; background: var(--tenue); display: grid; place-items: center; transition: background .2s; }
.v-piede .freccia svg { width: 13px; fill: var(--arancio); transition: fill .2s; }
.veicolo:hover .freccia { background: var(--arancio); }
.veicolo:hover .freccia svg { fill: #fff; }
.vuoto-lista { grid-column: 1 / -1; text-align: center; padding: 50px 20px; color: var(--grigio); border: 2px dashed var(--linea); border-radius: 18px; }

/* scheda veicolo aperta */
dialog.scheda { width: min(980px, calc(100% - 24px)); max-height: calc(100dvh - 24px); padding: 0; border: 0; border-radius: 22px; box-shadow: 0 40px 120px -20px rgba(0,0,0,.45); overflow: auto; }
dialog.scheda::backdrop { background: rgba(43,42,40,.55); backdrop-filter: blur(4px); }
.sch { display: grid; grid-template-columns: 1.15fr 1fr; }
.sch-foto { background: var(--chiaro); position: relative; min-height: 300px; }
.sch-foto .grande { aspect-ratio: 4 / 3; width: 100%; object-fit: cover; }
.sch-foto .v-foto { aspect-ratio: 4 / 3; }
.miniature { display: flex; gap: 8px; padding: 10px; overflow-x: auto; }
.miniature button { flex: 0 0 74px; height: 54px; padding: 0; border: 2px solid transparent; border-radius: 8px; overflow: hidden; cursor: pointer; background: none; }
.miniature button[aria-current="true"] { border-color: var(--arancio); }
.miniature img { width: 100%; height: 100%; object-fit: cover; }
.sch-testo { padding: 34px 32px 30px; display: flex; flex-direction: column; }
.sch-testo h2 { font-size: 2.8rem; margin: 6px 0 14px; }
.sch-testo .descr { color: var(--grigio); font-size: .96rem; }
.dotazioni { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 22px; padding: 0; list-style: none; }
.dotazioni li { font-size: .78rem; font-weight: 600; padding: 6px 10px; border-radius: 8px; border: 1px solid var(--linea); }
.sch-az { display: flex; gap: 12px; flex-wrap: wrap; margin-top: auto; padding-top: 6px; }
.chiudi { position: absolute; right: 14px; top: 14px; z-index: 2; width: 42px; height: 42px; border-radius: 50%; border: 0; background: #fff; box-shadow: 0 4px 16px rgba(0,0,0,.2); cursor: pointer; display: grid; place-items: center; }
.chiudi svg { width: 16px; height: 16px; stroke: var(--nero); stroke-width: 2.4; }

/* ---------- come funziona ---------- */
.passi { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; counter-reset: passo; }
.passo { position: relative; padding: 30px 26px; border-radius: 20px; background: #fff; border: 1px solid var(--linea); }
.passo::before { counter-increment: passo; content: "0" counter(passo); display: block; font-family: var(--titoli); font-style: italic; font-weight: 800; font-size: 4.4rem; line-height: .9; color: transparent; -webkit-text-stroke: 2px var(--arancio); margin-bottom: 14px; }
.passo h3 { font-size: 1.8rem; margin-bottom: 8px; }
.passo p { margin: 0; color: var(--grigio); font-size: .95rem; }

/* ---------- pagamenti ---------- */
.pagamenti { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 36px; }
.pagamenti span { display: inline-flex; align-items: center; gap: 10px; padding: 12px 18px; border-radius: 12px; background: #fff; border: 1px solid var(--linea); font-weight: 700; font-size: .9rem; }
.pagamenti svg { width: 20px; height: 20px; fill: var(--arancio); }

/* ---------- domande ---------- */
.faq { max-width: 860px; margin: 0 auto; display: grid; gap: 12px; }
.faq details { border-radius: 14px; background: #fff; border: 1px solid var(--linea); transition: border-color .2s; }
.faq details[open] { border-color: rgba(234,91,33,.45); }
.faq summary { list-style: none; cursor: pointer; padding: 20px 60px 20px 24px; position: relative; font-weight: 700; font-size: 1.02rem; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ""; position: absolute; right: 22px; top: 50%; width: 26px; height: 26px; margin-top: -13px; border-radius: 50%; background: var(--tenue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 4v12M4 10h12' stroke='%23ea5b21' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") center/12px no-repeat; transition: transform .25s; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details > div { padding: 0 24px 22px; color: var(--grigio); }
.faq details > div p:last-child { margin: 0; }

/* ricerca nelle domande */
.chiedi { max-width: 860px; margin: 0 auto 26px; }
.chiedi-campo { display: flex; align-items: center; gap: 14px; padding: 6px 8px 6px 22px; border-radius: 18px; background: #fff; border: 2px solid var(--linea); box-shadow: var(--ombra); transition: border-color .2s; }
.chiedi-campo:focus-within { border-color: var(--arancio); }
.chiedi-campo svg { width: 24px; height: 24px; fill: var(--arancio); flex-shrink: 0; }
.chiedi-campo input { flex: 1; border: 0; outline: none; padding: 16px 0; font-size: 1.08rem; font-weight: 500; background: transparent; min-width: 0; }
.chiedi-cat { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 16px; }
.chiedi-cat button { border: 1px solid var(--linea); background: #fff; padding: 8px 14px; border-radius: 99px; font-weight: 700; font-size: .8rem; cursor: pointer; color: var(--grafite); transition: background .2s, color .2s, border-color .2s; }
.chiedi-cat button:hover { border-color: var(--arancio); color: var(--arancio); }
.chiedi-cat button[aria-pressed="true"] { background: var(--arancio); border-color: var(--arancio); color: #fff; }
.faq details[hidden] { display: none; }
.faq mark { background: var(--tenue); color: var(--arancio-scuro); border-radius: 3px; padding: 0 2px; }
.faq-vuota { text-align: center; padding: 30px; border-radius: 18px; border: 2px dashed var(--linea); }
.faq-vuota[hidden] { display: none; }
.faq-vuota p { color: var(--grafite); }

/* ---------- contatti ---------- */
.contatti { display: grid; grid-template-columns: 1fr 1.1fr; gap: 24px; align-items: stretch; }
.c-info { display: grid; gap: 12px; align-content: start; }
.c-voce { display: grid; grid-template-columns: 50px 1fr; gap: 16px; align-items: center; padding: 16px 20px; border-radius: 16px; background: #fff; border: 1px solid var(--linea); text-decoration: none; transition: border-color .2s, transform .2s; }
a.c-voce:hover { border-color: var(--arancio); transform: translateX(3px); }
.c-voce .ico { width: 50px; height: 50px; border-radius: 50%; background: var(--arancio); display: grid; place-items: center; }
.c-voce .ico svg { width: 22px; height: 22px; fill: #fff; }
.c-voce small { display: block; font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--grigio); }
.c-voce b { font-size: 1.02rem; }
.c-voce .orari { white-space: pre-line; font-weight: 600; font-size: .95rem; }
.mappa { border-radius: 22px; overflow: hidden; min-height: 380px; background: var(--chiaro); border: 1px solid var(--linea); }
.mappa iframe { width: 100%; height: 100%; min-height: 380px; border: 0; }

/* ---------- invito finale ---------- */
.invito { position: relative; overflow: hidden; border-radius: 28px; background: linear-gradient(130deg, var(--arancio-2), var(--arancio) 50%, var(--arancio-scuro)); color: #fff; padding: clamp(40px, 6vw, 70px); display: grid; grid-template-columns: 1.3fr 1fr; gap: 30px; align-items: center; isolation: isolate; box-shadow: var(--ombra-arancio); }
.invito::before { content: ""; position: absolute; inset: 0; z-index: -1; background: repeating-linear-gradient(-14deg, transparent 0 46px, rgba(255,255,255,.08) 46px 48px, transparent 48px 110px); }
.invito h2 { font-size: clamp(2.6rem, 6vw, 4.8rem); }
.invito p { color: rgba(255,255,255,.92); margin: 16px 0 0; }
.invito .az { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }

/* ---------- pagine interne ---------- */
.testata-pag { position: relative; overflow: hidden; background: linear-gradient(180deg, #fff, var(--tenue)); padding: clamp(56px, 8vw, 100px) 0 clamp(46px, 6vw, 76px); isolation: isolate; border-bottom: 1px solid var(--linea); }
.testata-pag::before { content: ""; position: absolute; inset: 0; z-index: -1; background: repeating-linear-gradient(-14deg, transparent 0 46px, rgba(234,91,33,.09) 46px 48px, transparent 48px 120px); -webkit-mask-image: linear-gradient(90deg, transparent 30%, #000); mask-image: linear-gradient(90deg, transparent 30%, #000); }
.testata-pag h1 { font-size: clamp(3rem, 8vw, 6.4rem); line-height: .86; }
.testata-pag h1 span { color: var(--arancio); }
.testata-pag p { color: var(--grafite); font-size: 1.08rem; max-width: 640px; margin: 20px 0 0; }
.testata-az { margin-top: 28px; }
.desidero { display: flex; gap: 10px; max-width: 620px; margin-top: 30px; padding: 8px; border-radius: 18px; background: #fff; border: 1px solid var(--linea); box-shadow: var(--ombra); }
.desidero input { flex: 1; min-width: 0; border: 0; outline: none; padding: 0 14px; font-size: 1.05rem; font-weight: 500; background: transparent; }
.briciole { font-size: .78rem; font-weight: 600; color: var(--grigio); margin-bottom: 18px; }
.briciole a { text-decoration: none; } .briciole a:hover { color: var(--arancio); }
.due { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 6vw, 70px); align-items: start; }
.testo-lungo h2 { font-size: clamp(2rem, 4vw, 3rem); margin: 0 0 16px; }
.testo-lungo h3 { font-size: 1.6rem; margin: 30px 0 10px; }
.testo-lungo p, .testo-lungo li { color: var(--grafite); }
.lista-ok { list-style: none; padding: 0; margin: 0 0 20px; display: grid; gap: 12px; }
.lista-ok li { display: flex; gap: 12px; }
.riquadro { border-radius: 22px; padding: 30px; background: var(--chiaro); border: 1px solid var(--linea); }
.riquadro.arancio-pieno { background: linear-gradient(150deg, var(--arancio-2), var(--arancio)); color: #fff; border: 0; }
.riquadro.arancio-pieno .lista-ok li::before { background-color: #fff; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3 3 7-7' fill='none' stroke='%23ea5b21' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.riquadro h3 { font-size: 1.9rem; margin-bottom: 14px; }

/* ---------- modulo preventivo ---------- */
.modulo { display: grid; grid-template-columns: 1.4fr .8fr; gap: 30px; align-items: start; }
.modulo form { background: #fff; border-radius: 24px; border: 1px solid var(--linea); padding: clamp(22px, 4vw, 40px); box-shadow: var(--ombra); }
.blocco { border: 0; padding: 0; margin: 0 0 30px; min-width: 0; }
.blocco legend { display: flex; align-items: center; gap: 12px; font-family: var(--titoli); font-style: italic; font-weight: 800; text-transform: uppercase; font-size: 1.6rem; margin-bottom: 16px; padding: 0; }
.blocco legend i { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 8px; background: var(--arancio); color: #fff; font-size: 1rem; font-style: normal; transform: skewX(-10deg); }
.scelte { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.scelta input { position: absolute; opacity: 0; pointer-events: none; }
.scelta label { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 16px 10px; border-radius: 14px; border: 2px solid var(--linea); cursor: pointer; text-align: center; font-weight: 700; font-size: .9rem; transition: border-color .2s, background .2s; height: 100%; }
.scelta label small { font-weight: 500; font-size: .74rem; color: var(--grigio); }
.scelta label svg { width: 54px; height: 34px; fill: none; stroke: var(--nero); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.scelta input:checked + label { border-color: var(--arancio); background: var(--tenue); }
.scelta input:focus-visible + label { outline: 3px solid var(--arancio); outline-offset: 2px; }
.righe { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.righe .tutta { grid-column: 1 / -1; }
.cmp label { display: block; font-size: .76rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; margin-bottom: 6px; color: var(--grafite); }
.cmp input, .cmp select, .cmp textarea { width: 100%; padding: 13px 14px; border-radius: 12px; border: 1.5px solid var(--linea); background: #fff; font-size: 1rem; outline: none; transition: border-color .2s; }
.cmp textarea { min-height: 110px; resize: vertical; }
.cmp input:focus, .cmp select:focus, .cmp textarea:focus { border-color: var(--arancio); }
.spunta { display: flex; gap: 10px; align-items: center; font-weight: 600; font-size: .92rem; cursor: pointer; }
.spunta input, .consenso input { width: 20px; height: 20px; accent-color: var(--arancio); flex-shrink: 0; }
.consenso { display: flex; gap: 10px; align-items: flex-start; font-size: .86rem; color: var(--grigio); margin: 6px 0 22px; }
.consenso input { margin-top: 2px; }
.trappola { position: absolute; left: -9999px; }
.errore { display: none; background: #fdecea; color: #a1260d; border-radius: 12px; padding: 12px 16px; font-weight: 600; font-size: .92rem; margin-bottom: 16px; }
.errore.si { display: block; }
.fatto { text-align: center; padding: 30px 10px; }
.fatto .ok { width: 84px; height: 84px; border-radius: 50%; background: var(--arancio); display: grid; place-items: center; margin: 0 auto 20px; }
.fatto .ok svg { width: 40px; stroke: #fff; stroke-width: 3; fill: none; }
.fatto h2 { font-size: 3rem; margin-bottom: 10px; }
.fatto .az { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 20px; }
.lato { position: sticky; top: calc(var(--altezza-testa) + 20px); display: grid; gap: 16px; }
.lato .scelto { display: none; }
.lato .scelto.si { display: block; }
.lato .scelto img { border-radius: 12px; margin-bottom: 12px; aspect-ratio: 16/10; object-fit: cover; width: 100%; }

/* ---------- piede ---------- */
.piede { background: var(--chiaro); color: var(--grafite); padding: 70px 0 30px; font-size: .92rem; border-top: 4px solid var(--arancio); }
.piede-griglia { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; }
.piede img { height: 70px; width: auto; margin-bottom: 18px; }
.piede h4 { font-size: 1.3rem; margin-bottom: 14px; color: var(--nero); }
.piede ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.piede a { text-decoration: none; } .piede a:hover { color: var(--arancio); }
.social { display: flex; gap: 10px; margin-top: 16px; }
.social a { width: 40px; height: 40px; border-radius: 50%; background: var(--arancio); display: grid; place-items: center; }
.social a:hover { background: var(--arancio-scuro); }
.social svg { width: 18px; height: 18px; fill: #fff; }
.piede-basso { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; border-top: 1px solid var(--linea); margin-top: 50px; padding-top: 24px; font-size: .8rem; color: var(--grigio); }

/* ---------- barra fissa sul telefono ---------- */
.barra-tel { display: none; }

/* ---------- transizione "strada" tra le pagine ---------- */
#strada { position: fixed; inset: 0; z-index: 300; pointer-events: none; overflow: hidden; }
#strada span { position: absolute; top: 0; bottom: 0; left: -30%; width: 160%; transform: translateX(-125%) skewX(-16deg); }
#strada span:nth-child(1) { background: linear-gradient(100deg, var(--arancio-2), var(--arancio)); }
#strada span:nth-child(2) { background: #fff; display: grid; place-items: center; }
#strada img { height: 40px; width: auto; transform: skewX(16deg); opacity: .9; }
#strada.parte span { transform: translateX(0) skewX(-16deg); transition: transform .42s cubic-bezier(.75,0,.25,1); }
#strada.parte span:nth-child(2) { transition-delay: .07s; }
.strada-arrivo #strada span { transform: translateX(0) skewX(-16deg); }
#strada.via span { transform: translateX(125%) skewX(-16deg); transition: transform .6s cubic-bezier(.75,0,.25,1); }
#strada.via span:nth-child(1) { transition-delay: .1s; }

/* linea del percorso sotto il menu: si riempie scorrendo la pagina */
.testa::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; background: linear-gradient(90deg, var(--arancio), var(--arancio-2)); transform: scaleX(var(--percorso, 0)); transform-origin: left; }

/* come funziona: la strada tratteggiata si disegna quando la vedi */
.passi { position: relative; }
.passi::before { content: ""; position: absolute; left: 6%; right: 6%; top: 64px; height: 3px; background: repeating-linear-gradient(90deg, var(--arancio) 0 22px, transparent 22px 38px); transform: scaleX(0); transform-origin: left; transition: transform 1.4s cubic-bezier(.3,.6,.2,1); z-index: 0; }
.passi.vista::before { transform: scaleX(1); }
.passo { z-index: 1; background: rgba(255,255,255,.96); }

/* ---------- comparsa allo scorrimento ---------- */
/* si nascondono solo se il JavaScript funziona, cosi' il testo non resta mai invisibile */
.js .appare { opacity: 0; transform: translateY(18px); transition: opacity .45s ease, transform .45s cubic-bezier(.2,.7,.2,1); }
.js .appare.vista { opacity: 1; transform: none; }
/* i titoli salgono da dietro una linea invisibile */
.js .titolo-sez.appare, .js .noscoring h2.appare { opacity: 1; clip-path: inset(-10% -10% 100% -10%); transform: translateY(45%); transition: clip-path .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
.js .titolo-sez.appare.vista, .js .noscoring h2.appare.vista { clip-path: inset(-10% -10% -20% -10%); transform: none; }
.js .appare.r1 { transition-delay: .06s; } .js .appare.r2 { transition-delay: .12s; } .js .appare.r3 { transition-delay: .18s; }

/* ============ tablet ============ */
@media (max-width: 1320px) { .testa-az .tel span { display: none; } .testa .cont { gap: 18px; } }
@media (max-width: 1100px) {
  .cop-sfondo img { object-position: 78% 50%; }
  .cop-velo { background: linear-gradient(90deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.9) 40%, rgba(255,255,255,.4) 58%, rgba(255,255,255,0) 70%), linear-gradient(0deg, #fff 0%, rgba(255,255,255,0) 20%); }
  .cop-testo { max-width: 470px; }
  .menu, .testa-az .tel span { display: none; }
  .hamb { display: block; }
  .testa .cont { justify-content: space-between; }
  /* menu aperto: pannello a tutto schermo con le sezioni del sito */
  .menu-aperto { overflow: hidden; }
  .menu-aperto .testa { backdrop-filter: none; -webkit-backdrop-filter: none; background: #fff; border-color: var(--linea); }
  .menu-aperto .menu { display: flex; position: fixed; left: 0; right: 0; top: var(--altezza-testa); bottom: 0; flex-direction: column; gap: 0; padding: 14px 20px calc(24px + env(safe-area-inset-bottom)); background: #fff; overflow-y: auto; counter-reset: voce; animation: apri-menu .35s cubic-bezier(.2,.7,.2,1); }
  @keyframes apri-menu { from { opacity: 0; transform: translateY(-12px); } }
  .menu-aperto .menu > a { display: flex; align-items: baseline; gap: 14px; font-family: var(--titoli); font-style: italic; font-weight: 800; font-size: clamp(2rem, 7vw, 2.8rem); letter-spacing: 0; padding: 12px 4px; border-bottom: 1px solid var(--linea); color: var(--nero); }
  .menu-aperto .menu > a::before { counter-increment: voce; content: "0" counter(voce); font-size: .9rem; color: var(--arancio); }
  .menu-aperto .menu > a::after { display: none; }
  .menu-aperto .menu > a.att, .menu-aperto .menu > a:hover { color: var(--arancio); }
  .menu-aperto .menu .menu-contatti { display: grid; }
  .menu-aperto .menu .solo-menu { display: flex; }
  .cerca { grid-template-columns: 1fr; }
  .formula-sel { min-width: 0; }
  .cerca-campi { flex-wrap: wrap; }
  .cerca-campi .campo { flex: 1 1 200px; }
  .cerca-campi .btn { flex: 1 1 100%; }
  .servizi-griglia { grid-template-columns: 1fr; }
  .servizio { aspect-ratio: auto; min-height: 150px; }
  .griglia { grid-template-columns: 1fr 1fr; }
  .van-dentro { grid-template-columns: 1fr; }
  .van-scena { height: 340px; }
  .piede-griglia { grid-template-columns: 1fr 1fr; }
  .modulo { grid-template-columns: 1fr; }
  .lato { position: static; }
}
/* ============ telefono ============ */
@media (max-width: 760px) {
  :root { --altezza-testa: 64px; }
  body { padding-bottom: 74px; }
  .marchio img { height: 28px; }
  .testa-az .btn { display: none; }
  .copertina { display: block; min-height: 0; padding: 0 0 70px; }
  .cop-sfondo { position: relative; height: 64vw; min-height: 240px; }
  .cop-sfondo img { object-position: 60% 50%; }
  .cop-velo { background: linear-gradient(0deg, #fff 0%, #fff 6%, rgba(255,255,255,0) 40%); height: 64vw; min-height: 240px; bottom: auto; }
  .scie { height: 64vw; bottom: auto; }
  .cop-dentro { margin-top: 6px; }
  .cerca-box { margin-top: -40px; }
  .formula-sel span { font-size: 1rem; }
  .cerca-campi .campo { flex: 1 1 100%; }
  .servizi { grid-template-columns: 1fr 1fr; gap: 10px; }
  .servizio { aspect-ratio: auto; min-height: 140px; padding: 18px; }
  .categorie, .formule, .passi, .griglia, .contatti, .invito, .due, .righe, .servizi-extra { grid-template-columns: 1fr; }
  .formula { min-height: 340px; }
  .cat { min-height: 280px; }
  .ns-punti { flex-direction: column; align-items: stretch; }
  .ns-punti > div { justify-content: flex-start; }
  .vv-velo { background: linear-gradient(0deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.9) 45%, rgba(255,255,255,0) 75%); }
  .vai-veicoli { align-items: flex-end; min-height: 440px; }
  .vai-veicoli img { object-position: 75% 30%; }
  .vv-testo { padding-bottom: 110px; }
  .sch { grid-template-columns: 1fr; }
  .sch-testo { padding: 24px 22px; }
  .sch-testo h2 { font-size: 2.3rem; }
  .scelte { grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .scelta label { padding: 12px 4px; font-size: .8rem; }
  .scelta label svg { width: 44px; }
  .piede-griglia { grid-template-columns: 1fr; gap: 30px; }
  .barra-tel { display: grid; grid-template-columns: 1fr 1fr 1.3fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; background: #fff; border-top: 1px solid var(--linea); padding: 8px 8px calc(8px + env(safe-area-inset-bottom)); gap: 8px; box-shadow: 0 -10px 30px -16px rgba(0,0,0,.3); }
  .barra-tel a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; padding: 7px 4px; border-radius: 10px; color: var(--nero); text-decoration: none; font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; background: var(--chiaro); }
  .barra-tel a svg { width: 20px; height: 20px; fill: var(--arancio); }
  .barra-tel a.wa svg { fill: #1fae55; }
  .barra-tel a.prev { background: linear-gradient(100deg, var(--arancio), var(--arancio-2)); color: #fff; flex-direction: row; gap: 8px; font-family: var(--titoli); font-style: italic; font-weight: 800; font-size: 1.05rem; letter-spacing: .02em; }
  .barra-tel a.prev svg { fill: #fff; }
  .menu-aperto .barra-tel { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  #strada { display: none; }
  .scie { display: none; }
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .js .appare { opacity: 1; transform: none; }
}

/* ---------- auto a 360° ---------- */
.giro360 { position: relative; aspect-ratio: 1200 / 750; overflow: hidden; background: linear-gradient(180deg, #fff, #faf9f7); cursor: grab; touch-action: pan-y; user-select: none; -webkit-user-select: none; outline: none; }
.giro360:focus-visible { box-shadow: inset 0 0 0 3px var(--arancio); }
.giro360.tocca { cursor: grabbing; }
.g-sfondo { position: absolute; inset: 0; width: 100%; height: 100%; }
.g-ombra { position: absolute; left: 10%; right: 10%; bottom: 4%; height: 12%; background: radial-gradient(ellipse at center, rgba(43,42,40,.14) 0%, transparent 70%); }
.g-auto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; pointer-events: none; }
.g-aiuto { position: absolute; left: 50%; bottom: 12px; transform: translateX(-50%); display: flex; gap: 8px; align-items: center; background: rgba(255,255,255,.92); padding: 6px 14px; border-radius: 99px; font-size: .74rem; font-weight: 700; color: var(--grafite); box-shadow: 0 6px 20px -10px rgba(0,0,0,.4); opacity: 0; transition: opacity .4s; pointer-events: none; }
.giro360.pronto .g-aiuto { opacity: 1; }
.giro360.usato .g-aiuto { opacity: 0; }
.g-aiuto svg { width: 30px; height: 14px; stroke: var(--arancio); stroke-width: 2.4; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.g-carica { position: absolute; left: 25%; right: 25%; top: 50%; height: 4px; background: var(--linea); border-radius: 4px; overflow: hidden; }
.g-carica i { display: block; height: 100%; width: 0; background: var(--arancio); transition: width .2s; }
.giro360.pronto .g-carica { display: none; }
.badge360 { position: absolute; left: 12px; bottom: 12px; display: inline-flex; align-items: center; gap: 6px; background: #fff; color: var(--arancio); font-family: var(--titoli); font-style: italic; font-weight: 800; font-size: .95rem; padding: 4px 10px; border-radius: 8px; box-shadow: 0 6px 16px -8px rgba(0,0,0,.35); }

.v-360 { position: absolute; inset: 0; background: linear-gradient(180deg, #fff, #faf9f7); }
.v-360 .g-auto { transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.veicolo:hover .v-360 .g-auto { transform: scale(1.04); }
.sch-360 { height: 100%; min-height: 300px; display: flex; align-items: center; background: linear-gradient(180deg, #fff, #faf9f7); }
.sch-360 .giro360 { width: 100%; }

/* foto delle auto create dai modelli 3D e visore 3D nella scheda */
.v-studio { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 85%, #ecebe8 0%, #f8f7f5 45%, #fff 75%); }
.v-studio img { width: 100%; height: 100%; object-fit: contain; transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.veicolo:hover .v-studio img { transform: scale(1.05); }
.sch-3d { position: relative; aspect-ratio: 4 / 3; background: radial-gradient(ellipse at 50% 85%, #ecebe8 0%, #f8f7f5 45%, #fff 75%); display: grid; place-items: center; overflow: hidden; }
.sch-3d > img { width: 100%; height: 100%; object-fit: contain; }
.sch-3d .v-foto { position: absolute; inset: 0; aspect-ratio: auto; }
.sch-3d iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.sotto-foto { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding: 14px 16px 4px; }
.sotto-foto[hidden] { display: none; }
.sotto-foto span { font-size: .8rem; font-weight: 600; color: var(--grigio); }
.carica-3d { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); font-weight: 700; color: var(--grafite); background: rgba(255,255,255,.9); padding: 10px 16px; border-radius: 99px; pointer-events: none; }
.sch-3d:not(.in-caricamento) .carica-3d { display: none; }
.crediti-3d { margin: 0; padding: 8px 12px; font-size: .7rem; color: var(--grigio); }
.colori i.cliccabile { cursor: pointer; width: 26px; height: 26px; transition: transform .2s; }
.colori i.cliccabile:hover, .colori i.scelto { transform: scale(1.15); box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--arancio); }

/* passando col mouse sulla scheda: l'auto "avanza" con le scie di luce */
.v-studio { overflow: hidden; isolation: isolate; }
.v-studio::before { content: ""; position: absolute; inset: 30% -20% 18% -20%; z-index: -1; opacity: 0; transform: translateX(30%);
  background: repeating-linear-gradient(0deg, transparent 0 14px, rgba(234,91,33,.18) 14px 16px, transparent 16px 38px);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 40%, #000 60%, transparent); mask-image: linear-gradient(90deg, transparent, #000 40%, #000 60%, transparent);
  transition: opacity .4s, transform .9s cubic-bezier(.2,.7,.2,1); }
.veicolo:hover .v-studio::before { opacity: 1; transform: translateX(-10%); }
.veicolo:hover .v-studio img { transform: translateX(-4%) scale(1.06); }
.v-studio img { transition: transform .7s cubic-bezier(.2,.7,.2,1); }
@media (prefers-reduced-motion: reduce) { .veicolo:hover .v-studio img { transform: none; } .v-studio::before { display: none; } }

/* foto naturali delle auto (con il loro sfondo): riempiono il riquadro */
.v-studio { background: #eceae6; }
.v-studio img, .sch-3d > img { object-fit: cover; }
.v-studio::before { display: none; }
.veicolo:hover .v-studio img { transform: scale(1.06); }
.v-studio::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.18) 0%, transparent 28%); pointer-events: none; }

/* immagini IMAGIN: la scena riempie il riquadro; il giro 360 su sfondo chiaro */
.sch-imagin { aspect-ratio: 16 / 10; }
.sch-imagin > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sch-imagin .giro360 { width: 100%; height: 100%; aspect-ratio: auto; }

/* "Ogni veicolo e' la tua scelta": schede con foto */
.cat-foto { position: relative; display: block; aspect-ratio: 4 / 3.4; border-radius: 22px; overflow: hidden; text-decoration: none; color: #fff; isolation: isolate; box-shadow: var(--ombra); }
.cat-foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.cat-foto::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, transparent 45%, rgba(20,18,16,.78) 100%); }
.cat-foto:hover img { transform: scale(1.07); }
.cf-testo { position: absolute; left: 24px; right: 24px; bottom: 22px; display: flex; flex-direction: column; gap: 6px; }
.cf-testo .num { font-family: var(--titoli); font-style: italic; font-weight: 800; color: var(--arancio-2); }
.cf-testo b { font-family: var(--titoli); font-style: italic; font-weight: 800; text-transform: uppercase; font-size: 2.6rem; line-height: .9; }
.cf-testo .vai { color: #fff; margin-top: 6px; }
.cat-foto:hover .vai i { transform: translateX(8px); }
/* sezione van: foto vera che entra e "viaggia" sulla strada */
.van-foto { position: absolute; left: 0; right: 0; margin: 0 auto; bottom: 34px; width: min(100%, 560px); height: auto; filter: drop-shadow(0 18px 18px rgba(0,0,0,.28)); transform: translateX(-120%); opacity: 0; transition: transform 1.6s cubic-bezier(.2,.7,.2,1), opacity .6s; }
.van.vista .van-foto { transform: none; opacity: 1; animation: sobbalza 2.4s ease-in-out 1.6s infinite; }
.strada-linee { bottom: 40px; }

/* domande: categorie come schede */
.chiedi-cat button { padding: 10px 16px; font-size: .82rem; }
.faq { min-height: 260px; }

/* tendina "Che auto desideri?" */
.con-catalogo { position: relative; }
.catalogo { position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 40; max-height: 320px; overflow-y: auto; background: #fff; border-radius: 14px; box-shadow: 0 24px 50px -18px rgba(43,42,40,.45), 0 0 0 1px var(--linea); padding: 6px; text-align: left; }
.catalogo[hidden] { display: none; }
.cat-marca { position: sticky; top: -6px; background: #fff; padding: 8px 10px 4px; font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--arancio); }
.catalogo button { display: block; width: 100%; text-align: left; border: 0; background: none; padding: 9px 12px; border-radius: 9px; font-size: .95rem; cursor: pointer; color: var(--nero); }
.catalogo button b { font-weight: 700; }
.catalogo button:hover, .catalogo button.attiva { background: var(--tenue); color: var(--arancio-scuro); }
.desidero.con-catalogo .catalogo { top: calc(100% + 8px); }

/* ---------- galleria del van (home e pagina dedicata) ---------- */
.galleria-van { position: relative; aspect-ratio: 16 / 9; border-radius: 28px; overflow: hidden; background: #1a1918; color: #fff; isolation: isolate; box-shadow: var(--ombra); }
.galleria-van.grande { aspect-ratio: auto; height: clamp(520px, 82vh, 820px); border-radius: 0; box-shadow: none; }
.gv-slide { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity 1.4s ease; z-index: -2; }
.gv-slide.attiva { opacity: 1; }
.gv-slide img { width: 100%; height: 100%; object-fit: cover; }
.gv-slide.attiva img { animation: camera 7.5s ease-out both; }
@keyframes camera { from { transform: scale(1.08) translate(1%, .5%); } to { transform: scale(1) translate(0, 0); } }
.galleria-van::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(18,17,16,.78) 0%, rgba(18,17,16,.45) 38%, rgba(18,17,16,0) 65%), linear-gradient(0deg, rgba(18,17,16,.55) 0%, transparent 35%); }
.gv-testo { position: absolute; left: clamp(22px, 5vw, 64px); bottom: clamp(56px, 7vw, 84px); max-width: 520px; }
.gv-testo h1 { font-size: clamp(3.2rem, 8vw, 6.4rem); line-height: .84; margin: 0 0 14px; }
.gv-testo h1 span { display: block; font-size: .5em; line-height: 1; margin-top: .22em; white-space: nowrap; color: var(--arancio-2); }
.gv-testo .briciole { color: rgba(255,255,255,.7); }
.gv-didascalia { display: inline-block; font-family: var(--titoli); font-style: italic; font-weight: 800; text-transform: uppercase; font-size: clamp(1.4rem, 2.6vw, 2.1rem); line-height: 1; margin-bottom: 10px; animation: didascalia .8s cubic-bezier(.2,.7,.2,1); }
.gv-testo p { color: rgba(255,255,255,.88); font-weight: 500; margin: 0 0 22px; }
.gv-az { display: flex; gap: 12px; flex-wrap: wrap; }
.gv-punti { position: absolute; left: clamp(22px, 5vw, 64px); right: clamp(22px, 5vw, 64px); bottom: 24px; display: flex; gap: 8px; }
.gv-punti button { flex: 1; height: 4px; border: 0; padding: 0; border-radius: 4px; background: rgba(255,255,255,.3); cursor: pointer; overflow: hidden; }
.gv-punti i { display: block; height: 100%; width: 0; background: var(--arancio-2); }
.gv-punti button.visto i { width: 100%; }
.gv-punti button.attivo i { animation: barra 6s linear forwards; }
@keyframes barra { to { width: 100%; } }
.gv-freccia { position: absolute; top: 50%; transform: translateY(-50%); width: 48px; height: 48px; border-radius: 50%; border: 0; background: rgba(255,255,255,.18); backdrop-filter: blur(6px); cursor: pointer; display: grid; place-items: center; opacity: 0; transition: opacity .3s, background .2s; }
.gv-freccia svg { width: 20px; height: 20px; fill: none; stroke: #fff; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.gv-prima { left: 16px; } .gv-dopo { right: 16px; }
.galleria-van:hover .gv-freccia { opacity: 1; }
.gv-freccia:hover { background: var(--arancio); }
.servizi-extra.chiari { margin-top: 22px; }
.servizi-extra.chiari > a { display: flex; align-items: center; gap: 14px; padding: 22px 24px; border-radius: 20px; background: #fff; border: 1px solid var(--linea); color: var(--nero); text-decoration: none; transition: border-color .2s, transform .3s, box-shadow .3s; }
.servizi-extra.chiari > a:hover { border-color: var(--arancio); transform: translateY(-4px); box-shadow: var(--ombra); }
.servizi-extra.chiari svg { width: 30px; height: 30px; margin: 0; fill: var(--arancio); flex-shrink: 0; }
.servizi-extra.chiari h3 { font-size: 1.5rem; }
/* pagina del van */
.mosaico-van { display: grid; grid-template-columns: 1.4fr 1fr; grid-template-rows: 1fr 1fr; gap: 12px; aspect-ratio: 16 / 11; }
.mosaico-van img { width: 100%; height: 100%; object-fit: cover; border-radius: 20px; min-height: 0; }
.mosaico-van img:first-child { grid-row: span 2; }
.occasioni { list-style: none; padding: 0; margin: 0 auto 10px; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; max-width: 900px; }
.occasioni li { padding: 10px 18px; border-radius: 99px; background: var(--tenue); color: var(--arancio-scuro); font-weight: 700; font-size: .9rem; }
@media (max-width: 760px) {
  .galleria-van { aspect-ratio: 4 / 5; border-radius: 22px; }
  .galleria-van.grande { height: 82vh; }
  .galleria-van::after { background: linear-gradient(0deg, rgba(18,17,16,.85) 0%, rgba(18,17,16,.35) 55%, transparent 80%); }
  .gv-testo { right: 22px; bottom: 52px; }
  .gv-freccia { display: none; }
  .servizi-extra.chiari { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .gv-slide.attiva img { animation: none; } }
@keyframes didascalia { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* preventivo: percorso del van 9 posti */
#modulo .solo-van { display: none; }
#modulo.per-van .solo-van { display: block; }
#modulo.per-van span.solo-van { display: inline; }
#modulo.per-van .solo-auto, #modulo.per-van #auto-lunga { display: none !important; }
#modulo.per-van #date:not([hidden]) { display: grid !important; }
.van-scelto { margin-top: 16px; animation: compare-van .5s cubic-bezier(.2,.7,.2,1); }
@keyframes compare-van { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.vs-foto { position: relative; border-radius: 18px; overflow: hidden; aspect-ratio: 16 / 7; margin-bottom: 14px; }
.vs-foto img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 66%; }
.vs-foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(18,17,16,.7), rgba(18,17,16,0) 60%); }
.vs-foto span { position: absolute; left: 22px; bottom: 18px; z-index: 1; color: #fff; font-family: var(--titoli); font-style: italic; font-weight: 800; text-transform: uppercase; font-size: clamp(1.6rem, 3.4vw, 2.4rem); line-height: .95; }
.vs-foto small { display: block; font-family: Montserrat, sans-serif; font-style: normal; font-weight: 600; text-transform: none; font-size: .85rem; color: rgba(255,255,255,.85); margin-top: 6px; letter-spacing: .02em; }
/* scelta del van: il primo libero, Ford Transit o Renault Trafic */
.van-scelta { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 14px; }
.vsc { position: relative; }
.vsc input { position: absolute; opacity: 0; pointer-events: none; }
.vsc label { display: flex; flex-direction: column; height: 100%; border: 2px solid var(--linea); border-radius: 16px; overflow: hidden; cursor: pointer; background: #fff; transition: border-color .2s, box-shadow .2s, transform .2s; }
.vsc label:hover { transform: translateY(-2px); }
.vsc-foto { display: flex; aspect-ratio: 16 / 10; background: #1a1918; overflow: hidden; }
.vsc-foto img { flex: 1; min-width: 0; width: 100%; height: 100%; object-fit: cover; }
.vsc-foto.doppia img + img { border-left: 3px solid #fff; }
.vsc b { padding: 10px 12px 0; font-family: var(--titoli); font-style: italic; font-weight: 800; text-transform: uppercase; font-size: 1.15rem; line-height: 1; }
.vsc small { padding: 4px 12px 12px; font-size: .74rem; font-weight: 500; color: var(--grigio); }
.vsc input:checked + label { border-color: var(--arancio); box-shadow: 0 10px 24px -14px rgba(234,91,33,.7); }
.vsc input:checked + label b { color: var(--arancio); }
.vsc input:focus-visible + label { outline: 3px solid var(--arancio); outline-offset: 2px; }
@media (max-width: 560px) { .van-scelta { grid-template-columns: 1fr 1fr; } .vsc:first-child { grid-column: span 2; } .vsc:first-child .vsc-foto { aspect-ratio: 16 / 7; } }
.v-foto .tag.nuovo { top: 40px; background: var(--nero); }
.v-foto .tag.nuovo::before { content: "★ "; color: var(--arancio-2); }
.vs-guida label svg { width: 30px; height: 30px; fill: var(--arancio); stroke: none; }
.vs-guida label small { font-family: Montserrat, sans-serif; font-style: normal; text-transform: none; font-size: .78rem; font-weight: 500; }
@media (max-width: 760px) { .vs-foto { aspect-ratio: 16 / 9; } .mosaico-van { aspect-ratio: auto; grid-template-columns: 1fr 1fr; grid-template-rows: auto; } .mosaico-van img:first-child { grid-row: auto; grid-column: span 2; aspect-ratio: 16 / 10; } .mosaico-van img { aspect-ratio: 1; } }

@media (max-width: 560px) {
  .formula-sel label { padding: 0 6px; }
  .formula-sel span { font-size: .92rem; white-space: normal; text-align: center; line-height: 1; }
}

/* copertina viva (sito/assets/copertina.js): il disegno animato prende il posto della foto ferma */
.cop-viva { position: absolute; inset: 0; width: 100%; height: 100%; display: block; animation: compare-viva .6s ease both; }
@keyframes compare-viva { from { opacity: 0; } to { opacity: 1; } }
.copertina.viva .scie { display: none; }
.js .copertina:not(.ferma) .cop-sfondo img { opacity: 0; animation: mostra-foto .6s 3s forwards; }
@keyframes mostra-foto { to { opacity: 1; } }
.cop-viva { animation-duration: .9s; }

/* =====================================================================
   RIFINITURA ELEGANTE: stessi colori e stesso stile, piu' cura nei dettagli
   (ombre morbide al posto dei bordi piatti, scie del logo appena accennate,
   luce che segue il mouse sulle schede, titoli con la sfumatura del logo)
   ===================================================================== */
:root {
  --ombra-morbida: 0 1px 2px rgba(43,42,40,.04), 0 10px 26px -14px rgba(43,42,40,.16), 0 30px 60px -40px rgba(43,42,40,.22);
  --ombra-alta: 0 2px 4px rgba(43,42,40,.04), 0 22px 44px -18px rgba(43,42,40,.22), 0 44px 90px -46px rgba(234,91,33,.35);
  --bordo-fine: rgba(43,42,40,.07);
  --sfumatura: linear-gradient(95deg, var(--arancio) 10%, var(--arancio-2) 80%);
  --scie-fini: repeating-linear-gradient(-14deg, transparent 0 64px, rgba(234,91,33,.045) 64px 65px, transparent 65px 150px);
}
::selection { background: var(--arancio); color: #fff; }
html { scrollbar-width: thin; scrollbar-color: rgba(234,91,33,.55) transparent; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }

/* etichetta sopra i titoli: una freccia sottile, come quella del logo */
.occhiello { gap: .8em; letter-spacing: .26em; font-size: .74rem; }
.occhiello::before { width: 30px; height: 9px; background: linear-gradient(90deg, rgba(234,91,33,0), currentColor 70%);
  clip-path: polygon(0 42%, 72% 42%, 72% 0, 100% 50%, 72% 100%, 72% 58%, 0 58%); }

/* titoli: la seconda parte con la sfumatura del logo */
.titolo-sez span, .testata-pag h1 span { background: var(--sfumatura); -webkit-background-clip: text; background-clip: text; color: transparent; padding-right: .08em; }
.titolo-sez { letter-spacing: -.003em; }

/* pulsanti: un riflesso di luce che passa al passaggio del mouse */
.btn::after { content: ""; position: absolute; inset: 0; z-index: -1; transform: skewX(-12deg); border-radius: 6px; pointer-events: none;
  background: linear-gradient(105deg, transparent 38%, rgba(255,255,255,.38) 50%, transparent 62%) no-repeat; background-size: 260% 100%; background-position: 130% 0; transition: background-position .8s cubic-bezier(.2,.7,.2,1); }
.btn:hover::after { background-position: -30% 0; }
.btn.vuoto::after, .btn.bianco::after { background-image: linear-gradient(105deg, transparent 38%, rgba(234,91,33,.16) 50%, transparent 62%); }

/* testata: quando scendi, ombra leggera invece della riga */
.testa.scesa { border-color: transparent; box-shadow: 0 1px 0 rgba(43,42,40,.05), 0 14px 34px -26px rgba(43,42,40,.45); }

/* copertina: etichette in vetro */
.vantaggi li { background: rgba(255,255,255,.72); border-color: rgba(43,42,40,.06); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); box-shadow: 0 6px 16px -12px rgba(43,42,40,.4); }
.vantaggi li:first-child { background: var(--sfumatura); border-color: transparent; box-shadow: 0 10px 22px -12px rgba(234,91,33,.7); }
.cerca { box-shadow: 0 1px 2px rgba(43,42,40,.05), 0 30px 70px -34px rgba(43,42,40,.4), 0 0 0 1px var(--bordo-fine); }

/* schede: ombre morbide e bordo quasi invisibile */
.formula:not(.top), .passo, .c-voce, .faq details, .pagamenti span, .servizi-extra.chiari > a, .riquadro:not(.arancio-pieno), .servizio, .ns-punti > div {
  border-color: var(--bordo-fine); box-shadow: var(--ombra-morbida); }
.formula:not(.top):hover, .passo:hover, .c-voce:hover, .servizi-extra.chiari > a:hover { box-shadow: var(--ombra-alta); border-color: var(--bordo-fine); }
.c-voce { position: relative; overflow: hidden; transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s; }
.c-voce:hover { transform: translateY(-3px); }
.passo { transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s; }
.passo:hover { transform: translateY(-5px); }
.formula.top { box-shadow: 0 30px 60px -32px rgba(234,91,33,.65); }

/* una linea arancio sottile che si accende in cima alla scheda */
.formula:not(.top)::after, .passo::after, .c-voce::after { content: ""; position: absolute; left: 22px; right: 22px; top: 0; height: 3px; border-radius: 0 0 3px 3px;
  background: var(--sfumatura); transform: scaleX(0); transform-origin: left; transition: transform .55s cubic-bezier(.2,.7,.2,1); }
.formula:not(.top):hover::after, .passo:hover::after, .c-voce:hover::after { transform: scaleX(1); }

/* luce che segue il mouse (le coordinate le mette sito.js) */
.formula:not(.top), .passo, .c-voce { --luce: 0; background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 0%), rgba(234,91,33, calc(.09 * var(--luce))), transparent 65%), #fff; }
.formula.top { --luce: 0; background: radial-gradient(520px circle at var(--mx, 50%) var(--my, 0%), rgba(255,255,255, calc(.2 * var(--luce))), transparent 60%), linear-gradient(150deg, var(--arancio-2) 0%, var(--arancio) 55%, var(--arancio-scuro) 100%); }
.formula:hover, .passo:hover, .c-voce:hover { --luce: 1; }

/* icone tonde: sfumatura del logo e un filo d'ombra */
.c-voce .ico, .ns-punti .ico { background: linear-gradient(150deg, var(--arancio-2), var(--arancio)); box-shadow: 0 10px 20px -10px rgba(234,91,33,.75); }

/* domande: una barretta arancio a sinistra quando sono aperte */
.faq details { position: relative; overflow: hidden; }
.faq details::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--sfumatura); transform: scaleY(0); transform-origin: top; transition: transform .4s cubic-bezier(.2,.7,.2,1); }
.faq details[open]::before { transform: scaleY(1); }
.faq details[open] { border-color: var(--bordo-fine); box-shadow: var(--ombra-alta); }

/* sezioni chiare: luce arancio negli angoli e le scie del logo appena accennate */
.sez.chiara { background: radial-gradient(900px 420px at 100% 0%, rgba(234,91,33,.07), transparent 70%), radial-gradient(760px 380px at 0% 100%, rgba(234,91,33,.05), transparent 70%), var(--chiaro); }
.sez.chiara::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: var(--scie-fini);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 25%, #000 75%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0%, #000 25%, #000 75%, transparent 100%); }
.sez.chiara > .cont { position: relative; z-index: 1; }

/* foto delle schede: un filo di luce sul bordo */
.cat-foto, .vai-veicoli, .galleria-van:not(.grande) { box-shadow: 0 1px 2px rgba(43,42,40,.06), 0 30px 60px -34px rgba(43,42,40,.5); }
.cat-foto::before { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; box-shadow: inset 0 0 0 1px rgba(255,255,255,.12); pointer-events: none; }

/* comparsa: le cose arrivano anche "a fuoco", non solo dal basso */
.js .appare:not(.titolo-sez) { filter: blur(5px); transition: opacity .6s ease, transform .6s cubic-bezier(.2,.7,.2,1), filter .6s ease; }
.js .appare.vista:not(.titolo-sez) { filter: none; }

/* piede: linea sfumata in alto e la scritta GORENT appena accennata */
.piede { position: relative; overflow: hidden; border-top: 0; background: linear-gradient(180deg, #fff 0%, var(--chiaro) 38%); }
.piede::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: linear-gradient(90deg, var(--arancio), var(--arancio-2) 45%, rgba(234,91,33,0)); }
.piede::after { content: "GORENT"; position: absolute; right: -1.5vw; bottom: -3.4vw; z-index: 0; pointer-events: none; font-family: var(--titoli); font-style: italic; font-weight: 800;
  font-size: clamp(7rem, 19vw, 17rem); line-height: .8; color: transparent; -webkit-text-stroke: 1.5px rgba(234,91,33,.1); }
.piede > * { position: relative; z-index: 1; }

@media (prefers-reduced-motion: reduce) { .js .appare:not(.titolo-sez) { filter: none; } .btn::after { display: none; } }

/* =====================================================================
   STILE 2: numeri di sezione, angoli "a freccia", sezioni inclinate, timbro rotante
   ===================================================================== */
:root { --foglia: 30px 8px 30px 8px; --foglia-p: 20px 6px 20px 6px; --taglio: clamp(28px, 4.5vw, 70px); }

/* numeri grandi a contorno dietro i titoli */
.capo > div, .servizi-testa, .ns-dentro { position: relative; isolation: isolate; }
.num-sez { position: absolute; z-index: -1; left: -.12em; top: -.62em; font-family: var(--titoli); font-style: italic; font-weight: 800; font-size: clamp(6rem, 13vw, 11rem); line-height: 1;
  color: transparent; -webkit-text-stroke: 1.6px rgba(234,91,33,.28); letter-spacing: -.02em; pointer-events: none; user-select: none; }
.capo.centro .num-sez, .ns-dentro .num-sez { left: 50%; margin-left: -.55em; }
.js .num-sez.appare { opacity: 0; transform: translateX(-30px); filter: none; transition: opacity 1s ease, transform 1.2s cubic-bezier(.2,.7,.2,1); }
.js .capo.centro .num-sez.appare, .js .ns-dentro .num-sez.appare { transform: translateY(20px); }
.js .num-sez.appare.vista { opacity: 1; transform: none; }

/* angoli "a freccia": due tondi e due quasi vivi */
.formula, .servizio, .cat-foto, .vai-veicoli, .galleria-van:not(.grande), .invito, .riquadro, .mosaico-van img, .giro-van, .vs-foto, .cerca { border-radius: var(--foglia); }
.passo, .c-voce, .faq details, .servizi-extra.chiari > a, .pagamenti span, .modulo .blocco, .lato .riquadro { border-radius: var(--foglia-p); }
.cat-foto::before { border-radius: var(--foglia); }
.formula-sel { border-radius: 16px 5px 16px 5px; }
.formula-sel .cursore { border-radius: 12px 4px 12px 4px; }

/* sezioni chiare e no scoring: bordi tagliati in diagonale, come una strada in curva */
.sez.chiara, .noscoring { clip-path: polygon(0 var(--taglio), 100% 0, 100% calc(100% - var(--taglio)), 0 100%); margin: calc(var(--taglio) * -.5) 0; padding-top: calc(clamp(70px, 9vw, 120px) + var(--taglio) * .6); padding-bottom: calc(clamp(70px, 9vw, 120px) + var(--taglio) * .6); }
.noscoring { padding-top: calc(clamp(90px, 12vw, 160px) + var(--taglio) * .6); padding-bottom: calc(clamp(90px, 12vw, 160px) + var(--taglio) * .6); background: linear-gradient(180deg, var(--tenue) 0%, #fff 50%, var(--tenue) 100%); }
.sez.chiara + .sez, .noscoring + .sez { padding-top: calc(clamp(70px, 9vw, 120px) + var(--taglio) * .5); }

/* timbro rotante nella copertina */
.formule { position: relative; }
.timbro { position: absolute; z-index: 3; right: -34px; top: -58px; width: clamp(118px, 10vw, 150px); aspect-ratio: 1; border-radius: 50%;
  background: rgba(255,255,255,.78); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 18px 40px -20px rgba(43,42,40,.45), inset 0 0 0 1px rgba(234,91,33,.18);
  display: grid; place-items: center; }
.js .timbro { opacity: 0; transform: scale(.6) rotate(-40deg); transition: opacity .8s ease, transform 1.2s cubic-bezier(.2,.7,.2,1); }
.js .timbro.vista { opacity: 1; transform: none; }
.timbro-giro { position: absolute; inset: 0; width: 100%; height: 100%; animation: timbro-gira 22s linear infinite; }
.timbro text { font-family: var(--titoli); font-style: italic; font-weight: 800; text-transform: uppercase; font-size: 17px; letter-spacing: .12em; fill: var(--nero); }
.timbro-freccia { width: 24%; height: auto; fill: var(--arancio); filter: drop-shadow(0 4px 8px rgba(234,91,33,.45)); transform: translateX(8%); }
.timbro::after { content: ""; position: absolute; inset: 26%; border-radius: 50%; border: 1.5px dashed rgba(234,91,33,.35); }
@keyframes timbro-gira { to { transform: rotate(360deg); } }
@keyframes timbro-entra { from { opacity: 0; transform: scale(.6) rotate(-40deg); } to { opacity: 1; transform: none; } }
@media (max-width: 1100px) { .timbro { right: -8px; top: -50px; width: 112px; } }
@media (max-width: 760px) { .timbro { right: 4px; top: -44px; width: 96px; } .timbro text { font-size: 18px; } }
@media (prefers-reduced-motion: reduce) { .timbro-giro { animation: none; } }
@media (max-width: 760px) { :root { --taglio: 26px; } .num-sez { font-size: 6.4rem; top: -.5em; } }

/* =====================================================================
   CALENDARIO DI PRENOTAZIONE (sito/assets/calendario.js)
   ===================================================================== */
.cal-box { margin-top: 16px; }
.cal { position: relative; background: #fff; border-radius: var(--foglia-p, 18px); box-shadow: var(--ombra-morbida); border: 1px solid var(--bordo-fine, var(--linea)); padding: 18px 18px 14px; }
.cal.carica .cal-mesi { opacity: .45; pointer-events: none; }
.cal-testa { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 6px; }
.cal-stato { flex: 1; text-align: center; font-size: .82rem; font-weight: 600; color: var(--arancio-scuro); }
.cal-fr { width: 38px; height: 38px; border-radius: 50%; border: 1.5px solid var(--linea); background: #fff; cursor: pointer; display: grid; place-items: center; transition: border-color .2s, background .2s; }
.cal-fr svg { width: 16px; height: 16px; fill: none; stroke: var(--nero); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.cal-fr:hover:not(:disabled) { border-color: var(--arancio); background: var(--tenue); }
.cal-fr:disabled { opacity: .3; cursor: default; }
.cal-mesi { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 26px; transition: opacity .2s; }
.cal-mese h4 { font-size: 1.35rem; text-align: center; margin: 0 0 10px; }
.cal-griglia { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.cal-griglia b { font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--grigio); text-align: center; padding: 4px 0 6px; }
.cal-griglia button { position: relative; aspect-ratio: 1; border: 0; background: none; border-radius: 10px; font: inherit; font-size: .9rem; font-weight: 600; color: var(--nero); cursor: pointer; transition: background .15s, color .15s; }
.cal-griglia button:hover:not(:disabled) { background: var(--tenue); color: var(--arancio-scuro); }
.cal-griglia button.oggi::after { content: ""; position: absolute; left: 50%; bottom: 5px; width: 4px; height: 4px; margin-left: -2px; border-radius: 50%; background: var(--arancio); }
.cal-griglia button.passato { color: #c9c7c2; cursor: default; }
.cal-griglia button.occupato { color: #a9a6a0; background: repeating-linear-gradient(-45deg, #f1efec 0 4px, #e7e4df 4px 6px); cursor: not-allowed; text-decoration: line-through; }
.cal-griglia button.attesa { color: var(--arancio-scuro); background: repeating-linear-gradient(-45deg, #fff3ec 0 4px, #fde0cf 4px 6px); cursor: not-allowed; }
.cal-griglia button.mezzo { background: var(--tenue); color: var(--arancio-scuro); border-radius: 4px; }
.cal-griglia button.inizio, .cal-griglia button.fine { background: var(--sfumatura, var(--arancio)); color: #fff; box-shadow: 0 8px 16px -8px rgba(234,91,33,.8); }
.cal-griglia button.inizio { border-radius: 12px 4px 4px 12px; }
.cal-griglia button.fine { border-radius: 4px 12px 12px 4px; }
.cal-griglia button.inizio.fine { border-radius: 12px 4px 12px 4px; }
.cal-legenda { display: flex; flex-wrap: wrap; gap: 8px 18px; justify-content: center; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--linea); font-size: .76rem; font-weight: 600; color: var(--grigio); }
.cal-legenda span { display: inline-flex; align-items: center; gap: 6px; }
.cal-legenda i { width: 14px; height: 14px; border-radius: 4px; border: 1px solid var(--linea); }
.cal-legenda .l-libero { background: #fff; }
.cal-legenda .l-attesa { background: repeating-linear-gradient(-45deg, #fff3ec 0 3px, #fde0cf 3px 5px); border-color: #fde0cf; }
.cal-legenda .l-occupato { background: repeating-linear-gradient(-45deg, #f1efec 0 3px, #e2dfda 3px 5px); }
.cal-legenda .l-scelto { background: var(--sfumatura, var(--arancio)); border: 0; }
.cal-scelta { margin-top: 12px; display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }
.cal-scelta p { margin: 0; font-size: .9rem; color: var(--grafite); }
.cal-scelta span { flex: 1; min-width: 120px; padding: 10px 14px; border-radius: 12px 4px 12px 4px; background: var(--tenue); text-align: center; }
.cal-scelta small { display: block; font-size: .66rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--arancio); }
.cal-scelta b { font-family: var(--titoli); font-style: italic; font-weight: 800; text-transform: uppercase; font-size: 1.25rem; }
.stima { margin-top: 12px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 16px; padding: 16px 20px; border-radius: var(--foglia-p, 16px); background: linear-gradient(130deg, var(--arancio-2), var(--arancio)); color: #fff; box-shadow: 0 20px 40px -24px rgba(234,91,33,.8); }
.stima span { font-weight: 600; }
.stima b { font-family: var(--titoli); font-style: italic; font-weight: 800; font-size: 2rem; line-height: 1; }
.stima small { grid-column: 1 / -1; opacity: .85; font-size: .76rem; }
.cal-nota { margin: 14px 0 0; padding: 12px 16px; border-radius: 12px; background: var(--tenue); color: var(--arancio-scuro); font-size: .88rem; font-weight: 600; }
@media (max-width: 640px) { .cal { padding: 14px 10px 12px; } .cal-griglia { gap: 2px; } }

/* ricerca in copertina: calendario delle disponibilita' */
.campo-date { text-align: left; cursor: pointer; background: #fff; font: inherit; }
.campo-date b { font-weight: 600; font-size: .95rem; color: var(--nero); }
.campo.evidenzia { border-color: var(--arancio); box-shadow: 0 0 0 3px rgba(234,91,33,.2); }
.cerca-cal { grid-column: 1 / -1; margin-top: 10px; }
.cerca-cal .cal { box-shadow: none; }

/* preventivo: auto d'epoca per eventi */
#modulo .solo-evento { display: none; }
#modulo.per-evento .solo-evento { display: block; }
#modulo.per-evento .solo-auto, #modulo.per-evento #auto-lunga, #modulo.per-evento #calendario-box, #modulo.per-evento #cal-nota { display: none !important; }
#modulo.per-evento #date { display: grid !important; }
#modulo.per-evento legend .solo-auto + .solo-van { display: inline; }

/* ===== slogan "Noleggio, la tua migliore scelta" (dal volantino Go Rent) ===== */
.slogan { display: inline-flex; flex-direction: column; align-items: center; text-align: center; line-height: 1; color: var(--nero); }
.slogan .sl-1 { font-family: var(--testo); font-weight: 400; font-size: clamp(2.4rem, 5vw, 3.4rem); letter-spacing: .01em; }
.slogan .sl-onda { width: 100%; height: 16px; margin: 4px 0 8px; overflow: visible; }
.slogan .sl-onda path { fill: none; stroke: var(--arancio); stroke-width: 4; stroke-linecap: round; stroke-dasharray: 340; stroke-dashoffset: 340; animation: sl-disegna 1.4s cubic-bezier(.4,0,.2,1) .3s forwards; }
.slogan .sl-2 { font-family: var(--testo); font-weight: 700; font-size: clamp(1.05rem, 2vw, 1.4rem); }
@keyframes sl-disegna { to { stroke-dashoffset: 0; } }
.slogan.piccolo { align-items: flex-start; text-align: left; margin: 2px 0 18px; }
.slogan.piccolo .sl-1 { font-size: 1.9rem; } .slogan.piccolo .sl-2 { font-size: 1rem; } .slogan.piccolo .sl-onda { width: 190px; height: 12px; }
.slogan.bianco { color: #fff; align-items: flex-start; margin-bottom: 18px; }
.slogan.bianco .sl-onda path { stroke: #fff; }
.slogan.bianco .sl-1 { font-size: 2rem; } .slogan.bianco .sl-2 { font-size: 1.05rem; } .slogan.bianco .sl-onda { width: 200px; }
.riq-slogan { display: grid; place-items: center; padding: 38px 24px; background: #fff; }
@media (prefers-reduced-motion: reduce) { .slogan .sl-onda path { animation: none; stroke-dashoffset: 0; } }

/* ===== no scoring: il numero sopra, senza coprire il titolo ===== */
.ns-dentro .num-sez { position: static; display: block; margin: 0 auto 18px; left: auto; font-size: clamp(4.5rem, 9vw, 7rem); line-height: .9; }

/* ===== van: pianta dei 9 posti ===== */
.pianta-van { position: relative; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 10px 34px; padding: 34px; border-radius: var(--foglia, 24px); background: #fff; box-shadow: var(--ombra-morbida); overflow: hidden; }
.pianta-van svg { width: clamp(150px, 18vw, 210px); height: auto; grid-row: span 2; }
.pv-nove { font-family: var(--titoli); font-style: italic; font-weight: 800; font-size: clamp(7rem, 13vw, 10rem); line-height: .8; color: transparent; -webkit-text-stroke: 2px var(--arancio); }
.pv-nove::after { content: "posti"; display: block; font-size: .2em; color: var(--nero); -webkit-text-stroke: 0; letter-spacing: .04em; text-transform: uppercase; margin-top: 8px; }
.pv-scocca { fill: #f6f5f2; stroke: #e4e1dc; stroke-width: 3; }
.pv-vetro { fill: #dfe6ec; }
.pv-posti rect { fill: var(--arancio); opacity: .88; }
.pv-posti .pv-autista { fill: var(--nero); opacity: 1; }
.pv-volante { fill: none; stroke: #fff; stroke-width: 3; }
.pv-bagagli { fill: none; stroke: var(--arancio); stroke-width: 2.5; stroke-dasharray: 6 5; }
.pianta-van text { font-family: var(--testo); font-weight: 700; font-size: 13px; letter-spacing: .14em; fill: var(--arancio); }
.pv-legenda { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; font-weight: 600; font-size: .92rem; align-self: start; }
.pv-legenda i { display: inline-block; width: 16px; height: 16px; border-radius: 5px; background: var(--arancio); margin-right: 10px; vertical-align: -3px; }
.pv-legenda .l-guida { background: var(--nero); } .pv-legenda .l-bag { background: none; border: 2px dashed var(--arancio); }
.js .pianta-van.vista .pv-posti rect { animation: pv-siedi .5s cubic-bezier(.2,.7,.2,1) both; }
.pv-posti rect:nth-child(2) { animation-delay: .06s !important; } .pv-posti rect:nth-child(3) { animation-delay: .12s !important; } .pv-posti rect:nth-child(4) { animation-delay: .18s !important; } .pv-posti rect:nth-child(5) { animation-delay: .24s !important; } .pv-posti rect:nth-child(6) { animation-delay: .3s !important; } .pv-posti rect:nth-child(7) { animation-delay: .36s !important; } .pv-posti rect:nth-child(8) { animation-delay: .42s !important; } .pv-posti rect:nth-child(9) { animation-delay: .48s !important; }
@keyframes pv-siedi { from { transform: translateY(14px); opacity: 0; } }
@media (max-width: 560px) { .pianta-van { grid-template-columns: 1fr; justify-items: center; text-align: center; } .pianta-van svg { grid-row: auto; } }

/* ---------- New entry: la nuova Clio in home ---------- */
.nuova-entrata { position: relative; display: grid; grid-template-columns: 1.35fr 1fr; margin-top: 26px; border-radius: var(--foglia); overflow: hidden; background: #fff; text-decoration: none; color: var(--nero); box-shadow: 0 1px 2px rgba(43,42,40,.06), 0 30px 60px -34px rgba(43,42,40,.5); isolation: isolate; }
.ne-foto { position: relative; display: block; min-height: 300px; overflow: hidden; }
.ne-foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% 60%; transition: transform 1s cubic-bezier(.2,.7,.2,1); }
.nuova-entrata:hover .ne-foto img { transform: scale(1.05); }
.ne-testo { position: relative; display: flex; flex-direction: column; justify-content: center; gap: 8px; padding: clamp(24px, 4vw, 48px); background: repeating-linear-gradient(-14deg, transparent 0 40px, rgba(43,42,40,.03) 40px 41px, transparent 41px 90px), linear-gradient(180deg, #fff, #f6f5f2); }
.ne-tag { position: absolute; top: 0; right: clamp(20px, 3vw, 36px); color: #fff; font-family: var(--titoli); font-style: italic; font-weight: 800; text-transform: uppercase; font-size: 1.05rem; padding: 7px 18px; isolation: isolate; }
.ne-tag::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--arancio-2); transform: skewX(-12deg); border-radius: 0 0 8px 8px; }
.ne-testo b { font-family: var(--titoli); font-style: italic; font-weight: 800; text-transform: uppercase; font-size: clamp(2.2rem, 4.4vw, 3.6rem); line-height: .88; }
.ne-testo b span { display: block; color: var(--arancio-2); font-size: 1.25em; }
.ne-sotto { font-weight: 500; font-size: 1.02rem; }
.ne-testo .vai { margin-top: 10px; }
.nuova-entrata:hover .vai i { transform: translateX(8px); }
@media (max-width: 760px) { .nuova-entrata { grid-template-columns: 1fr; } .ne-foto { min-height: 0; aspect-ratio: 16 / 10; } .ne-tag { top: auto; bottom: 100%; } }

/* ---------- pagina van: i due van e la disponibilita' ---------- */
.griglia-van { grid-template-columns: repeat(2, 1fr); }
.disp-van { margin-top: 28px; background: #fff; border-radius: var(--foglia); border: 1px solid var(--bordo-fine, var(--linea)); box-shadow: 0 1px 2px rgba(43,42,40,.05), 0 24px 50px -30px rgba(43,42,40,.4); padding: clamp(20px, 3.4vw, 36px); }
.dv-testa { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap; margin-bottom: 18px; }
.dv-testa h3 { font-family: var(--titoli); font-style: italic; font-weight: 800; text-transform: uppercase; font-size: 2rem; line-height: 1; margin: 4px 0 8px; }
.dv-testa p { margin: 0; max-width: 520px; color: var(--grigio); }
.dv-sel { display: flex; gap: 6px; padding: 5px; background: var(--tenue); border-radius: 14px; flex-wrap: wrap; }
.dv-sel input { position: absolute; opacity: 0; pointer-events: none; }
.dv-sel span { display: block; padding: 10px 16px; border-radius: 10px; font-weight: 700; font-size: .86rem; cursor: pointer; transition: background .2s, color .2s; }
.dv-sel input:checked + span { background: var(--arancio); color: #fff; }
.dv-sel input:focus-visible + span { outline: 3px solid var(--arancio); outline-offset: 2px; }
.disp-van .cal { box-shadow: none; border: 0; padding: 0; }
.dv-piede { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--linea); }
#dv-date { font-weight: 600; }
.dv-piede .btn[aria-disabled="true"] { opacity: .5; }
@media (max-width: 760px) { .griglia-van { grid-template-columns: 1fr; } }

/* ---------- copertina: lo slogan "Noleggio, la tua migliore scelta" dentro il titolo ---------- */
.cop-testo h1 .cop-onda { display: block; width: min(100%, 3.4em); height: .2em; margin: .1em 0 .08em; font-size: clamp(4rem, 8.4vw, 7.6rem); overflow: visible; }
.cop-onda path { fill: none; stroke: var(--arancio-2); stroke-width: 5; stroke-linecap: round; stroke-dasharray: 340; stroke-dashoffset: 340; animation: sl-disegna 1.4s cubic-bezier(.4,0,.2,1) .6s forwards; }
.cop-testo h1 .r-slogan { display: block; font-family: var(--testo); font-style: normal; font-weight: 700; text-transform: none; letter-spacing: .005em; color: var(--nero); font-size: clamp(1.15rem, 2vw, 1.7rem); line-height: 1.1; margin-bottom: .5em; }
.cop-testo h1 .r2 { font-size: clamp(1.8rem, 3.3vw, 3rem); }
@media (prefers-reduced-motion: reduce) { .cop-onda path { animation: none; stroke-dashoffset: 0; } }

/* galleria del van in home: tutta la foto porta alla pagina del van */
.galleria-van[data-link] { cursor: pointer; }

/* ---------- bianco con un po' di arancio: luci sfumate e scie appena accennate ---------- */
.copertina { background: radial-gradient(700px 520px at 0% 100%, rgba(234,91,33,.14), transparent 70%), radial-gradient(520px 380px at 30% 0%, rgba(234,91,33,.08), transparent 70%), #fff; }
.cop-velo { background:
  radial-gradient(560px 420px at 0% 95%, rgba(234,91,33,.13), transparent 70%),
  linear-gradient(90deg, rgba(255,250,246,.96) 0%, rgba(255,248,243,.9) 26%, rgba(255,248,243,.55) 40%, rgba(255,255,255,0) 52%),
  linear-gradient(0deg, #fff 0%, rgba(255,255,255,0) 20%); }
main > .sez:not(.chiara) { background: radial-gradient(820px 420px at 100% 0%, rgba(234,91,33,.15), transparent 70%), radial-gradient(700px 380px at 0% 100%, rgba(234,91,33,.11), transparent 70%), #fff; }
main > .sez:not(.chiara):nth-of-type(odd) { background: radial-gradient(820px 420px at 0% 0%, rgba(234,91,33,.15), transparent 70%), radial-gradient(700px 380px at 100% 100%, rgba(234,91,33,.11), transparent 70%), #fff; }
main > .sez:not(.chiara)::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: repeating-linear-gradient(-14deg, transparent 0 64px, rgba(234,91,33,.09) 64px 65px, transparent 65px 150px);
  -webkit-mask-image: radial-gradient(70% 60% at 85% 20%, #000, transparent 75%); mask-image: radial-gradient(70% 60% at 85% 20%, #000, transparent 75%); }
main > .sez:not(.chiara):nth-of-type(odd)::before { -webkit-mask-image: radial-gradient(70% 60% at 15% 80%, #000, transparent 75%); mask-image: radial-gradient(70% 60% at 15% 80%, #000, transparent 75%); }
main > .sez:not(.chiara) > .cont { position: relative; z-index: 1; }
/* tre scie arancio, come la freccia del logo, sul bordo delle sezioni */
main > .sez:not(.chiara)::after { content: ""; position: absolute; right: -30px; top: 46px; width: 260px; height: 46px; pointer-events: none; opacity: .75;
  background: linear-gradient(90deg, rgba(234,91,33,0), var(--arancio-2)) 100% 0 / 220px 6px no-repeat, linear-gradient(90deg, rgba(234,91,33,0), rgba(234,91,33,.6)) 100% 20px / 150px 4px no-repeat, linear-gradient(90deg, rgba(234,91,33,0), rgba(234,91,33,.35)) 100% 36px / 96px 3px no-repeat;
  transform: skewX(-30deg); }
main > .sez:not(.chiara):nth-of-type(odd)::after { right: auto; left: -30px; top: auto; bottom: 46px; transform: skewX(-30deg) scaleX(-1); }
@media (max-width: 760px) { main > .sez:not(.chiara)::after { width: 160px; opacity: .35; } }
/* copertina: cosa noleggiamo, in una riga */
.cop-sotto .cop-tipi { display: block; font-family: var(--titoli); font-style: italic; font-weight: 800; text-transform: uppercase; letter-spacing: .02em; font-size: clamp(1.25rem, 1.9vw, 1.6rem); line-height: 1.1; color: var(--nero); margin-bottom: 4px; }
