/**
 * TransCity Booking Styles V3.20.0 (Clean Architecture)
 */

:root {
    --st-blue: #0991df;
    --st-dark: #2d2d2d;
    --st-white: #ffffff;
    --st-gray: #f4f5f7;
    --st-border: #e0e0e0;
    --st-radius: 12px;
}

/* RESET */
#st-booking-wrapper *, #st-process-wrapper * {
    font-family: "City Sans", -apple-system, sans-serif !important;
    box-sizing: border-box !important;
}

/* UTILIDADES */
.st-hidden { display: none; }
.st-mt-20 { margin-top: 20px !important; }
.st-text-center { text-align: center !important; }
.st-text-right { text-align: right !important; }
div#st-flight-status * {
    font-size: 13px!important;
}

/* --- HOME WRAPPER --- */
#st-booking-wrapper.st-search-mode { max-width: 600px !important; margin: 40px auto !important; }
.st-initial-box { background: rgba(255,255,255,0.95) !important; padding: 40px !important; border-radius: 20px !important; box-shadow: 0 20px 50px rgba(0,0,0,0.1) !important; }
.st-title { text-align: center !important; font-weight: 800 !important; font-size: 2.2rem !important; color: var(--st-dark) !important; margin: 0 0 30px !important; }

/* TABS */
.st-service-tabs, .st-pay-tabs { display: flex !important; background: #f0f2f5 !important; padding: 5px !important; border-radius: 10px !important; margin-bottom: 20px !important; gap: 5px !important; }
.st-tab, .st-ptab { flex: 1 !important; text-align: center !important; padding: 12px !important; font-weight: 700 !important; color: #666 !important; cursor: pointer !important; border-radius: 8px !important; transition: 0.2s !important; border: 1px solid transparent !important; background: transparent !important; }
.st-tab.active, .st-ptab.active { background: var(--st-blue) !important; color: #fff !important; box-shadow: 0 2px 5px rgba(0,0,0,0.1) !important; }
.st-tab input, .st-ptab input { display: none !important; }

/* INPUTS */
.st-input-lg, .st-header-input {
    width: 100% !important; padding: 14px 16px !important;
    background: #fff !important; border: 1px solid #ccc !important;
    border-radius: 10px !important; font-size: 16px !important;
    color: #222 !important; height: auto !important;
    line-height: normal !important; margin-bottom: 0 !important;
}
.st-input-lg:focus, .st-header-input:focus { border-color: var(--st-blue) !important; outline: none !important; }
.st-form-group { margin-bottom: 20px !important; }
.st-form-group label { display: block !important; font-size: 14px !important; font-weight: 700 !important; color: #555 !important; text-transform: uppercase !important; margin-bottom: 8px !important; }

/* BOTONES */
.st-btn-primary { width: 100% !important; background: var(--st-blue) !important; color: #fff !important; padding: 16px !important; font-size: 18px !important; font-weight: 800 !important; border-radius: 10px !important; border: none !important; cursor: pointer !important; text-transform: uppercase !important; text-decoration: none !important; display: block !important; text-align: center !important; }
.st-btn-primary:hover { background: #007bbd !important; }
.st-btn-update { background: var(--st-dark) !important; color: #fff !important; border: none !important; padding: 0 25px !important; border-radius: 8px !important; font-weight: 700 !important; cursor: pointer !important; text-transform: uppercase !important; height: 45px !important; }
.st-btn-inline { height: 48px !important; padding: 0 20px !important; background: #f0f0f0 !important; border: 1px solid #ccc !important; border-radius: 10px !important; font-weight: 700 !important; color: #555 !important; cursor: pointer !important; margin-left: 10px !important; }

/* LAYOUT PROCESS */
#st-process-wrapper { max-width: 1200px !important; margin: 40px auto !important; padding: 0 20px !important; }
.st-process-layout { display: flex !important; gap: 40px !important; align-items: flex-start !important; }
.st-process-left { flex: 1.6 !important; }
.st-process-right { flex: 1 !important; position: sticky !important; top: 30px !important; }
@media (max-width: 900px) { .st-process-layout { flex-direction: column-reverse !important; } .st-process-right { position: static !important; } }

/* HEADER BAR */
.st-edit-bar-container { background: #fff !important; padding: 20px !important; border-radius: 12px !important; border: 1px solid #eee !important; box-shadow: 0 5px 20px rgba(0,0,0,0.05) !important; margin-bottom: 30px !important; }
.st-edit-bar-inner { display: flex !important; gap: 15px !important; flex-wrap: wrap !important; align-items: flex-end !important; }
.st-edit-group { flex: 1 !important; min-width: 150px !important; }
.st-edit-group.small { flex: 0 0 140px !important; }
.st-header-input { background: #f9f9f9 !important; border-color: #ddd !important; height: 45px !important; font-size: 14px !important; }

/* CARDS */
.st-card, .st-sidebar-card { background: #fff !important; padding: 30px !important; border-radius: 16px !important; border: 1px solid #eee !important; box-shadow: 0 5px 20px rgba(0,0,0,0.02) !important; margin-bottom: 20px !important; }
.st-sidebar-card { padding: 0 !important; } /* Mapa full width */

/* VEHICLES */
.st-vehicle-list { list-style: none !important; padding: 0 !important; margin: 0 !important; }
.st-vehicle-item { background: #fff !important; border: 1px solid #eee !important; padding: 25px !important; border-radius: 16px !important; margin-bottom: 20px !important; display: flex !important; align-items: center !important; justify-content: space-between !important; transition: 0.2s !important; }
.st-vehicle-item:hover { border-color: var(--st-blue) !important; transform: translateY(-3px) !important; box-shadow: 0 10px 30px rgba(9,145,223,0.1) !important; }
.st-vehicle-info { display: flex !important; gap: 20px !important; align-items: center !important; }
.st-vehicle-info img { width: 140px !important; height: auto !important; }
.st-v-price { font-size: 24px !important; font-weight: 800 !important; color: var(--st-dark) !important; display: block !important; text-align: right !important; }
.st-btn-select { background: var(--st-blue) !important; color: #fff !important; padding: 10px 20px !important; border-radius: 8px !important; font-weight: 700 !important; text-transform: uppercase !important; border: none !important; cursor: pointer !important; }

/* CHECKOUT */
.st-form-row { display: flex !important; gap: 20px !important; margin-bottom: 15px !important; }
.st-form-group { flex: 1 !important; }
.st-input-with-btn { display: flex !important; align-items: center !important; }
.st-section-title, .st-section-subtitle { margin: 0 0 20px !important; font-weight: 800 !important; color: var(--st-dark) !important; }
.st-section-subtitle { margin-top: 30px !important; border-bottom: 1px solid #eee !important; padding-bottom: 10px !important; font-size: 1.1rem !important; }

/* EXTRAS */
.st-extra-row { padding: 12px 0 !important; border-bottom: 1px solid #eee !important; }
.st-checkbox-label { display: flex !important; align-items: center !important; gap: 10px !important; cursor: pointer !important; }
.st-extra-check, #st-terms { width: 20px !important; height: 20px !important; accent-color: var(--st-blue) !important; }

/* TIPS */
.st-tip-options { display: flex !important; gap: 10px !important; margin-bottom: 20px !important; }
.st-tip-btn { flex: 1 !important; padding: 12px !important; border: 1px solid #ddd !important; background: #fff !important; border-radius: 8px !important; font-weight: 700 !important; cursor: pointer !important; text-align: center !important; }
.st-tip-btn.active { background: var(--st-blue) !important; color: #fff !important; border-color: var(--st-blue) !important; }

/* PAYMENT BOXES */
.st-payment-box { padding: 20px !important; background: #f9f9f9 !important; border-radius: 12px !important; border: 1px solid #eee !important; margin-bottom: 20px !important; }
.st-manual-pay { background: #f0f9ff !important; border-color: #bde0fd !important; }
.st-pay-title { margin: 0 0 10px !important; color: var(--st-blue) !important; font-size: 16px !important; font-weight: 700 !important; }
.st-pay-desc { margin: 0 !important; font-size: 14px !important; color: #444 !important; white-space: pre-wrap !important; }

/* SIDEBAR & TOTALS */
.st-map-canvas { width: 100% !important; height: 250px !important; background: #eee !important; }
.st-sidebar-content { padding: 25px !important; }
.st-route-summary { font-size: 15px !important; color: #666 !important; padding-bottom: 15px !important; margin-bottom: 15px !important; border-bottom: 1px solid #eee !important; }
.st-total-box { display: flex !important; justify-content: space-between !important; font-size: 24px !important; font-weight: 900 !important; color: var(--st-blue) !important; margin-top: 15px !important; padding-top: 15px !important; border-top: 2px dashed #eee !important; }
.st-price-breakdown { font-size: 13px !important; color: #888 !important; text-align: right !important; margin-top: 5px !important; }

/* RECEIPT & SUCCESS */
.st-success-card { text-align: center !important; padding: 50px !important; }
.st-icon-success { font-size: 80px !important; color: #27ae60 !important; margin-bottom: 20px !important; line-height: 1 !important; }
.st-success-title { font-size: 2.5rem !important; color: var(--st-blue) !important; margin: 0 !important; }
.st-receipt-wrapper { border: 1px solid #e0e0e0 !important; border-radius: 12px !important; overflow: hidden !important; text-align: left !important; margin: 30px 0 !important; }
.st-receipt-header { background: var(--st-blue) !important; color: #fff !important; padding: 20px !important; text-align: center !important; }
.st-receipt-body { padding: 30px !important; }

/* CALENDAR BUTTONS */
.st-calendar-wrapper { margin-top: 30px !important; padding-top: 20px !important; border-top: 1px solid #eee !important; }
.st-cal-btn { display: inline-flex !important; align-items: center !important; justify-content: center !important; padding: 12px 25px !important; color: #fff !important; text-decoration: none !important; border-radius: 8px !important; font-weight: 700 !important; margin: 0 5px !important; font-size: 14px !important; transition: transform 0.2s !important; }
.st-cal-btn:hover { transform: translateY(-2px) !important; }
.st-cal-google { background-color: #4285F4 !important; }
.st-cal-apple { background-color: #2d2d2d !important; }
.st-btn-home { background: #f0f2f5 !important; color: #333 !important; border: 1px solid #ccc !important; padding: 15px 35px !important; border-radius: 50px !important; text-decoration: none !important; font-weight: 700 !important; display: inline-block !important; margin-top: 30px !important; }

/* GOOGLE AUTOCOMPLETE */
.pac-container { z-index: 999999 !important; border-radius: 0 0 10px 10px !important; box-shadow: 0 10px 40px rgba(0,0,0,0.2) !important; border: 1px solid #eee !important; font-family: sans-serif !important; }
.pac-item { padding: 10px 15px !important; font-size: 14px !important; }


