/* tour-booking.css v9.0 */

/* ── Nascondi varianti native WooCommerce ──────────────────── */
.variations_form .variations, .variations_form table.variations,
.woocommerce-variation-price, .reset_variations { display:none!important; }

/* ── Titoli sezione ────────────────────────────────────────── */
.tour-section-title {
    font-size: 1.15rem; font-weight: 700; color: #1a1a1a;
    margin: 1.5rem 0 .75rem; letter-spacing: -.01em;
}

/* ── VEHICLE CARDS ─────────────────────────────────────────── */
.tour-vehicle-cards { display: grid; grid-template-columns: repeat(3,1fr); gap:.75rem; margin-bottom:.5rem; }
@media(max-width:700px){ .tour-vehicle-cards{ grid-template-columns:1fr; } }

.tour-vehicle-hint {
    grid-column: 1 / -1; font-size:.88rem; color:#888; padding:1rem;
    text-align:center; border:1.5px dashed #e0e0e0; border-radius:12px; margin:0;
}
.tour-vehicle-cards[data-state="loading"] .tour-vehicle-hint { color:#c8a96e; }
.tour-vehicle-cards[data-state="error"] .tour-vehicle-hint   { color:#c00; border-color:#ffb0b0; }

.tour-vehicle-card {
    position:relative; border:1.5px solid #e0e0e0; border-radius:12px;
    padding:1.1rem 1rem 1rem; cursor:pointer; background:#fff;
    transition:border-color .2s,box-shadow .2s,background .2s; user-select:none;
}
.tour-vehicle-card:hover { border-color:#c8a96e; box-shadow:0 2px 12px rgba(200,169,110,.12); }
.tour-vehicle-card.selected { border-color:#c8a96e; background:#fdf8f1; box-shadow:0 2px 16px rgba(200,169,110,.18); }

.tour-vehicle-name { font-size:.95rem; font-weight:700; color:#1a1a1a; margin-bottom:.2rem; }
.tour-vehicle-sub  { font-size:.78rem; color:#888; margin-bottom:.5rem; line-height:1.3; }
.tour-vehicle-price{ font-size:.95rem; font-weight:700; color:#c8a96e; }

/* ── DURATION BUTTONS (half day / full day) ────────────────── */
.tour-duration-buttons { display:flex; gap:.75rem; flex-wrap:wrap; margin-bottom:.75rem; }

.tour-duration-btn {
    flex:1; min-width:180px; padding:.85rem 1.1rem;
    border:1.5px solid #e0e0e0; border-radius:10px; background:#fff; color:#333;
    font-size:.9rem; font-weight:500; cursor:pointer; text-align:left;
    display:flex; align-items:center; gap:.7rem;
    transition:border-color .2s,background .2s,color .2s;
}
.tour-duration-btn strong { display:block; font-size:.95rem; font-weight:700; }
.tour-duration-btn small  { display:block; font-size:.75rem; color:#888; font-weight:400; margin-top:.1rem; }
.tour-duration-btn:hover:not(.disabled)  { border-color:#c8a96e; }
.tour-duration-btn.selected { background:#fdf8f1; border-color:#c8a96e; color:#c8a96e; font-weight:700; }
.tour-duration-btn.selected small { color:#c8a96e; }
.tour-duration-btn.disabled { opacity:.4; cursor:not-allowed; border-style:dashed; }
.tour-duration-icon { font-size:1.4rem; line-height:1; flex-shrink:0; }

/* ── BOOKING FIELDS ────────────────────────────────────────── */
.tour-booking-fields { margin:1.5rem 0; font-family:inherit; }
.tour-field-label { display:block; font-size:.85rem; font-weight:600; color:#333; margin-bottom:.4rem; }

.tour-date-row {
    display:grid; grid-template-columns:1fr 1fr; gap:1rem; align-items:start;
}
@media(max-width:600px){ .tour-date-row{ grid-template-columns:1fr; } }

/* Datepicker */
input.tour-datepicker, .tour-datepicker.flatpickr-input,
.flatpickr-input.tour-datepicker[readonly] {
    width:100%; padding:.7rem 1rem .7rem 2.4rem;
    border:1.5px solid #e0e0e0; border-radius:8px; font-size:.95rem; color:#333;
    background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E") no-repeat left 10px center;
    cursor:pointer; transition:border-color .2s,box-shadow .2s; box-sizing:border-box;
}
input.tour-datepicker:focus { outline:none; border-color:#c8a96e; box-shadow:0 0 0 3px rgba(200,169,110,.15); }

/* Qty passeggeri */
.tour-qty-wrap input.qty {
    width:100%; padding:.7rem 1rem; border:1.5px solid #e0e0e0; border-radius:8px;
    font-size:.95rem; color:#333; text-align:center; box-sizing:border-box;
    transition:border-color .2s,box-shadow .2s;
}
.tour-qty-wrap input.qty:focus { outline:none; border-color:#c8a96e; box-shadow:0 0 0 3px rgba(200,169,110,.15); }

#tour_pax_max_info { font-size:.8rem; color:#888; margin-top:.35rem; }

/* ── Calendario Flatpickr ──────────────────────────────────── */
.flatpickr-day.tour-available-day { position:relative; font-weight:700; color:#1a1a1a!important; }
.flatpickr-day.tour-available-day::after {
    content:''; display:block; width:4px; height:4px; border-radius:50%; background:#c8a96e;
    position:absolute; bottom:4px; left:50%; transform:translateX(-50%);
}
.flatpickr-day.tour-available-day.selected,
.flatpickr-day.tour-available-day.selected:hover {
    background:#c8a96e!important; border-color:#c8a96e!important; color:#fff!important;
}
.flatpickr-day.tour-available-day.selected::after { background:#fff; }

/* ── Orari pickup ──────────────────────────────────────────── */
#tour_pickup_section { animation:fadeIn .25s ease; }
@keyframes fadeIn { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:translateY(0)} }

.tour-pickup-buttons { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:.5rem; }
.tour-pickup-btn {
    padding:.55rem 1.1rem; border:1.5px solid #e0e0e0; border-radius:8px;
    background:#fff; color:#333; font-size:.9rem; font-weight:500;
    cursor:pointer; transition:border-color .2s,background .2s,color .2s; white-space:nowrap;
}
.tour-pickup-btn:hover   { border-color:#c8a96e; color:#c8a96e; }
.tour-pickup-btn.selected{ background:#fdf6ec; border-color:#c8a96e; color:#c8a96e; font-weight:700; }

/* ── Your details / Pickup details ────────────────────────── */
.tour-details-grid {
    display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-bottom:1rem;
}
@media(max-width:600px){ .tour-details-grid{ grid-template-columns:1fr; } }

.tour-field-group { margin-bottom:1rem; }
.tour-field-full  { grid-column:1 / -1; }

.tour-text-input {
    width:100%; padding:.7rem 1rem; border:1.5px solid #e0e0e0; border-radius:8px;
    font-size:.95rem; color:#333; background:#fff; box-sizing:border-box;
    transition:border-color .2s,box-shadow .2s; font-family:inherit;
}
.tour-text-input:focus { outline:none; border-color:#c8a96e; box-shadow:0 0 0 3px rgba(200,169,110,.15); }

.tour-textarea {
    width:100%; padding:.7rem 1rem; border:1.5px solid #e0e0e0; border-radius:8px;
    font-size:.95rem; color:#333; background:#fff; box-sizing:border-box;
    resize:vertical; font-family:inherit; transition:border-color .2s,box-shadow .2s;
}
.tour-textarea:focus { outline:none; border-color:#c8a96e; box-shadow:0 0 0 3px rgba(200,169,110,.15); }

/* ── RIEPILOGO LATERALE ────────────────────────────────────── */
#tour-summary-box {
    background:#fff; border:1.5px solid #e8e0d5; border-radius:14px;
    padding:1.25rem 1.25rem 1rem; margin-top:1.5rem;
}
.tour-summary-row {
    display:flex; justify-content:space-between; align-items:center;
    font-size:.88rem; color:#555; padding:.35rem 0;
}
.tour-summary-row span   { color:#888; }
.tour-summary-row strong { color:#1a1a1a; font-weight:600; }
.tour-summary-divider    { border-top:1px solid #e8e0d5; margin:.5rem 0; }
.tour-summary-total      { font-size:1rem; font-weight:700; }
.tour-summary-total span { color:#1a1a1a; font-weight:700; }
.tour-summary-total strong { color:#c8a96e; font-size:1.2rem; }

#tour-summary-portal { margin-top:1.25rem; }
#tour-summary-portal #tour-summary-box { margin-top:0; border-radius:14px; box-shadow:0 4px 24px rgba(0,0,0,.07); }

/* ── Bottone checkout ──────────────────────────────────────── */
.tour-add-to-cart-wrap { margin-top:1.5rem; }
.tour-submit-btn {
    width:100%!important; padding:1rem 1.5rem!important;
    font-size:1rem!important; font-weight:700!important;
    display:flex!important; align-items:center; justify-content:center; gap:.5rem;
}
#tour_btn_price { font-weight:700; }

/* ── Orari pickup con numero veicoli disponibili ─────────────── */
.tour-pickup-btn {
    display: flex;
    align-items: center;
    gap: .4rem;
}

.tour-pickup-badge {
    font-size: .7rem;
    font-weight: 700;
    background: #fff3e0;
    color: #b85c00;
    border-radius: 4px;
    padding: .1rem .35rem;
}

/* ── Campi con errore ──────────────────────────────────────── */
.tour-field-error {
    border-color: #c00 !important;
    box-shadow: 0 0 0 3px rgba(200,0,0,.1) !important;
}
