@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

:root {
    --p-blue: #2563eb;
    --p-blue-dark: #1e3a8a;
    --p-text: #0f172a;
    --p-sub: #64748b;
    --p-border: #e2e8f0;
}

/* BASE RESET */
.booking-widget {
    background: #ffffff !important;
    border-radius: 12px !important;
    padding: 20px !important;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.05) !important;
    max-width: 440px !important;
    margin: 0 auto !important;
    position: relative !important;
    z-index: 100 !important;
    border: 1px solid var(--p-border) !important;
    overflow: visible !important;
    /* Fix for dropdown cutoff */
}

/* Explicitly exclude icons to fix broken rendering */
.booking-widget *:not(i) {
    box-sizing: border-box !important;
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    text-align: left !important;
    /* GLOBAL LEFT ALIGN FORCE */
    -webkit-font-smoothing: antialiased !important;
}

/* COMPACT TRIP TOGGLES */
.trip-type-radios {
    display: flex !important;
    gap: 16px !important;
    margin-bottom: 20px !important;
}

.radio-option {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    cursor: pointer !important;
}

.radio-option input {
    display: none !important;
}

.radio-checkmark {
    width: 18px !important;
    height: 18px !important;
    border: 2px solid var(--p-border) !important;
    border-radius: 50% !important;
    position: relative !important;
}

.radio-option input:checked+.radio-checkmark {
    border-color: var(--p-blue) !important;
    background: var(--p-blue) !important;
}

.radio-option input:checked+.radio-checkmark::after {
    content: "" !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: 6px !important;
    height: 6px !important;
    background: #fff !important;
    border-radius: 50% !important;
}

.radio-option span:last-child {
    font-weight: 600 !important;
    color: var(--p-text) !important;
    font-size: 13px !important;
}

/* COMPACT FIELDS */
.form-group {
    margin-bottom: 16px !important;
    position: relative !important;
    text-align: left !important;
}

.field-label {
    display: block !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    color: var(--p-sub) !important;
    margin-bottom: 6px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    text-align: left !important;
}

.clean-input-group {
    background: #ffffff !important;
    border: 1px solid var(--p-border) !important;
    border-radius: 8px !important;
    height: 48px !important;
    display: flex !important;
    align-items: center !important;
    padding: 0 16px !important;
    /* Increased padding */
    position: relative !important;
}

.clean-input-group:focus-within {
    border-color: var(--p-blue) !important;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.05) !important;
}

.clean-input {
    border: none !important;
    outline: none !important;
    background: transparent !important;
    width: 100% !important;
    height: 100% !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: var(--p-text) !important;
    padding: 0 !important;
    text-align: left !important;
}

/* DROPDOWNS */
.airport-results,
.pax-dropdown {
    position: absolute !important;
    top: calc(100% + 6px) !important;
    left: 0 !important;
    right: 0 !important;
    background: #fff !important;
    border-radius: 8px !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1) !important;
    z-index: 99999 !important;
    padding: 8px 0 !important;
    border: 1px solid var(--p-border) !important;
    max-height: 450px !important;
    /* Increased height */
    overflow-y: auto !important;
    text-align: left !important;
}

.hero .pax-dropdown {
    top: calc(100% + 6px) !important;
    bottom: auto !important;
}

.airport-item {
    padding: 10px 16px !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    cursor: pointer !important;
}

.airport-item:hover {
    background: #f8fafc !important;
}

.dd-main {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--p-text) !important;
}

.dd-icon-wrap {
    width: 20px !important;
    height: 14px !important;
    border-radius: 2px !important;
    overflow: hidden !important;
    flex-shrink: 0 !important;
}

.dd-flag {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

/* PASSENGER DROPDOWN FIXES */
.pax-dropdown {
    padding: 20px !important;
    max-height: 75vh !important;
    /* Ensure visibility on mobile */
    padding-bottom: 24px !important;
    /* Space for done button */
}

.clean-pax-content {
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
}

.clean-pax-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    border-bottom: 1px solid #f1f5f9 !important;
    padding-bottom: 12px !important;
}

.clean-pax-row:last-child {
    border-bottom: none !important;
}

/* Stack title and subtitle vertically */
.pax-info {
    display: flex !important;
    flex-direction: column !important;
    gap: 3px !important;
    align-items: flex-start !important;
}

.pax-title {
    font-weight: 600 !important;
    font-size: 13px !important;
    color: var(--p-text) !important;
}

.pax-subtitle {
    font-size: 11px !important;
    color: var(--p-sub) !important;
}

.clean-counter {
    display: flex !important;
    align-items: center !important;
    background: #f8fafc !important;
    border: 1px solid var(--p-border) !important;
    border-radius: 6px !important;
    padding: 2px !important;
}

.count-btn {
    width: 28px !important;
    height: 28px !important;
    background: #fff !important;
    border-radius: 4px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    color: var(--p-blue) !important;
    cursor: pointer !important;
    border: 1px solid #e2e8f0 !important;
    padding: 0 !important;
    text-align: center !important;
    /* Force center for buttons */
}

.pax-count-display {
    width: 28px !important;
    text-align: center !important;
    /* Force center */
    font-weight: 600 !important;
    font-size: 13px !important;
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
}

.pax-done-btn {
    width: 100% !important;
    background: var(--p-blue) !important;
    color: #fff !important;
    height: 48px !important;
    border-radius: 6px !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    margin-top: 16px !important;
    border: none !important;
    cursor: pointer !important;
    text-align: center !important;
    /* Force center */
}

/* PASSENGER DISPLAY IN INPUT */
.traveler-display {
    position: static !important;
    flex: 1 !important;
    display: flex !important;
    align-items: center !important;
    height: 100% !important;
    pointer-events: none !important;
    font-size: 14px !important;
    color: var(--p-text) !important;
    font-weight: 500 !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: normal !important;
    white-space: nowrap !important;
    padding-left: 0 !important;
    /* Ensure flush left alignment */
}

.traveler-display b {
    margin-right: 6px !important;
    font-weight: 700 !important;
    color: var(--p-blue) !important;
}

.dropdown-arrow {
    position: absolute !important;
    right: 16px !important;
    color: var(--p-sub) !important;
    font-size: 12px !important;
    pointer-events: none !important;
}

/* COMPACT DATE ROW */
.date-row-container {
    display: flex !important;
    gap: 12px !important;
    width: 100% !important;
}

.date-item {
    flex: 1 !important;
}

/* SEARCH BTN */
.search-btn {
    width: 100% !important;
    height: 48px !important;
    background: var(--p-blue) !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 8px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    margin-top: 12px !important;
}

/* PRICING SUBTEXT - CENTERED */
.pricing-subtext {
    text-align: center !important;
    font-size: 13px !important;
    color: var(--p-sub) !important;
    margin-top: 16px !important;
    display: block !important;
    width: 100% !important;
    font-weight: 500 !important;
}

/* MOBILE FIX */
@media (max-width: 767px) {
    .booking-widget {
        padding: 16px !important;
    }

    .date-row-container {
        flex-direction: column !important;
        gap: 0 !important;
    }

    .pax-dropdown {
        position: absolute !important;
        top: 100% !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        z-index: 999999 !important;
    }
}

/* RESULTS PAGE COMPACT */
.results-page .search-inputs-row {
    padding: 8px !important;
    gap: 8px !important;
}

.results-page .clean-input-group {
    height: 40px !important;
}

.results-page .clean-input {
    font-size: 13px !important;
}

.results-page .btn-modify-blue {
    height: 40px !important;
    padding: 0 16px !important;
    font-size: 13px !important;
}

/* GLOBALS */
.hidden-dropdown {
    display: none !important;
}

.input-display-layer:not(.traveler-display) {
    display: none !important;
}

.input-icon {
    display: none !important;
}