/*! Blacklux Colori Sito Nuovo — versione 1.3.0 (grafite, struttura originale)
 *  Veste il calcolatore con i colori del sito nuovo; formato e caratteri restano quelli del calcolatore.
 *  Tocca SOLO il calcolatore (.blx-booking), la sua finestra «Più info» e il riquadro compatto.
 *  Il calcolatore non viene modificato. Le regole sono forti di proposito: i fogli del calcolatore usano molti !important.
 */

/* ---------- Colori: un solo posto da cambiare ---------- */
:root {
  --bln-lime: #CDDC39;
  --bln-lime-hover: #D9E84A;
  --bln-on-lime: #0A0C12;
  --bln-error: #FF8A80;
  --bln-ease: cubic-bezier(0.16, 0.84, 0.44, 1);
  --bln-text: #FFFFFF;
  --bln-line: rgba(255,255,255,0.10);
  --bln-line-strong: rgba(255,255,255,0.18);
  --bln-shadow: 0 14px 40px rgba(6,10,24,0.28);
  --bln-bg: #1D2026;
  --bln-panel: #24282F;
  --bln-panel-2: #2B3039;
  --bln-field: #181B20;
  --bln-soft: #E1E3E7;
  --bln-muted: #AEB3BD;
  --bln-ph: #959BA6;
  --bln-accent2: #E6D2A6;
  --bln-accent2-soft: rgba(230,210,166,0.40);
}
html body .blx-booking.blx-booking:not(#bln) {
  background: var(--bln-bg) !important;
  background-image: none !important;
  border-color: var(--bln-line) !important;
  color: var(--bln-soft) !important;
  color-scheme: dark;
  accent-color: var(--bln-lime);
  box-shadow: none !important;
}

/* ---------- 1. Testi: base chiara, secondari grigi ---------- */
html body .blx-booking.blx-booking:not(#bln) * {
  color: var(--bln-soft) !important;
  border-color: var(--bln-line) !important;
  text-shadow: none !important;
}
html body .blx-booking.blx-booking:not(#bln) :is(h1, h2, h3, h4, h5, strong, b, legend, dt, th, u,
  .blx-results-total, .blx-results-vehicle, .blx-trip-type, .blx-payment-title, .blx-route-from, .blx-route-to) {
  color: var(--bln-text) !important;
}
html body .blx-booking.blx-booking:not(#bln) :is(p, small, em, del, dd, .blx-lead, .blx-terms-hint, .blx-overview-date,
  .blx-side-distance, .blx-side-duration, .blx-route-arrival, .blx-route-start-time, .blx-preferenze-nota,
  .blx-r56-billing-note, .blx-ore-avviso, .blx-important-note) {
  color: var(--bln-muted) !important;
}
html body .blx-booking.blx-booking:not(#bln) a { color: var(--bln-lime) !important; }

/* ---------- 2. Superfici: cornici, schede, riquadri ---------- */
html body .blx-booking.blx-booking:not(#bln) :is(section.blx-step, .blx-results-card, aside.blx-results-card) {
  background: var(--bln-panel) !important;
  background-image: none !important;
  border-color: var(--bln-line) !important;
  box-shadow: var(--bln-shadow) !important;
}
html body .blx-booking.blx-booking:not(#bln) :is(
  article.blx-vehicle, .blx-start-fields, .blx-r56-section, .blx-coupon-box, .blx-payment,
  .blx-payment-choice, .blx-payment-option-body, .blx-payment-provider-stage, .blx-nla-payment,
  .blx-giftcard, .blx-private-area, .blx-preferenze, .blx-child-accessories, .blx-account-auto,
  .blx-ore-blocco, .blx-ore-conto, .blx-ore-avviso, .blx-ore-altrove, .blx-r56-toggle,
  .blx-passenger-same-check, .blx-luggage-capacity-note, .blx-r56-billing-note, .blx-date-row,
  .blx-rewards-optin-box, .blx-results-breakdown, .blx-language, .blx-extra-hours, .blx-stops,
  .blx-stop, .blx-return, .blx-roundtrip-option, .blx-home-footer) {
  background: var(--bln-panel-2) !important;
  background-image: none !important;
  border-color: var(--bln-line) !important;
  box-shadow: none !important;
}
html body .blx-booking.blx-booking:not(#bln) :is(article.blx-vehicle, .blx-start-fields, .blx-r56-section,
  .blx-coupon-box, .blx-payment, .blx-giftcard, .blx-private-area, .blx-preferenze, .blx-ore-blocco,
  .blx-extra-hours, .blx-stops, .blx-return, .blx-roundtrip-option) {
}
html body .blx-booking.blx-booking:not(#bln) :is(.blx-results-breakdown, .blx-date-row) { background: transparent !important; }
html body .blx-booking.blx-booking:not(#bln) :is(.blx-start-fields label, .blx-form-grid > label, label.wide, .blx-date-row label) {
  background: transparent !important;
  box-shadow: none !important;
}
html body .blx-booking.blx-booking:not(#bln) :is(.blx-route-map, .blx-car, .blx-child-accessory-image) {
  background: var(--bln-field) !important;
  background-image: none !important;
  border-color: var(--bln-line) !important;
}
html body .blx-booking.blx-booking:not(#bln) :is(.blx-car, .blx-car *) { color: var(--bln-lime) !important; }
html body .blx-booking.blx-booking:not(#bln) hr { border-color: var(--bln-line) !important; background: var(--bln-line) !important; }
html body .blx-booking.blx-booking:not(#bln) article.blx-vehicle:hover { border-color: var(--bln-line-strong) !important; }
html body .blx-booking.blx-booking:not(#bln) article.blx-vehicle:is(.selected, .active, .is-selected) {
  border-color: var(--bln-lime) !important;
  box-shadow: 0 0 0 1px var(--bln-lime) inset !important;
}

/* Etichette e pastiglie */
html body .blx-booking.blx-booking:not(#bln) :is(.blx-passenger-pill, .blx-side-distance, .blx-side-duration,
  .blx-route-duration, .blx-route-distance, .blx-route-chips span, .blx-payment-select-label, .blx-trust-line span) {
  background: transparent !important;
  background-image: none !important;
  border-color: var(--bln-line-strong) !important;
  color: var(--bln-soft) !important;
}
html body .blx-booking.blx-booking:not(#bln) .blx-route-line { background: var(--bln-line-strong) !important; }

/* ---------- 3. Campi da compilare ---------- */
html body .blx-booking.blx-booking:not(#bln) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea) {
  background: var(--bln-field) !important;
  background-color: var(--bln-field) !important;
  color: var(--bln-text) !important;
  border-color: var(--bln-line) !important;
  box-shadow: none !important;
  color-scheme: dark;
  transition: border-color 250ms var(--bln-ease);
}
html body .blx-booking.blx-booking:not(#bln) :is(input, select, textarea):hover { border-color: var(--bln-line-strong) !important; }
html body .blx-booking.blx-booking:not(#bln) :is(input, select, textarea):focus {
  border-color: var(--bln-lime) !important;
  outline: none !important;
  box-shadow: 0 0 0 1px var(--bln-lime) !important;
}
html body .blx-booking.blx-booking:not(#bln) :is(input, textarea)::placeholder { color: var(--bln-ph) !important; opacity: 1 !important; }
html body .blx-booking.blx-booking:not(#bln) select option { background: var(--bln-panel-2) !important; color: var(--bln-text) !important; }
html body .blx-booking.blx-booking:not(#bln) :is(input.error, input[aria-invalid="true"], .blx-error input) { border-color: var(--bln-error) !important; }
html body .blx-booking.blx-booking:not(#bln) input::-webkit-calendar-picker-indicator { filter: invert(0.75); }
html body .blx-booking.blx-booking:not(#bln) :is(input[type="checkbox"], input[type="radio"]) { accent-color: var(--bln-lime) !important; }

/* ---------- 4. Pulsanti ---------- */
/* Pulsanti secondari: trasparenti con bordo */
html body .blx-booking.blx-booking:not(#bln) button:not(.blx-primary):not([data-continue]):not([data-results-continue]):not(.blx-back) {
  background: transparent !important;
  background-image: none !important;
  color: var(--bln-text) !important;
  border-color: var(--bln-line-strong) !important;
  box-shadow: none !important;
  transition: border-color 250ms var(--bln-ease), background-color 250ms var(--bln-ease), color 250ms var(--bln-ease);
}
html body .blx-booking.blx-booking:not(#bln) button:not(.blx-primary):not([data-continue]):not([data-results-continue]):not(.blx-back):hover {
  border-color: var(--bln-lime) !important;
}
html body .blx-booking.blx-booking:not(#bln) button:not(.blx-primary):not([data-continue]):not([data-results-continue]):not(.blx-back) :is(span, b, small, strong) {
  color: inherit !important;
}
/* Pulsanti principali e «Scegli»: lime */
html body .blx-booking.blx-booking:not(#bln):not(#bln-2) :is(button.blx-primary, button[data-continue], button[data-results-continue],
  article.blx-vehicle button:not(.blx-info-button), .blx-coupon-box button, button.blx-giftcard-send) {
  background: var(--bln-lime) !important;
  background-image: none !important;
  color: var(--bln-on-lime) !important;
  border-color: var(--bln-lime) !important;
  box-shadow: none !important;
  transition: background-color 300ms var(--bln-ease);
}
html body .blx-booking.blx-booking:not(#bln):not(#bln-2) :is(button.blx-primary, button[data-continue], button[data-results-continue],
  article.blx-vehicle button:not(.blx-info-button), .blx-coupon-box button, button.blx-giftcard-send) * {
  color: var(--bln-on-lime) !important;
}
html body .blx-booking.blx-booking:not(#bln):not(#bln-2) :is(button.blx-primary, button[data-continue], button[data-results-continue],
  article.blx-vehicle button:not(.blx-info-button), .blx-coupon-box button, button.blx-giftcard-send):hover {
  background: var(--bln-lime-hover) !important;
  border-color: var(--bln-lime-hover) !important;
}
html body .blx-booking.blx-booking:not(#bln) :is(button.blx-primary, button[data-results-continue]):disabled {
  background: rgba(205,220,57,0.22) !important;
  border-color: transparent !important;
  color: rgba(255,255,255,0.55) !important;
}
html body .blx-booking.blx-booking:not(#bln) :is(button.blx-primary, button[data-results-continue]):disabled * { color: rgba(255,255,255,0.55) !important; }
/* «Indietro» e collegamenti testuali */
html body .blx-booking.blx-booking:not(#bln) button.blx-back {
  background: transparent !important;
  background-image: none !important;
  border-color: transparent !important;
  box-shadow: none !important;
  color: var(--bln-lime) !important;
}

/* Schede Transfer / A ore / Tour: attiva in lime */
html body .blx-booking.blx-booking:not(#bln) .blx-tabs { background: transparent !important; box-shadow: none !important; border-color: transparent !important; }
html body .blx-booking.blx-booking:not(#bln):not(#bln-2) .blx-tabs button {
  background: var(--bln-panel-2) !important;
}
html body .blx-booking.blx-booking:not(#bln):not(#bln-2) .blx-tabs button.active {
  background: var(--bln-lime) !important;
  border-color: var(--bln-lime) !important;
  color: var(--bln-on-lime) !important;
}
html body .blx-booking.blx-booking:not(#bln):not(#bln-2) .blx-tabs button.active * { color: var(--bln-on-lime) !important; }
/* Tasto di scambio */
html body .blx-booking.blx-booking:not(#bln):not(#bln-2) button.blx-swap-route { background: var(--bln-panel-2) !important; }

/* ---------- 5. Avanzamento in alto ---------- */
html body .blx-booking.blx-booking:not(#bln) nav.blx-progress {
  background: var(--bln-panel) !important;
  background-image: none !important;
  border-color: var(--bln-line) !important;
  box-shadow: none !important;
}
html body .blx-booking.blx-booking:not(#bln):not(#bln-2) nav.blx-progress button { border-color: transparent !important; background: transparent !important; }
html body .blx-booking.blx-booking:not(#bln) nav.blx-progress :is(b, i, span:first-child) {
  background: var(--bln-panel-2) !important;
  background-image: none !important;
  color: var(--bln-muted) !important;
}
html body .blx-booking.blx-booking:not(#bln) nav.blx-progress :is(.active, .done, [aria-current]) :is(b, i, span:first-child) {
  background: var(--bln-lime) !important;
  color: var(--bln-on-lime) !important;
}
html body .blx-booking.blx-booking:not(#bln) nav.blx-progress :is(.active, [aria-current]) { color: var(--bln-text) !important; }

/* Punti decorativi (partenza, destinazione, icone) */
html body .blx-booking.blx-booking:not(#bln) :is(.blx-route-point, .blx-results-route) :is(b, i) {
  background: var(--bln-lime) !important;
  background-image: none !important;
  color: var(--bln-on-lime) !important;
}
html body .blx-booking.blx-booking:not(#bln) .blx-stripe-logo { color: var(--bln-text) !important; }

/* Prezzo e totale ben visibili */
html body .blx-booking.blx-booking:not(#bln) :is(.blx-results-total, .blx-results-price) { color: var(--bln-text) !important; }


/* ---------- 6. Riepilogo, marchi di pagamento, scelte documento ---------- */
html body .blx-booking.blx-booking:not(#bln) :is(.blx-summary-card, .blx-selected-vehicle) {
  background: var(--bln-panel-2) !important;
  background-image: none !important;
  border-color: var(--bln-line) !important;
  box-shadow: none !important;
}
html body .blx-booking.blx-booking:not(#bln) .blx-payment-marks span {
  background: transparent !important;
  border-color: var(--bln-line-strong) !important;
  color: var(--bln-muted) !important;
}
html body .blx-booking.blx-booking:not(#bln) :is(.blx-child-accessory-grid label, .blx-r56-document-options label, .blx-r56-subject-options label) {
  background: var(--bln-panel-2) !important;
  background-image: none !important;
  border-color: var(--bln-line) !important;
}
html body .blx-booking.blx-booking:not(#bln) :is(.blx-child-accessory-grid label, .blx-r56-document-options label, .blx-r56-subject-options label):has(input:checked) {
  border-color: var(--bln-lime) !important;
}
html body .blx-booking.blx-booking:not(#bln) .blx-r56-toggle b {
  background: var(--bln-line-strong) !important;
  color: var(--bln-text) !important;
}
html body .blx-booking.blx-booking:not(#bln) .blx-r56-toggle:has(input:checked) b {
  background: var(--bln-lime) !important;
  color: var(--bln-on-lime) !important;
}


/* ---------- 7. Gift card e riga delle opzioni ---------- */
html body .blx-booking.blx-booking:not(#bln) :is(.blx-giftcard-form, .blx-options) {
  background: var(--bln-panel-2) !important;
  background-image: none !important;
  border-color: var(--bln-line) !important;
  box-shadow: none !important;
}
html body .blx-booking.blx-booking:not(#bln) .blx-options { background: transparent !important; }
html body .blx-booking.blx-booking:not(#bln) .blx-giftcard-form {
  border-color: var(--bln-line) !important;
  box-shadow: var(--bln-shadow) !important;
}

/* ---------- 8. Finestra «Più info» (sta fuori dal calcolatore, in fondo alla pagina) ---------- */
html body .blx-modal-overlay:not(#bln) .blx-modal-panel {
  background: var(--bln-panel) !important;
  background-image: none !important;
  border-color: var(--bln-line) !important;
  box-shadow: var(--bln-shadow) !important;
  color: var(--bln-soft) !important;
  color-scheme: dark;
}
html body .blx-modal-overlay:not(#bln) .blx-modal-panel * {
  color: var(--bln-soft) !important;
  border-color: var(--bln-line) !important;
}
html body .blx-modal-overlay:not(#bln) .blx-modal-panel :is(h2, h3, b, strong) { color: var(--bln-text) !important; }
html body .blx-modal-overlay:not(#bln) .blx-modal-panel :is(p, .blx-modal-class, .blx-modal-description) { color: var(--bln-muted) !important; }
html body .blx-modal-overlay:not(#bln) .blx-modal-panel .blx-capacity-icon,
html body .blx-modal-overlay:not(#bln) .blx-modal-panel .blx-capacity-icon * { color: var(--bln-lime) !important; }
html body .blx-modal-overlay:not(#bln) .blx-modal-panel hr { background: var(--bln-line) !important; }
html body .blx-modal-overlay:not(#bln) .blx-modal-actions {
  background: var(--bln-panel) !important;
  background-image: none !important;
  border-top-color: var(--bln-line) !important;
}
html body .blx-modal-overlay:not(#bln) :is(.blx-modal-close, .blx-modal-x) {
  background: transparent !important;
  background-image: none !important;
  border-color: var(--bln-line-strong) !important;
  color: var(--bln-text) !important;
  box-shadow: none !important;
}
html body .blx-modal-overlay:not(#bln) .blx-modal-x { }
html body .blx-modal-overlay:not(#bln) :is(.blx-modal-close, .blx-modal-x):hover { border-color: var(--bln-lime) !important; }
html body .blx-modal-overlay:not(#bln) .blx-modal-select {
  background: var(--bln-lime) !important;
  background-image: none !important;
  border-color: var(--bln-lime) !important;
  color: var(--bln-on-lime) !important;
  box-shadow: none !important;
}
html body .blx-modal-overlay:not(#bln) .blx-modal-select * { color: var(--bln-on-lime) !important; }
html body .blx-modal-overlay:not(#bln) .blx-modal-select:hover { background: var(--bln-lime-hover) !important; }


/* ---------- 9. Riquadro compatto delle pagine destinazione ---------- */
html body form.blx-widget-compatto.blx-widget-compatto:not(#bln) {
  background: var(--bln-panel) !important;
  border-color: var(--bln-line) !important;
  box-shadow: var(--bln-shadow) !important;
  color: var(--bln-soft) !important;
  color-scheme: dark;
}
html body form.blx-widget-compatto.blx-widget-compatto:not(#bln) :is(.blx-widget-titolo) { color: var(--bln-text) !important; }
html body form.blx-widget-compatto.blx-widget-compatto:not(#bln) .blx-widget-campo > span {
  color: var(--bln-muted) !important;
}
html body form.blx-widget-compatto.blx-widget-compatto:not(#bln) .blx-widget-servizi span {
  background: var(--bln-panel-2) !important;
  border-color: var(--bln-line-strong) !important;
  color: var(--bln-text) !important;
}
html body form.blx-widget-compatto.blx-widget-compatto:not(#bln) .blx-widget-servizi input:checked + span {
  background: var(--bln-lime) !important;
  border-color: var(--bln-lime) !important;
  color: var(--bln-on-lime) !important;
}
html body form.blx-widget-compatto.blx-widget-compatto:not(#bln) .blx-widget-servizi input:focus-visible + span {
  outline: 2px solid var(--bln-lime) !important;
}
html body form.blx-widget-compatto.blx-widget-compatto:not(#bln) input:not([type="radio"]) {
  background: var(--bln-field) !important;
  color: var(--bln-text) !important;
  border-color: var(--bln-line) !important;
  box-shadow: none !important;
  color-scheme: dark;
}
html body form.blx-widget-compatto.blx-widget-compatto:not(#bln) input:not([type="radio"]):focus {
  border-color: var(--bln-lime) !important;
  outline: none !important;
}
html body form.blx-widget-compatto.blx-widget-compatto:not(#bln) input::placeholder { color: var(--bln-ph) !important; opacity: 1 !important; }
html body form.blx-widget-compatto.blx-widget-compatto:not(#bln) input::-webkit-calendar-picker-indicator { filter: invert(0.75); }
html body form.blx-widget-compatto.blx-widget-compatto:not(#bln) .blx-widget-invia {
  background: var(--bln-lime) !important;
  background-image: none !important;
  color: var(--bln-on-lime) !important;
  border-color: var(--bln-lime) !important;
  box-shadow: none !important;
}
html body form.blx-widget-compatto.blx-widget-compatto:not(#bln) .blx-widget-invia:hover { background: var(--bln-lime-hover) !important; }


/* ---------- 11. Secondo colore: dettagli, icone, collegamenti ---------- */
html body .blx-booking.blx-booking:not(#bln) a,
html body .blx-booking.blx-booking:not(#bln):not(#bln-2) button.blx-back { color: var(--bln-accent2) !important; }
html body .blx-booking.blx-booking:not(#bln) :is(.blx-car, .blx-car *) { color: var(--bln-accent2) !important; }
html body .blx-booking.blx-booking:not(#bln) :is(.blx-route-point, .blx-results-route) :is(b, i) {
  background: var(--bln-accent2) !important;
  color: var(--bln-on-lime) !important;
}
html body .blx-booking.blx-booking:not(#bln) :is(.blx-passenger-pill, .blx-side-distance, .blx-side-duration,
  .blx-route-duration, .blx-route-distance, .blx-route-chips span, .blx-trust-line span, .blx-payment-marks span) {
  border-color: var(--bln-accent2-soft) !important;
  color: var(--bln-accent2) !important;
}
html body .blx-booking.blx-booking:not(#bln) nav.blx-progress .done :is(b, i, span:first-child) {
  background: var(--bln-accent2) !important;
  color: var(--bln-on-lime) !important;
}
html body .blx-booking.blx-booking:not(#bln):not(#bln-2) button:not(.blx-primary):not([data-continue]):not([data-results-continue]):not(.blx-back):hover {
  border-color: var(--bln-accent2) !important;
}
html body .blx-booking.blx-booking:not(#bln) :is(h4, .blx-results-head small, .blx-payment-select-label) { color: var(--bln-accent2) !important; }
html body .blx-modal-overlay:not(#bln) .blx-modal-panel :is(.blx-capacity-icon, .blx-capacity-icon *) { color: var(--bln-accent2) !important; }
html body form.blx-widget-compatto.blx-widget-compatto:not(#bln) .blx-widget-campo > span { color: var(--bln-accent2) !important; }


/* ---------- 12. Ultimi dettagli azzurri (1.2.0) ---------- */
html body .blx-booking.blx-booking:not(#bln) .blx-start-fields label::after,
html body .blx-booking.blx-booking:not(#bln) .blx-start-fields label::before {
  border-color: var(--bln-accent2) !important;
  color: var(--bln-accent2) !important;
}
html body .blx-booking.blx-booking:not(#bln):not(#bln-2) .blx-start-fields label.destination::after {
  background-color: var(--bln-accent2) !important;
  border-color: var(--bln-accent2) !important;
}
html body .blx-booking.blx-booking:not(#bln) .blx-summary-benefits span::before {
  color: var(--bln-accent2) !important;
  border-color: var(--bln-accent2) !important;
  outline-color: var(--bln-accent2) !important;
}
html body .blx-booking.blx-booking:not(#bln) .blx-r56-document-options label:has(input:checked) {
  box-shadow: 0 0 0 3px rgba(205,220,57,0.14) !important;
}


/* ---------- 13. Rete di sicurezza (1.2.1): tutti i fondi chiari del calcolatore diventano scuri.
   Elenco ricavato dai fogli del calcolatore 0.9.194.29. Cambiano solo i colori di fondo. ---------- */
html body:not(#bln) .blx-account-access,
html body:not(#bln) .blx-account-auto,
html body:not(#bln) .blx-add-return,
html body:not(#bln) .blx-applied-tariff,
html body:not(#bln) .blx-booking .blx-giftcard,
html body:not(#bln) .blx-booking .blx-giftcard-amounts button,
html body:not(#bln) .blx-booking .blx-giftcard-azioni [data-gift-back],
html body:not(#bln) .blx-booking .blx-giftcard-coupon button,
html body:not(#bln) .blx-booking .blx-giftcard-form,
html body:not(#bln) .blx-booking .blx-giftcard-intro [data-giftcard-toggle],
html body:not(#bln) .blx-booking .blx-giftcard-intro [data-giftcard-toggle]:hover,
html body:not(#bln) .blx-booking .blx-ore-altrove,
html body:not(#bln) .blx-booking .blx-ore-avviso,
html body:not(#bln) .blx-booking .blx-ore-blocco,
html body:not(#bln) .blx-booking .blx-ore-conto,
html body:not(#bln) .blx-booking .blx-ore-scelta button,
html body:not(#bln) .blx-booking .blx-preferenze,
html body:not(#bln) .blx-booking-extra-card,
html body:not(#bln) .blx-booking-extra-card>i,
html body:not(#bln) .blx-booking-extras,
html body:not(#bln) .blx-booking[data-step="3"] .blx-booking-extras,
html body:not(#bln) .blx-booking[data-step="3"] .blx-child-accessories,
html body:not(#bln) .blx-booking[data-step="3"] .blx-form-grid>label,
html body:not(#bln) .blx-booking[data-step="3"] .blx-wide-label,
html body:not(#bln) .blx-booking[data-step="4"] .blx-payment-plan,
html body:not(#bln) .blx-booking[data-step="4"] .blx-payment-plan-option>span,
html body:not(#bln) .blx-booking[data-step="4"] .blx-rewards-optin,
html body:not(#bln) .blx-booking[data-step="4"] .blx-rewards-optin-box,
html body:not(#bln) .blx-calculator .blx-account-access,
html body:not(#bln) .blx-calculator .blx-payment-choice-inline,
html body:not(#bln) .blx-calculator .blx-payment-option-body,
html body:not(#bln) .blx-calculator .blx-payment-select-label,
html body:not(#bln) .blx-car,
html body:not(#bln) .blx-child-accessories,
html body:not(#bln) .blx-child-accessory-grid label,
html body:not(#bln) .blx-coupon-box,
html body:not(#bln) .blx-date-row label,
html body:not(#bln) .blx-first-panel,
html body:not(#bln) .blx-info-button,
html body:not(#bln) .blx-luggage-capacity-note,
html body:not(#bln) .blx-modal-actions,
html body:not(#bln) .blx-modal-actions button,
html body:not(#bln) .blx-modal-panel,
html body:not(#bln) .blx-monthly-verification,
html body:not(#bln) .blx-payment-buttons button,
html body:not(#bln) .blx-payment-choice,
html body:not(#bln) .blx-payment-option-body,
html body:not(#bln) .blx-payment-option-monthly,
html body:not(#bln) .blx-payment-select-label,
html body:not(#bln) .blx-photo-dialog,
html body:not(#bln) .blx-photo-dialog>button,
html body:not(#bln) .blx-private-area,
html body:not(#bln) .blx-private-area-login,
html body:not(#bln) .blx-private-area.is-authenticated,
html body:not(#bln) .blx-r56-billing-note,
html body:not(#bln) .blx-r56-document-options>label,
html body:not(#bln) .blx-r56-payer-email-note,
html body:not(#bln) .blx-r56-section,
html body:not(#bln) .blx-r56-toggle,
html body:not(#bln) .blx-results-card,
html body:not(#bln) .blx-return-overview,
html body:not(#bln) .blx-rewards-terms-modal [data-rewards-terms-content],
html body:not(#bln) .blx-rewards-terms-modal>section,
html body:not(#bln) .blx-rewards-terms-x,
html body:not(#bln) .blx-route-facts span + span,
html body:not(#bln) .blx-route-map,
html body:not(#bln) .blx-route-overview,
html body:not(#bln) .blx-selected-vehicle,
html body:not(#bln) .blx-start-fields,
html body:not(#bln) .blx-start-fields>label,
html body:not(#bln) .blx-stop button,
html body:not(#bln) .blx-swap-route,
html body:not(#bln) .blx-vehicle,
html body:not(#bln) .blx-vehicle-actions a,
html body:not(#bln) .blx-vehicle-actions a.blx-interior-preview,
html body:not(#bln) .blx-vehicle-info,
html body:not(#bln) .blx-vehicle-info>button {
  background-color: var(--bln-panel-2) !important;
  background-image: none !important;
}
html body:not(#bln) .blx-booking .blx-language select,
html body:not(#bln) .blx-booking .blx-ore-scelta input,
html body:not(#bln) .blx-booking[data-step="3"] .blx-form-grid input,
html body:not(#bln) .blx-booking[data-step="3"] .blx-form-grid select,
html body:not(#bln) .blx-booking[data-step="3"] .blx-wide-label input,
html body:not(#bln) .blx-calculator .blx-existing-account-login input,
html body:not(#bln) .blx-coupon-box input,
html body:not(#bln) .blx-existing-account-login input,
html body:not(#bln) .blx-extra-hours select,
html body:not(#bln) .blx-first-panel .blx-stop input,
html body:not(#bln) .blx-first-panel .blx-stop select,
html body:not(#bln) .blx-form-grid input,
html body:not(#bln) .blx-form-grid select,
html body:not(#bln) .blx-form-grid textarea,
html body:not(#bln) .blx-language select,
html body:not(#bln) .blx-stop input,
html body:not(#bln) .blx-stop select,
html body:not(#bln) .blx-wide-label input {
  background-color: var(--bln-field) !important;
  background-image: none !important;
  color: var(--bln-text) !important;
}
html body:not(#bln) .blx-booking .blx-giftcard-amounts button.is-selected,
html body:not(#bln) .blx-booking[data-step="4"] .blx-payment-option>input:checked+.blx-payment-option-body,
html body:not(#bln) .blx-booking[data-step="4"] .blx-payment-plan-option>input:checked+span,
html body:not(#bln) .blx-booking[data-step="4"] .blx-rewards-optin:has(input[name="rewards_optin"]:checked),
html body:not(#bln) .blx-calculator .blx-payment-option>input:checked+.blx-payment-option-body,
html body:not(#bln) .blx-payment-option>input:checked+.blx-payment-option-body {
  background-color: var(--bln-panel-2) !important;
  background-image: none !important;
  border-color: var(--bln-lime) !important;
}

/* ---------- 14. Punti segnalati (1.2.1) ---------- */
/* Etichetta accanto al nome dell'auto (EXECUTIVE CHOICE e simili) */
html body .blx-booking.blx-booking:not(#bln):not(#bln-2) .blx-vehicle-badge {
  background: rgba(205,220,57,0.12) !important;
  background-image: none !important;
  border-color: var(--bln-lime) !important;
  color: var(--bln-lime) !important;
}
/* Pastiglia «Cancellazione gratuita» nel riepilogo */
html body .blx-booking.blx-booking:not(#bln):not(#bln-2) .blx-results-benefits .blx-benefit-cancel {
  background: rgba(205,220,57,0.12) !important;
  background-image: none !important;
  border-color: var(--bln-lime) !important;
  color: var(--bln-lime) !important;
}
html body .blx-booking.blx-booking:not(#bln):not(#bln-2) .blx-results-benefits span:not(.blx-benefit-cancel) {
  border-color: var(--bln-line-strong) !important;
  color: var(--bln-soft) !important;
}
/* Riquadro con la scadenza della cancellazione */
html body .blx-booking.blx-booking:not(#bln):not(#bln-2) .blx-results-cancel-text {
  background: var(--bln-field) !important;
  background-image: none !important;
  color: var(--bln-muted) !important;
}
html body .blx-booking.blx-booking:not(#bln):not(#bln-2) .blx-results-cancel-text :is(strong, b) {
  color: var(--bln-lime) !important;
}
/* Carte di pagamento: pastiglie chiare e ben leggibili */
html body .blx-booking.blx-booking:not(#bln):not(#bln-2) .blx-payment-marks span {
  background: #E1E3E7 !important;
  background-image: none !important;
  border-color: #E1E3E7 !important;
  color: #1D2026 !important;
}
/* Punto della tappa intermedia */
html body .blx-booking.blx-booking:not(#bln):not(#bln-2) .blx-route-stop i {
  background: var(--bln-accent2) !important;
  background-image: none !important;
}
/* Messaggi: errore, conferma, informazione */
html body .blx-booking.blx-booking:not(#bln):not(#bln-2) :is(.blx-booking-status, .blx-account-login-status, .blx-alert) {
  background: var(--bln-panel-2) !important;
  background-image: none !important;
  color: var(--bln-soft) !important;
}
html body .blx-booking.blx-booking:not(#bln):not(#bln-2) :is(.blx-booking-status, .blx-account-login-status)[data-type="error"] {
  background: rgba(255,138,128,0.12) !important;
  border-color: var(--bln-error) !important;
  color: #FFD2CD !important;
}
html body .blx-booking.blx-booking:not(#bln):not(#bln-2) :is(.blx-booking-status, .blx-account-login-status)[data-type="success"] {
  background: rgba(205,220,57,0.12) !important;
  border-color: var(--bln-lime) !important;
  color: #EEF4B8 !important;
}
html body .blx-booking.blx-booking:not(#bln):not(#bln-2) :is(.blx-booking-status, .blx-account-login-status)[data-type="info"] {
  background: rgba(230,210,166,0.12) !important;
  border-color: var(--bln-accent2) !important;
  color: #F3E8CF !important;
}


/* ---------- 15. Elenchi e testi sempre leggibili (1.2.2) ----------
   Vale anche per elenchi scritti nelle caratteristiche dell'auto o aggiunti da altri programmi.
   -webkit-text-fill-color segue sempre il colore: nessuna regola esterna può dipingere il testo di scuro. */
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) *,
html body .blx-modal-overlay:not(#bln):not(#bln-2):not(#bln-3) *,
html body form.blx-widget-compatto.blx-widget-compatto:not(#bln):not(#bln-2):not(#bln-3) * {
  -webkit-text-fill-color: currentColor !important;
}
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) :is(ul, ol, dl, li, dd, dt),
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) li :is(span, small, em, p, a, strong, b) {
  color: var(--bln-soft) !important;
}
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) li::marker {
  color: var(--bln-accent2) !important;
}
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) article.blx-vehicle :is(small, p:not(.blx-price)) {
  color: var(--bln-muted) !important;
}
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) article.blx-vehicle :is(small, p) li {
  color: var(--bln-soft) !important;
}
html body .blx-modal-overlay:not(#bln):not(#bln-2):not(#bln-3) .blx-modal-panel :is(ul, ol, li, li span) {
  color: var(--bln-soft) !important;
}


/* ---------- 16. Riquadro dell'auto trasparente (1.2.4) ----------
   Fondo trasparente, bordo trasparente (lo spessore resta, quindi nulla si sposta), nessuna ombra.
   Dimensioni e posizione dell'auto invariate. */
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) :is(.blx-car, article.blx-vehicle .blx-car) {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline-color: transparent !important;
}
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) .blx-car::before,
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) .blx-car::after {
  background: transparent !important;
  background-image: none !important;
  border-color: transparent !important;
  box-shadow: none !important;
}
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) .blx-car img {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border-color: transparent !important;
}


/* ---------- 17. Loghi ufficiali dei metodi di pagamento (1.2.6, altezza ridotta del 20% nella 1.2.7) ----------
   Ogni logo su una piccola carta bianca, così si legge anche sul grafite.
   Il nome del circuito resta nella pagina (non visibile) per chi usa un lettore vocale.
   Ordine del calcolatore: VISA, MC, AMEX, PayPal, Apple Pay, G Pay. */
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) .blx-payment-marks {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 7px !important;
}
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) .blx-payment-marks span {
  display: inline-block !important;
  box-sizing: border-box !important;
  width: 48px !important;
  height: 22.6px !important;
  margin: 0 !important;
  padding: 4px 7px !important;
  border: 1px solid rgba(255,255,255,0.18) !important;
  border-radius: 6px !important;
  background-color: #FFFFFF !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
  background-origin: content-box !important;
  box-shadow: 0 2px 6px rgba(0,0,0,0.25) !important;
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
}
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) .blx-payment-marks span:nth-child(1) { background-image: url("pagamenti/visa.svg") !important; }
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) .blx-payment-marks span:nth-child(2) { background-image: url("pagamenti/master.svg") !important; }
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) .blx-payment-marks span:nth-child(3) { background-image: url("pagamenti/american_express.svg") !important; padding: 2px !important; }
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) .blx-payment-marks span:nth-child(4) { background-image: url("pagamenti/paypal.svg") !important; }
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) .blx-payment-marks span:nth-child(5) { background-image: url("pagamenti/apple_pay.svg") !important; }
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) .blx-payment-marks span:nth-child(6) { background-image: url("pagamenti/google_pay.svg") !important; }


/* ---------- 18. Marchi Stripe e PayPal nella scelta del pagamento (1.2.8) ----------
   Ridotti del 25% rispetto alla grandezza originale (48 -> 36 px e 42 -> 31,5 px).
   Colori originali dei marchi su una targhetta bianca, come i loghi delle carte. */
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) .blx-payment-option .blx-stripe-logo,
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) .blx-payment-option .blx-paypal-logo {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0 !important;
  width: auto !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 6px 16px 9px !important;
  border-radius: 9px !important;
  background: #FFFFFF !important;
  background-image: none !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.25) !important;
}
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) .blx-payment-option .blx-stripe-logo {
  font-size: 36px !important;
  color: #635BFF !important;
  -webkit-text-fill-color: #635BFF !important;
}
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) .blx-payment-option .blx-paypal-logo {
  font-size: 31.5px !important;
}
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) .blx-payment-option .blx-paypal-logo b {
  color: #003087 !important;
  -webkit-text-fill-color: #003087 !important;
}
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) .blx-payment-option .blx-paypal-logo i {
  color: #009CDE !important;
  -webkit-text-fill-color: #009CDE !important;
}
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) .blx-payment-option .blx-paypal-logo::before {
  content: "" !important;
  display: inline-block !important;
  width: 0.62em !important;
  height: 0.74em !important;
  margin-right: 0.22em !important;
  background: url("pagamenti/paypal.svg") center / contain no-repeat !important;
}
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) .blx-payment-option-body {
  text-align: center !important;
}


/* ---------- 21. Caselle con gli angoli arrotondati (1.2.9) ---------- */
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]), select, textarea),
html body form.blx-widget-compatto.blx-widget-compatto:not(#bln):not(#bln-2):not(#bln-3) input:not([type="radio"]) {
  border-radius: 10px !important;
}


/* ---------- 22. Stessa altezza del calcolatore originale (1.3.0) ----------
   Loghi delle carte e targhette di Stripe e PayPal alti quanto le scritte originali,
   così la struttura resta identica al pixel. */
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) .blx-payment-option .blx-stripe-logo {
  height: 48px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  line-height: 1 !important;
  box-sizing: border-box !important;
}
html body .blx-booking.blx-booking:not(#bln):not(#bln-2):not(#bln-3) .blx-payment-option .blx-paypal-logo {
  height: 42px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  line-height: 1 !important;
  box-sizing: border-box !important;
}

@media (prefers-reduced-motion: reduce) {
  html body .blx-booking.blx-booking:not(#bln) * { transition-duration: 0ms !important; }
}
