/*
 * Shared B2C responsive foundation.
 * This file intentionally loads last so page-specific desktop rules can keep
 * their current behaviour while compact screens get one consistent system.
 */

html {
    max-width: 100%;
    overflow-x: clip;
}

body {
    max-width: 100%;
    overflow-x: clip;
}

@media (max-width: 767.98px) {
    .flight-results-page:not(.b2b-flight-results-page) .flight-filter-backdrop {
        position: fixed;
        z-index: 1090;
        inset: 0;
        display: block;
        width: 100%;
        height: 100%;
        padding: 0;
        visibility: hidden;
        border: 0;
        background: rgba(7, 20, 41, .64);
        opacity: 0;
        pointer-events: none;
        transition: opacity .22s ease, visibility .22s ease;
        backdrop-filter: blur(2px);
        -webkit-backdrop-filter: blur(2px);
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-filter-backdrop.is-mobile-mounted {
        visibility: visible;
        pointer-events: auto;
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-filter-backdrop.is-mobile-open {
        opacity: 1;
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-filter-sidebar.is-mobile-mounted {
        position: fixed;
        z-index: 1095;
        top: auto;
        right: 0;
        bottom: 0;
        left: 0;
        display: flex !important;
        width: 100%;
        max-width: none;
        height: min(86vh, 720px);
        height: min(86dvh, 720px);
        max-height: calc(100vh - 58px);
        max-height: calc(100dvh - max(58px, env(safe-area-inset-top)));
        padding: 0;
        overflow: hidden;
        visibility: visible;
        flex-direction: column;
        border: 0;
        border-radius: 26px 26px 0 0;
        background: #fff;
        box-shadow: 0 -18px 54px rgba(7, 20, 41, .26);
        opacity: 1;
        transform: translateY(102%);
        transition: transform .22s cubic-bezier(.22, .9, .32, 1);
        overscroll-behavior: contain;
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-filter-sidebar.is-mobile-mounted.is-mobile-open {
        transform: translateY(0);
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-filter-sidebar.is-mobile-mounted::before {
        position: absolute;
        z-index: 5;
        top: 8px;
        left: 50%;
        width: 38px;
        height: 4px;
        content: "";
        border-radius: 999px;
        background: #c7d2e2;
        transform: translateX(-50%);
        pointer-events: none;
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-filter-sidebar .filter-sidebar-head {
        position: relative;
        flex: 0 0 auto;
        min-height: 78px;
        padding: 1.2rem 1rem .72rem;
        border-bottom-color: #e8edf4;
        background: rgba(255, 255, 255, .98);
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-filter-sidebar .filter-sidebar-head span {
        font-size: .66rem;
        letter-spacing: .09em;
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-filter-sidebar .filter-sidebar-head strong {
        font-size: 1.05rem;
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-filter-sidebar .filter-sidebar-head .mobile-filter-close {
        display: grid;
        width: 44px;
        height: 44px;
        min-height: 44px;
        padding: 0;
        place-items: center;
        border: 1px solid #e2e8f1;
        border-radius: 50%;
        background: #f7f9fc;
        font-size: .9rem;
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-filter-sidebar .sidebar-filter-section {
        padding: .85rem 1rem;
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-filter-sidebar .filter-choice-list label,
    .flight-results-page:not(.b2b-flight-results-page) .flight-filter-sidebar .preference-filter-list label {
        min-height: 44px;
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-filter-sidebar .departure-filter-grid label {
        min-height: 50px;
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-filter-sheet-scroll {
        display: block;
        min-height: 0;
        overflow-x: hidden;
        overflow-y: auto;
        flex: 1 1 auto;
        overscroll-behavior: contain;
        scrollbar-color: #c4d3e5 transparent;
        scrollbar-width: thin;
        -webkit-overflow-scrolling: touch;
    }

    .flight-results-page:not(.b2b-flight-results-page) .mobile-filter-sheet-actions {
        position: relative;
        z-index: 4;
        display: block;
        flex: 0 0 auto;
        padding: .7rem 1rem calc(.7rem + env(safe-area-inset-bottom));
        border-top: 1px solid #e5ebf3;
        background: rgba(255, 255, 255, .98);
        box-shadow: 0 -9px 24px rgba(24, 51, 91, .08);
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
    }

    .flight-results-page:not(.b2b-flight-results-page) .mobile-filter-sheet-actions > button {
        display: flex;
        width: 100%;
        min-height: 52px;
        padding: .72rem 1rem;
        align-items: center;
        justify-content: center;
        gap: .55rem;
        color: #fff;
        border: 0;
        border-radius: 13px;
        background: linear-gradient(135deg, #2161e8, #164ed0);
        box-shadow: 0 10px 24px rgba(25, 85, 216, .24);
        font-size: .86rem;
        font-weight: 750;
    }

    .flight-results-page:not(.b2b-flight-results-page) .mobile-filter-sheet-actions strong {
        color: inherit;
    }

    .flight-results-page:not(.b2b-flight-results-page) .mobile-filter-sheet-actions b {
        color: inherit;
        font-weight: inherit;
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-filter-sidebar .mobile-filter-close:focus-visible,
    .flight-results-page:not(.b2b-flight-results-page) .mobile-filter-sheet-actions > button:focus-visible {
        outline: 3px solid rgba(33, 97, 232, .28);
        outline-offset: 2px;
    }
}

html.mobile-menu-open,
body.mobile-menu-open {
    overflow: hidden;
    overscroll-behavior: none;
}

img,
svg,
video,
canvas {
    max-width: 100%;
}

.table-responsive,
[class*="table-wrap"],
[class*="table-scroll"] {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
}

.modal-dialog {
    max-width: min(var(--bs-modal-width, 500px), calc(100vw - 24px));
    margin-right: auto;
    margin-left: auto;
}

@media (max-width: 991.98px) {
    .site-header {
        backdrop-filter: none;
    }

    .main-navbar {
        min-height: 68px;
        padding: 0;
    }

    .header-brand {
        width: 190px;
        height: 60px;
        flex-basis: 190px;
    }

    .main-navbar .navbar-toggler {
        display: grid;
        width: 44px;
        height: 44px;
        padding: 0;
        place-items: center;
        border: 1px solid #d8e3f0 !important;
        border-radius: 50%;
        background: linear-gradient(145deg, #f7faff, #edf4ff);
        box-shadow: 0 5px 14px rgba(20, 48, 89, .09);
        transition: color .2s ease, border-color .2s ease, background .2s ease, box-shadow .2s ease;
    }

    .main-navbar .navbar-toggler > i {
        display: grid;
        width: 30px;
        height: 30px;
        place-items: center;
        color: #315786;
        border-radius: 50%;
        background: #fff;
        font-size: 1.08rem;
        line-height: 1;
    }

    .main-navbar .navbar-toggler[aria-expanded="true"] {
        color: #fff;
        border-color: var(--brand-blue) !important;
        background: var(--brand-blue);
        box-shadow: 0 7px 18px rgba(21, 94, 239, .25);
    }

    .main-navbar .navbar-toggler[aria-expanded="true"] > i {
        color: var(--brand-blue);
    }

    .main-navbar .navbar-collapse {
        position: fixed;
        z-index: 1082;
        top: 0;
        right: auto;
        bottom: 0;
        left: 0;
        display: flex !important;
        width: min(88vw, 380px);
        max-height: none;
        margin: 0;
        padding: 0;
        overflow-y: auto;
        flex-direction: column;
        align-items: stretch;
        visibility: hidden;
        border: 0;
        background: #fff;
        box-shadow: 22px 0 60px rgba(7, 24, 55, .22);
        overscroll-behavior: contain;
        transform: translate3d(-104%, 0, 0);
        transition: transform .3s cubic-bezier(.22, .8, .24, 1), visibility .3s;
        will-change: transform;
        -webkit-overflow-scrolling: touch;
    }

    .main-navbar .navbar-collapse.is-open {
        visibility: visible;
        transform: translate3d(0, 0, 0);
    }

    .mobile-nav-drawer-header {
        position: sticky;
        z-index: 2;
        top: 0;
        display: flex;
        min-height: 82px;
        padding: 16px 18px;
        flex: 0 0 auto;
        align-items: center;
        justify-content: space-between;
        gap: 16px;
        border-bottom: 1px solid #e7edf6;
        background: rgba(255, 255, 255, .97);
        backdrop-filter: blur(14px);
    }

    .mobile-nav-drawer-header > div {
        display: flex;
        min-width: 0;
        flex-direction: column;
    }

    .mobile-nav-drawer-header span {
        color: var(--brand-blue);
        font-size: .62rem;
        font-weight: 700;
        letter-spacing: .11em;
        text-transform: uppercase;
    }

    .mobile-nav-drawer-header strong {
        overflow: hidden;
        margin-top: 3px;
        color: #10264b;
        font-size: 1.05rem;
        font-weight: 700;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .mobile-nav-drawer-header button {
        display: grid;
        width: 44px;
        height: 44px;
        padding: 0;
        flex: 0 0 44px;
        place-items: center;
        color: #324763;
        border: 1px solid #dce5f0;
        border-radius: 50%;
        background: #f7faff;
        font-size: 1rem;
    }

    .main-navbar .navbar-nav {
        width: 100%;
        margin: 0 !important;
        padding: 14px 14px 8px;
        flex: 0 0 auto;
        gap: 4px;
    }

    .main-navbar .nav-link {
        min-height: 60px;
        padding: .55rem .65rem !important;
        gap: .78rem;
        border-radius: 14px;
        font-size: .9rem;
    }

    .main-navbar .nav-link .nav-service-icon {
        display: grid;
        width: 40px;
        height: 40px;
        flex: 0 0 40px;
        place-items: center;
        color: #406086;
        border-radius: 12px;
        background: #f0f5fb;
        font-size: 1rem;
    }

    .main-navbar .nav-link:hover,
    .main-navbar .nav-link.active {
        background: #eef5ff;
    }

    .main-navbar .nav-link.active::after {
        display: none;
    }

    .main-navbar .nav-link.active .nav-service-icon {
        color: #fff;
        background: var(--brand-blue);
        box-shadow: 0 7px 16px rgba(21, 94, 239, .2);
    }

    .mobile-nav-account {
        margin-top: auto;
        padding: 14px 16px;
        flex: 0 0 auto;
        border-top: 1px solid #edf1f6;
        background: #fbfdff;
    }

    .mobile-nav-account .btn {
        display: inline-flex;
        min-height: 46px;
        align-items: center;
        justify-content: center;
        border-radius: 12px;
        font-size: .76rem;
        font-weight: 700;
    }

    .mobile-nav-quick-links {
        display: grid;
        padding: 2px 16px max(18px, env(safe-area-inset-bottom));
        grid-template-columns: repeat(2, minmax(0, 1fr));
        flex: 0 0 auto;
        gap: 8px;
        background: #fbfdff;
    }

    .mobile-nav-quick-links > a {
        display: flex;
        min-width: 0;
        min-height: 60px;
        padding: 10px;
        align-items: center;
        gap: 9px;
        color: #18345f;
        border: 1px solid #dfe8f3;
        border-radius: 13px;
        background: #fff;
        text-decoration: none;
    }

    .mobile-nav-quick-links > a.is-wide {
        grid-column: 1 / -1;
    }

    .mobile-nav-quick-links > a > i {
        display: grid;
        width: 34px;
        height: 34px;
        flex: 0 0 34px;
        place-items: center;
        color: var(--brand-blue);
        border-radius: 10px;
        background: #edf4ff;
    }

    .mobile-nav-quick-links > a > span {
        display: flex;
        min-width: 0;
        flex-direction: column;
    }

    .mobile-nav-quick-links strong {
        font-size: .78rem;
    }

    .mobile-nav-quick-links small {
        overflow: hidden;
        margin-top: 2px;
        color: #70809a;
        font-size: .72rem;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .mobile-nav-backdrop {
        position: fixed;
        z-index: 1081;
        inset: 0;
        display: block;
        width: 100%;
        height: 100%;
        padding: 0;
        visibility: hidden;
        opacity: 0;
        border: 0;
        background: rgba(4, 14, 34, .58);
        backdrop-filter: blur(2px);
        pointer-events: none;
        transition: opacity .25s ease, visibility .25s;
    }

    .mobile-nav-backdrop.is-visible {
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
    }

    /* Keep the homepage search readable when the app-style header is active. */
    .homepage-v2 .booking-tab {
        font-size: .78rem;
        font-weight: 600;
    }

    .homepage-v2 .trip-option {
        font-size: .75rem;
        font-weight: 600;
    }

    .homepage-v2 .booking-field > span {
        font-size: .68rem;
        font-weight: 600;
        line-height: 1.2;
    }

    .homepage-v2 .booking-field input,
    .homepage-v2 .booking-field select,
    .homepage-v2 .booking-control strong,
    .homepage-v2 .airport-input {
        font-size: .875rem;
        font-weight: 600;
        line-height: 1.25;
    }

    .homepage-v2 .special-fare-label,
    .homepage-v2 .special-fare-option span,
    .homepage-v2 .special-fare-option input:checked + span {
        font-size: .66rem;
        font-weight: 600;
    }

    .homepage-v2 .search-button,
    .homepage-v2 .hotel-search-button,
    .homepage-v2 .bus-search-button {
        font-size: .84rem;
        font-weight: 700;
    }
}

@media (max-width: 991.98px) and (prefers-reduced-motion: reduce) {
    .main-navbar .navbar-collapse,
    .mobile-nav-backdrop {
        transition-duration: .01ms;
    }
}

@media (max-width: 767.98px) {
    :root {
        --mobile-page-gutter: 14px;
    }

    .site-header .container,
    .site-footer .container,
    .homepage-v2 .travel-hero > .container,
    .homepage-v2 .booking-stage > .container,
    main > .container,
    main > section > .container {
        padding-right: var(--mobile-page-gutter);
        padding-left: var(--mobile-page-gutter);
    }

    /* Compact mobile footer while keeping links and actions easy to tap. */
    .site-footer .footer-cta {
        gap: .65rem;
        padding: .85rem 0;
    }

    .site-footer .footer-cta-copy {
        gap: .65rem;
    }

    .site-footer .footer-cta h2 {
        font-size: 1rem;
    }

    .site-footer .footer-cta-copy > div > p:last-child {
        margin-top: .18rem;
        font-size: .72rem;
        line-height: 1.4;
    }

    .site-footer .footer-cta-action {
        min-height: 44px;
        padding: .65rem 1rem;
    }

    .site-footer .footer-content {
        gap: .85rem;
        padding: 1rem 0 .75rem;
    }

    .site-footer .footer-intro {
        margin: .6rem 0 .65rem;
        font-size: .74rem;
        line-height: 1.5;
    }

    .site-footer .footer-contact-list {
        gap: .2rem;
    }

    .site-footer .footer-contact-list > a,
    .site-footer .footer-contact-list > span {
        min-height: 44px;
        padding: .15rem 0;
    }

    .site-footer .footer-social-block {
        margin-top: .7rem;
    }

    .site-footer .footer-social-block > p {
        margin-bottom: .4rem;
    }

    .site-footer .footer-social-links {
        gap: .4rem;
    }

    .site-footer .footer-nav-grid {
        gap: 0;
    }

    .site-footer .footer-column {
        padding: .55rem 0;
    }

    .site-footer .footer-heading {
        margin-bottom: .45rem;
        font-size: .7rem;
    }

    .site-footer .footer-link-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .15rem .35rem;
    }

    .site-footer .footer-column a {
        min-height: 44px;
        padding: .25rem .18rem;
        grid-template-columns: 28px minmax(0, 1fr);
        gap: .4rem;
        font-size: .74rem !important;
    }

    .site-footer .footer-link-icon {
        width: 28px;
        height: 28px;
    }

    .site-footer .footer-link-arrow {
        display: none;
    }

    .site-footer .footer-trust-item {
        min-height: 44px;
        padding: .35rem 0;
        gap: .5rem;
        font-size: .72rem;
    }

    .site-footer .footer-trust-item i {
        width: 28px;
        height: 28px;
    }

    .site-footer .footer-bottom {
        gap: .2rem;
        padding: .7rem .2rem calc(.85rem + env(safe-area-inset-bottom));
        font-size: .68rem;
    }

    .main-navbar {
        min-height: 62px;
    }

    .header-brand {
        width: 172px;
        height: 56px;
        flex-basis: 172px;
    }

    .homepage-v2 .travel-hero {
        min-height: 318px;
        background-position: 62% center;
    }

    .homepage-v2 .hero-content {
        padding-top: 1.25rem;
    }

    .homepage-v2 .hero-copy {
        width: 100%;
    }

    .homepage-v2 .hero-copy h1 {
        max-width: 92%;
        font-size: clamp(1.75rem, 7.4vw, 2.05rem);
        font-weight: 700;
        line-height: 1.08;
        letter-spacing: -.035em;
    }

    .homepage-v2 .hero-kicker {
        font-size: .625rem;
        font-weight: 700;
        letter-spacing: .13em;
    }

    .homepage-v2 .booking-stage {
        /*
         * Keep the mobile search visually connected to the hero heading.
         * The previous offset left a large empty band below the headline.
         */
        margin-top: -192px;
        padding-bottom: 1.5rem;
    }

    .homepage-v2 .booking-benefits {
        display: flex;
        width: 100%;
        margin-left: 0;
        padding-right: 1.1rem;
        padding-bottom: 3px;
        flex-wrap: nowrap;
        overflow-x: auto;
        gap: .75rem;
        overscroll-behavior-inline: contain;
        scrollbar-width: none;
        scroll-padding-inline: .25rem 1.1rem;
        scroll-snap-type: x proximity;
        font-size: .75rem;
        font-weight: 600;
        line-height: 1.3;
    }

    .homepage-v2 .booking-benefits::-webkit-scrollbar {
        display: none;
    }

    .homepage-v2 .booking-benefits > span {
        flex: 0 0 auto;
        scroll-snap-align: start;
        white-space: nowrap;
    }

    .homepage-v2 .booking-benefits.is-scrollable.can-scroll-after:not(.can-scroll-before) {
        -webkit-mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 22px), transparent 100%);
        mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 22px), transparent 100%);
    }

    .homepage-v2 .booking-benefits.is-scrollable.can-scroll-before.can-scroll-after {
        -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 22px, #000 calc(100% - 22px), transparent 100%);
        mask-image: linear-gradient(90deg, transparent 0, #000 22px, #000 calc(100% - 22px), transparent 100%);
    }

    .homepage-v2 .booking-benefits.is-scrollable.can-scroll-before:not(.can-scroll-after) {
        -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 22px, #000 100%);
        mask-image: linear-gradient(90deg, transparent 0, #000 22px, #000 100%);
    }

    .homepage-v2 .booking-tabs {
        display: flex;
        width: 100%;
        height: 56px;
        overflow-x: auto;
        overflow-y: hidden;
        border-radius: 15px 15px 0 0;
        scrollbar-width: none;
        scroll-padding-inline: 12px;
        scroll-snap-type: x proximity;
    }

    .homepage-v2 .booking-tabs.is-scrollable.can-scroll-after:not(.can-scroll-before) {
        box-shadow: 0 -8px 22px rgba(24, 52, 94, .055), inset -18px 0 18px -18px rgba(21, 94, 239, .7);
    }

    .homepage-v2 .booking-tabs.is-scrollable.can-scroll-before.can-scroll-after {
        box-shadow: 0 -8px 22px rgba(24, 52, 94, .055), inset 18px 0 18px -18px rgba(21, 94, 239, .7), inset -18px 0 18px -18px rgba(21, 94, 239, .7);
    }

    .homepage-v2 .booking-tabs.is-scrollable.can-scroll-before:not(.can-scroll-after) {
        box-shadow: 0 -8px 22px rgba(24, 52, 94, .055), inset 18px 0 18px -18px rgba(21, 94, 239, .7);
    }

    .homepage-v2 .booking-tabs::-webkit-scrollbar {
        display: none;
    }

    .homepage-v2 .booking-tab {
        min-width: 104px;
        flex: 1 0 104px;
        scroll-snap-align: start;
        font-size: .76rem;
        font-weight: 600;
    }

    .homepage-v2 .booking-tab i {
        font-size: 1rem;
    }

    .homepage-v2 .trip-switcher {
        width: 100%;
        height: auto;
        min-height: 44px;
        gap: .45rem;
    }

    .homepage-v2 .trip-option {
        min-width: 0;
        min-height: 44px;
        padding: 0;
        flex: 1 1 0;
        justify-content: center;
        gap: .25rem;
        font-size: .75rem;
        font-weight: 600;
        white-space: nowrap;
    }

    .homepage-v2 .booking-field > span {
        margin-bottom: .24rem;
        font-size: .75rem;
        font-weight: 600;
        line-height: 1.15;
    }

    .homepage-v2 .booking-field input,
    .homepage-v2 .booking-field select,
    .homepage-v2 .booking-control strong,
    .homepage-v2 .airport-input {
        font-weight: 600;
        line-height: 1.25;
    }

    .homepage-v2 .special-fare-label,
    .homepage-v2 .special-fare-option span,
    .homepage-v2 .special-fare-option input:checked + span {
        font-size: .75rem;
        font-weight: 600;
    }

    .homepage-v2 #flightSearchForm .special-fare-option span {
        min-height: 44px;
        padding: .5rem .7rem;
    }

    .homepage-v2 #flightSearchForm .special-fare-row > small {
        font-size: .75rem;
        line-height: 1.4;
    }

    .homepage-v2 .holiday-preference-label,
    .homepage-v2 .holiday-type-options span,
    .homepage-v2 .holiday-category-filter > span,
    .homepage-v2 .holiday-custom-select-trigger,
    .homepage-v2 .holiday-preferences-row > small {
        font-size: .75rem;
        line-height: 1.3;
    }

    .homepage-v2 .holiday-type-options span {
        min-height: 40px;
    }

    .homepage-v2 [data-cab-journey-type],
    .homepage-v2 [data-cab-trip-type] {
        min-height: 44px;
        font-size: .75rem;
    }

    .homepage-v2 [data-cab-location-swap],
    .homepage-v2 [data-cab-passenger-step] {
        width: 44px;
        height: 44px;
    }

    .homepage-v2 [data-cab-search-form] .booking-field > span:first-child,
    .homepage-v2 [data-cab-search-form] .cab-booking-field > span:first-child {
        font-size: .75rem;
        line-height: 1.2;
    }

    .homepage-v2 .cab-location-option small,
    .homepage-v2 .cab-passenger-row small,
    .homepage-v2 .cab-search-note,
    .homepage-v2 .holiday-passenger-row > div:first-child span {
        font-size: .72rem;
        line-height: 1.4;
    }

    .homepage-v2 .search-button,
    .homepage-v2 .hotel-search-button,
    .homepage-v2 .bus-search-button {
        font-size: .875rem;
        font-weight: 700;
    }

    .homepage-v2 .multi-city-heading strong {
        font-size: .72rem;
        font-weight: 600;
    }

    .homepage-v2 .sector-number {
        font-weight: 600;
    }

    .homepage-v2 .booking-body {
        padding: .75rem;
        border-radius: 0 0 15px 15px;
    }

    .homepage-v2 .hotel-search,
    .homepage-v2 .bus-search,
    .homepage-v2 .bus-route-fields {
        grid-template-columns: minmax(0, 1fr);
        gap: .55rem;
    }

    .homepage-v2 .bus-route-fields,
    .homepage-v2 .hotel-destination-picker {
        grid-column: auto;
    }

    /* App-style hotel search: primary choice first, related fields paired. */
    .homepage-v2 #hotelSearchForm.hotel-search {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .55rem;
    }

    .homepage-v2 #hotelSearchForm .hotel-destination-picker,
    .homepage-v2 #hotelSearchForm .hotel-search-button {
        grid-column: 1 / -1;
    }

    .homepage-v2 #hotelSearchForm .hotel-room-trigger,
    .homepage-v2 #hotelSearchForm .hotel-nationality-trigger {
        min-height: 32px;
    }

    .homepage-v2 #hotelSearchForm .hotel-room-trigger strong,
    .homepage-v2 #hotelSearchForm .hotel-nationality-selected strong {
        font-size: .875rem;
        font-weight: 600;
    }

    .homepage-v2 #hotelSearchForm .hotel-destination-suggestions.is-open {
        position: fixed;
        z-index: 1095;
        top: auto;
        right: 0;
        bottom: 0;
        left: 0;
        width: auto;
        max-width: none;
        max-height: min(58dvh, 430px);
        margin: 0;
        padding: 12px 14px calc(14px + env(safe-area-inset-bottom));
        overflow-y: auto;
        border: 0;
        border-radius: 22px 22px 0 0;
        background: #fff;
        box-shadow:
            0 0 0 100vmax rgba(7, 20, 41, .68),
            0 -18px 50px rgba(7, 20, 41, .2);
        overscroll-behavior: contain;
    }

    .homepage-v2 #hotelSearchForm .hotel-destination-option {
        min-height: 58px;
        padding: .65rem .55rem;
    }

    .homepage-v2 #hotelSearchForm .hotel-destination-option .airport-option-copy strong {
        font-size: .86rem;
    }

    .homepage-v2 #hotelSearchForm .hotel-destination-option .airport-option-copy small {
        font-size: .7rem;
    }

    .homepage-v2 #hotelSearchForm .hotel-nationality-menu {
        position: fixed;
        z-index: 1095;
        top: auto;
        right: 10px;
        bottom: max(10px, env(safe-area-inset-bottom));
        left: 10px;
        width: auto;
        max-width: none;
        max-height: min(520px, calc(100dvh - 84px));
        padding: 14px;
        overflow-y: auto;
        border-radius: 22px;
        box-shadow:
            0 0 0 100vmax rgba(7, 20, 41, .68),
            0 -18px 50px rgba(7, 20, 41, .2);
        overscroll-behavior: contain;
    }

    .homepage-v2 #hotelSearchForm .hotel-nationality-menu-head {
        position: sticky;
        z-index: 1;
        top: -14px;
        margin: -14px -14px 5px;
        padding: 18px 16px 14px;
        background: #fff;
        font-size: .7rem;
    }

    .homepage-v2 #hotelSearchForm .hotel-nationality-option {
        min-height: 52px;
        padding: .55rem .65rem;
    }

    .homepage-v2 #hotelSearchForm .hotel-nationality-option > span {
        font-size: .82rem;
        font-weight: 600;
    }

    .homepage-v2 #hotelSearchForm .hotel-nationality-option small {
        font-size: .62rem;
    }

    .homepage-v2 #hotelRoomPopover .hotel-room-head > button,
    .homepage-v2 #hotelRoomPopover .hotel-remove-room,
    .homepage-v2 #hotelRoomPopover .hotel-room-counter button {
        min-width: 44px;
        width: 44px;
        min-height: 44px;
        height: 44px;
    }

    .homepage-v2 #hotelRoomPopover .hotel-room-counter {
        min-width: 136px;
        grid-template-columns: 44px 48px 44px;
    }

    .homepage-v2 #hotelRoomPopover .hotel-room-head span {
        font-size: .68rem;
    }

    .homepage-v2 #hotelRoomPopover .hotel-room-card-head > strong,
    .homepage-v2 #hotelRoomPopover .hotel-guest-row strong {
        font-size: .82rem;
    }

    .homepage-v2 #hotelRoomPopover .hotel-guest-row span {
        font-size: .68rem;
    }

    .homepage-v2 #hotelRoomPopover .hotel-add-room,
    .homepage-v2 #hotelRoomPopover .hotel-room-done {
        min-height: 44px;
        font-size: .76rem;
    }

    /* Compact mobile flight form: From/To, dates and action stay in paired rows. */
    .homepage-v2 .flight-search {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .55rem;
        align-items: stretch;
    }

    .homepage-v2 .flight-search > .route-fields {
        position: relative;
        display: grid;
        grid-column: 1 / -1;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .55rem;
    }

    .homepage-v2 .flight-search > .route-fields > .swap-button {
        z-index: 6;
        top: 50%;
        right: auto;
        left: 50%;
        width: 38px;
        height: 38px;
        transform: translate(-50%, -50%);
    }

    .homepage-v2 .flight-search > .route-fields > .swap-button:hover {
        transform: translate(-50%, -50%) rotate(180deg);
    }

    .homepage-v2 .flight-search > .multi-city-panel,
    .homepage-v2 .flight-search > .special-fare-row {
        grid-column: 1 / -1;
    }

    .homepage-v2 .flight-search.is-multi-city {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .homepage-v2 .flight-search.is-multi-city > .traveller-field,
    .homepage-v2 .flight-search.is-multi-city > .search-button {
        grid-column: auto;
    }

    .homepage-v2 .multi-city-panel {
        padding: .55rem;
        border-radius: 12px;
    }

    .homepage-v2 .multi-city-heading {
        margin-bottom: .5rem;
        align-items: center;
    }

    .homepage-v2 .multi-city-heading span {
        display: none;
    }

    .homepage-v2 .multi-city-sector {
        padding: 1.5rem .5rem .5rem;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .5rem;
        border-radius: 11px;
    }

    .homepage-v2 .multi-city-sector .date-field {
        grid-column: 1 / -1;
    }

    .homepage-v2 .multi-city-sector > [data-airport-picker]:first-of-type::after {
        display: grid;
        right: -.68rem;
    }

    .homepage-v2 .multi-city-sector > [data-airport-picker]:first-of-type .airport-suggestions {
        width: calc(200% + .5rem);
    }

    .homepage-v2 .multi-city-sector > [data-airport-picker]:nth-of-type(2) .airport-suggestions {
        right: 0;
        left: auto;
        width: calc(200% + .5rem);
    }

    .homepage-v2 .booking-field {
        width: 100%;
        min-width: 0;
        height: 62px;
        padding: .55rem .7rem;
    }

    .homepage-v2 .search-button,
    .homepage-v2 .hotel-search-button,
    .homepage-v2 .bus-search-button {
        width: 100%;
        min-width: 0;
        min-height: 54px;
    }

    .homepage-v2 .flight-search > .search-button {
        padding-right: .55rem;
        padding-left: .55rem;
        white-space: nowrap;
    }

    .homepage-v2:not(.agent-search-embed) #flightSearchForm > .special-fare-row {
        order: 1;
        padding: 0 .15rem;
        align-items: center;
        flex-direction: row;
        flex-wrap: nowrap;
        gap: 0;
        overflow: hidden;
    }

    .homepage-v2:not(.agent-search-embed) #flightSearchForm > .search-button {
        display: inline-flex;
        order: 2;
        grid-column: 1 / -1;
        align-items: center;
        justify-content: center;
        gap: .42rem;
        line-height: 1.2;
    }

    .homepage-v2:not(.agent-search-embed) #flightSearchForm:not(.is-multi-city) > .traveller-field {
        grid-column: 1 / -1;
    }

    .homepage-v2:not(.agent-search-embed) #flightSearchForm > .search-button i {
        margin-left: 0;
        line-height: 1;
    }

    .homepage-v2:not(.agent-search-embed) #flightSearchForm > .route-fields .booking-control > .bi-geo-alt {
        display: none;
    }

    .homepage-v2:not(.agent-search-embed) #flightSearchForm > .special-fare-row .special-fare-label {
        display: none;
    }

    .homepage-v2:not(.agent-search-embed) #flightSearchForm > .special-fare-row .special-fare-options {
        display: flex;
        width: 100%;
        min-width: 0;
        overflow-x: auto;
        flex: 1 1 100%;
        flex-wrap: nowrap;
        scrollbar-width: none;
    }

    .homepage-v2:not(.agent-search-embed) #flightSearchForm > .special-fare-row .special-fare-option {
        display: flex;
        min-height: 44px;
        align-items: center;
    }

    .homepage-v2:not(.agent-search-embed) #flightSearchForm > .special-fare-row .special-fare-option span,
    .homepage-v2:not(.agent-search-embed) #flightSearchForm > .special-fare-row .special-fare-option input:checked + span {
        min-height: 36px;
        padding: .15rem .5rem;
        font-size: .68rem;
    }

    .homepage-v2:not(.agent-search-embed) #flightSearchForm > .special-fare-row > small {
        display: none;
    }

    .homepage-v2 .flight-search .booking-control strong,
    .homepage-v2 .flight-search .airport-input {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .homepage-v2 .route-fields .airport-picker:first-child .airport-suggestions {
        width: calc(200% + .55rem);
    }

    .homepage-v2 .route-fields .airport-picker:last-child .airport-suggestions {
        right: 0;
        left: auto;
        width: calc(200% + .55rem);
    }

    .homepage-v2 .special-fare-row {
        align-items: flex-start;
    }

    .homepage-v2 .special-fare-options {
        width: 100%;
        overflow-x: auto;
        flex-wrap: nowrap;
        scrollbar-width: none;
    }

    .homepage-v2 .special-fare-options::-webkit-scrollbar {
        display: none;
    }

    .homepage-v2 .special-fare-option {
        flex: 0 0 auto;
    }

    .airport-suggestions,
    .hotel-destination-suggestions {
        width: 100%;
        max-width: none;
        max-height: min(330px, calc(100dvh - 180px));
        overscroll-behavior: contain;
    }

    .calendar-popover,
    .traveller-popover,
    .hotel-room-popover,
    .holiday-traveller-popover {
        position: fixed !important;
        z-index: 1090 !important;
        top: auto !important;
        right: 10px !important;
        bottom: 10px !important;
        left: 10px !important;
        width: auto !important;
        max-width: none !important;
        max-height: calc(100dvh - 20px) !important;
        margin: 0 !important;
        overflow-y: auto;
        border-radius: 18px;
        overscroll-behavior: contain;
    }

    .calendar-months {
        grid-template-columns: 1fr;
    }

    /* Mobile date pickers show one active month at a time. */
    .calendar-months > .calendar-month:nth-child(n + 2) {
        display: none;
    }

    .calendar-day,
    .calendar-blank {
        min-height: 42px;
    }

    .calendar-footer {
        position: sticky;
        bottom: 0;
        padding-bottom: 2px;
        background: #fff;
    }

    .auth-modal .modal-dialog,
    .saved-traveller-modal .modal-dialog,
    .fare-modal .modal-dialog,
    .seat-map-modal .modal-dialog {
        width: calc(100vw - 20px);
        max-width: none;
        margin: 10px auto;
    }

    .auth-modal .modal-content,
    .saved-traveller-modal .modal-content,
    .fare-modal .modal-content,
    .seat-map-modal .modal-content {
        max-height: calc(100dvh - 20px);
        overflow-y: auto;
        border-radius: 18px;
    }

    .flight-search-summary-wrap {
        position: static;
    }

    .flight-search-summary {
        min-height: 0;
        padding: .85rem;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .7rem;
    }

    .flight-search-summary > div {
        min-width: 0;
    }

    /* Readable, consistently left-aligned hierarchy for homepage content cards. */
    .homepage-v2 .homepage-phase2 .home-section-heading-centered {
        align-items: flex-start;
        text-align: left;
    }

    .homepage-v2 .homepage-phase2 .home-section-heading > div > span {
        font-size: .7rem;
        font-weight: 700;
        line-height: 1.35;
    }

    .homepage-v2 .homepage-phase2 .home-section-heading h2 {
        font-size: clamp(1.45rem, 6.5vw, 1.75rem);
        font-weight: 700;
        line-height: 1.15;
    }

    .homepage-v2 .homepage-phase2 .home-section-heading > p {
        width: 100%;
        font-size: .8rem;
        font-weight: 500;
        line-height: 1.55;
    }

    .homepage-v2 .homepage-phase2 .home-section-heading-action > a {
        display: inline-flex;
        width: 40px;
        height: 40px;
        padding: 0;
        align-items: center;
        justify-content: center;
        border-radius: 12px;
    }

    .homepage-v2 .homepage-phase2 .home-trust-grid h3,
    .homepage-v2 .homepage-phase2 .home-benefits-grid h3 {
        font-size: .875rem;
        font-weight: 700;
    }

    .homepage-v2 .homepage-phase2 .home-trust-grid p,
    .homepage-v2 .homepage-phase2 .home-benefits-grid p {
        font-size: .75rem;
        font-weight: 500;
        line-height: 1.55;
    }

    .homepage-v2 .homepage-phase2 .home-promotion-card > div:first-child > span,
    .homepage-v2 .homepage-phase2 .home-flight-deal-copy > span {
        font-size: .64rem;
        font-weight: 700;
    }

    .homepage-v2 .homepage-phase2 .home-exclusive-promotion p,
    .homepage-v2 .homepage-phase2 .home-flight-deal-copy p {
        font-size: .74rem;
        font-weight: 500;
    }

    .homepage-v2 .homepage-phase2 .home-flight-deal-copy > div > span,
    .homepage-v2 .homepage-phase2 .home-section-disclaimer {
        font-size: .66rem;
        font-weight: 500;
    }

    .homepage-v2 .homepage-phase2 .home-flight-deal-copy a,
    .homepage-v2 .homepage-phase2 .home-promotion-card a,
    .homepage-v2 .homepage-phase2 .home-featured-group-heading > a,
    .homepage-v2 .homepage-phase2 .home-hotel-search-link {
        font-size: .7rem;
        font-weight: 700;
    }

    .homepage-v2 .homepage-phase2 .home-route-card > span:nth-child(2) strong {
        font-size: .8rem;
    }

    .homepage-v2 .homepage-phase2 .home-route-card > span:nth-child(2) small,
    .homepage-v2 .homepage-phase2 .home-route-card > span:last-child small {
        font-size: .7rem;
        font-weight: 500;
    }

    .homepage-v2 .homepage-phase2 .home-route-card > span:last-child strong {
        font-size: .76rem;
    }

    .homepage-v2 .homepage-phase2 .home-routes-section .home-section-heading {
        margin-bottom: 16px;
    }

    .homepage-v2 .homepage-phase2 .home-routes-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .homepage-v2 .homepage-phase2 .home-destination-type {
        font-size: .68rem;
    }

    .homepage-v2 .homepage-phase2 .home-destination-copy strong {
        font-size: .88rem;
    }

    .homepage-v2 .homepage-phase2 .home-destination-copy small {
        font-size: .7rem;
        font-weight: 500;
    }

    .homepage-v2 .homepage-phase2 .home-featured-group-heading strong {
        font-size: .86rem;
    }

    .homepage-v2 .homepage-phase2 .home-featured-group-heading small {
        font-size: .66rem;
        font-weight: 500;
        line-height: 1.4;
    }

    .homepage-v2 .homepage-phase2 .home-package-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .homepage-v2 .homepage-phase2 .home-hotel-copy small {
        font-size: .62rem;
    }

    .homepage-v2 .homepage-phase2 .home-hotel-media span {
        font-size: .62rem;
        font-weight: 700;
    }

    .homepage-v2 .homepage-phase2 .home-hotel-copy h3 {
        font-size: .92rem;
    }

    .homepage-v2 .homepage-phase2 .home-hotel-copy p {
        font-size: .72rem;
        font-weight: 500;
    }

    .homepage-v2 .homepage-phase2 .home-hotel-copy strong {
        font-size: .86rem;
    }

    .homepage-v2 .homepage-phase2 .home-faq-list summary {
        min-height: 66px;
        font-size: .82rem;
        font-weight: 700;
        line-height: 1.4;
    }

    .homepage-v2 .homepage-phase2 .home-faq-list summary small {
        font-size: .6rem;
        font-weight: 700;
    }

    .homepage-v2 .homepage-phase2 .home-faq-list details > p {
        font-size: .75rem;
        font-weight: 500;
        line-height: 1.65;
    }

    .flight-results-page .flight-modify-mobile-action {
        min-height: 44px;
        padding-right: .72rem;
        padding-left: .72rem;
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-result-controls {
        display: none !important;
    }

    .flight-results-page .view-fares-button {
        min-width: 82px !important;
        min-height: 44px !important;
        margin-top: .28rem !important;
        padding: .48rem .62rem !important;
        border-radius: 9px !important;
        font-size: .66rem !important;
        line-height: 1.15 !important;
    }

    .flight-results-page .flight-result-fare .select-flight-button {
        margin: 0 !important;
    }

    .flight-results-page .flight-result-meta .fare-details-toggle {
        display: inline-flex;
        min-height: 44px;
        padding: .45rem .35rem;
        align-items: center;
        justify-content: center;
        font-size: .68rem;
        line-height: 1.2;
    }

    .flight-results-page .flight-fare-option-card > footer button {
        height: auto;
        min-height: 44px;
    }

    /* B2C flight result dialogs use the same anchored app-sheet language as search. */
    .flight-results-page:not(.b2b-flight-results-page) .flight-details-modal,
    .flight-results-page:not(.b2b-flight-results-page) .flight-fares-modal {
        padding: max(58px, calc(env(safe-area-inset-top) + 50px)) 0 0;
        align-items: end;
        justify-items: stretch;
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-details-dialog,
    .flight-results-page:not(.b2b-flight-results-page) .flight-fares-dialog {
        width: 100%;
        max-width: none;
        height: calc(100vh - 58px);
        height: calc(100dvh - max(58px, calc(env(safe-area-inset-top) + 50px)));
        max-height: calc(100vh - 58px);
        max-height: calc(100dvh - max(58px, calc(env(safe-area-inset-top) + 50px)));
        border-right: 0;
        border-bottom: 0;
        border-left: 0;
        border-radius: 26px 26px 0 0;
        box-shadow: 0 -20px 54px rgba(5, 19, 43, .28);
        transform: translateY(100%);
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-details-modal.is-open .flight-details-dialog,
    .flight-results-page:not(.b2b-flight-results-page) .flight-fares-modal.is-open .flight-fares-dialog {
        transform: translateY(0);
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-details-dialog::before,
    .flight-results-page:not(.b2b-flight-results-page) .flight-fares-dialog::before {
        position: absolute;
        z-index: 2;
        top: 7px;
        left: 50%;
        width: 38px;
        height: 4px;
        content: "";
        border-radius: 999px;
        background: #c7d2e2;
        transform: translateX(-50%);
        pointer-events: none;
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-details-modal-head {
        min-height: 76px;
        padding: 1rem 1rem .75rem;
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-details-modal-head h2 {
        font-size: 1.02rem;
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-details-modal-head > button {
        width: 44px;
        height: 44px;
        flex: 0 0 44px;
        border-radius: 50%;
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-details-modal-scroll,
    .flight-results-page:not(.b2b-flight-results-page) .flight-fares-modal-scroll {
        padding: .72rem .72rem calc(.9rem + env(safe-area-inset-bottom));
        flex: 1 1 auto;
    }

    .flight-results-page:not(.b2b-flight-results-page) .fare-options-flight-summary-inner {
        min-height: 0;
        padding: .72rem;
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "airline"
            "schedule";
        align-items: stretch;
        gap: .6rem;
    }

    .flight-results-page:not(.b2b-flight-results-page) .fare-options-flight-summary-inner > .flight-result-airline {
        width: 100%;
        min-width: 0;
        padding-bottom: .55rem;
        grid-area: airline;
        border-bottom: 1px solid #e6edf5;
    }

    .flight-results-page:not(.b2b-flight-results-page) .fare-options-flight-summary-inner > .flight-result-schedule {
        width: 100%;
        min-width: 0;
        grid-area: schedule;
        grid-template-columns: minmax(64px, auto) minmax(80px, 1fr) minmax(64px, auto);
        gap: .38rem;
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-modal-summary-card .flight-result-main {
        min-height: 0;
        padding: .72rem;
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "airline"
            "schedule"
            "fare";
        gap: .65rem;
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-modal-summary-card .flight-result-fare {
        display: flex;
        width: 100%;
        min-width: 0;
        padding-top: .58rem;
        align-items: baseline;
        justify-content: flex-start;
        flex-direction: row;
        flex-wrap: wrap;
        gap: .2rem .45rem;
        border-top: 1px solid #e5ebf2;
        border-left: 0;
        text-align: left;
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-modal-summary-card .flight-result-fare > span {
        flex: 0 0 100%;
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-modal-summary-card .flight-result-fare > em {
        margin-left: auto;
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-modal-summary-card .flight-result-meta {
        overflow-x: auto;
        flex-wrap: nowrap;
        white-space: nowrap;
        scrollbar-width: none;
        overscroll-behavior-inline: contain;
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-modal-summary-card .flight-result-meta::-webkit-scrollbar {
        display: none;
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-modal-content {
        padding: 0;
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    .flight-results-page:not(.b2b-flight-results-page) .flight-result-meta .fare-details-toggle > .bi-chevron-down {
        transform: rotate(-90deg);
    }

    .nearby-fare-days,
    .booking-tabs,
    .account-tabs,
    .service-tabs {
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
    }

    /*
     * iOS Safari zooms the viewport when a focused form control is rendered
     * below 16px. Keep readable control text without changing button sizing.
     */
    input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]),
    select,
    textarea {
        font-size: 16px !important;
    }

    input,
    select,
    textarea,
    button,
    .btn {
        max-width: 100%;
    }
}

@media (max-width: 575.98px) {
    .homepage-v2 .homepage-phase2 .home-routes-grid {
        gap: 8px;
    }

    .homepage-v2 .homepage-phase2 .home-route-card {
        width: 100%;
        min-width: 0;
        min-height: 120px;
        padding: 10px;
        grid-template-columns: 32px minmax(0, 1fr);
        grid-template-rows: auto 1fr;
        align-items: start;
        column-gap: 8px;
        row-gap: 8px;
        overflow: hidden;
        border-radius: 14px;
    }

    .homepage-v2 .homepage-phase2 .home-route-icon {
        width: 32px;
        height: 32px;
        border-radius: 10px;
    }

    .homepage-v2 .homepage-phase2 .home-route-icon i {
        font-size: .9rem;
    }

    .homepage-v2 .homepage-phase2 .home-route-card > span:nth-child(2) {
        align-self: start;
    }

    .homepage-v2 .homepage-phase2 .home-route-card > span:nth-child(2) strong {
        min-height: 2.5em;
        overflow-wrap: anywhere;
        font-size: .75rem;
        line-height: 1.25;
        -webkit-line-clamp: 2;
    }

    .homepage-v2 .homepage-phase2 .home-route-card > span:nth-child(2) small {
        margin-top: 4px;
        overflow: hidden;
        font-size: .625rem;
        letter-spacing: .02em;
        white-space: nowrap;
    }

    .homepage-v2 .homepage-phase2 .home-route-card > span:nth-child(2) small i {
        margin: 0 3px;
    }

    .homepage-v2 .homepage-phase2 .home-route-card > span:last-child {
        width: 100%;
        min-width: 0;
        min-height: 40px;
        padding: 6px 8px;
        grid-column: 1 / -1;
        align-self: end;
        align-items: flex-start;
        justify-content: center;
        overflow: hidden;
        border-radius: 10px;
    }

    .homepage-v2 .homepage-phase2 .home-route-card > span:last-child small {
        font-size: .6rem;
        line-height: 1.15;
    }

    .homepage-v2 .homepage-phase2 .home-route-card > span:last-child strong {
        margin-top: 2px;
        font-size: .76rem;
    }
}

@media (max-width: 479.98px) {
    .header-brand {
        width: 154px;
        flex-basis: 154px;
    }

    .homepage-v2 .travel-hero {
        min-height: 302px;
    }

    .homepage-v2 .hero-kicker {
        max-width: 80%;
    }

    .homepage-v2 .hero-copy h1 {
        max-width: 100%;
        font-size: clamp(1.55rem, 7vw, 1.82rem);
    }

    .homepage-v2 .booking-stage {
        margin-top: -186px;
    }

    .homepage-v2 .booking-tab {
        min-width: 94px;
        flex-basis: 94px;
        gap: .35rem;
    }

    .homepage-v2 .booking-tab span {
        display: inline;
        font-size: .75rem;
        font-weight: 600;
    }

    .homepage-v2 .flight-search > .traveller-field {
        padding-right: .5rem;
        padding-left: .5rem;
    }

    .homepage-v2 .flight-search .traveller-trigger {
        gap: .125rem;
    }

    .homepage-v2 .flight-search .traveller-trigger strong {
        font-size: .84rem;
    }

    .homepage-v2 .flight-search .traveller-trigger i {
        font-size: .68rem;
    }

    .calendar-popover,
    .traveller-popover,
    .hotel-room-popover,
    .holiday-traveller-popover {
        right: 6px !important;
        bottom: 6px !important;
        left: 6px !important;
        max-height: calc(100dvh - 12px) !important;
    }

    .cabin-options {
        grid-template-columns: 1fr;
    }
}

/*
 * App-style flight search sheets
 * Keep desktop popovers unchanged and turn the three high-touch mobile
 * selectors into calm, native-feeling bottom sheets.
 */
@media (max-width: 767.98px) {
    body.mobile-search-sheet-open {
        overflow: hidden;
        overscroll-behavior: none;
    }

    /*
     * backdrop-filter on the desktop search card creates a containing block
     * for fixed descendants in mobile browsers. Disable it only while a
     * mobile sheet is open so the sheet can use the full viewport.
     */
    body.mobile-search-sheet-open .homepage-v2 .booking-body {
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    @keyframes mobile-search-sheet-in {
        from {
            opacity: 0;
            transform: translateY(28px);
        }
        to {
            opacity: 1;
            transform: translateY(0);
        }
    }

    .homepage-v2 [data-airport-picker] .airport-suggestions.is-open {
        position: fixed !important;
        z-index: 1095 !important;
        top: max(72px, calc(env(safe-area-inset-top) + 58px)) !important;
        right: 0 !important;
        bottom: 0 !important;
        left: 0 !important;
        display: block;
        width: auto !important;
        max-width: none !important;
        max-height: none !important;
        margin: 0 !important;
        padding: 0 20px calc(18px + env(safe-area-inset-bottom));
        overflow-x: hidden;
        overflow-y: auto;
        color: #17233b;
        border: 0;
        border-radius: 26px 26px 0 0;
        background: #fff;
        box-shadow:
            0 0 0 100vmax rgba(7, 20, 41, .68),
            0 -18px 50px rgba(7, 20, 41, .2);
        overscroll-behavior: contain;
        animation: mobile-search-sheet-in .24s cubic-bezier(.22, .9, .32, 1);
    }

    .homepage-v2 [data-airport-picker] .airport-suggestions.opens-up {
        top: max(72px, calc(env(safe-area-inset-top) + 58px)) !important;
        bottom: 0 !important;
    }

    .homepage-v2 .mobile-airport-sheet-head {
        position: sticky;
        z-index: 5;
        top: 0;
        display: flex;
        min-height: 78px;
        margin: 0 -20px;
        padding: 20px 20px 14px;
        align-items: center;
        justify-content: space-between;
        background: rgba(255, 255, 255, .97);
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
    }

    .homepage-v2 .mobile-airport-sheet-head > div {
        display: flex;
        min-width: 0;
        flex-direction: column;
    }

    .homepage-v2 .mobile-airport-sheet-head small {
        color: #1e63ef;
        font-size: .68rem;
        font-weight: 600;
        letter-spacing: .1em;
        text-transform: uppercase;
    }

    .homepage-v2 .mobile-airport-sheet-head strong {
        margin-top: 3px;
        color: #101a2e;
        font-size: 1.2rem;
        font-weight: 650;
        letter-spacing: -.02em;
    }

    .homepage-v2 .mobile-airport-sheet-close {
        display: grid;
        width: 44px;
        height: 44px;
        padding: 0;
        flex: 0 0 44px;
        place-items: center;
        color: #25334c;
        border: 1px solid #e2e8f1;
        border-radius: 50%;
        background: #f7f9fc;
        font-size: 1.2rem;
    }

    .homepage-v2 .mobile-airport-route-card {
        display: grid;
        margin: 2px 0 18px;
        padding: 6px 16px;
        border: 1.5px solid #24324a;
        border-radius: 18px;
        background: #fff;
    }

    .homepage-v2 .mobile-airport-route-card > div {
        position: relative;
        display: grid;
        min-height: 66px;
        padding: 11px 0;
        grid-template-columns: 28px minmax(0, 1fr);
        align-items: center;
        gap: 10px;
    }

    .homepage-v2 .mobile-airport-route-card > div + div {
        border-top: 1px solid #e5e9f0;
    }

    .homepage-v2 .mobile-airport-route-card > div + div::before {
        content: "";
        position: absolute;
        top: -5px;
        left: 13px;
        width: 1px;
        height: 10px;
        background: #d8dee8;
    }

    .homepage-v2 .mobile-airport-route-card i {
        color: #53637b;
        font-size: 1rem;
        text-align: center;
    }

    .homepage-v2 .mobile-airport-route-card .is-active i {
        color: #1f63ee;
    }

    .homepage-v2 .mobile-airport-route-card span {
        display: flex;
        min-width: 0;
        flex-direction: column;
    }

    .homepage-v2 .mobile-airport-route-card small {
        color: #8190a5;
        font-size: .63rem;
        font-weight: 500;
    }

    .homepage-v2 .mobile-airport-route-card strong {
        overflow: hidden;
        margin-top: 2px;
        color: #111b2f;
        font-size: .95rem;
        font-weight: 600;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .homepage-v2 .mobile-airport-route-card .is-active strong.is-empty::after {
        display: inline-block;
        width: 2px;
        height: 1.05em;
        margin-left: 2px;
        content: "";
        animation: mobile-airport-caret 1s steps(1, end) infinite;
        vertical-align: -.12em;
        background: #1f63ee;
    }

    @keyframes mobile-airport-caret {
        0%,
        48% {
            opacity: 1;
        }

        49%,
        100% {
            opacity: 0;
        }
    }

    .homepage-v2 .airport-suggestions-heading {
        position: static;
        margin: 0;
        padding: 8px 0 10px;
        color: #17233b;
        border: 0;
        box-shadow: none;
        font-size: .78rem;
        font-weight: 600;
    }

    .homepage-v2 .airport-suggestions-heading small {
        display: none;
    }

    .homepage-v2 [data-airport-picker] .airport-option {
        min-height: 68px;
        margin: 0;
        padding: 11px 2px;
        grid-template-columns: 30px minmax(0, 1fr) auto;
        gap: 10px;
        border: 0;
        border-bottom: 1px solid #edf0f5;
        border-radius: 0;
        background: #fff;
        transform: none;
    }

    .homepage-v2 [data-airport-picker] .airport-option:hover,
    .homepage-v2 [data-airport-picker] .airport-option.is-active,
    .homepage-v2 [data-airport-picker] .airport-option.is-selected {
        border-color: #edf0f5;
        background: #f7faff;
        transform: none;
    }

    .homepage-v2 [data-airport-picker] .airport-option-icon {
        width: 30px;
        height: 30px;
        color: #1d5fe9;
        border: 0;
        background: transparent;
        font-size: .95rem;
    }

    .homepage-v2 [data-airport-picker] .airport-option-copy strong {
        font-size: .92rem;
        font-weight: 600;
    }

    .homepage-v2 [data-airport-picker] .airport-option-copy small {
        margin-top: 3px;
        color: #67778e;
        font-size: .73rem;
        font-weight: 400;
    }

    .homepage-v2 [data-airport-picker] .airport-option-meta {
        min-width: 44px;
    }

    .homepage-v2 [data-airport-picker] .airport-option-meta strong {
        padding: 5px 7px;
        color: #1356db;
        border-radius: 7px;
        background: #f0f5ff;
        font-size: .68rem;
        font-weight: 650;
    }

    .homepage-v2 [data-airport-picker] .airport-option-meta small {
        display: none;
    }

    .homepage-v2 .calendar-popover.is-open {
        position: fixed !important;
        z-index: 1095 !important;
        top: max(72px, calc(env(safe-area-inset-top) + 58px)) !important;
        right: 0 !important;
        bottom: 0 !important;
        left: 0 !important;
        display: flex;
        width: auto !important;
        height: auto;
        max-width: none !important;
        max-height: none !important;
        margin: 0 !important;
        padding: 0 20px calc(14px + env(safe-area-inset-bottom));
        overflow: hidden;
        flex-direction: column;
        border: 0;
        border-radius: 26px 26px 0 0;
        background: #fff;
        box-shadow:
            0 0 0 100vmax rgba(7, 20, 41, .68),
            0 -18px 50px rgba(7, 20, 41, .2);
        animation: mobile-search-sheet-in .24s cubic-bezier(.22, .9, .32, 1);
    }

    .homepage-v2 .calendar-toolbar {
        margin: 0;
        padding: 20px 0 12px;
        flex: 0 0 auto;
        align-items: center;
    }

    .homepage-v2 .calendar-toolbar > div:first-child span {
        display: none;
    }

    .homepage-v2 .calendar-toolbar strong {
        margin: 0;
        font-size: 1.25rem;
        font-weight: 650;
        letter-spacing: -.02em;
    }

    .homepage-v2 .calendar-toolbar button {
        width: 42px;
        height: 42px;
        border-radius: 50%;
        background: #f6f8fb;
    }

    .homepage-v2 .calendar-months {
        display: block;
        min-height: 0;
        padding: 2px 0 10px;
        overflow-x: hidden;
        overflow-y: auto;
        flex: 1 1 auto;
        overscroll-behavior: contain;
    }

    .homepage-v2 .calendar-month {
        width: 100%;
    }

    .homepage-v2 .calendar-month h3 {
        margin: 2px 0 16px;
        font-size: 1rem;
        font-weight: 650;
    }

    .homepage-v2 .calendar-weekdays {
        margin-bottom: 6px;
    }

    .homepage-v2 .calendar-weekdays span {
        color: #59667a;
        font-size: .72rem;
        font-weight: 500;
    }

    .homepage-v2 .calendar-weekdays span:nth-child(6),
    .homepage-v2 .calendar-weekdays span:nth-child(7) {
        color: #c64b50;
    }

    .homepage-v2 .calendar-day,
    .homepage-v2 .calendar-blank {
        min-height: 52px;
    }

    .homepage-v2 .calendar-day {
        padding: 5px 1px;
        gap: 3px;
        border-radius: 14px;
        font-size: .84rem;
        font-weight: 500;
    }

    .homepage-v2 .calendar-day-fare {
        min-height: .72rem;
        font-size: .53rem;
        font-weight: 550;
    }

    .homepage-v2 .calendar-day.is-selected {
        border-radius: 15px;
        box-shadow: 0 8px 18px rgba(24, 89, 229, .23);
    }

    .homepage-v2 .mobile-calendar-selection {
        display: grid;
        padding: 12px 0;
        flex: 0 0 auto;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        border-top: 1px solid #edf0f5;
    }

    .homepage-v2 .mobile-calendar-selection.is-single {
        grid-template-columns: minmax(0, 1fr);
    }

    .homepage-v2 .mobile-calendar-selection > div[hidden] {
        display: none;
    }

    .homepage-v2 .mobile-calendar-selection > div {
        min-height: 64px;
        padding: 10px 12px;
        border: 1px solid #dfe5ee;
        border-radius: 14px;
        background: #fff;
    }

    .homepage-v2 .mobile-calendar-selection > div.is-active {
        border-color: #1c5ee9;
        box-shadow: inset 0 0 0 1px #1c5ee9;
    }

    .homepage-v2 .mobile-calendar-selection small,
    .homepage-v2 .mobile-calendar-selection strong {
        display: block;
    }

    .homepage-v2 .mobile-calendar-selection small {
        color: #738096;
        font-size: .64rem;
        font-weight: 500;
    }

    .homepage-v2 .mobile-calendar-selection strong {
        margin-top: 4px;
        color: #111b2e;
        font-size: .92rem;
        font-weight: 620;
    }

    .homepage-v2 .calendar-footer {
        position: static;
        display: flex;
        padding: 0;
        flex: 0 0 auto;
        align-items: center;
        justify-content: flex-end;
        border: 0;
        background: #fff;
    }

    .homepage-v2 #calendarFareStatus {
        display: none;
    }

    .homepage-v2 .calendar-footer button {
        width: 48%;
        min-height: 50px;
        padding: 0 18px;
        color: #fff;
        border: 0;
        border-radius: 13px;
        background: #2161e8;
        box-shadow: 0 10px 22px rgba(24, 88, 222, .2);
        font-size: .88rem;
        font-weight: 600;
    }

    .homepage-v2 .traveller-popover.is-open {
        position: fixed !important;
        z-index: 1095 !important;
        top: auto !important;
        right: 0 !important;
        bottom: 0 !important;
        left: 0 !important;
        display: flex;
        width: auto !important;
        max-width: none !important;
        max-height: calc(100dvh - max(82px, calc(env(safe-area-inset-top) + 64px))) !important;
        margin: 0 !important;
        padding: 16px 18px calc(14px + env(safe-area-inset-bottom));
        overflow-x: hidden;
        overflow-y: auto;
        flex-direction: column;
        border: 0;
        border-radius: 26px 26px 0 0;
        background: #fff;
        box-shadow:
            0 0 0 100vmax rgba(7, 20, 41, .68),
            0 -18px 50px rgba(7, 20, 41, .2);
        overscroll-behavior: contain;
        animation: mobile-search-sheet-in .24s cubic-bezier(.22, .9, .32, 1);
    }

    .homepage-v2 .traveller-popover-head {
        margin-bottom: 0;
        align-items: center;
    }

    .homepage-v2 .traveller-popover-head span {
        display: none;
    }

    .homepage-v2 .traveller-popover-head strong {
        margin: 0;
        font-size: 1.28rem;
        font-weight: 650;
        letter-spacing: -.02em;
    }

    .homepage-v2 .traveller-popover-head > button {
        width: 42px;
        height: 42px;
        border-radius: 50%;
        font-size: 1.05rem;
    }

    .homepage-v2 .passenger-row {
        min-height: 64px;
        padding: 8px 0;
    }

    .homepage-v2 .passenger-row strong {
        font-size: 1rem;
        font-weight: 600;
    }

    .homepage-v2 .passenger-row span {
        margin-top: 3px;
        font-size: .74rem;
        font-weight: 400;
    }

    .homepage-v2 .counter-control {
        min-width: 136px;
        grid-template-columns: 44px 48px 44px;
    }

    .homepage-v2 .counter-control button {
        width: 44px;
        height: 44px;
        border-radius: 50%;
        background: #fff;
        font-size: 1.05rem;
    }

    .homepage-v2 .counter-control button:disabled {
        border-color: #edf0f4;
        background: #f7f8fa;
    }

    .homepage-v2 .counter-control > strong {
        font-size: .95rem;
        font-weight: 600;
    }

    .homepage-v2 .cabin-selector {
        margin-top: 10px;
        padding-top: 0;
    }

    .homepage-v2 .cabin-selector > span {
        color: #111b2e;
        font-size: 1.12rem;
        font-weight: 650;
        letter-spacing: -.01em;
        text-transform: none;
    }

    .homepage-v2 .cabin-options {
        display: grid;
        margin-top: 4px;
        grid-template-columns: 1fr;
        gap: 0;
    }

    .homepage-v2 .cabin-options button {
        position: relative;
        min-height: 44px;
        padding: 8px 10px 8px 42px;
        color: #17233a;
        border: 0;
        border-radius: 0;
        background: #fff;
        box-shadow: none;
        font-size: .96rem;
        font-weight: 500;
        text-align: left;
    }

    .homepage-v2 .cabin-options button::before {
        content: "";
        position: absolute;
        top: 50%;
        left: 4px;
        width: 24px;
        height: 24px;
        border: 2px solid #98a3b3;
        border-radius: 50%;
        transform: translateY(-50%);
    }

    .homepage-v2 .cabin-options button.active {
        color: #17233a;
        border: 0;
        background: #fff;
        box-shadow: none;
    }

    .homepage-v2 .cabin-options button.active::before {
        border: 7px solid #2162ed;
    }

    .homepage-v2 .traveller-done {
        position: sticky;
        bottom: 0;
        min-height: 48px;
        margin-top: 10px;
        flex: 0 0 auto;
        border-radius: 13px;
        background: #2161e8;
        box-shadow: 0 10px 22px rgba(24, 88, 222, .2);
        font-size: .93rem;
        font-weight: 600;
    }
}

@media (max-width: 389.98px) {
    .homepage-v2 .flight-search {
        grid-template-columns: 1fr;
    }

    .homepage-v2 .flight-search > .route-fields {
        grid-template-columns: 1fr;
    }

    .homepage-v2 .flight-search > .route-fields > .swap-button {
        top: 50%;
        right: .7rem;
        left: auto;
        transform: translateY(-50%) rotate(90deg);
    }

    .homepage-v2 .flight-search > .route-fields > .swap-button:hover {
        transform: translateY(-50%) rotate(270deg);
    }

    .homepage-v2 .route-fields .airport-picker:first-child .airport-suggestions,
    .homepage-v2 .route-fields .airport-picker:last-child .airport-suggestions {
        right: 0;
        left: 0;
        width: 100%;
    }

    .homepage-v2 .calendar-day,
    .homepage-v2 .calendar-blank {
        min-height: 45px;
    }

    .homepage-v2 .calendar-day {
        font-size: .78rem;
    }

    .homepage-v2 .traveller-popover.is-open {
        padding-right: 18px;
        padding-left: 18px;
    }
}

@media (max-width: 359.98px) {
    .homepage-v2 #hotelSearchForm .hotel-room-field,
    .homepage-v2 #hotelSearchForm .hotel-nationality-field {
        grid-column: 1 / -1;
    }
}

/* Shared mobile search-sheet chrome for Hotel, Bus, Holidays and Cabs. */
.mobile-search-list-head,
.cab-passenger-done {
    display: none;
}

.homepage-v2 .visa-search {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
    gap: .65rem;
}

@media (max-width: 991.98px) {
    .homepage-v2 .visa-search {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .homepage-v2 .visa-search-button {
        grid-column: 1 / -1;
    }
}

@media (max-width: 767.98px) {
    html.mobile-search-sheet-open,
    body.mobile-search-sheet-open {
        overflow: hidden;
        overscroll-behavior: none;
    }

    .homepage-v2 .mobile-search-list-head {
        position: sticky;
        z-index: 6;
        top: 0;
        display: flex;
        min-height: 78px;
        margin: 0 -18px 4px;
        padding: 16px 18px 12px;
        align-items: center;
        justify-content: space-between;
        gap: 14px;
        border-bottom: 1px solid #edf1f6;
        background: rgba(255, 255, 255, .98);
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
    }

    .homepage-v2 .mobile-search-list-head > div {
        display: flex;
        min-width: 0;
        flex-direction: column;
    }

    .homepage-v2 .mobile-search-list-head small {
        color: #1e63ef;
        font-size: .68rem;
        font-weight: 700;
        letter-spacing: .1em;
        text-transform: uppercase;
    }

    .homepage-v2 .mobile-search-list-head strong {
        overflow: hidden;
        margin-top: 2px;
        color: #111b2e;
        font-size: 1.08rem;
        font-weight: 700;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .homepage-v2 .mobile-search-list-close {
        display: grid;
        width: 44px;
        height: 44px;
        padding: 0;
        flex: 0 0 44px;
        place-items: center;
        color: #25334c;
        border: 1px solid #e2e8f1;
        border-radius: 50%;
        background: #f7f9fc;
        font-size: 1.05rem;
    }

    .homepage-v2 #hotelSearchForm .hotel-destination-suggestions.is-open,
    .homepage-v2 [data-bus-city-picker].is-open .bus-city-suggestions,
    .homepage-v2 .holiday-destination-picker .holiday-destination-suggestions.is-open,
    .homepage-v2 [data-cab-location-picker].is-open [data-cab-location-list] {
        position: fixed !important;
        z-index: 1095 !important;
        top: max(72px, calc(env(safe-area-inset-top) + 58px)) !important;
        right: 0 !important;
        bottom: 0 !important;
        left: 0 !important;
        display: grid !important;
        width: auto !important;
        max-width: none !important;
        height: auto !important;
        max-height: none !important;
        margin: 0 !important;
        padding: 0 18px calc(16px + env(safe-area-inset-bottom)) !important;
        overflow-x: hidden;
        overflow-y: auto;
        align-content: start;
        gap: 2px;
        border: 0 !important;
        border-radius: 26px 26px 0 0 !important;
        background: #fff;
        box-shadow:
            0 0 0 100vmax rgba(7, 20, 41, .68),
            0 -18px 50px rgba(7, 20, 41, .2) !important;
        overscroll-behavior: contain;
        animation: mobile-search-sheet-in .24s cubic-bezier(.22, .9, .32, 1);
    }

    /* Keep the real focused search input visible inside its app-style sheet. */
    .homepage-v2 #flightSearchForm [data-airport-picker].is-open > .booking-field,
    .homepage-v2 #hotelSearchForm .hotel-destination-picker.is-open > .booking-field,
    .homepage-v2 #holidaySearchForm .holiday-origin-picker.is-open > .booking-field,
    .homepage-v2 #holidaySearchForm .holiday-destination-picker.is-open > .booking-field,
    .homepage-v2 [data-bus-city-picker].is-open > .booking-field {
        position: fixed !important;
        z-index: 1096 !important;
        top: max(158px, calc(env(safe-area-inset-top) + 144px)) !important;
        right: 18px !important;
        left: 18px !important;
        display: block !important;
        width: auto !important;
        min-width: 0 !important;
        height: 64px !important;
        margin: 0 !important;
        padding: .55rem .8rem !important;
        border: 1.5px solid #78a5f7 !important;
        border-radius: 14px !important;
        background: #fff !important;
        box-shadow: 0 8px 24px rgba(19, 61, 129, .16) !important;
    }

    .homepage-v2 #flightSearchForm [data-airport-picker].is-open .mobile-airport-route-card {
        display: none;
    }

    .homepage-v2 #holidaySearchForm .holiday-origin-picker.is-open .mobile-airport-route-card {
        display: none;
    }

    .homepage-v2 #flightSearchForm [data-airport-picker].is-open .airport-suggestions > .mobile-airport-sheet-head,
    .homepage-v2 #hotelSearchForm .hotel-destination-picker.is-open .hotel-destination-suggestions > .mobile-search-list-head,
    .homepage-v2 #holidaySearchForm .holiday-origin-picker.is-open .airport-suggestions > .mobile-airport-sheet-head,
    .homepage-v2 #holidaySearchForm .holiday-destination-picker.is-open .holiday-destination-suggestions > .mobile-search-list-head,
    .homepage-v2 [data-bus-city-picker].is-open .bus-city-suggestions > .mobile-search-list-head {
        margin-bottom: 76px;
    }

    .homepage-v2 .holiday-destination-picker .airport-option,
    .homepage-v2 [data-bus-city-picker] .bus-city-suggestion,
    .homepage-v2 [data-cab-location-picker] .cab-location-option {
        min-height: 64px;
        border-radius: 12px;
    }

    .homepage-v2 .holiday-custom-select.is-open .holiday-custom-select-menu {
        position: fixed !important;
        z-index: 1095 !important;
        top: auto !important;
        right: 0 !important;
        bottom: 0 !important;
        left: 0 !important;
        display: grid !important;
        width: auto !important;
        max-height: min(68dvh, 560px) !important;
        margin: 0 !important;
        padding: 0 18px calc(16px + env(safe-area-inset-bottom));
        overflow-y: auto;
        align-content: start;
        gap: 3px;
        border: 0;
        border-radius: 26px 26px 0 0;
        background: #fff;
        box-shadow:
            0 0 0 100vmax rgba(7, 20, 41, .68),
            0 -18px 50px rgba(7, 20, 41, .2);
        overscroll-behavior: contain;
        animation: mobile-search-sheet-in .24s cubic-bezier(.22, .9, .32, 1);
    }

    .homepage-v2 .holiday-custom-select-option {
        min-height: 52px;
        padding: .75rem .65rem;
        border-radius: 10px;
        font-size: .86rem;
    }

    .homepage-v2 .holiday-traveller-popover.is-open,
    .homepage-v2 #hotelRoomPopover.is-open,
    .homepage-v2 [data-cab-passenger-picker].is-open [data-cab-passenger-panel] {
        position: fixed !important;
        z-index: 1095 !important;
        top: auto !important;
        right: 0 !important;
        bottom: 0 !important;
        left: 0 !important;
        display: block !important;
        width: auto !important;
        max-width: none !important;
        max-height: calc(100dvh - max(82px, calc(env(safe-area-inset-top) + 64px))) !important;
        margin: 0 !important;
        padding: 20px 20px calc(18px + env(safe-area-inset-bottom));
        overflow-y: auto;
        border: 0;
        border-radius: 26px 26px 0 0;
        background: #fff;
        box-shadow:
            0 0 0 100vmax rgba(7, 20, 41, .68),
            0 -18px 50px rgba(7, 20, 41, .2);
        overscroll-behavior: contain;
        animation: mobile-search-sheet-in .24s cubic-bezier(.22, .9, .32, 1);
    }

    .homepage-v2 [data-cab-passenger-picker].is-open [data-cab-passenger-panel] {
        padding-top: 0;
    }

    .homepage-v2 [data-cab-passenger-panel] .mobile-search-list-head {
        margin-right: -20px;
        margin-left: -20px;
        padding-right: 20px;
        padding-left: 20px;
    }

    .homepage-v2 .cab-passenger-done {
        display: block;
        width: 100%;
        min-height: 52px;
        margin-top: 18px;
        color: #fff;
        border: 0;
        border-radius: 13px;
        background: #2161e8;
        box-shadow: 0 10px 22px rgba(24, 88, 222, .2);
        font-size: .92rem;
        font-weight: 700;
    }

    .homepage-v2 .hotel-nationality-field.is-open .hotel-nationality-menu {
        z-index: 1095;
        right: 0;
        bottom: 0;
        left: 0;
        width: auto;
        max-height: min(70dvh, 580px);
        border: 0;
        border-radius: 26px 26px 0 0;
        box-shadow:
            0 0 0 100vmax rgba(7, 20, 41, .68),
            0 -18px 50px rgba(7, 20, 41, .2);
    }

    .homepage-v2 #hotelSearchForm .hotel-room-trigger,
    .homepage-v2 #hotelSearchForm .hotel-nationality-trigger,
    .homepage-v2 .holiday-custom-select-trigger {
        min-height: 44px;
    }

    .homepage-v2 .calendar-toolbar button,
    .homepage-v2 .traveller-popover-head > button,
    .homepage-v2 .holiday-traveller-popover .traveller-popover-head > button {
        width: 44px;
        height: 44px;
    }

    .homepage-v2 .visa-search {
        grid-template-columns: 1fr;
        gap: .55rem;
    }

    .homepage-v2 .visa-search .booking-control {
        min-height: 52px;
    }

    .homepage-v2 .visa-search select {
        width: 100%;
        min-height: 44px;
        color: #162544;
        border: 0;
        outline: 0;
        background: transparent;
        font-size: 1rem;
        font-weight: 600;
    }

    .homepage-v2 .visa-search-button {
        width: 100%;
        min-height: 54px;
    }
}
