/* ApiLogs Page Styles */
.api-logs-page {
    color: #0f172a;
}

    .api-logs-page .card-body {
        padding: 0.95rem 1rem;
    }

.api-logs-hero-card,
.api-logs-overview-card,
.api-logs-stat-card,
.api-logs-section-card,
.api-log-detail-card {
    border: 1px solid rgba(148, 163, 184, 0.18);
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.08);
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.api-logs-hero-card,
.api-logs-overview-card {
    border-radius: 28px;
    padding: 2rem;
    height: 100%;
}

.api-logs-hero-card {
    background: radial-gradient(circle at top right, rgba(59, 130, 246, 0.14), transparent 34%), linear-gradient(135deg, #ffffff 0%, #eff6ff 100%);
}

.api-logs-overview-card {
    background: radial-gradient(circle at top left, rgba(16, 185, 129, 0.16), transparent 28%), linear-gradient(135deg, #0f172a 0%, #1e3a8a 100%);
    color: #eff6ff;
}

.api-logs-kicker {
    color: #1d4ed8;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.api-logs-kicker-icon {
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(37, 99, 235, 0.12);
}

.api-logs-title {
    font-size: clamp(2rem, 3vw, 3rem);
    line-height: 1.05;
    letter-spacing: -0.04em;
    font-weight: 800;
}

.api-logs-subtitle {
    max-width: 42rem;
    color: #475569;
    font-size: 1rem;
}

.api-logs-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.55rem 0.9rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.78);
    border: 1px solid rgba(191, 219, 254, 0.9);
    color: #1e3a8a;
    font-size: 0.85rem;
    font-weight: 600;
}

.api-logs-overview-label,
.api-logs-overview-copy,
.api-logs-overview-metric-label {
    color: rgba(226, 232, 240, 0.8);
}

.api-logs-overview-label {
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.78rem;
    font-weight: 700;
    margin-bottom: 0.75rem;
}

.api-logs-overview-value {
    font-size: clamp(2.5rem, 5vw, 4rem);
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.05em;
}

.api-logs-overview-copy {
    font-size: 0.95rem;
    margin-top: 0.4rem;
}

.api-logs-overview-metric {
    padding: 1rem;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(191, 219, 254, 0.18);
    min-height: 100%;
}

.api-logs-overview-metric-label {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.api-logs-stat-card {
    border-radius: 16px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

    .api-logs-stat-card:hover,
    .api-logs-section-card:hover {
        transform: translateY(-2px);
        box-shadow: 0 22px 50px rgba(15, 23, 42, 0.1);
    }

.api-logs-stat-label {
    color: #64748b;
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 700;
}

.api-logs-stat-icon {
    font-size: 2rem;
    opacity: 0.28;
}

.api-logs-section-card {
    border-radius: 16px;
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.api-logs-section-header {
    background: linear-gradient(180deg, #f8fbff 0%, #f1f5f9 100%);
    padding: 0.75rem 1rem;
}

.api-logs-count-badge {
    background: #475569;
    border-radius: 999px;
    padding: 0.42rem 0.7rem;
    font-weight: 600;
}

.api-logs-table thead th {
    background: #f8fafc;
    border-bottom: 1px solid rgba(148, 163, 184, 0.2);
    color: #334155;
    font-size: 0.74rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 0.65rem 0.75rem;
    white-space: nowrap;
}

.api-logs-table tbody td {
    padding: 0.65rem 0.75rem;
    vertical-align: middle;
    border-color: rgba(226, 232, 240, 0.9);
}

.api-logs-row:hover {
    background: rgba(59, 130, 246, 0.03);
}

.api-logs-meta-label {
    letter-spacing: 0.05em;
}

.api-logs-method-badge,
.api-logs-status-badge,
.api-logs-speed-badge {
    font-weight: 700;
    border-radius: 999px;
    padding: 0.32rem 0.58rem;
}

.api-logs-endpoint-label {
    display: inline-flex;
    align-items: center;
    padding: 0.3rem 0.65rem;
    border-radius: 999px;
    background: #eff6ff;
    color: #1d4ed8;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.api-logs-endpoint-text,
.api-log-break {
    word-break: break-word;
}

.api-log-payload-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1rem;
}

.api-log-payload-card {
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 12px;
    background: #fff;
    padding: 0.75rem;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
    min-width: 0;
}

.api-log-payload-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-bottom: 0.55rem;
}

.api-log-payload-label {
    color: #0f172a;
    font-size: 0.84rem;
    font-weight: 700;
}

.api-log-copy-btn {
    flex-shrink: 0;
}

.api-log-json-viewer {
    margin: 0;
    max-height: 14rem;
    overflow: auto;
    padding: 0.72rem;
    border-radius: 10px;
    background: #0f172a;
    color: #dbeafe;
    font-size: 0.77rem;
    line-height: 1.38;
    white-space: pre-wrap;
    word-break: break-word;
}

    .api-log-json-viewer code {
        color: inherit;
        background: transparent;
        padding: 0;
        font-family: 'Courier New', monospace;
        font-size: inherit;
    }

.api-log-json-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 7rem;
    padding: 0.75rem;
    border-radius: 10px;
    background: #f8fafc;
    border: 1px dashed rgba(148, 163, 184, 0.45);
    color: #64748b;
    text-align: center;
    font-size: 0.82rem;
}

.api-log-payload-header > div {
    min-width: 0;
    flex: 1 1 15rem;
}

.api-log-copy-btn {
    width: auto;
    max-width: none;
}

.api-logs-empty-state {
    color: #64748b;
}

    .api-logs-empty-state i {
        font-size: 3rem;
        color: #cbd5e1;
    }

.api-logs-pagination-wrap {
    background: #fafcff;
}

    .api-logs-pagination-wrap .page-link {
        padding: 0.22rem 0.55rem;
        font-size: 0.78rem;
    }

    .api-logs-pagination-wrap .pagination {
        --bs-pagination-border-radius: 999px;
    }

.api-log-modal .modal-dialog {
    z-index: 1060;
    max-width: 96vw;
    width: 980px;
    min-width: 0;
}

.api-log-modal-xl {
    max-width: 1400px;
    width: 98vw;
}

@media (max-width: 1400px) {
    .api-log-modal-xl {
        max-width: 98vw;
        width: 100vw;
    }
}

@media (max-width: 991.98px) {
    .api-log-modal-xl {
        max-width: 100vw;
        width: 100vw;
        min-width: 0;
    }
}

.api-log-modal .modal-content {
    border-radius: 14px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.api-log-modal .modal-header {
    padding: 0.75rem 1rem;
}

.api-log-modal .modal-body {
    padding: 0.55rem 1rem 0.7rem;
}

.api-log-modal .modal-footer {
    padding: 0.45rem 1rem 0.75rem;
}

.api-log-detail-card {
    border-radius: 10px;
    padding: 0.58rem 0.72rem;
}

.api-log-code-block {
    background: #eff6ff;
    padding: 0.45rem 0.6rem;
    border-radius: 8px;
    font-family: 'Courier New', monospace;
    color: #0f172a;
}

html {
    font-size: 14px;
}

@media (min-width: 768px) {
    html {
        font-size: 16px;
    }
    /* Skeleton Loader Styles */
    .skeleton-loader-container {
        display: none; /* Hidden by default */
        background: #f4f5f6;
        min-height: 100vh;
        padding-top: 20px;
    }

    .skeleton-box {
        background-color: #e2e8f0;
        border-radius: 4px;
        position: relative;
        overflow: hidden;
    }

        .skeleton-box::after {
            position: absolute;
            top: 0;
            right: 0;
            bottom: 0;
            left: 0;
            transform: translateX(-100%);
            background-image: linear-gradient( 90deg, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, 0.4) 20%, rgba(255, 255, 255, 0.6) 60%, rgba(255, 255, 255, 0) );
            animation: shimmer 2s infinite;
            content: '';
        }

    @keyframes shimmer {
        100% {
            transform: translateX(100%);
        }
    }

    /* Fare Rules Skeleton Loader */
    .skeleton-loader {
        background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
        background-size: 200% 100%;
        animation: loading 1.5s ease-in-out infinite;
        border-radius: 4px;
    }

    @keyframes loading {
        0% {
            background-position: 200% 0;
        }

        100% {
            background-position: -200% 0;
        }
    }

    /* Skeleton card — mirrors result-card + mmt-footer.oneway-footer structure */
    .skeleton-card {
        background: #fff;
        border: 1px solid #e2e8f0;
        border-left: 4px solid transparent;
        border-radius: 14px;
        overflow: hidden;
        box-shadow: 0 3px 14px rgba(15, 23, 42, 0.04);
        margin-bottom: 8px;
    }

    .skeleton-card-main {
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 7px 12px 5px;
    }

    .skeleton-flight-col {
        display: flex;
        align-items: center;
        gap: 8px;
        min-width: 148px;
        flex-shrink: 0;
    }

    .skeleton-airline-text {
        display: flex;
        flex-direction: column;
        gap: 4px;
    }

    .skeleton-logo {
        width: 32px;
        height: 32px;
        border-radius: 6px;
        flex-shrink: 0;
    }

    .skeleton-timeline-col {
        flex: 1;
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 0 16px;
        min-width: 0;
    }

    .skeleton-time-block {
        display: flex;
        flex-direction: column;
        align-items: center;
        min-width: 48px;
        flex-shrink: 0;
    }

    .skeleton-time-val {
        height: 20px;
        width: 48px;
        border-radius: 4px;
    }

    .skeleton-city-val {
        height: 11px;
        width: 38px;
        border-radius: 3px;
        margin-top: 4px;
    }

    .skeleton-duration-col {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        padding: 0 8px;
    }

    .skeleton-line {
        height: 2px;
        width: 100%;
        border-radius: 2px;
    }

    .skeleton-stops-txt {
        height: 10px;
        width: 52px;
        border-radius: 3px;
        margin-top: 5px;
    }

    .skeleton-card-footer {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 6px 12px;
        border-top: 1px solid #f0f4fb;
        gap: 8px;
    }

    .skeleton-footer-left {
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .skeleton-footer-right {
        display: flex;
        align-items: center;
        gap: 8px;
        flex-shrink: 0;
    }

    .skeleton-badge-sm {
        width: 88px;
        height: 22px;
        border-radius: 11px;
        flex-shrink: 0;
    }

    .skeleton-text {
        height: 14px;
        border-radius: 4px;
    }

    .skeleton-fare-cat {
        width: 58px;
        height: 26px;
        border-radius: 13px;
    }

    .skeleton-price-lg {
        width: 78px;
        height: 22px;
        border-radius: 4px;
    }

    .skeleton-book-btn {
        width: 108px;
        height: 34px;
        border-radius: 20px;
    }

    .results-loading-layout {
        display: flex;
        gap: 16px;
    }

    .skeleton-sidebar-col {
        width: 280px;
        min-width: 280px;
        max-width: 280px;
        flex-shrink: 0;
    }

    .skeleton-sidebar-shell {
        border-radius: 16px;
        border: 1px solid #dbe4f0;
        background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
        padding: 10px;
        box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
    }

    .skeleton-sidebar-header {
        height: 52px;
        border-radius: 12px;
        margin-bottom: 10px;
    }

    .skeleton-sidebar-row {
        height: 42px;
        border-radius: 10px;
        margin-bottom: 8px;
    }

    .skeleton-results-main {
        flex: 1;
        min-width: 0;
    }

    .skeleton-results-summary {
        height: 58px;
        border-radius: 14px;
        margin-bottom: 16px;
    }

    /* Roundtrip split-view: two-column grid matching actual #splitViewRow layout */
    .skeleton-rt-split {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 12px;
    }

    .skeleton-rt-col-header {
        height: 68px;
        border-radius: 12px;
        margin-bottom: 8px;
    }

    .skeleton-rt-combo-main {
        display: flex;
        flex-direction: column;
        gap: 3px;
    }

    .skeleton-rt-combo-leg {
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .skeleton-combo-divider {
        height: 1px;
        background: linear-gradient(90deg, #d8e4f4 0%, #edf3fb 50%, #d8e4f4 100%);
        margin: 2px 0;
    }

    /* Multicity */
    .skeleton-mc-nav {
        height: 54px;
        border-radius: 12px;
        margin-bottom: 10px;
    }

    .skeleton-mc-bundled-nav {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        background: #fff;
        border: 1px solid #dbe4f0;
        border-radius: 12px;
        padding: 10px 12px;
        margin-bottom: 10px;
    }

    .skeleton-mc-bundled-nav-left {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 8px;
        min-width: 0;
        flex: 1;
    }

    .skeleton-mc-bundled-nav-right {
        display: flex;
        align-items: center;
        gap: 8px;
        flex-shrink: 0;
    }

    .skeleton-mc-bundled-pill {
        width: 160px;
        height: 30px;
        border-radius: 999px;
    }

    .skeleton-mc-bundled-route {
        width: 84px;
        height: 16px;
        border-radius: 6px;
    }

    .skeleton-mc-bundled-info {
        width: 28px;
        height: 28px;
        border-radius: 999px;
    }

    .skeleton-mc-bundled-status {
        width: 182px;
        height: 34px;
        border-radius: 8px;
    }

    .skeleton-mc-bundled-book {
        width: 206px;
        height: 34px;
        border-radius: 8px;
    }

    .skeleton-multicity-group {
        margin-bottom: 14px;
    }

    .skeleton-trip-header {
        height: 54px;
        border-radius: 12px;
        margin-bottom: 8px;
    }

    .skeleton-mc-bundled-main {
        display: flex;
        flex-direction: column;
        gap: 3px;
    }

    .skeleton-mc-bundled-leg {
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .skeleton-mc-bundled-divider {
        height: 1px;
        background: linear-gradient(90deg, #d8e4f4 0%, #edf3fb 50%, #d8e4f4 100%);
        margin: 2px 0;
    }

    @media (max-width: 1199.98px) {
        .results-loading-layout {
            display: block;
        }

        .skeleton-results-summary {
            margin-top: 4px;
        }

        .skeleton-rt-combo-leg {
            justify-content: flex-start;
        }

        .skeleton-mc-bundled-leg {
            justify-content: flex-start;
        }

        .skeleton-mc-bundled-nav {
            flex-direction: column;
            align-items: stretch;
        }

        .skeleton-mc-bundled-nav-right {
            justify-content: space-between;
            width: 100%;
        }

        .skeleton-mc-bundled-status {
            width: 48%;
        }

        .skeleton-mc-bundled-book {
            width: 48%;
        }
    }

    @media (min-width: 768px) and (max-width: 1365.98px) {
        .skeleton-rt-split {
            grid-template-columns: 1fr 1fr;
            gap: 10px;
        }

        .skeleton-card-main {
            gap: 8px;
            padding: 7px 10px 5px;
        }

        .skeleton-flight-col {
            min-width: 118px;
            gap: 6px;
        }

        .skeleton-logo {
            width: 28px;
            height: 28px;
        }

        .skeleton-timeline-col {
            display: flex;
            flex: 1 1 auto;
            min-width: 0;
            gap: 6px;
            padding: 0 4px;
        }

        .skeleton-time-block {
            min-width: 44px;
        }

        .skeleton-time-val {
            width: 44px;
            height: 18px;
        }

        .skeleton-city-val {
            width: 34px;
            height: 10px;
        }

        .skeleton-duration-col {
            min-width: 0;
            padding: 0 4px;
        }

        .skeleton-card-footer {
            flex-wrap: wrap;
        }

        .skeleton-footer-left,
        .skeleton-footer-right {
            min-width: 0;
            gap: 6px;
        }

        .skeleton-footer-right {
            justify-content: flex-end;
            flex-wrap: wrap;
            margin-left: auto;
        }

        .skeleton-price-lg {
            width: 70px;
        }

        .skeleton-book-btn {
            width: 88px;
            height: 30px;
        }
    }

    @media (max-width: 767.98px) {
        .skeleton-rt-split {
            grid-template-columns: 1fr;
        }

        .skeleton-timeline-col {
            display: none;
        }
    }

    /* Original simple overlay (keep for other minor loads, rename) */
    .mini-loading-overlay {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(255,255,255,0.95);
        z-index: 9999;
        display: none;
        flex-direction: column;
        justify-content: center;
        align-items: center;
    }

    /* Custom Styles */
    .login-container {
        max-width: 400px;
        margin: 50px auto;
        padding: 30px;
        border: 1px solid #ddd;
        border-radius: 8px;
        box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    }

    .bookings-table {
        margin-top: 30px;
    }

        .bookings-table th {
            background-color: #f8f9fa;
        }

        .bookings-table tbody tr:hover {
            background-color: #f1f1f1;
        }


    .btn:focus,
    .btn:active:focus,
    .btn-link.nav-link:focus,
    .form-control:focus,
    .form-check-input:focus {
        box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
    }

    html {
        position: relative;
        min-height: 100%;
    }

    :root {
        --site-header-height: 62px;
        --results-summary-height: 64px;
        --multicity-nav-height: 54px;
        --site-content-gap: 0px;
        --results-summary-top: var(--site-header-height);
        --results-stack-offset: calc(var(--site-header-height) + var(--results-summary-height));
        --multicity-stack-offset: calc(var(--results-stack-offset) + var(--multicity-nav-height));
        --results-sidebar-bottom-offset: 24px;
        --roundtrip-summary-height: 88px;
    }

    body {
        margin-bottom: 0;
    }

    .site-main {
        min-height: calc(100vh - 150px);
    }

    .site-shell {
        width: 100%;
        padding: 0 12px;
    }

    @media (max-width: 575.98px) {
        .site-shell {
            padding: 0 8px;
        }
    }

    @media (min-width: 1200px) {
        .site-shell {
            padding: 0 20px;
        }

        .site-navbar {
            min-height: 58px;
            padding: 0.25rem 0;
        }

        .site-brand {
            gap: 10px;
        }

        .site-brand-mark {
            width: 32px !important;
            height: 32px !important;
            border-radius: 10px !important;
        }

            .site-brand-mark > i {
                font-size: 1.15rem !important;
            }

        .site-brand-name {
            font-size: 0.94rem;
        }

        .site-brand-tagline {
            font-size: 0.6rem;
        }

        .site-nav-link {
            padding: 0.4rem 0.72rem !important;
            font-size: 0.88rem;
        }

        .site-header-actions {
            gap: 0.55rem;
        }
    }

    .site-header {
        z-index: 1030;
        background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%) !important;
        background-color: #ffffff !important;
        opacity: 1;
        border-bottom: 1px solid rgba(148, 163, 184, 0.22);
        box-shadow: 0 8px 18px rgba(15, 23, 42, 0.06);
    }

        .site-header .site-navbar {
            background: inherit;
        }

    .site-navbar {
        padding: 0.35rem 0;
        min-height: var(--site-header-height);
    }

    .site-brand {
        display: inline-flex;
        align-items: center;
        gap: 12px;
        text-decoration: none;
    }

        .site-brand:hover {
            text-decoration: none;
        }

    .site-brand-mark,
    .site-footer-mark {
        width: 36px !important;
        height: 36px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        border-radius: 12px !important;
        background: linear-gradient(135deg, #0f172a, #2563eb) !important;
        color: #fff !important;
        box-shadow: 0 8px 18px rgba(37, 99, 235, 0.18) !important;
        flex-shrink: 0 !important;
    }

        .site-brand-mark > i,
        .site-footer-mark > i {
            font-size: 1.4rem !important;
            display: flex !important;
            align-items: center !important;
            justify-content: center !important;
            line-height: 1 !important;
        }

    .site-brand-name {
        display: block;
        color: #0f172a;
        font-size: 1rem;
        font-weight: 800;
        line-height: 1.1;
        letter-spacing: -0.02em;
    }

    .site-brand-tagline {
        display: block;
        color: #64748b;
        font-size: 0.67rem;
        font-weight: 600;
        letter-spacing: 0.07em;
        text-transform: uppercase;
    }

    .site-navbar-toggler {
        border: 1px solid #dbe3ef;
        border-radius: 12px;
        padding: 0.45rem 0.7rem;
    }

    .site-nav,
    .site-auth-nav {
        gap: 0.4rem;
        align-items: center;
    }

    .site-header-actions {
        display: flex;
        align-items: center;
        gap: 0.75rem;
    }

    .site-nav-link {
        color: #334155 !important;
        font-weight: 600;
        border-radius: 999px;
        padding: 0.48rem 0.8rem !important;
        transition: background-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
    }

        .site-nav-link:hover,
        .site-nav-link:focus {
            color: #0f172a !important;
            background: rgba(226, 232, 240, 0.65);
            transform: translateY(-1px);
        }

    .site-login-link {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 999px;
        padding: 0.5rem 0.95rem !important;
        background: #0f172a;
        color: #fff !important;
        font-weight: 700;
    }

        .site-login-link:hover,
        .site-login-link:focus {
            background: #1d4ed8;
            color: #fff !important;
        }

    .site-quote-btn {
        border: 1px solid #bfdbfe;
        background: #eff6ff;
        color: #1d4ed8;
        border-radius: 999px;
        width: 38px;
        height: 38px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

        .site-quote-btn:hover {
            background: #dbeafe;
            color: #1e40af;
        }

    .site-footer {
        padding: 0;
        background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%) !important;
        background-color: #ffffff !important;
        opacity: 1;
        border-top: 1px solid rgba(148, 163, 184, 0.22);
        box-shadow: 0 -4px 12px rgba(15, 23, 42, 0.04);
        position: relative;
        z-index: 1;
    }

    .site-footer-inner {
        padding: 0.55rem 0;
        min-height: 56px;
    }

    .site-footer-title {
        display: block;
        font-size: 1rem;
        font-weight: 800;
        color: #0f172a;
        line-height: 1.1;
    }

    .site-footer-tagline {
        display: block;
        color: #64748b;
        font-size: 0.67rem;
        font-weight: 600;
        letter-spacing: 0.07em;
        text-transform: uppercase;
    }

    .site-footer-meta {
        display: flex;
        align-items: center;
        gap: 6px;
        font-size: 0.82rem;
        color: #64748b;
        white-space: nowrap;
    }

    @media (max-width: 991.98px) {
        /* ── Mobile collapsed navbar menu ── */
        .site-header .navbar-collapse {
            background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%) !important;
            background-color: #ffffff !important;
            border-top: 1px solid rgba(148, 163, 184, 0.18);
            border-bottom: 1px solid rgba(148, 163, 184, 0.18);
            margin: 0.4rem -0.75rem 0;
            padding: 0.5rem 0.75rem 0.75rem;
            border-radius: 0 0 16px 16px;
            box-shadow: 0 8px 24px rgba(15, 23, 42, 0.10);
        }

        .site-header-actions {
            flex-direction: column;
            align-items: stretch;
            padding-top: 0.5rem;
        }

        .site-auth-nav {
            width: 100%;
        }

        .site-nav-link {
            padding: 0.6rem 0.95rem !important;
            font-size: 0.92rem;
        }

        /* ── Mobile footer ── */
        .site-footer-inner {
            flex-direction: column;
            align-items: center;
            text-align: center;
            gap: 6px;
            padding: 0.6rem 0;
        }

        .site-footer-meta {
            width: 100%;
            justify-content: center;
        }

        .site-footer-mark {
            width: 32px;
            height: 32px;
            border-radius: 10px;
        }
    }

    @media (min-width: 992px) and (max-width: 1199.98px) {
        .site-navbar {
            padding: 0.35rem 0;
            min-height: 64px;
        }

        .site-header .navbar-collapse {
            background: transparent !important;
            border: none;
            margin: 0;
            padding: 0;
            border-radius: 0;
            box-shadow: none;
        }

        .site-header-actions {
            flex-direction: row;
            align-items: center;
            gap: 0.55rem;
            padding-top: 0;
        }

        .site-auth-nav {
            width: auto;
        }

        .site-brand {
            gap: 10px;
        }

        .site-brand-name {
            font-size: 0.95rem;
        }

        .site-brand-tagline {
            font-size: 0.62rem;
        }

        .site-nav-link {
            padding: 0.42rem 0.7rem !important;
            font-size: 0.88rem;
        }
    }

    @media (max-width: 575.98px) {
        .site-navbar {
            padding: 0.4rem 0;
        }

        .site-brand-name {
            font-size: 0.92rem;
        }

        .site-brand-tagline {
            font-size: 0.58rem;
        }

        .site-brand-mark {
            width: 32px !important;
            height: 32px !important;
            border-radius: 10px !important;
        }

            .site-brand-mark > i {
                font-size: 1.1rem !important;
            }

        .site-brand {
            gap: 8px;
        }

        .site-footer-mark {
            width: 28px;
            height: 28px;
            border-radius: 8px;
            font-size: 0.75rem;
        }

            .site-footer-mark > i {
                font-size: 0.9rem;
            }

        .site-footer-title {
            font-size: 0.85rem;
        }

        .site-footer-tagline {
            font-size: 0.55rem;
        }

        .site-footer-meta {
            font-size: 0.72rem;
        }

        .site-header-actions {
            width: 100%;
        }

        .site-quote-btn {
            width: 42px;
            height: 42px;
        }
    }

    /* ==========================================
   ACCOUNT FORMS
   ========================================== */

    .account-narrow-shell {
        max-width: min(640px, 94vw);
    }

    .account-form-actions {
        flex-wrap: wrap;
    }

    @media (max-width: 575.98px) {
        .account-form-actions > .btn {
            width: 100%;
        }
    }

    .form-floating > .form-control-plaintext::placeholder,
    .form-floating > .form-control::placeholder {
        color: var(--bs-secondary-color);
        text-align: end;
    }

    .form-floating > .form-control-plaintext:focus::placeholder,
    .form-floating > .form-control:focus::placeholder {
        text-align: start;
    }

    /* Autocomplete Styles */
    .autocomplete-wrapper {
        position: relative;
        width: 100%;
    }

    /* Inside hero search fields, wrapper is static so dropdown positions relative to the field container */
    .search-field-hero .autocomplete-wrapper {
        position: static;
    }

    /* Inside multi-city field wraps, same approach */
    .mc-field-wrap .autocomplete-wrapper {
        position: static;
    }

    /* ==========================================
   SEARCH FORM VALIDATION ERROR STATES
   ========================================== */

    @keyframes shake {
        0%, 100% {
            transform: translateX(0);
        }

        20%, 60% {
            transform: translateX(-4px);
        }

        40%, 80% {
            transform: translateX(4px);
        }
    }

    .search-field-hero.sfield-error,
    .mc-field-wrap.sfield-error {
        background: #fef2f2 !important;
        box-shadow: inset 0 0 0 2px #ef4444 !important;
        border-radius: 10px;
        animation: shake 0.4s ease;
    }

        .search-field-hero.sfield-error .sfield-label,
        .mc-field-wrap.sfield-error .sfield-label {
            color: #ef4444 !important;
        }

        .search-field-hero.sfield-error .sfield-input::placeholder,
        .mc-field-wrap.sfield-error .sfield-input::placeholder,
        .mc-field-wrap.sfield-error .mc-city-input::placeholder {
            color: #fca5a5 !important;
        }

    /* Validation error tooltip below the field */
    .sfield-error-msg {
        position: absolute;
        bottom: 2px;
        left: 16px;
        right: 16px;
        font-size: 0.68rem;
        font-weight: 600;
        color: #ef4444;
        display: none;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .sfield-error .sfield-error-msg {
        display: block;
    }

    .sfield-error .sfield-subtext {
        display: none !important;
    }

    /* --- Enhanced Autocomplete Styles --- */
    .autocomplete-dropdown {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        width: 100%;
        z-index: 1050;
        background-color: #ffffff;
        border: 1px solid #e2e8f0;
        border-top: 2px solid #3b82f6;
        border-radius: 0 0 12px 12px;
        box-shadow: 0 12px 28px -4px rgba(0,0,0,0.12), 0 4px 8px -2px rgba(0,0,0,0.06);
        max-height: 350px;
        overflow-y: auto;
        display: none;
        padding-bottom: 6px;
    }

        /* Custom Scrollbar for Dropdown */
        .autocomplete-dropdown::-webkit-scrollbar {
            width: 6px;
        }

        .autocomplete-dropdown::-webkit-scrollbar-track {
            background: transparent;
        }

        .autocomplete-dropdown::-webkit-scrollbar-thumb {
            background-color: #cbd5e1;
            border-radius: 10px;
        }

    /* Header for autocomplete */
    .autocomplete-header {
        padding: 12px 16px;
        font-size: 0.75rem;
        font-weight: 700;
        color: #94a3b8;
        text-transform: uppercase;
        letter-spacing: 0.8px;
        background: #ffffff; /* Clean white top */
        border-bottom: 1px solid #f1f5f9;
        position: sticky;
        top: 0;
        z-index: 10;
    }

    .autocomplete-item {
        padding: 10px 16px;
        cursor: pointer;
        border-left: 3px solid transparent; /* Visual cue for hover */
        transition: all 0.2s ease;
    }

        .autocomplete-item:hover,
        .autocomplete-item.active {
            background-color: #f8fafc;
            border-left-color: #3b82f6; /* Modern blue accent */
        }

    .search-field-box {
        border: 1px solid #e5e7eb;
        border-radius: 8px;
        padding: 10px 16px;
        position: relative;
        background: white;
        transition: all 0.2s ease-in-out;
        cursor: pointer;
        height: 100%;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }

        .search-field-box:hover {
            background: #f8f9fa;
            border-color: #d1d5db;
        }

        .search-field-box.focused {
            background: #eaf0fa;
            border-color: #0d6efd;
            box-shadow: 0 0 0 3px rgba(13, 110, 253, 0.15);
        }

    .search-field-label {
        font-size: 0.85rem;
        font-weight: 600;
        color: #6b7280;
        margin-bottom: 2px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
        display: flex;
        align-items: center;
        gap: 6px;
    }

    .search-field-input-wrapper {
        position: relative;
        display: flex;
        align-items: center;
    }

    .search-field-input {
        border: none;
        background: transparent;
        font-size: 1.5rem;
        font-weight: 700;
        color: #111827;
        padding: 0;
        width: 100%;
        outline: none;
        text-transform: uppercase;
    }

        .search-field-input::placeholder {
            color: #9ca3af;
            font-weight: 500;
            font-size: 1.25rem;
        }

        .search-field-input:focus {
            box-shadow: none;
            outline: none;
        }

    .search-field-subtext {
        font-size: 0.85rem;
        color: #6b7280;
        margin-top: 2px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    /* Adjust grid gap for seamless look */
    .search-form-row {
        background: white;
        border-radius: 12px;
        border: 1px solid #e5e7eb;
        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.02);
        padding: 8px;
    }

        .search-form-row .search-field-box {
            border: none;
            border-right: 1px solid #e5e7eb;
            border-radius: 0;
        }

        .search-form-row .col-md-3:last-child .search-field-box,
        .search-form-row .col-md-4:last-child .search-field-box {
            border-right: none;
        }

        .search-form-row .col-md-3:first-child .search-field-box,
        .search-form-row .col-md-4:first-child .search-field-box {
            border-top-left-radius: 8px;
            border-bottom-left-radius: 8px;
        }

    .ac-item-content {
        display: flex;
        align-items: center;
        gap: 12px;
    }

    /* Modern Datepicker overrides */
    .flatpickr-calendar {
        box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.05) !important;
        border: 1px solid #e2e8f0 !important;
        border-radius: 12px !important;
        padding: 8px !important;
        z-index: 99999 !important;
        /* Single-month default width */
        width: 308px !important;
        min-width: 308px !important;
        max-width: 308px !important;
    }

        /* Single-month grid sizing */
        .flatpickr-calendar .flatpickr-days {
            width: 308px !important;
        }

        .flatpickr-calendar .dayContainer {
            width: 294px !important;
            min-width: 294px !important;
            max-width: 294px !important;
        }

        .flatpickr-calendar .flatpickr-day {
            max-width: 42px !important;
        }

        /* Two-month desktop layout */
        .flatpickr-calendar.multiMonth {
            width: 624px !important;
            min-width: 624px !important;
            max-width: 624px !important;
            padding: 10px !important;
        }

            .flatpickr-calendar.multiMonth .flatpickr-days {
                width: 100% !important;
                display: flex !important;
                gap: 12px;
            }

            .flatpickr-calendar.multiMonth .dayContainer {
                flex: 1 1 0;
                width: auto !important;
                min-width: 0 !important;
                max-width: none !important;
            }

                .flatpickr-calendar.multiMonth .dayContainer + .dayContainer {
                    border-left: 1px solid #e5e7eb;
                    padding-left: 12px;
                }

            .flatpickr-calendar.multiMonth .flatpickr-months .flatpickr-month {
                min-width: 0;
            }

    /* Ensure the calendar is not clipped by parent overflow:hidden */
    .search-hero-card {
        overflow: visible !important;
    }

    .search-fields-row {
        overflow: visible !important;
    }

    .search-field-hero {
        overflow: visible !important;
    }

    .mc-field-wrap {
        overflow: visible !important;
    }

    .mc-route-row,
    .mc-row-inner {
        overflow: visible !important;
    }

    /* Fix calendar positioning to prevent right-side clipping */
    .flatpickr-calendar.open {
        display: inline-block !important;
        z-index: 99999 !important;
    }

    /* When calendar would overflow right edge, open it to the left */
    .flatpickr-calendar.arrowRight {
        right: 0 !important;
        left: auto !important;
    }

    .flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange, .flatpickr-day.selected.inRange, .flatpickr-day.startRange.inRange, .flatpickr-day.endRange.inRange, .flatpickr-day.selected:focus, .flatpickr-day.startRange:focus, .flatpickr-day.endRange:focus, .flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover, .flatpickr-day.selected.prevMonthDay, .flatpickr-day.startRange.prevMonthDay, .flatpickr-day.endRange.prevMonthDay, .flatpickr-day.selected.nextMonthDay, .flatpickr-day.startRange.nextMonthDay, .flatpickr-day.endRange.nextMonthDay {
        background: #3b82f6 !important;
        border-color: #3b82f6 !important;
    }

    .ac-icon {
        font-size: 1.3rem;
        color: #9ca3af;
        background: #f3f4f6;
        border-radius: 50%;
        width: 36px;
        height: 36px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .ac-details {
        flex-grow: 1;
        display: flex;
        flex-direction: column;
    }

    .ac-city {
        font-weight: 700;
        font-size: 1rem;
        color: #111827;
        margin-bottom: 2px;
    }

    .ac-name {
        font-size: 0.85rem;
        color: #6b7280;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 260px;
    }

    .ac-code {
        font-weight: 700;
        color: #0d6efd;
        background-color: #eff6ff;
        padding: 4px 8px;
        border-radius: 6px;
        font-size: 0.85rem;
        letter-spacing: 0.5px;
    }

    .autocomplete-no-result {
        padding: 16px;
        text-align: center;
        color: #6b7280;
        font-size: 0.9rem;
    }

    /* City group header inside autocomplete dropdown */
    .ac-city-group-header {
        padding: 8px 16px 4px;
        font-size: 0.72rem;
        font-weight: 700;
        color: #475569;
        text-transform: uppercase;
        letter-spacing: 0.6px;
        background: #f8fafc;
        border-top: 1px solid #f1f5f9;
        border-bottom: 1px solid #f1f5f9;
        margin-top: 4px;
    }

    /* Indented item when inside a city group */
    .autocomplete-item.ac-item-grouped {
        padding-left: 28px;
        border-left: 3px solid #bfdbfe;
    }

        .autocomplete-item.ac-item-grouped:hover,
        .autocomplete-item.ac-item-grouped.active {
            background-color: #eff6ff;
            border-left-color: #2563eb;
        }

    /* Modern Filters Panel Styles */
    .filter-card.sticky-top {
        max-height: calc(100vh - 100px);
        /* Leave room for sticky footer */
        overflow-y: auto;
        z-index: 900;
        /* Specifically lower than the 1000 sticky footer */
    }

    /* Custom WebKit scrollbar for the filter card to maintain premium look */
    .filter-card::-webkit-scrollbar {
        width: 6px;
    }

    .filter-card::-webkit-scrollbar-track {
        background: #f1f1f1;
        border-radius: 4px;
    }

    .filter-card::-webkit-scrollbar-thumb {
        background: #c1c1c1;
        border-radius: 4px;
    }

        .filter-card::-webkit-scrollbar-thumb:hover {
            background: #a8a8a8;
        }

    .filter-group-header {
        font-size: 0.9rem;
        font-weight: 700;
        color: #111827;
        margin-bottom: 12px;
    }

    .custom-filter-cb {
        position: relative;
        padding-left: 28px;
        cursor: pointer;
        user-select: none;
        font-size: 0.85rem;
        color: #4b5563;
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 8px;
        min-height: 20px;
    }

        .custom-filter-cb:hover {
            color: #111827;
        }

        .custom-filter-cb input {
            position: absolute;
            opacity: 0;
            cursor: pointer;
            height: 0;
            width: 0;
        }

    /* Custom Checkbox mark */
    .checkmark {
        position: absolute;
        top: 50%;
        margin-top: -9px;
        /* Half of height to center perfectly */
        left: 0;
        height: 18px;
        width: 18px;
        background-color: #fff;
        border: 1px solid #d1d5db;
        border-radius: 4px;
        transition: all 0.2s ease;
    }

    .custom-filter-cb:hover input ~ .checkmark {
        border-color: #0d6efd;
    }

    .custom-filter-cb input:checked ~ .checkmark {
        background-color: #0d6efd;
        border-color: #0d6efd;
    }

    /* Checkmark indicator */
    .checkmark:after {
        content: "";
        position: absolute;
        display: none;
    }

    .custom-filter-cb input:checked ~ .checkmark:after {
        display: block;
    }

    .custom-filter-cb .checkmark:after {
        left: 6px;
        top: 2px;
        width: 5px;
        height: 10px;
        border: solid white;
        border-width: 0 2px 2px 0;
        transform: rotate(45deg);
    }

    .custom-filter-cb.child-item {
        font-size: 0.8rem;
        color: #64748b;
        margin-bottom: 6px;
        padding-left: 24px;
    }

        .custom-filter-cb.child-item .checkmark {
            height: 15px;
            width: 15px;
            margin-top: -7.5px;
        }

            .custom-filter-cb.child-item .checkmark:after {
                left: 5px;
                top: 1px;
                width: 4px;
                height: 8px;
            }

    .filter-price-indicator {
        font-weight: 600;
        color: #1f2937;
        font-size: 0.8rem;
    }

    .airline-filter-logo {
        width: 16px;
        height: 16px;
        object-fit: contain;
        margin-right: 6px;
        border-radius: 2px;
    }

    /* Hidden state for filtering */
    .result-card.filtered-out {
        display: none !important;
    }

    /* ==========================================
   MAKEMYTRIP STYLE REFINEMENTS
   ========================================== */

    /* Full Screen Loading Overlay */
    .search-loading-overlay {
        position: fixed;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        background-color: rgba(255, 255, 255, 0.95);
        z-index: 9999;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.3s ease;
    }

        .search-loading-overlay.active {
            opacity: 1;
            pointer-events: all;
        }

    .loader-airplane {
        font-size: 3rem;
        color: #0d6efd;
        animation: flyFlight 2s ease-in-out infinite;
        margin-bottom: 20px;
    }

    @keyframes flyFlight {
        0% {
            transform: translate(-30px, 15px) rotate(15deg) scale(0.8);
            opacity: 0;
        }

        20% {
            opacity: 1;
        }

        50% {
            transform: translate(0px, -10px) rotate(45deg) scale(1.1);
        }

        80% {
            opacity: 1;
        }

        100% {
            transform: translate(30px, -25px) rotate(70deg) scale(0.8);
            opacity: 0;
        }
    }

    .loader-text {
        font-size: 1.5rem;
        font-weight: 700;
        color: #111827;
        margin-bottom: 8px;
    }

    .loader-subtext {
        font-size: 1rem;
        color: #6b7280;
    }

    /* MakeMyTrip Horizontal Card Format */
    .mmt-flight-header {
        display: flex;
        align-items: center;
        gap: 12px;
        min-width: 160px;
        flex-shrink: 0;
    }

    .mmt-airline-logo {
        width: 32px;
        height: 32px;
        min-width: 32px;
        min-height: 32px;
        object-fit: contain;
        border-radius: 6px;
        background: #f5f7ff;
        border: 1px solid #e2e8f0;
        padding: 3px;
        flex-shrink: 0;
        box-shadow: none;
    }

    .airline-filter-logo {
        width: 20px;
        height: 20px;
        object-fit: contain;
        margin-right: 8px;
        border-radius: 3px;
    }

    .airline-name-text {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 120px;
        display: inline-block;
        vertical-align: middle;
    }

    .mmt-airline-info {
        display: flex;
        flex-direction: column;
    }

    .mmt-airline-name {
        font-weight: 600;
        color: #111827;
        font-size: 0.95rem;
    }

    .mmt-flight-num {
        font-size: 0.8rem;
        color: #6b7280;
    }

    .mmt-timeline-container {
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex-grow: 1;
        padding: 0 24px;
    }

    .mmt-time-block {
        text-align: center;
    }

    .mmt-time {
        font-size: 1.4rem;
        font-weight: 700;
        color: #111827;
        line-height: 1.2;
    }

    .mmt-city {
        font-size: 0.85rem;
        color: #4b5563;
        font-weight: 500;
    }

    .mmt-duration-block {
        flex-grow: 1;
        text-align: center;
        padding: 0 20px;
        position: relative;
    }

    .mmt-duration {
        font-size: 0.85rem;
        color: #4b5563;
        margin-bottom: 4px;
        display: block;
    }

    .mmt-stop-line {
        height: 2px;
        background-color: #e5e7eb;
        margin: 6px 0;
        position: relative;
    }

    .mmt-stop-dot {
        width: 6px;
        height: 6px;
        background-color: #9ca3af;
        border-radius: 50%;
        position: absolute;
        top: -2px;
        left: 50%;
        transform: translateX(-50%);
    }

    .mmt-stop-text {
        font-size: 0.75rem;
        color: #6b7280;
        display: block;
    }

    .mmt-price-block {
        min-width: 150px;
        text-align: right;
    }

    .mmt-price {
        font-size: 1.5rem;
        font-weight: 800;
        color: #111827;
        margin-bottom: 2px;
    }

    .mmt-per-adult {
        font-size: 0.75rem;
        color: #6b7280;
    }

    .mmt-action-block {
        min-width: 140px;
        text-align: right;
    }

    .mmt-btn-book {
        background: linear-gradient(90deg, #1e90ff, #0d6efd);
        border: none;
        border-radius: 20px;
        padding: 8px 24px;
        font-weight: 700;
        letter-spacing: 0.5px;
        box-shadow: 0 4px 6px rgba(13, 110, 253, 0.2);
        transition: all 0.2s ease;
    }

        .mmt-btn-book:hover {
            transform: translateY(-2px);
            box-shadow: 0 6px 12px rgba(13, 110, 253, 0.3);
        }

    .mmt-view-details {
        font-size: 0.85rem;
        color: #0d6efd;
        text-decoration: none;
        font-weight: 600;
        cursor: pointer;
    }

        .mmt-view-details:hover {
            text-decoration: underline;
        }

    .mmt-footer {
        background-color: #f9fafb;
        border-top: 1px solid #f3f4f6;
        padding: 8px 16px;
        font-size: 0.8rem;
        color: #6b7280;
        display: flex;
        justify-content: space-between;
        align-items: center;
        border-bottom-left-radius: 8px;
        border-bottom-right-radius: 8px;
    }

    /* Adjust card to remove padding for seamless footer */
    .result-card.mmt-format {
        padding: 0;
        border-radius: 8px;
        overflow: hidden;
    }

    .mmt-format .card-body {
        padding: 20px 24px;
    }

    /* Premium Filter Box Styles */
    .stop-filter-box, .time-filter-box {
        background: #fff;
        border: 1.5px solid #e2e8f0;
        border-radius: 8px;
        padding: 10px 8px;
        transition: all 0.18s ease;
        cursor: pointer;
        user-select: none;
        position: relative;
    }

        /* Hide the raw checkbox inside stop/time filter boxes */
        .stop-filter-box input[type="checkbox"],
        .time-filter-box input[type="checkbox"] {
            position: absolute;
            opacity: 0;
            width: 0;
            height: 0;
            pointer-events: none;
        }

        .stop-filter-box:hover, .time-filter-box:hover {
            border-color: #93c5fd;
            background: #f0f9ff;
        }

        /* Active / checked state - triggered by JS adding .active class */
        .stop-filter-box.active, .time-filter-box.active {
            background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
            border-color: #2563eb;
            border-width: 2px;
            box-shadow: 0 0 0 3px rgba(37,99,235,0.12);
        }

            .stop-filter-box.active .box-content > div:first-child,
            .stop-filter-box.active .fw-bold {
                color: #1d4ed8;
            }

            .stop-filter-box.active .text-muted,
            .time-filter-box.active span {
                color: #2563eb !important;
                font-weight: 600;
            }

            .time-filter-box.active i {
                color: #2563eb;
            }

        .stop-filter-box input:checked ~ .box-content > *,
        .time-filter-box input:checked ~ .box-content > * {
            color: #1d4ed8;
        }


    .filter-header-pro {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 10px;
    }

        .filter-header-pro .title {
            font-size: 0.85rem;
            font-weight: 700;
            color: #1e293b;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        .filter-header-pro .clear-link {
            font-size: 0.75rem;
            color: #2563eb;
            cursor: pointer;
            font-weight: 500;
        }

            .filter-header-pro .clear-link:hover {
                text-decoration: underline;
            }

    .slider-label-pro {
        font-size: 0.8rem;
        color: #475569;
        margin-bottom: 8px;
    }

    /* Onward/Return Route Headers in Split View */
    .route-header-split {
        background: #f8fafc;
        border-bottom: 1px solid #e2e8f0;
        padding: 12px 16px;
        margin-bottom: 15px;
        border-radius: 8px;
    }

        .route-header-split .route-info {
            font-weight: 700;
            color: #0f172a;
            font-size: 0.95rem;
        }

        .route-header-split .route-date {
            font-size: 0.8rem;
            color: #64748b;
        }

    /* Split View Results Adjustment */
    .results-column {
        padding-right: 8px;
    }

        .results-column::-webkit-scrollbar {
            width: 6px;
        }

        .results-column::-webkit-scrollbar-track {
            background: #f1f5f9;
        }

        .results-column::-webkit-scrollbar-thumb {
            background: #cbd5e1;
            border-radius: 10px;
        }

            .results-column::-webkit-scrollbar-thumb:hover {
                background: #94a3b8;
            }

    /* Filter Checkbox Styling */
    .custom-filter-cb {
        display: block;
        position: relative;
        padding-left: 28px;
        margin-bottom: 8px;
        cursor: pointer;
        font-size: 0.85rem;
        color: #334155;
        user-select: none;
    }

        .custom-filter-cb input {
            position: absolute;
            opacity: 0;
            cursor: pointer;
            height: 0;
            width: 0;
        }

    .checkmark {
        position: absolute;
        top: 2px;
        left: 0;
        height: 18px;
        width: 18px;
        background-color: #f1f5f9;
        border: 1px solid #cbd5e1;
        border-radius: 4px;
    }

    .custom-filter-cb:hover input ~ .checkmark {
        background-color: #e2e8f0;
    }

    .custom-filter-cb input:checked ~ .checkmark {
        background-color: #2563eb;
        border-color: #2563eb;
    }

    .checkmark:after {
        content: "";
        position: absolute;
        display: none;
    }

    .custom-filter-cb input:checked ~ .checkmark:after {
        display: block;
    }

    .custom-filter-cb .checkmark:after {
        left: 6px;
        top: 2px;
        width: 5px;
        height: 10px;
        border: solid white;
        border-width: 0 2px 2px 0;
        transform: rotate(45deg);
    }

    .filter-price-indicator {
        float: right;
        font-size: 0.75rem;
        color: #64748b;
        font-weight: 500;
    }

    .airline-filter-logo {
        width: 20px;
        height: 20px;
        margin-right: 8px;
        object-fit: contain;
    }

    /* Sidebar Sections */
    .sidebar-section {
        padding: 16px 0;
    }

    .sidebar-divider {
        border-top: 1px solid #f1f5f9;
        margin: 0 -15px;
    }

    #clearFiltersBtn {
        font-weight: 600;
        color: #ef4444;
        transition: all 0.2s;
    }

        #clearFiltersBtn:hover {
            color: #dc2626;
            background: #fef2f2;
        }

    /* Skeleton Loading Animation */
    .skeleton {
        background: #f1f5f9;
        background: linear-gradient(110deg, #f1f5f9 8%, #f8fafc 18%, #f1f5f9 33%);
        border-radius: 5px;
        background-size: 200% 100%;
        animation: 1.5s shine linear infinite;
    }

    @keyframes shine {
        to {
            background-position-x: -200%;
        }
    }

    .skeleton-text {
        height: 1rem;
        margin-bottom: 0.5rem;
        width: 100%;
    }

    .skeleton-title {
        height: 1.5rem;
        margin-bottom: 1rem;
        width: 50%;
    }

    .skeleton-card {
        height: 120px;
        margin-bottom: 1rem;
        width: 100%;
    }

    .skeleton-inline {
        display: inline-block;
    }
}


.results-route-pill {
    display: inline-flex;
    align-items: center;
    background: #f0f7ff;
    border: 1px solid #bfdbfe;
    border-radius: 20px;
    padding: 4px 14px;
    font-size: 0.85rem;
    color: #1e3a8a;
    font-weight: 600;
    letter-spacing: 0.3px;
}

.results-info-pill {
    display: inline-flex;
    align-items: center;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 20px;
    padding: 4px 12px;
    font-size: 0.8rem;
    color: #475569;
    font-weight: 500;
}

/* ==========================================
   POLICY INFO BLOCK (Booking Screen)
   ========================================== */

.policy-info-block {
    font-size: 0.78rem;
    color: #475569;
    line-height: 1.5;
}

.policy-section-header {
    display: block;
    font-size: 0.78rem;
    font-weight: 700;
    color: #1e293b;
    margin-top: 0.5rem;
    margin-bottom: 0.2rem;
    padding-bottom: 2px;
    border-bottom: 1px solid #e2e8f0;
}

.policy-list {
    margin: 0.25rem 0 0.5rem 0;
    padding-left: 1.2rem;
    list-style: disc;
}

    .policy-list li {
        margin-bottom: 0.2rem;
        color: #475569;
    }

    .policy-list .amount {
        font-weight: 700;
        color: #0f172a;
    }

/* ==========================================
   FILTER ACTIVE BADGE BAR
   ========================================== */

.filter-active-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: #dbeafe;
    color: #1d4ed8;
    border: 1px solid #93c5fd;
    border-radius: 20px;
    padding: 2px 8px;
    font-size: 0.7rem;
    font-weight: 700;
    white-space: nowrap;
}

/* Common compact dropdown style for search/sort controls */
.results-compact-select {
    width: auto;
    min-width: 116px;
    font-size: 0.8rem;
    border-radius: 20px;
    padding: 4px 32px 4px 10px !important;
    line-height: 1.25;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 16 16'%3E%3Cpath fill='%23334155' d='M1.5 5.5l6.5 6.5 6.5-6.5z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    background-size: 10px;
}

    .results-compact-select.results-compact-select-xs {
        font-size: 0.72rem;
        min-width: 104px;
        padding: 3px 30px 3px 10px !important;
    }

.results-main-sort-wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}

.results-main-travel-info {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.results-main-info-pill {
    display: inline-flex;
    align-items: center;
    background: #f8fafc;
    color: #334155;
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    padding: 3px 10px;
    font-size: 0.73rem;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
}

.results-main-sort-controls {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

.results-main-modify-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border-radius: 999px;
    white-space: nowrap;
    font-size: 0.78rem;
    padding: 4px 10px;
    line-height: 1;
}

@media (max-width: 575.98px) {
    .results-main-sort-wrap {
        align-items: stretch;
    }

    .results-main-travel-info {
        width: 100%;
    }

    .results-main-info-pill {
        font-size: 0.7rem;
    }

    .results-main-sort-controls {
        width: 100%;
        justify-content: flex-end;
        flex-wrap: wrap;
        gap: 6px;
    }

    .results-main-modify-btn {
        padding: 4px 8px;
    }

        .results-main-modify-btn span {
            display: none;
        }
}

/* ==========================================
   HORIZONTAL SIDEBAR COLLAPSE LAYOUT
   ========================================== */

/* Sidebar column - uses flex, not bootstrap grid */
.search-results-row {
    display: flex !important;
    flex-wrap: nowrap !important;
}

.filter-sidebar-col {
    width: 280px;
    min-width: 280px;
    max-width: 280px;
    transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    flex-shrink: 0;
    position: relative;
    box-shadow: 2px 0 10px rgba(0,0,0,0.03);
}

    .filter-sidebar-col.collapsed {
        width: 68px;
        min-width: 68px;
        max-width: 68px;
    }

.results-main-col {
    flex: 1;
    min-width: 0;
    padding-left: 16px;
    padding-top: 8px;
    position: relative;
    transition: all 0.3s ease;
}

.results-sort-loading-overlay {
    position: absolute;
    inset: 0;
    z-index: 120;
    display: none;
    padding: 10px 0 0;
    background: rgba(255, 255, 255, 0.98);
    pointer-events: auto;
}

.results-sort-loading-overlay.active {
    display: block;
}

.results-sort-loading-shell {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding-bottom: 14px;
}

.results-sort-loading-overlay .skeleton-box {
    background-color: #e2e8f0;
    border-radius: 4px;
    position: relative;
    overflow: hidden;
}

.results-sort-loading-overlay .skeleton-box::after {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    transform: translateX(-100%);
    background-image: linear-gradient(90deg, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, 0.4) 20%, rgba(255, 255, 255, 0.6) 60%, rgba(255, 255, 255, 0));
    animation: resultsSortOverlayShimmer 1.8s infinite;
    content: '';
}

@keyframes resultsSortOverlayShimmer {
    100% {
        transform: translateX(100%);
    }
}

.results-sort-loading-overlay .skeleton-card {
    margin-bottom: 8px;
}

.results-sort-loading-overlay .skeleton-rt-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.results-sort-loading-overlay .skeleton-rt-col-header {
    height: 56px;
    border-radius: 12px;
    margin-bottom: 8px;
}

.results-sort-loading-label {
    align-self: flex-start;
    color: #4b5563;
    font-size: 0.8rem;
    font-weight: 700;
    padding: 0 6px;
}

.results-sort-skeleton-row {
    height: 92px;
    border-radius: 14px;
    border: 1px solid #e2e8f0;
    background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 37%, #f1f5f9 63%);
    background-size: 400% 100%;
    animation: resultsSortSkeletonWave 1.1s ease-in-out infinite;
}

.results-main-col.results-initial-sort-pending > :not(.results-sort-loading-overlay) {
    visibility: hidden;
}

@keyframes resultsSortSkeletonWave {
    0% {
        background-position: 100% 0;
    }

    100% {
        background-position: 0 0;
    }
}

@media (max-width: 767.98px) {
    .results-sort-loading-overlay {
        padding-top: 6px;
    }

    .results-sort-loading-overlay .skeleton-rt-split {
        grid-template-columns: 1fr;
    }

    .results-sort-loading-overlay .skeleton-timeline-col {
        display: none;
    }

    .results-sort-skeleton-row {
        height: 84px;
        border-radius: 12px;
    }
}

#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout #onwardColumn,
#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout #returnColumn,
#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .results-column,
#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .split-view-card,
#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .trip-summary-row,
#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .mmt-flight-header,
#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .mmt-airline-info,
#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .mmt-duration-block,
#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .mmt-timeline-container,
#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .mmt-time-block,
#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .roundtrip-selection-footer,
#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .roundtrip-selection-footer .left-group,
#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .roundtrip-selection-footer .right-group,
#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .price-container,
#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .price-display.split-price-display {
    min-width: 0;
}

#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .trip-summary-row {
    flex-wrap: wrap;
    align-items: flex-start !important;
    gap: 8px;
}

#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .mmt-flight-header {
    flex: 0 1 132px;
    gap: 8px;
}

#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .mmt-airline-name,
#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .mmt-flight-num,
#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .mmt-city,
#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .airport-code {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .mmt-timeline-container {
    flex: 1 1 0 !important;
    width: 100% !important;
    margin: 0 4px !important;
    padding: 0 4px !important;
}

#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .mmt-time-block {
    min-width: 56px !important;
}

#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .mmt-duration,
#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .mmt-stop-text,
#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .mmt-city,
#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .airport-code,
#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .fare-badge,
#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .baggage-info,
#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .flight-details-link {
    font-size: 0.68rem;
}

#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .mmt-footer {
    gap: 8px;
}

#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .roundtrip-selection-footer .left-group,
#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .roundtrip-selection-footer .right-group {
    flex-wrap: wrap;
    gap: 6px;
}

#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .roundtrip-selection-footer .right-group {
    justify-content: flex-end;
}

#filterSidebarCol:not(.collapsed) ~ #resultsColumn #splitViewRow.rt-domestic-layout .price-display.split-price-display {
    gap: 6px;
    align-items: center;
}

.roundtrip-results-row {
    margin-top: 0 !important;
}

.roundtrip-results-main {
    padding-top: 0 !important;
}

/* Expanded filter panel */
.filter-sidebar-content {
    position: sticky;
    top: var(--results-stack-offset);
    max-height: calc(100vh - var(--results-stack-offset) - var(--results-sidebar-bottom-offset));
    max-height: calc(100dvh - var(--results-stack-offset) - var(--results-sidebar-bottom-offset));
    overflow-y: auto;
    overflow-x: hidden;
    padding-bottom: 16px;
    scrollbar-gutter: stable;
}

/* COLLAPSED STRIP */
.collapsed-filter-strip {
    position: sticky;
    top: var(--results-stack-offset);
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 20px 0;
    background: #fff;
    border-right: 1px solid #e2e8f0;
    max-height: calc(100vh - var(--results-stack-offset) - var(--results-sidebar-bottom-offset));
    max-height: calc(100dvh - var(--results-stack-offset) - var(--results-sidebar-bottom-offset));
    overflow-y: auto;
    scrollbar-width: none;
}

    .collapsed-filter-strip::-webkit-scrollbar {
        display: none;
    }

.strip-toggle-btn {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #64748b;
    font-size: 1.1rem;
    transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
    margin-bottom: 24px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

    .strip-toggle-btn:hover {
        background: #2563eb;
        color: #fff;
        border-color: #2563eb;
        transform: rotate(90deg);
    }

.strip-icons {
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: center;
    width: 100%;
}

.strip-icon-item {
    position: relative;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: #fff;
    border: 1px solid #f1f5f9;
    color: #94a3b8;
    font-size: 1.2rem;
    cursor: pointer;
    transition: all 0.25s ease;
    box-shadow: 0 1px 2px rgba(0,0,0,0.03);
}

    .strip-icon-item:hover {
        background: #f8fafc;
        border-color: #cbd5e1;
        color: #475569;
        transform: translateX(2px);
    }

    .strip-icon-item.has-filters {
        background: #eff6ff;
        border-color: #bfdbfe;
        color: #2563eb;
    }

        .strip-icon-item.has-filters:hover {
            background: #dbeafe;
        }

.strip-badge {
    position: absolute;
    top: -6px;
    right: -6px;
    background: #ef4444;
    color: #fff;
    font-size: 0.65rem;
    font-weight: 800;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    border: 2px solid #fff;
    box-shadow: 0 2px 4px rgba(239, 68, 68, 0.2);
}

.strip-label {
    display: none;
}
/* Hidden, we use tooltips now */

/* ==========================================
   CHECKBOX ALIGNMENT FIXES (custom-filter-cb)
   ========================================== */

.custom-filter-cb {
    position: relative;
    display: block;
    padding-left: 28px;
    margin-bottom: 8px;
    cursor: pointer;
    font-size: 0.8rem;
    line-height: 1.5;
    user-select: none;
    min-height: 20px;
}

    .custom-filter-cb input {
        position: absolute;
        opacity: 0;
        cursor: pointer;
        height: 0;
        width: 0;
    }

.checkmark {
    position: absolute;
    top: 2px;
    left: 0;
    height: 18px;
    width: 18px;
    background-color: #f1f5f9;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    transition: all 0.2s;
}

.custom-filter-cb:hover input ~ .checkmark {
    background-color: #e2e8f0;
    border-color: #94a3b8;
}

.custom-filter-cb input:checked ~ .checkmark {
    background-color: #2563eb;
    border-color: #2563eb;
}

.checkmark:after {
    content: "";
    position: absolute;
    display: none;
}

.custom-filter-cb input:checked ~ .checkmark:after {
    display: block;
}

.custom-filter-cb .checkmark:after {
    left: 6px;
    top: 2px;
    width: 5px;
    height: 10px;
    border: solid white;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.custom-filter-cb .d-flex.align-items-center {
    gap: 8px;
}

.airline-filter-logo {
    width: 18px;
    height: 18px;
    object-fit: contain;
    border-radius: 2px;
}

.filter-price-indicator {
    float: right;
    font-weight: 700;
    color: #1e293b;
    font-size: 0.75rem;
}

/* ==========================================
   FLIGHT CARD AIRLINE ALIGNMENT
   ========================================== */

.mmt-flight-header .d-flex.align-items-center {
    align-items: center !important;
}

.mmt-airline-logo {
    width: 32px;
    height: 32px;
    min-width: 32px;
    min-height: 32px;
    object-fit: contain;
    border-radius: 6px;
    background: #f5f7ff;
    border: 1px solid #e2e8f0;
    padding: 3px;
    margin-right: 12px;
    flex-shrink: 0;
    box-shadow: none;
}

.mmt-airline-info {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.mmt-airline-name {
    display: block;
    font-weight: 700;
    font-size: 0.85rem;
    color: #0f172a;
    line-height: 1.1;
}

.mmt-flight-num {
    display: block;
    font-size: 0.7rem;
    color: #64748b;
    margin-top: 2px;
}

.stop-filter-box:hover, .time-filter-box:hover {
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    transform: translateY(-1px);
}


/* ==========================================
   PROFESSIONAL UI POLISH
   ========================================== */

/* ==========================================
   MODERN PREMIUM FLIGHT CARDS
   ========================================== */

.result-card {
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 3px 14px rgba(15, 23, 42, 0.04);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    margin-bottom: 4px;
    overflow: hidden;
    position: relative;
    border-left: 4px solid transparent;
    user-select: none;
    -webkit-user-select: none;
    width: 100%;
}

    /* Reserve space for the tripcart quote checkbox so it doesn't overlap content */
    .result-card > .card-body > .p-4 {
        padding-right: 48px !important;
    }

    .result-card > .card-body > .p-4,
    .result-card > .card-body > .p-3 {
        padding-top: 7px !important;
        padding-bottom: 5px !important;
    }

/* Keep split-view and multicity card bodies aligned with one-way compact vertical rhythm. */
#splitViewRow .split-view-card > .card-body > .p-3,
.multi-city-card > .card-body > .p-4,
.multi-city-combo-card > .card-body > .p-4 {
    padding-top: 7px !important;
    padding-bottom: 5px !important;
}

#splitViewRow .split-view-card .mmt-footer,
.multi-city-card .mmt-footer,
.multi-city-combo-card .mmt-footer {
    padding: 0.65rem 0.9rem;
}

.multi-city-combo-card .mmt-flight-header {
    min-width: 148px;
    gap: 10px;
}

.multi-city-combo-card .mmt-airline-name {
    font-size: 0.82rem;
    line-height: 1.05;
}

.multi-city-combo-card .mmt-flight-num {
    font-size: 0.68rem;
    margin-top: 1px;
}

.multi-city-combo-card .mmt-flight-header .mt-1 {
    margin-top: 0.2rem !important;
}

.tripcart-picker-icon {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 10;
    cursor: pointer;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.result-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
    border-color: #cbd5e1;
    border-left-color: #2563eb;
}

/* Tabbed Detail View */
.mmt-flight-details {
    background: #f8fafc;
    border-top: 1px solid #e2e8f0;
    padding: 0 !important;
}

/* Split-view (Round Trip) flight details collapse: add inner padding so content doesn't touch card border */
.split-view-card .card-footer.mmt-flight-details,
.split-view-card .collapse > .card-footer {
    margin: 0 8px 8px 8px;
    border-radius: 0 0 10px 10px;
    border: 1px solid #e2e8f0;
    border-top: none;
}

.split-view-card .collapse > div > .card-footer.mmt-flight-details {
    margin: 0 8px 8px 8px;
    border-radius: 10px;
    border: 1px solid #e2e8f0;
}

.details-tabs-nav {
    display: flex;
    background: #fff;
    border-bottom: 1px solid #e2e8f0;
    padding: 0 10px;
}

.details-tab-btn {
    padding: 12px 18px;
    font-size: 0.8rem;
    font-weight: 700;
    color: #64748b;
    border: none;
    background: none;
    position: relative;
    transition: all 0.3s;
    text-transform: uppercase;
    letter-spacing: 0.35px;
}

    .details-tab-btn:hover {
        color: #1e293b;
    }

    .details-tab-btn.active {
        color: #2563eb;
    }

        .details-tab-btn.active::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            width: 100%;
            height: 3px;
            background: #2563eb;
            border-radius: 3px 3px 0 0;
        }

.details-tab-content {
    padding: 18px 20px;
    position: relative;
    overflow: hidden;
    transition: height 0.25s ease;
}

/* Compact, normalized typography for Flight Info tab content */
.leg-group-compact {
    margin-bottom: 14px !important;
}

.leg-group-title {
    font-size: 0.86rem;
    font-weight: 700;
    color: #475569;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    border-bottom: 1px solid #e2e8f0;
    padding-bottom: 8px;
    margin-bottom: 10px;
}

.leg-detail-row {
    gap: 8px;
    margin-bottom: 10px;
}

.leg-time-col {
    width: 46px;
    min-width: 46px;
    flex: 0 0 46px;
}

.leg-time-value {
    line-height: 1.1;
}

.leg-date-value {
    font-size: 0.63rem !important;
}

.leg-code-value {
    font-size: 0.7rem;
}

.leg-timeline-col {
    position: relative;
    min-width: 12px;
    margin-right: 4px;
}

.leg-timeline-dot {
    font-size: 0.46rem;
    z-index: 2;
}

.leg-timeline-line {
    width: 2px;
    height: 100%;
    min-height: 34px;
    background: #dee2e6;
    margin-top: -3px;
}

.leg-timeline-dot-end {
    position: absolute;
    bottom: 0;
}

.leg-main-content {
    min-width: 0;
}

.leg-route-head {
    font-size: 0.92rem;
    line-height: 1.25;
}

.leg-meta-line,
.leg-duration-line {
    font-size: 0.76rem;
    line-height: 1.35;
}

.leg-meta-chip {
    font-size: 0.66rem;
    font-weight: 600;
    padding: 0.2rem 0.38rem;
}

.leg-layover-row {
    background: #fffbeb;
    color: #92400e;
    text-align: center;
    border: 1px dashed #fbbf24;
    border-radius: 8px;
    font-size: 0.74rem;
    font-weight: 700;
    padding: 6px 10px;
    margin: 2px 0 12px;
}

.multicity-trip-separator-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: #eff6ff;
    color: #1e3a8a;
    text-align: center;
    border: 1px dashed #93c5fd;
    border-radius: 8px;
    font-size: 0.74rem;
    font-weight: 700;
    padding: 7px 10px;
    margin: 2px 0 12px;
}

.multicity-trip-separator-title {
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

.multicity-trip-separator-meta {
    color: #1d4ed8;
    font-weight: 600;
}

@media (max-width: 991.98px) {
    .details-tab-content {
        padding: 14px 14px;
    }

    .details-tab-btn {
        padding: 10px 14px;
        font-size: 0.76rem;
    }
}

/* Tab pane: hidden by default, shown when .active */
.tab-pane-xt {
    display: none;
}

    .tab-pane-xt.active {
        display: block;
    }

.fare-rules-container,
.baggage-rules-container {
    min-height: 100px;
}

.fare-rules-loading,
.fare-rules-content,
.fare-rules-error,
.baggage-rules-loading,
.baggage-rules-content,
.baggage-rules-error {
    transition: opacity 0.25s ease;
}

/* Fare Rules tab compact layout */
.fare-rules-grid {
    padding: 8px;
}

.fare-rule-col {
    display: flex;
}

.fare-rule-card {
    width: 100%;
    padding: 12px 14px;
    border-radius: 10px;
    border: 1px solid #dbe2ea;
    background: #fff;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
}

.fare-rule-title {
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
    font-size: 1.02rem;
    color: #111827;
}

.fare-rule-text {
    font-size: 0.8rem;
    line-height: 1.45;
    color: #64748b;
    margin-bottom: 8px;
}

.fare-rule-fee {
    font-size: 1.12rem;
    line-height: 1.2;
    font-weight: 700;
}

.fare-rule-fee-muted {
    margin-top: 3px;
    font-size: 0.8rem;
    color: #64748b;
}

.fare-rule-empty {
    font-size: 0.82rem;
    padding: 0.65rem 0.85rem;
}

/* Baggage tab compact layout */
.baggage-rules-body {
    padding: 10px 12px;
}

.baggage-section-title {
    margin-bottom: 8px;
    font-size: 0.84rem;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.baggage-table-wrap {
    margin-bottom: 12px;
}

.baggage-rule-table {
    font-size: 0.78rem;
}

    .baggage-rule-table th,
    .baggage-rule-table td {
        padding: 0.36rem 0.42rem;
        line-height: 1.35;
    }

.baggage-summary-note {
    font-size: 0.72rem;
    color: #64748b;
    font-style: italic;
}

.baggage-empty {
    text-align: center;
    color: #64748b;
    padding: 16px 0;
}

/* ─── Compare Tab Grid ─── */
.compare-grid {
    display: flex;
    overflow: hidden;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #fff;
    margin: 8px;
}

/* Fixed left sidebar */
.compare-sidebar {
    flex: 0 0 150px;
    min-width: 150px;
    background: #fafafa;
    border-right: 1px solid #e5e7eb;
    z-index: 2;
}

.compare-sidebar-header {
    padding: 10px 12px;
    font-weight: 700;
    font-size: 0.76rem;
    color: #374151;
    border-bottom: 1px solid #e5e7eb;
    height: 48px;
    display: flex;
    align-items: center;
}

.compare-sidebar-row {
    padding: 10px 12px;
    font-weight: 600;
    font-size: 0.75rem;
    color: #4b5563;
    border-bottom: 1px solid #f0f0f0;
    height: 52px;
    display: flex;
    align-items: center;
}

    .compare-sidebar-row.tall-row {
        height: 78px;
        align-items: flex-start;
        padding-top: 10px;
    }

/* Scrollable cards area */
.compare-cards-scroll {
    flex: 1;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: smooth;
    cursor: grab;
    user-select: none;
}

    .compare-cards-scroll.drag-active {
        cursor: grabbing;
        scroll-behavior: auto;
    }

    .compare-cards-scroll::-webkit-scrollbar {
        height: 6px;
    }

    .compare-cards-scroll::-webkit-scrollbar-track {
        background: #f3f4f6;
        border-radius: 3px;
    }

    .compare-cards-scroll::-webkit-scrollbar-thumb {
        background: #d1d5db;
        border-radius: 3px;
    }

.compare-cards-inner {
    display: flex;
    min-width: max-content;
}

/* Individual price card column */
.compare-card {
    min-width: 188px;
    max-width: 224px;
    flex: 1 0 188px;
    border-right: 1px solid #f0f0f0;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
    cursor: pointer;
    position: relative;
}

    .compare-card:last-child {
        border-right: none;
    }

.compare-card-selected {
    box-shadow: inset 0 3px 0 #f59e0b;
    background: #fffbeb;
}

    .compare-card-selected .compare-card-header {
        background: linear-gradient(135deg, #fef3c7, #fde68a);
    }

/* Card header with radio */
.compare-card-header {
    padding: 10px 12px;
    border-bottom: 1px solid #e5e7eb;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f9fafb;
    transition: background 0.2s ease;
}

.compare-radio-label {
    display: flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    margin: 0;
    font-size: 0.78rem;
}

.compare-radio {
    accent-color: #f59e0b;
    width: 14px;
    height: 14px;
    cursor: pointer;
}

.compare-card-title {
    font-weight: 700;
    color: #374151;
    font-size: 0.8rem;
}

/* Card data rows */
.compare-card-row {
    padding: 9px 10px;
    border-bottom: 1px solid #f0f0f0;
    text-align: center;
    font-size: 0.75rem;
    color: #4b5563;
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
}

    .compare-card-row.tall-row {
        height: 78px;
        align-items: center;
    }

    .compare-card-row:last-child {
        border-bottom: none;
    }

.compare-fare {
    font-weight: 700;
    font-size: 0.92rem;
    color: #1f2937;
}

/* Baggage split columns */
.baggage-split {
    display: flex;
    gap: 0;
    width: 100%;
    text-align: center;
}

.baggage-col {
    flex: 1;
    padding: 0 4px;
}

    .baggage-col:first-child {
        border-right: 1px solid #e5e7eb;
    }

.baggage-label {
    font-size: 0.64rem;
    color: #9ca3af;
    font-weight: 600;
    margin-bottom: 3px;
}

.baggage-value {
    font-weight: 700;
    color: #374151;
    font-size: 0.8rem;
}

/* Async cell (cancellation, date change, seat) */
.compare-async-cell .compare-cell-content {
    font-size: 0.72rem;
    color: #4b5563;
    line-height: 1.32;
    white-space: normal;
    word-break: break-word;
    text-align: center;
    width: 100%;
}

.compare-compact-line {
    line-height: 1.3;
}

.compare-tier-label {
    font-size: 0.65rem;
}

.compare-detail-tier {
    font-size: 0.71rem;
}

.compare-seat-sub {
    font-size: 0.68rem;
}

.compare-async-cell .compare-cell-content .see-more-link {
    color: #f59e0b;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    font-size: 0.75rem;
}

    .compare-async-cell .compare-cell-content .see-more-link:hover {
        text-decoration: underline;
    }

/* Refund badge smooth transition on price change */
.refund-status-badge {
    transition: color 0.25s ease, background-color 0.25s ease;
}

/* Skeleton loader shimmer */
.skeleton-loader {
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: skeletonShimmer 1.5s ease-in-out infinite;
    border-radius: 6px;
}

@keyframes skeletonShimmer {
    0% {
        background-position: 200% 0;
    }

    100% {
        background-position: -200% 0;
    }
}

/* Flight Path Visualization */
.mmt-duration-block {
    flex-direction: column;
    justify-content: center;
    position: relative;
    min-width: 140px;
}

.mmt-stop-line {
    height: 4px;
    background: #e2e8f0;
    border-radius: 4px;
    width: 100%;
    margin: 12px 0;
    position: relative;
}

.mmt-stop-dot {
    width: 10px;
    height: 10px;
    background: #f59e0b;
    border-radius: 50%;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    border: 2px solid #fff;
    box-shadow: 0 0 0 2px rgba(245,158,11,0.2);
}


/* Premium Badges */
.fare-badge {
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 0.65rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.badge-cheapest {
    background: #dcfce7;
    color: #166534;
}

.badge-fastest {
    background: #fef9c3;
    color: #854d0e;
}

.badge-best {
    background: #dbeafe;
    color: #1e40af;
}

.search-results-row {
    margin-top: 20px;
}

/* Sidebar scrollbar styling */
.filter-sidebar-content::-webkit-scrollbar {
    width: 5px;
}

.filter-sidebar-content::-webkit-scrollbar-track {
    background: #f8fafc;
}

.filter-sidebar-content::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 10px;
}

    .filter-sidebar-content::-webkit-scrollbar-thumb:hover {
        background: #94a3b8;
    }

/* Fix for airline info line height */
.mmt-airline-info {
    min-width: 120px;
}

.mmt-flight-num {
    opacity: 0.85;
}

/* Clickable card feedback */
.selectable-card {
    cursor: pointer;
}

    .selectable-card.selected {
        border-color: #2563eb;
        background-color: #f0f9ff;
        box-shadow: 0 0 0 1px #2563eb;
    }

/* Tooltip style for strip icons (manual implementation for clarity) */
.strip-icon-item {
    position: relative;
}

    .strip-icon-item::before,
    .strip-icon-item::after {
        content: none !important;
        display: none !important;
    }

.strip-toggle-btn:focus,
#collapseSidebarBtn:focus,
#expandSidebarBtn:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgba(37,99,235,0.2);
}

/* ==========================================
   ENHANCED PROFESSIONAL SIDEBAR
   ========================================== */

.filter-sidebar-col {
    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    background: transparent;
    border-right: none;
    padding-right: 10px;
    z-index: 100;
}

    .filter-sidebar-col.collapsed {
        padding-right: 0;
    }

.filter-sidebar-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.875rem 0.875rem;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    border-bottom: 1px solid #e2e8f0;
    position: sticky;
    top: 0;
    z-index: 3;
}

.filter-sidebar-content {
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    border: 1px solid #dbe4f0;
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
    padding-bottom: 10px;
    opacity: 1;
    transform: translateX(0);
    transition: opacity 0.18s ease, transform 0.22s ease;
}

    .filter-sidebar-content.is-collapsing-out {
        opacity: 0;
        transform: translateX(-8px);
        pointer-events: none;
    }

.filter-icon-bg {
    width: 28px;
    height: 28px;
    background: #2563eb;
    color: #fff;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
}

.filter-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: #1e293b;
    letter-spacing: 0.02em;
}

.clear-all-btn {
    font-size: 0.7rem;
    font-weight: 700;
    color: #ef4444;
    text-transform: uppercase;
}

    .clear-all-btn:hover {
        color: #dc2626;
        text-decoration: underline;
    }

.btn-collapse-sidebar {
    background: none;
    border: none;
    color: #64748b;
    padding: 2px;
    transition: color 0.2s;
}

    .btn-collapse-sidebar:hover {
        color: #1e293b;
    }

/* Accordion Specific Styling */
#sidebarAccordion .accordion-item {
    border: none;
    background: transparent;
    margin: 0 8px;
    border-bottom: 1px solid #edf2f7;
}

    #sidebarAccordion .accordion-item:last-child {
        border-bottom: none;
    }

#sidebarAccordion .accordion-button {
    padding: 0.92rem 0.78rem;
    font-size: 0.8rem;
    font-weight: 700;
    color: #334155;
    background: transparent;
    box-shadow: none;
    border-radius: 10px;
    transition: background-color 0.2s ease, color 0.2s ease;
}

    #sidebarAccordion .accordion-button:not(.collapsed) {
        color: #1d4ed8;
        background: #eef6ff;
    }

    #sidebarAccordion .accordion-button:hover {
        background: #f8fafc;
    }

    #sidebarAccordion .accordion-button:not(.collapsed):hover {
        background: #e7f0ff;
    }

    #sidebarAccordion .accordion-button::after {
        width: 0.8rem;
        height: 0.8rem;
        background-size: 0.8rem;
    }

#sidebarAccordion .accordion-body {
    padding-top: 0.45rem;
    padding-bottom: 1.15rem;
}

/* Trip Section Titles */
.trip-section-title {
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    padding: 4px 8px;
    border-radius: 4px;
    margin-bottom: 1rem;
    display: inline-block;
}

.onward-color {
    background: #eff6ff;
    color: #2563eb;
}

.return-color {
    background: #f0fdf4;
    color: #16a34a;
}

.filter-sub-label {
    font-size: 0.75rem;
    font-weight: 700;
    color: #111827;
}

.slider-val {
    font-size: 0.75rem;
    font-weight: 400;
    color: #111827;
    margin-bottom: 0.5rem;
}

.duration-filter-section .btn-link.filter-sub-label,
.duration-filter-section .btn-link.filter-sub-label:hover,
.duration-filter-section .btn-link.filter-sub-label:focus {
    color: #111827;
}

.filter-sidebar-content .text-muted,
.filter-sidebar-content .filter-time-range-note {
    color: #111827 !important;
    font-weight: 400;
}

.clear-link-pro {
    font-size: 0.65rem;
    color: #94a3b8;
    cursor: pointer;
    font-weight: 600;
    transition: color 0.2s;
}

    .clear-link-pro:hover {
        color: #ef4444;
        text-decoration: underline;
    }

/* Collapsed Strip Enhancement */
.collapsed-filter-strip {
    width: 68px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    border-right: 1px solid #e2e8f0;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0.875rem 0 1rem;
    gap: 0.875rem;
    contain: paint;
    opacity: 0;
    transform: translateX(-6px);
    transition: opacity 0.18s ease, transform 0.22s ease;
}

    .collapsed-filter-strip.is-visible {
        opacity: 1;
        transform: translateX(0);
    }

.strip-header {
    margin-bottom: 0.5rem;
}

.strip-toggle-btn {
    width: 40px;
    height: 40px;
    background: #eef2ff;
    color: #1d4ed8;
    border: 1px solid #dbeafe;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

    .strip-toggle-btn:hover {
        background: #2563eb;
        color: #fff;
        border-color: #2563eb;
        transform: translateY(-1px);
    }

.strip-icon-item {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    align-items: center;
    padding: 0;
    position: relative;
    cursor: pointer;
    border-radius: 12px;
    border: 1px solid #e2e8f0;
    background: #ffffff;
    color: #64748b;
    transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
    will-change: transform;
}

    .strip-icon-item i {
        font-size: 1.1rem;
        color: currentColor;
    }

    .strip-icon-item.has-filters i {
        color: inherit;
    }

    .strip-icon-item:hover {
        background: #f8fafc;
        border-color: #cbd5e1;
        color: #334155;
        transform: translateX(1px);
    }

.strip-label {
    display: none;
}

.strip-icon-item.has-filters {
    background: #eff6ff;
    border-color: #bfdbfe;
    color: #2563eb;
}

    .strip-icon-item.has-filters:hover {
        background: #dbeafe;
    }

.strip-icon-item:focus-visible {
    outline: 2px solid #93c5fd;
    outline-offset: 2px;
}

.strip-badge {
    position: absolute;
    top: -6px;
    right: -6px;
    background: #ef4444;
    color: #fff;
    font-size: 0.65rem;
    font-weight: 800;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border-radius: 10px;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #fff;
}

/* Split View Fix */
#splitViewRow {
    border: none !important;
    overflow: visible;
}

    #splitViewRow .results-column {
        padding-right: 0;
        padding-left: 0;
    }

    #splitViewRow > .split-summary-row {
        position: sticky !important;
        top: calc(var(--site-header-height, 68px) + var(--results-summary-height, 64px)) !important;
        z-index: 1030 !important;
    }

        #splitViewRow .roundtrip-sticky-summary,
        #splitViewRow > .split-summary-row > .roundtrip-sticky-summary {
            background: #ffffff !important;
            border-bottom: 1px solid #e2e8f0 !important;
            margin: 0 !important;
        }

    #splitViewRow .roundtrip-sticky-summary__inner {
        min-height: var(--roundtrip-summary-height);
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 16px;
        padding: 10px 14px;
        background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
        box-shadow: 0 8px 18px rgba(15, 23, 42, 0.06);
    }

    #splitViewRow .roundtrip-sticky-summary__actions {
        margin-left: auto;
        gap: 12px;
    }

    #splitViewRow .roundtrip-sticky-summary__price {
        min-width: 110px;
    }

    #splitViewRow.rt-domestic-layout .roundtrip-sticky-summary__inner {
        min-height: 62px;
        padding: 8px 12px;
        gap: 10px;
    }

    #splitViewRow.rt-domestic-layout .rt-domestic-summary-left {
        gap: 4px;
    }

    #splitViewRow.rt-domestic-layout #selection-status {
        font-size: 0.82rem;
        font-weight: 700;
        padding: 0.35rem 0.65rem;
        border-radius: 999px;
    }

    #splitViewRow.rt-domestic-layout .rt-selection-hints {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
    }

    #splitViewRow.rt-domestic-layout .rt-selection-step {
        display: inline-flex;
        align-items: center;
        padding: 2px 8px;
        border-radius: 999px;
        border: 1px solid #dbe3ef;
        background: #f8fbff;
        color: #475569;
        font-size: 0.72rem;
        font-weight: 600;
    }

    #splitViewRow.rt-domestic-layout .rt-domestic-summary-price {
        min-width: 88px;
    }

        #splitViewRow.rt-domestic-layout .rt-domestic-summary-price #split-total-price {
            font-size: 1.45rem;
            line-height: 1;
        }

    #splitViewRow.rt-domestic-layout .rt-domestic-book-btn {
        padding: 0.5rem 1rem;
        border-radius: 10px;
        font-size: 0.9rem;
        font-weight: 700;
        letter-spacing: 0.2px;
    }

    #splitViewRow.rt-domestic-layout .split-view-card .mmt-flight-header {
        min-width: 148px;
        gap: 10px;
    }

    #splitViewRow.rt-domestic-layout .split-view-card .mmt-airline-name {
        font-size: 0.82rem;
        line-height: 1.05;
    }

    #splitViewRow.rt-domestic-layout .split-view-card .mmt-flight-num {
        font-size: 0.68rem;
        margin-top: 1px;
    }

    #splitViewRow.rt-domestic-layout .split-view-card .mmt-time {
        font-size: 1.1rem;
        font-weight: 700;
        color: #1f2937;
        line-height: 1.1;
    }

    #splitViewRow .results-split-header,
    #splitViewRow > div > .col-md-6 > .results-split-header,
    #onwardColumn > .results-split-header.sticky-top,
    #returnColumn > .results-split-header.sticky-top {
        position: sticky !important;
        margin-top: 0 !important;
        margin-bottom: 0 !important;
        z-index: 1025 !important;
        top: calc(var(--site-header-height, 68px) + var(--results-summary-height, 64px) + var(--roundtrip-summary-height, 75px)) !important;
        background-color: #ffffff !important;
    }

    #splitViewRow .split-view-card {
        margin-bottom: 10px !important;
    }

        #splitViewRow .split-view-card:first-of-type {
            margin-top: 0;
        }

        #splitViewRow .split-view-card:hover {
            transform: none;
        }

    /* International roundtrip combo cards: unified, denser layout */
    #splitViewRow.rt-combo-layout {
        border: 1px solid #dbe3f1 !important;
        background: #f8fbff;
    }

        #splitViewRow.rt-combo-layout #onwardColumn {
            display: block;
            padding: 10px;
        }

        #splitViewRow.rt-combo-layout .results-split-header {
            border-radius: 10px;
            padding: 10px 12px !important;
            position: relative !important;
            top: auto !important;
            z-index: 1 !important;
            margin-bottom: 10px;
            user-select: none;
            -webkit-user-select: none;
        }

        /* Combo mode uses same sticky positioning as regular roundtrip (parent .col-12 is sticky) */

        #splitViewRow.rt-combo-layout .roundtrip-sticky-summary__inner {
            min-height: 72px;
            padding: 10px 18px;
            user-select: none;
            -webkit-user-select: none;
        }

        #splitViewRow.rt-combo-layout .rt-combo-unified-card {
            margin: 0 0 6px 0 !important;
            border: 1px solid #d4deee;
            border-radius: 10px;
            box-shadow: 0 4px 10px rgba(15, 23, 42, 0.05);
            background: #fff;
        }

        #splitViewRow.rt-combo-layout .rt-card-shell {
            padding: 5px 8px !important;
            padding-right: 46px !important;
        }

        #splitViewRow.rt-combo-layout .rt-combo-leg-block {
            display: flex;
            flex-direction: column;
            gap: 4px;
        }

        #splitViewRow.rt-combo-layout .rt-combo-leg-divider {
            height: 1px;
            margin: 4px 0;
            background: linear-gradient(90deg, #d8e4f4 0%, #edf3fb 50%, #d8e4f4 100%);
        }

        #splitViewRow.rt-combo-layout .rt-combo-leg-summary .mmt-timeline-container {
            margin: 0 40px !important;
        }

        #splitViewRow.rt-combo-layout .rt-combo-leg-summary .mmt-duration-block {
            padding: 0 16px !important;
        }

        #splitViewRow.rt-combo-layout .rt-combo-leg-summary .mmt-flight-header {
            min-width: 148px;
        }

        #splitViewRow.rt-combo-layout .rt-combo-leg-summary .mmt-time-block {
            min-width: 100px !important;
        }

        #splitViewRow.rt-combo-layout .mmt-footer {
            padding: 0.65rem 0.9rem;
        }

        #splitViewRow.rt-combo-layout .rt-combo-unified-card,
        #splitViewRow.rt-combo-layout .rt-combo-unified-card * {
            user-select: none !important;
            -webkit-user-select: none !important;
        }

        #splitViewRow.rt-combo-layout .tripcart-picker-icon {
            top: 12px;
            right: 12px;
            width: 32px;
            height: 32px;
            z-index: 12;
        }

            #splitViewRow.rt-combo-layout .tripcart-picker-icon .fs-4 {
                font-size: 1.5rem !important;
            }

.results-column {
    scrollbar-width: thin;
    scrollbar-color: #cbd5e1 #f8fafc;
}

    .results-column::-webkit-scrollbar {
        width: 6px;
    }

    .results-column::-webkit-scrollbar-track {
        background: #f8fafc;
    }

    .results-column::-webkit-scrollbar-thumb {
        background: #cbd5e1;
        border-radius: 10px;
    }

}

/* ===== COMBO FLIGHT DETAILS PANEL — Reference image layout ===== */

/* Leg header */
.combo-leg-details {
    border-top: 1px solid #e5eaf3;
    padding-top: 12px;
}

    .combo-leg-details:first-child {
        border-top: none;
        padding-top: 0;
    }

.combo-leg-details-header {
    display: flex;
    align-items: center;
    background: #f0f5ff;
    border-left: 4px solid #3b82f6;
    padding: 7px 14px;
    margin-bottom: 10px;
    border-radius: 0 6px 6px 0;
    font-size: 0.92rem;
}

/* Segment row: 3-column flex */
.combo-seg-row {
    display: flex;
    gap: 12px;
    padding: 10px 14px 10px 14px;
    border-bottom: 1px solid #f0f3f7;
    align-items: flex-start;
}

    .combo-seg-row:last-of-type {
        border-bottom: none;
    }

/* Airline column */
.combo-seg-airline-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 90px;
    max-width: 110px;
    text-align: center;
    gap: 3px;
    flex-shrink: 0;
}

.combo-airline-logo {
    width: 34px;
    height: 34px;
    object-fit: contain;
    margin-bottom: 2px;
}

.combo-flight-code {
    font-size: 0.75rem;
    font-weight: 600;
    color: #1e293b;
    line-height: 1.3;
}

.combo-operator-name {
    font-size: 0.68rem;
    color: #64748b;
}

.combo-cabin-badge {
    font-size: 0.62rem;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1d4ed8;
    border-radius: 4px;
    padding: 1px 5px;
    margin-top: 2px;
}

/* Route column */
.combo-seg-route-col {
    display: flex;
    align-items: flex-start;
    flex: 1;
    gap: 8px;
    min-width: 0;
}

.combo-seg-point {
    display: flex;
    flex-direction: column;
    min-width: 100px;
    gap: 1px;
}

.combo-seg-point-arr {
    text-align: right;
    align-items: flex-end;
}

.combo-seg-time {
    font-size: 1.1rem;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.2;
}

.combo-seg-date {
    font-size: 0.68rem;
    color: #e11d48;
    font-weight: 600;
}

.combo-seg-city {
    font-size: 0.78rem;
    font-weight: 600;
    color: #1e293b;
}

.combo-seg-airport-name {
    font-size: 0.68rem;
    color: #64748b;
    line-height: 1.3;
}

.combo-seg-terminal {
    font-size: 0.64rem;
    color: #94a3b8;
}

/* Duration pill between dep/arr */
.combo-seg-duration {
    display: flex;
    align-items: center;
    flex: 1;
    gap: 6px;
    padding-top: 14px;
}

.combo-seg-dur-line {
    flex: 1;
    height: 1px;
    background: #94a3b8;
}

.combo-seg-dur-pill {
    font-size: 0.68rem;
    color: #475569;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 2px 8px;
    white-space: nowrap;
}

/* Baggage table column */
.combo-seg-baggage-col {
    min-width: 160px;
    max-width: 200px;
    flex-shrink: 0;
}

.combo-baggage-title {
    font-size: 0.7rem;
    font-weight: 700;
    color: #334155;
    margin-bottom: 4px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.combo-baggage-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.68rem;
}

    .combo-baggage-table th {
        background: #f1f5f9;
        color: #475569;
        padding: 3px 6px;
        font-weight: 600;
        border: 1px solid #e2e8f0;
        text-align: center;
    }

    .combo-baggage-table td {
        padding: 3px 6px;
        border: 1px solid #e2e8f0;
        text-align: center;
        color: #1e293b;
    }

/* Layover pill between segments */
.combo-layover-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    padding: 6px 14px;
    background: #fefce8;
    border-top: 1px dashed #fcd34d;
    border-bottom: 1px dashed #fcd34d;
    font-size: 0.72rem;
}

.combo-layover-change {
    color: #92400e;
    font-weight: 600;
}

.combo-layover-time {
    color: #78350f;
}

/* ===== RESPONSIVE BREAKPOINTS FOR CARD DENSITY ===== */

/* Mobile: <768px — extra compact spacing */
@media (max-width: 767.98px) {
    .result-card {
        margin-bottom: 6px;
    }

    #splitViewRow .roundtrip-sticky-summary__inner {
        padding: 8px 12px;
        gap: 10px;
    }

    #splitViewRow .roundtrip-sticky-summary__price {
        min-width: 90px;
    }

    #splitViewRow.rt-domestic-layout .roundtrip-sticky-summary__inner {
        flex-direction: column;
        align-items: stretch;
    }

    #splitViewRow.rt-domestic-layout .rt-domestic-summary-left {
        width: 100%;
    }

    #splitViewRow.rt-domestic-layout .roundtrip-sticky-summary__actions {
        width: 100%;
        justify-content: space-between;
        margin-left: 0;
        flex-wrap: wrap;
        gap: 8px;
    }

    #splitViewRow.rt-domestic-layout .rt-domestic-summary-price {
        min-width: 0;
        margin-right: auto !important;
    }

    #splitViewRow.rt-domestic-layout .rt-domestic-book-btn {
        width: 100%;
        min-width: 0;
    }

    #splitViewRow.rt-domestic-layout .results-split-header > .d-flex {
        flex-wrap: wrap;
        row-gap: 8px;
    }

        #splitViewRow.rt-domestic-layout .results-split-header > .d-flex > .d-flex.align-items-center {
            min-width: 0;
            flex: 1 1 100%;
        }

    #splitViewRow.rt-domestic-layout .split-col-sort {
        flex: 1 1 100%;
        max-width: none;
    }

    #splitViewRow.rt-domestic-layout .trip-summary-row {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 8px;
    }

    #splitViewRow.rt-domestic-layout .mmt-flight-header {
        min-width: 0;
        width: 100%;
    }

        #splitViewRow.rt-domestic-layout .mmt-flight-header .d-flex.align-items-center {
            min-width: 0;
        }

    #splitViewRow.rt-domestic-layout .mmt-airline-info {
        min-width: 0;
    }

    #splitViewRow.rt-domestic-layout .mmt-airline-name,
    #splitViewRow.rt-domestic-layout .mmt-flight-num,
    #splitViewRow.rt-domestic-layout .mmt-city {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 100%;
    }

    #splitViewRow.rt-domestic-layout .mmt-footer {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 8px;
        padding: 10px 12px !important;
    }

        #splitViewRow.rt-domestic-layout .mmt-footer .left-group,
        #splitViewRow.rt-domestic-layout .mmt-footer .right-group {
            width: 100%;
        }

        #splitViewRow.rt-domestic-layout .mmt-footer .right-group {
            justify-content: space-between;
            flex-wrap: wrap;
            gap: 8px;
        }

    #splitViewRow.rt-domestic-layout .price-display.split-price-display {
        width: 100%;
        justify-content: space-between;
        gap: 8px;
    }
}

/* Tablet: 768-1199px — moderate spacing */
@media (min-width: 768px) and (max-width: 1199.98px) {
    .result-card {
        margin-bottom: 8px;
    }

    #splitViewRow.rt-domestic-layout #onwardColumn,
    #splitViewRow.rt-domestic-layout #returnColumn {
        flex: 0 0 50% !important;
        max-width: 50% !important;
        width: 50% !important;
        min-width: 0;
    }

    #splitViewRow.rt-domestic-layout .results-column {
        min-width: 0;
    }

    #splitViewRow.rt-domestic-layout .roundtrip-sticky-summary__inner {
        align-items: center;
        gap: 8px 12px;
    }

    #splitViewRow.rt-domestic-layout .roundtrip-sticky-summary__actions {
        flex: 1 1 100%;
        width: 100%;
        justify-content: space-between;
        flex-wrap: nowrap;
        margin-left: 0;
    }

    #splitViewRow.rt-domestic-layout .results-split-header > .d-flex {
        flex-wrap: wrap;
        row-gap: 8px;
    }

        #splitViewRow.rt-domestic-layout .results-split-header > .d-flex > .d-flex.align-items-center {
            min-width: 0;
            flex: 1 1 auto;
        }

    #splitViewRow.rt-domestic-layout .split-col-sort {
        flex: 0 0 132px;
        max-width: 132px;
    }

    #splitViewRow.rt-domestic-layout .trip-summary-row {
        flex-wrap: nowrap;
        justify-content: space-between;
        align-items: center !important;
        gap: 8px;
    }

    #splitViewRow.rt-domestic-layout .mmt-flight-header {
        min-width: 104px;
        flex: 0 0 clamp(104px, 24%, 132px);
        gap: 8px;
    }

        #splitViewRow.rt-domestic-layout .mmt-flight-header .mmt-airline-info {
            min-width: 0;
        }

        #splitViewRow.rt-domestic-layout .mmt-flight-header .mmt-airline-name {
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            font-size: 0.78rem;
        }

        #splitViewRow.rt-domestic-layout .mmt-flight-header .mmt-flight-num {
            font-size: 0.64rem;
        }

    #splitViewRow.rt-domestic-layout .mmt-timeline-container {
        flex: 1 1 0 !important;
        width: 100% !important;
        margin: 0 0 0 6px !important;
        padding: 0 2px !important;
        min-width: 0;
    }

        #splitViewRow.rt-domestic-layout .mmt-timeline-container.d-none.d-md-flex {
            display: flex !important;
        }

    #splitViewRow.rt-domestic-layout .mmt-time-block {
        min-width: 52px !important;
    }

    #splitViewRow.rt-domestic-layout .mmt-time {
        font-size: 1.05rem;
    }

    #splitViewRow.rt-domestic-layout .mmt-city,
    #splitViewRow.rt-domestic-layout .airport-code {
        font-size: 0.7rem !important;
    }

    #splitViewRow.rt-domestic-layout .mmt-city {
        max-width: 72px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    #splitViewRow.rt-domestic-layout .mmt-duration-block {
        min-width: 0;
        flex: 1 1 auto;
        padding: 0 4px !important;
    }

    #splitViewRow.rt-domestic-layout .mmt-duration,
    #splitViewRow.rt-domestic-layout .mmt-stop-text {
        font-size: 0.65rem !important;
    }

    #splitViewRow.rt-domestic-layout .mmt-footer .left-group,
    #splitViewRow.rt-domestic-layout .mmt-footer .right-group {
        gap: 6px;
    }

    #splitViewRow.rt-domestic-layout .roundtrip-selection-footer .price-amount {
        font-size: 1.4rem !important;
    }

    #splitViewRow.rt-domestic-layout .fare-badge,
    #splitViewRow.rt-domestic-layout .baggage-info,
    #splitViewRow.rt-domestic-layout .flight-details-link {
        font-size: 0.65rem;
    }
}

/* Medium desktop compaction: 1200-1365px (prevents split-column overflow) */
@media (min-width: 1200px) and (max-width: 1365.98px) {
    #splitViewRow.rt-domestic-layout .results-split-header > .d-flex {
        flex-wrap: wrap;
        row-gap: 8px;
    }

        #splitViewRow.rt-domestic-layout .results-split-header > .d-flex > .d-flex.align-items-center {
            min-width: 0;
            flex: 1 1 auto;
        }

    #splitViewRow.rt-domestic-layout .split-col-sort {
        flex: 0 0 124px;
        max-width: 124px;
    }

    #splitViewRow.rt-domestic-layout .trip-summary-row {
        flex-wrap: wrap;
        align-items: flex-start !important;
        gap: 8px;
    }

    #splitViewRow.rt-domestic-layout .mmt-flight-header {
        min-width: 120px;
        flex: 0 0 auto;
        gap: 8px;
    }

        #splitViewRow.rt-domestic-layout .mmt-flight-header .mmt-airline-info {
            min-width: 0;
        }

        #splitViewRow.rt-domestic-layout .mmt-flight-header .mmt-airline-name {
            font-size: 0.8rem;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        #splitViewRow.rt-domestic-layout .mmt-flight-header .mmt-flight-num {
            font-size: 0.64rem;
        }

    #splitViewRow.rt-domestic-layout .mmt-timeline-container {
        flex: 1 1 auto !important;
        width: auto !important;
        min-width: 0;
        margin: 0 4px !important;
        padding: 0 4px !important;
    }

        #splitViewRow.rt-domestic-layout .mmt-timeline-container.d-none.d-md-flex {
            display: flex !important;
        }

    #splitViewRow.rt-domestic-layout .mmt-time-block {
        min-width: 56px !important;
    }

    #splitViewRow.rt-domestic-layout .mmt-time {
        font-size: 1.02rem;
    }

    #splitViewRow.rt-domestic-layout .mmt-city,
    #splitViewRow.rt-domestic-layout .airport-code {
        font-size: 0.68rem !important;
    }

    #splitViewRow.rt-domestic-layout .mmt-city {
        max-width: 62px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    #splitViewRow.rt-domestic-layout .mmt-duration-block {
        min-width: 0;
        padding: 0 5px !important;
    }

    #splitViewRow.rt-domestic-layout .mmt-duration,
    #splitViewRow.rt-domestic-layout .mmt-stop-text {
        font-size: 0.64rem !important;
    }

    #splitViewRow.rt-domestic-layout .roundtrip-selection-footer .left-group {
        flex-wrap: wrap;
        gap: 6px;
    }

    #splitViewRow.rt-domestic-layout .roundtrip-selection-footer .right-group {
        flex-wrap: wrap;
        justify-content: flex-end;
        gap: 6px;
    }

    #splitViewRow.rt-domestic-layout .mmt-footer .price-display.split-price-display {
        gap: 6px;
        align-items: center;
    }

    #splitViewRow.rt-domestic-layout .mmt-footer .price-amount {
        font-size: 1.4rem;
    }
}

/* Desktop: ≥1200px — standard spacing (default) */
@media (min-width: 1200px) {
    .result-card {
        margin-bottom: 8px;
    }
}

/* Multi-city trip header — sticky while scrolling */
.mc-trip-header {
    position: sticky;
    top: var(--multicity-stack-offset);
    z-index: 1010;
    background: #fff;
    margin-top: 0;
    margin-bottom: 0.5rem;
    padding-top: 0.5rem;
    box-shadow: 0 2px 6px rgba(0,0,0,0);
    transition: box-shadow 0.2s ease;
    scroll-margin-top: calc(var(--multicity-stack-offset) + 20px);
}

.mc-trip-anchor {
    scroll-margin-top: calc(var(--multicity-stack-offset) + 20px);
}

.mc-trip-header.stuck {
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

/* Multi-city trip header — completed/selected state */
.mc-trip-completed {
    background: linear-gradient(135deg, #ecfdf5 0%, #f0fdf4 100%) !important;
    border-bottom-color: #86efac !important;
    border-left: 4px solid #22c55e;
    padding-left: calc(0.75rem - 4px);
    transition: all 0.3s ease;
}

    .mc-trip-completed h5 {
        color: #16a34a !important;
        font-weight: 800 !important;
    }

    .mc-trip-completed .mc-check-icon {
        color: #16a34a;
        animation: mc-check-pop 0.4s ease;
    }

@keyframes mc-check-pop {
    0% {
        transform: scale(0);
        opacity: 0;
    }

    60% {
        transform: scale(1.3);
    }

    100% {
        transform: scale(1);
        opacity: 1;
    }
}

/* Multi-city heading highlight when auto-scrolling to next trip */
.mc-heading-highlight {
    background: linear-gradient(90deg, #dbeafe 0%, #eff6ff 50%, transparent 100%);
    border-radius: 8px;
    padding: 8px 12px !important;
    animation: mc-pulse-highlight 0.6s ease-in-out 2;
    border-left: 4px solid #2563eb;
    transition: background 0.3s ease;
}

    .mc-heading-highlight h5 {
        color: #1d4ed8 !important;
        font-size: 1.15rem !important;
    }

@keyframes mc-pulse-highlight {
    0% {
        box-shadow: 0 0 0 0 rgba(37, 99, 235, 0.4);
    }

    50% {
        box-shadow: 0 0 0 8px rgba(37, 99, 235, 0);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(37, 99, 235, 0);
    }
}

/* Collapsed sidebar: highlight icons when filters are active */
.strip-icon-item.has-filters {
    background: #dbeafe !important;
    border-color: #93c5fd !important;
    color: #1d4ed8 !important;
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}

    .strip-icon-item.has-filters i {
        color: #1d4ed8 !important;
    }

    .strip-icon-item.has-filters .strip-badge {
        display: block !important;
    }

/* Multicity Navigation Bar */
.multicity-nav-bar {
    transition: all 0.3s ease;
    top: var(--results-stack-offset) !important;
    z-index: 1025 !important;
    scroll-margin-top: calc(var(--results-stack-offset) + 20px);
}

    .multicity-nav-bar .container {
        row-gap: 0.5rem;
    }

.results-split-header {
    top: 220px !important;
    z-index: 1015 !important;
}

.multicity-nav-bar #mcBookBtn {
    min-width: 220px;
}

#mc-trip-nav-links {
    min-width: 0;
}

    #mc-trip-nav-links .btn {
        white-space: nowrap;
    }

.mc-bundled-nav-overview {
    min-width: 0;
    flex: 1 1 440px;
}

.mc-nav-actions {
    min-width: 0;
    margin-left: auto;
    flex: 0 1 auto;
    justify-content: flex-end;
    flex-wrap: nowrap;
}

#mc-selection-status {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    white-space: nowrap;
}

#mc-running-total {
    white-space: nowrap;
}

.multicity-nav-bar #multiCityForm {
    margin: 0;
    flex-shrink: 0;
}

@media (max-width: 1199.98px) {
    .mc-nav-actions {
        flex-wrap: wrap;
        justify-content: flex-end;
    }
}

.mc-info-popover {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.mc-info-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: 1px solid #bfdbfe;
    border-radius: 999px;
    background: #eff6ff;
    color: #2563eb;
    transition: 0.2s ease;
}

    .mc-info-trigger:hover,
    .mc-info-popover:focus-within .mc-info-trigger {
        background: #dbeafe;
        border-color: #93c5fd;
    }

.mc-info-popover-text {
    position: absolute;
    left: 50%;
    top: calc(100% + 10px);
    transform: translateX(-50%);
    width: min(320px, 80vw);
    padding: 0.75rem 0.9rem;
    border-radius: 12px;
    border: 1px solid rgba(37, 99, 235, 0.15);
    background: #fff;
    box-shadow: 0 14px 28px rgba(15, 23, 42, 0.14);
    color: #334155;
    font-size: 0.78rem;
    line-height: 1.45;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.2s ease, visibility 0.2s ease;
}

    .mc-info-popover-text::before {
        content: "";
        position: absolute;
        left: 50%;
        top: -6px;
        width: 12px;
        height: 12px;
        background: #fff;
        border-left: 1px solid rgba(37, 99, 235, 0.15);
        border-top: 1px solid rgba(37, 99, 235, 0.15);
        transform: translateX(-50%) rotate(45deg);
    }

.mc-info-popover:hover .mc-info-popover-text,
.mc-info-popover:focus-within .mc-info-popover-text {
    opacity: 1;
    visibility: visible;
}

.multicity-nav-bar .btn {
    font-weight: 600;
    font-size: 0.85rem;
    transition: 0.2s;
}

    .multicity-nav-bar .btn:hover {
        transform: translateY(-1px);
    }

.multicity-nav-link.active {
    background-color: #0d6efd;
    color: white;
    border-color: #0d6efd;
}

/* ==========================================
   HERO SEARCH SECTION (MMT / Cleartrip Style)
   ========================================== */

.xtrips-hero-section {
    position: relative;
    z-index: 10;
    background: linear-gradient(160deg, #0f2557 0%, #1a3a8f 35%, #2563eb 70%, #60a5fa 100%);
    padding: 0;
    margin-bottom: 0;
    overflow: visible;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 2.5rem;
}

    /* Subtle wave overlay matching login page */
    .xtrips-hero-section::before {
        content: '';
        position: absolute;
        inset: 0;
        background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='800' height='400' viewBox='0 0 800 400'%3E%3Cpath d='M0 200 Q200 100 400 200 T800 200' stroke='rgba(255,255,255,0.04)' fill='none' stroke-width='2'/%3E%3Cpath d='M0 250 Q200 150 400 250 T800 250' stroke='rgba(255,255,255,0.04)' fill='none' stroke-width='2'/%3E%3Cpath d='M0 300 Q200 200 400 300 T800 300' stroke='rgba(255,255,255,0.04)' fill='none' stroke-width='2'/%3E%3C/svg%3E") center/cover no-repeat;
        pointer-events: none;
    }

.hero-overlay {
    display: none; /* using CSS gradient instead */
}

.hero-content {
    position: relative;
    z-index: 2;
}

.hero-headline {
    margin-bottom: 28px;
}

.hero-title {
    font-size: 2.4rem;
    font-weight: 800;
    color: #ffffff;
    letter-spacing: -0.5px;
    margin-bottom: 8px;
    text-shadow: 0 2px 8px rgba(0,0,0,0.3);
}

.hero-subtitle {
    font-size: 1rem;
    color: rgba(255,255,255,0.7);
    font-weight: 400;
    margin: 0;
}

/* ==========================================
   SEARCH HERO CARD
   ========================================== */

.search-hero-card {
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 24px 60px rgba(0,0,0,0.25), 0 8px 20px rgba(0,0,0,0.15);
    overflow: visible;
    position: relative;
    z-index: 2;
}

/* Search Card Header */
.search-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 24px;
    background: linear-gradient(135deg, #1e3a8a 0%, #2563eb 100%);
    border-radius: 20px 20px 0 0;
    color: #fff;
}

.search-card-brand {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: -0.2px;
}

    .search-card-brand i {
        font-size: 1.15rem;
        opacity: 0.9;
    }

.search-card-tagline {
    font-size: 0.78rem;
    color: rgba(255,255,255,0.7);
    font-weight: 400;
}

/* ==========================================
   TRIP TYPE TABS (MMT style)
   ========================================== */

.trip-type-tabs {
    display: flex;
    align-items: center;
    padding: 0 24px;
    border-bottom: 1px solid #f1f5f9;
    background: #f8fafc;
    border-radius: 0;
    gap: 0;
}

.trip-tab-input {
    display: none;
}

.trip-tab-label {
    display: inline-flex;
    align-items: center;
    padding: 14px 22px;
    font-size: 0.85rem;
    font-weight: 600;
    color: #64748b;
    cursor: pointer;
    border-bottom: 3px solid transparent;
    transition: all 0.2s ease;
    user-select: none;
    white-space: nowrap;
    margin-bottom: -1px;
}

    .trip-tab-label:hover {
        color: #2563eb;
        background: rgba(37,99,235,0.04);
    }

.trip-tab-input:checked + .trip-tab-label {
    color: #2563eb;
    border-bottom-color: #2563eb;
    background: rgba(37,99,235,0.06);
}

/* ==========================================
   SEARCH FIELDS ROW
   ========================================== */

.search-hero-form {
    padding: 0;
}

.search-fields-row {
    display: flex;
    align-items: stretch;
    padding: 0 16px;
    gap: 0;
    border-bottom: 1px solid #f1f5f9;
    flex-wrap: nowrap;
    overflow: visible;
}

.search-field-hero {
    position: relative;
    flex: 1;
    min-width: 0;
    padding: 16px 16px 14px;
    border-right: 1px solid #e2e8f0;
    cursor: pointer;
    transition: background 0.15s ease;
}

    .search-field-hero:last-child {
        border-right: none;
    }

    .search-field-hero:hover {
        background: #f8fafc;
        border-radius: 8px;
    }

    .search-field-hero.from-field {
        flex: 1.4;
    }

    .search-field-hero.to-field {
        flex: 1.4;
    }

    .search-field-hero.date-field {
        flex: 1.1;
    }

    .search-field-hero.pax-field {
        flex: 1.3;
    }

.sfield-label {
    font-size: 0.7rem;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    margin-bottom: 4px;
    display: flex;
    align-items: center;
}

.sfield-input {
    display: block;
    width: 100%;
    border: none;
    background: transparent;
    font-size: 1.05rem;
    font-weight: 700;
    color: #0f172a;
    padding: 0;
    outline: none;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

    .sfield-input::placeholder {
        color: #cbd5e1;
        font-weight: 500;
        font-size: 0.95rem;
        text-transform: none;
        letter-spacing: 0;
    }

    .sfield-input:focus {
        outline: none;
        box-shadow: none;
    }

.sfield-subtext {
    font-size: 0.72rem;
    color: #94a3b8;
    margin-top: 3px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Flatpickr alt-input override inside hero */
.search-field-hero .flatpickr-input.form-control {
    display: none !important;
}

.search-field-hero .flatpickr-input[readonly] {
    display: block !important;
    border: none !important;
    background: transparent !important;
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    color: #0f172a !important;
    padding: 0 !important;
    outline: none !important;
    box-shadow: none !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    width: 100% !important;
}

/* ==========================================
   SWAP CITIES BUTTON (base styles - no negative margins)
   ========================================== */

.swap-cities-btn {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #fff;
    border: 2px solid #e2e8f0;
    color: #2563eb;
    font-size: 0.85rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
    align-self: center;
    position: relative;
    z-index: 10;
    margin: 0;
    box-shadow: 0 2px 8px rgba(37,99,235,0.15);
}

    .swap-cities-btn:hover {
        background: #2563eb;
        color: #fff;
        border-color: #2563eb;
        transform: rotate(180deg) scale(1.1);
        box-shadow: 0 4px 12px rgba(37,99,235,0.3);
    }

/* ==========================================
   PAX TRIGGER BUTTON
   ========================================== */

.pax-trigger {
    background: transparent;
    border: none;
    padding: 0;
    cursor: pointer;
    width: 100%;
    text-align: left;
}

    .pax-trigger:focus {
        outline: none;
    }

.pax-display {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 2px;
    flex-wrap: wrap;
}

    .pax-display span:first-child {
        font-size: 1rem;
        font-weight: 700;
        color: #0f172a;
    }

.pax-type-summary {
    font-size: 0.73rem;
    color: #64748b;
    font-weight: 600;
    line-height: 1.2;
}

.pax-class-badge {
    background: #eff6ff;
    color: #2563eb;
    font-size: 0.65rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 20px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    border: 1px solid #bfdbfe;
}

/* ==========================================
   PAX DROPDOWN MENU
   ========================================== */

.pax-dropdown-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    width: 320px !important;
    border-radius: 16px !important;
    border: 1px solid #e2e8f0 !important;
    box-shadow: 0 20px 40px rgba(0,0,0,0.12) !important;
    overflow: hidden;
    z-index: 1060 !important;
    background: #fff;
    visibility: visible;
    opacity: 1;
    padding: 0;
}

    .pax-dropdown-menu.show {
        display: block;
    }

/* Desktop: show pax menu as a fixed centered overlay (modal-style) */
@media (min-width: 768px) {
    .pax-dropdown-menu.show {
        position: fixed !important;
        top: 50% !important;
        left: 50% !important;
        right: auto !important;
        bottom: auto !important;
        transform: translate(-50%, -50%) !important;
        margin: 0 !important;
        z-index: 1091 !important;
        box-shadow: 0 25px 60px rgba(0,0,0,0.25), 0 8px 20px rgba(0,0,0,0.1) !important;
        width: 360px !important;
    }
}

/* Backdrop shown behind the pax panel on desktop */
.pax-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    background: transparent;
    z-index: 1060;
    pointer-events: none; /* CRITICAL: must not intercept clicks meant for the menu */
}

    .pax-backdrop.active {
        display: block;
        pointer-events: none; /* Keep none even when active - menu buttons must receive clicks */
    }

.pax-menu-header {
    background: #f8fafc;
    padding: 14px 20px;
    font-size: 0.8rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: #475569;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 1px solid #e2e8f0;
}

.pax-close-btn {
    width: 28px;
    height: 28px;
    border: 1px solid #dbe3ee;
    border-radius: 999px;
    background: #ffffff;
    color: #64748b;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.15s ease;
    flex: 0 0 auto;
}

    .pax-close-btn:hover {
        background: #eff6ff;
        border-color: #bfdbfe;
        color: #2563eb;
    }

    .pax-close-btn:active {
        transform: scale(0.92);
        background: #dbeafe;
        border-color: #93c5fd;
    }

.pax-menu-body {
    padding: 8px 0;
}

.pax-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 20px;
}

    .pax-row:hover {
        background: #f8fafc;
    }

.pax-type {
    font-size: 0.9rem;
    font-weight: 600;
    color: #1e293b;
}

.pax-age {
    font-size: 0.75rem;
    color: #94a3b8;
    margin-top: 2px;
}

.pax-counter {
    display: flex;
    align-items: center;
    gap: 12px;
}

.pax-btn {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 1.5px solid #e2e8f0;
    background: #fff;
    color: #2563eb;
    font-size: 1.1rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.15s ease;
    line-height: 1;
}

    .pax-btn:hover {
        background: #2563eb;
        color: #fff;
        border-color: #2563eb;
    }

    .pax-btn:active {
        transform: scale(0.9);
        background: #1d4ed8;
        color: #fff;
        border-color: #1d4ed8;
        box-shadow: inset 0 2px 6px rgba(15, 23, 42, 0.18);
    }

.pax-val {
    font-size: 1rem;
    font-weight: 700;
    color: #0f172a;
    min-width: 20px;
    text-align: center;
}

.pax-divider {
    height: 1px;
    background: #f1f5f9;
    margin: 8px 0;
}

.pax-class-section {
    padding: 12px 20px 8px;
}

.pax-class-label {
    font-size: 0.75rem;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 10px;
}

.pax-class-options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.pax-class-opt {
    padding: 6px 14px;
    border-radius: 20px;
    border: 1.5px solid #e2e8f0;
    font-size: 0.78rem;
    font-weight: 600;
    color: #475569;
    cursor: pointer;
    transition: all 0.15s ease;
    user-select: none;
}

    .pax-class-opt:hover {
        border-color: #2563eb;
        color: #2563eb;
        background: #eff6ff;
    }

    .pax-class-opt:active {
        transform: translateY(1px) scale(0.98);
    }

    .pax-class-opt.active {
        background: #2563eb;
        color: #fff;
        border-color: #2563eb;
    }

.pax-menu-footer {
    padding: 12px 20px;
    border-top: 1px solid #f1f5f9;
    text-align: right;
}

.btn-pax-done {
    background: #2563eb;
    color: #fff;
    border: none;
    border-radius: 20px;
    padding: 8px 28px;
    font-size: 0.85rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s ease;
}

    .btn-pax-done:hover {
        background: #1d4ed8;
        transform: translateY(-1px);
        box-shadow: 0 4px 12px rgba(37,99,235,0.3);
    }

    .btn-pax-done:active {
        transform: translateY(1px) scale(0.98);
        box-shadow: inset 0 3px 8px rgba(30, 64, 175, 0.22);
    }

/* ==========================================
   EXTRA OPTIONS ROW (non-stop + airline + search btn)
   ========================================== */

.search-extra-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 24px 18px;
    flex-wrap: wrap;
    gap: 12px;
}

/* Non-stop toggle */
.direct-flight-toggle {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    user-select: none;
}

.toggle-track {
    display: inline-block;
    width: 40px;
    height: 22px;
    background: #e2e8f0;
    border-radius: 11px;
    position: relative;
    transition: background 0.2s ease;
    flex-shrink: 0;
}

    .toggle-track::after {
        content: '';
        position: absolute;
        width: 16px;
        height: 16px;
        background: #fff;
        border-radius: 50%;
        top: 3px;
        left: 3px;
        transition: transform 0.2s ease;
        box-shadow: 0 1px 3px rgba(0,0,0,0.2);
    }

.direct-flight-toggle input:checked ~ .toggle-track,
.direct-flight-toggle input:checked + .toggle-track {
    background: #2563eb;
}

    .direct-flight-toggle input:checked ~ .toggle-track::after,
    .direct-flight-toggle input:checked + .toggle-track::after {
        transform: translateX(18px);
    }

.toggle-label {
    font-size: 0.82rem;
    font-weight: 600;
    color: #475569;
}

/* Preferred airline select */
.preferred-airline-wrap {
    display: flex;
    align-items: center;
}

.preferred-airline-select {
    border: 1px solid #e2e8f0;
    border-radius: 20px;
    padding: 5px 14px;
    font-size: 0.8rem;
    font-weight: 600;
    color: #475569;
    background: #f8fafc;
    cursor: pointer;
    outline: none;
    transition: border-color 0.15s;
}

    .preferred-airline-select:focus {
        border-color: #2563eb;
        outline: none;
    }

/* ==========================================
   HERO SEARCH BUTTON
   ========================================== */

.hero-search-btn {
    background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
    color: #fff;
    border: none;
    border-radius: 12px;
    padding: 14px 36px;
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: 0.3px;
    cursor: pointer;
    transition: all 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
    box-shadow: 0 4px 16px rgba(37,99,235,0.35);
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
}

    .hero-search-btn:hover {
        transform: translateY(-2px) scale(1.02);
        box-shadow: 0 8px 24px rgba(37,99,235,0.45);
        background: linear-gradient(135deg, #1d4ed8 0%, #1e40af 100%);
    }

    .hero-search-btn:active {
        transform: translateY(0) scale(0.99);
    }

/* ==========================================
   AIRLINE FILTER - PROFESSIONAL LAYOUT
   ========================================== */

/* Remove scrollbar from airlines container */
#dynamicAirlinesFilter {
    max-height: none !important;
    overflow: hidden !important;
    overflow-y: visible !important;
}

#dynamicOnwardAirlinesFilter,
#dynamicReturnAirlinesFilter {
    max-height: min(28vh, 240px);
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 4px;
    scrollbar-width: thin;
    scrollbar-color: #94a3b8 #f8fafc;
}

    #dynamicOnwardAirlinesFilter::-webkit-scrollbar,
    #dynamicReturnAirlinesFilter::-webkit-scrollbar {
        width: 4px;
    }

    #dynamicOnwardAirlinesFilter::-webkit-scrollbar-track,
    #dynamicReturnAirlinesFilter::-webkit-scrollbar-track {
        background: #f8fafc;
        border-radius: 999px;
    }

    #dynamicOnwardAirlinesFilter::-webkit-scrollbar-thumb,
    #dynamicReturnAirlinesFilter::-webkit-scrollbar-thumb {
        background: #94a3b8;
        border-radius: 999px;
    }

        #dynamicOnwardAirlinesFilter::-webkit-scrollbar-thumb:hover,
        #dynamicReturnAirlinesFilter::-webkit-scrollbar-thumb:hover {
            background: #64748b;
        }

/* Each airline row: single horizontal flex line */
.airline-filter-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: 5px 4px;
    border-radius: 6px;
    transition: background 0.15s ease;
    margin-bottom: 2px;
    min-height: 30px;
    gap: 6px;
}

    .airline-filter-row:hover {
        background: #f0f7ff;
    }

/* Custom checkbox inside airline row - uses native checkbox styled with accent-color */
.airline-cb-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    cursor: pointer;
}

    /* Use native checkbox with accent-color for simplicity and perfect alignment */
    .airline-cb-wrap input[type="checkbox"] {
        display: block;
        width: 16px;
        height: 16px;
        margin: 0;
        padding: 0;
        cursor: pointer;
        accent-color: #2563eb;
        border-radius: 3px;
        flex-shrink: 0;
        /* Override any global opacity:0 rules */
        opacity: 1 !important;
        position: static !important;
    }

    /* Hide the custom checkmark span inside airline-cb-wrap since we use native checkbox */
    .airline-cb-wrap .checkmark {
        display: none !important;
    }

/* Airline logo in filter */
.airline-filter-logo {
    width: 18px;
    height: 18px;
    object-fit: contain;
    border-radius: 2px;
    flex-shrink: 0;
}

/* Airline info container: stacks name + price vertically, takes remaining flex space */
.airline-filter-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1px;
}

/* Airline name - fills full width of info container, truncates if still too long */
.airline-filter-name {
    font-size: 0.78rem;
    font-weight: 500;
    color: #1e293b;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.2;
    cursor: pointer;
}

/* Price below the name, smaller and lighter as secondary info */
.airline-filter-price {
    flex-shrink: 0;
    font-size: 0.68rem;
    font-weight: 600;
    color: #64748b;
    white-space: nowrap;
}

/* Exclude button - hidden by default, shown on row hover */
.airline-exclude-btn {
    flex-shrink: 0;
    background: transparent;
    border: 1px solid #fca5a5;
    color: #ef4444;
    font-size: 0.58rem;
    font-weight: 700;
    padding: 1px 6px;
    border-radius: 8px;
    cursor: pointer;
    white-space: nowrap;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.15s ease, visibility 0.15s ease, background 0.15s ease;
    line-height: 1.5;
    user-select: none;
}

.airline-filter-row:hover .airline-exclude-btn {
    opacity: 1;
    visibility: visible;
}

.airline-exclude-btn:hover {
    background: #fef2f2;
    border-color: #ef4444;
    color: #dc2626;
}

/* Excluded state */
.airline-filter-row.excluded {
    opacity: 0.55;
}

    .airline-filter-row.excluded .airline-filter-name {
        text-decoration: line-through;
        text-decoration-color: #ef4444;
        color: #94a3b8;
    }

    .airline-filter-row.excluded .airline-exclude-btn {
        opacity: 1;
        visibility: visible;
        background: #fef2f2;
        border-color: #ef4444;
        color: #dc2626;
    }

    .airline-filter-row.excluded .airline-filter-price {
        color: #ef4444;
        text-decoration: line-through;
    }

/* ==========================================
   LAYOVER EXCLUDE BUTTONS
   ========================================== */

/* Exclude button - hidden by default, shown on row/header hover */
.layover-exclude-btn {
    flex-shrink: 0;
    background: transparent;
    border: 1px solid #fca5a5;
    color: #ef4444;
    font-size: 0.58rem;
    font-weight: 700;
    padding: 1px 6px;
    border-radius: 8px;
    cursor: pointer;
    white-space: nowrap;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.15s ease, visibility 0.15s ease, background 0.15s ease;
    line-height: 1.5;
    user-select: none;
}

.layover-airport-row:hover .layover-exclude-btn,
.layover-country-header:hover > .layover-exclude-btn {
    opacity: 1;
    visibility: visible;
}

.layover-exclude-btn:hover {
    background: #fef2f2;
    border-color: #ef4444;
    color: #dc2626;
}

/* Excluded state - airport row */
.layover-airport-row.excluded {
    opacity: 0.55;
}

    .layover-airport-row.excluded .custom-filter-cb span:first-child {
        text-decoration: line-through;
        text-decoration-color: #ef4444;
        color: #94a3b8;
    }

    .layover-airport-row.excluded .layover-exclude-btn {
        opacity: 1;
        visibility: visible;
        background: #fef2f2;
        border-color: #ef4444;
        color: #dc2626;
    }

/* Excluded state - country header */
.layover-country-header.excluded {
    opacity: 0.55;
}

    .layover-country-header.excluded .custom-filter-cb span:last-child {
        text-decoration: line-through;
        text-decoration-color: #ef4444;
        color: #94a3b8;
    }

    .layover-country-header.excluded > .layover-exclude-btn {
        opacity: 1;
        visibility: visible;
        background: #fef2f2;
        border-color: #ef4444;
        color: #dc2626;
    }

/* ==========================================
   SWAP BUTTON WRAPPER (prevents overlap)
   ========================================== */

.swap-btn-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 44px;
    min-width: 44px;
    position: relative;
    z-index: 10;
    border-right: 1px solid #e2e8f0;
}

/* Swap button: centered inside its wrapper, no negative margins */
.swap-cities-btn {
    margin: 0 !important;
    position: relative !important;
    left: auto !important;
    transform: none !important;
    flex-shrink: 0;
    width: 34px;
    height: 34px;
}

    .swap-cities-btn:hover {
        transform: rotate(180deg) scale(1.1) !important;
    }

/* ==========================================
   HERO FIELD ACTIVE / FOCUS STATE
   ========================================== */

.search-field-hero.sfield-active,
.mc-field-wrap.sfield-active {
    background: #eff6ff;
    border-radius: 10px;
    box-shadow: inset 0 0 0 2px #2563eb;
    transition: background 0.15s ease, box-shadow 0.2s ease;
}

    .search-field-hero.sfield-active .sfield-label,
    .mc-field-wrap.sfield-active .sfield-label {
        color: #2563eb;
    }

/* ==========================================
   NON-STOP TOGGLE FIX (class-based knob)
   ========================================== */

.toggle-track.is-on::after {
    transform: translateX(18px);
}

/* ==========================================
   MULTI-CITY ROUTE ROW (new hero-style)
   ========================================== */

.mc-route-row {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    overflow: visible;
    transition: border-color 0.2s, box-shadow 0.2s;
}

    .mc-route-row:hover {
        border-color: #bfdbfe;
        box-shadow: 0 2px 8px rgba(37,99,235,0.07);
    }

.mc-row-inner {
    display: flex;
    align-items: stretch;
    gap: 0;
    min-height: 72px;
    position: relative;
}

/* Trip number badge */
.mc-trip-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 36px;
    font-size: 0.7rem;
    font-weight: 800;
    color: #94a3b8;
    background: #f8fafc;
    border-right: 1px solid #e2e8f0;
    border-radius: 14px 0 0 14px;
    letter-spacing: 0.3px;
}

/* Field wrappers inside mc row */
.mc-field-wrap {
    position: relative;
    flex: 1;
    padding: 12px 14px 10px;
    border-right: 1px solid #e2e8f0;
    cursor: pointer;
    transition: background 0.15s;
    min-width: 0;
}

    .mc-field-wrap:hover {
        background: #f8fafc;
    }

.mc-from-wrap {
    flex: 1.4;
}

.mc-to-wrap {
    flex: 1.4;
    padding-left: 28px;
}
/* extra left padding to clear the overlapping swap button */
.mc-date-wrap {
    flex: 1.1;
    border-right: none;
}

/* Autocomplete dropdown inside mc rows — width now controlled by .mc-field-wrap override above */

/* Swap button inside mc row */
.mc-swap-btn {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #fff;
    border: 1.5px solid #e2e8f0;
    color: #2563eb;
    font-size: 0.7rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
    align-self: center;
    position: relative;
    z-index: 5;
    margin: 0 -14px;
    box-shadow: 0 1px 4px rgba(37,99,235,0.12);
}

    .mc-swap-btn:hover {
        background: #2563eb;
        color: #fff;
        border-color: #2563eb;
        transform: rotate(180deg) scale(1.1);
        box-shadow: 0 3px 8px rgba(37,99,235,0.25);
    }

/* Remove button */
.mc-remove-btn {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: transparent;
    border: 1.5px solid #fca5a5;
    color: #ef4444;
    font-size: 0.65rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    align-self: center;
    margin: 0 10px;
    transition: all 0.15s ease;
}

    .mc-remove-btn:hover {
        background: #fef2f2;
        border-color: #ef4444;
        color: #dc2626;
        transform: scale(1.1);
    }

/* Placeholder to keep layout consistent for non-removable rows */
.mc-remove-placeholder {
    flex-shrink: 0;
    width: 52px;
}

/* ==========================================
   MULTI-CITY BOTTOM BAR
   ========================================== */

.mc-bottom-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    border-top: 1px solid #f1f5f9;
    margin-top: 4px;
}

/* Add City button */
.mc-add-city-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: transparent;
    border: 1.5px dashed #93c5fd;
    color: #2563eb;
    border-radius: 20px;
    padding: 7px 18px;
    font-size: 0.82rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s ease;
}

    .mc-add-city-btn:hover {
        background: #eff6ff;
        border-color: #2563eb;
        border-style: solid;
    }

/* Inline pax trigger for multi-city */
.mc-pax-inline {
    position: relative;
}

.mc-pax-trigger {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: #f8fafc;
    border: 1.5px solid #e2e8f0;
    color: #1e293b;
    border-radius: 20px;
    padding: 7px 14px;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s ease;
    white-space: nowrap;
}

    .mc-pax-trigger:hover {
        border-color: #2563eb;
        background: #eff6ff;
        color: #2563eb;
    }

/* ==========================================
   LAYOVER AIRPORTS - PROFESSIONAL CHECKBOX
   ========================================== */

/* Override custom-filter-cb for layover airports to be single-line */
#onwardLayoversContainer .custom-filter-cb,
#returnLayoversContainer .custom-filter-cb {
    display: flex;
    align-items: center;
    padding-left: 26px;
    margin-bottom: 6px;
    min-height: 22px;
    font-size: 0.78rem;
    color: #334155;
    line-height: 1.2;
}

#onwardLayoversContainer .checkmark,
#returnLayoversContainer .checkmark {
    top: 50%;
    transform: translateY(-50%);
    margin-top: 0;
    height: 16px;
    width: 16px;
}

    #onwardLayoversContainer .checkmark:after,
    #returnLayoversContainer .checkmark:after {
        left: 5px;
        top: 2px;
        width: 4px;
        height: 8px;
    }

/* ==========================================
   MOBILE-FIRST RESPONSIVE SEARCH FORM
   ========================================== */

/* --- Hero Section --- */
@media (max-width: 767.98px) {
    .xtrips-hero-section {
        padding-top: 1.2rem;
    }

    .search-card-header {
        padding: 12px 16px;
        border-radius: 16px 16px 0 0;
    }

    .search-card-brand {
        font-size: 0.92rem;
    }

    .search-card-tagline {
        display: none;
    }

    /* Search card: remove rounded corners on mobile for full-width feel */
    .search-hero-card {
        border-radius: 16px;
        box-shadow: 0 8px 24px rgba(0,0,0,0.2);
        margin: 0 4px;
    }

    /* Trip type tabs: smaller padding, scrollable */
    .trip-type-tabs {
        padding: 0 12px;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        flex-wrap: nowrap;
        gap: 0;
    }

        .trip-type-tabs::-webkit-scrollbar {
            display: none;
        }

    .trip-tab-label {
        padding: 12px 14px;
        font-size: 0.78rem;
        white-space: nowrap;
    }

    /* ---- SEARCH FIELDS ROW: Stack vertically on mobile ---- */
    .search-fields-row {
        flex-direction: column;
        flex-wrap: wrap;
        padding: 0;
        border-bottom: none;
        gap: 0;
    }

    /* Each field: full width, proper borders */
    .search-field-hero {
        flex: none !important;
        width: 100%;
        padding: 14px 16px 12px;
        border-right: none !important;
        border-bottom: 1px solid #f1f5f9;
        border-radius: 0 !important;
        min-height: 64px;
    }

        .search-field-hero:last-child {
            border-bottom: none;
        }

    /* FROM + SWAP + TO: side by side on mobile */
    .from-field,
    .to-field {
        flex: none !important;
        width: calc(50% - 20px) !important;
        display: inline-flex;
        flex-direction: column;
        justify-content: center;
        border-bottom: 1px solid #f1f5f9 !important;
    }

    /* Wrap FROM + SWAP + TO in a row */
    .search-fields-row {
        display: grid;
        grid-template-columns: 1fr 40px 1fr;
        grid-template-rows: auto auto auto;
        padding: 0;
    }

    .search-field-hero.from-field {
        grid-column: 1;
        grid-row: 1;
        border-right: 1px solid #f1f5f9 !important;
        border-bottom: 1px solid #f1f5f9 !important;
        border-radius: 0 !important;
        width: 100% !important;
    }

    .swap-btn-wrapper {
        grid-column: 2;
        grid-row: 1;
        width: 40px;
        height: auto;
        display: flex;
        align-items: center;
        justify-content: center;
        border-bottom: 1px solid #f1f5f9;
        background: #fff;
    }

    .swap-cities-btn {
        position: static !important;
        transform: none !important;
        left: auto !important;
        margin: 0 !important;
        width: 30px;
        height: 30px;
        font-size: 0.75rem;
    }

        .swap-cities-btn:hover {
            transform: rotate(180deg) scale(1.1) !important;
        }

    .search-field-hero.to-field {
        grid-column: 3;
        grid-row: 1;
        border-bottom: 1px solid #f1f5f9 !important;
        border-radius: 0 !important;
        width: 100% !important;
    }

    /* Date fields: side by side */
    .search-field-hero.date-field {
        grid-column: 1 / span 3;
        grid-row: 2;
        border-bottom: 1px solid #f1f5f9 !important;
        border-right: none !important;
        width: 100% !important;
    }

    /* Return date: same row as departure on mobile */
    #returnDateWrapper {
        grid-column: 1 / span 3;
        grid-row: 3;
        border-bottom: 1px solid #f1f5f9 !important;
    }

    /* Pax field */
    .search-field-hero.pax-field {
        grid-column: 1 / span 3;
        grid-row: 4;
        border-bottom: none !important;
        border-right: none !important;
        width: 100% !important;
    }

    /* Pax dropdown: full width on mobile */
    .pax-dropdown-menu {
        position: fixed !important;
        width: auto !important;
        max-width: none !important;
        left: 12px !important;
        right: 12px !important;
        top: auto !important;
        bottom: max(12px, env(safe-area-inset-bottom, 12px)) !important;
        margin: 0 !important;
        border-radius: 16px !important;
        max-height: min(78vh, calc(100vh - 96px)) !important;
        overflow: hidden !important;
        transform: none !important;
        z-index: 1090 !important;
    }

        .pax-dropdown-menu.show {
            display: flex !important;
            flex-direction: column;
        }

        .pax-dropdown-menu .pax-menu-body {
            overflow-y: auto;
            -webkit-overflow-scrolling: touch;
            max-height: calc(min(78vh, calc(100vh - 96px)) - 118px);
        }

        .pax-dropdown-menu .pax-menu-footer {
            position: sticky;
            bottom: 0;
            background: #fff;
            border-top: 1px solid #e2e8f0;
        }

    /* Autocomplete dropdown: full width on mobile */
    .autocomplete-dropdown {
        width: 100% !important;
        left: 0 !important;
        right: 0 !important;
        max-width: 100vw;
    }

    /* Input font sizes: slightly smaller on mobile */
    .sfield-input {
        font-size: 0.95rem;
    }

    .sfield-label {
        font-size: 0.65rem;
    }

    .sfield-subtext {
        font-size: 0.68rem;
    }

    /* Extra options row: stack on mobile */
    .search-extra-row {
        flex-direction: column;
        align-items: stretch;
        padding: 12px 16px 16px;
        gap: 12px;
    }

        .search-extra-row > div {
            flex-wrap: wrap;
            gap: 10px;
        }

    /* Search button: full width on mobile */
    .hero-search-btn {
        width: 100%;
        justify-content: center;
        padding: 14px 20px;
        font-size: 1rem;
        border-radius: 10px;
    }

    /* Preferred airline select: full width */
    .preferred-airline-select {
        width: 100%;
        border-radius: 8px;
    }

    /* ---- MULTI-CITY ROWS on mobile ---- */
    .mc-route-row {
        border-radius: 10px;
    }

    .mc-row-inner {
        flex-direction: column;
        min-height: auto;
        padding: 0;
    }

    .mc-trip-badge {
        width: 100%;
        height: 28px;
        border-radius: 10px 10px 0 0;
        border-right: none;
        border-bottom: 1px solid #e2e8f0;
        font-size: 0.65rem;
        letter-spacing: 1px;
        text-transform: uppercase;
    }

    .mc-field-wrap {
        flex: none !important;
        width: 100%;
        border-right: none;
        border-bottom: 1px solid #f1f5f9;
        padding: 10px 14px 8px;
    }

    .mc-date-wrap {
        border-bottom: none !important;
    }

    .mc-swap-btn {
        display: none; /* Hide swap on mobile for MC rows to save space */
    }

    .mc-remove-btn {
        position: absolute;
        top: 8px;
        right: 8px;
        margin: 0;
        width: 26px;
        height: 26px;
        font-size: 0.6rem;
    }

    .mc-route-row {
        position: relative;
    }

    .mc-remove-placeholder {
        display: none;
    }

    /* MC bottom bar: stack on mobile */
    .mc-bottom-bar {
        flex-direction: column;
        align-items: stretch;
        padding: 12px 16px 16px;
        gap: 10px;
    }

        .mc-bottom-bar > div {
            flex-wrap: wrap;
        }

        .mc-bottom-bar .hero-search-btn {
            width: 100%;
            justify-content: center;
        }

    .mc-pax-trigger {
        width: 100%;
        justify-content: center;
    }

    /* Autocomplete dropdown inside MC rows */
    .mc-field-wrap .autocomplete-dropdown {
        width: 100% !important;
        left: 0 !important;
    }
}

/* --- Tablet (768px - 991px): 2-column grid for date + pax --- */
@media (min-width: 768px) and (max-width: 991.98px) {
    .xtrips-hero-section {
        padding-top: 1.5rem;
    }

    .search-fields-row {
        flex-wrap: wrap;
        padding: 0 8px;
    }

    .search-field-hero.from-field {
        flex: 1 1 calc(50% - 20px);
    }

    .search-field-hero.to-field {
        flex: 1 1 calc(50% - 20px);
    }

    .search-field-hero.date-field {
        flex: 1 1 calc(50% - 4px);
        border-right: 1px solid #e2e8f0;
    }

    #returnDateWrapper {
        flex: 1 1 calc(50% - 4px);
        border-right: none;
    }

    .search-field-hero.pax-field {
        flex: 1 1 100%;
        border-right: none;
        border-top: 1px solid #f1f5f9;
    }

    .swap-btn-wrapper {
        width: 44px;
        min-width: 44px;
        flex-shrink: 0;
        border-right: 1px solid #e2e8f0;
    }

    .swap-cities-btn {
        position: relative !important;
        left: auto !important;
        transform: none !important;
        margin: 0 !important;
    }

    .search-extra-row {
        flex-wrap: wrap;
        gap: 10px;
    }

    .hero-search-btn {
        padding: 12px 28px;
    }

    /* MC rows: keep horizontal but allow wrap */
    .mc-row-inner {
        flex-wrap: wrap;
    }

    .mc-from-wrap, .mc-to-wrap {
        flex: 1 1 calc(50% - 20px);
        min-width: 120px;
    }

    .mc-date-wrap {
        flex: 1 1 100%;
        border-right: none;
        border-top: 1px solid #f1f5f9;
    }

    .mc-swap-btn {
        align-self: center;
    }
}

/* --- Desktop (≥ 992px): Full horizontal row --- */
@media (min-width: 992px) {
    .search-fields-row {
        flex-wrap: nowrap;
        overflow: visible;
    }

    .search-field-hero.from-field {
        flex: 1.4;
    }

    .search-field-hero.to-field {
        flex: 1.4;
    }

    .search-field-hero.date-field {
        flex: 1.1;
    }

    .search-field-hero.pax-field {
        flex: 1.3;
    }
}

/* ─── Seat Map Styles ─────────────────────────────────────────────── */
.seat-btn {
    width: 36px;
    height: 36px;
    border: 1.5px solid #dee2e6;
    border-radius: 6px 6px 8px 8px;
    font-size: 0.6rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.15s ease;
    padding: 0;
    text-align: center;
    line-height: 36px;
    position: relative;
}

    .seat-btn:hover:not(:disabled) {
        transform: scale(1.15);
        z-index: 2;
        box-shadow: 0 2px 8px rgba(0,0,0,0.15);
    }

.seat-free {
    background: #d1fae5;
    border-color: #6ee7b7;
    color: #065f46;
}

.seat-paid {
    background: #dbeafe;
    border-color: #93c5fd;
    color: #1e40af;
}

.seat-occupied {
    background: #e5e7eb;
    border-color: #d1d5db;
    color: #9ca3af;
    cursor: not-allowed;
    opacity: 0.6;
}

.seat-selected {
    background: #fef3c7 !important;
    border-color: #f59e0b !important;
    color: #92400e !important;
    box-shadow: 0 0 0 2px #fbbf24;
}

.seat-map-container {
    background: #f8fafc;
}

/* ─── SSR Tab Styles ──────────────────────────────────────────────── */
#ssrTabs .nav-link {
    font-size: 0.85rem;
    font-weight: 600;
    color: #6b7280;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 8px 16px;
}

    #ssrTabs .nav-link.active {
        color: #2563eb;
        border-bottom-color: #2563eb;
        background: transparent;
    }

    #ssrTabs .nav-link:hover:not(.active) {
        color: #374151;
        border-bottom-color: #d1d5db;
    }

/* --- Flatpickr alt-input on mobile: ensure it shows properly --- */
@media (max-width: 767.98px) {
    .search-field-hero .flatpickr-input[readonly] {
        font-size: 0.95rem !important;
    }

    /* Flatpickr calendar: full width on mobile */
    .flatpickr-calendar.open:not(.inline) {
        width: calc(100vw - 32px) !important;
        left: 16px !important;
        right: 16px !important;
        min-width: 0 !important;
        max-width: calc(100vw - 32px) !important;
    }
}

/* ==========================================
   TRIPCART — FLIGHT SELECTION CART
   ========================================== */

/* Picker icon at top-right of flight card */
.tripcart-picker-icon:hover .tripcart-icon-unchecked {
    opacity: 1 !important;
    color: #4b5563 !important;
}

.tripcart-picker-icon input:checked ~ .tripcart-icon-unchecked {
    display: none !important;
}

.tripcart-picker-icon input:checked ~ .tripcart-icon-checked {
    display: inline-block !important;
}

/* ---- Multi-price-option: count badge on corner icon ---- */
.tc-count-badge {
    position: absolute;
    bottom: -2px;
    right: -4px;
    min-width: 16px;
    height: 16px;
    line-height: 16px;
    padding: 0 3px;
    border-radius: 8px;
    background: #2563eb;
    color: #fff;
    font-size: 0.55rem;
    font-weight: 700;
    text-align: center;
    pointer-events: none;
    border: 1px solid #fff;
}

/* ---- Price dropdown: quote-checkbox & in-quote highlight ---- */
.price-dropdown .price-option-quote-cb {
    margin-right: 10px;
    width: 15px;
    height: 15px;
    flex-shrink: 0;
    accent-color: #16a34a;
    cursor: pointer;
}

.price-dropdown .price-option-quote-cb:disabled {
    opacity: 0.55;
    cursor: not-allowed;
    accent-color: #9ca3af;
}

.price-dropdown .price-option.in-quote {
    background-color: #f0fdf4 !important;
    border-left: 3px solid #16a34a;
}

    .price-dropdown .price-option.in-quote:hover {
        background-color: #dcfce7 !important;
    }

/* ---- Tripcart panel: flight group header ---- */
.tc-flight-group-header {
    background: #f8fafc !important;
    border-left: 3px solid #2563eb !important;
    padding-top: 8px !important;
    padding-bottom: 6px !important;
    margin-top: 4px;
}

    .tc-flight-group-header + .tc-price-option-row {
        margin-top: 0;
    }

/* ---- Tripcart panel: per-option price row ---- */
.tc-price-option-row {
    background: #fafafa !important;
    border-left: 3px solid #bfdbfe !important;
    padding-top: 4px !important;
    padding-bottom: 4px !important;
}

    .tc-price-option-row:last-child {
        border-bottom: 1px solid #e5e7eb !important;
        margin-bottom: 4px;
    }

.tc-category-badge {
    font-size: 0.62rem !important;
    padding: 1px 5px !important;
    border-radius: 4px !important;
}

/* Cart icon nav button — subtle pulse when items added */
#tripcartNavItem {
    transition: opacity 0.2s ease;
}

#tripcartNavBtn {
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.tripcart-btn-icon,
.tripcart-btn-spinner {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.tripcart-btn-spinner {
    display: none;
}

#tripcartNavBtn.is-loading .tripcart-btn-icon,
#tripcartFab.is-loading .tripcart-btn-icon {
    display: none;
}

#tripcartNavBtn.is-loading .tripcart-btn-spinner,
#tripcartFab.is-loading .tripcart-btn-spinner {
    display: inline-flex;
}

#tripcartNavBtn.is-loading,
#tripcartFab.is-loading {
    cursor: progress;
}

#tripcartNavBtn.is-loading .spinner-border,
#tripcartFab.is-loading .spinner-border {
    width: 0.95rem;
    height: 0.95rem;
    border-width: 0.15em;
}

    #tripcartNavBtn:hover {
        transform: translateY(-1px);
        box-shadow: 0 4px 12px rgba(13, 110, 253, 0.25);
    }

#tripcartNavBadge {
    min-width: 18px;
    height: 18px;
    line-height: 18px;
    padding: 0 4px;
    font-size: 0.62rem;
    font-weight: 700;
    animation: tripcartBadgePop 0.25s ease;
}

@keyframes tripcartBadgePop {
    0% {
        transform: translate(-50%, -50%) scale(0.5);
    }

    70% {
        transform: translate(-50%, -50%) scale(1.2);
    }

    100% {
        transform: translate(-50%, -50%) scale(1);
    }
}

/* Offcanvas panel refinements */
.tripcart-offcanvas .offcanvas-header {
    background: #f8faff; /* sits below header */
}

.tripcart-offcanvas .list-group-item {
    border-left: none;
    border-right: none;
    transition: background 0.1s;
}

    .tripcart-offcanvas .list-group-item:hover {
        background: #f8fafc;
    }

#tripcartProceedBtn {
    background: linear-gradient(135deg, #1d4ed8, #0d6efd);
    border: none;
    font-size: 0.9rem;
    letter-spacing: 0.5px;
    transition: all 0.18s ease;
}

    #tripcartProceedBtn:hover {
        transform: translateY(-1px);
        box-shadow: 0 6px 16px rgba(13, 110, 253, 0.3);
    }

/* Roundtrip Combo Cart Picker — bottom bar checkbox */
.rt-combo-cart-picker {
    transition: all 0.2s ease;
}

    .rt-combo-cart-picker:hover {
        transform: translateY(-1px);
        box-shadow: 0 4px 12px rgba(37, 99, 235, 0.18) !important;
    }

    .rt-combo-cart-picker input:checked ~ .rt-combo-icon-unchecked {
        display: none !important;
    }

    .rt-combo-cart-picker input:checked ~ .rt-combo-icon-checked {
        display: inline-block !important;
    }

@media (max-width: 991.98px) {
    #splitViewRow > .col-12,
    #splitViewRow > div > .col-12,
    #splitViewRow .roundtrip-sticky-summary,
    #splitViewRow > div > .col-12 > .roundtrip-sticky-summary {
        position: static !important;
    }

    #splitViewRow .roundtrip-sticky-summary__inner {
        min-height: auto;
        flex-wrap: wrap;
        align-items: stretch;
        padding: 12px 14px;
    }

    #splitViewRow .roundtrip-sticky-summary__actions {
        width: 100%;
        justify-content: space-between;
        margin-left: 0;
    }

    #splitViewRow .results-split-header,
    #splitViewRow > div > .col-md-6 > .results-split-header,
    #onwardColumn > .results-split-header.sticky-top,
    #returnColumn > .results-split-header.sticky-top {
        top: calc(var(--site-header-height, 68px) + var(--results-summary-height, 64px)) !important;
    }

    #splitViewRow.rt-combo-layout #onwardColumn {
        display: block;
        padding: 8px;
    }

    #splitViewRow.rt-domestic-layout .roundtrip-sticky-summary__inner {
        padding: 10px 12px;
    }

    #splitViewRow.rt-domestic-layout .rt-domestic-summary-price {
        min-width: auto;
    }

    #splitViewRow.rt-domestic-layout .rt-domestic-book-btn {
        min-width: 160px;
    }
}


@media (max-width: 575.98px) {
    #splitViewRow .roundtrip-sticky-summary__actions {
        flex-wrap: wrap;
    }

    #splitViewRow .roundtrip-sticky-summary__price {
        min-width: auto;
        margin-right: auto !important;
    }

    #splitViewRow #splitBookForm,
    #splitViewRow #domReturnBookBtn {
        width: 100%;
    }

    #splitViewRow.rt-domestic-layout .rt-selection-hints {
        display: none;
    }
}

/* Tripcart empty state — custom flex without Bootstrap !important conflict */
.tripcart-empty-state {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #6c757d;
    padding: 2rem 1.5rem;
}

    .tripcart-empty-state.d-none {
        display: none !important;
    }

/* Widen offcanvas for richer content display */
@media (min-width: 576px) {
    .tripcart-offcanvas {
        width: 540px !important;
    }
}

/* ==========================================
   AUTOCOMPLETE — Attached to input, matched width
   ========================================== */

/* Field containers need position:relative for dropdown positioning */
.search-field-hero,
.mc-field-wrap {
    position: relative;
}

    /* When field is focused, raise z-index so dropdown isn't clipped by adjacent fields */
    .search-field-hero.sfield-active,
    .mc-field-wrap.sfield-active {
        z-index: 1051;
    }

/* ==========================================
   MOBILE FULLSCREEN AUTOCOMPLETE MODAL
   ========================================== */
.ac-mobile-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9999;
    background: #fff;
    flex-direction: column;
}

    .ac-mobile-modal.active {
        display: flex;
    }

.ac-mobile-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    border-bottom: 2px solid #3b82f6;
    background: #f8fafc;
}

.ac-mobile-back {
    border: none;
    background: none;
    font-size: 1.2rem;
    color: #475569;
    padding: 4px 8px;
    cursor: pointer;
    border-radius: 8px;
}

    .ac-mobile-back:active {
        background: #e2e8f0;
    }

.ac-mobile-input-wrap {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.ac-mobile-label {
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #3b82f6;
    margin-bottom: 2px;
}

.ac-mobile-input {
    border: none;
    outline: none;
    font-size: 1rem;
    font-weight: 600;
    color: #1e293b;
    background: transparent;
    width: 100%;
    padding: 0;
}

    .ac-mobile-input::placeholder {
        color: #94a3b8;
        font-weight: 400;
    }

.ac-mobile-results {
    flex: 1;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

    /* Reuse existing autocomplete-item styles inside mobile modal */
    .ac-mobile-results .autocomplete-item {
        padding: 12px 16px;
        border-bottom: 1px solid #f1f5f9;
        cursor: pointer;
    }

        .ac-mobile-results .autocomplete-item:active {
            background: #eff6ff;
        }

        .ac-mobile-results .autocomplete-item.ac-item-grouped {
            padding-left: 42px;
            background: #fafbfc;
        }

    .ac-mobile-results .autocomplete-header {
        padding: 10px 16px;
        font-size: 0.7rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.5px;
        color: #94a3b8;
        background: #f8fafc;
        border-bottom: 1px solid #f1f5f9;
    }

    .ac-mobile-results .autocomplete-no-result {
        padding: 40px 20px;
        text-align: center;
        color: #94a3b8;
    }

/* On mobile, hide the desktop dropdown entirely and use the modal instead */
@media (max-width: 767.98px) {
    .search-field-hero .autocomplete-dropdown,
    .mc-field-wrap .autocomplete-dropdown {
        display: none !important;
    }
}

/* ==========================================
   MOBILE BACKDROP (for booking page date pickers)
   ========================================== */
.mobile-backdrop {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.45);
    z-index: 99998;
}

    .mobile-backdrop.active {
        display: block;
    }

/* ==========================================
   MOBILE FULLSCREEN DATE MODAL
   ========================================== */
.date-mobile-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 100000;
    background: #fff;
    flex-direction: column;
}

    .date-mobile-modal.active {
        display: flex;
    }

.date-mobile-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 16px;
    border-bottom: 2px solid #3b82f6;
    background: #f8fafc;
}

    .date-mobile-header .ac-mobile-back {
        border: none;
        background: none;
        font-size: 1.2rem;
        color: #475569;
        padding: 4px 8px;
        cursor: pointer;
        border-radius: 8px;
    }

.date-mobile-title {
    font-size: 1.05rem;
    font-weight: 700;
    color: #1e293b;
}

.date-mobile-body {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    padding: 16px 12px env(safe-area-inset-bottom, 16px);
}

    .date-mobile-body .flatpickr-calendar {
        box-shadow: none !important;
        border: none !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

        .date-mobile-body .flatpickr-calendar.inline {
            position: static !important;
            display: block !important;
            opacity: 1 !important;
            visibility: visible !important;
        }

    .date-mobile-body .flatpickr-innerContainer,
    .date-mobile-body .flatpickr-rContainer,
    .date-mobile-body .flatpickr-days,
    .date-mobile-body .dayContainer {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    .date-mobile-body .flatpickr-day {
        max-width: 14.285%;
        height: 44px;
        line-height: 44px;
        font-size: 0.95rem;
        border-radius: 8px;
    }

    .date-mobile-body .flatpickr-months {
        padding: 4px 0 8px;
    }

    .date-mobile-body .flatpickr-month {
        height: 40px;
    }

    .date-mobile-body .flatpickr-current-month {
        font-size: 1rem;
        padding-top: 8px;
    }

/* Hide sfield-subtext and sfield-error-msg on mobile to reduce clutter */
@media (max-width: 767.98px) {
    .pax-display {
        gap: 6px;
    }

        .pax-display span:first-child {
            font-size: 0.92rem;
        }

    .pax-type-summary {
        font-size: 0.68rem;
    }

    .search-field-hero .sfield-subtext,
    .search-field-hero .sfield-error-msg {
        display: none !important;
    }

    /* Booking page flatpickr: bottom-sheet style on mobile */
    .flatpickr-calendar.open {
        position: fixed !important;
        top: auto !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        border-radius: 20px 20px 0 0 !important;
        box-shadow: 0 -8px 40px rgba(0,0,0,0.18) !important;
        z-index: 99999 !important;
        padding-bottom: env(safe-area-inset-bottom, 16px);
    }
    /* Inline calendar inside our full-screen date modal must NOT be affected by the above */
    .date-mobile-body .flatpickr-calendar.inline {
        position: relative !important;
        top: auto !important;
        bottom: auto !important;
        left: auto !important;
        right: auto !important;
        width: 100% !important;
        max-width: 100% !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        z-index: auto !important;
        padding-bottom: 0 !important;
        display: block !important;
    }

    .flatpickr-calendar .flatpickr-day {
        max-width: 44px;
        height: 44px;
        line-height: 44px;
    }
}

/* ==========================================
   MOBILE TRAVELLER FULLSCREEN MODAL
   ========================================== */
.pax-mobile-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9999;
    background: #fff;
    flex-direction: column;
}

    .pax-mobile-modal.active {
        display: flex;
    }

.pax-mobile-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 16px;
    border-bottom: 2px solid #3b82f6;
    background: #f8fafc;
}

    .pax-mobile-header .ac-mobile-back {
        border: none;
        background: none;
        font-size: 1.2rem;
        color: #475569;
        padding: 4px 8px;
        cursor: pointer;
        border-radius: 8px;
    }

.pax-mobile-title {
    font-size: 1rem;
    font-weight: 700;
    color: #1e293b;
}

.pax-mobile-body {
    flex: 1;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 16px;
}

.pax-mobile-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 0;
    border-bottom: 1px solid #f1f5f9;
}

.pax-mobile-info .pax-mob-type {
    font-weight: 700;
    font-size: 0.95rem;
    color: #1e293b;
}

.pax-mobile-info .pax-mob-age {
    font-size: 0.75rem;
    color: #94a3b8;
}

.pax-mobile-counter {
    display: flex;
    align-items: center;
    gap: 16px;
}

    .pax-mobile-counter .pax-mob-btn {
        width: 38px;
        height: 38px;
        border-radius: 50%;
        border: 2px solid #e2e8f0;
        background: #fff;
        font-size: 1.1rem;
        font-weight: 700;
        color: #475569;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: all 0.15s;
    }

        .pax-mobile-counter .pax-mob-btn:active {
            background: #eff6ff;
            border-color: #3b82f6;
            color: #3b82f6;
        }

    .pax-mobile-counter .pax-mob-val {
        font-size: 1.2rem;
        font-weight: 700;
        min-width: 24px;
        text-align: center;
        color: #1e293b;
    }

.pax-mobile-class-section {
    padding-top: 20px;
}

.pax-mobile-class-label {
    font-weight: 700;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #94a3b8;
    margin-bottom: 12px;
}

.pax-mobile-class-opts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.pax-mob-class-opt {
    padding: 10px 18px;
    border-radius: 10px;
    border: 2px solid #e2e8f0;
    background: #fff;
    font-size: 0.85rem;
    font-weight: 600;
    color: #475569;
    cursor: pointer;
    transition: all 0.15s;
}

    .pax-mob-class-opt.active {
        border-color: #3b82f6;
        background: #eff6ff;
        color: #1d4ed8;
    }

.pax-mobile-footer {
    padding: 12px 16px;
    border-top: 1px solid #e2e8f0;
    padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
}

.pax-mobile-done-btn {
    width: 100%;
    padding: 14px;
    border: none;
    border-radius: 12px;
    background: linear-gradient(135deg, #3b82f6, #2563eb);
    color: #fff;
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
}

/* Standardized Flight Card Footer Layout */
.mmt-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75rem 1rem;
    background: #f8f9fa;
    border-top: 1px solid #e9ecef;
    width: 100%;
}

    .mmt-footer .left-group {
        display: flex;
        align-items: center;
        gap: 1rem;
        flex-wrap: wrap;
    }

    .mmt-footer .right-group {
        display: flex;
        align-items: center;
        gap: 1rem;
    }

    .mmt-footer .cancellation-policy {
        display: flex;
        align-items: center;
    }

    .mmt-footer .baggage-info {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        font-size: 0.72rem;
        font-weight: 600;
        color: #6c757d;
    }

        .mmt-footer .baggage-info i {
            font-size: 0.875rem;
        }

    .mmt-footer .flight-details-link {
        color: #007bff;
        font-weight: 600;
        font-size: 0.74rem;
        text-decoration: none;
        letter-spacing: 0.5px;
        transition: color 0.2s ease;
    }

        .mmt-footer .flight-details-link i.bi-chevron-down {
            display: inline-block;
            transition: transform 0.2s ease;
        }

        .mmt-footer .flight-details-link[aria-expanded="true"] i.bi-chevron-down {
            transform: rotate(180deg);
        }

        .mmt-footer .flight-details-link:hover {
            color: #0056b3;
            text-decoration: underline;
        }

    .mmt-footer .price-container {
        display: flex;
        flex-direction: column;
        align-items: flex-end;
        min-width: 150px;
        position: relative;
    }

    .mmt-footer .price-display {
        text-align: right;
        cursor: pointer;
        user-select: none;
        padding: 6px 0;
        transition: all 0.2s ease;
        display: flex;
        flex-direction: column;
        align-items: flex-end;
        gap: 4px;
    }

        .mmt-footer .price-display.split-price-display {
            cursor: default;
            display: inline-flex;
            flex-direction: row;
            align-items: center;
            justify-content: flex-end;
            text-align: left;
            gap: 8px;
            padding: 0;
        }

    .mmt-footer.oneway-footer {
        padding-top: 0.55rem;
        padding-bottom: 0.55rem;
    }

        .mmt-footer.oneway-footer .left-group {
            flex-wrap: nowrap;
            gap: 0.85rem;
        }

        .mmt-footer.oneway-footer .right-group {
            gap: 0.75rem;
        }

    .mmt-footer .price-container.oneway-inline-price {
        min-width: auto;
    }

.roundtrip-selection-footer .right-group {
    gap: 0.5rem;
}

.roundtrip-selection-footer .price-container.oneway-inline-price {
    min-width: auto;
}

.mmt-footer .more-categories.multi-city-combo-note,
.mmt-footer .more-categories.multi-city-combo-note.empty,
.mmt-footer .more-categories.combined-fare-note,
.mmt-footer .more-categories.combined-fare-note.empty {
    visibility: visible;
    cursor: default;
    color: #6b7280;
    text-decoration: none;
    background: transparent;
    height: auto;
    padding: 0;
    margin-top: 4px;
}

/* One-way specific size reductions */
.mmt-footer.oneway-footer .mmt-time {
    font-size: 0.9rem;
    font-weight: 400;
}

.result-card.oneway-card .mmt-time {
    font-size: 1.1rem;
    font-weight: 700;
    color: #1f2937;
    line-height: 1.1;
}

.result-card.oneway-card .mmt-duration {
    font-size: 0.78rem;
    font-weight: 400;
    color: #111827;
}

.mmt-footer.oneway-footer .price-amount {
    font-size: 1.4rem;
    font-weight: 900;
}

.mmt-footer.oneway-footer .book-now-btn {
    padding: 0.5rem 1rem;
    font-size: 0.75rem;
    letter-spacing: 0.5px;
}

.mmt-footer.oneway-footer .price-category-btn {
    font-size: 0.68rem;
    padding: 4px 8px;
}

.mmt-footer.oneway-footer .price-category-label {
    font-size: 0.68rem;
    line-height: 1.1;
}

.mmt-footer .more-prices-inline {
    font-size: 0.64rem;
    font-weight: 600;
    color: #4b5563;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
}

.mmt-footer .price-amount {
    font-family: 'Inter', sans-serif;
    font-weight: 900;
    font-size: 1.5rem;
    color: #1a1a1a;
    letter-spacing: -1px;
    line-height: 1;
    margin-bottom: 0;
    user-select: text;
    -webkit-user-select: text;
    -moz-user-select: text;
    -ms-user-select: text;
}

.mmt-footer .price-category {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    background: #f3f4f6;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 4px 8px;
    font-size: 0.7rem;
    font-weight: 600;
    color: #6b7280;
    transition: all 0.2s ease;
    white-space: nowrap;
    margin: 0;
}

    .mmt-footer .price-category:hover {
        color: #4b5563;
        background: #f8fafc;
        border-color: #d1d5db;
    }

.mmt-footer .price-category-split-group {
    display: inline-flex;
    align-items: stretch;
}

    /* Shared split-fare sizing (reusable for one-way, roundtrip, and multi-city cards) */
    .mmt-footer .price-category-split-group .price-category-btn,
    .mmt-footer .price-category-split-group .price-category-label {
        font-size: 0.68rem;
        line-height: 1.1;
    }

    .mmt-footer .price-category-split-group .price-category-btn {
        min-height: 30px;
    }

    .mmt-footer .price-category-split-group .price-category-label {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-weight: inherit;
    }

.mmt-footer .price-category-btn {
    border: 1px solid #e5e7eb;
    border-right: 0;
    border-radius: 10px 0 0 10px;
    background: #f3f4f6;
    color: #6b7280;
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1.1;
    padding: 4px 8px;
    white-space: nowrap;
}

.mmt-footer .price-category-toggle {
    border: 1px solid #e5e7eb;
    border-left: 0;
    border-radius: 0 10px 10px 0;
    padding: 4px 7px;
}

    .mmt-footer .price-category-toggle::after {
        font-size: 0.65rem;
    }

.mmt-footer .price-category-split-group.no-dropdown .price-category-btn {
    border-right: 1px solid #e5e7eb;
    border-radius: 10px;
}

.mmt-footer .price-category-split-group .price-category-btn:hover,
.mmt-footer .price-category-split-group .price-category-toggle:hover,
.mmt-footer .price-category-split-group .price-category-toggle:focus,
.mmt-footer .price-category-split-group .price-category-btn:focus {
    border-color: #d1d5db;
    box-shadow: none;
}

.mmt-footer .price-display:hover {
    opacity: 0.8;
}

.mmt-footer .price-category.no-dropdown:hover {
    background: #f9fafb;
    border-color: #e5e7eb;
    color: #6b7280;
}

.mmt-footer .price-chevron {
    font-size: 0.7rem;
    color: #6b7280;
    transition: transform 0.2s ease;
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
}

.mmt-footer .price-container.expanded .price-chevron {
    transform: rotate(180deg);
}

.mmt-footer .more-categories {
    font-size: 0.6rem;
    color: #3b82f6;
    font-weight: 500;
    margin-top: 6px;
    cursor: pointer;
    transition: all 0.2s ease;
    text-align: right;
    line-height: 1.2;
    padding: 2px 4px;
    border-radius: 4px;
    text-decoration: underline;
    text-underline-offset: 2px;
    height: 16px;
    visibility: visible;
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}

    .mmt-footer .more-categories:hover {
        color: #2563eb;
        background-color: #f0f9ff;
        text-decoration: none;
    }

    .mmt-footer .more-categories.empty {
        visibility: hidden;
        cursor: default;
    }

/* FORCE FIX - Text Selection Control */
.result-card,
.result-card *,
.filterable-flight,
.filterable-flight * {
    user-select: none !important;
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
}

    /* FORCE FIX - Price amount selectable */
    .result-card .price-amount,
    .filterable-flight .price-amount,
    .mmt-footer .price-amount {
        user-select: text !important;
        -webkit-user-select: text !important;
        -moz-user-select: text !important;
        -ms-user-select: text !important;
    }

/* FORCE FIX - Interactive elements cursor */
.details-tab-btn,
.price-display.has-dropdown,
.price-category,
.more-categories,
.flight-details-link,
.hero-search-btn,
.book-now-btn {
    cursor: pointer !important;
}

/* FORCE FIX - Non-interactive cursor */
.price-display.no-dropdown {
    cursor: default !important;
}

/* CRITICAL FIX - Ensure dropdown visibility and prevent clipping */
.price-dropdown,
.mmt-footer .price-dropdown {
    position: absolute !important;
    top: 100% !important;
    right: 0 !important;
    min-width: 280px !important;
    max-width: 320px !important;
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.05) !important;
    z-index: 9999 !important;
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    transition: opacity 0.2s ease, visibility 0.2s ease !important;
    overflow: visible !important;
    transform: translateZ(0) !important;
    will-change: opacity, visibility !important;
}

    .price-dropdown.show,
    .mmt-footer .price-dropdown.show {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        z-index: 9999 !important;
    }

/* FORCE FIX - Remove all overflow and positioning constraints */
.price-container,
.mmt-footer,
.result-card,
.filterable-flight,
.search-results-row {
    overflow: visible !important;
    position: relative !important;
}

    /* CRITICAL - Active card elevation when dropdown is open */
    .result-card.has-dropdown-open {
        z-index: 1022 !important;
        transform: translateY(-2px) !important;
        box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25) !important;
    }

@keyframes dropdownSlide {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.mmt-footer .dropdown-header {
    padding: 12px 16px;
    border-bottom: 1px solid #f3f4f6;
    font-size: 0.8rem;
    font-weight: 600;
    color: #374151;
    background: #f9fafb;
    border-radius: 8px 8px 0 0;
    position: sticky;
    top: 0;
    z-index: 1;
}

.mmt-footer .price-option {
    display: flex;
    align-items: center;
    padding: 14px 16px;
    cursor: pointer;
    transition: all 0.15s ease;
    border-bottom: 1px solid #f9fafb;
    white-space: nowrap;
}

    .mmt-footer .price-option:last-child {
        border-bottom: none;
    }

    .mmt-footer .price-option:hover {
        background-color: #f8fafc;
        transform: translateX(2px);
    }

    .mmt-footer .price-option.selected {
        background-color: #eff6ff;
        border-left: 3px solid #3b82f6;
    }

.mmt-footer .price-option-radio {
    margin-right: 12px;
    accent-color: #3b82f6;
    flex-shrink: 0;
}

.mmt-footer .price-option-details {
    flex: 1;
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-width: 0;
}

.mmt-footer .option-price {
    font-weight: 600;
    color: #1f2937;
    font-size: 0.9rem;
    font-family: 'Inter', sans-serif;
    white-space: nowrap;
}

.mmt-footer .option-category {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

    .mmt-footer .option-category .category-badge {
        font-size: 0.6rem;
        padding: 2px 6px;
        border-radius: 8px;
        font-weight: 500;
        white-space: nowrap;
    }

.mmt-footer .book-now-btn {
    background: #007bff;
    color: white;
    border: none;
    padding: 0.75rem 1.5rem;
    font-weight: 700;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    border-radius: 50px;
    box-shadow: 0 2px 4px rgba(0, 123, 255, 0.3);
    transition: all 0.2s ease;
    cursor: pointer;
    white-space: nowrap;
    align-self: center;
}

    .mmt-footer .book-now-btn:hover {
        background: #0056b3;
        transform: translateY(-1px);
        box-shadow: 0 4px 8px rgba(0, 123, 255, 0.4);
    }

/* Ensure dropdown appears above all elements */
.result-card {
    overflow: visible !important;
    position: relative !important;
}

.mmt-footer {
    overflow: visible !important;
    position: relative !important;
}

/* Active card elevation when dropdown is open */
.result-card.has-dropdown-open {
    z-index: 50;
    transform: translateY(-2px);
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}

.hero-search-btn:disabled {
    background: linear-gradient(135deg, #94a3b8, #64748b) !important;
    cursor: not-allowed !important;
    opacity: 0.8;
    transform: none;
    box-shadow: none;
}

    .hero-search-btn:disabled:hover {
        background: linear-gradient(135deg, #94a3b8, #64748b) !important;
        transform: none;
        box-shadow: none;
    }

/* Flight list container adjustments */
.search-results-row {
    overflow: visible !important;
}

.filterable-flight {
    overflow: visible !important;
}

/* Price Category Badge Styles */
.price-category-badge {
    display: inline-block;
    padding: 4px 8px;
    border-radius: 12px;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    line-height: 1;
    white-space: nowrap;
}

/* Standardized Pricing Display */
.pricing-display {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    min-width: 150px;
    cursor: pointer;
    user-select: none;
}

    .pricing-display .primary-price {
        display: flex;
        flex-direction: column;
        align-items: flex-end;
        gap: 2px;
    }

    .pricing-display .price-amount {
        font-family: 'Inter', sans-serif;
        font-weight: 900;
        font-size: 1.5rem;
        color: #1a1a1a;
        letter-spacing: -1px;
        line-height: 1;
    }

    .pricing-display .price-label {
        font-size: 0.7rem;
        font-weight: 500;
        color: #6b7280;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }

    .pricing-display .price-chevron {
        margin-left: 4px;
        font-size: 0.8rem;
        color: #6b7280;
        transition: transform 0.2s ease;
    }

    .pricing-display.expanded .price-chevron {
        transform: rotate(180deg);
    }

    .pricing-display .more-categories {
        font-size: 0.65rem;
        color: #9ca3af;
        font-weight: 400;
        margin-top: 2px;
        cursor: pointer;
    }

        .pricing-display .more-categories:hover {
            color: #6b7280;
        }

/* Price Dropdown - Global Styles (consolidated above) */

.price-dropdown .dropdown-header {
    padding: 12px 16px;
    border-bottom: 1px solid #f3f4f6;
    font-size: 0.8rem;
    font-weight: 600;
    color: #374151;
    background: #f9fafb;
    border-radius: 8px 8px 0 0;
}

.price-dropdown .price-option {
    display: flex;
    align-items: center;
    padding: 12px 16px;
    cursor: pointer;
    transition: background-color 0.15s ease;
    border-bottom: 1px solid #f9fafb;
}

    .price-dropdown .price-option:last-child {
        border-bottom: none;
    }

    .price-dropdown .price-option:hover {
        background-color: #f9fafb;
    }

    .price-dropdown .price-option.selected {
        background-color: #eff6ff;
    }

.price-dropdown .price-option-radio {
    margin-right: 12px;
    accent-color: #3b82f6;
}

.price-dropdown .price-option-details {
    flex: 1;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.price-dropdown .option-price {
    font-weight: 600;
    color: #1f2937;
    font-size: 0.9rem;
}

.price-dropdown .option-category {
    display: flex;
    align-items: center;
    gap: 6px;
}

    .price-dropdown .option-category .category-badge {
        font-size: 0.6rem;
        padding: 2px 6px;
        border-radius: 8px;
        font-weight: 500;
    }

/* Price Option Item Styles (Legacy - for backward compatibility) */
.price-option-item {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    border: 2px solid #e2e8f0;
    border-radius: 8px;
    background: #fff;
    cursor: pointer;
    transition: all 0.2s ease;
    min-width: 80px;
}

    .price-option-item:hover {
        border-color: #3b82f6;
        background: #f8fafc;
        transform: translateY(-1px);
        box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    }

    .price-option-item.selected-price {
        border-color: #3b82f6;
        background: #eff6ff;
        box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
    }

        .price-option-item.selected-price .price-category-badge {
            box-shadow: 0 1px 3px rgba(0,0,0,0.2);
        }

/* ---- Tripcart Sticky Header ---- */
.tc-sticky-top {
    position: sticky;
    top: 0;
    z-index: 10;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

/* ---- Tripcart Group Headers ---- */
.tc-group-header {
    padding: 6px 12px !important;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    border-left: none !important;
    border-right: none !important;
    user-select: none;
    display: flex;
    align-items: center;
}

.tc-header-blue {
    background: linear-gradient(90deg, #eff6ff 0%, #f8faff 100%) !important;
    color: #1d4ed8;
    border-bottom: 2px solid #bfdbfe !important;
}

.tc-header-purple {
    background: linear-gradient(90deg, #f5f3ff 0%, #faf8ff 100%) !important;
    color: #7c3aed;
    border-bottom: 2px solid #ddd6fe !important;
}

.tc-header-teal {
    background: linear-gradient(90deg, #f0fdfa 0%, #f7fffe 100%) !important;
    color: #0f766e;
    border-bottom: 2px solid #99f6e4 !important;
}

.tc-header-default {
    background: #f8fafc !important;
    color: #64748b;
    border-bottom: 1px solid #e2e8f0 !important;
}

/* ---- Tripcart Sub Headers (Multi-city Trip 1, Trip 2, etc.) ---- */
.tc-sub-header {
    padding: 4px 12px 4px 24px !important;
    font-size: 0.6rem;
    font-weight: 600;
    letter-spacing: 0.3px;
    text-transform: uppercase;
    color: #64748b;
    background: #f9fafb !important;
    border-left: 3px solid #99f6e4 !important;
    border-bottom: 1px solid #f1f5f9 !important;
    user-select: none;
}

/* ---- Tripcart Drag Handle (new style) ---- */
.tc-drag-handle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    min-width: 20px;
    height: 32px;
    cursor: grab;
    opacity: 0.25;
    transition: opacity 0.2s ease, transform 0.15s ease, background 0.15s ease;
    border-radius: 4px;
    margin-top: 1px;
    font-size: 1rem;
    color: #64748b;
}

    .tc-drag-handle:hover {
        opacity: 0.8;
        background: #f1f5f9;
        transform: scale(1.1);
    }

.tripcart-draggable:hover .tc-drag-handle {
    opacity: 0.6;
}

/* ---- Tripcart Draggable Items ---- */
.tripcart-draggable {
    transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease, opacity 0.2s ease;
    cursor: default;
    border-left: 3px solid transparent;
}

    .tripcart-draggable:hover {
        background-color: #f8fafc;
    }

    .tripcart-draggable .drag-handle {
        opacity: 0.3;
        transition: opacity 0.2s ease, transform 0.15s ease;
    }

    .tripcart-draggable:hover .drag-handle {
        opacity: 0.8;
        transform: scale(1.15);
    }

    .tripcart-draggable.dragging {
        opacity: 0.5;
        transform: scale(0.97);
        box-shadow: 0 4px 16px rgba(59,130,246,0.18);
        background: #eff6ff !important;
        border-left: 3px solid #3b82f6;
        z-index: 100;
    }

        .tripcart-draggable.dragging .tc-drag-handle {
            cursor: grabbing;
            opacity: 1;
        }

    .tripcart-draggable.drag-over-top {
        border-top: 3px solid #3b82f6 !important;
        padding-top: calc(0.5rem - 3px);
    }

    .tripcart-draggable.drag-over-bottom {
        border-bottom: 3px solid #3b82f6 !important;
        padding-bottom: calc(0.5rem - 3px);
    }

    .tripcart-draggable.drag-rejected {
        background: #fef2f2 !important;
        border-left: 3px solid #ef4444 !important;
        cursor: not-allowed;
        opacity: 0.6;
    }

/* ---- Tripcart Timeline (departure → arrival) ---- */
.tc-timeline {
    margin-top: 5px;
    padding: 4px 0 2px;
}

.tc-time-pair {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: wrap;
}

.tc-time {
    font-size: 0.78rem;
    color: #1e293b;
    font-variant-numeric: tabular-nums;
}

.tc-arrow {
    font-size: 0.55rem;
    color: #94a3b8;
}

.tc-date {
    font-size: 0.62rem;
    color: #64748b;
    background: #f1f5f9;
    padding: 1px 6px;
    border-radius: 3px;
    margin-left: 2px;
}

/* ---- Tripcart Metadata Pills ---- */
.tc-meta-pills {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-top: 3px;
    flex-wrap: wrap;
}

.tc-pill {
    display: inline-flex;
    align-items: center;
    padding: 1px 6px;
    border-radius: 3px;
    font-size: 0.6rem;
    font-weight: 600;
    white-space: nowrap;
}

.tc-pill-green {
    background: #f0fdf4;
    color: #15803d;
    border: 1px solid #bbf7d0;
}

.tc-pill-amber {
    background: #fffbeb;
    color: #b45309;
    border: 1px solid #fde68a;
}

.tc-pill-red {
    background: #fef2f2;
    color: #dc2626;
    border: 1px solid #fecaca;
}

.tc-pill-muted {
    background: #f8fafc;
    color: #64748b;
    border: 1px solid #e2e8f0;
}

.tc-pill-xs {
    font-size: 0.55rem;
    padding: 0px 5px;
}

/* ---- Tripcart Info Toggles (baggage/refundable) ---- */
.tc-info-toggles {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-top: 4px;
    flex-wrap: wrap;
}

/* ---- Tripcart Leg Cards (roundtrip onward/return) ---- */
.tc-leg-card {
    transition: box-shadow 0.15s ease;
}

    .tc-leg-card:hover {
        box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    }

/* ---- Tripcart Fare Breakdown row ---- */
.tc-fare-breakdown {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-top: 4px;
    flex-wrap: wrap;
    font-size: 0.62rem;
    color: #64748b;
}

    .tc-fare-breakdown span {
        background: #f8fafc;
        border: 1px solid #e2e8f0;
        border-radius: 3px;
        padding: 1px 5px;
    }

.tc-fare-sep {
    color: #94a3b8;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
}

/* ---- Tripcart Floating Action Button ---- */
#tripcartFab {
    position: fixed;
    bottom: var(--tripcart-fab-bottom, calc(16px + env(safe-area-inset-bottom, 0px)));
    right: 24px;
    width: 54px;
    height: 54px;
    border-radius: 50%;
    background: linear-gradient(135deg, #1d4ed8, #0d6efd);
    color: #fff;
    border: none;
    box-shadow: 0 4px 20px rgba(13, 110, 253, 0.45);
    cursor: pointer;
    z-index: 1091;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    transition: transform 0.15s ease, box-shadow 0.15s ease, bottom 0.2s ease;
}

    #tripcartFab .tripcart-btn-spinner {
        position: absolute;
    }

    #tripcartFab:hover {
        transform: translateY(-2px) scale(1.06);
        box-shadow: 0 8px 28px rgba(13, 110, 253, 0.55);
    }

    #tripcartFab #tripcartFabBadge {
        position: absolute;
        top: -4px;
        right: -4px;
        background: #ef4444;
        color: #fff;
        font-size: 0.58rem;
        font-weight: 700;
        min-width: 18px;
        height: 18px;
        border-radius: 9px;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 0 4px;
        border: 2px solid #fff;
        line-height: 1;
    }

    #tripcartFab:focus-visible,
    .mobile-filter-btn:focus-visible {
        outline: 3px solid rgba(59, 130, 246, 0.35);
        outline-offset: 3px;
    }

/* ==========================================
    MOBILE/TABLET RESPONSIVENESS (≤ 991px)
    ========================================== */

/* --- Mobile-only elements: hidden on desktop --- */
.mobile-filter-btn {
    display: none;
}

    .mobile-filter-btn.is-hidden {
        display: none !important;
    }

.mobile-filter-header {
    display: none;
}

.mobile-filter-close-fallback {
    display: none;
}

.mobile-filter-apply {
    display: none;
}

.mobile-filter-backdrop {
    display: none;
}

@media (max-width: 1199.98px) {

    /* ── Filter Sidebar → Fullscreen Overlay Drawer ── */
    .mobile-filter-btn {
        display: inline-flex !important;
        align-items: center;
        gap: 6px;
        position: fixed !important;
        bottom: var(--tripcart-fab-bottom, calc(16px + env(safe-area-inset-bottom, 0px))) !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        z-index: 1092 !important;
        background: #1e293b;
        color: #fff;
        border: none;
        border-radius: 50px;
        padding: 12px 24px;
        font-size: 0.85rem;
        font-weight: 600;
        box-shadow: 0 4px 20px rgba(0,0,0,0.25);
        cursor: pointer;
        transition: transform 0.2s ease, box-shadow 0.2s ease;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto;
        -webkit-transform: translateX(-50%);
    }

        .mobile-filter-btn:active {
            transform: translateX(-50%) scale(0.95);
        }

        .mobile-filter-btn .filter-count-badge {
            background: #3b82f6;
            color: #fff;
            border-radius: 50%;
            width: 20px;
            height: 20px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-size: 0.7rem;
            font-weight: 700;
        }

    .filter-sidebar-col {
        position: fixed !important;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
        z-index: 1050;
        background: #fff;
        transform: translateY(100%);
        transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        overflow-y: auto;
        box-shadow: none;
        border-right: none;
        padding: 0;
    }

        .filter-sidebar-col.mobile-open {
            transform: translateY(0);
        }

        .filter-sidebar-col:not(.mobile-open) {
            display: block !important; /* keep in DOM but off-screen */
            pointer-events: none;
        }

        .filter-sidebar-col.mobile-open {
            pointer-events: auto;
        }

    .filter-sidebar-content {
        position: static !important;
        height: auto !important;
        max-height: calc(100vh - 60px);
        overflow-y: auto;
        padding: 16px;
        padding-bottom: 80px;
    }

    /* Hide collapsed strip on mobile */
    .collapsed-filter-strip {
        display: none !important;
    }

    /* Mobile filter header (close button) */
    .mobile-filter-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 14px 16px;
        border-bottom: 1px solid #e2e8f0;
        background: #f8fafc;
        position: sticky;
        top: 0;
        z-index: 5;
    }

        .mobile-filter-header .filter-title {
            font-weight: 700;
            font-size: 1rem;
            color: #1e293b;
        }

    .mobile-filter-close {
        background: none;
        border: none;
        font-size: 1.4rem;
        color: #64748b;
        cursor: pointer;
        padding: 4px 8px;
        border-radius: 8px;
    }

        .mobile-filter-close:hover {
            background: #f1f5f9;
            color: #1e293b;
        }

    .filter-sidebar-header .mobile-filter-close-fallback {
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .filter-sidebar-header .btn-collapse-sidebar {
        display: none;
    }

    /* Apply filters button at bottom of drawer */
    .mobile-filter-apply {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        padding: 12px 16px;
        background: #fff;
        border-top: 1px solid #e2e8f0;
        z-index: 1051;
        display: none;
    }

    .filter-sidebar-col.mobile-open .mobile-filter-apply {
        display: block;
    }

    .mobile-filter-apply .btn {
        width: 100%;
        padding: 12px;
        font-weight: 600;
        border-radius: 12px;
    }

    /* Backdrop overlay */
    .mobile-filter-backdrop {
        display: none;
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0,0,0,0.4);
        z-index: 1049;
    }

        .mobile-filter-backdrop.show {
            display: block;
        }

    /* ── Search Results Row: Single Column ── */
    .search-results-row {
        flex-wrap: wrap !important;
    }

    /* ── Search Results Row: Single Column ── */
    .search-results-row {
        flex-wrap: wrap !important;
    }

    .results-main-col {
        padding-left: 0 !important;
        padding-right: 0;
        width: 100%;
    }

    /* Reduce horizontal pressure in timeline blocks on medium-small screens */
    .mmt-timeline-container {
        margin: 0 14px !important;
    }

    .mmt-time-block {
        min-width: 74px !important;
    }

    #tripcartFab {
        bottom: var(--tripcart-fab-bottom, calc(16px + env(safe-area-inset-bottom, 0px))) !important;
        right: 16px !important;
        width: 48px;
        height: 48px;
        font-size: 1.1rem;
    }

    /* ── Airline logos: enforce uniform size on mobile ── */
    .mmt-airline-logo {
        width: 32px !important;
        height: 32px !important;
        min-width: 32px !important;
        min-height: 32px !important;
        flex-shrink: 0 !important;
        background: #f5f7ff !important;
        border: 1px solid #e2e8f0 !important;
        border-radius: 6px !important;
        padding: 3px !important;
        object-fit: contain !important;
    }

    /* ── Flight Card: Stacked Layout ── */
    .result-card .p-4 {
        padding: 12px !important;
    }

    /* Trip summary: stack vertically */
    .trip-summary-row {
        flex-direction: column !important;
        gap: 4px !important;
    }

        .trip-summary-row .text-center {
            order: -1;
        }

    /* Card footer: stack on mobile */
    .mmt-footer {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 8px !important;
        padding: 10px 12px !important;
    }

        .mmt-footer .left-group {
            justify-content: space-between;
            width: 100%;
        }

        .mmt-footer.oneway-footer .left-group {
            flex-wrap: wrap;
            gap: 0.5rem;
        }

        .mmt-footer .right-group {
            justify-content: space-between;
            width: 100%;
            flex-wrap: wrap;
            gap: 8px !important;
        }

        .mmt-footer.oneway-footer .price-display.split-price-display {
            justify-content: flex-start;
        }

        .mmt-footer.oneway-footer .mmt-time {
            font-size: 0.85rem;
            font-weight: 400;
        }

    .result-card.oneway-card .mmt-time {
        font-size: 0.9rem;
        font-weight: 700;
        color: #1f2937;
        line-height: 1.1;
    }

    .result-card.oneway-card .mmt-duration {
        font-size: 0.7rem;
        font-weight: 400;
        color: #111827;
    }

    .mmt-footer.oneway-footer .price-amount {
        font-size: 1.2rem;
    }

    .mmt-footer.oneway-footer .book-now-btn {
        padding: 0.45rem 0.85rem;
        font-size: 0.7rem;
    }

    .mmt-footer .price-container {
        align-items: flex-start !important;
        width: auto;
    }

    .mmt-footer .price-amount {
        font-size: 1.2rem !important;
    }

    .mmt-footer .book-now-btn {
        padding: 8px 16px !important;
        font-size: 0.8rem !important;
        min-width: auto !important;
    }

    /* Price dropdown: full width bottom-sheet on mobile */
    .price-dropdown {
        left: 0 !important;
        right: 0 !important;
        min-width: auto !important;
        max-width: 100vw !important;
        width: calc(100vw - 24px) !important;
        position: fixed !important;
        bottom: 0 !important;
        top: auto !important;
        border-radius: 16px 16px 0 0 !important;
        max-height: 60vh !important;
        overflow-y: auto !important;
        box-shadow: 0 -4px 20px rgba(0,0,0,0.15) !important;
        background: #fff !important;
        z-index: 1029 !important;
        border: 1px solid #e2e8f0 !important;
    }

        .price-dropdown .dropdown-header {
            background: #f8fafc !important;
        }

        .price-dropdown .price-option {
            background: #fff !important;
        }

    .mmt-footer .price-option {
        white-space: normal !important;
        padding: 12px !important;
    }

    /* ── Flight Details Tabs: Scrollable on Mobile ── */
    .details-tabs-nav {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        white-space: nowrap;
        scrollbar-width: none;
        -ms-overflow-style: none;
        padding-bottom: 2px;
    }

        .details-tabs-nav::-webkit-scrollbar {
            display: none;
        }

    .details-tab-btn {
        flex-shrink: 0;
        font-size: 0.72rem !important;
        padding: 7px 10px !important;
    }

    .details-tab-content {
        padding: 10px !important;
    }

    .leg-group-title {
        font-size: 0.78rem;
        margin-bottom: 8px;
    }

    .leg-time-col {
        width: 40px;
        min-width: 40px;
        flex-basis: 40px;
    }

    .leg-route-head {
        font-size: 0.86rem;
    }

    .leg-meta-line,
    .leg-duration-line {
        font-size: 0.72rem;
    }

    .leg-meta-chip {
        font-size: 0.62rem;
        padding: 0.18rem 0.32rem;
    }

    .leg-layover-row {
        font-size: 0.7rem;
        margin-bottom: 10px;
    }

    .multicity-trip-separator-row {
        font-size: 0.68rem;
        gap: 6px;
        padding: 6px 8px;
        margin-bottom: 10px;
    }

    .multicity-trip-separator-meta {
        font-size: 0.66rem;
    }

    /* ── Compare Tab: Mobile Stacked Card Layout ── */
    .compare-grid {
        display: block !important;
        overflow: visible !important;
        border: none !important;
        background: transparent !important;
        margin: 4px 0 !important;
    }

    /* Hide sidebar — labels shown inline in each card row */
    .compare-sidebar {
        display: none !important;
    }

    /* Scroll area becomes a vertical stack */
    .compare-cards-scroll {
        overflow: visible !important;
        width: 100% !important;
    }

    .compare-cards-inner {
        flex-direction: column !important;
        min-width: unset !important;
        gap: 10px;
    }

    /* Each card is a full-width bordered block */
    .compare-card {
        min-width: 100% !important;
        max-width: 100% !important;
        flex: none !important;
        border: 1px solid #e5e7eb !important;
        border-radius: 8px !important;
        overflow: hidden;
    }

    .compare-card-header {
        padding: 10px 12px !important;
        height: auto !important;
    }

    /* Each row becomes a 2-column layout: label | content */
    .compare-card-row {
        display: flex !important;
        flex-direction: row !important;
        align-items: stretch !important;
        height: auto !important;
        min-height: unset !important;
        padding: 0 !important;
        font-size: 0.78rem !important;
        border-bottom: 1px solid #f0f0f0 !important;
        text-align: left !important;
    }

        .compare-card-row.tall-row {
            height: auto !important;
            min-height: unset !important;
        }

        /* Label cell rendered via ::before using data-label */
        .compare-card-row[data-label]::before {
            content: attr(data-label);
            display: flex;
            align-items: center;
            flex: 0 0 90px;
            padding: 8px 8px 8px 10px;
            font-size: 0.68rem;
            font-weight: 700;
            color: #6b7280;
            text-transform: uppercase;
            letter-spacing: 0.03em;
            background: #f9fafb;
            border-right: 1px solid #e5e7eb;
            line-height: 1.25;
            word-break: break-word;
        }

        /* Content cell fills remaining space */
        .compare-card-row > .compare-fare,
        .compare-card-row > .baggage-split,
        .compare-card-row > .compare-cell-loading,
        .compare-card-row > .compare-cell-content,
        .compare-async-cell > .compare-cell-loading,
        .compare-async-cell > .compare-cell-content {
            flex: 1 !important;
            padding: 8px 10px !important;
            text-align: left !important;
            align-self: center;
        }

            .compare-card-row > .compare-fare,
            .compare-card-row > .baggage-split,
            .compare-async-cell > .compare-cell-loading:not(.d-none),
            .compare-async-cell > .compare-cell-content:not(.d-none) {
                display: block;
            }

        /* Baggage split: show as stacked on mobile */
        .compare-card-row .baggage-split {
            flex-direction: column !important;
            gap: 4px !important;
        }

        .compare-card-row .baggage-col {
            display: flex;
            align-items: baseline;
            gap: 4px;
        }

            .compare-card-row .baggage-col:first-child {
                border-right: none !important;
                border-bottom: 1px solid #f0f0f0;
                padding-bottom: 4px;
                margin-bottom: 0;
            }

        .compare-card-row .baggage-label {
            font-size: 0.64rem;
            color: #9ca3af;
            min-width: 60px;
        }

        .compare-card-row .baggage-value {
            font-size: 0.78rem;
        }

    .compare-async-cell {
        position: relative;
    }

        .compare-async-cell .compare-cell-content {
            font-size: 0.72rem !important;
            line-height: 1.35 !important;
            overflow-wrap: anywhere;
            word-break: break-word;
            text-align: left !important;
            width: auto !important;
        }

            .compare-async-cell .compare-cell-content .see-more-link,
            .compare-async-cell .compare-cell-content .see-less-link {
                font-size: 0.68rem !important;
            }

    .fare-rules-grid {
        padding: 6px;
    }

    .fare-rule-card {
        padding: 10px 10px;
    }

    .fare-rule-title {
        font-size: 0.92rem;
        margin-bottom: 6px;
    }

    .fare-rule-text {
        font-size: 0.74rem;
        margin-bottom: 6px;
    }

    .fare-rule-fee {
        font-size: 1rem;
    }

    .fare-rule-fee-muted {
        font-size: 0.72rem;
    }

    .baggage-rules-body {
        padding: 8px 8px;
    }

    .baggage-section-title {
        font-size: 0.74rem;
        margin-bottom: 6px;
    }

    .baggage-rule-table {
        font-size: 0.72rem;
    }

        .baggage-rule-table th,
        .baggage-rule-table td {
            padding: 0.28rem 0.32rem;
        }

    /* ── Multi-city: Compact Headers ── */
    .mc-trip-header h5 {
        font-size: 1rem !important;
    }

    .multicity-nav-bar {
        padding: 8px 0 !important;
    }

        .multicity-nav-bar .container {
            align-items: stretch !important;
        }

    .mc-nav-actions {
        width: 100%;
        justify-content: space-between;
        flex-wrap: wrap;
    }

    .multicity-nav-bar .btn {
        font-size: 0.7rem !important;
        padding: 4px 12px !important;
    }

    /* ── Roundtrip Split View: Stack ── */
    .split-view-card {
        margin-bottom: 8px !important;
    }

    /* ── Tripcart Picker: Larger Touch Target ── */
    .tripcart-picker-icon {
        top: 10px !important;
        right: 10px !important;
    }

        .tripcart-picker-icon .fs-4 {
            font-size: 1.5rem !important;
        }

    /* ── Tripcart Panel: Mobile tweaks ── */
    .tripcart-offcanvas {
        width: 100% !important;
    }

    .tc-drag-handle {
        width: 24px;
        min-width: 24px;
        height: 36px;
    }

    .tc-time {
        font-size: 0.82rem;
    }

    .tc-pill {
        font-size: 0.58rem;
    }

    .tc-pill-xs {
        font-size: 0.52rem;
    }

    /* ── See More/Less links: Larger touch target ── */
    .see-more-link, .see-less-link {
        padding: 4px 0 !important;
        display: inline-block;
    }
}

/* ==========================================
   TABLET REFINEMENTS (768px - 991px)
   ========================================== */
@media (min-width: 768px) and (max-width: 991.98px) {
    .mmt-footer .price-amount {
        font-size: 1.25rem !important;
    }

    .compare-card {
        min-width: 180px !important;
    }

    .results-summary-bar .results-info-pill {
        font-size: 0.75rem;
    }
}

@media (min-width: 768px) and (max-width: 1199.98px) {
    #splitViewRow.rt-domestic-layout .roundtrip-sticky-summary__inner {
        min-height: auto;
        flex-wrap: wrap;
        align-items: center;
        gap: 8px 12px;
    }

    #splitViewRow.rt-domestic-layout .rt-domestic-summary-left {
        flex: 1 1 100%;
    }

    #splitViewRow.rt-domestic-layout .roundtrip-sticky-summary__actions {
        width: 100%;
        margin-left: 0;
        justify-content: space-between;
        flex-wrap: nowrap;
    }

    #splitViewRow.rt-domestic-layout .results-split-header > .d-flex {
        flex-wrap: wrap;
        row-gap: 8px;
    }

        #splitViewRow.rt-domestic-layout .results-split-header > .d-flex > .d-flex.align-items-center {
            min-width: 0;
            flex: 1 1 auto;
        }

    #splitViewRow.rt-domestic-layout .split-col-sort {
        flex: 0 0 132px;
        max-width: 132px;
    }

    #splitViewRow.rt-domestic-layout .trip-summary-row {
        flex-wrap: nowrap;
        justify-content: space-between;
        gap: 8px;
        align-items: center !important;
    }

    #splitViewRow.rt-domestic-layout .mmt-flight-header {
        min-width: 104px;
        flex: 0 0 clamp(104px, 24%, 132px);
    }

        #splitViewRow.rt-domestic-layout .mmt-flight-header .mmt-airline-info {
            min-width: 0;
        }

        #splitViewRow.rt-domestic-layout .mmt-flight-header .mmt-airline-name {
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

    #splitViewRow.rt-domestic-layout .mmt-timeline-container {
        flex: 1 1 0 !important;
        width: 100% !important;
        margin: 0 0 0 6px !important;
        padding: 0 2px !important;
        min-width: 0;
    }

        #splitViewRow.rt-domestic-layout .mmt-timeline-container.d-none.d-md-flex {
            display: flex !important;
        }

    #splitViewRow.rt-domestic-layout .mmt-time-block {
        min-width: 52px !important;
    }

    #splitViewRow.rt-domestic-layout .mmt-time {
        font-size: 1.05rem;
    }

    #splitViewRow.rt-domestic-layout .mmt-city {
        max-width: 72px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    #splitViewRow.rt-domestic-layout .mmt-duration-block {
        min-width: 0;
        flex: 1 1 auto;
        padding: 0 4px !important;
    }
}

/* ── Tripcart offcanvas: start below the sticky site header ── */
#tripcartOffcanvas {
    top: var(--site-header-height, 68px) !important;
    height: calc(100dvh - var(--site-header-height, 68px)) !important;
}

@media (min-width: 992px) {
    body.tripcart-panel-open .site-main {
        padding-right: 540px;
        transition: padding-right 0.25s ease;
    }

    body.tripcart-panel-open .tripcart-picker-icon {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
    }
}

/* ── Lazy-deferred flight cards: hidden until scroll-reveal ── */
.lazy-deferred {
    display: none !important;
}

/* ── Lazy load sentinel & message ── */
.lazy-load-sentinel {
    padding: 14px 0 18px;
    text-align: center;
    color: #475569;
    font-size: 0.8rem;
    font-weight: 600;
    display: none;
}

    .lazy-load-sentinel.active {
        display: block;
    }

    .lazy-load-sentinel .spinner-border {
        width: 1rem;
        height: 1rem;
        border-width: 2px;
        vertical-align: middle;
    }

/* ── Override Bootstrap mb-4 on result cards to tighten gap ── */
.result-card.mb-4 {
    margin-bottom: 4px !important;
}

.result-card.mb-2 {
    margin-bottom: 3px !important;
}

/* ==========================================
   FILTER SIDEBAR TYPOGRAPHY
   ========================================== */

.filter-route-label {
    font-size: 0.7rem;
    font-weight: 700;
    color: #111827;
    margin-left: 4px;
    letter-spacing: 0.3px;
    display: inline-flex;
    align-items: center;
    line-height: 1;
    vertical-align: middle;
    position: relative;
    top: 1px;
}

.trip-section-title .filter-route-label {
    font-size: 0.65rem;
    font-weight: 600;
}

.filter-count {
    color: #64748b;
    font-size: 0.66rem;
    font-weight: 700;
}

.filter-time-range-note {
    font-size: 0.66rem;
}

@media (max-width: 575.98px) {
    .filter-time-range-note {
        font-size: 0.72rem;
    }
}

/* ==========================================
   BOOK PAGE RESPONSIVE ERROR STATE
   ========================================== */

.booking-page-shell {
    min-height: 80vh;
}

.booking-error-shell {
    max-width: min(560px, 94vw);
    margin: clamp(20px, 8vh, 60px) auto 0;
}

.booking-error-card {
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    border: 1px solid #fecaca;
}

.booking-error-header {
    background: linear-gradient(135deg, #fef2f2 0%, #fff1f2 100%);
    padding: 32px 32px 24px;
    text-align: center;
}

.booking-error-icon-wrap {
    width: clamp(52px, 18vw, 72px);
    height: clamp(52px, 18vw, 72px);
    border-radius: 50%;
    background: #fee2e2;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 16px;
}

.booking-error-icon {
    font-size: clamp(1.4rem, 4.8vw, 2rem);
    color: #ef4444;
    transform: rotate(45deg);
}

.booking-error-title {
    font-weight: 800;
    color: #991b1b;
    margin: 0 0 6px;
    font-size: 1.15rem;
}

.booking-error-message {
    color: #b91c1c;
    font-size: 0.92rem;
    margin: 0;
    line-height: 1.5;
}

.booking-error-details {
    padding: 12px 32px;
    background: #fef2f2;
    border-top: 1px dashed #fecaca;
}

.booking-error-details-text {
    font-size: 0.75rem;
    color: #9ca3af;
    margin: 0;
    text-align: center;
}

.booking-error-actions {
    padding: 20px 32px;
    display: flex;
    gap: 12px;
    justify-content: center;
    background: #fff;
    flex-wrap: wrap;
}

.booking-error-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 24px;
    border-radius: 10px;
    font-size: 0.88rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    transition: all 0.15s ease;
    min-height: 44px;
}

.booking-error-btn-secondary {
    border: 1.5px solid #e2e8f0;
    background: #fff;
    color: #475569;
}

.booking-error-btn-primary {
    border: none;
    background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
    color: #fff;
    box-shadow: 0 2px 8px rgba(239, 68, 68, 0.3);
}

@media (max-width: 575.98px) {
    .booking-page-shell {
        min-height: auto;
    }

    .booking-error-header,
    .booking-error-actions,
    .booking-error-details {
        padding-left: 16px;
        padding-right: 16px;
    }

    .booking-error-btn {
        width: 100%;
        justify-content: center;
    }
}

/* ==========================================
   BOOKING SUCCESS PAGE (moved from inline)
   ========================================== */

.bs-action-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: clamp(12px, 4vw, 16px) clamp(16px, 5vw, 20px);
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.2s;
}

    .bs-action-card:hover {
        box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
        border-color: #bfdbfe;
    }

.bs-action-icon {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
}

.bs-ticket-header {
    background: linear-gradient(135deg, #0d6efd 0%, #0a58ca 100%);
}

.bs-route-banner {
    padding: clamp(12px, 3vw, 16px) clamp(16px, 5vw, 20px);
    background: #f8fafc;
    border-left: 4px solid #0d6efd;
    border-radius: 0 8px 8px 0;
}

.bs-segment-card {
    padding: 20px;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.bs-duration-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-top: 24px;
}

.bs-duration-line {
    display: flex;
    align-items: center;
    width: 100%;
    gap: 0;
}

.bs-dot-start,
.bs-dot-end {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}

.bs-dot-start {
    background: #22c55e;
}

.bs-dot-end {
    background: #ef4444;
}

.bs-line {
    flex: 1;
    height: 2px;
    background: linear-gradient(to right, #22c55e, #cbd5e1, #ef4444);
}

.bs-layover-badge {
    text-align: center;
    padding: 10px 16px;
    font-size: 0.82rem;
    font-weight: 600;
    color: #92400e;
    background: #fef3c7;
    border: 1px dashed #f59e0b;
    border-radius: 8px;
}

.bs-policy-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 12px;
}

.bs-policy-card {
    display: flex;
    gap: 12px;
    padding: 14px;
    background: #f8fafc;
    border-radius: 10px;
    border: 1px solid #f1f5f9;
}

.bs-policy-icon {
    font-size: 1.3rem;
    flex-shrink: 0;
    margin-top: 2px;
}

@media (max-width: 767.98px) {
    .bs-duration-col {
        padding-top: 8px;
        padding-bottom: 8px;
    }
}

@media print {
    .navbar,
    .footer,
    .d-print-none,
    header,
    footer {
        display: none !important;
    }

    body {
        background-color: white !important;
    }

    .container {
        width: 100% !important;
        max-width: none !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    .card {
        box-shadow: none !important;
        border: 1px solid #dee2e6 !important;
        margin: 0 !important;
        border-radius: 0 !important;
    }

    .bs-ticket-header {
        background: #0d6efd !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .bg-light,
    .bs-segment-card,
    .bs-route-banner,
    .bs-policy-card,
    .bs-layover-badge {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .bs-action-card {
        display: none !important;
    }

    .text-success {
        color: #198754 !important;
    }

    .text-primary {
        color: #0d6efd !important;
    }
}

/* ==========================================
   MOBILE INTERACTION FIXES
   ========================================== */

@media (max-width: 767.98px) {
    .site-main {
        min-height: auto;
    }

    .multicity-nav-bar .container {
        flex-direction: column;
        align-items: stretch !important;
        gap: 0.5rem !important;
    }

    #mc-trip-nav-links {
        width: 100%;
        flex-wrap: nowrap !important;
        overflow-x: auto;
        padding-bottom: 2px;
        scrollbar-width: none;
    }

        #mc-trip-nav-links::-webkit-scrollbar {
            display: none;
        }

        #mc-trip-nav-links .btn {
            flex: 0 0 auto;
        }

    #mc-selection-status {
        font-size: 0.78rem;
        text-align: center;
        width: 100%;
        justify-content: center;
        white-space: normal;
    }

    #mc-running-total,
    .mc-nav-actions,
    .multicity-nav-bar #multiCityForm,
    .multicity-nav-bar #mcBookBtn {
        width: 100%;
    }

    .mc-nav-actions {
        flex-direction: column;
        align-items: stretch !important;
    }

    #mc-running-total {
        text-align: center;
    }

    .multicity-nav-bar #mcBookBtn {
        min-width: 0;
    }

    .mc-bundled-nav-overview {
        flex: 0 0 auto;
    }

    .mc-info-popover-text {
        left: auto;
        right: 0;
        transform: none;
        width: min(280px, calc(100vw - 32px));
    }

        .mc-info-popover-text::before {
            left: auto;
            right: 10px;
            transform: rotate(45deg);
        }

    .pax-dropdown-menu.show {
        position: fixed !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        top: auto !important;
        transform: none !important;
        width: 100% !important;
        max-height: min(84vh, 720px) !important;
        border-radius: 16px 16px 0 0 !important;
        z-index: 1091 !important;
    }

    .pax-menu-body {
        max-height: calc(84vh - 126px);
        overflow-y: auto;
    }

    .pax-btn {
        width: 44px;
        height: 44px;
        font-size: 1.2rem;
    }

    .pax-close-btn {
        width: 36px;
        height: 36px;
    }
}

@media (max-width: 1199.98px) and (orientation: landscape) {
    .mobile-filter-btn {
        left: calc(50% - 10px) !important;
        transform: translateX(-100%) !important;
    }

    #tripcartFab {
        left: calc(50% + 10px) !important;
        right: auto !important;
    }
}
