/* Bibi Parking – Prenotazioni: scheda "Quando parti?", listino, prenotazione a passi, biglietto, contatti, mappa.
   Usa i colori e i caratteri del tema (variabili in style.css); se mancano ci sono i valori di riserva.
   Numeri sempre dritti e larghi uguali (tabular-nums): prezzi, giorni, orari, codici. */

.bp-scope, .quando, .orario, .prenota, .prenota-fatto, .bp-biglietto-box, .modulo, .mappa {
  --bp-blu: var(--blu, #1848A8); --bp-blu-scuro: var(--blu-scuro, #123A85); --bp-azzurro: var(--azzurro, #EAF0FB);
  --bp-inchiostro: var(--inchiostro, #0F1C33); --bp-grigio: var(--grigio, #5B6577); --bp-tela: var(--tela, #F3F5F9);
  --bp-riga: var(--riga, #E2E7EF); --bp-verde: var(--verde, #12805C); --bp-rosso: var(--rosso, #C2331F); --bp-rosso-chiaro: var(--rosso-chiaro, #FCEDEA);
  --bp-curva: var(--curva-uscita, cubic-bezier(.16, 1, .3, 1));
}
.numeri, .prezzo { font-variant-numeric: tabular-nums; }
[data-totale], [data-giorni], [data-b], .prenota-sosta-totale { display: inline-block; }
.nowrap { white-space: nowrap; }
.trappola { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* --- Campi --------------------------------------------------------------------------------------- */

.campi { display: grid; gap: 14px; }
@media (min-width: 560px) { .campi { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .campo-intero { grid-column: 1 / -1; } }
.campo label { display: block; margin-bottom: 6px; font-weight: 500; font-size: .9375rem; }
.facoltativo { margin-left: 4px; font-weight: 400; font-size: .8125rem; color: var(--bp-grigio); }
.input, .select, .textarea {
  width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid #CBD3DF; border-radius: 12px; background: #fff;
  font: 400 1.0625rem/1.3 var(--f, inherit); color: var(--bp-inchiostro);
  transition: border-color .15s, box-shadow .15s;
}
.textarea { min-height: 96px; resize: vertical; }
.select { appearance: none; padding-right: 40px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B6577' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 10l5 5 5-5'/%3E%3C/svg%3E") right 12px center / 18px no-repeat; }
.input:focus, .select:focus, .textarea:focus { outline: none; border-color: var(--bp-blu); box-shadow: 0 0 0 3px rgba(24, 72, 168, .18); }
.input[aria-invalid="true"], .textarea[aria-invalid="true"] { border-color: var(--bp-rosso); box-shadow: 0 0 0 3px rgba(194, 51, 31, .12); }
.input::placeholder, .textarea::placeholder { color: #98A1B2; }
.aiuto { display: block; margin-top: 5px; font-size: .875rem; color: var(--bp-grigio); }
.errore-campo { display: block; margin-top: 6px; font-size: .875rem; font-weight: 500; color: var(--bp-rosso); }
.errore-campo[hidden] { display: none; }

/* Caselle (condizioni, privacy): grandi, tutta la riga si tocca */
.spunte { display: grid; gap: 10px; margin-top: 16px; }
.casella { display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; border: 1px solid var(--bp-riga); border-radius: 16px; background: #fff; font-size: .9375rem; line-height: 1.45; cursor: pointer; transition: border-color .15s, background-color .15s; }
.casella input { appearance: none; flex: none; display: grid; place-content: center; width: 24px; height: 24px; margin: 0; border: 2px solid #AEB8C8; border-radius: 7px; background: #fff; cursor: pointer; transition: background-color .15s, border-color .15s; }
.casella input::before { content: ''; width: 12px; height: 12px; background: #fff; clip-path: polygon(14% 52%, 0 66%, 38% 100%, 100% 22%, 86% 8%, 38% 72%); transform: scale(0); transition: transform .15s var(--bp-curva); }
.casella input:checked { border-color: var(--bp-blu); background: var(--bp-blu); }
.casella input:checked::before { transform: scale(1); }
.casella input:focus-visible { outline: 3px solid var(--bp-blu); outline-offset: 2px; }
.casella input[aria-invalid="true"] { border-color: var(--bp-rosso); }
.casella:has(input:checked) { border-color: rgba(24, 72, 168, .4); background: var(--bp-azzurro); }

/* Avvisi */
.avviso { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 16px; padding: 14px 16px; border-radius: 14px; font-size: .9375rem; line-height: 1.45; }
.avviso .icona { width: 20px; height: 20px; margin-top: 1px; }
.avviso-info { background: var(--bp-azzurro); color: var(--bp-inchiostro); }
.avviso-info .icona { color: var(--bp-blu); }
.avviso-ok { background: #E6F4EE; color: #0B4D37; }
.avviso-errore { background: var(--bp-rosso-chiaro); color: #7A1F12; }

/* --- Scheda "Quando parti?" ------------------------------------------------------------------------ */

.quando { padding: 18px; border: 1px solid rgba(15, 28, 51, .05); border-radius: 24px; background: #fff; box-shadow: var(--galleggia, 0 12px 32px -14px rgba(15, 28, 51, .32)); color: var(--bp-inchiostro); }
.quando-titolo { margin: 0 0 12px; font-size: 1.3125rem; }
.quando-date { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: stretch; gap: 4px; }
.quando-data { display: grid; align-content: start; gap: 2px; padding: 12px 12px 10px; border-radius: 16px; background: var(--bp-tela); transition: box-shadow .15s; }
.quando-data:focus-within { box-shadow: inset 0 0 0 2px var(--bp-blu); }
.quando-etichetta { font-size: .8125rem; font-weight: 500; color: var(--bp-grigio); }
.quando-giorno, .scheda-data-giorno { position: relative; display: flex; align-items: center; gap: 8px; min-height: 36px; font-size: 1.125rem; font-weight: 600; cursor: pointer; }
.quando-giorno .icona, .scheda-data-giorno .icona { flex: none; width: 18px; height: 18px; margin-left: auto; color: var(--bp-blu); }
.giorno-testo { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* il campo data vero sta sopra la scritta, trasparente: al tocco si apre il calendario del telefono */
.giorno-input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0; border: 0; opacity: 0; font-size: 16px; cursor: pointer; }
.giorno-input::-webkit-calendar-picker-indicator { position: absolute; inset: 0; width: 100%; height: 100%; cursor: pointer; }
.ora-select { appearance: none; width: auto; max-width: 100%; min-height: 32px; margin: 0; padding: 2px 22px 2px 0; border: 0; border-radius: 6px; background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B6577' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 10l5 5 5-5'/%3E%3C/svg%3E") right 2px center / 16px no-repeat; font: 500 1rem/1.2 var(--f, inherit); font-variant-numeric: tabular-nums; color: var(--bp-grigio); cursor: pointer; }
.ora-select:focus-visible { outline: 2px solid var(--bp-blu); outline-offset: 2px; }
.quando-freccia { display: grid; place-items: center; width: 22px; color: #9AA4B5; }
.quando-freccia .icona { width: 18px; height: 18px; }
.quando-risultato { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin: 14px 4px 12px; }
.quando-risultato[hidden] { display: none; }
.quando-giorni { margin: 0; font-size: 1rem; color: var(--bp-grigio); }
.quando-giorni .numeri { font-size: 1.125rem; font-weight: 600; color: var(--bp-inchiostro); }
.quando-totale { margin: 0; font-size: 2.125rem; font-weight: 600; line-height: 1; letter-spacing: -.01em; white-space: nowrap; }
.quando-errore, .prenota-errore, .prenota-invio-errore { margin: 12px 0; padding: 12px 14px; border-radius: 12px; background: var(--bp-rosso-chiaro); color: #7A1F12; font-size: .9375rem; line-height: 1.45; }
.quando-errore a, .prenota-errore a { color: #7A1F12; font-weight: 600; }
.quando-periodi, .prenota-periodi { margin: 0 4px 12px; font-size: .875rem; color: var(--bp-blu-scuro); }
.quando-note { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 12px 2px 0; padding: 0; font-size: .875rem; color: var(--bp-grigio); }
.quando-note li { display: flex; align-items: center; gap: 5px; }
.quando-note .icona { width: 16px; height: 16px; color: var(--bp-verde); stroke-width: 2.4; }
@media (max-width: 380px) { .quando { padding: 14px; } .quando-giorno { font-size: 1rem; } .quando-data { padding: 10px; } }

/* --- Listino: scheda a righe, due colonne (tre sul computer largo) ----------------------------------- */

.orario { overflow: hidden; border: 1px solid var(--bp-riga); border-radius: 20px; background: #fff; }
.orario-righe { list-style: none; margin: 0; padding: 4px 16px; display: grid; grid-auto-flow: column; grid-template-rows: repeat(var(--righe-2, 8), auto); column-gap: 24px; }
@media (min-width: 1100px) { .orario-righe { grid-template-rows: repeat(var(--righe-3, 6), auto); } }
.orario-righe li { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin: 0; padding: 11px 0; border-bottom: 1px solid var(--bp-riga); }
.orario-giorni { color: var(--bp-grigio); font-size: .9375rem; white-space: nowrap; }
.orario-prezzo { font-weight: 600; white-space: nowrap; }
.orario-extra { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; margin: 0; padding: 14px 16px; background: var(--bp-azzurro); font-size: .9375rem; }
.orario-extra strong { color: var(--bp-blu-scuro); font-size: 1.0625rem; }
.orario + .avviso { margin-top: 12px; }

/* --- Prenotazione a passi --------------------------------------------------------------------------- */

.prenota { max-width: 640px; margin-inline: auto; color: var(--bp-inchiostro); }
.prenota-testa { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; }
.prenota:not(.a-passi) .prenota-testa { display: none; }
.prenota-indietro { display: inline-flex; align-items: center; gap: 2px; min-height: 44px; margin-left: -8px; padding: 0 8px; border: 0; border-radius: 10px; background: none; color: var(--bp-blu); font: 500 1rem var(--f, inherit); cursor: pointer; }
.prenota-indietro:hover { background: rgba(24, 72, 168, .06); }
.prenota-indietro .icona { width: 20px; height: 20px; }
.prenota-indietro[hidden] { display: none; }
.prenota-avanzamento { flex: 1; list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin: 0; padding: 0; }
.prenota-avanzamento li { position: relative; padding-top: 12px; font-size: .8125rem; font-weight: 500; color: var(--bp-grigio); }
.prenota-avanzamento li::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; border-radius: 2px; background: var(--bp-riga); transition: background-color .3s; }
.prenota-avanzamento li.fatto::before, .prenota-avanzamento li.attivo::before { background: var(--bp-blu); }
.prenota-avanzamento li.attivo { color: var(--bp-inchiostro); font-weight: 600; }

.passo-titolo { margin: 0 0 16px; font-size: 1.5rem; outline: none; }
.prenota:not(.a-passi) .passo + .passo { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--bp-riga); }
.passo[hidden] { display: none; }
@keyframes bp-passo-avanti { from { opacity: 0; transform: translateX(28px); } }
@keyframes bp-passo-indietro { from { opacity: 0; transform: translateX(-28px); } }
.passo.entra-avanti { animation: bp-passo-avanti .34s var(--bp-curva) both; }
.passo.entra-indietro { animation: bp-passo-indietro .34s var(--bp-curva) both; }

/* Passo 1: due schede per le date */
.date-schede { display: grid; gap: 10px; }
.scheda-data { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 12px; padding: 14px 16px; border: 1px solid var(--bp-riga); border-radius: 18px; background: #fff; transition: border-color .15s, box-shadow .15s; }
.scheda-data:focus-within { border-color: var(--bp-blu); box-shadow: 0 0 0 3px rgba(24, 72, 168, .14); }
.scheda-data-etichetta { grid-column: 1 / -1; font-size: .875rem; font-weight: 500; color: var(--bp-grigio); }
.scheda-data-giorno { font-size: 1.375rem; min-height: 44px; }
.scheda-data-giorno .icona { margin-left: 4px; }
.scheda-data-ora .ora-select { min-height: 44px; padding: 4px 26px 4px 12px; border-radius: 12px; background-color: var(--bp-tela); background-position: right 6px center; font-size: 1.125rem; font-weight: 600; color: var(--bp-inchiostro); }
.durate { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 16px; }
.durate-etichetta { width: 100%; font-size: .875rem; font-weight: 500; color: var(--bp-grigio); }
.durata { min-height: 42px; padding: 0 16px; border: 1px solid var(--bp-riga); border-radius: 999px; background: #fff; color: var(--bp-inchiostro); font: 500 .9375rem var(--f, inherit); cursor: pointer; transition: background-color .15s, border-color .15s, color .15s, transform .15s; }
.durata:hover { border-color: #B9C4D6; }
.durata:active { transform: scale(.96); }
.durata[aria-pressed="true"] { border-color: var(--bp-blu); background: var(--bp-blu); color: #fff; }
.prenota-periodi { margin: 12px 0 0; }
.prenota-punti { list-style: none; display: grid; gap: 8px; margin: 20px 0 0; padding: 0; font-size: .9375rem; color: var(--bp-grigio); }
.prenota-punti li { display: flex; align-items: flex-start; gap: 8px; }
.prenota-punti .icona { width: 18px; height: 18px; margin-top: 2px; color: var(--bp-verde); stroke-width: 2.4; }

/* Passo 2: gruppi di campi */
.gruppo { min-width: 0; margin: 0 0 12px; padding: 16px; border: 1px solid var(--bp-riga); border-radius: 18px; background: #fff; }
.gruppo legend { float: left; width: 100%; margin: 0 0 14px; padding: 0; font-weight: 600; font-size: 1.0625rem; }
.gruppo legend + * { clear: both; }
.contatore { display: grid; grid-template-columns: 50px minmax(0, 1fr) 50px; gap: 8px; max-width: 230px; }
.contatore .input { text-align: center; -moz-appearance: textfield; font-weight: 600; }
.contatore .input::-webkit-outer-spin-button, .contatore .input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.contatore-btn { display: grid; place-items: center; height: 50px; border: 0; border-radius: 12px; background: var(--bp-azzurro); color: var(--bp-blu); cursor: pointer; transition: background-color .15s, transform .15s; }
.contatore-btn:hover { background: var(--azzurro-2, #D9E4F7); }
.contatore-btn:active { transform: scale(.94); }
.contatore-btn .icona { width: 20px; height: 20px; stroke-width: 2.2; }
.nota-aggiungi { margin-top: 4px; }
.nota-aggiungi summary { list-style: none; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--bp-blu); font-weight: 600; cursor: pointer; }
.nota-aggiungi summary::-webkit-details-marker { display: none; }
.nota-aggiungi summary::before { content: '+'; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--bp-azzurro); font-size: 1.125rem; line-height: 1; }
.nota-aggiungi[open] summary::before { content: '–'; }
.nota-aggiungi .campo { margin-top: 6px; }

/* Passo 3 e biglietto: come una carta d'imbarco (la riga tratteggiata con le due tacche è lo strappo) */
.riepilogo-pass, .biglietto { position: relative; overflow: hidden; border: 1px solid var(--bp-riga); border-radius: 22px; background: #fff; }
.pass-tratta { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 10px; padding: 18px; }
.pass-tratta > div { display: grid; gap: 2px; min-width: 0; }
.pass-tratta > div:last-child { text-align: right; }
.pass-etichetta { font-size: .8125rem; color: var(--bp-grigio); }
.pass-tratta strong { font-size: 1.25rem; line-height: 1.2; }
.pass-tratta .numeri { font-weight: 500; color: var(--bp-grigio); }
.pass-aereo { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--bp-azzurro); color: var(--bp-blu); }
.pass-aereo .icona { width: 20px; height: 20px; transform: rotate(90deg); fill: currentColor; stroke: none; }
.pass-dati { display: grid; gap: 10px; margin: 0; padding: 0 18px 14px; }
.pass-dati > div { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; }
.pass-dati > div[hidden] { display: none; }
.pass-dati dt { flex: none; font-size: .875rem; color: var(--bp-grigio); }
.pass-dati dd { margin: 0; font-weight: 500; text-align: right; overflow-wrap: anywhere; }
.pass-dati dd.a-capo { white-space: pre-line; }
.pass-totale, .biglietto-piede { position: relative; display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 16px 18px; border-top: 2px dashed var(--bp-riga); font-size: .9375rem; color: var(--bp-grigio); }
.pass-totale::before, .pass-totale::after, .biglietto-piede::before, .biglietto-piede::after { content: ''; position: absolute; top: -11px; width: 20px; height: 20px; border-radius: 50%; background: var(--bp-tela); box-shadow: inset 0 0 0 1px var(--bp-riga); }
.pass-totale::before, .biglietto-piede::before { left: -11px; }
.pass-totale::after, .biglietto-piede::after { right: -11px; }
.pass-totale strong, .biglietto-piede strong { font-size: 1.5rem; font-weight: 600; color: var(--bp-inchiostro); white-space: nowrap; }
.pass-nota { margin: 0; padding: 0 18px 16px; font-size: .875rem; color: var(--bp-blu-scuro); }
.pass-nota[hidden] { display: none; }

/* Barra in basso: giorni, prezzo e il pulsante per andare avanti; resta sempre a portata di pollice */
.prenota-barra {
  position: sticky; bottom: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: 14px;
  margin: 22px calc(-1 * var(--margine, 16px)) 0; padding: 12px var(--margine, 16px) calc(12px + env(safe-area-inset-bottom));
  background: rgba(255, 255, 255, .95); -webkit-backdrop-filter: saturate(1.6) blur(16px); backdrop-filter: saturate(1.6) blur(16px);
  border-top: 1px solid var(--bp-riga);
}
@media (min-width: 700px) { .prenota-barra { margin-inline: 0; padding: 12px 12px 12px 18px; border: 1px solid var(--bp-riga); border-radius: 20px; bottom: 16px; box-shadow: var(--galleggia, 0 12px 32px -14px rgba(15, 28, 51, .32)); } }
.prenota-sosta { display: grid; line-height: 1.15; min-width: 0; }
.prenota-sosta-giorni { font-size: .875rem; color: var(--bp-grigio); }
.prenota-sosta-totale { font-size: 1.5rem; font-weight: 600; white-space: nowrap; }
.prenota-avanti { flex: 0 1 auto; min-width: min(56%, 240px); }
.prenota-sotto { margin: 12px 0 0; font-size: .875rem; color: var(--bp-grigio); }
.prenota-invio-errore[hidden] { display: none; }
.prenota[aria-busy="true"] .prenota-avanti { opacity: .7; }

/* Fatto: spunta che si disegna, biglietto, cosa fare dopo */
.prenota-fatto, .bp-biglietto-box { max-width: 640px; margin-inline: auto; outline: none; }
.fatto-spunta { width: 64px; height: 64px; margin: 0 0 14px; }
.fatto-spunta svg { width: 100%; height: 100%; fill: none; stroke: var(--bp-verde); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.fatto-spunta circle { stroke-dasharray: 151; stroke-dashoffset: 0; animation: bp-cerchio .6s var(--bp-curva) both; }
.fatto-spunta path { stroke-dasharray: 34; stroke-dashoffset: 0; animation: bp-spunta .4s .45s var(--bp-curva) both; }
@keyframes bp-cerchio { from { stroke-dashoffset: 151; } }
@keyframes bp-spunta { from { stroke-dashoffset: 34; } }
.prenota-fatto h2 { margin: 0 0 6px; font-size: 1.75rem; }
.fatto-frase { margin: 0 0 18px; color: var(--bp-grigio); }
.fatto-frase strong { color: var(--bp-inchiostro); }
.biglietto-testa { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 18px; background: var(--bp-blu); color: #fff; }
.biglietto-marchio { font-weight: 600; }
.biglietto-numero { display: grid; text-align: right; line-height: 1.15; }
.biglietto-numero > span { font-size: .8125rem; color: rgba(255, 255, 255, .78); }
.biglietto-numero strong { font-size: 1.375rem; font-weight: 600; letter-spacing: .03em; }
.biglietto-nome { margin: 0; padding: 16px 18px 0; font-size: 1.25rem; font-weight: 600; }
.biglietto .pass-tratta { padding-top: 12px; }
.fatto-azioni { display: grid; gap: 10px; margin: 18px 0; }
@media (min-width: 560px) { .fatto-azioni { display: flex; flex-wrap: wrap; } }
ul.note { list-style: none; display: grid; gap: 14px; margin: 8px 0 0; padding: 0; }
ul.note li { display: flex; align-items: flex-start; gap: 12px; }
ul.note p { margin: 0; color: var(--bp-grigio); font-size: .9375rem; }
.bollo { display: grid; place-items: center; flex: none; width: 36px; height: 36px; border-radius: 12px; background: var(--bp-azzurro); color: var(--bp-blu); }
.bollo .icona { width: 20px; height: 20px; }

/* Aiuto al telefono (numeri grandi che chiamano al tocco) */
.bp-aiuto p { margin: 0 0 6px; color: var(--bp-grigio); }
.bp-numeri { display: flex; flex-wrap: wrap; gap: 8px 20px; }
a.bp-tel { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; font-size: 1.375rem; font-weight: 600; text-decoration: none; }
a.bp-tel .icona { width: 20px; height: 20px; }

/* --- Contatti --------------------------------------------------------------------------------------- */

.modulo { padding: clamp(18px, 4vw, 28px); border: 1px solid var(--bp-riga); border-radius: 20px; background: #fff; }
.modulo h2 { font-size: 1.375rem; }
.modulo .btn { margin-top: 16px; }
.ponte-contatti .wp-block-buttons { margin-top: 8px; }

/* --- Mappa ------------------------------------------------------------------------------------------ */

.mappa { overflow: hidden; border: 1px solid var(--bp-riga); border-radius: 20px; background: #fff; }
.mappa svg { display: block; width: 100%; height: auto; }
.mappa-testo { font-family: var(--f, sans-serif); }
.mappa-alone { paint-order: stroke; stroke: #EEF2F8; stroke-width: 6px; stroke-linejoin: round; }
.mappa-azioni { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px; }
.mappa-azioni .btn:first-child { flex: 1 1 100%; }
.mappa-azioni .btn:not(:first-child) { flex: 1 1 0; padding-inline: 12px; }
.mappa-osm { display: block; width: 100%; aspect-ratio: 16 / 10; border: 0; }

/* --- Stampa del biglietto ----------------------------------------------------------------------------- */

@media print {
  .site-header, .site-footer, .tab-bar, .fatto-azioni, .titolo-pagina .indietro, .fatto-spunta { display: none !important; }
  .biglietto { border: 1px solid #999; break-inside: avoid; }
  .biglietto-testa { background: #fff; color: #000; border-bottom: 1px solid #999; }
  .biglietto-numero > span { color: #333; }
}
@media (prefers-reduced-motion: reduce) {
  .passo.entra-avanti, .passo.entra-indietro, .fatto-spunta circle, .fatto-spunta path { animation: none !important; }
}
