:root{--primary-teal:#18baad;--primary-teal-dark:#00695c;--action-orange:#f97316;--action-orange-hover:#ea580c;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-700:#374151;--gray-900:#111827;--white:#fff;--shadow:0 0 15px 5px rgba(0,0,0,.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);--radius:5px}.autocomplete-item,.calendar-day,.detail-input,.toggle-container,button{cursor:pointer}.search{display:flex;justify-content:left;width:100%}.search-card{background:var(--white);border-radius:5px;box-shadow:var(--shadow);left:0;max-width:400px;overflow:visible;position:relative;right:0;top:0;width:100%;z-index:1}.search-card .head-src .links{background-color:transparent;display:flex;flex-direction:column;height:100%}.head-src{height:100%}.widget-search{border:0;border-radius:.3rem;box-shadow:0 0 20px rgba(0,60,60,.2)}.tabs{border-bottom:1px solid var(--gray-200);border-radius:5px 5px 0 0;display:flex;overflow:hidden}.tab-btn{background:var(--white);border:none;color:var(--gray-500);flex:1;font-size:1.2rem;font-weight:900;padding:14px;transition:background .2s,color .2s}.tab-btn.active{background-color:var(--primary-teal);color:var(--white)}.tab-btn:not(.active):hover{background-color:var(--gray-100)}.form-body{padding:20px;position:relative}.form-overlay{background-color:rgba(0,0,0,.25);border-radius:0 0 5px 5px;inset:0;opacity:0;pointer-events:none;position:absolute;transition:.3s;visibility:hidden;z-index:45}.form-overlay.active{opacity:1;pointer-events:auto;visibility:visible}.input-group{margin-bottom:16px;position:relative}.input-label{color:#18baad;display:block;font-size:1.2rem;font-weight:900;margin-bottom:6px}.input-wrapper{align-items:center;display:flex;position:relative}.input-icon{color:#18baad;height:18px;left:12px;pointer-events:none;position:absolute;width:18px;z-index:5}.form-input{background-color:var(--white);border:1px solid var(--gray-400);border-radius:var(--radius);color:var(--gray-700);cursor:pointer;font-family:Fira Sans Extra Condensed,sans-serif;font-size:1rem;outline:0;padding:10px 12px 10px 40px;text-transform:uppercase;transition:border-color .2s,box-shadow .2s;width:100%}.form-input:focus{border-color:var(--primary-teal);box-shadow:0 0 0 3px rgba(24,186,173,.2)}.form-input:disabled{background-color:#f9fafb;cursor:not-allowed;opacity:.5}.details-grid{display:grid;gap:10px;grid-template-columns:1fr 1fr 1fr;margin-bottom:16px}.detail-box,.details-grid{position:relative}.detail-input{align-items:center;background-color:var(--white);border:1px solid var(--gray-400);border-radius:var(--radius);color:var(--gray-700);display:flex;font-size:1rem;outline:0;overflow:hidden;padding:10px 8px 10px 34px;text-overflow:ellipsis;transition:.2s;white-space:nowrap;width:100%}.detail-input:hover{background-color:#fafafa;border-color:var(--primary-teal)}.calendar-popup{background:#fff;border:1px solid var(--gray-200);border-radius:5px;box-shadow:var(--shadow-lg);opacity:0;position:absolute;transform:translateY(-10px);transition:opacity .25s cubic-bezier(.4,0,.2,1),transform .25s cubic-bezier(.4,0,.2,1),visibility .25s;visibility:hidden;z-index:100}.autocomplete-list.visible,.calendar-popup.visible{opacity:1;transform:translateY(0);visibility:visible}.calendar-popup{left:50%;margin-left:-160px;padding:16px;top:calc(100% + 8px);width:320px}.calendar-header{align-items:center;display:flex;font-weight:900;justify-content:space-between;margin-bottom:16px}.calendar-title{color:var(--gray-900);font-size:1rem;font-weight:600;text-transform:capitalize}.calendar-nav-btn{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:5px;color:var(--gray-700);padding:4px 10px;transition:background .2s}.calendar-nav-btn:hover{background:#e5e7eb}.calendar-grid{display:grid;gap:4px;grid-template-columns:repeat(7,1fr);text-align:center}.calendar-weekday{color:#9ca3af;padding-bottom:8px}.calendar-day{align-items:center;border-radius:5px;color:var(--gray-700);display:flex;height:36px;justify-content:center}.calendar-day:not(.empty):not(.disabled-date):hover{background-color:var(--primary-teal);color:#fff;font-weight:600}.calendar-day.selected{background-color:var(--gray-900);color:#fff}.calendar-day.disabled-date{color:#d1d5db;cursor:not-allowed;opacity:.5;pointer-events:none;font-weight:500}.autocomplete-list{left:0;margin-top:4px;max-height:350px;overflow-y:auto;right:0;top:100%}.autocomplete-item{border-bottom:1px solid var(--gray-200);color:var(--gray-700);padding:12px 14px;transition:background .2s,color .2s}.autocomplete-item:last-child{border-bottom:none}.autocomplete-item:hover{background-color:#f0fdfa;color:var(--primary-teal-dark)}.route-row{align-items:center;display:flex;justify-content:space-between;width:100%}.route-col{display:flex;flex:1;flex-direction:column}.route-col.left{text-align:left}.route-col.right{text-align:right}.route-port{color:#000;font-size:1rem;font-weight:900;line-height:1.2;text-transform:uppercase;transition:color .2s}.autocomplete-item:hover .route-port{color:var(--primary-teal-dark)}.route-sub{color:var(--gray-500);font-size:.8rem;font-style:italic;margin-top:2px}.route-arrow{color:#000;flex:0 0 30px;font-size:1.2rem;font-weight:900;text-align:center;transition:color .2s}.autocomplete-item:hover .route-arrow{color:var(--primary-teal-dark)}.clear-btn{align-items:center;background:#f3f4f6;border:none;border-radius:50%;color:#6b7280;display:none;font-size:10px;height:22px;justify-content:center;position:absolute;right:12px;transition:background .2s;width:22px;z-index:6}.clear-btn:hover{background:#e5e7eb;color:#111827}.passenger-dropdown{background:var(--white);border-radius:0 0 5px 5px;bottom:0;display:flex;flex-direction:column;left:0;margin-top:0;opacity:0;padding:20px;position:absolute;right:0;top:0;transform:translateY(15px);transition:opacity .25s cubic-bezier(.4,0,.2,1),transform .25s cubic-bezier(.4,0,.2,1),visibility .25s;visibility:hidden;z-index:60}.passenger-dropdown.visible{opacity:1;transform:translateY(0);visibility:visible}.passenger-dropdown>div:not(.close-dropdown-btn){flex:1;overflow-y:auto;padding-right:5px}.close-dropdown-btn{flex-shrink:0}.counter-row{justify-content:space-between;margin-bottom:12px}.counter-controls,.counter-row{align-items:center;display:flex}.counter-controls{gap:10px}.counter-btn{align-items:center;background:var(--white);border:1px solid var(--gray-400);border-radius:50%;display:flex;height:30px;justify-content:center;transition:.2s;width:30px}.counter-btn:hover{border-color:var(--primary-teal);color:var(--primary-teal)}.ages-list{background-color:#f9fafb;border:1px solid var(--gray-200);border-radius:5px;margin-bottom:12px;padding:8px}#section-passengers,#section-pets,#section-vehicles{display:flex;flex-direction:column;height:100%}.ages-list,.vehicles-list{flex:1}.ages-title{color:var(--gray-500);margin-bottom:8px;text-transform:uppercase}/* --- Riga del passeggero: Spaziature e separazioni --- */
.age-row {
    display: flex;
    justify-content: space-between; /* Mette il nome a sinistra e l'input a destra */
    align-items: center;
    width: 100%;
    padding: 15px 5px; /* Spaziatura generosa per far respirare gli elementi */
    margin-bottom: 0 !important;
    border-bottom: 1px solid var(--gray-200); /* Linea di separazione */
}

/* Rimuove la linea sull'ultimo elemento */
.age-row:last-child {
    border-bottom: none; 
}

/* Testo "Pass. 1", "Pass. 2" ecc. */
.age-row span {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--gray-700);
}

/* --- Campo Input Età: Gradevole e CON LE FRECCE --- */
.age-input {
    width: 85px !important; /* Un po' più largo per fare spazio comodo alle freccette */
    padding: 8px 5px 8px 10px !important; 
    font-size: 1.15rem !important;
    font-weight: 900 !important;
    color: var(--gray-900);
    text-align: center; /* Centra il numero */
    background-color: #fff; /* Grigio chiaro a riposo */
    border: 1px solid #ccc !important;
    border-radius: 8px !important;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05);
    transition: all 0.25s ease-in-out;
    outline: none;
    cursor: pointer;
}

/* Effetto quando l'utente clicca sul campo */
.age-input:focus {
    background-color: var(--white);
    border-color: var(--primary-teal) !important;
    box-shadow: 0 0 0 4px rgba(24, 186, 173, 0.15) !important; 
}.vehicle-section-title{border-top:none;color:var(--gray-700);margin-bottom:8px;margin-top:12px;padding-top:0}.vehicle-selector-container{display:flex;gap:8px;margin-bottom:12px}.vehicle-select{background:#fafafa;border:1px solid var(--gray-400);border-radius:5px;cursor:pointer;flex:1;outline:0;padding:10px}.vehicle-select:focus{border-color:var(--primary-teal)}.vehicle-item,.vehicles-list{display:flex;flex-direction:column;gap:8px}.vehicle-item{background-color:#dfeeed;border:1px solid #badad8;border-radius:5px;padding:10px;position:relative}.vehicle-header{align-items:center;display:flex;justify-content:space-between}.vehicle-type-label{align-items:center;color:var(--gray-700);display:flex;gap:8px}.vehicle-icon-svg{fill:currentColor;height:18px;width:18px}.remove-vehicle-btn{align-items:center;background:#fff;border:1px solid #fee2e2;border-radius:5px;color:#ef4444;display:flex;font-size:12px;height:24px;justify-content:center;transition:.2s;width:24px}.remove-vehicle-btn:hover{background:#ef4444;border-color:#ef4444;color:#fff}.vehicle-model-input{background-color:#fff;border:1px solid var(--gray-400);border-radius:5px;outline:0;padding:8px;width:100%}.vehicle-model-input:focus{border-color:var(--primary-teal)}.close-dropdown-btn{background-color:var(--primary-teal);border:none;border-radius:5px;color:#fff;font-size:1rem;font-weight:600;margin-top:16px;padding:12px;transition:background .2s,transform .1s;width:100%}.close-dropdown-btn:hover{background-color:var(--primary-teal-dark)}.close-dropdown-btn:active{transform:scale(.98)}.toggle-container{align-items:center;display:flex;margin-bottom:16px;position:relative;z-index:40}.toggle-switch{background-color:var(--gray-400);border-radius:20px;height:20px;margin-right:12px;padding:2px;position:relative;transition:background-color .2s;width:40px}.toggle-container.disabled-section{cursor:not-allowed}.toggle-switch.active{background-color:var(--primary-teal)}.toggle-dot{background-color:#fff;border-radius:50%;box-shadow:0 1px 2px rgba(0,0,0,.2);height:16px;left:2px;position:absolute;top:2px;transition:transform .2s;width:16px}.toggle-switch.active .toggle-dot{transform:translateX(20px)}.submit-btn{background-color:var(--action-orange);border:none;border-radius:var(--radius);color:#fff;font-size:1.4rem;font-weight:900;margin-top:8px;padding:14px;position:relative;text-transform:uppercase;transition:background .2s;width:100%;z-index:40}.submit-btn:hover{background-color:var(--action-orange-hover)}.hidden{display:none!important}.disabled-section{filter:grayscale(100%);opacity:.4;pointer-events:none}.counter-row span:first-child,.vehicle-section-title{color:var(--gray-700);font-size:1.15rem!important;font-weight:900}.counter-controls span{font-size:1.25rem!important;font-weight:900!important}.ages-title{font-size:.95rem;font-weight:900}.age-input,.age-row{font-size:1.1rem;font-weight:700}.vehicle-model-input,.vehicle-select{font-size:1rem;font-weight:700}.vehicle-type-label{font-size:1.1rem;font-weight:900}.vehicle-item label{font-size:.85rem!important;font-weight:700}.autocomplete-item{font-size:1rem;font-weight:700}.route-sub{font-weight:600}.calendar-day,.calendar-weekday{font-size:1rem;font-weight:700}@media(min-width:1024px){.search-card{max-width:400px;top:-420px}.search-card .head-src .links{border-radius:.2rem;height:auto}.head-src{height:auto}}

/* --- Contenitore Dimensioni Veicolo --- */
.dimensions-wrapper {
    display: flex;
    justify-content: space-between;
    gap: 15px; /* Spazio tra lunghezza e altezza */
    margin-top: 15px;
}

/* Colonna singola (una per lunghezza, una per altezza) */
.dim-col {
    flex: 1; /* Fa in modo che occupino esattamente il 50% dello spazio ciascuna */
    display: flex;
    flex-direction: column;
    align-items: center; /* Centra l'immagine, il testo e l'input */
    text-align: center;
}

/* Stile per le immagini esplicative */
.dim-img {
    width: 100%;
    max-width: 120px; /* Evita che l'immagine diventi gigantesca su schermi grandi */
    height: auto;
    margin-bottom: 8px; /* Spazio tra l'immagine e l'input */
    object-fit: contain;
}

/* Etichetta sopra l'input (opzionale se hai già lo span) */
.dim-col span {
    font-size: 0.85rem;
    color: var(--gray-600);
    margin-bottom: 4px;
    font-weight: 600;
}
.autocomplete-list {
    position: absolute !important; /* Sgancia la lista dal flusso della pagina, facendola fluttuare */
    top: 100%; /* La posiziona esattamente sotto l'input */
    left: 0;
    width: 100%;
    max-height: 250px; /* Altezza massima della tendina prima di scrollare */
    overflow-y: auto; /* Mostra la barra di scorrimento SOLO dentro la tendina */
    z-index: 9999; /* Si assicura che stia sopra a tutti gli altri elementi sottostanti */
    
    /* Stile visivo di base (mantieni il tuo se lo hai già) */
    background: #fff;
    border: 1px solid var(--gray-300);
    border-top: none;
    border-radius: 0 0 4px 4px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

/* Contenitore principale */
.vehicles-header-inline {
    display: flex;
    align-items: center; /* È questo che li allinea al centro verticalmente */
    justify-content: space-between;
    margin-bottom: 15px;
}

/* "Pialliamo" i margini del titolo per evitare che venga spinto in basso */
.vehicles-header-inline .vehicle-section-title {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important; /* Toglie lo spazio "invisibile" sopra e sotto il testo */
    align-self: center;
}

/* Assicuriamoci che anche il contenitore del select non abbia margini strani */
.vehicles-header-inline .vehicle-selector-container {
    margin: 0 !important;
    padding: 0 !important;
    display: flex;
    align-items: center;
}

/* Modifica al select per farlo stare comodo a destra */
.vehicle-select-as-button {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-color: var(--white);
    color: #333333;
    font-family: 'Fira Sans Extra Condensed', sans-serif;
    border: 1px solid #18baad;
    border-radius: 8px;
    
    /* Regole fondamentali per l'allineamento */
    width: auto; /* Non prende più tutto lo schermo */
    min-width: 160px; /* Larghezza minima per non schiacciarlo troppo */
    padding: 6px 15px; /* Più schiacciato verticalmente */
    font-size: 1rem;
    
    font-weight: 600;
    cursor: pointer;
    text-align: center;
    text-align-last: center; 
    transition: all 0.2s ease;
}

.vehicle-select-as-button option {
    color: #333333;
    font-family: 'Fira Sans Extra Condensed', sans-serif;
    font-weight: 500;
}

.vehicle-select-as-button:hover {
    background-color: rgba(24, 186, 173, 0.05); 
}

.vehicle-select-as-button:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(24, 186, 173, 0.15);
}