/* Wizard di prenotazione Libermoto — Fetta 2a.
 * Colori dal tema: verde #43d941, blu #243676. Tipografia ereditata (Poppins). */

.lmb-wiz {
	--lmb-green: #43d941;
	--lmb-blue: #243676;
	--lmb-line: #e3e5e3;
	--lmb-bg: #f5f6f5;
	max-width: 720px;
	margin: 0 auto;
	padding: 0 16px;          /* bordino laterale, soprattutto su mobile */
	box-sizing: border-box;
}

.lmb-wiz__title {
	margin: 0 0 10px;
	color: var(--lmb-green);
	font-size: 2em;
	font-weight: 800;
	line-height: 1.15;
}
.lmb-wiz__main { min-height: 160px; }
/* Tour "solo richiesta", ultimo step: lo step è vuoto (niente dati/paynote),
   il min-height lascerebbe solo un buco sopra l'avviso col modulo. */
.lmb-wiz--richiesta .lmb-wiz__main { min-height: 0; }

/* Scelte fatte, sotto il titolo: righe "Etichetta: valore" (etichetta non in grassetto) */
.lmb-wiz__chosen { margin: 0 0 14px; }
.lmb-wiz__chosen:empty { display: none; }
.lmb-wiz__chosen-row { padding: 2px 0; line-height: 1.4; }
.lmb-wiz__chosen-k { color: #777; font-weight: 400; }

/* Riga orizzontale prezzo: totale + anticipo */
.lmb-wiz__bar {
	display: flex; justify-content: space-between; align-items: baseline; gap: 16px;
	padding: 12px 2px; margin: 0 0 22px;
	border-top: 2px solid var(--lmb-line); border-bottom: 2px solid var(--lmb-line);
}
.lmb-wiz__bar-item { display: flex; align-items: baseline; gap: 8px; }
.lmb-wiz__bar-label { color: #777; font-size: .9em; }
.lmb-wiz__bar-tot { font-size: 1.5em; font-weight: 800; color: var(--lmb-blue); }
.lmb-wiz__bar-acc { font-size: 1.1em; font-weight: 700; color: var(--lmb-green); }

/* Nasconde davvero anche contro `.btn { display: … !important }` del tema. */
.lmb-wiz .lmb-hide { display: none !important; }

/* ---- Step ---- */
.lmb-wiz__h { margin: 0 0 14px; font-size: 1.35em; color: var(--lmb-blue); }
.lmb-wiz__field { margin: 0 0 18px; }
.lmb-wiz__label { display: block; font-weight: 400; color: #777; margin: 0 0 8px; }
.lmb-wiz__note { color: #777; font-size: .92em; margin: 0 0 12px; }

.lmb-wiz__opts { display: flex; flex-wrap: wrap; gap: 10px; }
.lmb-wiz__opts--stack { flex-direction: column; }
.lmb-wiz__opts--stack .lmb-wiz__opt { width: 100%; }

.lmb-wiz__opt {
	display: inline-flex; align-items: center; gap: 8px;
	border: 2px solid var(--lmb-line); border-radius: 12px;
	padding: 10px 14px; cursor: pointer; background: #fff;
	transition: border-color .15s, background .15s;
}
.lmb-wiz__opt:hover { border-color: var(--lmb-green); }
.lmb-wiz__opt input { accent-color: var(--lmb-green); }
.lmb-wiz__opt:has(input:checked) { border-color: var(--lmb-green); background: rgba(67, 217, 65, .08); }

/* Formula / Extra: righe leggere con pallino (o check) a sinistra e testo a destra */
.lmb-wiz__opt--row { justify-content: flex-start; padding: 12px 16px; }
.lmb-wiz__opt--row input { width: 18px; height: 18px; flex: 0 0 auto; }
.lmb-wiz__opt-main { font-weight: 600; }

/* Assicurazione: pallino + testo (titolo/sottotitolo) + prezzo a destra */
.lmb-wiz__opt--ins { justify-content: flex-start; padding: 12px 16px; }
.lmb-wiz__opt--ins input { width: 18px; height: 18px; flex: 0 0 auto; }
.lmb-wiz__opt-text { display: flex; flex-direction: column; }
.lmb-wiz__opt-sub { font-size: .85em; color: #777; }
.lmb-wiz__opt-price { margin-left: auto; font-weight: 700; color: var(--lmb-blue); white-space: nowrap; }

/* Opzione non disponibile (es. assicurazione fuori dalle fasce di durata) */
.lmb-wiz__opt--off { opacity: .5; }
.lmb-wiz__opt--off, .lmb-wiz__opt--off input { cursor: not-allowed; }
.lmb-wiz__opt--off .lmb-wiz__opt-price { color: #c0392b; font-weight: 600; font-size: .85em; }

/* Email */
.lmb-wiz__input {
	width: 100%; max-width: 380px; padding: 12px 14px;
	border: 2px solid var(--lmb-line); border-radius: 12px; font: inherit;
}
.lmb-wiz__field--2 { display: flex; gap: 12px; }
.lmb-wiz__field--2 .lmb-wiz__input { flex: 1; max-width: none; }
.lmb-wiz__input:focus { outline: none; border-color: var(--lmb-green); }
.lmb-wiz__err { color: #c0392b; font-size: .88em; margin: 6px 0 0; }
/* Note (textarea) e campo moto propria a tutta larghezza */
textarea.lmb-wiz__input { max-width: none; resize: vertical; min-height: 76px; font-family: inherit; }
.lmb-wiz__field[data-lmb-moto-propria] .lmb-wiz__input { max-width: none; }

/* Blocco "data imminente": messaggio d'allerta + modulo contatto */
.lmb-wiz__imminente { margin: 18px 0 0; }
.lmb-wiz__alert {
	background: #fdecea; color: #b02a1a; border: 1.5px solid #f3b4ab;
	border-radius: 12px; padding: 14px 16px; line-height: 1.45; margin: 0 0 14px;
	/* Peso normale: il grassetto lo mette il <strong> sulla prima frase. Prima era
	   600 su tutto il riquadro e anche il testo esplicativo sembrava in evidenza. */
	font-weight: 400;
}
.lmb-wiz__alert p { margin: 0 0 10px; }
.lmb-wiz__alert p:last-child { margin-bottom: 0; }
.lmb-wiz__imminente-form { margin-top: 6px; }
/* Variante informativa dell'alert: il tour "solo richiesta" non è un errore
   né un divieto, quindi azzurro e non rosso. */
.lmb-wiz__alert--info {
	background: #eef3fb; color: #243676; border-color: #b9c4e3;
}
.lmb-wiz__richiesta { margin: 18px 0 0; }

/* Riepilogo (step finale): box verde dati di contatto + nota pagamento */
.lmb-wiz__contact {
	background: rgba( 67, 217, 65, .10 );
	border: 1.5px solid var(--lmb-green);
	border-radius: 14px;
	padding: 16px 18px;
	margin: 0 0 16px;
}
.lmb-wiz__contact-h { font-weight: 700; color: var(--lmb-blue); margin: 0 0 8px; }
.lmb-wiz__contact-row { display: flex; justify-content: space-between; gap: 16px; padding: 5px 0; }
.lmb-wiz__contact-row span { color: #555; }
.lmb-wiz__paynote {
	background: var(--lmb-bg); border-radius: 12px; padding: 12px 14px;
	color: #444; font-size: .92em; line-height: 1.45; margin: 0;
}

.lmb-wiz__recap { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--lmb-line); }
.lmb-wiz__recap li {
	display: flex; justify-content: space-between; gap: 16px;
	padding: 10px 0; border-bottom: 1px solid var(--lmb-line);
}
.lmb-wiz__recap li span { color: #777; }

/* Messaggio errore in-app */
.lmb-wiz__flash {
	background: #fdecea; color: #c0392b; border: 1px solid #f5c6c0;
	border-radius: 10px; padding: 8px 12px; margin: 0 0 14px; font-size: .92em;
}

/* Riga statica quando c'è una sola opzione (città/data non selezionabili) */
.lmb-wiz__static { margin: 0 0 18px; }
.lmb-wiz__static .lmb-wiz__label { display: inline; margin-right: 6px; }

/* Separatore leggero verde: raggruppa le partenze per "in corso" / anno */
.lmb-wiz__annosep {
	display: flex; align-items: center; gap: 12px;
	margin: 16px 0 4px; color: #1a7a18; font-weight: 700; font-size: .95em;
}
.lmb-wiz__annosep:first-child { margin-top: 0; }
.lmb-wiz__annosep::after {
	content: ""; flex: 1; height: 2px; border-radius: 2px;
	background: rgba( 67, 217, 65, .35 );
}
/* Riga di una partenza già iniziata: visibile ma non selezionabile */
.lmb-wiz__incorso { padding: 9px 0; color: #777; }
.lmb-wiz__incorso em { font-style: normal; color: #9a9a9a; font-size: .92em; }

/* Nasconde i pulsanti "Prenota" sui tour senza partenze prenotabili.
   La classe è ripetuta apposta (.lmb-hide-cta.lmb-hide-cta): il tema dichiara
   `.btn { display: ... !important }`, che vince sullo stile inline e pareggia
   con un singolo selettore di classe. Raddoppiandola la specificità sale e vinciamo noi. */
.lmb-hide-cta.lmb-hide-cta { display: none !important; }

/* Elenco partenze sulla PAGINA del tour: separatore anno/"in corso" dentro la
   <ul class="arrow-bullets"> del tema. Colori espliciti: le var(--lmb-*) sono
   scoped a .lmb-wiz e qui siamo fuori dal wizard. */
.arrow-bullets li.lmb-anno {
	list-style: none;
	display: flex; align-items: center; gap: 12px;
	margin: 20px 0 8px;
	color: #1a7a18; font-weight: 700;
}
.arrow-bullets li.lmb-anno:first-child { margin-top: 0; }
/* Il pallino/freccia del tema non deve comparire sul separatore. */
.arrow-bullets li.lmb-anno::before { content: none !important; display: none !important; }
.arrow-bullets li.lmb-anno::after {
	content: ""; flex: 1; height: 2px; border-radius: 2px;
	background: rgba( 67, 217, 65, .35 );
}
.arrow-bullets li.lmb-li-incorso { color: #777; }
.arrow-bullets li.lmb-li-incorso em { font-style: normal; color: #9a9a9a; font-size: .92em; }

/* Nota disponibilità moto (solo dentro il wizard, mai sulla pagina del tour) */
.lmb-wiz__motonota {
	background: rgba( 67, 217, 65, .12 );
	border: 1.5px solid var(--lmb-green);
	border-left-width: 5px;
	border-radius: 12px;
	padding: 14px 17px;
	margin: 0 0 18px;
	/* Verde scuro, non il verde acceso del tema: su fondo verde chiaro quello
	   sarebbe illeggibile. Resta chiaramente verde ma si legge bene. */
	color: #1a7a18;
	font-weight: 700;
	font-size: 1.08em;
	line-height: 1.45;
}
.lmb-wiz__motonota-t { color: #14610f; }

/* ---- Carosello moto DENTRO il wizard: via riga verde e titolo (ridondanti col titolo step) ---- */
.lmb-wiz .lmb-carosello__sepwrap { display: none; }
.lmb-wiz .lmb-carosello__title { display: none; }
.lmb-wiz .lmb-carosello__head { justify-content: flex-end; margin-top: 0; }

/* ---- Navigazione ---- */
.lmb-wiz__nav { display: flex; gap: 12px; align-items: center; margin-top: 26px; }
.lmb-wiz__nav .btn { cursor: pointer; }
.lmb-wiz__next, .lmb-wiz__go { margin-left: auto; }

/* ---- Responsive ---- */
@media (max-width: 560px) {
	.lmb-wiz__title { font-size: 1.6em; }
	.lmb-wiz__bar { flex-direction: column; align-items: flex-start; gap: 6px; }
	.lmb-wiz__nav { flex-wrap: wrap; }
	.lmb-wiz__next, .lmb-wiz__go { margin-left: 0; }
}

/* ---- Etichette di stato delle partenze (wizard e pagina del tour) ---- */
.lmb-badge {
	display: inline-block;
	padding: 2px 8px;
	border-radius: 999px;
	font-size: .78em;
	font-weight: 700;
	letter-spacing: .02em;
	line-height: 1.5;
	vertical-align: middle;
	white-space: nowrap;
}
.lmb-badge--sold  { background: #e6e6e6; color: #6b6b6b; }
.lmb-badge--promo { background: #43d941; color: #10360f; }
.lmb-badge--early { background: rgba( 36, 54, 118, .10 ); color: #243676; }

/* Righe dell'elenco partenze sulla pagina del tour */
.arrow-bullets li.lmb-li-soldout { color: #9a9a9a; }
/* Legenda del "prenota prima" ([*] sulle righe): staccata dall'elenco, senza freccia. */
.arrow-bullets li.lmb-legenda { list-style: none; margin-top: 14px; }
.arrow-bullets li.lmb-legenda::before { content: none !important; display: none !important; }
/* La riga con special promo resta scritta come le altre: a segnalarla è il badge.
   La classe si tiene lo stesso, come aggancio, ma non altera il testo. */

/* ---- Tabella prezzi clonata dentro il wizard ----
   Il tema, da mobile, applica a .viaggio-prezzi `width:100vw` e un margine
   negativo per farla sfondare a tutta larghezza nella pagina prodotto: dentro
   il wizard quelle regole sballano il layout, quindi le neutralizziamo e la
   rendiamo scorrevole in orizzontale. */
.lmb-wiz__prezzi { margin: 0 0 18px; }
.lmb-wiz .viaggio-prezzi {
	width: auto !important;
	max-width: 100%;
	margin-left: 0 !important;
	margin-right: 0 !important;
	margin-top: 0 !important;
	overflow-x: auto !important;
}
.lmb-wiz .viaggio-prezzi table { min-width: 520px; }
/* Le icone moto nell'intestazione occupano troppo in un contenitore stretto. */
.lmb-wiz .viaggio-prezzi svg { max-height: 34px; width: auto; }

/* Via d'uscita in fondo al wizard: discreta, non deve competere col pagamento. */
.lmb-wiz__help {
	margin: 22px 0 0;
	padding-top: 16px;
	border-top: 1px solid #e3e5e3;
	text-align: center;
	color: #777;
	font-size: .95em;
}
.lmb-wiz__help-link { color: #1a7a18; font-weight: 700; text-decoration: underline; }

/* Schermata di conferma dopo l'invio del modulo di richiesta. */
.lmb-wiz__inviata {
	background: rgba( 67, 217, 65, .10 );
	border: 1.5px solid var(--lmb-green);
	border-radius: 14px;
	padding: 20px 22px;
	margin: 18px 0 0;
}
.lmb-wiz__inviata-t { margin: 0 0 6px; color: var(--lmb-blue); font-size: 1.25em; }
.lmb-wiz__inviata-p { margin: 0; line-height: 1.5; }
.lmb-wiz__inviata-recap ul { list-style: none; margin: 22px 0 0; padding: 22px 0 0; border-top: 1px solid rgba( 67, 217, 65, .45 ); }
.lmb-wiz__inviata-recap li { padding: 3px 0; }
.lmb-wiz__inviata-recap span { color: #777; }
