:root {
    --brand-blue: #e31e24;
    --brand-blue-dark: #b3131b;
    --brand-cyan: #171717;
    --brand-purple: #6d3ce8;
    --brand-green: #12b981;
    --brand-orange: #ff9f0a;
    --ink: #171717;
    --text: #373737;
    --muted: #6f7f9c;
    --line: #dce5f1;
    --soft: #f4f8fc;
    --white: #ffffff;
    --shadow-sm: 0 8px 24px rgba(26, 52, 93, .08);
    --shadow-lg: 0 22px 55px rgba(26, 52, 93, .14);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--text); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: var(--soft); -webkit-font-smoothing: antialiased; }
a { color: inherit; }
button, input, select { font: inherit; }
.btn-primary { --bs-btn-bg: var(--brand-blue); --bs-btn-border-color: var(--brand-blue); --bs-btn-hover-bg: var(--brand-blue-dark); --bs-btn-hover-border-color: var(--brand-blue-dark); font-weight: 600; }

/* Header */
.site-header { position: sticky; top: 0; z-index: 1050; border-bottom: 1px solid #e3eaf4; background: rgba(255,255,255,.96); box-shadow: 0 8px 28px rgba(26,52,93,.07); backdrop-filter: blur(14px); }
.utility-bar { height: 44px; color: #405274; border-bottom: 1px solid #e8eef6; background: linear-gradient(90deg, #fbfdff 0%, #f7faff 100%); font-size: .76rem; }
.utility-bar .container { height: 100%; }
.utility-links { display: flex; align-items: center; gap: 1.35rem; }
.utility-links > a, .utility-links > span { display: inline-flex; align-items: center; white-space: nowrap; }
.utility-links a { text-decoration: none; transition: color .2s ease; }
.utility-links a:hover { color: var(--brand-blue); }
.utility-links > a > i:first-child, .utility-links > span > i:first-child { display: inline-grid; width: 24px; height: 24px; margin-right: .42rem; place-items: center; color: #4e6387; border: 1px solid #e3ebf6; border-radius: 8px; background: rgba(255,255,255,.82); font-size: .7rem; transition: color .2s ease, border-color .2s ease, background .2s ease; }
.utility-links > a:hover > i:first-child { color: var(--brand-blue); border-color: #c9dafc; background: #eef4ff; }
.utility-links .tiny-chevron { margin: 0 0 0 .2rem; font-size: .55rem; }
.utility-login { padding: .32rem .78rem .32rem .38rem; color: var(--brand-blue); border: 1px solid #b8cdf9; border-radius: 10px; background: #fff; box-shadow: 0 4px 12px rgba(21,94,239,.07); font-weight: 600; }
.utility-login:hover { border-color: #8fb0f8; background: #f7faff; }
.utility-login i { color: var(--brand-blue); }
.main-navbar { min-height: 80px; padding: 0; background: rgba(255,255,255,.93); }
.header-brand { display: flex; width: 224px; height: 68px; flex: 0 0 224px; padding: 0; align-items: center; }
.header-logo-frame { display: flex; width: 224px; height: 62px; align-items: center; overflow: visible; }
.header-brand-logo { display: block; width: 100%; max-width: none; height: 100%; object-fit: contain; object-position: left center; }
.main-navbar .nav-link { position: relative; display: flex; padding: 1.08rem .78rem !important; align-items: center; gap: .42rem; color: #17294b; border-radius: 12px; font-size: .85rem; font-weight: 650; transition: color .2s ease, background .2s ease; }
.main-navbar .nav-link:hover, .main-navbar .nav-link.active { color: var(--brand-blue); background: linear-gradient(180deg, #f6f9ff 0%, #edf4ff 100%); }
.main-navbar .nav-link.active::after { position: absolute; right: .8rem; bottom: .38rem; left: .8rem; height: 2px; content: ""; border-radius: 4px; background: var(--brand-blue); }
.nav-service-icon { width: 1rem; color: #5a6f91; text-align: center; font-size: .94rem; transition: color .2s ease; }
.main-navbar .nav-link:hover .nav-service-icon, .main-navbar .nav-link.active .nav-service-icon { color: var(--brand-blue); }
.nav-chevron { margin-left: .22rem; font-size: .64rem; }
.homepage-v2:not(.agent-search-embed) #flight-search { scroll-margin-top: 78px; }

@media (min-width: 992px) {
    .site-header { top: -44px; }
    .homepage-v2:not(.agent-search-embed) #flight-search { scroll-margin-top: 96px; }
}

/* Hero */
.travel-hero { position: relative; min-height: 420px; overflow: hidden; background-image: url("../images/hero-coastal-v2.png"); background-position: center center; background-size: cover; }
.travel-hero::before { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg, rgba(255,255,255,.68) 0%, rgba(255,255,255,.48) 25%, rgba(255,255,255,.14) 48%, rgba(255,255,255,0) 66%); pointer-events: none; }
.travel-hero::after { position: absolute; inset: auto 0 0; height: 90px; content: ""; background: linear-gradient(to bottom, transparent, rgba(244,248,252,.78)); pointer-events: none; }
.hero-content { position: relative; z-index: 2; padding-top: 2.1rem; }
.hero-copy { width: min(430px, 100%); }
.hero-kicker { display: inline-block; margin-bottom: .65rem; color: var(--brand-blue); font-size: .67rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.hero-copy h1 { margin: 0 0 .8rem; color: var(--ink); font-size: clamp(2.55rem, 4vw, 3.5rem); font-weight: 700; line-height: 1; letter-spacing: -.052em; }
.hero-copy h1 span { color: var(--brand-blue); }
.hero-copy > p { width: min(360px, 100%); margin: 0; color: #233554; font-size: .98rem; font-weight: 500; line-height: 1.6; }
.booking-benefits { display: flex; min-height: 28px; margin: 0 0 1rem .1rem; align-items: center; gap: 2.15rem; color: #233554; font-size: .72rem; font-weight: 600; }
.booking-benefits span { display: inline-flex; align-items: center; gap: .48rem; white-space: nowrap; }
.booking-benefits i { display: inline-grid; width: 22px; height: 22px; place-items: center; color: white; border-radius: 50%; font-size: .68rem; box-shadow: 0 4px 10px rgba(26,52,93,.12); }
.benefit-blue { background: var(--brand-blue); }.benefit-purple { background: var(--brand-purple); }.benefit-green { background: var(--brand-green); }

/* Booking search */
.booking-stage { position: relative; z-index: 5; margin-top: -176px; padding-bottom: 4rem; }
.booking-shell { position: relative; z-index: 30; border: 0; background: transparent; }
.booking-tabs { display: grid; width: min(744px, 100%); height: 58px; overflow: hidden; grid-template-columns: repeat(6, minmax(0, 1fr)); border: 1px solid rgba(215,225,238,.95); border-bottom: 0; border-radius: 18px 18px 0 0; background: rgba(249,251,254,.96); box-shadow: 0 -8px 24px rgba(26,52,93,.06); backdrop-filter: blur(12px); }
.booking-tab { position: relative; display: flex; align-items: center; justify-content: center; gap: .65rem; color: #2b3d5d; border: 0; background: transparent; font-size: .78rem; font-weight: 600; text-decoration: none; }
.booking-tab i { color: #526789; font-size: 1.18rem; }
.booking-tab:hover, .booking-tab.active, .booking-tab.active i { color: var(--brand-blue); }
.booking-tab.active::after { position: absolute; right: 18%; bottom: -1px; left: 18%; height: 3px; content: ""; border-radius: 5px 5px 0 0; background: var(--brand-blue); }
.booking-body { position: relative; z-index: 30; padding: 1rem 1.4rem 1.35rem; border: 1px solid rgba(215,225,238,.95); border-radius: 0 18px 18px 18px; background: rgba(255,255,255,.98); box-shadow: var(--shadow-lg); backdrop-filter: blur(12px); }
.trip-switcher { display: flex; height: 28px; margin-bottom: .75rem; padding: 0; align-items: center; gap: 1.55rem; border: 0; }
.trip-option { display: inline-flex; padding: 0; align-items: center; gap: .48rem; color: #475878; border: 0; background: transparent; font-size: .7rem; font-weight: 500; }
.trip-option > span { display: inline-block; width: 14px; height: 14px; border: 1px solid #c8d4e4; border-radius: 50%; background: white; box-shadow: inset 0 0 0 3px white; }
.trip-option.active { color: var(--brand-blue); }
.trip-option.active > span { border-color: var(--brand-blue); background: var(--brand-blue); }
.flight-search { display: grid; grid-template-columns: 2.15fr .83fr .83fr 1.08fr auto; gap: .6rem; }
.route-fields { position: relative; display: grid; min-width: 0; grid-template-columns: 1fr 1fr; gap: .6rem; }
.booking-field { display: block; min-width: 0; height: 59px; margin: 0; padding: .5rem .75rem; border: 1px solid #dbe4ef; border-radius: 10px; background: #fbfcfe; box-shadow: 0 3px 10px rgba(31,56,93,.04); transition: border-color .2s, box-shadow .2s, background .2s; }
.booking-field:focus-within { border-color: #96b7f8; background: white; box-shadow: 0 0 0 3px rgba(21,94,239,.08); }
.booking-field > span { display: block; margin-bottom: .22rem; color: #5b6c88; font-size: .61rem; font-weight: 500; }
.booking-field > .booking-control { display: flex; min-width: 0; align-items: center; gap: .38rem; }
.booking-field input, .booking-field select { width: 100%; min-width: 0; padding: 0; color: #162544; border: 0; outline: none; background: transparent; font-size: .72rem; font-weight: 600; }
.booking-field input[type="date"] { font-size: .66rem; }
.booking-field select { appearance: none; padding-right: .2rem; }
.booking-field i { color: #466086; font-size: .72rem; }
.swap-button { position: absolute; z-index: 3; top: 50%; left: 50%; display: grid; width: 34px; height: 34px; padding: 0; place-items: center; color: var(--brand-blue); border: 1px solid #cbdaf1; border-radius: 50%; background: white; box-shadow: 0 5px 14px rgba(27,62,112,.13); transform: translate(-50%, -50%); transition: color .2s, background .2s, transform .25s; }
.swap-button:hover { color: white; background: var(--brand-blue); transform: translate(-50%, -50%) rotate(180deg); }
.search-button { min-width: 140px; padding: 0 1.05rem; color: white; border: 0; border-radius: 10px; background: linear-gradient(135deg, var(--brand-blue), var(--brand-blue-dark)); box-shadow: 0 8px 18px rgba(227,30,36,.24); font-size: .73rem; font-weight: 600; transition: transform .2s, box-shadow .2s; }
.search-button:hover { transform: translateY(-1px); box-shadow: 0 12px 24px rgba(227,30,36,.3); }
.search-button:disabled { cursor: wait; opacity: .82; transform: none; }
.search-button i { margin-left: .42rem; }
.special-fare-row { display: flex; min-width: 0; margin: .15rem 0 0; padding: .58rem .7rem; grid-column: 1 / -1; align-items: center; gap: .7rem; border: 1px solid #dfe7f2; border-radius: 11px; background: #f8fbff; }
.special-fare-label { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .38rem; color: #263a5c; font-size: .63rem; font-weight: 600; line-height: 1; }
.special-fare-label i { color: var(--brand-blue); font-size: .75rem; }
.special-fare-options { display: flex; min-width: 0; align-items: center; flex-wrap: wrap; gap: .38rem; }
.special-fare-option { position: relative; margin: 0; cursor: pointer; }
.special-fare-option input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; }
.special-fare-option span { display: inline-flex; min-height: 27px; padding: .35rem .62rem; align-items: center; gap: .34rem; color: #53647f; border: 1px solid #d5e0ee; border-radius: 999px; background: white; font-size: .58rem; font-weight: 500; line-height: 1; white-space: nowrap; transition: color .16s, border-color .16s, background .16s, box-shadow .16s; }
.special-fare-option span::before { width: 10px; height: 10px; flex: 0 0 10px; border: 1px solid #aebdd1; border-radius: 50%; background: white; box-shadow: inset 0 0 0 3px white; content: ""; transition: border-color .16s, background .16s; }
.special-fare-option:hover span { color: #1556c6; border-color: #a8c2f5; }
.special-fare-option input:checked + span { color: #0f50c5; border-color: #83aaf4; background: #eaf2ff; box-shadow: inset 0 0 0 1px #c2d6fb; font-weight: 600; }
.special-fare-option input:checked + span::before { border-color: var(--brand-blue); background: var(--brand-blue); }
.special-fare-option input:focus-visible + span { outline: 3px solid rgba(21,94,239,.18); outline-offset: 2px; }
.special-fare-row > small { margin-left: auto; color: #7b899e; font-size: .53rem; line-height: 1.25; white-space: nowrap; }
.return-field.is-disabled { opacity: .48; }
.search-notice { display: none; margin-top: .7rem; padding: .62rem .8rem; color: #174e9a; border: 1px solid #bfd6fa; border-radius: 8px; background: #eff6ff; font-size: .67rem; }
.search-notice.is-error { color: #a02732; border-color: #f0bbc0; background: #fff1f2; }
.search-notice.is-success { color: #08765d; border-color: #a8e4d4; background: #ecfdf8; }
.airport-picker { position: relative; min-width: 0; }
.airport-picker > .booking-field { width: 100%; }
.booking-field.is-invalid { border-color: #dc6d76; background: #fff8f8; box-shadow: 0 0 0 3px rgba(190,39,53,.07); }
.airport-suggestions {
    position: absolute;
    z-index: 100;
    top: calc(100% + 8px);
    left: 0;
    display: none;
    width: min(390px, calc(100vw - 2rem));
    max-height: 320px;
    overflow: auto;
    padding: .38rem;
    border: 1px solid #d7e2f0;
    border-radius: 15px;
    background: white;
    box-shadow: 0 20px 50px rgba(15,42,82,.2);
    scrollbar-color: #9eabc0 transparent;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
}
.airport-suggestions::-webkit-scrollbar { width: 6px; }
.airport-suggestions::-webkit-scrollbar-track { background: transparent; }
.airport-suggestions::-webkit-scrollbar-thumb { border: 1px solid white; border-radius: 99px; background: #a6b2c4; }
.airport-suggestions.is-open { display: block; }
.mobile-airport-sheet-head,
.mobile-airport-route-card,
.mobile-calendar-selection { display: none; }
.airport-suggestions.opens-up { top: auto; bottom: calc(100% + 8px); }
.airport-suggestions-heading { position: sticky; z-index: 2; top: -.38rem; display: flex; margin: -.38rem -.38rem .28rem; padding: .72rem .78rem .65rem; align-items: center; justify-content: space-between; color: var(--ink); border-bottom: 1px solid #edf1f6; background: rgba(255,255,255,.97); box-shadow: 0 4px 10px rgba(21,47,87,.04); font-size: .62rem; font-weight: 700; backdrop-filter: blur(8px); }
.airport-suggestions-heading > span { display: inline-flex; align-items: center; gap: .38rem; }
.airport-suggestions-heading > span i { color: var(--brand-blue); font-size: .72rem; }
.airport-suggestions-heading small { padding: .22rem .42rem; color: #6f7f99; border-radius: 999px; background: #f0f4f9; font-size: .49rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.airport-option { display: grid; width: 100%; min-height: 58px; margin: .08rem 0; padding: .58rem .62rem; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; gap: .62rem; color: var(--text); border: 1px solid transparent; border-radius: 10px; background: transparent; text-align: left; transition: border-color .15s, background .15s, transform .15s; }
.airport-option:hover, .airport-option.is-active { color: var(--ink); border-color: #d9e7fd; background: #f1f6ff; transform: translateX(2px); }
.airport-option.is-selected { border-color: #c5d9fc; background: #edf4ff; }
.airport-option.is-unavailable,
.airport-option.is-unavailable:hover { color: #9ba6b7; border-color: transparent; background: #f7f9fb; cursor: not-allowed; opacity: .62; transform: none; }
.airport-option.is-unavailable .airport-option-icon { color: #9ba7b9; border-color: #e2e7ee; background: #f0f3f6; }
.airport-option.is-unavailable .airport-option-meta strong { color: #8491a4; background: #e9edf2; }
.airport-option.is-unavailable .airport-option-meta small { color: #a04b54; }
.airport-option-icon { display: grid; width: 30px; height: 30px; place-items: center; color: var(--brand-blue); border: 1px solid #d9e7ff; border-radius: 9px; background: #f2f7ff; font-size: .78rem; }
.airport-option-copy { display: flex; min-width: 0; flex-direction: column; }
.airport-option-copy strong { color: var(--ink); font-size: .72rem; font-weight: 700; }
.airport-option-copy small { overflow: hidden; margin-top: .1rem; color: #7b899f; font-size: .57rem; text-overflow: ellipsis; white-space: nowrap; }
.airport-option-meta { display: flex; min-width: 54px; align-items: flex-end; flex-direction: column; }
.airport-option-meta strong { padding: .22rem .38rem; color: #0f55d8; border-radius: 6px; background: #eaf2ff; font-size: .58rem; font-weight: 700; letter-spacing: .04em; }
.airport-option-meta small { max-width: 76px; margin-top: .2rem; overflow: hidden; color: #8a97aa; font-size: .5rem; text-overflow: ellipsis; white-space: nowrap; }
.airport-suggestion-state { display: flex; min-height: 64px; padding: .8rem; align-items: center; justify-content: center; gap: .55rem; color: #6e7d96; font-size: .7rem; text-align: center; }
.airport-suggestion-state i { color: var(--brand-blue); font-size: .9rem; }
.airport-loading-icon { animation: search-spin .8s linear infinite; }
@keyframes search-spin { to { transform: rotate(360deg); } }
.date-trigger, .traveller-trigger { width: 100%; padding: 0; color: #162544; border: 0; outline: none; background: transparent; text-align: left; }
.date-trigger strong, .traveller-trigger strong { overflow: hidden; min-width: 0; font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.traveller-trigger { justify-content: space-between; }
.traveller-trigger i { margin-left: auto; }
.calendar-popover,
.traveller-popover {
    position: absolute;
    z-index: 50;
    top: calc(100% - .35rem);
    display: none;
    border: 1px solid #d8e3f0;
    border-radius: 18px;
    background: white;
    box-shadow: 0 24px 60px rgba(13,39,79,.2);
}
.calendar-popover.is-open, .traveller-popover.is-open { display: block; animation: booking-popover-in .18s ease-out; }
@keyframes booking-popover-in { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: translateY(0); } }
.calendar-popover { right: 1.4rem; width: min(620px, calc(100% - 2.8rem)); padding: 1rem; }
.calendar-toolbar { display: flex; margin-bottom: .75rem; align-items: center; justify-content: space-between; gap: 1rem; }
.calendar-toolbar > div:first-child { display: flex; flex-direction: column; }
.calendar-kicker { color: var(--brand-blue); font-size: .56rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.calendar-toolbar strong { margin-top: .12rem; color: var(--ink); font-size: .93rem; }
.calendar-navigation { display: flex; gap: .35rem; }
.calendar-navigation button { display: grid; width: 32px; height: 32px; padding: 0; place-items: center; color: #425678; border: 1px solid #dbe4ef; border-radius: 9px; background: white; }
.calendar-navigation button:hover:not(:disabled) { color: white; border-color: var(--brand-blue); background: var(--brand-blue); }
.calendar-navigation button:disabled { cursor: not-allowed; opacity: .35; }
.calendar-navigation .calendar-close { margin-left: .25rem; color: #8b99ad; border-color: transparent; }
.calendar-months { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.calendar-month h3 { margin: 0 0 .58rem; color: var(--ink); font-size: .72rem; font-weight: 600; text-align: center; }
.calendar-weekdays, .calendar-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: .12rem; }
.calendar-weekdays { margin-bottom: .22rem; }
.calendar-weekdays span { padding: .2rem 0; color: #93a0b3; font-size: .5rem; font-weight: 600; text-align: center; text-transform: uppercase; }
.calendar-day, .calendar-blank { min-height: 39px; }
.calendar-day { display: flex; padding: .2rem .03rem .16rem; align-items: center; justify-content: center; flex-direction: column; gap: .08rem; color: #344664; border: 0; border-radius: 8px; background: transparent; font-size: .62rem; font-weight: 600; line-height: 1; }
.calendar-day-number { line-height: 1; }
.calendar-day-fare { display: block; width: 100%; min-height: .6rem; color: #008f5b; font-size: .46rem; font-weight: 600; font-variant-numeric: tabular-nums; letter-spacing: -.035em; line-height: 1.05; text-align: center; white-space: nowrap; }
.calendar-day.is-fare-loading .calendar-day-fare { width: 55%; min-height: 4px; margin-top: 2px; border-radius: 999px; background: linear-gradient(90deg, #e7edf6 25%, #f8faff 50%, #e7edf6 75%); background-size: 200% 100%; animation: calendar-fare-shimmer 1.1s linear infinite; }
.calendar-day.is-no-fare .calendar-day-fare { color: #b9c3d1; font-weight: 600; }
.calendar-day:hover:not(:disabled) { color: var(--brand-blue); background: #eaf2ff; }
.calendar-day:disabled { color: #c9d1dd; cursor: not-allowed; }
.calendar-day:disabled .calendar-day-fare { display: none; }
.calendar-day.is-today { box-shadow: inset 0 0 0 1px #9bbbf8; }
.calendar-day.is-in-range { color: #144fae; border-radius: 0; background: #eaf2ff; }
.calendar-day.is-selected { color: white; border-radius: 9px; background: var(--brand-blue); box-shadow: 0 5px 12px rgba(21,94,239,.24); }
.calendar-day.is-selected .calendar-day-fare { color: white; }
.calendar-day.is-selected.is-fare-loading .calendar-day-fare { background: rgba(255,255,255,.55); }
.calendar-footer { display: flex; margin-top: .75rem; padding-top: .68rem; align-items: center; justify-content: space-between; gap: 1rem; border-top: 1px solid #e8edf4; }
.calendar-footer span { color: #7c899e; font-size: .58rem; }
.calendar-footer span i { margin-right: .3rem; color: var(--brand-blue); }
.calendar-footer span.is-ready { color: #087b55; }
.calendar-footer span.is-ready i { color: #08a86b; }
.calendar-footer span.is-error { color: #b34a57; }
.calendar-footer span.is-error i { color: #d84b5c; }
.calendar-fare-spinner { display: inline-block; animation: calendar-fare-spin .8s linear infinite; }
.calendar-footer button { padding: .45rem .9rem; color: white; border: 0; border-radius: 8px; background: var(--brand-blue); font-size: .64rem; font-weight: 600; }
@keyframes calendar-fare-shimmer { to { background-position: -200% 0; } }
@keyframes calendar-fare-spin { to { transform: rotate(360deg); } }
.traveller-popover { right: 1.4rem; width: min(390px, calc(100% - 2.8rem)); padding: 1.05rem; }
.traveller-popover-head { display: flex; margin-bottom: .45rem; align-items: flex-start; justify-content: space-between; }
.traveller-popover-head > div { display: flex; flex-direction: column; }
.traveller-popover-head span, .cabin-selector > span { color: var(--brand-blue); font-size: .57rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }
.traveller-popover-head strong { margin-top: .12rem; color: var(--ink); font-size: .94rem; }
.traveller-popover-head > button { display: grid; width: 30px; height: 30px; padding: 0; place-items: center; color: #8390a4; border: 0; border-radius: 8px; background: #f5f7fa; }
.passenger-row { display: flex; padding: .8rem 0; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid #edf1f6; }
.passenger-row > div:first-child { display: flex; flex-direction: column; }
.passenger-row strong { color: var(--ink); font-size: .72rem; }
.passenger-row span { margin-top: .1rem; color: #8794a8; font-size: .58rem; }
.counter-control { display: grid; min-width: 108px; grid-template-columns: 32px 38px 32px; align-items: center; }
.counter-control button { display: grid; width: 30px; height: 30px; padding: 0; place-items: center; color: var(--brand-blue); border: 1px solid #bfd1f3; border-radius: 8px; background: #f7faff; }
.counter-control button:disabled { color: #b6c0cf; border-color: #e2e7ee; background: #fafbfc; }
.counter-control strong { text-align: center; }
.cabin-selector { padding-top: .9rem; }
.cabin-options { display: grid; margin-top: .55rem; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem; }
.cabin-options button { padding: .58rem .55rem; color: #53637d; border: 1px solid #dce4ef; border-radius: 9px; background: #fbfcfe; font-size: .62rem; font-weight: 600; }
.cabin-options button.active { color: #124eb7; border-color: #8eb1f7; background: #edf4ff; box-shadow: inset 0 0 0 1px #bed2fb; }
.traveller-done { width: 100%; margin-top: .85rem; padding: .65rem; color: white; border: 0; border-radius: 9px; background: linear-gradient(135deg, #1d63f2, #0e49df); font-size: .68rem; font-weight: 600; }
.multi-city-panel { display: none; padding: .85rem; grid-column: 1 / -1; border: 1px solid #dce7f4; border-radius: 14px; background: linear-gradient(180deg, #f8fbff, #f4f8fd); }
.multi-city-panel.is-active { display: block; }
.flight-search.is-multi-city { grid-template-columns: minmax(0, 1fr) auto; gap: .75rem; }
.multi-city-heading { display: flex; margin-bottom: .78rem; padding: 0 .1rem; align-items: center; justify-content: space-between; gap: 1rem; }
.multi-city-heading > div { display: flex; flex-direction: column; }
.multi-city-heading strong { color: var(--ink); font-size: .78rem; }
.multi-city-heading span { margin-top: .12rem; color: #7e8ca1; font-size: .57rem; }
.add-flight-button { padding: .52rem .78rem; color: var(--brand-blue); border: 1px solid #a9c3f7; border-radius: 9px; background: white; box-shadow: 0 4px 10px rgba(31,76,148,.06); font-size: .62rem; font-weight: 700; transition: color .18s, background .18s, transform .18s; }
.add-flight-button:hover:not(:disabled) { color: white; background: var(--brand-blue); transform: translateY(-1px); }
.add-flight-button:disabled { cursor: not-allowed; opacity: .5; }
.multi-city-sector { position: relative; display: grid; margin-top: .62rem; padding: 1.65rem .72rem .72rem; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(170px, .68fr); gap: .62rem; border: 1px solid #dce6f2; border-radius: 12px; background: white; box-shadow: 0 5px 15px rgba(28,60,105,.045); }
.multi-city-sector:first-child { margin-top: 0; }
.sector-number { position: absolute; top: .52rem; left: .72rem; padding: .2rem .42rem; color: #1157d7; border-radius: 999px; background: #eaf2ff; font-size: .5rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.multi-city-sector > [data-airport-picker]:first-of-type::after { position: absolute; z-index: 4; top: 50%; right: -.76rem; display: grid; width: 22px; height: 22px; place-items: center; color: var(--brand-blue); border: 1px solid #c9daf7; border-radius: 50%; background: white; box-shadow: 0 3px 8px rgba(26,61,111,.1); content: "→"; font-size: .66rem; font-weight: 600; transform: translateY(-50%); }
.remove-flight-button { position: absolute; top: .48rem; right: .62rem; display: grid; width: 28px; height: 28px; padding: 0; place-items: center; color: #c34751; border: 1px solid #f0c7ca; border-radius: 8px; background: #fff7f7; font-size: .68rem; }
.remove-flight-button:disabled { visibility: hidden; }

/* Hotel search */
.hotel-search-panel { position: relative; }
.hotel-search { display: grid; grid-template-columns: 1.55fr .76fr .76fr 1.05fr .85fr auto; gap: .6rem; }
.hotel-destination-picker { position: relative; min-width: 0; }
.hotel-destination-picker > .booking-field { width: 100%; }
.hotel-destination-meta strong { color: #5c31d4; background: #f1edff; }
.hotel-room-trigger { width: 100%; padding: 0; justify-content: space-between; color: #162544; border: 0; outline: none; background: transparent; text-align: left; }
.hotel-room-trigger strong { overflow: hidden; min-width: 0; font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.hotel-room-trigger i { margin-left: auto; }
.hotel-nationality-field { position: relative; }
.hotel-nationality-trigger { width: 100%; padding: 0; justify-content: space-between; color: #162544; border: 0; outline: none; background: transparent; text-align: left; }
.hotel-nationality-trigger > i { margin-left: auto; transition: transform .18s ease; }
.hotel-nationality-field.is-open .hotel-nationality-trigger > i { transform: rotate(180deg); }
.hotel-nationality-selected { display: flex; min-width: 0; align-items: center; gap: .42rem; }
.hotel-nationality-selected b { font-size: .9rem; font-weight: 400; line-height: 1; }
.hotel-nationality-selected strong { overflow: hidden; color: #162544; font-size: .7rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.hotel-nationality-menu {
    position: absolute;
    z-index: 70;
    top: calc(100% + .55rem);
    right: 0;
    display: none;
    width: min(270px, calc(100vw - 2rem));
    padding: .5rem;
    border: 1px solid #d7e3f2;
    border-radius: 14px;
    background: rgba(255,255,255,.99);
    box-shadow: 0 22px 55px rgba(13,39,79,.2);
    backdrop-filter: blur(12px);
}
.hotel-nationality-field.is-open .hotel-nationality-menu { display: block; animation: booking-popover-in .18s ease-out; }
.hotel-nationality-menu-head { display: flex; margin: -.05rem 0 .35rem; padding: .48rem .55rem .58rem; align-items: center; gap: .45rem; color: #75849a; border-bottom: 1px solid #edf1f6; font-size: .55rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.hotel-nationality-menu-head i { color: var(--brand-blue); font-size: .72rem; }
.hotel-nationality-option { display: grid; width: 100%; min-height: 43px; padding: .42rem .5rem; grid-template-columns: 28px minmax(0, 1fr) 22px; align-items: center; gap: .38rem; color: #263b5c; border: 0; border-radius: 9px; background: transparent; text-align: left; transition: color .15s ease, background .15s ease, transform .15s ease; }
.hotel-nationality-option:hover, .hotel-nationality-option:focus-visible { color: #104cad; outline: none; background: #edf4ff; transform: translateX(2px); }
.hotel-nationality-option.is-selected { color: #104cad; background: #edf4ff; }
.hotel-nationality-option > b { font-size: 1.05rem; font-weight: 400; line-height: 1; text-align: center; }
.hotel-nationality-option > span { display: flex; min-width: 0; flex-direction: column; font-size: .65rem; font-weight: 650; }
.hotel-nationality-option small { margin-top: .05rem; color: #8a98ab; font-size: .48rem; font-weight: 600; letter-spacing: .08em; }
.hotel-nationality-option > i { visibility: hidden; color: var(--brand-blue); font-size: .78rem; }
.hotel-nationality-option.is-selected > i { visibility: visible; }
.hotel-room-popover {
    position: absolute;
    z-index: 55;
    top: calc(100% + .7rem);
    right: 0;
    display: none;
    width: min(430px, 100%);
    max-height: 520px;
    overflow-y: auto;
    padding: 1rem;
    border: 1px solid #d8e3f0;
    border-radius: 17px;
    background: white;
    box-shadow: 0 24px 60px rgba(13,39,79,.2);
}
.hotel-room-popover.is-open { display: block; animation: booking-popover-in .18s ease-out; }
.hotel-room-head { position: sticky; z-index: 2; top: -1rem; display: flex; margin: -1rem -1rem .75rem; padding: 1rem 1rem .75rem; align-items: flex-start; justify-content: space-between; border-bottom: 1px solid #edf1f5; background: rgba(255,255,255,.97); backdrop-filter: blur(8px); }
.hotel-room-head > div { display: flex; flex-direction: column; }
.hotel-room-head span { color: var(--brand-blue); font-size: .55rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.hotel-room-head strong { margin-top: .12rem; color: var(--ink); font-size: .94rem; }
.hotel-room-head > button, .hotel-remove-room { display: grid; width: 29px; height: 29px; padding: 0; place-items: center; color: #8491a5; border: 0; border-radius: 8px; background: #f3f6f9; }
.hotel-room-card { padding: .75rem; border: 1px solid #e0e8f2; border-radius: 12px; background: #fbfdff; }
.hotel-room-card + .hotel-room-card { margin-top: .65rem; }
.hotel-room-card-head { display: flex; padding-bottom: .52rem; align-items: center; justify-content: space-between; border-bottom: 1px solid #e8eef5; }
.hotel-room-card-head > strong { color: var(--ink); font-size: .69rem; font-weight: 700; }
.hotel-remove-room { color: #ba414b; background: #fff0f1; }
.hotel-guest-row { display: flex; padding: .65rem 0; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid #edf1f5; }
.hotel-guest-row > div:first-child { display: flex; flex-direction: column; }
.hotel-guest-row strong { color: var(--ink); font-size: .68rem; }
.hotel-guest-row span { margin-top: .08rem; color: #8794a7; font-size: .54rem; }
.hotel-room-counter { display: grid; min-width: 102px; grid-template-columns: 30px 40px 30px; align-items: center; }
.hotel-room-counter button { display: grid; width: 29px; height: 29px; padding: 0; place-items: center; color: var(--brand-blue); border: 1px solid #bed0f2; border-radius: 8px; background: white; }
.hotel-room-counter button:disabled { color: #aeb9c8; border-color: #e1e7ee; background: #f7f9fb; cursor: not-allowed; }
.hotel-room-counter strong { text-align: center; }
.hotel-child-ages { padding-top: .65rem; }
.hotel-child-ages > span { color: #61708a; font-size: .56rem; font-weight: 600; }
.hotel-child-ages > div { display: grid; margin-top: .45rem; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .42rem; }
.hotel-child-ages select { width: 100%; padding: .5rem .55rem; color: #344662; border: 1px solid #d8e2ee; border-radius: 8px; outline: none; background: white; font-size: .59rem; }
.hotel-child-ages select:focus { border-color: #88adf6; box-shadow: 0 0 0 3px rgba(21,94,239,.08); }
.hotel-room-actions { position: sticky; bottom: -1rem; display: flex; margin: .75rem -1rem -1rem; padding: .75rem 1rem 1rem; justify-content: space-between; gap: .6rem; border-top: 1px solid #edf1f5; background: rgba(255,255,255,.97); backdrop-filter: blur(8px); }
.hotel-add-room, .hotel-room-done { padding: .58rem .8rem; border-radius: 9px; font-size: .62rem; font-weight: 700; }
.hotel-add-room { color: var(--brand-blue); border: 1px solid #aac4f7; background: #f2f7ff; }
.hotel-add-room:disabled { cursor: not-allowed; opacity: .45; }
.hotel-room-done { min-width: 92px; color: white; border: 1px solid var(--brand-blue); background: var(--brand-blue); }
.hotel-search-button { min-width: 135px; }

/* Bus search */
.bus-search-panel { position: relative; }
.bus-search { display: grid; grid-template-columns: 2.1fr .82fr .92fr auto; gap: .6rem; }
.bus-route-fields { position: relative; display: grid; min-width: 0; grid-template-columns: 1fr 1fr; gap: .6rem; }
.bus-route-fields > .booking-field { width: 100%; }
.bus-swap-button { width: 32px; height: 32px; }
.bus-traveller-field > .bus-traveller-control { display: grid; width: 100%; height: 30px; grid-template-columns: 28px minmax(0, 1fr) 28px; align-items: center; gap: .5rem; }
.bus-traveller-control > button { display: grid; width: 27px; height: 27px; flex: 0 0 27px; padding: 0; place-items: center; color: var(--brand-blue); border: 1px solid #c8d8f2; border-radius: 8px; background: white; transition: color .15s ease, border-color .15s ease, background .15s ease; }
.bus-traveller-control > button i { display: block; line-height: 1; }
.bus-traveller-control > button:hover:not(:disabled) { color: white; border-color: var(--brand-blue); background: var(--brand-blue); }
.bus-traveller-control > button:disabled { color: #aab6c7; border-color: #e1e7ef; background: #f6f8fb; cursor: not-allowed; }
.bus-traveller-control > strong { min-width: 0; color: #162544; font-size: .69rem; line-height: 1; text-align: center; white-space: nowrap; }
.bus-preference-row { margin-top: .15rem; }
.bus-search-button { min-width: 135px; }

/* Package search */
.holiday-search-panel { position: relative; }
.holiday-search { display: grid; padding: 18px; grid-template-columns: 1.25fr 1.35fr .85fr 1fr .82fr 1fr auto; align-items: stretch; gap: 10px; }
.holiday-origin-picker, .holiday-destination-picker { position: relative; min-width: 0; }
.holiday-origin-picker > .booking-field, .holiday-destination-picker > .booking-field { width: 100%; }
.holiday-traveller-trigger { width: 100%; justify-content: space-between; border: 0; background: transparent; }
.holiday-preferences-row { display: flex; min-height: 42px; padding: 7px 4px 0; grid-column: 1 / -1; align-items: center; gap: .75rem; border-top: 1px solid #e6edf6; }
.holiday-preference-label { display: inline-flex; align-items: center; gap: .38rem; color: #405273; font-size: .7rem; font-weight: 650; white-space: nowrap; }
.holiday-preference-label i { color: var(--brand-blue); }
.holiday-type-options { display: flex; align-items: center; gap: .35rem; }
.holiday-type-options label { position: relative; margin: 0; cursor: pointer; }
.holiday-type-options input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; }
.holiday-type-options span { display: inline-flex; min-height: 30px; padding: .4rem .65rem; align-items: center; color: #536581; border: 1px solid #dce6f2; border-radius: 999px; background: #fff; font-size: .65rem; font-weight: 600; }
.holiday-type-options input:checked + span { color: #0d54dc; border-color: #a9c5ff; background: #edf4ff; }
.holiday-category-filter { display: inline-flex; min-width: 235px; min-height: 32px; margin: 0; padding: 0 .65rem; align-items: center; gap: .45rem; border: 1px solid #dce6f2; border-radius: 999px; background: #fff; }
.holiday-category-filter > span { color: #74829a; font-size: .6rem; white-space: nowrap; }
.holiday-custom-select { position: relative; z-index: 1; }
.holiday-custom-select.is-open { z-index: 1090; }
.holiday-category-filter.is-open { border-color: #a9c5ff; box-shadow: 0 0 0 3px rgba(23, 101, 244, .08); }
.holiday-custom-select > select { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; }
.holiday-custom-select-trigger { display: flex; width: 100%; min-width: 0; min-height: 24px; padding: 0; flex: 1 1 auto; align-items: center; color: #162544; border: 0; outline: 0; background: transparent; font-size: .72rem; font-weight: 600; text-align: left; cursor: pointer; }
.holiday-category-filter .holiday-custom-select-trigger { min-width: 130px; min-height: 30px; padding: 0 .2rem; flex-basis: 130px; color: #30415f; font-size: .68rem; font-weight: 650; }
.holiday-custom-select-trigger:focus-visible { border-radius: 6px; box-shadow: 0 0 0 2px rgba(23, 101, 244, .2); }
.holiday-custom-select > i { flex: 0 0 auto; color: #617493; font-size: .62rem; pointer-events: none; transition: transform .18s ease; }
.holiday-custom-select.is-open > i { transform: rotate(180deg); }
.holiday-custom-select-menu { position: absolute; z-index: 2; top: calc(100% + 8px); right: 0; display: none; width: max(100%, 190px); max-height: 250px; overflow-y: auto; padding: 6px; border: 1px solid #d8e3f2; border-radius: 12px; background: #fff; box-shadow: 0 16px 38px rgba(18, 45, 88, .18); scrollbar-color: #91a0b4 transparent; scrollbar-width: thin; }
.holiday-category-filter .holiday-custom-select-menu { left: 0; width: 100%; }
.holiday-custom-select.is-open .holiday-custom-select-menu { display: grid; gap: 2px; }
.holiday-custom-select-menu::-webkit-scrollbar { width: 4px; }
.holiday-custom-select-menu::-webkit-scrollbar-track { background: transparent; }
.holiday-custom-select-menu::-webkit-scrollbar-thumb { border-radius: 999px; background: #91a0b4; }
.holiday-custom-select-option { display: flex; width: 100%; min-height: 34px; padding: .45rem .65rem; align-items: center; color: #314664; border: 0; border-radius: 8px; background: transparent; font-size: .72rem; font-weight: 550; line-height: 1.25; text-align: left; cursor: pointer; }
.holiday-custom-select-option:hover, .holiday-custom-select-option:focus-visible { color: #0d54dc; outline: 0; background: #f0f5ff; }
.holiday-custom-select-option[aria-selected="true"] { color: #0d54dc; background: #e9f1ff; font-weight: 700; }
.holiday-preferences-row > small { margin-left: auto; color: #7e8ba0; font-size: .59rem; }
.holiday-traveller-popover { position: absolute; z-index: 1085; top: 0; right: auto; left: 0; display: none; width: min(340px, calc(100vw - 32px)); padding: 16px; border: 1px solid #d9e4f2; border-radius: 15px; background: #fff; box-shadow: 0 20px 50px rgba(18, 45, 88, .18); }
.holiday-traveller-popover.is-open { display: block; }
.holiday-passenger-row { display: flex; padding: 13px 0; align-items: center; justify-content: space-between; border-bottom: 1px solid #edf1f6; }
.holiday-passenger-row > div:first-child { display: flex; flex-direction: column; }
.holiday-passenger-row > div:first-child strong { color: #17264a; font-size: .76rem; }
.holiday-passenger-row > div:first-child span { margin-top: .14rem; color: #7c8ba3; font-size: .61rem; }

/* Hotel results */
.hotel-summary-icon { background: var(--brand-purple); }
.hotel-results-skeleton { gap: .75rem; }
.hotel-skeleton-card { display: grid; min-height: 94px; padding: .75rem; grid-template-columns: 118px 1fr 90px; align-items: center; gap: 1rem; border: 1px solid #edf1f5; border-radius: 12px; }
.hotel-skeleton-image, .hotel-skeleton-card > div span { display: block; border-radius: 8px; background: linear-gradient(90deg, #eef2f6 25%, #f8fafc 45%, #eef2f6 65%); background-size: 300% 100%; animation: skeleton-shine 1.25s infinite linear; }
.hotel-skeleton-image { width: 118px; height: 76px; }
.hotel-skeleton-card > div span { width: 45%; height: 8px; margin: .45rem 0; }
.hotel-skeleton-card > div span:nth-child(2) { width: 75%; }
.hotel-skeleton-card > div span:nth-child(3) { width: 58%; }

/* Flight results */
html.flight-listing-smooth-scroll { scroll-behavior: smooth; scroll-padding-top: 7.5rem; }
.flight-results-page { min-height: 650px; padding: 3.5rem 0 5rem; background: linear-gradient(180deg, #f2f7fd, #fff 32%); }
.results-title-row { display: flex; margin-bottom: 1.4rem; align-items: flex-end; justify-content: space-between; gap: 1.5rem; }
.results-title-row h1 { margin: .35rem 0 .15rem; color: var(--ink); font-size: clamp(1.7rem, 3vw, 2.35rem); font-weight: 700; letter-spacing: -.045em; }
.results-title-row p { margin: 0; color: var(--muted); font-size: .94rem; }
.modify-search-button { display: inline-flex; min-height: 44px; padding: .75rem 1.1rem; align-items: center; gap: .5rem; color: var(--brand-blue); border: 1px solid #9dbcf8; border-radius: 10px; background: white; font-size: .82rem; font-weight: 600; text-decoration: none; cursor: pointer; }
.modify-search-button:hover { color: white; background: var(--brand-blue); }
.results-error { display: flex; padding: 1.2rem; gap: .9rem; color: #8f2730; border: 1px solid #efbec2; border-radius: 13px; background: #fff3f4; }
.results-error > i { font-size: 1.2rem; }
.results-error strong { font-size: .94rem; }
.results-error ul { margin: .45rem 0 0; padding-left: 1rem; font-size: .82rem; }
.flight-search-summary-wrap { position: sticky; z-index: 25; top: .5rem; display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; gap: .65rem; }
.flight-search-summary { display: grid; min-height: 88px; padding: 1.2rem 1.4rem; grid-template-columns: 1.4fr repeat(5, minmax(0, 1fr)); gap: 1rem; border: 1px solid #dae5f1; border-radius: 15px; background: rgba(255,255,255,.97); box-shadow: 0 10px 30px rgba(22,52,94,.1); backdrop-filter: blur(10px); }
.flight-search-summary > div { display: flex; min-width: 0; flex-direction: column; justify-content: center; }
.flight-search-summary span { color: #8491a5; font-size: .68rem; font-weight: 600; text-transform: uppercase; }
.flight-search-summary strong { overflow: hidden; margin-top: .25rem; color: var(--ink); font-size: .86rem; text-overflow: ellipsis; white-space: nowrap; }
.summary-route { flex-direction: row !important; align-items: center; gap: .7rem; }
.summary-route > div { display: flex; min-width: 0; flex-direction: column; }
.summary-icon { display: grid; flex: 0 0 44px; width: 44px; height: 44px; place-items: center; color: white !important; border-radius: 12px; background: var(--brand-blue); font-size: 1rem !important; }
.summary-modify-search { display: inline-flex; min-width: 96px; padding: .7rem; align-items: center; justify-content: center; flex-direction: column; gap: .32rem; color: var(--brand-blue); border: 1px solid #b7cdf3; border-radius: 14px; background: rgba(255,255,255,.97); box-shadow: 0 10px 30px rgba(22,52,94,.1); font-size: .7rem; font-weight: 650; text-decoration: none; cursor: pointer; backdrop-filter: blur(10px); }
.summary-modify-search i { font-size: .9rem; }
.summary-modify-search:hover { color: white; border-color: var(--brand-blue); background: var(--brand-blue); }
.flight-listing-modify-panel {
    position: relative;
    z-index: 45;
    margin: -0.55rem 0 1rem;
    padding: 1.1rem;
    border: 1px solid #cddcf0;
    border-radius: 16px;
    background: rgba(255, 255, 255, .99);
    box-shadow: 0 18px 45px rgba(22, 52, 94, .13);
}
.flight-listing-modify-panel[hidden] { display: none; }
.flight-listing-modify-panel.is-open { animation: booking-popover-in .18s ease-out; }
.flight-listing-modify-head { display: flex; margin-bottom: .75rem; padding-bottom: .75rem; align-items: flex-start; gap: 1rem; border-bottom: 1px solid #e7edf5; }
.flight-listing-modify-head > div { display: flex; flex-direction: column; }
.flight-listing-modify-head span { color: var(--brand-blue); font-size: .58rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.flight-listing-modify-head h2 { margin: .15rem 0; color: var(--ink); font-size: 1.12rem; font-weight: 700; }
.flight-listing-modify-head p { margin: 0; color: var(--muted); font-size: .72rem; }
.flight-listing-trip-switcher { margin-bottom: .65rem; }
.flight-listing-search-form { grid-template-columns: 2.05fr .82fr .82fr 1.08fr auto; }
.flight-listing-search-form .booking-field { background: white; }
.flight-listing-search-form .flight-modify-submit { min-height: 59px; }
.flight-listing-search-form .flight-modify-submit:disabled { cursor: not-allowed; opacity: .5; box-shadow: none; transform: none; }
.flight-listing-modify-panel .airport-suggestions { z-index: 95; }
.flight-listing-modify-panel .search-notice { margin-bottom: 0; }
.nearby-fare-strip { display: grid; min-height: 88px; margin-top: .95rem; overflow: hidden; grid-template-columns: 46px minmax(0, 1fr) 46px; align-items: stretch; border: 1px solid #dae5f1; border-radius: 15px; background: white; box-shadow: var(--shadow-sm); }
.nearby-fare-nav { display: grid; width: 100%; padding: 0; place-items: center; color: #1681ed; border: 0; background: white; font-size: .92rem; transition: color .16s, background .16s; }
.nearby-fare-nav:hover:not(:disabled) { color: white; background: var(--brand-blue); }
.nearby-fare-nav:disabled { color: #c8d6e7; cursor: not-allowed; }
.nearby-fare-days { display: grid; min-width: 0; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.nearby-fare-day { position: relative; display: flex; min-width: 0; min-height: 86px; padding: .8rem .5rem .7rem; align-items: center; justify-content: center; flex-direction: column; color: #2d405e; border: 0; border-left: 1px solid #e0e7f0; background: white; text-align: center; cursor: pointer; transition: color .16s, background .16s; }
.nearby-fare-day:last-child { border-right: 1px solid #e0e7f0; }
.nearby-fare-day:hover:not(:disabled) { background: #f5f9ff; }
.nearby-fare-day > span { overflow: hidden; max-width: 100%; font-size: .74rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.nearby-fare-day > strong { display: flex; min-height: 24px; margin-top: .32rem; align-items: center; justify-content: center; color: #08a34f; font-size: .96rem; font-weight: 650; font-variant-numeric: tabular-nums; white-space: nowrap; }
.nearby-fare-day > strong em { font-size: .68rem; font-style: normal; font-weight: 500; }
.nearby-fare-day.is-selected { color: #0d59d8; background: #eff6ff; }
.nearby-fare-day.is-selected::after { position: absolute; right: 0; bottom: 0; left: 0; height: 3px; border-radius: 3px 3px 0 0; background: #1681ed; content: ""; }
.nearby-fare-day.is-selected > strong { color: #0d6df0; }
.nearby-fare-day.is-unavailable > strong { color: #9ba9bb; }
.nearby-fare-day:disabled { cursor: not-allowed; opacity: .58; }
.nearby-fare-loading { display: block; width: 54px; height: 8px; border-radius: 999px; background: linear-gradient(90deg, #e5ecf5 25%, #f7f9fc 50%, #e5ecf5 75%); background-size: 200% 100%; animation: calendar-fare-shimmer 1.05s linear infinite; }
.nearby-fare-day.is-navigating { pointer-events: none; opacity: .6; }
.multicity-summary { display: grid; margin-top: .8rem; padding: .85rem 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; border: 1px solid #e1e8f1; border-radius: 12px; background: #f8fbff; }
.multicity-summary > div { display: flex; padding-right: .7rem; flex-direction: column; border-right: 1px solid #e1e7ef; }
.multicity-summary > div:nth-child(3n) { border-right: 0; }
.multicity-summary span { color: var(--brand-blue); font-size: .65rem; font-weight: 600; text-transform: uppercase; }
.multicity-summary strong { margin-top: .18rem; color: var(--ink); font-size: .82rem; }
.multicity-summary em { margin-top: .15rem; color: #718098; font-size: .69rem; font-style: normal; }
.flight-results-panel { margin-top: 1.2rem; }
.results-panel-head { display: flex; min-height: 76px; padding: 1.1rem 1.4rem; align-items: center; justify-content: space-between; gap: 1rem; border: 1px solid #dbe5f0; border-radius: 14px; background: white; box-shadow: var(--shadow-sm); }
.results-panel-head > div { display: flex; flex-direction: column; }
.results-panel-head span { color: #8290a4; font-size: .66rem; font-weight: 600; text-transform: uppercase; }
.results-panel-head strong { margin-top: .18rem; color: var(--ink); font-size: .96rem; }
.api-ready-badge { display: inline-flex; padding: .5rem .75rem; align-items: center; gap: .4rem; color: #08765d !important; border-radius: 999px; background: #eafaf5; font-size: .67rem !important; font-weight: 600; }
.api-ready-badge.is-searching { color: #1559dc !important; background: #eaf2ff; }
.api-ready-badge.is-searching i { animation: live-search-pulse 1.2s ease-in-out infinite; }
.flight-search-progress { height: 3px; overflow: hidden; background: #e9eff7; }
.flight-search-progress span { display: block; width: 34%; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #12b9c8, var(--brand-blue)); animation: live-search-progress 1.25s ease-in-out infinite; }
.flight-results-skeleton { display: grid; padding: 1rem; gap: .7rem; border-right: 1px solid #dbe5f0; border-left: 1px solid #dbe5f0; background: white; }
.flight-skeleton-card { display: grid; padding: 1rem; grid-template-columns: 42px 1fr 120px 90px; align-items: center; gap: 1rem; border: 1px solid #edf1f5; border-radius: 12px; }
.skeleton-logo, .flight-skeleton-card div span, .skeleton-time, .skeleton-price { display: block; border-radius: 6px; background: linear-gradient(90deg, #eef2f6 25%, #f8fafc 45%, #eef2f6 65%); background-size: 300% 100%; animation: skeleton-shine 1.25s infinite linear; }
.skeleton-logo { width: 42px; height: 42px; border-radius: 10px; }
.flight-skeleton-card div span { width: 55%; height: 8px; margin: .35rem 0; }
.flight-skeleton-card div span:last-child { width: 80%; }
.skeleton-time { width: 110px; height: 13px; }.skeleton-price { width: 78px; height: 13px; }
@keyframes skeleton-shine { to { background-position: -300% 0; } }
.async-results-head { border-radius: 14px 14px 0 0; }
.async-results-head + .flight-search-progress { border-right: 1px solid #dbe5f0; border-left: 1px solid #dbe5f0; }
.async-search-note { display: flex; padding: 0 1rem 1rem; align-items: center; justify-content: center; gap: .55rem; color: #71819a; border: 1px solid #dbe5f0; border-top: 0; border-radius: 0 0 14px 14px; background: white; text-align: left; box-shadow: var(--shadow-sm); }
.async-search-note > i { color: var(--brand-blue); font-size: .82rem; animation: calendar-fare-spin .85s linear infinite; }
.async-search-note > div { display: flex; flex-direction: column; }
.async-search-note strong { color: #334b70; font-size: .76rem; font-weight: 600; }
.async-search-note span { margin-top: .1rem; font-size: .65rem; }
@keyframes live-search-progress { from { transform: translateX(-110%); } to { transform: translateX(310%); } }
@keyframes live-search-pulse { 0%, 100% { opacity: .45; transform: scale(.92); } 50% { opacity: 1; transform: scale(1.08); } }
.flight-results-empty { margin-top: .85rem; padding: 3.2rem 1.5rem; border: 1px solid #dbe5f0; border-radius: 14px; background: white; text-align: center; box-shadow: var(--shadow-sm); }
.flight-results-empty > span { display: grid; width: 52px; height: 52px; margin: 0 auto 1rem; place-items: center; color: var(--brand-blue); border-radius: 15px; background: #eaf2ff; font-size: 1.3rem; }
.flight-results-empty h2 { margin: 0; color: var(--ink); font-size: 1.08rem; font-weight: 700; }
.flight-results-empty p { max-width: 520px; margin: .55rem auto 0; color: var(--muted); font-size: .84rem; line-height: 1.65; }
.flight-api-error { display: flex; margin-top: .85rem; padding: 2rem; align-items: flex-start; gap: 1rem; border: 1px solid #efd4d7; border-radius: 14px; background: linear-gradient(135deg, #fff8f8, #fff); box-shadow: var(--shadow-sm); }
.flight-api-error > span { display: grid; width: 48px; height: 48px; flex: 0 0 48px; place-items: center; color: #b43a45; border-radius: 13px; background: #ffe9eb; font-size: 1.15rem; }
.flight-api-error > div { display: flex; flex-direction: column; }
.flight-api-error strong { color: #7f2530; font-size: 1rem; }
.flight-api-error p { max-width: 620px; margin: .4rem 0 .8rem; color: #7c5860; font-size: .8rem; line-height: 1.6; }
.flight-api-error a, .flight-api-error button { display: inline-flex; min-height: 40px; width: fit-content; padding: .55rem .8rem; align-items: center; gap: .4rem; color: #a32f3a; border: 1px solid #e7adb3; border-radius: 8px; background: white; font-size: .74rem; font-weight: 600; text-decoration: none; cursor: pointer; }
.flight-decision-toolbar { margin-top: .9rem; overflow: hidden; border: 1px solid #dbe5f0; border-radius: 14px; background: white; box-shadow: var(--shadow-sm); }
.flight-quick-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.flight-quick-tabs button { display: flex; min-width: 0; min-height: 68px; padding: .75rem .9rem; align-items: center; justify-content: center; gap: .6rem; color: #52647f; border: 0; border-right: 1px solid #e4eaf2; background: white; cursor: pointer; transition: color .16s, background .16s, box-shadow .16s; }
.flight-quick-tabs button:last-child { border-right: 0; }
.flight-quick-tabs button > i { color: #6d81a0; font-size: 1rem; }
.flight-quick-tabs button > span { display: flex; min-width: 0; align-items: flex-start; flex-direction: column; font-size: .76rem; font-weight: 650; }
.flight-quick-tabs button small { margin-top: .12rem; color: #7e8da3; font-size: .64rem; font-weight: 500; }
.flight-quick-tabs button:hover:not(:disabled) { background: #f7faff; }
.flight-quick-tabs button.is-active { color: #0d56d0; background: #eef5ff; box-shadow: inset 0 -3px 0 var(--brand-blue); }
.flight-quick-tabs button.is-active > i, .flight-quick-tabs button.is-active small { color: #0d65ed; }
.flight-quick-tabs button:disabled { color: #9ba8b8; background: #f8fafc; cursor: not-allowed; }
.flight-filter-chips { display: flex; min-height: 52px; padding: .55rem .75rem; align-items: center; gap: .45rem; flex-wrap: wrap; border-top: 1px solid #e6ecf3; background: #fbfcfe; }
.flight-filter-chips > span { margin-right: .15rem; color: #718199; font-size: .65rem; font-weight: 650; text-transform: uppercase; }
.flight-filter-chips button { display: inline-flex; min-height: 32px; padding: .4rem .62rem; align-items: center; gap: .34rem; color: #4d617e; border: 1px solid #d8e2ee; border-radius: 999px; background: white; font-size: .66rem; font-weight: 600; cursor: pointer; }
.flight-filter-chips button i { color: #6e83a2; }
.flight-filter-chips button:hover, .flight-filter-chips button.is-active { color: #0c58d4; border-color: #91b3f4; background: #edf5ff; }
.flight-filter-chips button.is-active i { color: var(--brand-blue); }
.flight-results-layout { display: grid; margin-top: 1rem; grid-template-columns: 270px minmax(0, 1fr); align-items: start; gap: 1rem; }
.flight-filter-sidebar { position: sticky; top: 7rem; overflow-x: hidden; overflow-y: auto; max-height: calc(100vh - 8rem); border: 1px solid #dbe5f0; border-radius: 14px; background: white; box-shadow: 0 8px 24px rgba(26,52,93,.07); scroll-behavior: smooth; overscroll-behavior-y: contain; scrollbar-color: #c4d3e5 transparent; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
.filter-sidebar-head { position: sticky; z-index: 2; top: 0; display: flex; padding: 1.1rem 1rem; align-items: center; justify-content: space-between; gap: .75rem; border-bottom: 1px solid #e8edf4; background: white; }
.filter-sidebar-head > div { display: flex; flex-direction: column; }
.filter-sidebar-head span { color: #7c8ba1; font-size: .68rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.filter-sidebar-head strong { margin-top: .12rem; color: var(--ink); font-size: 1.02rem; }
.filter-sidebar-head .filter-sidebar-actions { display: flex; align-items: center; flex-direction: row; gap: .35rem; }
.filter-sidebar-head button { min-height: 32px; padding: .35rem .55rem; color: var(--brand-blue); border: 0; border-radius: 7px; background: #edf4ff; font-size: .66rem; font-weight: 600; cursor: pointer; }
.filter-sidebar-head button:disabled { color: #9ba8ba; background: #f1f4f7; cursor: default; }
.filter-sidebar-head .mobile-filter-close { display: none; width: 30px; height: 30px; padding: 0; place-items: center; color: #5e708c; background: #f2f5f9; }
.flight-filter-backdrop, .mobile-filter-sheet-actions { display: none; }
.flight-filter-sheet-scroll { display: contents; }
.sidebar-filter-section { min-width: 0; margin: 0; padding: 1rem; border: 0; border-bottom: 1px solid #e9eef4; }
.sidebar-filter-section legend { width: 100%; margin: 0 0 .8rem; padding: 0; color: #172b4c; font-size: .78rem; font-weight: 700; }
.sidebar-filter-last { border-bottom: 0; }
.filter-choice-list { display: flex; flex-direction: column; gap: .72rem; }
.filter-choice-list label { display: grid; min-width: 0; grid-template-columns: 18px minmax(0, 1fr) auto; align-items: center; gap: .55rem; color: #435572; cursor: pointer; }
.filter-choice-list input, .departure-filter-grid input, .refundable-filter input { width: 16px; height: 16px; margin: 0; accent-color: var(--brand-blue); cursor: pointer; }
.filter-choice-list span { overflow: hidden; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.filter-choice-list em { min-width: 20px; color: #8694a8; font-size: .68rem; font-style: normal; text-align: right; }
.airline-filter-list { max-height: 205px; padding-right: .2rem; overflow-y: auto; scrollbar-color: #cbd8e8 transparent; scrollbar-width: thin; }
.departure-filter-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem; }
.departure-filter-grid label { position: relative; cursor: pointer; }
.departure-filter-grid input { position: absolute; opacity: 0; pointer-events: none; }
.departure-filter-grid span { display: flex; min-height: 58px; padding: .5rem .35rem; align-items: center; justify-content: center; flex-direction: column; gap: .28rem; color: #64748c; border: 1px solid #dfe7f1; border-radius: 8px; background: #fbfcfe; font-size: .66rem; line-height: 1.25; text-align: center; transition: color .16s, border-color .16s, background .16s, box-shadow .16s; }
.departure-filter-grid i { color: #7890b2; font-size: .9rem; }
.departure-filter-grid input:checked + span { color: #0e55c9; border-color: #85adf8; background: #eef5ff; box-shadow: inset 0 0 0 1px #b6cffb; }
.departure-filter-grid input:checked + span i { color: var(--brand-blue); }
.price-range-filter { display: flex; flex-direction: column; }
.price-range-filter > span { display: flex; margin-bottom: .5rem; align-items: center; justify-content: space-between; gap: .6rem; color: #71819a; font-size: .66rem; }
.price-range-filter > span strong { color: var(--brand-blue); font-size: .78rem; font-variant-numeric: tabular-nums; }
.price-range-filter input { width: 100%; height: 18px; margin: 0; accent-color: var(--brand-blue); cursor: pointer; }
.price-range-filter > small { display: flex; margin-top: .2rem; justify-content: space-between; color: #8997aa; font-size: .64rem; }
.refundable-filter { display: flex; align-items: center; gap: .55rem; color: #435572; font-size: .7rem; cursor: pointer; }
.preference-filter-list { display: flex; flex-direction: column; gap: .72rem; }
.flight-results-content { min-width: 0; overflow: hidden; border: 1px solid #dbe5f0; border-radius: 14px; background: white; box-shadow: 0 8px 24px rgba(26,52,93,.07); }
.flight-result-list { display: grid; padding: .85rem; gap: .75rem; background: #f8fafd; scroll-behavior: smooth; }
.roundtrip-mobile-tabs { display: none; }
.roundtrip-flight-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: .8rem; }
.roundtrip-journey-column { min-width: 0; overflow: hidden; border: 1px solid #dbe5f0; border-radius: 13px; background: #f5f8fc; }
.roundtrip-journey-head { display: flex; min-height: 74px; padding: .8rem .9rem; align-items: center; justify-content: space-between; gap: .75rem; border-bottom: 1px solid #dce6f1; background: linear-gradient(135deg, #fff, #f3f7fd); }
.roundtrip-journey-heading { display: flex; min-width: 0; flex-direction: column; }
.roundtrip-journey-heading > span { color: var(--brand-blue); font-size: .62rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.roundtrip-journey-heading > strong { display: flex; margin-top: .16rem; align-items: center; gap: .42rem; color: var(--ink); font-size: .92rem; }
.roundtrip-journey-heading > strong i { color: var(--brand-blue); font-size: .7rem; }
.roundtrip-journey-heading > strong b { overflow: hidden; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.roundtrip-journey-heading > small { margin-top: .2rem; color: #76869d; font-size: .64rem; }
.roundtrip-starting-fare { display: flex; flex: 0 0 auto; align-items: flex-end; flex-direction: column; }
.roundtrip-starting-fare span { color: #7b8ba1; font-size: .58rem; font-weight: 650; text-transform: uppercase; }
.roundtrip-starting-fare strong { margin-top: .12rem; color: #0c4bb5; font-size: .92rem; }
.roundtrip-starting-fare small { margin-top: .15rem; color: #8492a7; font-size: .58rem; }
.roundtrip-journey-list { display: grid; padding: .58rem; gap: .58rem; }
.roundtrip-column-empty { display: flex; min-height: 160px; padding: 1.25rem; place-content: center; align-items: center; flex-direction: column; gap: .35rem; color: #75859c; text-align: center; }
.roundtrip-column-empty[hidden] { display: none; }
.roundtrip-column-empty i { color: var(--brand-blue); font-size: 1.05rem; }
.roundtrip-column-empty strong { color: #203858; font-size: .78rem; }
.roundtrip-column-empty span { font-size: .66rem; }
.flight-result-card { overflow: hidden; border: 1px solid #dfe7f0; border-radius: 11px; background: white; box-shadow: 0 5px 16px rgba(26,52,93,.05); scroll-margin-top: 7.5rem; transition: border-color .2s, box-shadow .2s, transform .2s; content-visibility: auto; contain-intrinsic-size: auto 160px; }
.roundtrip-flight-grid .flight-result-card { position: relative; contain-intrinsic-size: auto 225px; }
.roundtrip-flight-grid .flight-result-main { min-height: 0; padding: .72rem .78rem; grid-template-columns: minmax(0, 1fr) minmax(110px, auto); grid-template-areas: "airline fare" "schedule schedule"; gap: .72rem .65rem; }
.roundtrip-flight-grid .flight-result-airline { grid-area: airline; }
.roundtrip-flight-grid .flight-result-airline em { display: none; }
.roundtrip-flight-grid .airline-logo-mark { width: 40px; height: 40px; flex-basis: 40px; border-radius: 9px; }
.roundtrip-flight-grid .flight-result-airline strong { font-size: .78rem; }
.roundtrip-flight-grid .flight-result-schedule { grid-area: schedule; padding-top: .65rem; border-top: 1px solid #edf1f6; grid-template-columns: minmax(65px, auto) minmax(95px, 1fr) minmax(65px, auto); }
.roundtrip-flight-grid .flight-time-block strong { font-size: 1.06rem; }
.roundtrip-flight-grid .flight-time-block span { font-size: .74rem; }
.roundtrip-flight-grid .flight-time-block small { font-size: .61rem; }
.roundtrip-flight-grid .flight-result-fare { grid-area: fare; padding: 0 2.15rem 0 0; align-self: start; border-left: 0; }
.roundtrip-flight-grid .flight-result-fare > span { font-size: .57rem; }
.roundtrip-flight-grid .flight-result-fare strong { font-size: 1.05rem; }
.roundtrip-flight-grid .flight-result-fare em { display: none; }
.roundtrip-flight-grid .select-flight-button { min-width: 96px; min-height: 32px; margin-top: .4rem; padding: .38rem .55rem; font-size: .62rem; }
.roundtrip-flight-grid .flight-result-meta { min-height: 38px; padding: .45rem .72rem; gap: .38rem .62rem; }
.roundtrip-flight-grid .flight-result-meta > span:nth-of-type(n+5):not(.limited-seats) { display: none; }
.roundtrip-flight-grid .flight-result-meta .limited-seats { margin-left: 0; }
.roundtrip-flight-grid .fare-details-toggle { width: 100%; margin: .12rem 0 0; justify-content: flex-end; }
.roundtrip-select-flight { position: absolute; z-index: 2; top: .72rem; right: .72rem; display: grid; width: 26px; height: 26px; padding: 0; place-items: center; color: transparent; border: 2px solid #aebdd0; border-radius: 50%; background: white; cursor: pointer; transition: color .16s, border-color .16s, background .16s, box-shadow .16s; }
.roundtrip-select-flight span { position: absolute; overflow: hidden; width: 1px; height: 1px; clip: rect(0 0 0 0); white-space: nowrap; }
.roundtrip-select-flight i { font-size: .72rem; }
.roundtrip-select-flight:hover { border-color: var(--brand-blue); box-shadow: 0 0 0 4px rgba(21,94,239,.1); }
.roundtrip-select-flight.is-selected, .flight-result-card.is-selected .roundtrip-select-flight { color: white; border-color: var(--brand-blue); background: var(--brand-blue); }
.flight-result-card.is-progressive-pending { display: none; }
.flight-result-card.is-progressive-entering { animation: progressive-fare-in .34s ease-out both; }
.flight-result-card:hover { border-color: #bcd0f4; box-shadow: 0 12px 28px rgba(26,52,93,.1); transform: translateY(-2px); }
@keyframes progressive-fare-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) {
    html.flight-listing-smooth-scroll, .flight-result-list, .flight-filter-sidebar { scroll-behavior: auto; }
    .api-ready-badge.is-searching i, .flight-search-progress span, .async-search-note > i, .nearby-fare-loading, .flight-result-card.is-progressive-entering { animation: none; }
}
.flight-result-main { display: grid; min-height: 118px; padding: .85rem 1rem; grid-template-columns: minmax(175px, .92fr) minmax(320px, 1.8fr) minmax(145px, .62fr); align-items: center; gap: 1rem; }
.flight-result-airline { display: flex; min-width: 0; align-items: center; gap: .6rem; }
.airline-logo-mark { display: grid; overflow: hidden; width: 46px; height: 46px; flex: 0 0 46px; place-items: center; color: #1559dc; border: 1px solid #cfe0ff; border-radius: 10px; background: linear-gradient(145deg, #f4f8ff, #e8f1ff); font-size: .72rem; font-weight: 700; letter-spacing: .04em; }
.airline-logo-image, .airline-code-fallback { grid-area: 1 / 1; }
.airline-logo-image { z-index: 1; display: block; width: 100%; height: 100%; padding: .32rem; object-fit: contain; background: #fff; }
.airline-logo-mark.is-logo-missing .airline-logo-image { display: none; }
.airline-code-fallback { line-height: 1; }
.flight-result-airline > div { display: flex; min-width: 0; flex-direction: column; }
.flight-result-airline strong { overflow: hidden; color: var(--ink); font-size: .84rem; text-overflow: ellipsis; white-space: nowrap; }
.flight-result-airline > div > span { margin-top: .2rem; color: #6d7c93; font-size: .7rem; }
.flight-result-airline em { width: fit-content; margin-top: .28rem; padding: .2rem .42rem; color: var(--brand-blue); border-radius: 999px; background: #edf4ff; font-size: .62rem; font-style: normal; font-weight: 600; }
.flight-result-schedule { display: grid; min-width: 0; grid-template-columns: minmax(72px, auto) minmax(115px, 1fr) minmax(72px, auto); align-items: center; gap: .65rem; }
.flight-time-block { display: flex; min-width: 0; flex-direction: column; }
.flight-time-block strong { color: var(--ink); font-size: 1.25rem; font-weight: 700; line-height: 1; letter-spacing: -.03em; }
.flight-time-block span { margin-top: .32rem; color: #263a5d; font-size: .82rem; font-weight: 600; }
.flight-time-block small { margin-top: .18rem; color: #7e8da2; font-size: .7rem; }
.flight-time-arrival { text-align: right; }
.flight-route-line { display: flex; min-width: 0; align-items: center; flex-direction: column; }
.flight-route-line > span { color: #65758f; font-size: .72rem; font-weight: 600; }
.flight-route-line > i { position: relative; width: 100%; height: 1px; margin: .48rem 0 .38rem; background: #cbd7e7; }
.flight-route-line > i::before, .flight-route-line > i::after { position: absolute; top: 50%; width: 5px; height: 5px; content: ""; border: 1px solid var(--brand-blue); border-radius: 50%; background: white; transform: translateY(-50%); }
.flight-route-line > i::before { left: 0; }.flight-route-line > i::after { right: 0; background: var(--brand-blue); }
.flight-route-line small { color: #267557; font-size: .7rem; font-weight: 600; }
.flight-result-fare { display: flex; min-width: 0; padding-left: 1rem; align-items: flex-end; flex-direction: column; border-left: 1px solid #e5ebf2; text-align: right; }
.flight-result-fare > span { color: #7d8ba0; font-size: .68rem; font-weight: 600; text-transform: uppercase; }
.flight-result-fare strong { margin-top: .22rem; color: #0c3e9c; font-size: 1.32rem; font-weight: 700; line-height: 1; }
.flight-result-fare strong small { margin-right: .1rem; font-size: .9rem; }
.flight-result-fare em { margin-top: .35rem; color: #7e8da1; font-size: .68rem; font-style: normal; }
.flight-result-meta { display: flex; min-height: 42px; padding: .52rem 1rem; align-items: center; gap: .48rem .8rem; flex-wrap: wrap; border-top: 1px solid #edf1f6; background: #fbfcfe; }
.flight-result-meta span { display: inline-flex; align-items: center; gap: .3rem; color: #52657f; font-size: .66rem; font-weight: 500; }
.flight-result-meta i { color: var(--brand-blue); font-size: .74rem; }
.flight-result-meta .flight-value-badge { padding: .28rem .48rem; border-radius: 999px; font-size: .64rem; font-weight: 650; }
.flight-result-meta .flight-value-badge.is-recommended { color: #0d5bcf; background: #e9f2ff; }
.flight-result-meta .flight-value-badge.is-cheapest { color: #087653; background: #e5f8f1; }
.flight-result-meta .flight-value-badge.is-fastest { color: #80540d; background: #fff4dc; }
.flight-result-meta .flight-value-badge i { color: currentColor; }
.flight-result-meta .flight-warning-badge { padding: .28rem .48rem; color: #a04a12; border-radius: 999px; background: #fff0e4; font-size: .64rem; font-weight: 600; }
.flight-result-meta .flight-warning-badge.is-neutral { color: #645380; background: #f1edfa; }
.flight-result-meta .flight-warning-badge i { color: currentColor; }
.flight-result-meta .limited-seats { margin-left: auto; color: #b36408; font-weight: 600; }
.flight-result-meta .limited-seats i { color: #ed8a0a; }
.flight-result-controls { display: flex; min-height: 70px; padding: .85rem 1rem; align-items: center; justify-content: space-between; gap: .9rem; border-bottom: 1px solid #e5ecf4; background: #fff; }
.result-count-wrap { display: flex; min-width: 0; align-items: center; gap: .65rem; }
.filtered-result-count { color: #50627e; font-size: .76rem; font-weight: 600; white-space: nowrap; }
.result-sort { display: flex; min-width: 0; align-items: center; justify-content: flex-end; gap: .55rem; }
.result-sort > span { color: #7c8ba0; font-size: .64rem; font-weight: 650; text-transform: uppercase; white-space: nowrap; }
.result-sort-options { display: grid; overflow: hidden; grid-auto-flow: column; border: 1px solid #d8e3f0; border-radius: 9px; background: white; }
.result-sort-options button { display: inline-flex; min-height: 38px; padding: .48rem .68rem; align-items: center; justify-content: center; gap: .2rem; color: #52647f; border: 0; border-right: 1px solid #e3e9f1; background: white; font-size: .66rem; font-weight: 600; white-space: nowrap; cursor: pointer; }
.result-sort-options button:last-child { border-right: 0; }
.result-sort-options button i { color: #8090a6; font-size: .6rem; }
.result-sort-options button:hover { color: #0e58cf; background: #f3f7fd; }
.result-sort-options button.is-active { color: white; background: var(--brand-blue); }
.result-sort-options button.is-active i { color: white; }
.mobile-filter-toggle { display: none; height: 36px; padding: 0 .65rem; align-items: center; gap: .38rem; color: var(--brand-blue); border: 1px solid #abc5f7; border-radius: 8px; background: #f5f9ff; font-size: .58rem; font-weight: 600; cursor: pointer; }
.mobile-filter-toggle span { display: grid; min-width: 17px; height: 17px; padding: 0 .2rem; place-items: center; color: white; border-radius: 999px; background: var(--brand-blue); font-size: .46rem; }
.mobile-filter-toggle span[hidden] { display: none; }
.flight-result-card.is-selected { border-color: #3f7cf0; box-shadow: 0 0 0 2px rgba(21,94,239,.11), 0 12px 28px rgba(26,52,93,.11); }
.select-flight-button { min-width: 120px; min-height: 40px; margin-top: .58rem; padding: .55rem .78rem; color: white; border: 0; border-radius: 8px; background: var(--brand-blue); box-shadow: 0 5px 14px rgba(21,94,239,.2); font-size: .7rem; font-weight: 700; cursor: pointer; }
.view-fares-button { display: inline-flex; align-items: center; justify-content: center; flex-direction: column; gap: .12rem; line-height: 1.1; }
.view-fares-button > small { color: rgba(255,255,255,.78); font-size: .56rem; font-weight: 500; }
.flight-result-card.is-selected .select-flight-button { color: #07553f; background: #dff8ef; box-shadow: none; }
.flight-result-card.is-selected .view-fares-button > small { color: #32816a; }
.fare-details-toggle { display: inline-flex; margin-left: auto; padding: .2rem 0; align-items: center; gap: .38rem; color: var(--brand-blue); border: 0; background: transparent; font-size: .72rem; font-weight: 600; cursor: pointer; }
.fare-details-toggle i:last-child { transition: transform .2s; }
.fare-details-toggle[aria-expanded="true"] i:last-child { transform: rotate(180deg); }
.flight-fare-details { display: grid; padding: 1rem 1.1rem; grid-template-columns: .8fr 1.25fr .9fr; gap: 1rem; border-top: 1px solid #e6edf5; background: linear-gradient(180deg, #fbfdff, #f6f9fd); }
.flight-fare-details > div { padding: .8rem; border: 1px solid #e0e8f2; border-radius: 10px; background: white; }
.flight-fare-details > div > strong { display: block; margin-bottom: .65rem; color: #13294b; font-size: .78rem; }
.fare-breakdown-panel dl { margin: 0; }
.fare-breakdown-panel dl div { display: flex; padding: .4rem 0; justify-content: space-between; gap: .7rem; color: #687992; border-bottom: 1px dashed #e4eaf2; font-size: .7rem; }
.fare-breakdown-panel dl div:last-child { color: #0b347f; border-bottom: 0; font-weight: 700; }
.fare-breakdown-panel dt, .fare-breakdown-panel dd { margin: 0; }
.segment-detail { padding: .4rem 0; border-bottom: 1px dashed #e4eaf2; }
.segment-detail:last-child { padding-bottom: 0; border-bottom: 0; }
.segment-detail > span { color: var(--brand-blue); font-size: .7rem; font-weight: 700; }
.segment-detail p { margin: .22rem 0; color: #263b5d; font-size: .71rem; }
.segment-detail small { color: #7d8ba0; font-size: .68rem; }
.fare-policy-panel { display: flex; flex-direction: column; gap: .48rem; }
.fare-policy-panel span { display: flex; align-items: center; gap: .4rem; color: #536682; font-size: .68rem; }
.fare-policy-panel span i { color: var(--brand-blue); }
.fare-policy-panel small { margin-top: auto; color: #7f8da1; font-size: .66rem; line-height: 1.55; }
.no-filtered-flights { padding: 2rem; align-items: center; flex-direction: column; gap: .35rem; color: #71829b; border: 1px dashed #cbd8e8; border-radius: 12px; background: white; text-align: center; }
.no-filtered-flights:not([hidden]) { display: flex; }
.no-filtered-flights i { color: var(--brand-blue); font-size: 1.2rem; }
.no-filtered-flights strong { color: #1c3357; font-size: .9rem; }
.no-filtered-flights span { font-size: .72rem; }
.flight-selection-tray { position: sticky; z-index: 8; right: 0; bottom: .75rem; left: 0; display: flex; margin: .8rem 1rem; padding: .75rem .8rem .75rem 1rem; align-items: center; justify-content: space-between; gap: 1rem; color: white; border: 1px solid rgba(255,255,255,.15); border-radius: 12px; background: linear-gradient(110deg, #071a3b, #103d92); box-shadow: 0 16px 35px rgba(8,30,70,.28); }
.flight-selection-tray[hidden] { display: none; }
.flight-selection-tray > div:not(#selectedFlightInputs) { display: flex; flex-direction: column; }
.flight-selection-tray span { color: #bed2f6; font-size: .64rem; font-weight: 600; text-transform: uppercase; }
.flight-selection-tray strong { margin-top: .15rem; font-size: .86rem; }
.flight-selection-tray button { display: inline-flex; min-width: 200px; height: 46px; padding: 0 1rem; align-items: center; justify-content: center; gap: .55rem; color: white; border: 0; border-radius: 9px; background: #1765f2; font-size: .74rem; font-weight: 700; cursor: pointer; }
.flight-selection-tray button:disabled { color: #7f8da5; background: #d9e1ec; box-shadow: none; cursor: not-allowed; }
.flight-selection-tray.is-roundtrip { position: fixed; z-index: 1110; right: 0; bottom: 0; left: 0; display: grid; width: 100%; margin: 0; padding: .65rem max(20px, calc((100vw - 1320px) / 2 + 20px)); box-sizing: border-box; grid-template-columns: minmax(0, 1fr) 126px 210px; align-items: stretch; justify-content: stretch; gap: .5rem; border-right: 0; border-bottom: 0; border-left: 0; border-radius: 0; background: linear-gradient(112deg, #07162f, #0b367e); box-shadow: 0 -12px 34px rgba(8,30,70,.24); }
.flight-selection-tray.is-roundtrip[hidden] { display: none; }
.flight-selection-tray.is-roundtrip > #selectedFlightInputs { display: none; }
.flight-selection-tray.is-roundtrip > div:not(#selectedFlightInputs) { flex-direction: initial; }
.roundtrip-selection-flights { display: grid; width: 100%; min-width: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem; }
.roundtrip-selected-flight { display: grid; min-width: 0; min-height: 66px; padding: .55rem .65rem; grid-template-columns: minmax(125px, .9fr) minmax(135px, 1fr) auto; align-items: center; gap: .65rem; border: 1px solid rgba(255,255,255,.15); border-radius: 9px; background: rgba(255,255,255,.07); }
.roundtrip-selected-flight.is-empty { opacity: .66; }
.roundtrip-selected-airline { display: flex; min-width: 0; align-items: center; gap: .5rem; }
.roundtrip-selected-logo { position: relative; display: grid; overflow: hidden; width: 36px; height: 36px; flex: 0 0 36px; place-items: center; color: #d6e5ff; border-radius: 8px; background: rgba(255,255,255,.12); font-size: .54rem; font-weight: 700; }
.roundtrip-selected-logo img { position: absolute; inset: 0; width: 100%; height: 100%; padding: .2rem; object-fit: contain; background: white; }
.roundtrip-selected-logo img[hidden] { display: none; }
.roundtrip-selected-airline > div { display: flex; min-width: 0; flex-direction: column; }
.roundtrip-selected-airline em { color: #86b4ff; font-size: .54rem; font-style: normal; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.roundtrip-selected-airline strong { overflow: hidden; margin-top: .08rem; color: white; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.roundtrip-selected-airline small { overflow: hidden; margin-top: .08rem; color: #aebfdb; font-size: .56rem; text-overflow: ellipsis; white-space: nowrap; }
.roundtrip-selected-route { display: grid; min-width: 0; grid-template-columns: minmax(42px, 1fr) auto minmax(42px, 1fr); align-items: center; gap: .4rem; }
.roundtrip-selected-route > div { display: flex; min-width: 0; flex-direction: column; }
.roundtrip-selected-route > div:last-child { align-items: flex-end; text-align: right; }
.roundtrip-selected-route b { color: white; font-size: .78rem; font-variant-numeric: tabular-nums; }
.roundtrip-selected-route span { margin-top: .12rem; color: #b9cae5; font-size: .57rem; font-weight: 600; text-transform: none; }
.roundtrip-selected-route > i { color: #72a8ff; font-size: .65rem; }
.roundtrip-selected-price { display: flex; min-width: 72px; align-items: flex-end; flex-direction: column; }
.roundtrip-selected-price span { color: #aebfdb; font-size: .52rem; }
.roundtrip-selected-price strong { margin-top: .12rem; color: white; font-size: .78rem; white-space: nowrap; }
.roundtrip-selection-total { display: flex; min-width: 0; padding: 0 .4rem .02rem .65rem; justify-content: center; flex-direction: column !important; border-left: 1px solid rgba(255,255,255,.16); }
.roundtrip-selection-total span { color: #b9cae5; font-size: .56rem; }
.roundtrip-selection-total strong { color: white; font-size: 1.04rem; white-space: nowrap; }
.roundtrip-selection-total small { margin-top: .16rem; color: #aebfdb; font-size: .53rem; white-space: nowrap; }
.flight-selection-tray.is-roundtrip > button { width: 210px; min-width: 210px; height: auto; min-height: 66px; padding: 0 1.15rem; align-self: stretch; justify-self: end; font-size: .86rem; letter-spacing: .01em; }
.flight-selection-tray.is-roundtrip > button span { color: white; font-size: .82rem; font-weight: 750; letter-spacing: .015em; text-transform: none; }
.flight-selection-tray.is-roundtrip > button i { font-size: .9rem; }
html.roundtrip-flight-results-active .flight-results-page { padding-bottom: 7.5rem; }
.is-roundtrip-results .mobile-flight-actions { display: none; }
.live-fare-note { display: flex; padding: .75rem 1rem; align-items: center; gap: .8rem; border-top: 1px solid #e6edf5; background: white; }
.live-fare-note span { display: inline-flex; align-items: center; gap: .35rem; color: #08765d; font-size: .68rem; font-weight: 600; white-space: nowrap; }
.live-fare-note p { margin: 0; color: #6f7f95; font-size: .67rem; }
.live-fare-note em { margin-left: auto; color: #536782; font-size: .65rem; font-style: normal; font-weight: 600; white-space: nowrap; }
.mobile-flight-actions { display: none; }

/* Multi-city combined itinerary cards */
.multicity-itinerary-card { contain-intrinsic-size: auto 285px; }
.multicity-itinerary-card .multicity-itinerary-main { display: block; min-height: 0; padding: 0; }
.multicity-itinerary-head { display: flex; min-height: 46px; padding: .68rem .9rem; align-items: center; justify-content: space-between; gap: .8rem; border-bottom: 1px solid #e2eaf4; background: linear-gradient(180deg, #fff, #fbfdff); }
.multicity-itinerary-head > div { display: flex; min-width: 0; align-items: center; gap: .65rem; }
.multicity-itinerary-head span { color: var(--brand-blue); font-size: .59rem; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; }
.multicity-itinerary-head strong { display: inline-flex; align-items: center; gap: .55rem; color: var(--ink); font-size: .8rem; font-weight: 650; }
.multicity-itinerary-head strong i { width: 4px; height: 4px; border-radius: 50%; background: #9fb0c6; }
.multicity-itinerary-head > em { padding: .25rem .5rem; color: #4c6383; border: 1px solid #dce6f2; border-radius: 999px; background: #f7faff; font-size: .58rem; font-style: normal; font-weight: 650; white-space: nowrap; }
.multicity-itinerary-content { display: grid; grid-template-columns: minmax(0, 1fr) 170px; align-items: stretch; }
.multicity-itinerary-legs { min-width: 0; padding: .18rem .9rem; }
.multicity-itinerary-leg { display: grid; min-height: 83px; grid-template-columns: minmax(145px, .9fr) minmax(112px, .65fr) minmax(105px, 1fr) minmax(112px, .65fr); align-items: center; gap: .65rem; }
.multicity-itinerary-leg + .multicity-itinerary-leg { border-top: 1px solid #e8eef5; }
.multicity-itinerary-leg .flight-result-airline { gap: .55rem; }
.multicity-itinerary-leg .flight-result-airline strong { font-size: .78rem; }
.multicity-itinerary-leg .flight-result-airline > div > span { font-size: .62rem; }
.multicity-leg-time { display: flex; min-width: 0; flex-direction: column; }
.multicity-leg-time small { overflow: hidden; color: #7a899e; font-size: .58rem; text-overflow: ellipsis; white-space: nowrap; }
.multicity-leg-time strong { display: flex; margin-top: .18rem; align-items: baseline; gap: .28rem; color: #29405f; font-size: .74rem; font-weight: 650; white-space: nowrap; }
.multicity-leg-time strong b { color: var(--ink); font-size: 1.1rem; font-weight: 750; letter-spacing: -.03em; }
.multicity-leg-time.is-arrival { text-align: right; }
.multicity-leg-time.is-arrival strong { justify-content: flex-end; }
.multicity-leg-route { display: flex; min-width: 0; align-items: center; flex-direction: column; }
.multicity-leg-route span, .multicity-leg-route small { color: #60718a; font-size: .59rem; font-weight: 550; }
.multicity-leg-route small { color: #147b5c; }
.multicity-leg-route i { position: relative; width: 100%; height: 1px; margin: .28rem 0 .25rem; background: #bdd0e8; }
.multicity-leg-route i::before, .multicity-leg-route i::after { position: absolute; top: 50%; width: 5px; height: 5px; content: ""; border: 1px solid var(--brand-blue); border-radius: 50%; background: white; transform: translateY(-50%); }
.multicity-leg-route i::before { left: 0; }
.multicity-leg-route i::after { right: 0; background: var(--brand-blue); }
.multicity-itinerary-fare { display: flex; min-width: 0; padding: .8rem .85rem; align-items: flex-end; justify-content: center; flex-direction: column; border-left: 1px solid #e2eaf4; background: #fbfdff; text-align: right; }
.multicity-itinerary-fare > span { color: #718198; font-size: .56rem; font-weight: 700; letter-spacing: .045em; text-transform: uppercase; }
.multicity-itinerary-fare > strong { display: flex; margin-top: .16rem; align-items: flex-start; color: #0a347d; font-size: 1.35rem; line-height: 1; letter-spacing: -.035em; }
.multicity-itinerary-fare > strong small { margin: .08rem .1rem 0 0; font-size: .78rem; }
.multicity-itinerary-fare > em { margin-top: .2rem; color: #7b8ba0; font-size: .58rem; font-style: normal; }
.multicity-book-form { width: 100%; margin-top: .7rem; }
.multicity-book-form button { display: inline-flex; width: 100%; min-height: 38px; padding: .55rem .75rem; align-items: center; justify-content: center; gap: .45rem; color: white; border: 0; border-radius: 9px; background: var(--brand-blue); box-shadow: 0 7px 16px rgba(23,91,220,.2); font-size: .7rem; font-weight: 700; cursor: pointer; transition: background .16s, transform .16s, box-shadow .16s; }
.multicity-book-form button:hover { background: #0c4fd0; box-shadow: 0 9px 20px rgba(23,91,220,.27); transform: translateY(-1px); }
.multicity-book-form button:disabled { cursor: wait; opacity: .72; transform: none; }
.multicity-book-form button:disabled i { animation: multicity-book-spin .8s linear infinite; }
@keyframes multicity-book-spin { to { transform: rotate(360deg); } }
.multicity-itinerary-meta .fare-details-toggle { margin-left: auto; }
.multicity-detail-route { display: grid; padding: .72rem; grid-template-columns: minmax(90px, auto) minmax(110px, 1fr) minmax(90px, auto); align-items: center; gap: .75rem; }
.multicity-detail-route > div { display: flex; min-width: 0; flex-direction: column; }
.multicity-detail-route > div:last-child { align-items: flex-end; text-align: right; }
.multicity-detail-route b { color: var(--ink); font-size: 1rem; }
.multicity-detail-route > div > span { margin-top: .14rem; color: #2e4465; font-size: .72rem; font-weight: 650; }
.multicity-detail-route > div > small { margin-top: .12rem; color: #74849a; font-size: .62rem; }
.multicity-detail-route > div:nth-child(2) { align-items: center; text-align: center; }
.multicity-detail-route > div:nth-child(2) > span, .multicity-detail-route > div:nth-child(2) > small { color: #187a5d; font-size: .62rem; font-weight: 600; }
.multicity-detail-route > div:nth-child(2) > i { position: relative; width: 100%; height: 1px; margin: .25rem 0 .12rem; background: #b9cce6; }
.multicity-detail-route > div:nth-child(2) > i::after { position: absolute; top: 50%; right: 0; width: 6px; height: 6px; content: ""; border-radius: 50%; background: var(--brand-blue); transform: translateY(-50%); }
.flight-modal-summary-card .multicity-itinerary-main { display: block; min-height: 0; padding: 0; }

/* Flight details and fare-option modals */
body.flight-details-modal-open, body.flight-fares-modal-open { overflow: hidden; }
.flight-details-modal[hidden] { display: none; }
.flight-details-modal { position: fixed; z-index: 1200; inset: 0; display: grid; padding: 1rem; place-items: center; opacity: 0; transition: opacity .18s ease; }
.flight-details-modal.is-open { opacity: 1; }
.flight-details-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: rgba(7,20,43,.58); cursor: default; backdrop-filter: blur(3px); }
.flight-details-dialog { position: relative; display: flex; overflow: hidden; width: min(1060px, calc(100vw - 2rem)); max-height: min(84vh, 740px); flex-direction: column; border: 1px solid rgba(216,227,240,.9); border-radius: 18px; outline: none; background: #f5f8fc; box-shadow: 0 30px 80px rgba(5,19,43,.35); transform: translateY(14px) scale(.985); transition: transform .18s ease; }
.flight-details-modal.is-open .flight-details-dialog { transform: translateY(0) scale(1); }
.flight-details-modal-head { display: flex; min-height: 64px; padding: .75rem 1rem; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid #dce5f0; background: white; }
.flight-details-modal-head > div { display: flex; flex-direction: column; }
.flight-details-modal-head span { color: var(--brand-blue); font-size: .68rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.flight-details-modal-head h2 { margin: .08rem 0 0; color: var(--ink); font-size: 1.18rem; letter-spacing: -.025em; }
.flight-details-modal-head > button { display: grid; width: 38px; height: 38px; padding: 0; place-items: center; color: #52647f; border: 1px solid #d7e1ed; border-radius: 10px; background: #f8fafc; font-size: .84rem; cursor: pointer; transition: color .16s, border-color .16s, background .16s; }
.flight-details-modal-head > button:hover { color: white; border-color: var(--brand-blue); background: var(--brand-blue); }
.flight-details-modal-scroll { min-height: 0; padding: .75rem; overflow-y: auto; overscroll-behavior: contain; scrollbar-color: #aebdd0 transparent; scrollbar-width: thin; }
.flight-modal-summary-card { overflow: hidden; border: 1px solid #dbe5f0; border-radius: 15px; background: white; box-shadow: 0 8px 24px rgba(26,52,93,.07); }
.flight-modal-summary-card .flight-result-main { min-height: 105px; padding: .9rem 1rem; grid-template-columns: minmax(175px, .95fr) minmax(310px, 1.8fr) minmax(140px, .65fr); }
.flight-modal-summary-card .flight-result-fare { justify-content: center; }
.flight-modal-summary-card .flight-result-meta { min-height: 40px; padding: .5rem 1rem; }
.flight-modal-content { margin-top: .75rem; padding: .8rem; border: 1px solid #dbe5f0; border-radius: 14px; background: white; box-shadow: 0 8px 24px rgba(26,52,93,.07); }
.flight-details-modal .flight-fare-details { display: grid; padding: 0; grid-template-columns: minmax(0, 1.35fr) minmax(205px, .62fr) minmax(225px, .7fr); grid-template-rows: auto; align-items: stretch; gap: .75rem; border: 0; background: transparent; }
.flight-details-modal .flight-fare-details > div { padding: .9rem; border-color: #dce5ef; border-radius: 11px; background: #fff; }
.flight-details-modal .segment-detail-panel { grid-column: 1; grid-row: 1; }
.flight-details-modal .fare-breakdown-panel { grid-column: 2; grid-row: 1; }
.flight-details-modal .fare-policy-panel { grid-column: 3; grid-row: 1; }
.flight-details-modal .flight-fare-details > div > strong { margin-bottom: .65rem; font-size: .9rem; }
.flight-details-modal .segment-detail { padding: 0; border: 1px solid #e0e7f0; border-radius: 11px; }
.flight-details-modal .segment-detail + .segment-detail { margin-top: .85rem; }
.segment-airline-row { display: flex; min-height: 40px; padding: .55rem .7rem; align-items: center; justify-content: space-between; gap: .65rem; border-bottom: 1px solid #e7edf4; background: #f8fbff; }
.segment-airline-row span { display: inline-flex; align-items: center; gap: .38rem; color: #243a5e; font-size: .74rem; font-weight: 650; }
.segment-airline-row span i { color: var(--brand-blue); }
.segment-airline-row small { color: #75849a; font-size: .66rem; }
.segment-route-timeline { display: grid; min-height: 150px; padding: .75rem; grid-template-columns: 78px 26px minmax(0, 1fr); gap: .6rem; }
.segment-time-column { display: flex; min-height: 124px; justify-content: space-between; flex-direction: column; }
.segment-time-column > div { display: flex; flex-direction: column; }
.segment-time-column b { color: var(--ink); font-size: 1rem; }
.segment-time-column span { margin-top: .15rem; color: #708098; font-size: .68rem; }
.segment-time-column em { color: #687890; font-size: .68rem; font-style: normal; }
.segment-line-column { position: relative; z-index: 0; display: flex; min-height: 124px; align-items: center; justify-content: space-between; flex-direction: column; }
.segment-line-column::before { position: absolute; z-index: -1; top: 6px; bottom: 6px; left: 50%; width: 2px; content: ""; background: #2f82ef; transform: translateX(-50%); }
.segment-line-column > i { width: 12px; height: 12px; flex: 0 0 12px; border: 2px solid #1681ed; border-radius: 50%; background: white; }
.segment-line-column > span { display: grid; width: 28px; height: 28px; place-items: center; color: white; border-radius: 50%; background: var(--brand-blue); box-shadow: 0 0 0 4px white; }
.segment-line-column > span i { font-size: .68rem; transform: rotate(90deg); }
.segment-airport-column { display: flex; min-width: 0; min-height: 124px; justify-content: space-between; flex-direction: column; }
.segment-airport-column > div { display: flex; min-width: 0; flex-direction: column; }
.segment-airport-column strong { overflow: hidden; color: #152b4c; font-size: .86rem; text-overflow: ellipsis; white-space: nowrap; }
.segment-airport-column span { margin-top: .25rem; color: #6e7f96; font-size: .7rem; line-height: 1.45; }
.flight-details-modal .fare-breakdown-panel dl div { padding: .42rem 0; font-size: .72rem; }
.flight-details-modal .fare-policy-panel { gap: .5rem; }
.flight-details-modal .fare-policy-panel span { align-items: flex-start; font-size: .74rem; line-height: 1.45; }
.flight-details-modal .fare-policy-panel small { margin-top: .1rem; font-size: .63rem; }

@media (prefers-reduced-motion: reduce) {
    .flight-details-modal, .flight-details-dialog { transition: none; }
}

.flight-fares-modal[hidden] { display: none; }
.flight-fares-modal { position: fixed; z-index: 1210; inset: 0; display: grid; padding: 1rem; place-items: center; opacity: 0; transition: opacity .18s ease; }
.flight-fares-modal.is-open { opacity: 1; }
.flight-fares-dialog { position: relative; display: flex; overflow: hidden; width: min(1040px, calc(100vw - 2rem)); max-height: min(88vh, 790px); flex-direction: column; border: 1px solid rgba(216,227,240,.94); border-radius: 18px; outline: none; background: #f5f8fc; box-shadow: 0 30px 80px rgba(5,19,43,.38); transform: translateY(14px) scale(.985); transition: transform .18s ease; }
.flight-fares-modal.is-open .flight-fares-dialog { transform: translateY(0) scale(1); }
.flight-fares-modal-scroll { min-height: 0; padding: .8rem; overflow-y: auto; overscroll-behavior: contain; scrollbar-color: #aebdd0 transparent; scrollbar-width: thin; }
.fare-options-flight-summary { overflow: hidden; margin-bottom: .75rem; border: 1px solid #dbe5f0; border-radius: 13px; background: white; box-shadow: 0 7px 22px rgba(26,52,93,.06); }
.fare-options-flight-summary-inner { display: grid; min-height: 96px; padding: .85rem 1rem; grid-template-columns: minmax(200px, .8fr) minmax(390px, 1.7fr); align-items: center; gap: 1.25rem; }
.fare-options-carousel { position: relative; min-width: 0; }
.flight-fare-option-grid { display: grid; padding: 0 0 .45rem; grid-auto-flow: column; grid-auto-columns: calc((100% - 2.25rem) / 4); align-items: stretch; gap: .75rem; overflow-x: auto; scroll-behavior: smooth; scroll-snap-type: x mandatory; overscroll-behavior-inline: contain; scrollbar-color: #8eacd8 #eaf0f8; scrollbar-width: thin; }
.flight-fare-option-grid::-webkit-scrollbar { height: 7px; }
.flight-fare-option-grid::-webkit-scrollbar-track { border-radius: 999px; background: #eaf0f8; }
.flight-fare-option-grid::-webkit-scrollbar-thumb { border-radius: 999px; background: #8eacd8; }
.fare-options-scroll { position: absolute; z-index: 3; top: 50%; display: grid; width: 36px; height: 36px; padding: 0; place-items: center; color: #185fd8; border: 1px solid #c7d9f5; border-radius: 50%; background: rgba(255,255,255,.96); box-shadow: 0 6px 18px rgba(20,55,105,.2); cursor: pointer; transform: translateY(-50%); }
.fare-options-scroll[hidden] { display: none; }
.fare-options-scroll-left { left: .35rem; }
.fare-options-scroll-right { right: .35rem; }
.fare-options-scroll:hover { color: white; border-color: var(--brand-blue); background: var(--brand-blue); }
.flight-fare-option-card { display: flex; overflow: hidden; min-width: 0; flex-direction: column; border: 1px solid #d9e4ef; border-radius: 12px; background: white; box-shadow: 0 7px 18px rgba(25,51,91,.055); scroll-snap-align: start; }
.flight-fare-option-card > header { display: flex; min-height: 54px; padding: .58rem .65rem; align-items: center; justify-content: space-between; gap: .5rem; border-bottom: 1px solid #e7edf4; }
.flight-fare-option-card > header > div { display: flex; min-width: 0; flex-direction: column; }
.flight-fare-option-card > header span { color: #718097; font-size: .6rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.flight-fare-option-card > header h3 { overflow: hidden; margin: .12rem 0 0; color: var(--ink); font-size: .9rem; text-overflow: ellipsis; white-space: nowrap; }
.flight-fare-option-card > header > em { flex: 0 0 auto; padding: .25rem .4rem; color: #08765d; border-radius: 999px; background: #e5f8f2; font-size: .52rem; font-style: normal; font-weight: 650; }
.fare-option-price { display: flex; padding: .58rem .65rem; align-items: baseline; gap: .28rem; border-bottom: 1px solid #e8eef5; background: linear-gradient(90deg, #f7fbff, #fff); }
.fare-option-price > span { color: #718198; font-size: .64rem; font-weight: 600; }
.fare-option-price > strong { color: #0c4fbe; font-size: 1.18rem; line-height: 1; }
.fare-option-price > strong small { font-size: .78rem; }
.fare-option-price > em { margin-left: auto; color: #8491a4; font-size: .52rem; font-style: normal; }
.flight-fare-option-card > section { padding: .55rem .65rem 0; }
.flight-fare-option-card > section h4 { margin: 0 0 .45rem; color: #1c3152; font-size: .72rem; letter-spacing: .015em; text-transform: uppercase; }
.flight-fare-option-card > section h4 i { color: #51657e; }
.flight-fare-option-card > section p { display: flex; margin: .26rem 0 0; align-items: flex-start; gap: .3rem; color: #4f627e; font-size: .64rem; line-height: 1.35; }
.flight-fare-option-card > section p i { margin-top: .08rem; color: #0fb887; font-size: .72rem; }
.flight-fare-option-card > section .fare-option-warning i { color: #e28a16; }
.flight-fare-option-card > section .fare-option-unavailable i { color: #d95757; }
.flight-fare-option-card > section .fare-option-unknown i { color: #8594a8; }
.flight-fare-option-card > section .fare-option-seats-left { color: #a85b08; font-weight: 650; }
.flight-fare-option-card > section .fare-option-seats-left i { color: #e18417; }
.flight-fare-option-card > footer { display: flex; margin-top: auto; padding: .58rem .65rem; justify-content: flex-end; border-top: 1px solid #e6edf4; }
.flight-fare-option-card > footer button { display: inline-flex; width: 100%; height: 38px; padding: 0 .7rem; align-items: center; justify-content: center; gap: .38rem; color: white; border: 0; border-radius: 8px; background: var(--brand-blue); box-shadow: 0 5px 13px rgba(21,94,239,.18); font-size: .66rem; font-weight: 700; cursor: pointer; }
.flight-fare-option-card > footer button:hover { background: #0c4fd1; }

@media (prefers-reduced-motion: reduce) {
    .flight-fares-modal, .flight-fares-dialog { transition: none; }
}

/* Flight checkout */
.flight-checkout-page { min-height: 680px; padding: 2.6rem 0 5rem; font-size: 1rem; background: linear-gradient(180deg, #edf5ff 0, #f8fbff 250px, #fff 100%); }
.checkout-progress { display: grid; max-width: 830px; margin: 0 auto 2rem; grid-template-columns: repeat(4, 1fr); }
.checkout-progress span { position: relative; display: flex; align-items: center; justify-content: center; gap: .48rem; color: #7b899d; font-size: .75rem; font-weight: 650; }
.checkout-progress span::after { position: absolute; z-index: 0; top: 50%; right: -28%; width: 56%; height: 1px; content: ""; background: #ccd8e7; }
.checkout-progress span:last-child::after { display: none; }
.checkout-progress i { position: relative; z-index: 1; display: grid; width: 26px; height: 26px; place-items: center; border: 1px solid #cbd7e6; border-radius: 50%; background: #f7faff; }
.checkout-progress .is-complete { color: #08765d; }.checkout-progress .is-complete i { color: white; border-color: #11a77e; background: #11a77e; }
.checkout-progress .is-active { color: var(--brand-blue); }.checkout-progress .is-active i { color: white; border-color: var(--brand-blue); background: var(--brand-blue); box-shadow: 0 0 0 4px rgba(21,94,239,.1); }
.checkout-heading { display: flex; margin-bottom: 1.4rem; align-items: flex-end; justify-content: space-between; gap: 1.5rem; }
.checkout-heading h1 { margin: .32rem 0 .25rem; color: var(--ink); font-size: clamp(1.85rem, 3vw, 2.35rem); font-weight: 650; letter-spacing: -.035em; }
.checkout-heading p { margin: 0; color: var(--muted); font-size: .9rem; line-height: 1.5; }
.review-verified { display: inline-flex; padding: .58rem .78rem; align-items: center; gap: .4rem; color: #08765d; border: 1px solid #bdebdc; border-radius: 999px; background: #ecfbf6; font-size: .72rem; font-weight: 600; white-space: nowrap; }
.checkout-errors { margin-bottom: 1rem; }
.fare-change-notice { display: flex; margin-bottom: 1rem; padding: .85rem 1rem; align-items: center; gap: .65rem; color: #6e4a08; border: 1px solid #ecd394; border-radius: 11px; background: #fff9e8; }
.fare-change-notice > i { font-size: 1.05rem; }.fare-change-notice > div { display: flex; flex-direction: column; }.fare-change-notice strong { font-size: .82rem; }.fare-change-notice span { margin-top: .13rem; font-size: .72rem; line-height: 1.5; }
.review-itinerary-section { overflow: hidden; border: 1px solid #d8e4f2; border-radius: 16px; background: white; box-shadow: 0 12px 34px rgba(17,45,88,.08); }
.review-itinerary-heading { display: flex; padding: 1rem 1.15rem; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid #e1e9f3; background: linear-gradient(100deg, #f3f8ff, #fff 62%); }
.review-itinerary-heading > div > span { color: var(--brand-blue); font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.review-itinerary-heading h2 { margin: .18rem 0 .15rem; color: var(--ink); font-size: 1.1rem; font-weight: 650; }
.review-itinerary-heading p { margin: 0; color: var(--muted); font-size: .75rem; line-height: 1.45; }
.review-itinerary-heading > strong { display: inline-flex; padding: .48rem .7rem; align-items: center; gap: .35rem; color: #08765d; border: 1px solid #bee9dc; border-radius: 999px; background: #ecfaf6; font-size: .7rem; font-weight: 600; white-space: nowrap; }
.review-journey-list { display: grid; padding: 1rem; gap: .9rem; background: #f7faff; }
.review-journey-card { overflow: hidden; border: 1px solid #dce5ef; border-radius: 13px; background: white; box-shadow: 0 5px 16px rgba(24,53,94,.04); }
.review-journey-head { display: flex; padding: .85rem 1rem; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid #e7edf4; }
.review-journey-title > span { color: var(--brand-blue); font-size: .66rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.review-journey-title h3 { display: flex; margin: .14rem 0 .12rem; align-items: center; gap: .45rem; color: var(--ink); font-size: 1.12rem; font-weight: 650; letter-spacing: -.02em; }
.review-journey-title h3 i { color: var(--brand-blue); font-size: .85rem; }
.review-journey-title p { margin: 0; color: #728198; font-size: .72rem; }
.review-journey-badges { display: flex; align-items: center; gap: .45rem; }
.review-journey-badges span, .review-journey-badges strong { display: inline-flex; padding: .4rem .58rem; align-items: center; color: #415978; border: 1px solid #d7e3f2; border-radius: 999px; background: #f8fbff; font-size: .66rem; font-weight: 600; }
.review-journey-badges strong { color: #08765d; border-color: #c8ebdf; background: #effbf7; }
.review-flight-operator { display: flex; padding: .78rem 1rem; align-items: center; gap: .65rem; border-bottom: 1px solid #e8eef5; background: #fbfdff; }
.review-airline-logo { display: grid; overflow: hidden; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border: 1px solid #d4e1f2; border-radius: 10px; background: white; }
.review-airline-logo img { width: 30px; height: 30px; object-fit: contain; }
.review-airline-logo.is-code { color: var(--brand-blue); font-size: .7rem; font-weight: 700; }
.review-flight-operator > div { display: flex; flex-direction: column; }
.review-flight-operator strong { color: var(--ink); font-size: .84rem; font-weight: 650; }
.review-flight-operator small { margin-top: .08rem; color: #7b8ba1; font-size: .68rem; }
.review-flight-operator em { margin-left: auto; color: #526782; font-size: .7rem; font-style: normal; font-weight: 550; white-space: nowrap; }
.review-flight-operator em i { margin-right: .25rem; color: var(--brand-blue); }
.review-fare-attributes { display: flex; padding: .62rem 1rem; flex-wrap: wrap; gap: .5rem; border-bottom: 1px solid #e8eef5; background: white; }
.review-fare-attributes span { display: inline-flex; min-height: 30px; padding: .36rem .55rem; align-items: center; gap: .3rem; color: #536884; border: 1px solid #dce6f2; border-radius: 8px; background: #f8fbff; font-size: .66rem; }
.review-fare-attributes span i { margin-right: .05rem; color: var(--brand-blue); font-size: .8rem; }
.review-fare-attributes span b { color: #29466e; font-weight: 600; }
.review-fare-attributes span.is-included { color: #08765d; border-color: #c9eadf; background: #effbf7; }
.review-fare-attributes span.is-included i, .review-fare-attributes span.is-included b { color: #08765d; }
.review-fare-attributes span.is-not-included { color: #7d6748; border-color: #eadfcf; background: #fffaf1; }
.review-segment-list { padding: 0 1rem; }
.review-segment { padding: 1rem 0; }
.review-segment-airline { display: flex; margin-bottom: .75rem; align-items: center; gap: .5rem; color: #203c63; font-size: .72rem; font-weight: 650; }
.review-segment-airline small { color: #7b8ba1; font-size: .66rem; font-weight: 500; }
.review-segment-airline small i { margin-right: .1rem; color: var(--brand-blue); }
.review-segment-airline small em { margin-left: .15rem; color: #99a5b5; font-size: .6rem; font-style: normal; }
.review-segment-route { display: grid; grid-template-columns: minmax(0, 1fr) minmax(120px, .65fr) minmax(0, 1fr); align-items: center; gap: 1rem; }
.review-segment-point strong { display: block; color: var(--ink); font-size: 1.45rem; font-weight: 650; line-height: 1; }
.review-segment-point > span { display: block; margin-top: .25rem; color: #718198; font-size: .68rem; }
.review-segment-point h4 { margin: .62rem 0 .15rem; color: #14345e; font-size: .9rem; font-weight: 650; }
.review-segment-point h4 small { margin-left: .25rem; color: #536985; font-size: .72rem; font-weight: 500; }
.review-segment-point p { margin: 0; color: #728198; font-size: .68rem; }
.review-segment-point.is-arrival { text-align: right; }
.review-segment-path { display: flex; align-items: center; flex-direction: column; color: #6f8097; font-size: .66rem; text-align: center; }
.review-segment-path > div { display: grid; width: 100%; margin: .35rem 0; grid-template-columns: 1fr auto 1fr; align-items: center; gap: .4rem; color: var(--brand-blue); }
.review-segment-path > div i { height: 1px; background: #9dbcf4; }
.review-segment-path > div b { transform: rotate(90deg); font-size: .9rem; }
.review-segment-path small { color: #16805f; font-size: .65rem; font-weight: 600; }
.review-layover { display: flex; margin: 0 -.1rem; padding: .55rem .75rem; align-items: center; gap: .42rem; color: #865817; border: 1px dashed #e3c77e; border-radius: 8px; background: #fff8e6; font-size: .7rem; font-weight: 600; }
.review-layover i { color: #b77813; }
.review-layover small { margin-left: auto; color: #9a6d2e; font-size: .66rem; }
.review-journey-meta { display: flex; padding: .72rem 1rem; flex-wrap: wrap; gap: .55rem 1.25rem; color: #536884; border-top: 1px solid #e6edf5; background: #fafcff; font-size: .7rem; }
.review-journey-meta i { margin-right: .25rem; color: var(--brand-blue); }
.checkout-layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(290px, .65fr); align-items: start; gap: 1.2rem; }
.checkout-main-column { display: grid; min-width: 0; gap: 1rem; }
.checkout-form { display: grid; gap: 1rem; }
.checkout-form-title { display: flex; padding: .9rem 1rem; align-items: center; gap: .72rem; border: 1px solid #d8e4f2; border-radius: 13px; background: linear-gradient(100deg, #f3f8ff, #fff); box-shadow: var(--shadow-sm); }
.checkout-form-title > span { color: var(--brand-blue); font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.checkout-form-title > div { display: flex; flex-direction: column; }
.checkout-form-title strong { color: var(--ink); font-size: 1rem; font-weight: 650; }
.checkout-form-title small { margin-top: .12rem; color: var(--muted); font-size: .72rem; line-height: 1.45; }
.traveller-card, .contact-card { margin: 0; padding: .95rem; border: 1px solid #dce6f2; border-radius: 13px; background: white; box-shadow: 0 8px 24px rgba(24, 55, 96, .06); }
.traveller-card legend { display: flex; width: auto; margin: 0 0 .72rem; padding: 0; align-items: center; gap: .6rem; }
.traveller-card legend > span { display: grid; width: 36px; height: 36px; place-items: center; color: white; border-radius: 10px; background: var(--brand-blue); font-size: .82rem; font-weight: 700; }
.traveller-card legend div { display: flex; flex-direction: column; }.traveller-card legend strong { color: var(--ink); font-size: .95rem; font-weight: 650; }.traveller-card legend small { margin-top: .08rem; color: #7b8ba2; font-size: .68rem; font-weight: 600; letter-spacing: .07em; }
.traveller-fields { display: grid; grid-template-columns: .52fr 1fr 1fr .95fr .9fr; gap: .62rem; }
.passport-fields { display: grid; margin-top: .75rem; padding-top: .75rem; grid-template-columns: 1fr 1fr 1fr; gap: .7rem; border-top: 1px solid #edf1f6; }
.traveller-fields label, .passport-fields label, .contact-fields label { display: flex; min-width: 0; flex-direction: column; gap: .35rem; }
.traveller-fields label > span, .passport-fields label > span, .contact-fields label > span { color: #52657f; font-size: .72rem; font-weight: 600; }
.traveller-fields label > span em { margin-left: .2rem; color: #8190a4; font-size: .58rem; font-style: normal; font-weight: 550; }
.traveller-fields input, .traveller-fields select, .passport-fields input, .contact-fields input { width: 100%; height: 42px; padding: 0 .72rem; color: #152b4c; border: 1px solid #d6e1ee; border-radius: 9px; outline: none; background: #fbfdff; font-size: .78rem; }
.traveller-fields input:focus, .traveller-fields select:focus, .passport-fields input:focus, .contact-fields input:focus { border-color: #7ca6f7; box-shadow: 0 0 0 3px rgba(21,94,239,.09); }
.booking-date-field { display: flex; min-width: 0; height: 42px; align-items: stretch; border: 1px solid #d6e1ee; border-radius: 9px; background: #fbfdff; transition: border-color .18s, box-shadow .18s; }
.booking-date-field:focus-within { border-color: #7ca6f7; box-shadow: 0 0 0 3px rgba(21,94,239,.09); }
.traveller-fields .booking-date-field > input[type="text"], .passport-fields .booking-date-field > input[type="text"] { min-width: 0; height: 40px; padding: 0 .7rem; flex: 1; border: 0; background: transparent; box-shadow: none; font-size: .76rem; cursor: pointer; }
.traveller-fields .booking-date-field > input[type="text"]:focus, .passport-fields .booking-date-field > input[type="text"]:focus { border: 0; box-shadow: none; }
.booking-date-field > button { display: grid; width: 40px; flex: 0 0 40px; padding: 0; place-items: center; color: var(--brand-blue); border: 0; border-left: 1px solid #e3eaf3; border-radius: 0 8px 8px 0; background: #f4f8ff; cursor: pointer; }
.booking-date-field > button:hover { background: #eaf2ff; }
.booking-date-field > button:focus-visible { outline: 2px solid #7ca6f7; outline-offset: -3px; }
.booking-datepicker-popover.ui-datepicker { z-index: 5200 !important; width: min(310px, calc(100vw - 1rem)); padding: .65rem; color: #17345d; border: 1px solid #d9e4f1; border-radius: 14px; background: white; box-shadow: 0 18px 44px rgba(12, 39, 78, .2); font-family: inherit; }
.booking-datepicker-popover .ui-datepicker-header { padding: .48rem .3rem; border: 0; border-radius: 10px; background: #f2f7ff; }
.booking-datepicker-popover .ui-datepicker-title { display: flex; margin: 0 2rem; justify-content: center; gap: .35rem; line-height: 1; }
.booking-datepicker-popover .ui-datepicker-title select { height: 30px; margin: 0; padding: 0 .35rem; color: #17345d; border: 1px solid #d2def0; border-radius: 7px; outline: none; background: white; font-family: inherit; font-size: .7rem; font-weight: 600; }
.booking-datepicker-popover .ui-datepicker-prev, .booking-datepicker-popover .ui-datepicker-next { top: .43rem; width: 30px; height: 30px; border: 0; border-radius: 8px; cursor: pointer; }
.booking-datepicker-popover .ui-datepicker-prev-hover, .booking-datepicker-popover .ui-datepicker-next-hover { top: .43rem; border: 0; background: #e3edff; }
.booking-datepicker-popover .ui-datepicker-prev { left: .35rem; }.booking-datepicker-popover .ui-datepicker-next { right: .35rem; }
.booking-datepicker-popover table { margin: .45rem 0 0; font-size: .68rem; }
.booking-datepicker-popover th { padding: .42rem .15rem; color: #8190a4; font-size: .58rem; font-weight: 650; text-transform: uppercase; }
.booking-datepicker-popover td { padding: .08rem; }
.booking-datepicker-popover td span, .booking-datepicker-popover td a { display: grid; width: 34px; height: 32px; padding: 0; place-items: center; color: #29476f; border: 0; border-radius: 8px; background: transparent; text-align: center; }
.booking-datepicker-popover td a.ui-state-hover { color: #0e55d7; background: #eaf2ff; }
.booking-datepicker-popover .ui-datepicker-today a { color: var(--brand-blue); box-shadow: inset 0 0 0 1px #8eb1f4; font-weight: 700; }
.booking-datepicker-popover .ui-datepicker-current-day a, .booking-datepicker-popover .ui-datepicker-current-day a.ui-state-hover { color: white; background: var(--brand-blue); box-shadow: 0 5px 12px rgba(21, 94, 239, .22); font-weight: 700; }
.booking-datepicker-popover .ui-datepicker-unselectable span { color: #c0c9d5; }
.contact-card > div:first-child { display: flex; margin-bottom: .9rem; flex-direction: column; }.contact-card > div:first-child span { color: var(--brand-blue); font-size: .68rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }.contact-card > div:first-child strong { margin-top: .2rem; color: var(--ink); font-size: .95rem; font-weight: 650; }
.contact-fields { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.phone-field { display: flex; border: 1px solid #d6e1ee; border-radius: 9px; background: #fbfdff; }.phone-field:focus-within { border-color: #7ca6f7; box-shadow: 0 0 0 3px rgba(21,94,239,.09); }.phone-field b { display: flex; padding: 0 .78rem; align-items: center; color: #465b79; border-right: 1px solid #dce5f0; font-size: .82rem; }.phone-field input { border: 0; box-shadow: none !important; }
.checkout-ancillaries { overflow: hidden; border: 1px solid #dce6f2; border-radius: 14px; background: white; box-shadow: var(--shadow-sm); }
.ancillary-heading { display: flex; padding: 1rem 1.1rem; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid #e5ecf4; background: linear-gradient(100deg, #f3f8ff, #fff); }
.ancillary-heading > div { display: flex; min-width: 0; flex-direction: column; }
.ancillary-heading > div > span { color: var(--brand-blue); font-size: .68rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.ancillary-heading strong { margin-top: .18rem; color: var(--ink); font-size: 1rem; font-weight: 650; }
.ancillary-heading small { margin-top: .14rem; color: #6f8097; font-size: .7rem; line-height: 1.45; }
.ancillary-heading em { display: inline-flex; padding: .45rem .65rem; align-items: center; gap: .35rem; color: #08765d; border-radius: 999px; background: #eafaf5; font-size: .68rem; font-style: normal; font-weight: 600; white-space: nowrap; }
.ancillary-tabs { display: grid; padding: .75rem; grid-template-columns: repeat(3, 1fr); gap: .6rem; border-bottom: 1px solid #e7edf4; background: #fbfdff; }
.ancillary-tabs button { display: grid; min-height: 62px; padding: .65rem .75rem; grid-template-columns: 34px 1fr; grid-template-rows: auto auto; align-items: center; column-gap: .6rem; color: #536782; border: 1px solid #dbe5f1; border-radius: 10px; background: white; text-align: left; cursor: pointer; }
.ancillary-tabs button > i { display: grid; width: 34px; height: 34px; grid-row: 1 / 3; place-items: center; color: var(--brand-blue); border-radius: 9px; background: #edf4ff; font-size: .92rem; }
.ancillary-tabs button span { color: #1a355d; font-size: .78rem; font-weight: 650; }
.ancillary-tabs button small { color: #8592a5; font-size: .62rem; }
.ancillary-tabs button.is-active { border-color: #8db2f7; background: #f2f7ff; box-shadow: 0 0 0 2px rgba(21,94,239,.07); }
.ancillary-tabs button:disabled { opacity: .55; cursor: not-allowed; }
.ancillary-panel { padding: .9rem; }
.ancillary-panel[hidden] { display: none; }
.seat-map-intro { display: flex; padding: .85rem; align-items: center; gap: .7rem; border: 1px solid #dfe8f3; border-radius: 11px; background: #fbfdff; }
.seat-map-intro > span { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; color: var(--brand-blue); border-radius: 11px; background: #eaf2ff; font-size: 1rem; }
.seat-map-intro > div { display: flex; min-width: 0; flex: 1; flex-direction: column; }
.seat-map-intro strong { color: #18345c; font-size: .82rem; font-weight: 650; }
.seat-map-intro p { margin: .12rem 0 0; color: #74849a; font-size: .68rem; line-height: 1.45; }
.seat-map-intro small { display: inline-flex; width: fit-content; margin-top: .35rem; padding: .22rem .42rem; color: #08765d; border-radius: 999px; background: #eafaf5; font-size: .62rem; font-weight: 650; }
.seat-map-intro button { display: inline-flex; min-height: 38px; padding: .55rem .75rem; align-items: center; justify-content: center; gap: .35rem; color: white; border: 0; border-radius: 8px; background: var(--brand-blue); font-size: .7rem; font-weight: 650; cursor: pointer; }
body.seat-map-modal-open { overflow: hidden; }
.seat-map-modal[hidden] { display: none; }
.seat-map-modal { position: fixed; z-index: 5000; inset: 0; display: grid; padding: 1rem; place-items: center; }
.seat-map-modal-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: rgba(9, 27, 55, .62); backdrop-filter: blur(4px); cursor: default; }
.seat-map-dialog { position: relative; display: flex; overflow: hidden; width: min(100%, 920px); max-height: calc(100vh - 2rem); flex-direction: column; border: 1px solid #d8e3f1; border-radius: 18px; background: white; box-shadow: 0 28px 80px rgba(5, 22, 50, .3); }
.seat-map-dialog-head { display: flex; padding: .9rem 1rem; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid #e3eaf3; background: white; }
.seat-map-dialog-head > div { display: flex; min-width: 0; flex-direction: column; }
.seat-map-dialog-head span { color: var(--brand-blue); font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.seat-map-dialog-head h2 { margin: .13rem 0 0; color: #122d53; font-size: 1.08rem; font-weight: 680; }
.seat-map-dialog-head small { margin-top: .12rem; color: #718198; font-size: .67rem; }
.seat-map-dialog-head > button { display: grid; width: 38px; height: 38px; flex: 0 0 38px; padding: 0; place-items: center; color: #526782; border: 1px solid #d7e2ef; border-radius: 10px; background: #f8fbff; cursor: pointer; }
.seat-map-dialog-body { overflow: auto; min-height: 260px; padding: .9rem 1rem; background: #f5f8fc; }
.seat-map-dialog-footer { display: flex; min-height: 62px; padding: .7rem 1rem; align-items: center; justify-content: space-between; gap: 1rem; border-top: 1px solid #dfe8f2; background: white; }
.seat-map-dialog-footer > div { display: flex; min-width: 0; flex-direction: column; }
.seat-map-dialog-footer span { color: #718198; font-size: .62rem; text-transform: uppercase; }
.seat-map-dialog-footer strong { overflow: hidden; margin-top: .1rem; color: #153765; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.seat-map-dialog-footer > button { min-width: 100px; min-height: 38px; padding: .5rem .85rem; color: white; border: 0; border-radius: 9px; background: var(--brand-blue); font-size: .72rem; font-weight: 650; cursor: pointer; }
.ancillary-loading { display: flex; min-height: 100px; align-items: center; justify-content: center; gap: .5rem; color: #60738e; font-size: .72rem; }
.ancillary-loading i { color: var(--brand-blue); font-size: 1rem; animation: airport-spin .85s linear infinite; }
.ancillary-inline-error { margin-top: .75rem; padding: .72rem .8rem; color: #8f3030; border: 1px solid #f0c8c8; border-radius: 9px; background: #fff5f5; font-size: .7rem; }
.seat-map-dialog-body .ancillary-inline-error { display: flex; margin-top: 0; align-items: center; justify-content: space-between; gap: .75rem; }
.seat-map-dialog-body .ancillary-inline-error button { display: inline-flex; min-height: 34px; padding: .4rem .62rem; align-items: center; gap: .3rem; color: #8f3030; border: 1px solid #e3abab; border-radius: 8px; background: white; font-size: .66rem; font-weight: 650; white-space: nowrap; cursor: pointer; }
.seat-map-workspace { display: grid; gap: .8rem; }
.seat-map-controls { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.seat-map-controls label { display: flex; flex-direction: column; gap: .3rem; color: #52657f; font-size: .66rem; font-weight: 600; }
.seat-map-controls select { width: 100%; height: 40px; padding: 0 .7rem; color: #17345d; border: 1px solid #d6e1ee; border-radius: 8px; outline: none; background: white; font-size: .72rem; }
.seat-map-legend { display: flex; flex-wrap: wrap; gap: .5rem 1rem; color: #6d7e95; font-size: .64rem; }
.seat-map-legend span { display: inline-flex; align-items: center; gap: .3rem; }
.seat-map-legend i { width: 17px; height: 17px; border: 1px solid #a9c3ef; border-radius: 4px; background: #f4f8ff; }
.seat-map-legend .is-selected i { border-color: var(--brand-blue); background: var(--brand-blue); }
.seat-map-legend .is-legroom i { border-color: #58b99f; background: #e8faf4; }
.seat-map-legend .is-unavailable i { border-color: #d7dde6; background: #e7ebf0; }
.aircraft-seat-map { overflow: auto; max-height: 520px; padding: 1.25rem 0; border: 1px solid #d9e4f0; border-radius: 15px; background: radial-gradient(circle at 16% 12%, rgba(255,255,255,.95) 0 45px, transparent 46px), radial-gradient(circle at 84% 24%, rgba(255,255,255,.8) 0 36px, transparent 37px), linear-gradient(180deg, #dcecff 0, #edf5ff 52%, #f8fbff 100%); scrollbar-color: #a9bcd6 transparent; scrollbar-width: thin; }
.aircraft-seat-map-stage { position: relative; width: max-content; min-width: 720px; margin: 0 auto; padding: 0 135px 1.25rem; }
.aircraft-main-wings, .aircraft-tail-wings { position: absolute; z-index: 0; left: 50%; display: block; transform: translateX(-50%); background: linear-gradient(180deg, #eaf1f8, #c9d7e5 62%, #b7c8d9); filter: drop-shadow(0 8px 8px rgba(28, 55, 89, .15)); pointer-events: none; }
.aircraft-main-wings { top: 34%; width: 700px; height: 190px; clip-path: polygon(0 72%, 39% 20%, 43% 0, 57% 0, 61% 20%, 100% 72%, 100% 86%, 60% 59%, 57% 100%, 43% 100%, 40% 59%, 0 86%); }
.aircraft-tail-wings { bottom: 26px; width: 390px; height: 115px; clip-path: polygon(4% 68%, 39% 24%, 44% 0, 56% 0, 61% 24%, 96% 68%, 96% 84%, 59% 62%, 55% 100%, 45% 100%, 41% 62%, 4% 84%); }
.aircraft-seat-map-inner { position: relative; z-index: 1; width: max-content; min-width: 440px; margin: 0 auto; padding: 1.1rem 1.15rem 1.4rem; border: 2px solid #c8d6e5; border-radius: 50% 50% 28% 28% / 78px 78px 32px 32px; background: linear-gradient(90deg, #edf3f8 0 9px, #fff 10px calc(100% - 10px), #edf3f8 calc(100% - 9px)); box-shadow: 0 14px 30px rgba(25, 53, 88, .15), inset 0 0 0 4px rgba(255,255,255,.8); }
.aircraft-seat-map-head { position: relative; display: flex; min-height: 82px; margin: -.25rem 0 .8rem; align-items: center; justify-content: flex-end; flex-direction: column; color: #6d7f97; text-align: center; }
.aircraft-cockpit-windows { display: flex; margin-bottom: .42rem; gap: .28rem; }
.aircraft-cockpit-windows i { display: block; width: 22px; height: 11px; border: 1px solid #6e91b8; border-radius: 65% 65% 38% 38%; background: linear-gradient(135deg, #194a7d, #69a8d8); box-shadow: inset 0 1px 2px rgba(255,255,255,.5); }
.aircraft-cockpit-windows i:first-child { transform: rotate(-12deg); }.aircraft-cockpit-windows i:last-child { transform: rotate(12deg); }
.aircraft-seat-map-head strong { color: #17375f; font-size: .7rem; font-weight: 700; text-transform: uppercase; }
.aircraft-seat-map-head small { margin-top: .1rem; color: #8190a4; font-size: .55rem; }
.aircraft-exit-line { position: relative; z-index: 2; display: flex; margin: .62rem -.72rem .48rem; min-height: 25px; align-items: center; justify-content: space-between; gap: .6rem; border-top: 1px dashed #e5a95a; border-bottom: 1px dashed #e5a95a; background: #fff8e9; }
.aircraft-exit-line span { display: inline-flex; padding: 0 .25rem; align-items: center; gap: .2rem; color: #ad6507; font-size: .52rem; font-weight: 750; text-transform: uppercase; }
.aircraft-exit-line b { color: #9a6f37; font-size: .5rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.aircraft-seat-row { display: grid; min-height: 44px; margin-bottom: .35rem; grid-template-columns: 26px repeat(7, 50px); justify-content: center; gap: .25rem; }
.aircraft-seat-row > b { position: relative; z-index: 2; display: flex; align-items: center; color: #8a98aa; font-size: .58rem; font-weight: 600; }
.aircraft-seat-row > span { width: 50px; height: 44px; }
.aircraft-seat-row .aircraft-aisle { position: relative; width: 30px; height: 44px; }
.aircraft-seat-row .aircraft-aisle::after { position: absolute; top: 4px; bottom: 4px; left: 50%; width: 2px; content: ''; transform: translateX(-50%); background: repeating-linear-gradient(180deg, #bac9d9 0 3px, transparent 3px 7px); opacity: .7; }
.aircraft-seat-row button { position: relative; z-index: 2; display: flex; width: 50px; height: 44px; padding: .25rem .15rem; align-items: center; justify-content: center; flex-direction: column; color: #365477; border: 1px solid #a9c3ef; border-top: 4px solid #87a9d4; border-radius: 9px 9px 6px 6px; background: #f4f8ff; box-shadow: inset 3px 0 rgba(139,169,207,.12), inset -3px 0 rgba(139,169,207,.12), 0 2px 4px rgba(37,67,104,.08); line-height: 1; cursor: pointer; transition: transform .15s, box-shadow .15s; }
.aircraft-seat-row button:not(:disabled):hover { transform: translateY(-2px); box-shadow: inset 3px 0 rgba(139,169,207,.12), inset -3px 0 rgba(139,169,207,.12), 0 6px 10px rgba(37,67,104,.15); }
.aircraft-seat-row button .seat-number { font-size: .66rem; font-weight: 750; }
.aircraft-seat-row button .seat-charge { margin-top: .18rem; color: #08765d; font-size: .5rem; font-weight: 700; white-space: nowrap; }
.aircraft-seat-row button.is-legroom { color: #08765d; border-color: #58b99f; border-top-color: #34a987; background: #e8faf4; }
.aircraft-seat-row button.is-selected { color: white; border-color: var(--brand-blue); border-top-color: #073f9d; background: var(--brand-blue); box-shadow: 0 4px 10px rgba(21,94,239,.2); }
.aircraft-seat-row button.is-selected .seat-charge { color: white; }
.aircraft-seat-row button:disabled { color: #a8b0bc; border-color: #d7dde6; border-top-color: #c2cad4; background: #e7ebf0; box-shadow: none; cursor: not-allowed; }
.aircraft-seat-row button:disabled .seat-charge { color: #959fac; }
.aircraft-tail-section { position: relative; z-index: 2; display: flex; min-height: 58px; margin-top: .7rem; padding: .55rem .15rem .15rem; align-items: flex-end; justify-content: space-between; gap: 1rem; border-top: 1px solid #e2e9f1; color: #76879c; }
.aircraft-tail-section span, .aircraft-tail-section strong { display: inline-flex; align-items: center; gap: .25rem; white-space: nowrap; }
.aircraft-tail-section span { font-size: .52rem; }.aircraft-tail-section span i { color: #597493; }
.aircraft-tail-section strong { color: #29486e; font-size: .56rem; font-weight: 650; text-transform: uppercase; }.aircraft-tail-section strong i { transform: rotate(180deg); color: var(--brand-blue); }
.seat-selection-note { display: flex; padding: .7rem .8rem; align-items: center; justify-content: space-between; gap: .7rem; color: #536782; border: 1px solid #dae5f2; border-radius: 9px; background: #f9fbfe; font-size: .68rem; }
.seat-selection-note strong { color: var(--brand-blue); font-size: .76rem; }
.ancillary-segment-list { display: grid; gap: .7rem; }
.ancillary-segment-card { overflow: hidden; border: 1px solid #dfe7f1; border-radius: 11px; background: #fbfdff; }
.ancillary-segment-card > header { display: flex; padding: .7rem .8rem; align-items: center; gap: .55rem; border-bottom: 1px solid #e4ebf3; background: white; }
.ancillary-segment-card > header > span { display: grid; width: 32px; height: 32px; place-items: center; color: var(--brand-blue); border-radius: 8px; background: #edf4ff; }
.ancillary-segment-card > header > div { display: flex; flex-direction: column; }
.ancillary-segment-card > header strong { color: #19365e; font-size: .78rem; font-weight: 650; }
.ancillary-segment-card > header small { margin-top: .1rem; color: #7c8ba0; font-size: .64rem; }
.ancillary-traveller-options { display: grid; padding: .75rem; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.ancillary-traveller-options label { display: flex; min-width: 0; flex-direction: column; gap: .3rem; }
.ancillary-traveller-options label > span { color: #52657f; font-size: .66rem; font-weight: 600; }
.ancillary-traveller-options select { width: 100%; height: 42px; padding: 0 .68rem; color: #17345d; border: 1px solid #d6e1ee; border-radius: 8px; outline: none; background: white; font-size: .7rem; }
.ancillary-empty { display: flex; min-height: 130px; padding: 1rem; align-items: center; justify-content: center; flex-direction: column; color: #78889d; text-align: center; }
.ancillary-empty i { margin-bottom: .45rem; color: #9aabc0; font-size: 1.25rem; }
.ancillary-empty strong { color: #405778; font-size: .78rem; }
.ancillary-empty span { max-width: 420px; margin-top: .2rem; font-size: .66rem; line-height: 1.45; }
.ancillary-total-bar { display: flex; min-height: 46px; padding: .65rem 1rem; align-items: center; justify-content: space-between; gap: 1rem; color: #526782; border-top: 1px solid #e5ecf4; background: #f8fbff; font-size: .72rem; }
.ancillary-total-bar span { display: inline-flex; align-items: center; gap: .35rem; }
.ancillary-total-bar span i { color: var(--brand-blue); }
.ancillary-total-bar strong { color: var(--brand-blue); font-size: .92rem; }
.checkout-fare-rules { overflow: hidden; border: 1px solid #dce6f2; border-radius: 14px; background: white; box-shadow: var(--shadow-sm); }
.fare-rules-heading { display: flex; padding: .95rem 1.1rem; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid #e5ecf4; background: linear-gradient(100deg, #f5f9ff, #fff); }
.fare-rules-heading > div { display: flex; flex-direction: column; }.fare-rules-heading > div span { color: var(--brand-blue); font-size: .68rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }.fare-rules-heading > div strong { margin-top: .2rem; color: var(--ink); font-size: .95rem; font-weight: 650; }
.fare-rules-heading em { display: inline-flex; padding: .45rem .65rem; align-items: center; gap: .35rem; color: #08765d; border-radius: 999px; background: #eafaf5; font-size: .7rem; font-style: normal; font-weight: 600; white-space: nowrap; }
.fare-rule-sectors { display: grid; padding: .9rem; gap: .75rem; }.fare-rule-sector { overflow: hidden; border: 1px solid #e0e8f2; border-radius: 11px; background: #fbfdff; }.fare-rule-sector h3 { display: flex; margin: 0; padding: .72rem .85rem; align-items: center; gap: .45rem; color: #153765; border-bottom: 1px solid #e5ecf4; background: white; font-size: .8rem; }.fare-rule-sector h3 i { color: var(--brand-blue); }
.fare-rule-categories { display: grid; padding: .65rem; gap: .55rem; }.fare-rule-category { overflow: hidden; border: 1px solid #e2e9f2; border-radius: 9px; background: white; }.fare-rule-category summary { display: flex; padding: .68rem .76rem; align-items: center; justify-content: space-between; gap: .6rem; color: #263e62; background: #f8fbff; font-size: .76rem; font-weight: 650; cursor: pointer; list-style: none; }.fare-rule-category summary::-webkit-details-marker { display: none; }.fare-rule-category summary i { color: var(--brand-blue); transition: transform .2s; }.fare-rule-category[open] summary i { transform: rotate(180deg); }
.fare-rule-items { display: grid; }.fare-rule-item { display: grid; padding: .78rem; grid-template-columns: minmax(155px, .8fr) minmax(160px, .9fr) minmax(0, 1.5fr); align-items: start; gap: .8rem; border-top: 1px solid #edf1f6; }.fare-rule-window { display: flex; align-items: flex-start; gap: .38rem; color: #536984; font-size: .72rem; line-height: 1.5; }.fare-rule-window i { color: var(--brand-blue); }.fare-rule-charges { display: flex; flex-direction: column; gap: .25rem; }.fare-rule-charges span { display: flex; align-items: center; justify-content: space-between; gap: .5rem; color: #74839a; font-size: .7rem; }.fare-rule-charges strong { color: #153765; font-size: .76rem; }.fare-rule-item p { margin: 0; color: #65758d; font-size: .7rem; line-height: 1.55; }
.fare-rule-disclaimer { display: flex; margin: 0; padding: .72rem .9rem; align-items: flex-start; gap: .42rem; color: #76869c; border-top: 1px solid #e7edf4; background: #fbfcfe; font-size: .68rem; line-height: 1.5; }.fare-rule-disclaimer i { color: #b4730d; }
.fare-rules-unavailable { display: flex; margin: .9rem; padding: .9rem; align-items: center; gap: .75rem; color: #78500b; border: 1px solid #efdaa1; border-radius: 9px; background: #fff9e8; }.fare-rules-unavailable > i { font-size: 1.15rem; }.fare-rules-unavailable > div { display: flex; min-width: 0; flex: 1; flex-direction: column; }.fare-rules-unavailable strong { font-size: .82rem; }.fare-rules-unavailable span { margin-top: .15rem; font-size: .72rem; line-height: 1.45; }.fare-rules-unavailable button { display: inline-flex; padding: .56rem .72rem; align-items: center; gap: .35rem; color: #81520b; border: 1px solid #dfbd67; border-radius: 8px; background: white; font-size: .72rem; font-weight: 700; white-space: nowrap; cursor: pointer; }
.booking-confirmation-check { display: flex; padding: .9rem 1rem; align-items: flex-start; gap: .6rem; color: #526682; border: 1px solid #dce5f0; border-radius: 11px; background: #f9fbfe; font-size: .75rem; line-height: 1.55; cursor: pointer; }.booking-confirmation-check input { margin-top: .13rem; accent-color: var(--brand-blue); }
.booking-safety-notice { display: flex; padding: .9rem 1rem; align-items: center; gap: .7rem; color: #7b5410; border: 1px solid #efdba7; border-radius: 11px; background: #fff9e9; }.booking-safety-notice > i { font-size: 1.05rem; }.booking-safety-notice div { display: flex; flex-direction: column; }.booking-safety-notice strong { font-size: .82rem; }.booking-safety-notice span { margin-top: .15rem; font-size: .72rem; line-height: 1.5; }
.confirm-booking-button { display: inline-flex; width: 100%; height: 50px; align-items: center; justify-content: center; gap: .55rem; color: white; border: 0; border-radius: 10px; background: linear-gradient(100deg, var(--brand-blue), var(--brand-blue-dark)); box-shadow: 0 10px 24px rgba(21,94,239,.2); font-size: .86rem; font-weight: 700; cursor: pointer; }.confirm-booking-button:disabled { color: #8b96a8; background: #dfe5ed; box-shadow: none; cursor: not-allowed; }
.checkout-summary { position: sticky; top: 1rem; overflow: hidden; border: 1px solid #dce6f2; border-radius: 14px; background: white; box-shadow: 0 12px 32px rgba(20,48,89,.09); }
.checkout-summary-head { display: flex; padding: .9rem 1rem; align-items: center; justify-content: space-between; border-bottom: 1px solid #e7edf4; }.checkout-summary-head span { color: #6d7f97; font-size: .7rem; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; }.checkout-summary-head strong { color: var(--brand-blue); font-size: .76rem; }
.checkout-summary-route { display: flex; padding: .9rem 1rem; align-items: center; gap: .45rem; color: var(--ink); border-bottom: 1px solid #e8eef5; background: #fbfdff; font-size: 1rem; font-weight: 650; }
.checkout-summary-route i { color: var(--brand-blue); font-size: .8rem; }
.checkout-summary-route small { margin-left: auto; color: #75849a; font-size: .66rem; font-weight: 500; }
.checkout-flight { padding: 1rem; border-bottom: 1px solid #e8eef5; }.checkout-airline { display: flex; align-items: center; gap: .6rem; }.checkout-airline > span { display: grid; width: 38px; height: 38px; place-items: center; color: var(--brand-blue); border: 1px solid #cfdef6; border-radius: 9px; background: #f2f7ff; font-size: .7rem; font-weight: 700; }.checkout-airline div { display: flex; flex-direction: column; }.checkout-airline strong { color: #182f53; font-size: .82rem; }.checkout-airline small { color: #8491a4; font-size: .7rem; }
.checkout-route { display: grid; margin-top: .85rem; grid-template-columns: auto 1fr auto; align-items: center; gap: .6rem; }.checkout-route > div { display: flex; flex-direction: column; }.checkout-route > div:last-child { text-align: right; }.checkout-route strong { color: #11284c; font-size: 1.08rem; }.checkout-route span { color: #5d718e; font-size: .72rem; font-weight: 600; }.checkout-route p { display: flex; margin: 0; align-items: center; flex-direction: column; color: #70819a; font-size: .68rem; }.checkout-route p i { width: 100%; height: 1px; margin: .3rem 0; background: #c9d6e7; }.checkout-route p small { color: #16805f; font-size: .7rem; font-weight: 600; }
.checkout-date { display: block; margin-top: .7rem; color: #7f8ea2; font-size: .68rem; }
.reviewed-price { padding: .9rem 1rem; }.reviewed-price > span { display: flex; padding: .32rem 0; align-items: center; justify-content: space-between; gap: .6rem; }.reviewed-price em { color: #71819a; font-size: .72rem; font-style: normal; }.reviewed-price strong { color: #263b5d; font-size: .78rem; }.reviewed-price .reviewed-total { margin-top: .4rem; padding-top: .7rem; border-top: 1px dashed #ccd8e6; }.reviewed-price .reviewed-total em { color: #18365f; font-weight: 600; }.reviewed-price .reviewed-total strong { color: #263b5d; font-size: .82rem; }.reviewed-price .reviewed-addon-total strong { color: #08765d; }.reviewed-price .reviewed-grand-total { margin-top: .25rem; padding-top: .65rem; border-top: 1px solid #dde6f1; }.reviewed-price .reviewed-grand-total em { color: #18365f; font-weight: 650; }.reviewed-price .reviewed-grand-total strong { color: var(--brand-blue); font-size: 1.18rem; }
.review-validity { display: flex; margin: 0; padding: .72rem 1rem; align-items: flex-start; gap: .42rem; color: #7888a0; border-top: 1px solid #e8eef5; background: #f9fbfe; font-size: .68rem; line-height: 1.5; }.review-validity i { color: #0b8c68; }
.booking-state-page { display: grid; min-height: 650px; padding: 4rem 1rem; place-items: center; background: linear-gradient(160deg, #eef5ff, #fff); }.booking-state-card { width: min(100%, 580px); padding: 2.4rem; border: 1px solid #dce6f2; border-radius: 18px; background: white; box-shadow: 0 18px 45px rgba(17,45,88,.12); text-align: center; }.booking-state-icon { display: grid; width: 58px; height: 58px; margin: 0 auto 1.1rem; place-items: center; color: #b46a12; border-radius: 16px; background: #fff2d9; font-size: 1.35rem; }.booking-state-card h1 { margin: .4rem 0 .5rem; color: var(--ink); font-size: 1.55rem; }.booking-state-card p { max-width: 440px; margin: 0 auto 1.3rem; color: var(--muted); font-size: .68rem; line-height: 1.65; }.booking-state-card > div { display: flex; justify-content: center; gap: .65rem; }.booking-state-card a, .booking-state-card button { display: inline-flex; padding: .65rem .85rem; align-items: center; gap: .38rem; color: var(--brand-blue); border: 1px solid #9dbcf8; border-radius: 8px; background: white; font-size: .6rem; font-weight: 600; text-decoration: none; cursor: pointer; }
.booking-success-card .booking-state-icon { color: white; background: #13a47d; }.booking-reference { display: grid; margin: 1rem 0 1.3rem; grid-template-columns: repeat(2, 1fr); gap: .65rem; text-align: left; }.booking-reference div { padding: .7rem; border: 1px solid #e1e8f1; border-radius: 9px; background: #f9fbfe; }.booking-reference dt { color: #7888a0; font-size: .49rem; text-transform: uppercase; }.booking-reference dd { overflow-wrap: anywhere; margin: .18rem 0 0; color: #15335f; font-size: .67rem; font-weight: 600; }

/* Service cards */
.services-section { position: relative; z-index: 1; margin-top: 2.15rem; }
.services-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; }
.services-heading span { display: block; margin-bottom: .22rem; color: var(--brand-blue); font-size: .6rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.services-heading h2 { margin: 0; color: var(--ink); font-size: 1.22rem; font-weight: 700; letter-spacing: -.02em; }
.services-heading p { max-width: 390px; margin: 0 0 .08rem; color: #64738c; font-size: .67rem; line-height: 1.55; text-align: right; }
.service-grid { position: relative; z-index: 1; display: grid; margin-top: 1rem; grid-template-columns: repeat(4, 1fr); gap: 1.15rem; }
.service-card { position: relative; overflow: hidden; min-width: 0; border: 1px solid #dce5ef; border-radius: 13px; background: white; box-shadow: var(--shadow-sm); transition: transform .22s, box-shadow .22s; }
.service-card:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(26,52,93,.13); }
.service-media { height: 96px; background-image: url("../images/services-sprite-v2.png"); background-repeat: no-repeat; background-size: 400% auto; }
.service-flights .service-media { background-position: 0% 46%; }
.service-hotels .service-media { background-position: 33.333% 52%; }
.service-packages .service-media { background-position: 66.666% 55%; }
.service-visa .service-media { background-position: 100% 51%; }
.service-icon { position: absolute; top: 72px; left: 1rem; display: grid; width: 43px; height: 43px; place-items: center; color: white; border: 3px solid white; border-radius: 50%; background: var(--brand-blue); box-shadow: 0 5px 12px rgba(21,94,239,.2); }
.service-icon i { font-size: 1rem; }
.service-hotels .service-icon { background: var(--brand-purple); }.service-packages .service-icon { background: var(--brand-green); }.service-visa .service-icon { background: var(--brand-orange); }
.service-copy { display: flex; min-height: 96px; padding: 1.65rem 1rem .85rem; align-items: center; justify-content: space-between; gap: .7rem; }
.service-copy h2 { margin: 0 0 .22rem; color: var(--brand-blue); font-size: 1rem; font-weight: 600; }
.service-hotels h2 { color: var(--brand-purple); }.service-packages h2 { color: #079a8d; }.service-visa h2 { color: #ec8500; }
.service-copy p { max-width: 180px; margin: 0; color: #52627e; font-size: .68rem; line-height: 1.45; }
.service-copy a, .service-copy button { display: grid; width: 28px; height: 28px; flex: 0 0 28px; padding: 0; place-items: center; color: var(--brand-blue); border: 0; border-radius: 50%; background: #f1f5fb; text-decoration: none; }
.service-hotels .service-copy button { color: var(--brand-purple); background: #f3efff; }.service-packages .service-copy button { color: #069b90; background: #eaf9f7; }.service-visa .service-copy button { color: #66748b; }

/* Assurance and destinations */
.assurance-strip { display: grid; min-height: 66px; margin-top: 1rem; padding: .8rem 1rem; grid-template-columns: repeat(4, 1fr); align-items: center; border: 1px solid #dce5ef; border-radius: 11px; background: rgba(255,255,255,.82); box-shadow: 0 8px 22px rgba(26,52,93,.06); }
.assurance-item { display: flex; min-width: 0; padding: 0 1rem; align-items: center; gap: .75rem; border-right: 1px solid #e0e7f0; }
.assurance-item:last-child { border-right: 0; }
.assurance-item > i { color: var(--brand-blue); font-size: 1.42rem; }
.assurance-item div { display: flex; min-width: 0; flex-direction: column; }
.assurance-item strong { color: #172746; font-size: .68rem; }
.assurance-item span { margin-top: .12rem; overflow: hidden; color: #71809a; font-size: .58rem; text-overflow: ellipsis; white-space: nowrap; }
.destinations-section { padding-top: 1.35rem; }
.section-title-row { display: flex; margin-bottom: .7rem; align-items: flex-end; justify-content: space-between; }
.section-title-row span { display: block; margin-bottom: .18rem; color: var(--brand-blue); font-size: .58rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.section-title-row h2 { margin: 0; color: var(--ink); font-size: 1.13rem; font-weight: 700; }
.section-title-row button { padding: .38rem .85rem; color: var(--brand-blue); border: 1px solid #91b3fb; border-radius: 9px; background: transparent; font-size: .62rem; font-weight: 600; }
.destination-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: .8rem; }
.destination-card { position: relative; min-width: 0; height: 108px; overflow: hidden; border-radius: 10px; background: #233a64; box-shadow: 0 7px 18px rgba(26,52,93,.1); transition: transform .22s, box-shadow .22s; }
.destination-card:hover { transform: translateY(-3px); box-shadow: 0 12px 24px rgba(26,52,93,.16); }
.destination-photo { position: absolute; inset: 0; background-image: url("../images/destinations-sprite-v2.png"); background-repeat: no-repeat; background-size: 600% auto; transition: transform .35s; }
.destination-card:hover .destination-photo { transform: scale(1.04); }
.destination-dubai .destination-photo { background-position: 0% 52%; }.destination-singapore .destination-photo { background-position: 20% 52%; }.destination-bali .destination-photo { background-position: 40% 50%; }.destination-maldives .destination-photo { background-position: 60% 52%; }.destination-thailand .destination-photo { background-position: 80% 50%; }.destination-paris .destination-photo { background-position: 100% 50%; }
.destination-card::after { position: absolute; inset: 35% 0 0; content: ""; background: linear-gradient(to bottom, transparent, rgba(6,19,43,.82)); }
.destination-copy { position: absolute; z-index: 2; right: .7rem; bottom: .58rem; left: .7rem; display: flex; flex-direction: column; color: white; }
.destination-copy strong { font-size: .74rem; }
.destination-copy span { margin-top: .05rem; font-size: .56rem; font-weight: 500; }
.sample-fare-note { margin: .55rem 0 0; color: #8a96a9; font-size: .56rem; text-align: right; }
.support-fab { position: fixed; z-index: 1040; right: 1.6rem; bottom: 1.6rem; display: grid; width: 48px; height: 48px; place-items: center; color: white; border: 4px solid rgba(255,255,255,.9); border-radius: 50%; background: #17b978; box-shadow: 0 10px 24px rgba(19,116,80,.25); font-size: 1.15rem; text-decoration: none; transition: transform .2s; }
.support-fab:hover { color: white; transform: translateY(-3px); }

/* Footer */
.site-footer {
    position: relative;
    overflow: hidden;
    padding: 0;
    color: #425b78;
    border-top: 1px solid #dce8f5;
    background:
        radial-gradient(circle at 7% 8%, rgba(35, 112, 219, .1), transparent 25rem),
        radial-gradient(circle at 92% 72%, rgba(24, 178, 179, .09), transparent 22rem),
        linear-gradient(180deg, #f8fbff 0%, #eef5fc 100%);
}
.site-footer::before {
    position: absolute;
    top: -12rem;
    right: 2rem;
    width: 25rem;
    height: 25rem;
    border: 1px solid rgba(30, 106, 214, .08);
    border-radius: 50%;
    box-shadow: 0 0 0 4rem rgba(30, 106, 214, .025), 0 0 0 8rem rgba(30, 106, 214, .015);
    content: "";
    pointer-events: none;
}
.site-footer .container { position: relative; z-index: 1; }
.footer-cta {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: 1.65rem 0;
    border: 0;
    border-bottom: 1px solid #d4e2f1;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.footer-cta::after {
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 72px;
    height: 3px;
    border-radius: 999px;
    background: linear-gradient(90deg, #1e6ad6, #19a9b3);
    content: "";
}
.footer-cta-copy { display: flex; align-items: center; gap: 1rem; }
.footer-cta-icon {
    display: grid;
    flex: 0 0 50px;
    width: 50px;
    height: 50px;
    place-items: center;
    border: 1px solid #d2e2f7;
    border-radius: 16px;
    color: #1e6ad6;
    background: rgba(255,255,255,.9);
    box-shadow: 0 8px 20px rgba(30, 106, 214, .1);
    font-size: 1.25rem;
    transform: rotate(-8deg);
}
.footer-eyebrow {
    margin: 0 0 .25rem;
    color: #1761be;
    font-size: .69rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.footer-cta h2 { margin: 0; color: #102d52; font-size: clamp(1.2rem, 2vw, 1.55rem); font-weight: 700; letter-spacing: -.03em; }
.footer-cta-copy > div > p:last-child { margin: .32rem 0 0; color: #526a85; font-size: .82rem; font-weight: 500; }
.footer-cta-action {
    display: inline-flex !important;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    min-height: 48px;
    min-width: 150px;
    margin: 0 !important;
    padding: .78rem 1.2rem;
    border: 1px solid #1e6ad6;
    border-radius: 13px;
    color: white !important;
    background: #1e6ad6;
    box-shadow: 0 10px 24px rgba(30, 106, 214, .2);
    font-size: .8rem !important;
    font-weight: 700;
    text-decoration: none;
    transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.footer-cta-action i { transition: transform .2s ease; }
.footer-cta-action:hover { color: white !important; background: #1759b9; transform: translateY(-2px); box-shadow: 0 14px 28px rgba(30, 106, 214, .24); }
.footer-cta-action:hover i { transform: translateX(3px); }
.footer-content {
    display: grid;
    grid-template-columns: minmax(280px, .9fr) minmax(0, 1.45fr);
    gap: clamp(2.5rem, 5vw, 5rem);
    margin: 0;
    padding: 2.5rem 0 2.2rem;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.brand-lockup { display: inline-flex; align-items: center; gap: .6rem; color: white; font-size: 1.05rem; font-weight: 600; letter-spacing: -.03em; text-decoration: none; }
.brand-lockup > span:last-child > span { color: #4f8bff; }
.brand-mark { display: inline-grid; width: 40px; height: 40px; overflow: hidden; place-items: center; }
.brand-symbol { width: 55px; max-width: none; height: 55px; object-fit: contain; }
.site-footer .footer-brand { color: #102d52; font-size: 1.16rem; font-weight: 700; }
.site-footer .footer-brand:hover { color: #1e5faf; }
.site-footer .footer-brand .brand-mark { flex: 0 0 46px; width: 46px; height: 46px; border: 1px solid #dce7f3; border-radius: 14px; background: #f7faff; }
.site-footer .footer-brand .brand-symbol { width: 54px; height: 54px; }
.footer-brand-logo-frame { display: flex; width: min(220px, 100%); height: 54px; align-items: center; }
.footer-brand-logo { display: block; width: 100%; height: 100%; object-fit: contain; object-position: left center; }
.footer-intro { max-width: 430px; margin: 1rem 0 1.25rem; color: #60758e; font-size: .82rem; font-weight: 500; line-height: 1.7; }
.footer-contact-list { display: grid; max-width: 390px; gap: .55rem; }
.footer-contact-list a,
.footer-contact-list > span {
    display: inline-flex !important;
    min-width: 0;
    max-width: 100%;
    align-items: center;
}
.footer-contact-list > a,
.footer-contact-list > span {
    gap: .65rem;
    min-height: 44px;
    margin: 0 !important;
    padding: .25rem 0;
    border: 0;
    border-radius: 0;
    color: #425b78 !important;
    background: transparent;
    font-size: .76rem !important;
    font-weight: 600;
    line-height: 1.35;
    text-decoration: none;
}
.footer-contact-list > a { transition: border-color .2s ease, background .2s ease, transform .2s ease; }
.footer-contact-list > a:hover { color: #1558af !important; transform: translateX(2px); }
.footer-contact-icon {
    display: grid !important;
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 9px;
    color: #1e6ad6;
    background: #e8f1fd;
}
.footer-contact-icon i { font-size: .84rem; }
.footer-contact-copy { min-width: 0; overflow-wrap: anywhere; }
.footer-social-block { margin-top: 1.2rem; }
.footer-social-block > p { margin: 0 0 .65rem; color: #17395f; font-size: .69rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.footer-social-links { display: flex; flex-wrap: wrap; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.footer-social-links li { display: flex; }
.footer-social-link {
    display: inline-grid !important;
    width: 44px;
    height: 44px;
    place-items: center;
    margin: 0 !important;
    color: #1e6ad6 !important;
    border: 1px solid #d3e0ee;
    border-radius: 50%;
    background: rgba(255,255,255,.68);
    font-size: 1rem;
    text-decoration: none;
    transition: color .2s ease, border-color .2s ease, background .2s ease, transform .2s ease;
}
.footer-social-links a.footer-social-link:hover { color: white !important; border-color: #1e6ad6; background: #1e6ad6; transform: translateY(-2px); }
.footer-social-links a.is-facebook { color: #1877f2 !important; }
.footer-social-links a.is-instagram { color: #c13584 !important; }
.footer-social-links a.is-x { color: #536273 !important; }
.footer-social-links a.is-youtube { color: #dc3545 !important; }
.footer-social-links a.is-linkedin { color: #0a66c2 !important; }
.footer-social-link.is-unavailable { color: #8da0b5 !important; background: rgba(255,255,255,.4); opacity: .72; }
.footer-social-link:focus-visible { outline: 3px solid rgba(30, 106, 214, .28); outline-offset: 2px; }
.footer-nav-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 2rem); }
.footer-heading {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin: 0 0 .8rem;
    color: #17395f;
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.footer-heading::before { width: 20px; height: 3px; border-radius: 999px; background: linear-gradient(90deg, #1e6ad6, #25aab4); content: ""; }
.footer-link-list { display: grid; gap: .28rem; margin: 0; padding: 0; list-style: none; }
.footer-link-list li { min-width: 0; }
.footer-column a {
    display: grid !important;
    grid-template-columns: 30px minmax(0, 1fr) 10px;
    gap: .6rem;
    min-height: 44px;
    align-items: center;
    margin: 0 !important;
    padding: .34rem .42rem;
    border-radius: 11px;
    color: #425b78 !important;
    font-size: .8rem !important;
    font-weight: 600;
    line-height: 1.35;
    text-decoration: none;
    transition: color .2s ease, background .2s ease, transform .2s ease;
}
.footer-link-icon {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 9px;
    color: #1e6ad6;
    background: #edf4fd;
    font-size: .82rem;
    transition: color .2s ease, background .2s ease;
}
.footer-link-arrow { color: #9aafc7; font-size: .6rem; transition: transform .2s ease; }
.footer-column a:hover { color: #1558af !important; background: #eef5fd; transform: translateX(2px); }
.footer-column a:hover .footer-link-icon { color: white; background: #1e6ad6; }
.footer-column a:hover .footer-link-arrow { color: #1e6ad6; transform: translateX(2px); }
.footer-cta-action:focus-visible,
.footer-contact-list a:focus-visible,
.footer-column a:focus-visible { outline: 3px solid rgba(30, 106, 214, .28); outline-offset: 2px; }
.footer-trust-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    margin: 0;
    border-top: 1px solid #d4e2f1;
    border-bottom: 1px solid #d4e2f1;
}
.footer-trust-item {
    display: flex;
    min-height: 54px;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    padding: .8rem 1rem;
    color: #425b78;
    border: 0;
    border-radius: 0;
    background: transparent;
    font-size: .76rem;
    font-weight: 700;
}
.footer-trust-item + .footer-trust-item { border-left: 1px solid #d4e2f1; }
.footer-trust-item i { display: grid; width: 30px; height: 30px; place-items: center; color: #1e6ad6; border-radius: 9px; background: #e8f1fd; font-size: .95rem; }
.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.15rem .2rem 1.3rem;
    color: #596f87;
    font-size: .72rem;
    font-weight: 500;
}

@media (max-width: 991.98px) {
    .footer-content { grid-template-columns: 1fr; gap: 2rem; }
    .footer-intro { max-width: 520px; }
    .footer-contact-list { max-width: 520px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .footer-contact-list > :first-child { grid-column: 1 / -1; }
}

@media (max-width: 767.98px) {
    .flight-results-layout,
    .flight-results-content,
    .flight-result-list,
    .flight-result-card {
        width: 100% !important;
        min-width: 0 !important;
        margin-inline: 0 !important;
    }

    .flight-results-layout {
        gap: 0 !important;
        padding-inline: 0 !important;
    }

    .site-footer { padding-top: 0; }
    .footer-cta { align-items: flex-start; flex-direction: column; gap: 1rem; padding: 1.2rem 0; border-radius: 0; }
    .footer-cta-copy { align-items: flex-start; }
    .footer-cta-icon { flex-basis: 44px; width: 44px; height: 44px; border-radius: 13px; font-size: 1.05rem; }
    .footer-eyebrow { font-size: .64rem; }
    .footer-cta h2 { font-size: 1.13rem; line-height: 1.25; }
    .footer-cta-copy > div > p:last-child { font-size: .77rem; line-height: 1.5; }
    .footer-cta-action { width: 100%; min-height: 46px; }
    .footer-content { gap: 1.35rem; margin: 0; padding: 1.45rem 0 1.2rem; border-radius: 0; }
    .site-footer .footer-brand { font-size: 1.08rem; }
    .site-footer .footer-brand .brand-mark { flex-basis: 44px; width: 44px; height: 44px; }
    .footer-intro { margin: .85rem 0 1rem; font-size: .78rem; line-height: 1.65; }
    .footer-contact-list { max-width: none; grid-template-columns: 1fr; }
    .footer-contact-list > :first-child { grid-column: auto; }
    .footer-contact-list > a,
    .footer-contact-list > span { min-height: 46px; font-size: .75rem !important; }
    .footer-nav-grid { grid-template-columns: 1fr; gap: .75rem; }
    .footer-column { padding: .8rem 0; border: 0; border-bottom: 1px solid #dce7f3; border-radius: 0; background: transparent; }
    .footer-column:last-child { border-bottom: 0; }
    .footer-heading { margin-bottom: .7rem; }
    .footer-link-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4rem; }
    .footer-column a { min-height: 46px; padding: .38rem .4rem; background: transparent; box-shadow: none; }
    .footer-trust-row { grid-template-columns: 1fr; gap: 0; }
    .footer-trust-item { min-height: 48px; justify-content: flex-start; padding: .62rem 0; }
    .footer-trust-item + .footer-trust-item { border-top: 1px solid #d4e2f1; border-left: 0; }
    .footer-bottom { align-items: center; flex-direction: column; gap: .35rem; padding: 1rem .2rem 1.25rem; text-align: center; }
}

/* App-style flight listing on compact screens. Kept last so it wins over legacy mobile rules. */
.flight-modify-mobile-summary {
    display: none;
}

@media (max-width: 767.98px) {
    .flight-results-page {
        padding: .75rem 0 3.5rem;
    }
    .flight-results-page > .container {
        padding-inline: 12px;
    }
    .results-title-row {
        margin-bottom: .65rem;
    }
    .results-title-row .section-kicker,
    .results-title-row p {
        display: none;
    }
    .results-title-row h1 {
        margin: 0;
        font-size: 1.35rem;
        letter-spacing: -.025em;
    }
    .flight-listing-modify-panel {
        margin: 0 0 .7rem;
        padding: .55rem;
        border-radius: 16px;
        box-shadow: 0 10px 24px rgba(14, 39, 75, .07);
    }
    .flight-modify-mobile-summary {
        display: grid;
        width: 100%;
        min-height: 64px;
        padding: .65rem .7rem;
        grid-template-columns: 1fr auto;
        grid-template-areas:
            "route action"
            "meta action";
        align-items: center;
        gap: .14rem .65rem;
        color: #0d234a;
        border: 0;
        border-radius: 12px;
        background: linear-gradient(135deg, #f7faff 0%, #eef5ff 100%);
        text-align: left;
    }
    .flight-modify-mobile-route {
        display: flex;
        grid-area: route;
        align-items: center;
        gap: .45rem;
        font-size: .92rem;
    }
    .flight-modify-mobile-route i {
        color: #2367ee;
        font-size: .78rem;
    }
    .flight-modify-mobile-meta {
        grid-area: meta;
        overflow: hidden;
        color: #6f819d;
        font-size: .7rem;
        white-space: nowrap;
        text-overflow: ellipsis;
    }
    .flight-modify-mobile-action {
        display: inline-flex;
        min-width: 74px;
        min-height: 34px;
        padding: 0 .62rem;
        grid-area: action;
        align-items: center;
        justify-content: center;
        gap: .35rem;
        color: #155eef;
        border: 1px solid #bfd3ff;
        border-radius: 10px;
        background: #fff;
        font-size: .72rem;
        font-weight: 700;
    }
    .flight-listing-modify-panel.is-mobile-collapsed .flight-listing-modify-body {
        display: none;
    }
    .flight-listing-modify-panel:not(.is-mobile-collapsed) .flight-modify-mobile-summary {
        margin-bottom: .65rem;
    }
    .flight-listing-modify-head {
        display: none;
    }
    .flight-listing-modify-body {
        padding: .18rem;
    }
    .flight-listing-trip-switcher {
        margin-bottom: .6rem;
        padding: .15rem 0 .55rem;
        gap: .35rem;
        overflow-x: auto;
        flex-wrap: nowrap;
        scrollbar-width: none;
    }
    .flight-listing-trip-switcher::-webkit-scrollbar {
        display: none;
    }
    .flight-listing-trip-switcher .trip-option {
        flex: 0 0 auto;
        font-size: .72rem;
    }
    .flight-listing-search-form {
        gap: .5rem;
    }
    .flight-listing-search-form .booking-field,
    .flight-listing-search-form .airport-picker {
        min-height: 58px;
    }
    .flight-listing-search-form .special-fare-row {
        padding: .6rem;
    }
    .flight-listing-search-form .special-fare-row small {
        display: none;
    }
    .flight-search-summary-wrap {
        display: none;
    }
    .nearby-fare-strip {
        margin: 0 0 .65rem;
        border-radius: 15px;
        overflow: hidden;
    }
    .nearby-fare-days {
        display: grid;
        grid-auto-columns: minmax(105px, 32%);
        grid-auto-flow: column;
        overflow-x: auto;
        scroll-snap-type: x proximity;
        scrollbar-width: none;
    }
    .nearby-fare-days::-webkit-scrollbar {
        display: none;
    }
    .nearby-fare-day {
        min-height: 68px;
        padding: .65rem .45rem;
        scroll-snap-align: center;
        font-size: .7rem;
    }
    .nearby-fare-day strong {
        font-size: .86rem;
    }
    .flight-results-panel,
    .flight-result-list {
        border-radius: 16px;
    }
    .flight-result-list {
        padding: .55rem;
        gap: .65rem;
    }
    .flight-result-controls {
        min-height: 50px;
        padding: .65rem .75rem;
        flex-direction: row;
        align-items: center;
        gap: .5rem;
    }
    .flight-result-controls > strong,
    .flight-result-controls > span {
        font-size: .72rem;
    }
    .flight-result-card {
        border-radius: 14px;
        box-shadow: 0 7px 18px rgba(14, 39, 75, .06);
    }
    .flight-result-main {
        display: grid;
        min-height: 0;
        padding: .75rem;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "airline fare"
            "schedule schedule";
        align-items: start;
        gap: .7rem .75rem;
    }
    .flight-result-airline {
        grid-area: airline;
        align-items: center;
    }
    .flight-result-airline .airline-logo-mark {
        width: 44px;
        height: 44px;
        border-radius: 11px;
    }
    .flight-result-airline h3 {
        font-size: .86rem;
    }
    .flight-result-airline p,
    .flight-result-airline .direction-badge {
        font-size: .64rem;
    }
    .flight-result-schedule {
        grid-area: schedule;
        padding-top: .68rem;
        grid-template-columns: minmax(65px, auto) minmax(105px, 1fr) minmax(65px, auto);
        gap: .45rem;
        border-top: 1px solid #e5edf7;
    }
    .flight-time strong {
        font-size: 1.2rem;
    }
    .flight-time span {
        font-size: .72rem;
    }
    .flight-time small,
    .flight-duration span,
    .flight-duration strong {
        font-size: .62rem;
    }
    .flight-result-fare {
        min-width: 102px;
        padding: 0;
        grid-area: fare;
        align-items: flex-end;
        border: 0;
    }
    .flight-result-fare > span {
        font-size: .58rem;
    }
    .flight-result-fare > strong {
        font-size: 1.18rem;
    }
    .flight-result-fare > em {
        display: none;
    }
    .select-flight-button {
        min-width: 102px;
        min-height: 34px;
        margin-top: .38rem;
        padding: .38rem .55rem;
        border-radius: 9px;
        font-size: .68rem;
    }
    .select-flight-button small {
        font-size: .58rem;
    }
    .flight-result-meta {
        min-height: 42px;
        padding: .5rem .72rem;
        flex-flow: row nowrap;
        align-items: center;
        gap: .42rem;
        overflow-x: auto;
        scrollbar-width: none;
    }
    .flight-result-meta::-webkit-scrollbar {
        display: none;
    }
    .flight-result-meta > * {
        flex: 0 0 auto;
        margin: 0 !important;
        font-size: .64rem;
    }
    .flight-result-meta .result-tag,
    .flight-result-meta .limited-seats {
        min-height: 28px;
        padding: .32rem .48rem;
        border-radius: 999px;
        background: #f4f7fb;
    }
    .flight-result-meta .limited-seats {
        color: #b95a00;
        background: #fff8e8;
    }
    .fare-details-toggle {
        min-height: 28px;
        padding: .3rem .48rem;
        border-radius: 999px;
        background: #edf4ff;
    }
}

@media (max-width: 479.98px) {
    .flight-result-main {
        grid-template-columns: 1fr;
        grid-template-areas:
            "airline"
            "schedule"
            "fare";
    }
    .flight-result-fare {
        display: grid;
        width: 100%;
        padding-top: .58rem;
        grid-template-columns: 1fr auto;
        grid-template-areas:
            "label button"
            "price button";
        align-items: center;
        border-top: 1px solid #e5edf7;
    }
    .flight-result-fare > span {
        grid-area: label;
    }
    .flight-result-fare > strong {
        grid-area: price;
    }
    .flight-result-fare .select-flight-button {
        margin: 0;
        grid-area: button;
    }
}

@media (max-width: 479.98px) {
    .footer-cta-copy { gap: .75rem; }
    .footer-link-arrow { display: none; }
    .footer-column a { grid-template-columns: 30px minmax(0, 1fr); gap: .5rem; }
}

@media (max-width: 359.98px) {
    .footer-link-list { grid-template-columns: 1fr; }
}

/* Placeholder account and error pages */
.auth-page { min-height: 650px; padding: 5rem 0; background: radial-gradient(circle at 50% -20%, #dcedff, transparent 45%), #f7faff; }
.auth-card { max-width: 510px; padding: 3rem; border: 1px solid #dfe9f5; border-radius: 24px; background: white; box-shadow: 0 22px 55px rgba(7,29,66,.09); }
.auth-card h1 { margin: .7rem 0; color: var(--ink); font-size: 2.25rem; font-weight: 600; letter-spacing: -.04em; }
.auth-card p { color: var(--muted); line-height: 1.7; }
.auth-icon { display: grid; width: 52px; height: 52px; margin: 0 auto 1.2rem; place-items: center; color: white; border-radius: 16px; background: var(--brand-blue); font-size: 1.4rem; }
.section-kicker { display: inline-flex; color: var(--brand-blue); font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.placeholder-fields { display: grid; gap: .75rem; margin: 1.5rem 0; text-align: left; }
.placeholder-fields div { padding: .9rem 1rem; color: #a0abba; border: 1px solid var(--line); border-radius: 10px; background: #fbfdff; font-size: .85rem; }
.auth-back { display: inline-block; margin-top: 1.4rem; color: var(--brand-blue); font-size: .82rem; font-weight: 600; text-decoration: none; }
.error-body { display: grid; min-height: 100vh; padding: 2rem; place-items: center; background: radial-gradient(circle at top, #e9f4ff, #f8fbff 48%, #eef3f9); }
.error-card { width: min(580px, 100%); padding: 3.5rem; text-align: center; border: 1px solid var(--line); border-radius: 28px; background: white; box-shadow: var(--shadow-lg); }
.error-code { color: var(--brand-blue); font-size: .75rem; font-weight: 700; letter-spacing: .2em; }
.error-symbol { display: grid; width: 64px; height: 64px; margin: 1.2rem auto; place-items: center; color: white; border-radius: 20px; background: var(--brand-blue); font-size: 1.8rem; }
.error-card h1 { color: var(--ink); font-size: 2rem; font-weight: 600; letter-spacing: -.04em; }
.error-card p { margin: 1rem auto 1.5rem; color: var(--muted); line-height: 1.7; }
.debug-message { margin-bottom: 1.5rem; padding: .8rem; color: #8b2931; border-radius: 8px; background: #fff0f1; font-size: .8rem; }

/* Traveller and B2B agent access popup */
.header-account-name { display: inline-flex; align-items: center; gap: .35rem; color: #16335f; font-weight: 600; text-decoration: none; }
.header-account-name:hover { color: var(--brand-blue); }
.header-account-name i { color: #0aa47c; }
.header-logout-form { margin: 0; }
.header-logout-form button { display: inline-flex; padding: .38rem .65rem; align-items: center; gap: .28rem; color: #526682; border: 1px solid #d5e0ed; border-radius: 8px; background: white; font-size: .72rem; font-weight: 600; }
.header-logout-form button:hover { color: #b62935; border-color: #efc2c6; background: #fff7f8; }
.mobile-account-name { display: inline-flex; min-height: 38px; padding: 0 .75rem; align-items: center; gap: .4rem; color: #154b9f; border-radius: 8px; background: #edf4ff; font-size: .78rem; font-weight: 600; white-space: nowrap; }
html.auth-modal-open, body.auth-modal-open { overflow: hidden; overscroll-behavior: none; }
body.auth-modal-open { position: fixed; right: 0; left: 0; width: 100%; }
.auth-access-modal[hidden] { display: none !important; }
.auth-access-modal { position: fixed; z-index: 6000; inset: 0; display: grid; padding: 16px; place-items: center; }
.auth-access-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: rgba(4, 18, 43, .72); backdrop-filter: blur(9px); cursor: default; }
.auth-access-dialog { position: relative; z-index: 1; width: min(100%, 560px); max-height: calc(100dvh - 32px); overflow-y: auto; overscroll-behavior: contain; color: #203453; border: 1px solid rgba(193, 211, 237, .9); border-radius: 24px; background: radial-gradient(circle at 95% 0, rgba(24, 99, 241, .08), transparent 29%), #fff; box-shadow: 0 38px 100px rgba(2, 17, 43, .4); scrollbar-width: thin; -webkit-overflow-scrolling: touch; animation: auth-popup-in .24s cubic-bezier(.22, 1, .36, 1); }
@keyframes auth-popup-in { from { opacity: 0; transform: translateY(18px) scale(.975); } to { opacity: 1; transform: translateY(0) scale(1); } }
.auth-access-head { display: grid; min-height: 78px; padding: 12px 18px; grid-template-columns: 150px minmax(0, 1fr) 38px; align-items: center; gap: 14px; border-bottom: 1px solid #e3ebf6; background: linear-gradient(135deg, rgba(248, 251, 255, .96), rgba(255, 255, 255, .78)); }
.auth-access-head > img { display: block; width: 150px; height: 46px; object-fit: contain; object-position: left center; }
.auth-access-head > span { display: inline-flex; width: fit-content; padding: 7px 10px; align-items: center; gap: 6px; color: #0f57d6; border: 1px solid #c9dcfb; border-radius: 999px; background: #f2f7ff; font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.auth-access-head > span i { color: #02a77e; font-size: .8rem; }
.auth-access-close { display: grid; width: 38px; height: 38px; padding: 0; place-items: center; color: #4e6382; border: 1px solid #d4e0ef; border-radius: 12px; background: rgba(255, 255, 255, .9); font-size: .92rem; transition: transform .16s, color .16s, border-color .16s, background .16s; }
.auth-access-close:hover { color: var(--brand-blue); border-color: #9bbcf7; background: #eef5ff; transform: rotate(3deg); }
.auth-role-tabs { position: relative; display: grid; margin: 12px 18px 0; padding: 4px; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; border: 1px solid #d6e2f1; border-radius: 15px; background: #f0f5fb; overflow: hidden; }
.auth-role-tabs::before { position: absolute; z-index: 0; top: 5px; bottom: 5px; left: 5px; width: calc(50% - 8px); border-radius: 11px; background: #fff; box-shadow: 0 8px 22px rgba(23, 57, 104, .12); content: ""; transition: transform .3s cubic-bezier(.22, 1, .36, 1); }
.auth-role-tabs[data-active-role="agent"]::before { transform: translateX(calc(100% + 6px)); }
.auth-role-tabs button { position: relative; z-index: 1; display: flex; min-height: 48px; padding: 7px 12px; align-items: center; justify-content: center; gap: 9px; color: #657691; border: 0; border-radius: 11px; background: transparent; text-align: center; transition: color .25s, transform .25s; }
.auth-role-tabs button i { display: grid; width: 30px; height: 30px; place-items: center; color: #71839f; border-radius: 9px; background: rgba(255, 255, 255, .58); font-size: .9rem; }
.auth-role-tabs button span { font-size: .78rem; font-weight: 700; }
.auth-role-tabs button.is-active { color: #0c4dbd; background: transparent; box-shadow: none; transform: translateY(-1px); }
.auth-role-tabs button.is-active i { color: #fff; background: linear-gradient(145deg, #2169f3, #0d49cc); box-shadow: 0 6px 14px rgba(21, 94, 239, .22); }
.auth-popup-alert { margin: 8px 18px 0; padding: 8px 10px; color: #a32732; border: 1px solid #efc0c5; border-radius: 10px; background: #fff3f4; font-size: .68rem; line-height: 1.4; }
.auth-popup-alert.is-success { color: #08765d; border-color: #a6dfcf; background: #ecfbf6; }
.auth-role-panel { padding: 16px 18px 18px; }
.auth-role-panel[hidden], .customer-auth-view[hidden], .agent-auth-view[hidden] { display: none !important; }
.auth-role-panel.is-active, .customer-auth-view.is-active, .agent-auth-view.is-active { animation: auth-panel-shift .3s cubic-bezier(.22, 1, .36, 1); }
@keyframes auth-panel-shift { from { opacity: 0; transform: translateX(10px); } to { opacity: 1; transform: translateX(0); } }
.auth-panel-heading { position: relative; margin-bottom: 12px; padding-left: 13px; }
.auth-panel-heading::before { position: absolute; top: 3px; bottom: 3px; left: 0; width: 4px; border-radius: 999px; background: linear-gradient(#1763f2, #07b8c4); content: ""; }
.auth-panel-heading > span { color: var(--brand-blue); font-size: .6rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.auth-panel-heading h3 { margin: 3px 0 0; color: var(--ink); font-size: 1.2rem; font-weight: 700; letter-spacing: -.03em; }
.auth-panel-heading p { margin: 0; color: #718099; font-size: .69rem; line-height: 1.5; }
.auth-popup-field { position: relative; display: block; margin: 5px 0 18px; padding-top: 3px; }
.auth-popup-field > span:first-child { position: absolute; z-index: 2; top: -2px; left: 12px; display: block; margin: 0; padding: 0 5px; color: #175bcf; background: #fff; font-size: .7rem; font-weight: 700; line-height: 1; }
.auth-popup-field > span:last-child { display: flex; min-width: 0; height: 48px; padding: 0 13px; align-items: center; gap: 9px; border: 1px solid #b8cff1; border-radius: 10px; background: #fff; transition: border-color .16s, box-shadow .16s, background .16s; }
.auth-popup-field > span:last-child:focus-within { border-color: #6698f5; background: #fff; box-shadow: 0 0 0 4px rgba(21, 94, 239, .1); }
.auth-popup-field > span:last-child > i { display: none; }
.auth-popup-field input { width: 100%; min-width: 0; height: 42px; padding: 0 4px; color: #10294e; border: 0; outline: 0; background: transparent; font-size: .77rem; }
.auth-popup-field input::placeholder { color: #9aa7b8; }
.auth-popup-field:not(:has([data-auth-password-toggle])):has(input:valid)::after { position: absolute; z-index: 2; top: 18px; right: 15px; display: grid; width: 18px; height: 18px; place-items: center; color: #139667; border: 1.5px solid #53b992; border-radius: 50%; background: #f3fff9; content: "\2713"; font-size: .62rem; font-weight: 800; line-height: 1; pointer-events: none; }
.auth-popup-field:not(:has([data-auth-password-toggle])):has(input:valid) > span:last-child { padding-right: 43px; border-color: #6d9df7; }
.auth-popup-field input:-webkit-autofill,
.auth-popup-field input:-webkit-autofill:hover,
.auth-popup-field input:-webkit-autofill:focus,
.auth-popup-field input:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 1000px #fff inset !important;
    -webkit-text-fill-color: #10294e !important;
    caret-color: #10294e;
    transition: background-color 9999s ease-out 0s;
}
.auth-popup-field input:autofill {
    box-shadow: 0 0 0 1000px #fff inset !important;
    color: #10294e !important;
    background-color: #fff !important;
}
.auth-popup-field button { display: grid; flex: 0 0 auto; width: 34px; height: 34px; padding: 0; place-items: center; color: var(--brand-blue); border: 1px solid #d4e3fb; border-radius: 9px; background: #edf4ff; font-size: .76rem; font-weight: 700; }
.auth-popup-field button i { color: currentColor; font-size: .86rem; }
.auth-popup-name-grid, .auth-popup-contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.auth-country-code { padding-right: 8px; color: #314f76; border-right: 1px solid #dce4ee; font-size: .7rem; font-weight: 600; }
.auth-popup-consent { display: flex; margin: 2px 0 9px; align-items: flex-start; gap: 8px; color: #63738b; font-size: .62rem; line-height: 1.4; }
.auth-popup-consent input { width: 15px; height: 15px; margin-top: 1px; accent-color: var(--brand-blue); }
.auth-popup-submit { display: flex; width: fit-content; min-width: 170px; max-width: 100%; min-height: 46px; margin-right: auto; margin-left: auto; padding: 0 24px; align-items: center; justify-content: center; gap: 9px; color: #fff; border: 0; border-radius: 12px; background: linear-gradient(115deg, #2169f3, #0e4cd2 58%, #073999); box-shadow: 0 12px 24px rgba(16, 75, 205, .23); font-size: .77rem; font-weight: 700; letter-spacing: .01em; transition: transform .17s, box-shadow .17s; }
.auth-popup-submit:hover { transform: translateY(-2px); box-shadow: 0 18px 34px rgba(16, 75, 205, .31); }
.auth-popup-submit:disabled { cursor: wait; opacity: .72; transform: none; }
.auth-popup-divider { display: flex; margin: 14px 0; align-items: center; gap: 10px; color: #94a1b5; font-size: .62rem; }
.auth-popup-divider::before, .auth-popup-divider::after { height: 1px; flex: 1; background: #e0e8f2; content: ""; }
.auth-popup-secondary { display: flex; width: 100%; min-height: 48px; padding: 0 16px; align-items: center; justify-content: center; gap: 9px; color: #1355c7; border: 1px solid #bcd0ef; border-radius: 13px; background: #f7faff; font-size: .76rem; font-weight: 700; transition: border-color .16s, background .16s, transform .16s; }
.auth-popup-secondary:hover { border-color: #75a0ef; background: #edf4ff; transform: translateY(-1px); }
.auth-otp-heading strong { color: #1a4e9a; font-weight: 700; }
.auth-otp-code { display: grid; margin: 6px 0 18px; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 9px; }
.auth-otp-code input { width: 100%; min-width: 0; height: 56px; padding: 0; color: #12325f; border: 1px solid #cbd9eb; border-radius: 12px; outline: 0; background: #fbfdff; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9); font-size: 1.15rem; font-weight: 700; text-align: center; transition: border-color .16s, box-shadow .16s, background .16s; }
.auth-otp-code input:focus { border-color: #4f88f4; background: #fff; box-shadow: 0 0 0 4px rgba(21, 94, 239, .1); }
.auth-otp-submit { width: auto; min-width: 190px; margin: 0 auto; }
.auth-otp-resend { display: flex; min-height: 34px; margin-top: 13px; align-items: center; justify-content: center; gap: 10px; color: #75849a; font-size: .66rem; }
.auth-otp-resend button { padding: 4px 0; color: var(--brand-blue); border: 0; background: transparent; font-size: .66rem; font-weight: 700; }
.auth-otp-resend button:disabled { color: #a6b0bf; cursor: not-allowed; }
.auth-popup-switch { margin: 10px 0 0; color: #77869b; font-size: .68rem; text-align: center; }
.auth-popup-switch button { padding: 0; color: var(--brand-blue); border: 0; background: transparent; font-weight: 700; }
.agent-popup-register { display: flex; margin-top: 15px; padding: 13px 14px; align-items: center; justify-content: space-between; gap: 10px; border: 1px solid #d8e5f3; border-radius: 12px; background: linear-gradient(135deg, #f7faff, #eef5ff); font-size: .68rem; }
.agent-popup-register span { color: #718099; }
.agent-popup-register a { color: var(--brand-blue); font-weight: 700; text-decoration: none; }
.auth-access-foot { display: flex; min-height: 36px; padding: 7px 18px; align-items: center; justify-content: center; gap: 7px; color: #6e7f97; border-top: 1px solid #e4ebf4; background: rgba(247, 250, 254, .92); font-size: .6rem; }
.auth-access-foot i { color: #0aa47c; }

@media (max-width: 575.98px) {
    .auth-access-modal { padding: 10px; align-items: end; }
    .auth-access-dialog { width: 100%; max-height: calc(100dvh - 20px); border-radius: 20px 20px 14px 14px; }
    .auth-access-head { min-height: 76px; padding: 12px 14px; grid-template-columns: 118px minmax(0, 1fr) 36px; gap: 8px; }
    .auth-access-head > img { width: 118px; height: 42px; }
    .auth-access-head > span { padding: 5px 7px; font-size: .5rem; letter-spacing: .05em; }
    .auth-access-head > span i { display: none; }
    .auth-role-tabs { margin: 12px 14px 0; }
    .auth-role-tabs button { min-height: 54px; padding: 7px 8px; }
    .auth-role-panel { padding: 15px 14px; }
    .auth-popup-alert { margin-right: 14px; margin-left: 14px; }
    .auth-popup-name-grid, .auth-popup-contact-grid { grid-template-columns: 1fr; gap: 0; }
    .auth-otp-code { gap: 6px; }
    .auth-otp-code input { height: 50px; border-radius: 10px; font-size: 1rem; }
    .agent-popup-register { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 1199.98px) {
    .flight-search { grid-template-columns: 1fr 1fr; }
    .route-fields { grid-column: 1 / -1; }
    .search-button { min-height: 59px; }
    .booking-stage { margin-top: -130px; }
    .destination-grid { grid-template-columns: repeat(3, 1fr); }
    .destination-card { height: 128px; }
}

@media (max-width: 991.98px) {
    .main-navbar { min-height: 68px; }
    .main-navbar .navbar-collapse { padding-top: .6rem; border-top: 1px solid #edf1f6; }
    .main-navbar .nav-link { padding: .65rem .25rem !important; }
    .main-navbar .nav-link.active::after { display: none; }
    .travel-hero { min-height: 450px; background-position: 58% center; }
    .travel-hero::before { background: linear-gradient(90deg, rgba(255,255,255,.76) 0%, rgba(255,255,255,.55) 40%, rgba(255,255,255,.12) 74%, rgba(255,255,255,0) 100%); }
    .hero-content { padding-top: 2.8rem; }
    .booking-stage { margin-top: -92px; }
    .service-grid { grid-template-columns: repeat(2, 1fr); }
    .assurance-strip { grid-template-columns: repeat(2, 1fr); gap: 1rem 0; }
    .assurance-item:nth-child(2) { border-right: 0; }
}

@media (max-width: 767.98px) {
    .header-brand { width: 190px; height: 60px; flex-basis: 190px; }
    .header-logo-frame { width: 190px; height: 54px; }
    .header-brand-logo { width: 100%; height: 100%; }
    .travel-hero { min-height: 470px; background-position: 63% center; }
    .travel-hero::before { background: linear-gradient(90deg, rgba(255,255,255,.84) 0%, rgba(255,255,255,.64) 55%, rgba(255,255,255,.18) 100%); }
    .hero-content { padding-top: 2.1rem; }
    .hero-copy h1 { font-size: 2.65rem; }
    .hero-copy > p { max-width: 315px; font-size: .88rem; }
    .booking-benefits { margin-bottom: .75rem; padding-bottom: .15rem; gap: 1.15rem; overflow-x: auto; scrollbar-width: none; }
    .booking-benefits::-webkit-scrollbar { display: none; }
    .booking-stage { margin-top: -72px; }
    .booking-tabs { height: 54px; }
    .booking-body { border-radius: 0 0 18px 18px; }
    .booking-tab { gap: .32rem; font-size: .66rem; }
    .booking-tab i { font-size: .92rem; }
    .booking-body { padding: .9rem; }
    .trip-switcher { overflow-x: auto; gap: 1rem; }
    .trip-option { flex-shrink: 0; }
    .flight-search { grid-template-columns: 1fr; }
    .route-fields { grid-template-columns: 1fr; }
    .swap-button { top: 50%; right: .65rem; left: auto; transform: translateY(-50%) rotate(90deg); }
    .swap-button:hover { transform: translateY(-50%) rotate(270deg); }
    .service-grid { grid-template-columns: 1fr; }
    .services-section { margin-top: 1.65rem; }
    .services-heading { align-items: flex-start; gap: .35rem; flex-direction: column; }
    .services-heading p { max-width: 320px; margin-top: .25rem; text-align: left; }
    .service-media { height: 120px; }
    .service-icon { top: 96px; }
    .assurance-strip { grid-template-columns: 1fr; }
    .assurance-item, .assurance-item:nth-child(2) { padding: .2rem .5rem .75rem; border-right: 0; border-bottom: 1px solid #e0e7f0; }
    .assurance-item:last-child { padding-bottom: .2rem; border-bottom: 0; }
    .destination-grid { grid-template-columns: repeat(2, 1fr); }
    .destination-card { height: 120px; }
    .section-title-row > div > span { display: none; }
    .sample-fare-note { text-align: left; }
    .support-fab { right: 1rem; bottom: 1rem; width: 44px; height: 44px; }
    .auth-page { padding: 3rem 0; }
    .auth-card, .error-card { padding: 2rem 1.3rem; }
}

@media (max-width: 479.98px) {
    .support-fab {
        position: static;
        margin: 12px max(16px, env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) auto;
    }
}

@media (max-width: 419.98px) {
    .booking-tab span { display: none; }
    .booking-tab i { font-size: 1.08rem; }
    .destination-grid { grid-template-columns: 1fr; }
    .destination-card { height: 145px; }
}

@media (max-width: 1199.98px) {
    .hotel-search { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hotel-destination-picker { grid-column: 1 / -1; }
    .hotel-search-button { min-height: 59px; }
    .bus-search { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bus-route-fields { grid-column: 1 / -1; }
    .bus-search-button { min-height: 59px; }
    .holiday-search { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .holiday-search-button { min-height: 59px; }
    .multi-city-sector { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .multi-city-sector .date-field { grid-column: 1 / 2; }
    .multi-city-sector .remove-flight-button { top: .48rem; right: .62rem; bottom: auto; }
    .flight-search-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .summary-route { grid-column: span 1; }
}

@media (max-width: 767.98px) {
    .flight-listing-modify-panel { margin-top: -.35rem; padding: .8rem; border-radius: 13px; }
    .flight-listing-modify-head p { display: none; }
    .flight-listing-modify-head h2 { font-size: 1rem; }
    .flight-search.is-multi-city { grid-template-columns: 1fr; }
    .special-fare-row { align-items: flex-start; flex-direction: column; }
    .special-fare-row > small { margin-left: 0; white-space: normal; }
    .hotel-search { grid-template-columns: 1fr; }
    .hotel-destination-picker { grid-column: auto; }
    .bus-search { grid-template-columns: 1fr; }
    .bus-route-fields { grid-column: auto; grid-template-columns: 1fr; }
    .bus-swap-button { top: 50%; right: .7rem; left: auto; transform: translateY(-50%) rotate(90deg); }
    .bus-swap-button:hover { transform: translateY(-50%) rotate(270deg); }
    .holiday-search { padding: 12px; grid-template-columns: 1fr; }
    .holiday-preferences-row { grid-column: 1; align-items: flex-start; flex-wrap: wrap; }
    .holiday-category-filter { width: 100%; }
    .holiday-preferences-row > small { width: 100%; margin-left: 0; }
    .airport-suggestions { width: 100%; max-width: none; max-height: min(300px, calc(100vh - 190px)); }
    .calendar-popover,
    .traveller-popover {
        position: fixed;
        z-index: 1080;
        top: auto;
        right: .75rem;
        bottom: .75rem;
        left: .75rem;
        width: auto;
        max-height: calc(100vh - 1.5rem);
        overflow-y: auto;
    }
    .hotel-room-popover {
        position: fixed;
        z-index: 1080;
        top: auto;
        right: .75rem;
        bottom: .75rem;
        left: .75rem;
        width: auto;
        max-height: calc(100vh - 1.5rem);
    }
    .calendar-popover { padding: 1rem; }
    .calendar-months { grid-template-columns: 1fr; gap: 1.2rem; }
    .calendar-month + .calendar-month { padding-top: 1rem; border-top: 1px solid #e7edf4; }
    .calendar-footer { align-items: flex-start; flex-direction: column; }
    .calendar-footer button { width: 100%; }
    .multi-city-panel { padding: .62rem; }
    .multi-city-heading { align-items: flex-start; }
    .multi-city-sector { grid-template-columns: 1fr; padding: 1.65rem .62rem .62rem; }
    .multi-city-sector .date-field { grid-column: auto; }
    .multi-city-sector .remove-flight-button { top: .48rem; right: .55rem; bottom: auto; }
    .multi-city-sector > [data-airport-picker]:first-of-type::after { display: none; }
    .flight-results-page { padding: 2.5rem 0 4rem; }
    .results-title-row { align-items: flex-start; flex-direction: column; }
    .flight-result-main { grid-template-columns: 1fr; gap: 1rem; }
    .flight-result-airline { padding-bottom: .1rem; }
    .flight-result-fare { padding: .85rem 0 0; align-items: flex-start; border-top: 1px solid #e5ebf2; border-left: 0; text-align: left; }
    .flight-result-meta .limited-seats { margin-left: 0; }
    .live-fare-note { align-items: flex-start; flex-direction: column; }
    .live-fare-note em { margin-left: 0; }
    .flight-search-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .summary-route { grid-column: 1 / -1; }
    .nearby-fare-strip { grid-template-columns: 34px minmax(0, 1fr) 34px; }
    .nearby-fare-days { overflow-x: auto; grid-template-columns: none; grid-auto-columns: 112px; grid-auto-flow: column; scrollbar-width: none; scroll-snap-type: x proximity; }
    .nearby-fare-days::-webkit-scrollbar { display: none; }
    .nearby-fare-day { scroll-snap-align: start; }
    .multicity-summary { grid-template-columns: 1fr; }
    .multicity-summary > div, .multicity-summary > div:nth-child(3n) { padding: 0 0 .65rem; border-right: 0; border-bottom: 1px solid #e1e7ef; }
    .multicity-summary > div:last-child { padding-bottom: 0; border-bottom: 0; }
    .flight-skeleton-card { grid-template-columns: 38px 1fr; }
    .skeleton-time, .skeleton-price { display: none; }
    .hotel-skeleton-card { grid-template-columns: 86px 1fr; }
    .hotel-skeleton-image { width: 86px; height: 68px; }
}

@media (max-width: 479.98px) {
    .special-fare-options { display: grid; width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .special-fare-option span { justify-content: center; }
    .airport-option { min-height: 56px; padding: .54rem; grid-template-columns: 30px minmax(0, 1fr) auto; gap: .52rem; }
    .airport-option-meta { min-width: 42px; }
    .airport-option-meta small { display: none; }
    .calendar-toolbar { align-items: flex-start; }
    .calendar-navigation { gap: .2rem; }
    .calendar-navigation button { width: 30px; height: 30px; }
    .flight-result-list { padding: .65rem; }
    .flight-result-main { padding: .9rem; }
    .flight-result-schedule { grid-template-columns: minmax(62px, auto) 1fr minmax(62px, auto); gap: .55rem; }
    .flight-time-block strong { font-size: 1.25rem; }
    .flight-result-meta { padding: .65rem .9rem; align-items: flex-start; flex-direction: column; }
    .flight-api-error { padding: 1.35rem 1rem; }
    .cabin-options { grid-template-columns: 1fr; }
    .hotel-child-ages > div { grid-template-columns: 1fr; }
    .flight-search-summary { grid-template-columns: 1fr; }
    .flight-search-summary > div, .summary-route { grid-column: auto; padding-bottom: .65rem; border-bottom: 1px solid #edf1f5; }
    .flight-search-summary > div:last-child { padding-bottom: 0; border-bottom: 0; }
}

@media (max-width: 1199.98px) {
    .flight-results-layout { grid-template-columns: 250px minmax(0, 1fr); }
    .flight-result-main { grid-template-columns: minmax(150px, .9fr) minmax(280px, 1.65fr) minmax(135px, .7fr); gap: .9rem; }
    .flight-selection-tray.is-roundtrip { grid-template-columns: minmax(0, 1fr) 112px 180px; }
    .flight-selection-tray.is-roundtrip > button { width: 180px; min-width: 180px; }
    .roundtrip-selected-flight { padding-right: .5rem; padding-left: .5rem; grid-template-columns: minmax(105px, .85fr) minmax(112px, 1fr) auto; gap: .45rem; }
    .traveller-fields { grid-template-columns: .55fr 1fr 1fr; }
    .traveller-fields label:nth-child(n+4) { grid-column: span 1; }
}

@media (max-width: 991.98px) {
    body.flight-filter-drawer-open { overflow: hidden; }
    .flight-results-layout { grid-template-columns: 1fr; }
    .flight-filter-sidebar { position: fixed; z-index: 1090; top: .75rem; right: .75rem; bottom: .75rem; left: .75rem; display: none; max-height: calc(100vh - 1.5rem); overflow-y: auto; box-shadow: 0 0 0 9999px rgba(8,25,56,.48), 0 20px 50px rgba(8,25,56,.28); }
    .flight-filter-sidebar.is-mobile-open { display: block; }
    .filter-sidebar-head { position: sticky; z-index: 2; top: 0; background: white; }
    .filter-sidebar-head .mobile-filter-close { display: grid; }
    .mobile-filter-toggle { display: inline-flex; }
    .flight-fare-details { grid-template-columns: 1fr 1fr; }
    .fare-policy-panel { grid-column: 1 / -1; }
    .flight-modal-summary-card .flight-result-main { grid-template-columns: minmax(150px, .9fr) minmax(260px, 1.6fr) minmax(130px, .7fr); gap: .85rem; }
    .flight-details-modal .flight-fare-details { grid-template-columns: 1fr; grid-template-rows: auto; }
    .flight-details-modal .segment-detail-panel, .flight-details-modal .fare-breakdown-panel, .flight-details-modal .fare-policy-panel { grid-column: auto; grid-row: auto; }
    .fare-options-flight-summary-inner { grid-template-columns: minmax(170px, .75fr) minmax(350px, 1.6fr); gap: .9rem; }
    .flight-fare-option-grid { grid-auto-columns: calc((100% - 1.5rem) / 3); }
    .flight-selection-tray.is-roundtrip { grid-template-columns: minmax(0, 1fr) auto; }
    .flight-selection-tray.is-roundtrip .roundtrip-selection-flights { grid-column: 1 / -1; }
    html.roundtrip-flight-results-active .flight-results-page { padding-bottom: 11.5rem; }
    .checkout-layout { grid-template-columns: 1fr; }
    .checkout-summary { position: static; grid-row: auto; }
}

@media (max-width: 767.98px) {
    .trip-switcher > .trip-option[data-trip-type="multicity"] { display: none !important; }
    .flight-results-page { padding-bottom: 7rem; }
    .flight-search-summary-wrap { position: static; grid-template-columns: minmax(0, 1fr); gap: .45rem; }
    .summary-modify-search { min-width: 0; padding: .55rem .35rem; border-radius: 12px; }
    .flight-quick-tabs { overflow-x: auto; grid-template-columns: none; grid-auto-columns: 145px; grid-auto-flow: column; scrollbar-width: none; scroll-snap-type: x proximity; }
    .flight-quick-tabs::-webkit-scrollbar { display: none; }
    .flight-quick-tabs button { min-height: 62px; scroll-snap-align: start; }
    .flight-filter-chips { overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; }
    .flight-filter-chips::-webkit-scrollbar { display: none; }
    .flight-filter-chips > span, .flight-filter-chips button { flex: 0 0 auto; }
    .flight-result-main { grid-template-columns: 1fr; gap: 1rem; }
    .roundtrip-mobile-tabs { position: relative; display: grid; margin-bottom: .62rem; padding: 4px; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; border: 1px solid #d5e2f2; border-radius: 15px; background: #edf3fb; scroll-margin-top: 5.5rem; }
    .roundtrip-mobile-tab { position: relative; display: flex; min-width: 0; min-height: 58px; padding: .5rem .65rem; align-items: flex-start; justify-content: center; flex-direction: column; gap: .16rem; color: #506681; border: 1px solid transparent; border-radius: 11px; background: transparent; text-align: left; cursor: pointer; }
    .roundtrip-mobile-tab > span { font-size: .76rem; font-weight: 750; }
    .roundtrip-mobile-tab > small { overflow: hidden; width: 100%; color: #7b8ba0; font-size: .58rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
    .roundtrip-mobile-tab.is-active { color: #0b4fbe; border-color: #bfd4fb; background: #fff; box-shadow: 0 5px 14px rgba(27,78,157,.11); }
    .roundtrip-mobile-tab.is-active > small { color: #3f6faa; }
    .roundtrip-mobile-tab.is-complete::after { position: absolute; top: 8px; right: 8px; width: 16px; height: 16px; content: "\2713"; color: #fff; border-radius: 50%; background: #12ad7b; font-size: .58rem; line-height: 16px; text-align: center; }
    .roundtrip-mobile-tab:focus-visible { outline: 3px solid rgba(21,94,239,.28); outline-offset: 2px; }
    .roundtrip-flight-grid { display: block; }
    .roundtrip-flight-grid > .roundtrip-journey-column { display: none; }
    .roundtrip-flight-grid > .roundtrip-journey-column.is-mobile-active { display: block; }
    .roundtrip-flight-grid .flight-result-main { grid-template-columns: minmax(0, 1fr) minmax(110px, auto); grid-template-areas: "airline fare" "schedule schedule"; gap: .72rem .65rem; }
    .roundtrip-flight-grid .flight-result-airline { padding-right: 2rem; }
    .flight-result-controls { align-items: stretch; flex-direction: column; }
    .result-count-wrap { justify-content: space-between; }
    .result-sort { width: 100%; justify-content: space-between; }
    .result-sort select { min-width: 0; flex: 1; }
    .flight-result-controls .result-sort, .flight-result-controls .mobile-filter-toggle { display: none; }
    .fare-details-toggle { margin-left: 0; }
    .flight-fare-details { grid-template-columns: 1fr; padding: .8rem; }
    .fare-policy-panel { grid-column: auto; }
    .flight-details-modal { padding: .5rem; }
    .flight-details-dialog { width: calc(100vw - 1rem); max-height: calc(100vh - 1rem); border-radius: 14px; }
    .flight-details-modal-head { min-height: 66px; padding: .8rem .9rem; }
    .flight-details-modal-head h2 { font-size: 1.08rem; }
    .flight-details-modal-head > button { width: 38px; height: 38px; }
    .flight-details-modal-scroll { padding: .65rem; }
    .flight-modal-summary-card .flight-result-main { grid-template-columns: 1fr; gap: 1rem; }
    .flight-modal-summary-card .flight-result-fare { align-items: flex-start; border-top: 1px solid #e5ebf2; border-left: 0; text-align: left; }
    .flight-modal-content { margin-top: .65rem; padding: .7rem; }
    .flight-details-modal .flight-fare-details { padding: 0; gap: .7rem; }
    .flight-details-modal .flight-fare-details > div { padding: .85rem; }
    .flight-fares-modal { padding: .5rem; }
    .flight-fares-dialog { width: calc(100vw - 1rem); max-height: calc(100vh - 1rem); border-radius: 14px; }
    .flight-fares-modal-scroll { padding: .65rem; }
    .fare-options-flight-summary-inner { grid-template-columns: 1fr; gap: .85rem; }
    .fare-options-flight-summary-inner .flight-result-schedule { grid-template-columns: minmax(65px, auto) minmax(90px, 1fr) minmax(65px, auto); }
    .flight-fare-option-grid { grid-auto-columns: min(82vw, 300px); }
    .flight-fare-option-card > footer button { width: 100%; }
    .segment-route-timeline { padding: .8rem .65rem; grid-template-columns: 78px 24px minmax(0, 1fr); gap: .5rem; }
    .segment-airport-column strong { white-space: normal; }
    .flight-selection-tray { bottom: 4.7rem; margin: .65rem; padding: .7rem; align-items: stretch; flex-direction: column; }
    .flight-selection-tray button { width: 100%; }
    .flight-selection-tray.is-roundtrip { z-index: 1080; right: .5rem; bottom: calc(4.55rem + env(safe-area-inset-bottom)); left: .5rem; width: auto; max-height: none; margin: 0; padding: .48rem; overflow: visible; grid-template-columns: minmax(0, 1fr) minmax(126px, 140px); grid-template-areas: "legs legs" "total action"; align-items: stretch; gap: .42rem .5rem; color: #102a4e; border: 1px solid #d7e3f1; border-radius: 16px; background: rgba(255,255,255,.98); box-shadow: 0 -10px 32px rgba(8,30,70,.2); backdrop-filter: blur(14px); }
    .flight-selection-tray.is-roundtrip .roundtrip-selection-flights { grid-area: legs; grid-column: auto; overflow: visible; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-columns: unset; grid-auto-flow: row; gap: .38rem; }
    .flight-selection-tray.is-roundtrip .roundtrip-selected-flight { min-height: 52px; padding: .42rem .5rem; overflow: hidden; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "airline price"; gap: .35rem; border-color: #dfe8f3; border-radius: 11px; background: #f4f7fc; }
    .flight-selection-tray.is-roundtrip .roundtrip-selected-logo,
    .flight-selection-tray.is-roundtrip .roundtrip-selected-route,
    .flight-selection-tray.is-roundtrip .roundtrip-selected-airline small { display: none; }
    .flight-selection-tray.is-roundtrip .roundtrip-selected-airline { grid-area: airline; min-width: 0; gap: 0; }
    .flight-selection-tray.is-roundtrip .roundtrip-selected-airline em { color: #4c77af; font-size: .5rem; }
    .flight-selection-tray.is-roundtrip .roundtrip-selected-airline strong { color: #102a4e; font-size: .66rem; }
    .flight-selection-tray.is-roundtrip .roundtrip-selected-price { grid-area: price; min-width: 0; align-items: flex-end; }
    .flight-selection-tray.is-roundtrip .roundtrip-selected-price span { color: #73849a; font-size: .48rem; }
    .flight-selection-tray.is-roundtrip .roundtrip-selected-price strong { color: #0c58d4; font-size: .7rem; }
    .flight-selection-tray.is-roundtrip .roundtrip-selected-flight.is-empty .roundtrip-selected-price { visibility: hidden; }
    .flight-selection-tray.is-roundtrip .roundtrip-selection-total { grid-area: total; min-height: 48px; padding: .25rem .38rem; align-items: flex-start; justify-content: center; border: 0; text-align: left; }
    .flight-selection-tray.is-roundtrip .roundtrip-selection-total span { color: #71829a; font-size: .52rem; }
    .flight-selection-tray.is-roundtrip .roundtrip-selection-total > span { font-size: 0; }
    .flight-selection-tray.is-roundtrip .roundtrip-selection-total > span::after { content: "Combined fare"; font-size: .52rem; }
    .flight-selection-tray.is-roundtrip .roundtrip-selection-total strong { color: #102a4e; font-size: 1rem; }
    .flight-selection-tray.is-roundtrip .roundtrip-selection-total small { color: #71829a; font-size: .5rem; }
    .flight-selection-tray.is-roundtrip > button { grid-area: action; width: 100%; min-width: 0; min-height: 48px; padding: 0 .65rem; justify-self: stretch; border-radius: 11px; }
    .flight-selection-tray.is-roundtrip > button span { font-size: 0; }
    .flight-selection-tray.is-roundtrip > button span::after { content: "Book now"; font-size: .74rem; }
    .flight-selection-tray.is-roundtrip > button i { font-size: .76rem; }
    html.roundtrip-flight-results-active .flight-results-page { padding-bottom: calc(14rem + env(safe-area-inset-bottom)); }
    .checkout-progress { margin-bottom: 1.5rem; grid-template-columns: repeat(2, 1fr); gap: .75rem 0; }
    .checkout-progress span::after { display: none; }
    .checkout-heading { align-items: flex-start; flex-direction: column; }
    .review-itinerary-heading, .review-journey-head { align-items: flex-start; flex-direction: column; }
    .review-journey-badges { flex-wrap: wrap; }
    .review-flight-operator { flex-wrap: wrap; }
    .review-flight-operator em { width: 100%; margin-left: 0; padding-top: .45rem; border-top: 1px solid #e8eef5; }
    .review-fare-attributes { padding: .62rem .85rem; }
    .review-segment-route { grid-template-columns: minmax(0, 1fr) 90px minmax(0, 1fr); gap: .55rem; }
    .review-segment-point h4 small { display: block; margin: .15rem 0 0; }
    .traveller-fields, .passport-fields, .contact-fields { grid-template-columns: 1fr; }
    .traveller-fields label:nth-child(n+4) { grid-column: auto; }
    .ancillary-heading { align-items: flex-start; flex-direction: column; }
    .ancillary-tabs { grid-template-columns: 1fr; }
    .seat-map-intro { align-items: flex-start; flex-wrap: wrap; }
    .seat-map-intro button { width: 100%; }
    .seat-map-modal { padding: .5rem; }
    .seat-map-dialog { width: calc(100vw - 1rem); max-height: calc(100vh - 1rem); border-radius: 14px; }
    .seat-map-dialog-head { padding: .75rem .8rem; }
    .seat-map-dialog-head h2 { font-size: 1rem; }
    .seat-map-dialog-body { padding: .7rem; }
    .seat-map-dialog-footer { padding: .65rem .75rem; }
    .ancillary-traveller-options, .seat-map-controls { grid-template-columns: 1fr; }
    .fare-rules-heading { align-items: flex-start; flex-direction: column; }
    .fare-rule-item { grid-template-columns: 1fr; }
    .fare-rule-charges { max-width: 240px; }
    .fare-rules-unavailable { align-items: flex-start; flex-wrap: wrap; }
    .fare-rules-unavailable button { width: 100%; justify-content: center; }
    .flight-checkout-page { padding: 2rem 0 4rem; }
    .booking-state-card { padding: 1.7rem 1rem; }
    .mobile-flight-actions { position: fixed; z-index: 1070; right: .55rem; bottom: max(.55rem, env(safe-area-inset-bottom)); left: .55rem; display: grid; min-height: 58px; padding: .4rem; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; align-items: stretch; gap: .35rem; border: 1px solid rgba(188,205,230,.9); border-radius: 15px; background: rgba(255,255,255,.97); box-shadow: 0 16px 40px rgba(8,28,60,.24); backdrop-filter: blur(12px); }
    .mobile-flight-actions > button, .mobile-flight-actions > label { position: relative; display: flex; min-width: 0; margin: 0; padding: .45rem .55rem; align-items: center; justify-content: center; gap: .38rem; color: #23436e; border: 0; border-radius: 10px; background: #f2f6fc; font-size: .7rem; font-weight: 650; }
    .mobile-flight-actions > button { cursor: pointer; }
    .mobile-flight-actions > button i, .mobile-flight-actions > label i { color: var(--brand-blue); font-size: .84rem; }
    .mobile-flight-actions > button em { position: absolute; top: 4px; right: 5px; display: grid; min-width: 17px; height: 17px; padding: 0 .22rem; place-items: center; color: white; border-radius: 999px; background: #e75050; font-size: .5rem; font-style: normal; }
    .mobile-flight-actions > button em[hidden] { display: none; }
    .mobile-flight-actions select { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
    .mobile-flight-actions > strong { display: flex; min-width: 54px; padding: .32rem .42rem; align-items: center; justify-content: center; flex-direction: column; color: #0d4fb9; font-size: .88rem; line-height: 1; }
    .mobile-flight-actions > strong small { margin-top: .18rem; color: #76869d; font-size: .52rem; font-weight: 550; }
}

@media (max-width: 479.98px) {
    .segment-airline-row { align-items: flex-start; flex-direction: column; }
    .segment-route-timeline { grid-template-columns: 70px 22px minmax(0, 1fr); }
    .checkout-progress { grid-template-columns: 1fr; }
    .checkout-progress span { justify-content: flex-start; }
    .review-itinerary-heading, .review-journey-head { padding: .85rem; }
    .review-journey-list { padding: .65rem; }
    .review-segment-list { padding: 0 .8rem; }
    .review-segment-route { grid-template-columns: 1fr; }
    .review-segment-path { align-items: flex-start; padding: .55rem 0; border-top: 1px dashed #d6e1ef; border-bottom: 1px dashed #d6e1ef; text-align: left; }
    .review-segment-path > div { display: none; }
    .review-segment-point.is-arrival { text-align: left; }
    .review-journey-meta { gap: .55rem; }
    .checkout-form-title { align-items: flex-start; flex-direction: column; }
    .ancillary-panel { padding: .65rem; }
    .aircraft-seat-map { padding: .5rem; }
    .seat-map-dialog-head small { display: none; }
    .seat-map-dialog-body .ancillary-inline-error { align-items: stretch; flex-direction: column; }
    .seat-map-dialog-body .ancillary-inline-error button { justify-content: center; }
    .seat-selection-note { align-items: flex-start; flex-direction: column; }
    .aircraft-seat-map-inner { min-width: 390px; }
    .checkout-summary-route { flex-wrap: wrap; }
    .checkout-summary-route small { width: 100%; margin-left: 0; }
    .booking-reference { grid-template-columns: 1fr; }
    .booking-state-card > div { align-items: stretch; flex-direction: column; }
    .booking-state-card a, .booking-state-card button { justify-content: center; }
}

/* Hotel listing v2 */
.hotel-listing-page{min-height:720px;padding:2.5rem 0 5rem;background:linear-gradient(180deg,#eef5ff 0,#f8fbff 180px,#fff 100%)}
.hotel-results-title-row{margin-bottom:1rem}.hotel-listing-summary{position:sticky;z-index:20;top:.5rem;display:grid;min-height:86px;padding:1rem 1.2rem;grid-template-columns:1.45fr repeat(4,minmax(0,1fr));gap:1rem;border:1px solid #d7e3f0;border-radius:15px;background:rgba(255,255,255,.98);box-shadow:0 12px 32px rgba(24,54,96,.1);backdrop-filter:blur(10px)}
.hotel-listing-summary>div{display:flex;min-width:0;flex-direction:column;justify-content:center}.hotel-listing-summary span{color:#8794a9;font-size:.65rem;font-weight:700;text-transform:uppercase}.hotel-listing-summary strong{overflow:hidden;margin-top:.24rem;color:var(--ink);font-size:.84rem;text-overflow:ellipsis;white-space:nowrap}.hotel-listing-summary .summary-route{flex-direction:row}.hotel-preview-notice{display:flex;margin:1rem 0;padding:.8rem 1rem;align-items:flex-start;gap:.65rem;color:#53647e;border:1px solid #d8e5f6;border-radius:12px;background:#f4f8ff;font-size:.75rem}.hotel-preview-notice i{color:var(--brand-blue)}
.hotel-listing-layout{display:grid;margin-top:1rem;grid-template-columns:260px minmax(0,1fr);align-items:start;gap:1rem}.hotel-filter-sidebar{position:sticky;top:7rem;overflow:hidden;border:1px solid #dce6f1;border-radius:15px;background:#fff;box-shadow:var(--shadow-sm)}.hotel-filter-head{display:flex;padding:1rem 1.05rem;align-items:center;justify-content:space-between;border-bottom:1px solid #e7edf4}.hotel-filter-head div{display:flex;flex-direction:column}.hotel-filter-head span{color:#8492a7;font-size:.62rem;font-weight:700;text-transform:uppercase}.hotel-filter-head strong{margin-top:.15rem;color:var(--ink);font-size:.9rem}.hotel-filter-head button{padding:0;color:var(--brand-blue);border:0;background:none;font-size:.67rem;font-weight:700}.hotel-filter-group{padding:1rem 1.05rem;border-bottom:1px solid #e9eef4}.hotel-filter-group:last-child{border-bottom:0}.hotel-filter-label{display:block;margin-bottom:.7rem;color:#233552;font-size:.75rem;font-weight:700}.hotel-filter-label-row{display:flex;align-items:center;justify-content:space-between}.hotel-filter-label-row strong{color:var(--brand-blue);font-size:.7rem}.hotel-name-filter{display:flex;height:39px;padding:0 .7rem;align-items:center;gap:.5rem;border:1px solid #d8e2ee;border-radius:9px;background:#f9fbfd}.hotel-name-filter i{color:#8190a7;font-size:.75rem}.hotel-name-filter input{width:100%;border:0;outline:0;background:transparent;font-size:.7rem}.hotel-price-range{width:100%;accent-color:var(--brand-blue)}.hotel-price-scale{display:flex;margin-top:.35rem;justify-content:space-between;color:#8a97aa;font-size:.6rem}.hotel-check-row,.hotel-radio-row{display:flex;margin:.55rem 0;align-items:center;gap:.55rem;color:#465874;font-size:.68rem;cursor:pointer}.hotel-check-row input,.hotel-radio-row input{accent-color:var(--brand-blue)}.hotel-check-row span{color:#f5a000;letter-spacing:.05em}.hotel-check-row small{font-size:.66rem}.hotel-toggle-row{display:flex;margin:.7rem 0;align-items:center;justify-content:space-between;color:#465874;font-size:.68rem;cursor:pointer}.hotel-toggle-row input{position:absolute;opacity:0}.hotel-toggle-row i{position:relative;width:34px;height:19px;border-radius:999px;background:#ccd6e3;transition:.2s}.hotel-toggle-row i:after{position:absolute;top:3px;left:3px;width:13px;height:13px;border-radius:50%;background:#fff;content:"";box-shadow:0 1px 4px rgba(0,0,0,.18);transition:.2s}.hotel-toggle-row input:checked+i{background:var(--brand-blue)}.hotel-toggle-row input:checked+i:after{transform:translateX(15px)}
.hotel-results-column{min-width:0}.hotel-results-toolbar{display:flex;min-height:70px;padding:.85rem 1rem;align-items:center;justify-content:space-between;gap:1rem;border:1px solid #dce6f1;border-radius:13px;background:#fff;box-shadow:var(--shadow-sm)}.hotel-results-toolbar>div{display:flex;flex-direction:column}.hotel-results-toolbar strong{color:var(--ink);font-size:.86rem}.hotel-results-toolbar span{margin-top:.18rem;color:#7b899e;font-size:.65rem}.hotel-results-toolbar label,.hotel-mobile-toolbar label{display:flex;align-items:center;gap:.5rem;color:#697990;font-size:.67rem;font-weight:600}.hotel-sort-select{min-width:180px;height:38px;padding:0 .7rem;color:#263957;border:1px solid #d7e1ed;border-radius:9px;background:#fff;font-size:.68rem;font-weight:600;outline:0}.hotel-card-list{display:grid;margin-top:.8rem;gap:.8rem}.hotel-list-card{overflow:hidden;border:1px solid #dce5ef;border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(25,52,91,.07);transition:transform .18s,box-shadow .18s,border-color .18s}.hotel-list-card:hover{border-color:#b8cef0;box-shadow:0 15px 35px rgba(25,52,91,.12);transform:translateY(-2px)}.hotel-card-image{position:relative;min-height:180px;background-position:center;background-size:cover}.hotel-card-image:before{position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,31,70,.04),rgba(15,31,70,.38));content:""}.hotel-card-image-one{background:linear-gradient(135deg,#d8c5a8,#6f7d8e)}.hotel-card-image-two{background:linear-gradient(135deg,#b9d9e8,#476d7c)}.hotel-card-image-three{background:linear-gradient(135deg,#d9c2a0,#745548)}.hotel-card-image-four{background:linear-gradient(135deg,#d4dfcd,#5e7467)}.hotel-card-image-five{background:linear-gradient(135deg,#c7c8df,#5f607d)}.hotel-image-count{position:absolute;z-index:1;bottom:.65rem;left:.7rem;padding:.38rem .55rem;color:#fff;border-radius:7px;background:rgba(15,31,70,.72);font-size:.6rem;font-weight:600;backdrop-filter:blur(5px)}.hotel-wishlist-button{position:absolute;z-index:1;top:.65rem;right:.7rem;display:grid;width:34px;height:34px;place-items:center;color:#fff;border:1px solid rgba(255,255,255,.7);border-radius:50%;background:rgba(15,31,70,.32)}.hotel-wishlist-button.is-active{color:#ef476f;background:#fff}.hotel-card-content{display:grid;grid-template-columns:minmax(0,1fr) 195px}.hotel-card-main{padding:1rem}.hotel-card-heading{display:flex;justify-content:space-between;gap:1rem}.hotel-card-heading>div:first-child{min-width:0}.hotel-star-row{display:flex;gap:.13rem;color:#f5a000;font-size:.58rem}.hotel-card-heading h2{margin:.35rem 0 .25rem;color:var(--ink);font-size:1.05rem;font-weight:700;letter-spacing:-.02em}.hotel-card-heading p{margin:0;color:#728096;font-size:.65rem}.hotel-card-heading p i{color:var(--brand-blue)}.hotel-card-heading p button{padding:0;color:var(--brand-blue);border:0;background:none;font-size:inherit;font-weight:700}.hotel-rating-block{display:flex;flex:0 0 auto;align-items:center;gap:.55rem;text-align:right}.hotel-rating-block div{display:flex;flex-direction:column}.hotel-rating-block strong{color:#253956;font-size:.68rem}.hotel-rating-block span{color:#8a97aa;font-size:.58rem}.hotel-rating-block b{display:grid;width:38px;height:34px;place-items:center;color:#fff;border-radius:9px 9px 9px 3px;background:#0b8f68;font-size:.73rem}.hotel-amenities{display:flex;margin-top:.8rem;flex-wrap:wrap;gap:.45rem}.hotel-amenities span{display:inline-flex;padding:.35rem .5rem;align-items:center;gap:.25rem;color:#4e607c;border-radius:7px;background:#f3f7fb;font-size:.6rem}.hotel-amenities i{color:#0a9d72}.hotel-room-highlight{display:flex;margin-top:.85rem;padding:.75rem;align-items:center;justify-content:space-between;gap:.7rem;border:1px solid #e3eaf2;border-radius:10px;background:#fbfcfe}.hotel-room-highlight>div{display:flex;flex-direction:column;gap:.28rem}.hotel-room-highlight strong{color:#2b3e5c;font-size:.7rem}.hotel-room-highlight span{color:#718098;font-size:.6rem}.hotel-meal-badge,.hotel-cancel-badge,.hotel-nonrefund-badge{display:inline-flex!important;align-items:center;gap:.28rem}.hotel-meal-badge{color:#405575!important}.hotel-cancel-badge{color:#07885f!important;font-weight:650}.hotel-nonrefund-badge{color:#a54b4f!important}.hotel-card-price{display:flex;padding:1rem;align-items:flex-end;justify-content:center;flex-direction:column;border-left:1px solid #e6ecf3;background:#fbfdff;text-align:right}.hotel-offer-label{margin-bottom:.5rem;padding:.3rem .45rem;color:#087b5c;border-radius:6px;background:#e9f8f3;font-size:.58rem;font-weight:700}.hotel-card-price del{color:#9aa6b7;font-size:.65rem}.hotel-card-price>strong{margin:.1rem 0;color:var(--ink);font-size:1.35rem}.hotel-card-price>small{color:#8491a5;font-size:.58rem}.hotel-card-price p{margin:.55rem 0;color:#61718a;font-size:.58rem}.hotel-view-rooms-button{width:100%;min-height:39px;color:#fff;border:0;border-radius:9px;background:linear-gradient(135deg,#1b63f4,#0f49d6);font-size:.68rem;font-weight:700}.hotel-no-results{padding:3rem 1rem;text-align:center;border:1px solid #dce6f1;border-radius:14px;background:#fff}.hotel-no-results i{color:#8ea2be;font-size:2rem}.hotel-no-results h2{margin:.7rem 0 .3rem;color:var(--ink);font-size:1.15rem}.hotel-no-results p{color:#78879d;font-size:.75rem}.hotel-no-results button{padding:.65rem 1rem;color:#fff;border:0;border-radius:8px;background:var(--brand-blue);font-size:.7rem;font-weight:700}.hotel-mobile-toolbar,.hotel-filter-mobile-head,.hotel-filter-backdrop{display:none}
@media (min-width:760px){.hotel-list-card{display:grid;grid-template-columns:220px minmax(0,1fr)}}
@media (max-width:991px){.hotel-listing-summary{grid-template-columns:1.3fr repeat(2,minmax(0,1fr))}.hotel-listing-summary>div:nth-child(4),.hotel-listing-summary>div:nth-child(5){display:none}.hotel-listing-layout{grid-template-columns:225px minmax(0,1fr)}.hotel-card-content{grid-template-columns:1fr}.hotel-card-price{padding:.8rem 1rem;align-items:center;justify-content:space-between;flex-direction:row;border-top:1px solid #e6ecf3;border-left:0;text-align:left}.hotel-card-price p{display:none}.hotel-view-rooms-button{width:auto;padding:0 1rem}}
@media (max-width:767px){.hotel-listing-page{padding-top:1.4rem}.hotel-results-title-row{align-items:flex-start;flex-direction:column}.hotel-results-title-row .modify-search-button{min-height:38px;padding:.55rem .8rem}.hotel-listing-summary{position:relative;top:auto;grid-template-columns:1fr 1fr;padding:.85rem;gap:.75rem}.hotel-listing-summary .summary-route{grid-column:1/-1}.hotel-listing-summary>div:nth-child(4){display:flex}.hotel-preview-notice{font-size:.68rem}.hotel-mobile-toolbar{display:flex;margin-top:.8rem;padding:.7rem;align-items:center;justify-content:space-between;gap:.6rem;border:1px solid #dce6f1;border-radius:12px;background:#fff}.hotel-mobile-filter-button{height:38px;padding:0 .8rem;color:var(--brand-blue);border:1px solid #aac3f1;border-radius:9px;background:#f4f8ff;font-size:.68rem;font-weight:700}.hotel-mobile-toolbar label{font-size:0}.hotel-mobile-toolbar .hotel-sort-select{min-width:155px}.hotel-listing-layout{display:block}.hotel-filter-sidebar{position:fixed;z-index:1090;top:0;bottom:0;left:0;width:min(330px,88vw);overflow-y:auto;border-radius:0;transform:translateX(-105%);transition:transform .25s}.hotel-filter-sidebar.is-open{transform:none}.hotel-filter-backdrop{position:fixed;z-index:1080;inset:0;background:rgba(15,31,70,.48)}.hotel-filter-backdrop.is-open{display:block}.hotel-filter-mobile-head{display:flex;padding:1rem;align-items:center;justify-content:space-between;border-bottom:1px solid #e5ebf2}.hotel-filter-mobile-head strong{color:var(--ink)}.hotel-filter-mobile-head button{border:0;background:none}.hotel-filter-head{display:none}.hotel-results-toolbar{margin-top:.8rem}.hotel-results-toolbar label{display:none}.hotel-list-card{display:block}.hotel-card-image{min-height:190px}.hotel-card-heading{flex-direction:column}.hotel-rating-block{justify-content:flex-start;text-align:left}.hotel-room-highlight{align-items:flex-start;flex-direction:column}.hotel-card-price{align-items:flex-end;flex-wrap:wrap}.hotel-card-price>strong{font-size:1.15rem}.hotel-view-rooms-button{min-width:120px}.hotel-results-title-row h1{font-size:1.7rem}}

/* Live TripJack hotel inventory */
.hotel-card-image.has-live-image { background-size: cover; background-position: center; background-repeat: no-repeat; }
.hotel-live-notice { border-color: #b9e8d2; background: #f2fbf7; color: #176b4a; }
.hotel-api-error p { margin: .25rem 0 0; }
.hotel-list-card.is-selected { box-shadow: 0 0 0 3px rgba(37,99,235,.16), 0 14px 34px rgba(15,23,42,.1); }


/* Hotel async/progressive search */
.hotel-async-loading{margin-top:1rem}
.hotel-loading-copy{display:flex;padding:1rem 1.1rem;align-items:center;gap:.85rem;border:1px solid #d9e5f3;border-radius:14px;background:#fff;box-shadow:var(--shadow-sm)}
.hotel-loading-copy strong{display:block;color:var(--ink);font-size:.9rem}.hotel-loading-copy p{margin:.2rem 0 0;color:#73839a;font-size:.68rem}
.hotel-loading-icon{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;color:#fff;border-radius:12px;background:linear-gradient(135deg,#1b63f4,#0f49d6);font-size:1.05rem;animation:hotelLoadingPulse 1.4s ease-in-out infinite}
.hotel-skeleton-layout{display:grid;margin-top:.85rem;grid-template-columns:250px minmax(0,1fr);gap:1rem}.hotel-skeleton-filter{min-height:390px;border:1px solid #e0e8f2;border-radius:14px;background:linear-gradient(90deg,#f2f5f9 25%,#fafcff 37%,#f2f5f9 63%);background-size:400% 100%;animation:hotelSkeleton 1.25s infinite}
.hotel-skeleton-list{display:grid;gap:.8rem}.hotel-skeleton-card{display:grid;min-height:190px;grid-template-columns:220px minmax(0,1fr);overflow:hidden;border:1px solid #e0e8f2;border-radius:15px;background:#fff}.hotel-skeleton-card>span,.hotel-skeleton-card i,.hotel-skeleton-card b,.hotel-skeleton-card em,.hotel-skeleton-card small{display:block;background:linear-gradient(90deg,#edf1f6 25%,#fafcff 37%,#edf1f6 63%);background-size:400% 100%;animation:hotelSkeleton 1.25s infinite}.hotel-skeleton-card>span{min-height:190px}.hotel-skeleton-card>div{padding:1rem}.hotel-skeleton-card i{width:58%;height:17px;border-radius:6px}.hotel-skeleton-card b{width:82%;height:12px;margin-top:14px;border-radius:6px}.hotel-skeleton-card em{width:68%;height:46px;margin-top:25px;border-radius:9px}.hotel-skeleton-card small{width:34%;height:28px;margin:25px 0 0 auto;border-radius:8px}
.hotel-card-deferred{display:none!important}.hotel-card-entering{animation:hotelCardEnter .28s ease both}.hotel-load-sentinel{height:2px}.hotel-retry-button{margin-top:.65rem;padding:.55rem .8rem;color:#fff;border:0;border-radius:8px;background:#1b63f4;font-size:.68rem;font-weight:700}
@keyframes hotelSkeleton{0%{background-position:100% 0}100%{background-position:-100% 0}}@keyframes hotelLoadingPulse{50%{transform:scale(1.06);box-shadow:0 0 0 8px rgba(27,99,244,.1)}}@keyframes hotelCardEnter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(max-width:767px){.hotel-skeleton-layout{grid-template-columns:1fr}.hotel-skeleton-filter{display:none}.hotel-skeleton-card{grid-template-columns:1fr}.hotel-skeleton-card>span{min-height:165px}.hotel-loading-copy{align-items:flex-start}}

/* Hotel listing design V2 */
.hotel-listing-page{background:linear-gradient(180deg,#edf4ff 0,#f7faff 220px,#f4f7fb 100%)}
.hotel-results-title-row{padding:.4rem 0 1rem}.hotel-results-title-row h1{font-size:2rem;letter-spacing:-.035em}.hotel-results-title-row p{max-width:620px}
.hotel-listing-summary{border:1px solid rgba(37,99,235,.12);box-shadow:0 16px 38px rgba(31,58,98,.08)}
.hotel-listing-layout{grid-template-columns:285px minmax(0,1fr);gap:1.15rem}
.hotel-filter-sidebar{border:1px solid #d9e3ef;border-radius:18px;box-shadow:0 14px 34px rgba(26,48,82,.08)}
.hotel-filter-head{background:linear-gradient(135deg,#f7faff,#eef4ff)}
.hotel-filter-group{padding:1rem 1.1rem}.filter-text-row span{display:none}.filter-text-row small{color:#3f516d;font-size:.68rem}
.hotel-results-toolbar-v2{align-items:stretch;padding:.75rem .9rem}.hotel-result-heading{min-width:180px;justify-content:center}.hotel-sort-table{display:grid;grid-template-columns:repeat(4,minmax(105px,1fr));align-items:stretch;overflow:hidden;border:1px solid #dce5f0;border-radius:11px;background:#f8faff}.hotel-sort-chip{display:flex;min-height:46px;padding:.5rem .72rem;align-items:center;justify-content:center;gap:.38rem;color:#53647e;border:0;border-right:1px solid #dce5f0;background:transparent;font-size:.64rem;font-weight:700;transition:.18s}.hotel-sort-chip:last-of-type{border-right:0}.hotel-sort-chip i{font-size:.72rem}.hotel-sort-chip:hover{background:#eef4ff;color:#1e5ad7}.hotel-sort-chip.is-active{color:#fff;background:linear-gradient(135deg,#2563eb,#1749c6);box-shadow:inset 0 -2px rgba(0,0,0,.08)}.hotel-sort-select-fallback{display:none}
.hotel-quick-filters{display:flex;margin-top:.65rem;gap:.5rem;overflow-x:auto;scrollbar-width:none}.hotel-quick-filters::-webkit-scrollbar{display:none}.hotel-quick-filters button{flex:0 0 auto;min-height:34px;padding:.42rem .72rem;color:#4d607d;border:1px solid #d8e2ee;border-radius:999px;background:#fff;font-size:.62rem;font-weight:700;box-shadow:0 4px 12px rgba(30,58,96,.04)}.hotel-quick-filters button i{margin-right:.28rem;color:#2362df}.hotel-quick-filters button.is-active{color:#174fcb;border-color:#9db9f3;background:#edf4ff}
.hotel-card-list{gap:1rem}.hotel-list-card{border-radius:18px;border-color:#d8e2ed;box-shadow:0 12px 30px rgba(31,55,88,.075)}.hotel-list-card:hover{transform:translateY(-3px);box-shadow:0 20px 44px rgba(31,55,88,.13)}
.hotel-card-image{min-height:220px;transition:background-image .25s ease,transform .25s ease}.hotel-card-image:before{background:linear-gradient(180deg,rgba(9,24,55,.04),rgba(9,24,55,.38))}.hotel-image-overlay{position:absolute;inset:0;pointer-events:none}.hotel-gallery-nav{position:absolute;z-index:3;top:50%;display:grid;width:34px;height:34px;place-items:center;color:#1d2b44;border:0;border-radius:50%;background:rgba(255,255,255,.9);box-shadow:0 5px 15px rgba(0,0,0,.18);opacity:0;transform:translateY(-50%);transition:.18s}.hotel-gallery-prev{left:.65rem}.hotel-gallery-next{right:.65rem}.hotel-card-image:hover .hotel-gallery-nav{opacity:1}.hotel-gallery-dots{position:absolute;z-index:3;right:50%;bottom:.75rem;display:flex;gap:.28rem;transform:translateX(50%)}.hotel-gallery-dots i{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.55);box-shadow:0 1px 3px rgba(0,0,0,.2)}.hotel-gallery-dots i.is-active{width:15px;border-radius:999px;background:#fff}.hotel-image-count{left:.75rem;bottom:.75rem}
.hotel-gallery-progress{position:absolute;z-index:3;left:50%;bottom:.65rem;display:inline-flex;min-width:52px;padding:.3rem .55rem;align-items:center;justify-content:center;gap:.2rem;color:#fff;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(15,31,70,.7);box-shadow:0 4px 12px rgba(0,0,0,.18);font-size:.65rem;font-weight:700;line-height:1;transform:translateX(-50%);backdrop-filter:blur(6px)}.hotel-gallery-progress b{color:#fff;font-size:inherit}
.hotel-card-content{grid-template-columns:minmax(0,1fr) 220px}.hotel-card-main{padding:1.15rem 1.2rem}.hotel-card-heading h2{font-size:1.12rem}.hotel-amenities span{border:1px solid #e5ebf2;background:#f8fafc}.hotel-room-highlight{padding:.85rem;background:linear-gradient(135deg,#fbfdff,#f5f8fd)}.hotel-card-price{padding:1.1rem;background:linear-gradient(180deg,#fcfdff,#f7faff)}.hotel-card-price>strong{font-size:1.5rem}.hotel-view-rooms-button{min-height:43px;border-radius:10px;box-shadow:0 8px 18px rgba(37,99,235,.2)}
.hotel-wishlist-button{width:36px;height:36px;background:rgba(15,31,70,.5);backdrop-filter:blur(6px)}
@media (min-width:760px){.hotel-list-card{grid-template-columns:245px minmax(0,1fr)}}
@media (max-width:1100px){.hotel-listing-layout{grid-template-columns:250px minmax(0,1fr)}.hotel-sort-table{grid-template-columns:repeat(2,minmax(115px,1fr))}.hotel-sort-chip:nth-child(2){border-right:0}.hotel-sort-chip:nth-child(-n+2){border-bottom:1px solid #dce5f0}.hotel-card-content{grid-template-columns:minmax(0,1fr) 190px}}
@media (max-width:767px){.hotel-results-toolbar-v2{display:block}.hotel-sort-table{display:none}.hotel-quick-filters{margin-top:.55rem}.hotel-card-image{min-height:215px}.hotel-gallery-nav{opacity:1;width:31px;height:31px}.hotel-card-content{display:block}.hotel-card-price{border-left:0;border-top:1px solid #e6ecf3}.hotel-results-title-row h1{font-size:1.65rem}}

/* Hotel listing toolbar V3: compact horizontal layout and responsive sorting */
.hotel-results-toolbar-v3{
    display:grid!important;
    grid-template-columns:minmax(210px,1fr) minmax(520px,auto);
    min-height:0!important;
    padding:12px 14px!important;
    align-items:center!important;
    gap:18px!important;
    border:1px solid #dce6f1;
    border-radius:14px;
    background:#fff;
}
.hotel-results-toolbar-v3>.hotel-result-heading{
    display:flex!important;
    min-width:0;
    flex-direction:column!important;
    justify-content:center;
    gap:3px;
}
.hotel-results-toolbar-v3 .hotel-result-heading strong{
    font-size:15px;
    line-height:1.25;
}
.hotel-results-toolbar-v3 .hotel-result-heading span{
    margin:0!important;
    font-size:11px;
    line-height:1.4;
}
.hotel-sort-area{
    display:flex!important;
    min-width:0;
    align-items:center;
    justify-content:flex-end;
    flex-direction:row!important;
    gap:9px;
}
.hotel-sort-label{
    margin:0!important;
    color:#74839a!important;
    font-size:11px!important;
    font-weight:700;
    white-space:nowrap;
}
.hotel-results-toolbar-v3 .hotel-sort-table{
    display:grid!important;
    width:min(100%,560px);
    min-width:500px;
    grid-template-columns:repeat(4,minmax(112px,1fr));
    align-items:stretch;
    overflow:hidden;
    border:1px solid #dce5f0;
    border-radius:10px;
    background:#f8faff;
}
.hotel-results-toolbar-v3 .hotel-sort-chip{
    min-width:0;
    min-height:42px;
    padding:7px 10px;
    white-space:nowrap;
}

@media (max-width:1180px){
    .hotel-results-toolbar-v3{
        grid-template-columns:1fr;
        gap:10px!important;
    }
    .hotel-sort-area{
        justify-content:flex-start;
    }
    .hotel-results-toolbar-v3 .hotel-sort-table{
        width:100%;
        min-width:0;
    }
}

@media (max-width:767px){
    .hotel-results-toolbar-v3{
        display:block!important;
        padding:12px!important;
    }
    .hotel-sort-area{display:none!important;}
    .hotel-results-toolbar-v3 .hotel-result-heading strong{font-size:14px;}
    .hotel-results-toolbar-v3 .hotel-result-heading span{font-size:10px;}
}

/* Hotel listing typography V4: stronger readability and contrast */
.hotel-listing-page,
.hotel-listing-page button,
.hotel-listing-page input,
.hotel-listing-page select {
    font-family: Inter, Poppins, Arial, sans-serif;
}
.hotel-listing-page { color:#1f2f49; }
.hotel-preview-notice { font-size:13px!important; color:#176b4b!important; line-height:1.5; }
.hotel-preview-notice strong { color:#075f3f!important; }
.hotel-filter-head small { font-size:10px!important; color:#728096!important; font-weight:700!important; }
.hotel-filter-head strong { font-size:15px!important; color:#14233d!important; }
.hotel-filter-clear { font-size:12px!important; font-weight:700!important; }
.hotel-filter-section h3 { font-size:13px!important; color:#263956!important; font-weight:750!important; }
.hotel-filter-section label,
.hotel-filter-section .filter-option,
.hotel-filter-section span { font-size:12px!important; color:#4b5f7b!important; line-height:1.5; }
.hotel-filter-section input[type="text"] { font-size:13px!important; color:#243651!important; }
.hotel-filter-section input::placeholder { color:#8795a9!important; opacity:1; }
.hotel-price-range-labels,
.hotel-price-range-labels span { font-size:10px!important; color:#718198!important; }
.hotel-result-heading strong,
.hotel-results-toolbar-v3 .hotel-result-heading strong { font-size:16px!important; color:#10213f!important; font-weight:800!important; }
.hotel-result-heading span,
.hotel-results-toolbar-v3 .hotel-result-heading span { font-size:11px!important; color:#6d7d95!important; line-height:1.45; }
.hotel-sort-label { font-size:12px!important; color:#667791!important; font-weight:700!important; }
.hotel-sort-chip,
.hotel-results-toolbar-v3 .hotel-sort-chip { font-size:12px!important; color:#51627d; font-weight:700!important; }
.hotel-sort-chip i { font-size:12px!important; }
.hotel-quick-filter { font-size:11px!important; color:#3e5575!important; font-weight:700!important; }
.hotel-card-heading h2 { font-size:18px!important; line-height:1.25!important; color:#071a39!important; font-weight:800!important; }
.hotel-star-row { font-size:11px!important; }
.hotel-card-heading p { font-size:12px!important; color:#667790!important; line-height:1.45; }
.hotel-amenities span { font-size:11px!important; color:#465c7c!important; }
.hotel-room-highlight strong { font-size:12px!important; color:#1f3555!important; }
.hotel-room-highlight span { font-size:11px!important; color:#657790!important; }
.hotel-rating-block strong { font-size:12px!important; color:#1d3557!important; }
.hotel-rating-block span { font-size:10px!important; color:#75859b!important; }
.hotel-rating-block b { font-size:13px!important; }
.hotel-card-price del { font-size:12px!important; color:#8d9aab!important; }
.hotel-card-price>strong { font-size:26px!important; color:#0a1f43!important; font-weight:800!important; }
.hotel-card-price>small { font-size:10px!important; color:#718096!important; }
.hotel-card-price p { font-size:10px!important; color:#5d6f89!important; line-height:1.5; }
.hotel-offer-label { font-size:10px!important; }
.hotel-view-rooms-button { font-size:12px!important; font-weight:800!important; }
.hotel-image-count { font-size:10px!important; }
.hotel-image-unavailable{position:absolute;left:50%;top:50%;display:flex;flex-direction:column;align-items:center;gap:7px;color:#f8fafc;font-size:12px;font-weight:700;text-shadow:0 1px 4px rgba(0,0,0,.3);transform:translate(-50%,-50%)}
.hotel-image-unavailable i{font-size:26px}
.hotel-load-more-status,
.hotel-no-results p { font-size:12px!important; color:#667790!important; }

@media (max-width: 767px){
    .hotel-result-heading strong,
    .hotel-results-toolbar-v3 .hotel-result-heading strong { font-size:15px!important; }
    .hotel-result-heading span,
    .hotel-results-toolbar-v3 .hotel-result-heading span { font-size:10px!important; }
    .hotel-card-heading h2 { font-size:17px!important; }
    .hotel-card-heading p { font-size:11px!important; }
    .hotel-card-price>strong { font-size:22px!important; }
}


/* ===== Hotel Listing Phase 2: premium UX ===== */
.hotel-listing-page{background:#f5f7fb;padding:34px 0 72px;color:#172033}
/* Keep hotel listing aligned with the same Bootstrap container used by the header. */
.hotel-listing-page .container{max-width:var(--bs-container-max-width,1320px)}
.hotel-results-title-row{align-items:flex-end;margin-bottom:18px}
.hotel-results-title-row h1{font-size:34px;line-height:1.18;letter-spacing:-.7px;color:#111827;margin:5px 0 7px}
.hotel-results-title-row p{font-size:15px;color:#667085}
.modify-search-button{border:1px solid #d9e1ef;background:#fff;color:#175cd3;border-radius:12px;padding:12px 18px;font-size:14px;font-weight:800;box-shadow:0 6px 18px rgba(16,24,40,.06);cursor:pointer}
.modify-search-button:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(16,24,40,.1)}
.hotel-listing-summary{border:1px solid #e2e8f0;border-radius:16px;background:#fff;box-shadow:0 8px 26px rgba(15,23,42,.05);padding:15px 18px;margin-bottom:18px}
.hotel-listing-layout{grid-template-columns:284px minmax(0,1fr);gap:22px;align-items:start}
.hotel-filter-sidebar{position:sticky;top:90px;border:1px solid #e1e7f0;border-radius:16px;background:#fff;box-shadow:0 8px 30px rgba(15,23,42,.06);overflow:hidden}
.hotel-filter-head{padding:17px 18px;border-bottom:1px solid #edf0f5;background:linear-gradient(180deg,#fff,#fbfcfe)}
.hotel-filter-group{padding:17px 18px;border-bottom:1px solid #edf0f5}
.hotel-filter-label,.hotel-filter-label-row{font-size:14px;font-weight:800;color:#1d2939}
.hotel-check-row,.hotel-radio-row,.hotel-toggle-row{font-size:14px;color:#344054;min-height:34px}
.hotel-results-toolbar-v3{position:sticky;top:76px;z-index:12;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border:1px solid #e1e7ef;border-radius:16px;padding:13px 15px;box-shadow:0 7px 24px rgba(15,23,42,.06);margin-bottom:10px}
.hotel-result-heading strong{font-size:18px;color:#101828}.hotel-result-heading span{font-size:13px;color:#667085}
.hotel-sort-table{display:flex;gap:5px;background:#f2f4f7;padding:4px;border-radius:12px}
.hotel-sort-chip{min-height:40px;border:0;background:transparent;border-radius:9px;padding:8px 12px;color:#475467;font-size:13px;font-weight:750}
.hotel-sort-chip.is-active{background:#fff;color:#175cd3;box-shadow:0 2px 8px rgba(16,24,40,.1)}
.hotel-quick-filters{display:flex;gap:8px;overflow:auto;padding:2px 1px 12px;scrollbar-width:none}.hotel-quick-filters::-webkit-scrollbar{display:none}
.hotel-quick-filters button{flex:none;border:1px solid #d8e0ec;background:#fff;border-radius:999px;padding:9px 13px;color:#344054;font-size:13px;font-weight:700}
.hotel-quick-filters button.is-active{border-color:#84adff;background:#eff6ff;color:#175cd3}
.hotel-card-list{display:grid;gap:16px}
.hotel-list-card{border:1px solid #dfe6ef;border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 8px 24px rgba(15,23,42,.055);transition:.22s ease}
.hotel-list-card:hover{transform:translateY(-2px);border-color:#b9c7db;box-shadow:0 15px 34px rgba(15,23,42,.1)}
.hotel-card-image{width:310px;min-height:248px;background-size:cover;background-position:center;position:relative}
.hotel-card-content{min-height:248px}.hotel-card-main{padding:20px 20px 18px}.hotel-card-heading h2{font-size:22px;line-height:1.25;color:#101828;margin:4px 0 7px}.hotel-card-heading p{font-size:14px;color:#475467}
.hotel-star-row i{font-size:13px;color:#f4b740}.hotel-rating-block b{background:#067647;color:#fff;border-radius:9px;padding:9px 10px;font-size:15px}
.hotel-amenities{gap:7px}.hotel-amenities span{background:#f8fafc;border:1px solid #e5eaf1;border-radius:7px;padding:6px 9px;font-size:12px;color:#344054}
.hotel-room-highlight{background:#f8fafc;border:1px solid #e5eaf1;border-radius:11px;padding:11px 12px}
.hotel-card-price{width:220px;padding:20px 18px;background:linear-gradient(180deg,#fbfdff,#f7faff);border-left:1px solid #e7edf4}.hotel-card-price strong{font-size:28px;color:#101828}.hotel-card-price p{font-size:12px;color:#667085}.hotel-view-rooms-button{width:100%;border:0;border-radius:10px;background:#175cd3;color:#fff;padding:12px 14px;font-size:14px;font-weight:800;box-shadow:0 7px 16px rgba(23,92,211,.2)}
.hotel-view-rooms-button:hover{background:#1849a9}.hotel-gallery-nav{opacity:0;transition:.2s}.hotel-card-image:hover .hotel-gallery-nav{opacity:1}
.hotel-image-overlay{background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.58))}
.hotel-modify-panel{position:fixed;inset:0;z-index:10050;display:none}.hotel-modify-panel.is-open{display:block}.hotel-modify-backdrop{position:absolute;inset:0;background:rgba(16,24,40,.62);backdrop-filter:blur(4px)}
.hotel-modify-dialog{position:relative;width:min(1180px,calc(100% - 32px));margin:7vh auto 0;background:#fff;border-radius:20px;box-shadow:0 30px 90px rgba(16,24,40,.28);padding:22px;max-height:86vh;overflow:visible}
.hotel-modify-head{display:flex;justify-content:space-between;gap:20px;padding:2px 2px 18px;border-bottom:1px solid #eaecf0}.hotel-modify-head span{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:#175cd3;font-weight:800}.hotel-modify-head h2{font-size:25px;color:#101828;margin:3px 0}.hotel-modify-head p{font-size:14px;color:#667085}.hotel-modify-head>button{border:0;background:#f2f4f7;width:40px;height:40px;border-radius:50%;font-size:18px;color:#344054}
.hotel-modify-form{display:grid!important;grid-template-columns:1.6fr 1fr 1fr 1.15fr 1fr auto;gap:10px;padding-top:18px;align-items:stretch}.hotel-modify-form .booking-field{margin:0;min-width:0;border:1px solid #dfe5ed;border-radius:12px;background:#fff;padding:10px 12px}.hotel-modify-form .booking-control{min-height:34px}.hotel-modify-form .search-button{min-width:150px;border-radius:12px}.hotel-modify-destination{position:relative}.hotel-modify-form .airport-suggestions{z-index:10070}.hotel-modify-room-popover{z-index:10070;right:22px;top:145px}.hotel-modal-open{overflow:hidden}
@media(max-width:1100px){.hotel-listing-layout{grid-template-columns:250px minmax(0,1fr)}.hotel-card-image{width:270px}.hotel-card-price{width:190px}.hotel-modify-form{grid-template-columns:repeat(3,1fr)}.hotel-modify-form .search-button{min-height:58px}}
@media(max-width:820px){.hotel-listing-page{padding-top:20px}.hotel-results-title-row h1{font-size:27px}.hotel-listing-layout{display:block}.hotel-filter-sidebar{position:fixed}.hotel-results-toolbar-v3{top:64px}.hotel-list-card{display:block}.hotel-card-image{width:100%;height:220px;min-height:220px}.hotel-card-content{display:block}.hotel-card-price{width:auto;border-left:0;border-top:1px solid #e7edf4}.hotel-modify-dialog{margin:2vh auto 0;max-height:96vh;overflow:auto}.hotel-modify-form{grid-template-columns:1fr}.hotel-modify-room-popover{position:fixed;inset:auto 12px 12px;max-height:72vh;overflow:auto}.hotel-results-title-row{align-items:flex-start}.modify-search-button{padding:10px 12px}.hotel-sort-table{overflow:auto;scrollbar-width:none}.hotel-sort-chip{white-space:nowrap}}

/* ===== Hotel Listing Phase 2 V2: stable three-column card layout ===== */
@media (min-width: 821px) {
  .hotel-card-list .hotel-list-card {
    display: grid !important;
    grid-template-columns: 310px minmax(0, 1fr) !important;
    align-items: stretch !important;
    min-height: 248px !important;
  }

  .hotel-card-list .hotel-card-image {
    width: 100% !important;
    min-width: 0 !important;
    height: 100% !important;
    min-height: 248px !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
  }

  .hotel-card-list .hotel-card-content {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 220px !important;
    min-width: 0 !important;
    min-height: 248px !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
  }

  .hotel-card-list .hotel-card-main {
    min-width: 0 !important;
    overflow: hidden !important;
  }

  .hotel-card-list .hotel-card-heading h2,
  .hotel-card-list .hotel-card-heading p {
    overflow-wrap: anywhere !important;
  }

  .hotel-card-list .hotel-card-price {
    width: auto !important;
    min-width: 0 !important;
    align-self: stretch !important;
  }
}

@media (min-width: 821px) and (max-width: 1180px) {
  .hotel-card-list .hotel-list-card {
    grid-template-columns: 255px minmax(0, 1fr) !important;
  }

  .hotel-card-list .hotel-card-content {
    grid-template-columns: minmax(0, 1fr) 185px !important;
  }

  .hotel-card-main {
    padding: 16px !important;
  }

  .hotel-card-heading h2 {
    font-size: 18px !important;
  }
}

@media (max-width: 820px) {
  .hotel-card-list .hotel-list-card {
    display: block !important;
    min-height: 0 !important;
  }

  .hotel-card-list .hotel-card-image {
    display: block !important;
    width: 100% !important;
    height: 220px !important;
    min-height: 220px !important;
  }

  .hotel-card-list .hotel-card-content {
    display: block !important;
    min-height: 0 !important;
  }

  .hotel-card-list .hotel-card-price {
    width: 100% !important;
    border-left: 0 !important;
    border-top: 1px solid #e7edf4 !important;
  }
}

/* Hotel listing container alignment fix — match header/navbar gutters exactly */
@media (min-width: 576px){.hotel-listing-page>.container{max-width:540px}}
@media (min-width: 768px){.hotel-listing-page>.container{max-width:720px}}
@media (min-width: 992px){.hotel-listing-page>.container{max-width:960px}}
@media (min-width: 1200px){.hotel-listing-page>.container{max-width:1140px}}
@media (min-width: 1400px){.hotel-listing-page>.container{max-width:1320px}}

/* ===== Phase 2 V4: MMT / EaseMyTrip style search bar below header ===== */
.hotel-listing-page{padding-top:16px}
.hotel-inline-searchbar{
    display:grid;
    grid-template-columns:minmax(220px,1.35fr) minmax(145px,.8fr) 34px minmax(145px,.8fr) minmax(190px,1fr) auto;
    align-items:center;
    gap:0;
    margin:0 0 18px;
    padding:0;
    background:#fff;
    border:1px solid #dce4ef;
    border-radius:14px;
    box-shadow:0 8px 24px rgba(15,23,42,.07);
    overflow:hidden;
}
.hotel-inline-searchbar__item{
    min-width:0;
    min-height:72px;
    padding:13px 18px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    border-right:1px solid #e8edf4;
}
.hotel-inline-searchbar__destination{flex-direction:row;align-items:center;justify-content:flex-start;gap:12px}
.hotel-inline-searchbar__icon{width:38px;height:38px;flex:0 0 38px;border-radius:10px;background:#eff6ff;color:#175cd3;display:grid;place-items:center;font-size:17px}
.hotel-inline-searchbar__item small{font-size:10px;line-height:1;text-transform:uppercase;letter-spacing:.07em;font-weight:800;color:#7b8aa3;margin-bottom:7px}
.hotel-inline-searchbar__item strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;line-height:1.15;color:#101828;font-weight:800}
.hotel-inline-searchbar__arrow{display:grid;place-items:center;color:#98a2b3;font-size:14px}
.hotel-inline-searchbar__button{align-self:stretch;margin:10px 11px;min-width:148px;border-radius:10px;box-shadow:none;background:#175cd3;color:#fff;border-color:#175cd3;display:flex;align-items:center;justify-content:center;gap:8px}
.hotel-inline-searchbar__button:hover{background:#1849a9;color:#fff;box-shadow:0 8px 18px rgba(23,92,211,.22)}
.hotel-listing-page .hotel-async-loading,.hotel-listing-page .hotel-cache-status,.hotel-listing-page .hotel-api-status{margin-top:0}
@media(max-width:1100px){
 .hotel-inline-searchbar{grid-template-columns:1.2fr .8fr 24px .8fr 1fr auto}
 .hotel-inline-searchbar__item{padding:12px 13px}
 .hotel-inline-searchbar__button{min-width:128px;padding-left:12px;padding-right:12px}
}
@media(max-width:820px){
 .hotel-listing-page{padding-top:10px}
 .hotel-inline-searchbar{display:grid;grid-template-columns:1fr 1fr;border-radius:12px;overflow:visible;padding:10px;gap:8px}
 .hotel-inline-searchbar__item{min-height:58px;padding:10px 11px;border:1px solid #e3e8f0;border-radius:9px}
 .hotel-inline-searchbar__destination{grid-column:1/-1}
 .hotel-inline-searchbar__arrow{display:none}
 .hotel-inline-searchbar__button{grid-column:1/-1;min-height:46px;margin:0;width:100%}
}
@media(max-width:480px){
 .hotel-inline-searchbar{grid-template-columns:1fr}
 .hotel-inline-searchbar__destination,.hotel-inline-searchbar__button{grid-column:auto}
}

/* Hotel listing editable search bar - same visual language as homepage search */
.hotel-listing-search-shell {
    position: relative;
    z-index: 20;
    margin: 1rem 0 1.15rem;
    padding: .75rem;
    border: 1px solid #d9e3f2;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(22, 55, 105, .08);
}
.hotel-listing-search-form {
    grid-template-columns: minmax(220px, 1.35fr) minmax(150px, .75fr) minmax(150px, .75fr) minmax(190px, 1fr) minmax(145px, .72fr) auto;
    align-items: stretch;
}
.hotel-listing-search-form .booking-field {
    min-width: 0;
}
.hotel-listing-search-form .booking-control {
    min-height: 58px;
    border-radius: 12px;
    background: #f8fbff;
    border-color: #dbe5f2;
}
.hotel-listing-search-form .booking-field > span:first-child,
.hotel-listing-search-form .booking-field > label:first-child {
    font-size: 11px;
    letter-spacing: .04em;
    text-transform: uppercase;
    font-weight: 800;
    color: #72819a;
}
.hotel-listing-search-form .booking-control strong,
.hotel-listing-search-form .booking-control input,
.hotel-listing-search-form .booking-control select {
    font-weight: 800;
    color: #0f2447;
}
.hotel-modify-inline-button {
    min-width: 170px;
    border-radius: 12px;
    min-height: 58px;
    align-self: end;
    white-space: nowrap;
}
.hotel-listing-room-popover {
    right: 12rem;
    top: calc(100% - .25rem);
    z-index: 80;
}
.hotel-listing-search-shell .hotel-destination-suggestions {
    z-index: 90;
}
@media (max-width: 1199px) {
    .hotel-listing-search-form {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .hotel-modify-inline-button { min-width: 0; }
    .hotel-listing-room-popover { right: 1rem; }
}
@media (max-width: 767px) {
    .hotel-listing-search-shell {
        padding: .65rem;
        border-radius: 14px;
        margin-top: .65rem;
    }
    .hotel-listing-search-form {
        grid-template-columns: 1fr 1fr;
        gap: .55rem;
    }
    .hotel-listing-search-form .hotel-destination-picker,
    .hotel-listing-search-form .hotel-room-field,
    .hotel-listing-search-form .hotel-listing-nationality,
    .hotel-listing-search-form .hotel-modify-inline-button {
        grid-column: 1 / -1;
    }
    .hotel-listing-search-form .booking-control { min-height: 54px; }
    .hotel-listing-room-popover {
        position: fixed;
        left: 12px;
        right: 12px;
        top: auto;
        bottom: 12px;
        width: auto;
        max-height: 78vh;
        overflow: auto;
    }
}

/* Hotel listing editable search bar V6: remove nested field boxes and overflow */
.hotel-listing-search-shell {
    overflow: visible;
}
.hotel-listing-search-form {
    gap: 12px;
}
.hotel-listing-search-form .booking-field,
.hotel-listing-search-form .hotel-destination-picker > .booking-field {
    height: 88px;
    min-height: 88px;
    padding: 15px 17px 12px;
    border: 1px solid #d8e2ef;
    border-radius: 14px;
    background: #fff;
    box-shadow: none;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.hotel-listing-search-form .booking-field:focus-within {
    border-color: #4c83f3;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(37,99,235,.10);
}
.hotel-listing-search-form .booking-field > span:first-child {
    margin: 0 0 8px;
    font-size: 11px;
    line-height: 1;
    letter-spacing: .055em;
    text-transform: uppercase;
    font-weight: 800;
    color: #71809a;
}
.hotel-listing-search-form .booking-control {
    width: 100%;
    min-height: 28px;
    height: auto;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    display: flex;
    align-items: center;
    gap: 8px;
}
.hotel-listing-search-form button.booking-control {
    justify-content: flex-start;
    text-align: left;
}
.hotel-listing-search-form .booking-control input,
.hotel-listing-search-form .booking-control select,
.hotel-listing-search-form .booking-control strong {
    font-size: 16px;
    line-height: 1.25;
    font-weight: 800;
    color: #102347;
}
.hotel-listing-search-form .booking-control input {
    height: 28px;
}
.hotel-listing-search-form .booking-control select {
    height: 28px;
    cursor: pointer;
}
.hotel-listing-search-form .booking-control i {
    flex: 0 0 auto;
    font-size: 15px;
    color: #55709b;
}
.hotel-listing-search-form .hotel-destination-input {
    padding: 0;
}
.hotel-listing-search-form .hotel-room-trigger {
    justify-content: space-between;
}
.hotel-listing-search-form .hotel-modify-inline-button {
    height: 88px;
    min-height: 88px;
    align-self: stretch;
    margin: 0;
    padding: 0 22px;
    border-radius: 14px;
    font-size: 15px;
    font-weight: 800;
}
.hotel-listing-search-form .hotel-modify-inline-button i {
    font-size: 17px;
}
.hotel-listing-search-shell .hotel-destination-suggestions {
    top: calc(100% + 8px);
}

@media (max-width: 1199px) {
    .hotel-listing-search-form .booking-field,
    .hotel-listing-search-form .hotel-destination-picker > .booking-field,
    .hotel-listing-search-form .hotel-modify-inline-button {
        height: 78px;
        min-height: 78px;
    }
}
@media (max-width: 767px) {
    .hotel-listing-search-form .booking-field,
    .hotel-listing-search-form .hotel-destination-picker > .booking-field {
        height: 72px;
        min-height: 72px;
        padding: 12px 13px 10px;
    }
    .hotel-listing-search-form .hotel-modify-inline-button {
        height: 52px;
        min-height: 52px;
    }
    .hotel-listing-search-form .booking-control input,
    .hotel-listing-search-form .booking-control select,
    .hotel-listing-search-form .booking-control strong {
        font-size: 14px;
    }
}

/* Hotel listing search V7: symmetrical typography + working overlays */
.hotel-listing-search-shell { z-index: 120; }
.hotel-listing-search-form .booking-field,
.hotel-listing-search-form .hotel-destination-picker > .booking-field {
    height: 74px;
    min-height: 74px;
    padding: 11px 14px 10px;
}
.hotel-listing-search-form .booking-field > span:first-child {
    margin-bottom: 6px;
    font-size: 10px;
    letter-spacing: .045em;
}
.hotel-listing-search-form .booking-control input,
.hotel-listing-search-form .booking-control select,
.hotel-listing-search-form .booking-control strong {
    font-size: 14px;
    line-height: 1.25;
    font-weight: 700;
}
.hotel-listing-search-form .booking-control i { font-size: 14px; }
.hotel-listing-search-form .hotel-modify-inline-button {
    height: 74px;
    min-height: 74px;
    padding: 0 20px;
    font-size: 14px;
}
.hotel-listing-search-shell .hotel-destination-suggestions {
    z-index: 1000;
    top: calc(100% + 7px);
    width: min(470px, calc(100vw - 32px));
    max-height: 360px;
}
.hotel-listing-room-popover {
    z-index: 1000;
    top: calc(100% + 8px);
    right: 10.5rem;
    width: min(430px, calc(100vw - 32px));
}
.hotel-listing-calendar {
    z-index: 1100;
    top: calc(100% + 8px);
    left: 28%;
    right: auto;
    width: min(720px, calc(100vw - 32px));
}
.hotel-listing-calendar .calendar-months { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hotel-listing-calendar .calendar-day.is-in-range { background: #edf4ff; border-radius: 0; }
@media (max-width: 1199px) {
    .hotel-listing-search-form .booking-field,
    .hotel-listing-search-form .hotel-destination-picker > .booking-field,
    .hotel-listing-search-form .hotel-modify-inline-button { height: 70px; min-height: 70px; }
    .hotel-listing-room-popover { right: 1rem; }
    .hotel-listing-calendar { left: 1rem; right: 1rem; width: auto; }
}
@media (max-width: 767px) {
    .hotel-listing-search-form .booking-field,
    .hotel-listing-search-form .hotel-destination-picker > .booking-field { height: 66px; min-height: 66px; }
    .hotel-listing-search-form .hotel-modify-inline-button { height: 50px; min-height: 50px; }
    .hotel-listing-calendar {
        position: fixed;
        left: 10px;
        right: 10px;
        top: auto;
        bottom: 10px;
        width: auto;
        max-height: 86vh;
        overflow: auto;
    }
    .hotel-listing-calendar .calendar-months { grid-template-columns: 1fr; }
    .hotel-listing-calendar .calendar-month:nth-child(2) { display: none; }
}

/* Hotel listing V8: stable scrolling and production cleanup */
.hotel-live-notice,
.hotel-preview-notice.hotel-live-notice {
    display: none !important;
}

/* Keep sorting in document flow so it never overlaps hotel cards on scroll. */
.hotel-results-toolbar-v3 {
    position: relative !important;
    top: auto !important;
    z-index: 2 !important;
}

/* Sticky left filter with independent vertical scrolling. */
.hotel-filter-sidebar {
    position: sticky !important;
    top: 92px !important;
    max-height: calc(100vh - 112px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    -webkit-overflow-scrolling: touch;
}
.hotel-filter-sidebar::-webkit-scrollbar { width: 7px; }
.hotel-filter-sidebar::-webkit-scrollbar-track { background: transparent; }
.hotel-filter-sidebar::-webkit-scrollbar-thumb {
    border: 2px solid transparent;
    border-radius: 999px;
    background: #c5d1e0;
    background-clip: padding-box;
}
.hotel-filter-head {
    position: sticky !important;
    top: 0 !important;
    z-index: 4 !important;
    background: #fff !important;
}
.hotel-listing-layout { align-items: start !important; }
.hotel-results-column { min-width: 0; }
.hotel-card-list { position: relative; z-index: 1; }

@media (max-width: 820px) {
    .hotel-filter-sidebar {
        position: fixed !important;
        top: 0 !important;
        bottom: 0 !important;
        max-height: none !important;
        overflow-y: auto !important;
    }
    .hotel-results-toolbar-v3 {
        position: relative !important;
        top: auto !important;
    }
}

/* Hotel listing V9: tighter sticky filter, hidden scrollbar, softer hotel names */
@media (min-width: 821px) {
    .hotel-filter-sidebar {
        top: 14px !important;
        max-height: calc(100vh - 28px) !important;
        scrollbar-width: none !important;
        -ms-overflow-style: none !important;
    }
    .hotel-filter-sidebar::-webkit-scrollbar {
        width: 0 !important;
        height: 0 !important;
        display: none !important;
    }
}

.hotel-card-heading h2 {
    font-weight: 650 !important;
    letter-spacing: -0.015em !important;
}

@media (max-width: 767px) {
    .hotel-card-heading h2 {
        font-weight: 650 !important;
    }
}

/* Hotel listing Phase 3: browser-native virtual rendering + image paint stability */
@supports (content-visibility:auto){
  .hotel-card-list .hotel-list-card{
    content-visibility:auto;
    contain-intrinsic-size:310px;
    contain:layout paint style;
  }
}
.hotel-card-image.is-image-pending{
  background-image:linear-gradient(110deg,#eef3f8 8%,#f8fafc 18%,#eef3f8 33%);
  background-size:200% 100%;
  animation:hotelImageShimmer 1.15s linear infinite;
}
.hotel-card-image.is-image-loaded{animation:none}
@keyframes hotelImageShimmer{to{background-position-x:-200%}}
@media (prefers-reduced-motion:reduce){.hotel-card-image.is-image-pending{animation:none}}

/* Phase 4: Smart hotel recommendations */
.hotel-sort-table{overflow-x:auto;scrollbar-width:none}
.hotel-sort-table::-webkit-scrollbar{display:none}
.hotel-sort-chip{white-space:nowrap}
.hotel-smart-badges{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:7px;min-height:0}
.hotel-smart-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:700;line-height:1;border:1px solid transparent}
.hotel-smart-badge.is-value{color:#8a4b00;background:#fff7df;border-color:#f5d88b}
.hotel-smart-badge.is-family{color:#665100;background:#fffbe6;border-color:#eadb78}
.hotel-smart-badge.is-business{color:#134f8a;background:#eaf4ff;border-color:#b9d8f6}
.hotel-smart-badge i{font-size:11px}
@media(max-width:1199px){.hotel-sort-area{max-width:100%}.hotel-sort-table{justify-content:flex-start}.hotel-sort-chip{flex:0 0 auto}}

/* Phase 4 V2: single-line sorting toolbar */
.hotel-sort-only-toolbar{
    display:block!important;
    padding:6px!important;
    min-height:auto!important;
    overflow:hidden;
}
.hotel-sort-only-toolbar .hotel-sort-area{
    display:flex!important;
    align-items:center!important;
    width:100%!important;
    max-width:none!important;
    gap:8px!important;
}
.hotel-sort-only-toolbar .hotel-sort-label{
    flex:0 0 auto;
    padding-left:8px;
    white-space:nowrap;
    font-size:12px!important;
    font-weight:700!important;
}
.hotel-sort-only-toolbar .hotel-sort-table{
    display:flex!important;
    flex:1 1 auto!important;
    flex-wrap:nowrap!important;
    justify-content:flex-start!important;
    gap:4px!important;
    width:auto!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scrollbar-width:none;
    white-space:nowrap;
}
.hotel-sort-only-toolbar .hotel-sort-table::-webkit-scrollbar{display:none}
.hotel-sort-only-toolbar .hotel-sort-chip{
    flex:1 0 auto!important;
    min-width:max-content!important;
    min-height:42px!important;
    padding:8px 13px!important;
    border-right:0!important;
    border-bottom:0!important;
    border-radius:9px!important;
    white-space:nowrap!important;
}
.hotel-card-price .hotel-offer-label{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-bottom:5px;
    padding:4px 7px;
    border-radius:6px;
    background:#e8f8ef;
    color:#087443;
    font-size:11px!important;
    font-weight:800!important;
}
.hotel-card-price del{
    display:block;
    margin-bottom:1px;
    text-decoration-thickness:1.5px;
}
@media(max-width:767px){
    .hotel-sort-only-toolbar{display:none!important}
}

/* Phase 5: premium hotel details and room selection */
.hotel-details-page{padding:28px 0 80px;background:#f6f8fc;color:#162033}.hotel-details-shell{width:min(1280px,calc(100% - 32px));margin:auto}.hotel-back-link{display:inline-flex;align-items:center;gap:8px;margin-bottom:18px;color:#344054;font-size:13px;font-weight:700;text-decoration:none}.hotel-details-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:18px}.hotel-details-stars{display:flex;gap:3px;color:#f4a000;font-size:12px}.hotel-details-header h1{margin:7px 0 7px;font-size:30px;font-weight:850;letter-spacing:-.03em}.hotel-details-header p{margin:0;color:#667085;font-size:14px}.hotel-details-actions{display:flex;align-items:center;gap:10px}.hotel-details-actions>button{display:flex;align-items:center;gap:7px;padding:10px 13px;border:1px solid #d0d5dd;border-radius:10px;background:#fff;color:#344054;font-size:13px;font-weight:750}.hotel-details-rating{display:flex;align-items:center;gap:10px;margin-right:5px}.hotel-details-rating span{display:flex;flex-direction:column;text-align:right}.hotel-details-rating strong{font-size:13px}.hotel-details-rating small{color:#667085;font-size:11px}.hotel-details-rating b{display:grid;width:44px;height:40px;place-items:center;border-radius:10px 10px 10px 3px;background:#087b5c;color:#fff}.hotel-details-gallery{display:grid;grid-template-columns:1.65fr 1fr;height:430px;gap:8px;overflow:hidden;border-radius:18px;background:#e8edf5}.hotel-details-gallery button{position:relative;border:0;background-position:center;background-size:cover}.hotel-details-gallery button:after{position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,.3));content:""}.hotel-gallery-main span,.hotel-gallery-side span{position:absolute;z-index:2;right:14px;bottom:14px;padding:9px 12px;border-radius:9px;background:rgba(255,255,255,.95);color:#101828;font-size:12px;font-weight:800}.hotel-gallery-side{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hotel-gallery-empty{display:grid;grid-column:1/-1;place-items:center;color:#667085}.hotel-gallery-empty i{font-size:52px}.hotel-details-nav{position:sticky;z-index:25;top:0;display:flex;margin:18px 0;padding:0 18px;gap:28px;border:1px solid #e4e7ec;border-radius:13px;background:#fff;box-shadow:0 8px 28px rgba(16,24,40,.06)}.hotel-details-nav a{padding:15px 0;color:#475467;border-bottom:2px solid transparent;font-size:13px;font-weight:800;text-decoration:none}.hotel-details-nav a:hover{color:#175cd3;border-color:#175cd3}.hotel-details-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:22px}.hotel-details-layout main{display:grid;gap:18px}.hotel-highlights-card,.hotel-room-section,.hotel-info-card,.hotel-booking-summary{border:1px solid #e4e7ec;border-radius:16px;background:#fff;box-shadow:0 8px 28px rgba(16,24,40,.05)}.hotel-highlights-card,.hotel-room-section,.hotel-info-card{padding:22px}.section-heading>span{color:#175cd3;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.09em}.section-heading h2{margin:5px 0 4px;font-size:21px;font-weight:850;letter-spacing:-.02em}.section-heading p{margin:0;color:#667085;font-size:13px}.hotel-highlight-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:18px;gap:10px}.hotel-highlight-grid div{display:flex;align-items:center;gap:9px;padding:12px;border-radius:11px;background:#f8fafc;color:#344054;font-size:13px;font-weight:700}.hotel-highlight-grid i{color:#175cd3;font-size:17px}.premium-room-card{position:relative;margin-top:18px;border:1px solid #d6e4ff;border-radius:15px;background:#fff;overflow:hidden}.premium-room-card.is-selected{border-color:#175cd3;box-shadow:0 0 0 3px rgba(23,92,211,.12)}.room-badge{position:absolute;z-index:2;top:0;left:0;padding:7px 11px;border-radius:0 0 10px 0;background:#175cd3;color:#fff;font-size:11px;font-weight:850}.room-card-grid{display:grid;grid-template-columns:1.15fr 1fr 210px;min-height:220px}.room-card-copy,.room-benefits,.room-price-box{padding:38px 20px 20px}.room-card-copy h3{margin:0 0 15px;font-size:19px;font-weight:850}.room-feature-list{display:grid;gap:9px}.room-feature-list span,.room-benefits span{display:flex;align-items:center;gap:8px;color:#475467;font-size:12px}.room-feature-list i{color:#175cd3}.room-detail-link{margin-top:17px;padding:0;border:0;background:none;color:#175cd3;font-size:12px;font-weight:800}.room-benefits{display:grid;align-content:start;gap:11px;border-left:1px solid #eaecf0}.room-benefits>strong{margin-bottom:4px;font-size:13px}.room-benefits .is-positive{color:#067647}.room-price-box{display:flex;align-items:flex-end;justify-content:center;flex-direction:column;border-left:1px solid #eaecf0;background:#f9fbff;text-align:right}.room-price-box em{padding:5px 7px;border-radius:6px;background:#e9f8f3;color:#067647;font-size:10px;font-style:normal;font-weight:850}.room-price-box del{margin-top:10px;color:#98a2b3;font-size:12px}.room-price-box>strong{font-size:27px;letter-spacing:-.03em}.room-price-box small{color:#667085;font-size:10px}.room-price-box button,.hotel-booking-summary>button,.hotel-mobile-bookbar button{margin-top:15px;width:100%;padding:12px;border:0;border-radius:10px;background:#175cd3;color:#fff;font-size:13px;font-weight:850}.room-price-box button.is-selected{background:#067647}.hotel-info-card>p{margin:14px 0 0;color:#475467;line-height:1.75;font-size:13px}.hotel-policy-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:18px;gap:12px}.hotel-policy-grid>div{display:flex;gap:10px;padding:14px;border-radius:12px;background:#f8fafc}.hotel-policy-grid i{color:#175cd3;font-size:18px}.hotel-policy-grid span{display:flex;flex-direction:column;color:#667085;font-size:11px}.hotel-policy-grid strong{color:#344054;font-size:12px}.hotel-booking-summary{position:sticky;top:78px;padding:20px}.hotel-booking-summary>span{color:#175cd3;font-size:11px;font-weight:850;text-transform:uppercase}.hotel-booking-summary h3{margin:5px 0 16px;font-size:17px;font-weight:850}.summary-date-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;padding:13px;border-radius:11px;background:#f8fafc}.summary-date-row div{display:flex;flex-direction:column}.summary-date-row small{color:#667085;font-size:10px}.summary-date-row strong{font-size:12px}.hotel-booking-summary>p{margin:13px 0;color:#475467;font-size:12px}.summary-price{display:flex;align-items:center;justify-content:space-between}.summary-price span{font-size:12px;font-weight:700}.summary-price strong{font-size:23px}.hotel-booking-summary>small{display:block;margin-top:6px;color:#667085;font-size:10px;line-height:1.5}.hotel-booking-summary button:disabled,.hotel-mobile-bookbar button:disabled{background:#98a2b3;cursor:not-allowed}.hotel-mobile-bookbar{display:none}.hotel-gallery-modal{position:fixed;z-index:2500;inset:0;display:grid;grid-template-columns:64px minmax(0,1fr) 64px;align-items:center;padding:45px;background:rgba(7,12,24,.95)}.hotel-gallery-modal[hidden]{display:none}.hotel-gallery-modal img{max-width:100%;max-height:82vh;margin:auto;border-radius:12px}.hotel-gallery-modal button{display:grid;width:44px;height:44px;place-items:center;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff}.hotel-gallery-modal>[data-close-gallery]{position:absolute;top:20px;right:20px}.hotel-gallery-modal span{position:absolute;bottom:20px;left:50%;color:#fff;transform:translateX(-50%)}.hotel-details-error{padding:70px 20px;text-align:center;border:1px solid #e4e7ec;border-radius:18px;background:#fff}.hotel-details-error i{font-size:50px;color:#98a2b3}.hotel-details-error h1{margin:12px 0}.hotel-details-error p{color:#667085}.hotel-details-error a{display:inline-block;margin-top:10px;padding:11px 16px;border-radius:9px;background:#175cd3;color:#fff;text-decoration:none;font-weight:800}.hotel-view-rooms-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none}
@media(max-width:991px){.hotel-details-gallery{height:350px}.hotel-details-layout{grid-template-columns:1fr}.hotel-booking-summary{position:relative;top:auto}.room-card-grid{grid-template-columns:1fr 1fr}.room-price-box{grid-column:1/-1;align-items:center;flex-direction:row;justify-content:space-between;gap:12px;border-top:1px solid #eaecf0;border-left:0;text-align:left}.room-price-box button{width:auto;min-width:150px;margin-top:0}.hotel-highlight-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:767px){.hotel-details-page{padding-top:18px}.hotel-details-shell{width:min(100% - 20px,1280px)}.hotel-details-header{flex-direction:column}.hotel-details-header h1{font-size:24px}.hotel-details-actions{width:100%;flex-wrap:wrap}.hotel-details-rating{margin-right:auto}.hotel-details-actions>button span{display:none}.hotel-details-gallery{grid-template-columns:1fr;height:260px}.hotel-gallery-side{display:none}.hotel-details-nav{overflow-x:auto;gap:22px}.hotel-details-nav a{white-space:nowrap}.hotel-highlights-card,.hotel-room-section,.hotel-info-card{padding:17px}.hotel-highlight-grid{grid-template-columns:1fr 1fr}.room-card-grid{display:block}.room-card-copy,.room-benefits,.room-price-box{padding:20px}.room-card-copy{padding-top:42px}.room-benefits,.room-price-box{border-top:1px solid #eaecf0;border-left:0}.room-price-box{display:flex;align-items:flex-end;flex-direction:column}.room-price-box button{width:100%;margin-top:14px}.hotel-policy-grid{grid-template-columns:1fr}.hotel-booking-summary{display:none}.hotel-mobile-bookbar{position:fixed;z-index:1200;right:0;bottom:0;left:0;display:flex;padding:10px 14px;align-items:center;justify-content:space-between;border-top:1px solid #e4e7ec;background:#fff;box-shadow:0 -10px 28px rgba(16,24,40,.12)}.hotel-mobile-bookbar div{display:flex;flex-direction:column}.hotel-mobile-bookbar small{color:#667085;font-size:10px}.hotel-mobile-bookbar strong{font-size:19px}.hotel-mobile-bookbar button{width:auto;min-width:145px;margin:0}.hotel-gallery-modal{grid-template-columns:42px minmax(0,1fr) 42px;padding:20px 5px}}

/* Phase 5 V2 - EaseMyTrip-inspired hotel details layout */
.emt-hotel-page{background:#f4f6f9;color:#1f2937;padding:0 0 80px}.emt-shell{width:min(1260px,calc(100% - 32px));margin:0 auto}.emt-search-strip{background:linear-gradient(100deg,#0e4a86,#0d6ec8);padding:15px 0}.emt-search-form{display:grid;grid-template-columns:1.5fr .75fr .75fr 1fr auto;gap:1px;overflow:hidden;border-radius:8px;background:rgba(255,255,255,.3)}.emt-search-cell{min-width:0;padding:10px 14px;background:#fff}.emt-search-cell small{display:block;color:#6b7280;font-size:10px;font-weight:800;text-transform:uppercase}.emt-search-cell input{width:100%;border:0;outline:0;background:transparent;color:#111827;font-size:14px;font-weight:750}.emt-search-cell span{display:flex;align-items:center;gap:7px}.emt-search-cell strong{display:block;margin-top:3px;font-size:13px}.emt-destination input{cursor:default}.emt-modify-btn{padding:0 22px;border:0;background:#ff8a00;color:#fff;font-weight:850}.emt-main-shell{padding-top:16px}.emt-breadcrumb{display:flex;align-items:center;gap:8px;margin-bottom:14px;color:#7b8494;font-size:12px}.emt-breadcrumb a{color:#36618d;text-decoration:none}.emt-breadcrumb i{font-size:9px}.emt-hotel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:14px}.emt-star-row{display:flex;align-items:center;gap:3px;color:#f2a100;font-size:12px}.emt-star-row span{margin-left:8px;padding:4px 8px;border-radius:4px;background:#e9f6ee;color:#17854a;font-size:10px;font-weight:800}.emt-title-wrap h1{margin:7px 0 6px;font-size:28px;line-height:1.15}.emt-title-wrap p{margin:0;color:#6b7280;font-size:13px}.emt-title-wrap p i{margin-right:5px;color:#e55353}.emt-title-wrap p a{margin-left:5px;color:#0d6ec8;font-weight:800}.emt-head-actions{display:flex;align-items:center;gap:8px}.emt-head-actions>button{display:grid;width:40px;height:40px;place-items:center;border:1px solid #d9e0e8;border-radius:8px;background:#fff;color:#285b8f}.emt-rating-card{display:flex;align-items:center;gap:10px}.emt-rating-card span{display:flex;flex-direction:column;text-align:right}.emt-rating-card b{font-size:12px}.emt-rating-card small{color:#7b8494;font-size:10px}.emt-rating-card>strong{display:grid;width:43px;height:40px;place-items:center;border-radius:8px 8px 8px 2px;background:#127a55;color:#fff}.emt-gallery{display:grid;grid-template-columns:1.65fr 1fr;height:390px;gap:6px;overflow:hidden;border-radius:10px;background:#dfe5ec}.emt-gallery button{position:relative;border:0;background-position:center;background-size:cover}.emt-gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.emt-gallery-grid span{position:absolute;right:12px;bottom:12px;padding:9px 12px;border-radius:6px;background:#fff;color:#173b61;font-size:11px;font-weight:850}.emt-tab-nav{position:sticky;z-index:30;top:0;display:flex;margin:16px 0;gap:30px;padding:0 18px;border:1px solid #dde3ea;border-radius:8px;background:#fff;box-shadow:0 5px 16px rgba(30,55,80,.06)}.emt-tab-nav a{padding:15px 2px;border-bottom:3px solid transparent;color:#46566a;font-size:13px;font-weight:800;text-decoration:none}.emt-tab-nav a:hover{border-color:#0d6ec8;color:#0d6ec8}.emt-content-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;align-items:start;gap:18px}.emt-content-grid main{display:grid;gap:16px}.emt-card,.emt-room-section,.emt-booking-card{border:1px solid #dde3ea;border-radius:9px;background:#fff;box-shadow:0 4px 14px rgba(22,45,72,.04)}.emt-card{padding:20px}.emt-overview{display:flex;align-items:center;justify-content:space-between;gap:20px}.emt-eyebrow{color:#0d6ec8;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.emt-card h2,.emt-room-titlebar h2{margin:5px 0 7px;font-size:20px}.emt-card p{margin:0;color:#667085;font-size:13px;line-height:1.65}.emt-overview-score{display:flex;min-width:185px;flex-direction:column;padding:14px;border-radius:8px;background:#eff8f3}.emt-overview-score i{color:#17854a;font-size:22px}.emt-overview-score strong{margin-top:6px;font-size:12px}.emt-overview-score small{color:#667085;font-size:10px}.emt-section-head{display:flex;align-items:center;justify-content:space-between}.emt-text-btn{border:0;background:none;color:#0d6ec8;font-size:12px;font-weight:850}.emt-amenity-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:15px;gap:10px}.emt-amenity-grid div{display:flex;align-items:center;gap:8px;padding:10px;border-radius:7px;background:#f7f9fb;font-size:12px}.emt-amenity-grid i{color:#168557}.emt-room-section{overflow:hidden}.emt-room-titlebar{display:flex;align-items:center;justify-content:space-between;padding:19px 20px;border-bottom:1px solid #e3e7ec}.emt-room-titlebar p{margin:0;color:#667085;font-size:12px}.emt-availability{padding:7px 10px;border-radius:6px;background:#fff2df;color:#cb6e00;font-size:11px;font-weight:850}.emt-room-card{display:grid;grid-template-columns:190px minmax(230px,.8fr) minmax(420px,1.45fr);min-height:250px}.emt-room-photo{position:relative;min-height:220px;background:#e9eef4 center/cover no-repeat}.emt-room-photo span{position:absolute;top:12px;left:0;padding:6px 10px;border-radius:0 5px 5px 0;background:#0d6ec8;color:#fff;font-size:10px;font-weight:900}.emt-room-info{padding:20px;border-right:1px solid #e4e8ed}.emt-room-info h3{margin:0 0 16px;font-size:18px}.emt-room-specs{display:grid;gap:10px}.emt-room-specs span{display:flex;align-items:center;gap:7px;color:#566274;font-size:11px}.emt-room-specs i{color:#0d6ec8}.emt-room-link{display:inline-flex;align-items:center;gap:5px;margin-top:19px;color:#0d6ec8;font-size:11px;font-weight:850;text-decoration:none}.emt-rate-table{display:flex;flex-direction:column}.emt-rate-head,.emt-rate-row{display:grid;grid-template-columns:1fr .95fr 170px}.emt-rate-head{border-bottom:1px solid #e4e8ed;background:#f7f9fb}.emt-rate-head span{padding:10px 12px;color:#6b7280;font-size:10px;font-weight:900;text-transform:uppercase}.emt-rate-row{flex:1}.emt-rate-row>div{padding:16px 12px}.emt-inclusions,.emt-cancel{display:flex;flex-direction:column;gap:8px;border-right:1px solid #e4e8ed}.emt-inclusions strong,.emt-cancel strong{font-size:12px}.emt-inclusions span{color:#158553;font-size:11px}.emt-cancel small{color:#667085;font-size:10px;line-height:1.45}.emt-cancel.is-refundable strong{color:#158553}.emt-cancel.is-restricted strong{color:#bd6500}.emt-rate-price{display:flex;align-items:flex-end;flex-direction:column;text-align:right;background:#fbfcfe}.emt-rate-price em{padding:4px 6px;border-radius:4px;background:#e8f7ef;color:#168557;font-size:9px;font-style:normal;font-weight:900}.emt-rate-price del{margin-top:7px;color:#9aa3af;font-size:11px}.emt-rate-price>strong{font-size:24px}.emt-rate-price small{color:#7b8494;font-size:9px;line-height:1.4}.emt-rate-price button,.emt-booking-card>button{width:100%;margin-top:auto;padding:11px;border:0;border-radius:6px;background:#ff7a00;color:#fff;font-size:12px;font-weight:900}.emt-room-card.is-selected{box-shadow:inset 0 0 0 2px #0d6ec8}.emt-rate-price button.is-selected{background:#168557}.emt-policy-list{display:grid;grid-template-columns:1fr 1fr;margin-top:12px;gap:12px}.emt-policy-list>div{display:flex;gap:10px;padding:12px;border-radius:7px;background:#f7f9fb}.emt-policy-list i{color:#0d6ec8}.emt-policy-list span{display:flex;flex-direction:column;color:#6b7280;font-size:11px}.emt-policy-list strong{margin-bottom:3px;color:#26384c;font-size:12px}.emt-location-box{display:flex;align-items:flex-start;gap:12px;margin-top:12px;padding:16px;border-radius:8px;background:#f7f9fb}.emt-location-box>i{color:#e45454;font-size:22px}.emt-location-box p{margin-top:4px}.emt-booking-card{position:sticky;top:76px;padding:18px}.emt-booking-top{display:flex;align-items:flex-end;flex-direction:column;border-bottom:1px solid #e4e8ed;padding-bottom:14px}.emt-booking-top span,.emt-booking-top small{color:#6b7280;font-size:10px}.emt-booking-top del{color:#9aa3af;font-size:11px}.emt-booking-top strong{font-size:28px}.emt-stay-box{display:grid;grid-template-columns:1fr 1fr;margin:14px 0;padding:12px;border:1px solid #dfe5eb;border-radius:7px}.emt-stay-box div{display:flex;flex-direction:column}.emt-stay-box div+div{padding-left:10px;border-left:1px solid #dfe5eb}.emt-stay-box small{color:#7b8494;font-size:9px}.emt-stay-box strong{font-size:11px}.emt-stay-box p{grid-column:1/-1;margin:10px 0 0;padding-top:10px;border-top:1px solid #e7ebef;color:#566274;font-size:11px}.emt-stay-box p i{margin-right:6px;color:#0d6ec8}.emt-selected-summary{display:flex;flex-direction:column;padding:11px;border-radius:7px;background:#f7f9fb}.emt-selected-summary span{font-size:12px;font-weight:800}.emt-selected-summary small{margin-top:3px;color:#7b8494;font-size:10px}.emt-booking-card>button:disabled{background:#a9b2be}.emt-booking-card ul{display:grid;margin:15px 0 0;padding:0;gap:8px;list-style:none}.emt-booking-card li{color:#667085;font-size:10px}.emt-booking-card li i{margin-right:7px;color:#158553}.emt-head-actions button.is-active{border-color:#e95b66;color:#e95b66;background:#fff5f6}
@media(max-width:1050px){.emt-search-form{grid-template-columns:1.35fr .7fr .7fr .9fr auto}.emt-content-grid{grid-template-columns:1fr}.emt-booking-card{position:relative;top:auto}.emt-room-card{grid-template-columns:180px 1fr}.emt-rate-table{grid-column:1/-1;border-top:1px solid #e4e8ed}.emt-room-info{border-right:0}.emt-amenity-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:767px){.emt-shell{width:calc(100% - 20px)}.emt-search-strip{padding:10px 0}.emt-search-form{display:grid;grid-template-columns:1fr 1fr;gap:5px;background:transparent;overflow:visible}.emt-search-cell{border-radius:6px;padding:8px}.emt-destination,.emt-search-cell:nth-of-type(4),.emt-modify-btn{grid-column:1/-1}.emt-modify-btn{padding:11px;border-radius:6px}.emt-breadcrumb{overflow:hidden;white-space:nowrap}.emt-hotel-head{flex-direction:column}.emt-title-wrap h1{font-size:23px}.emt-head-actions{width:100%}.emt-rating-card{margin-right:auto}.emt-gallery{grid-template-columns:1fr;height:240px}.emt-gallery-grid{display:none}.emt-tab-nav{overflow-x:auto;gap:22px}.emt-tab-nav a{white-space:nowrap}.emt-overview{align-items:flex-start;flex-direction:column}.emt-overview-score{width:100%}.emt-amenity-grid{grid-template-columns:1fr 1fr}.emt-room-titlebar{align-items:flex-start;flex-direction:column;gap:10px}.emt-room-card{display:block}.emt-room-photo{min-height:190px}.emt-room-info{border-bottom:1px solid #e4e8ed}.emt-rate-head{display:none}.emt-rate-row{display:block}.emt-inclusions,.emt-cancel{border-right:0;border-bottom:1px solid #e4e8ed}.emt-rate-price{align-items:flex-start;text-align:left}.emt-rate-price button{margin-top:14px}.emt-policy-list{grid-template-columns:1fr}.emt-booking-card{display:none}.hotel-mobile-bookbar{display:flex}.emt-hotel-page{padding-bottom:90px}}


/* Phase 5.1: live multi-room availability */
.emt-room-results{display:grid;gap:16px}.emt-room-loading{display:grid;min-height:230px;padding:24px;align-content:center;gap:12px;border:1px solid #e3eaf2;border-radius:14px;background:#fff}.emt-room-loading span{display:block;height:18px;border-radius:8px;background:linear-gradient(90deg,#eef2f7 25%,#f8fafc 50%,#eef2f7 75%);background-size:200% 100%;animation:emtRoomPulse 1.2s infinite}.emt-room-loading span:nth-child(2){width:72%}.emt-room-loading span:nth-child(3){width:48%}.emt-room-loading p{margin:6px 0 0;color:#667085;font-size:13px}@keyframes emtRoomPulse{to{background-position:-200% 0}}.emt-room-empty{padding:42px 24px;text-align:center;border:1px solid #dfe7f1;border-radius:14px;background:#fff}.emt-room-empty i{font-size:30px;color:#667085}.emt-room-empty h3{margin:10px 0 5px;color:#15233b}.emt-room-empty p{max-width:620px;margin:0 auto;color:#667085;font-size:13px}.emt-room-empty button{margin-top:14px;padding:10px 18px;border:0;border-radius:9px;background:#175cd3;color:#fff;font-weight:700}.emt-room-empty.is-error{border-color:#f1c7c7;background:#fffafa}.emt-room-photo.is-empty{display:grid;place-items:center;background:#eef3f9}.emt-room-photo.is-empty>i{font-size:35px;color:#91a1b7}.emt-room-inclusion{display:block;margin-top:5px;color:#4d617d}.emt-room-inclusion i{margin-right:5px;color:#07936e}.emt-room-results .emt-room-card{margin:0}

/* Hotel listing V10: reliable filtering and consistent visual rhythm */
.hotel-listing-page {
    --hotel-gap-xs: 8px;
    --hotel-gap-sm: 12px;
    --hotel-gap-md: 16px;
    --hotel-gap-lg: 20px;
}
.hotel-listing-page > .container {
    width: 100%;
    max-width: 1320px;
    padding-right: 20px;
    padding-left: 20px;
}
.hotel-listing-page .hotel-listing-layout {
    grid-template-columns: 276px minmax(0, 1fr) !important;
    gap: var(--hotel-gap-lg) !important;
    margin-top: var(--hotel-gap-md) !important;
}
.hotel-listing-page .hotel-filter-sidebar {
    border-radius: 14px;
    box-shadow: 0 8px 24px rgba(16, 39, 77, .055);
}
.hotel-listing-page .hotel-filter-head {
    min-height: 72px;
    padding: 15px 16px !important;
}
.hotel-listing-page .hotel-filter-head span {
    font-size: 10px !important;
    line-height: 1.25;
    letter-spacing: .035em;
}
.hotel-listing-page .hotel-filter-head strong {
    font-size: 15px !important;
    line-height: 1.3;
}
.hotel-listing-page .hotel-filter-head button {
    font-size: 12px !important;
}
.hotel-listing-page .hotel-filter-group {
    padding: 15px 16px !important;
}
.hotel-listing-page .hotel-filter-label {
    margin-bottom: 9px;
    font-size: 13px !important;
    line-height: 1.35;
}
.hotel-listing-page .hotel-filter-label-row strong {
    font-size: 12px !important;
}
.hotel-listing-page .hotel-name-filter {
    height: 42px;
    padding: 0 11px;
    border-radius: 10px;
}
.hotel-listing-page .hotel-name-filter input,
.hotel-listing-page .hotel-check-row,
.hotel-listing-page .hotel-radio-row,
.hotel-listing-page .hotel-toggle-row,
.hotel-listing-page .filter-text-row small {
    font-size: 13px !important;
    line-height: 1.35;
}
.hotel-listing-page .hotel-check-row,
.hotel-listing-page .hotel-radio-row {
    min-height: 30px;
    margin: 4px 0 !important;
    gap: 9px;
}
.hotel-listing-page .hotel-check-row input,
.hotel-listing-page .hotel-radio-row input {
    width: 15px;
    height: 15px;
    flex: 0 0 15px;
}
.hotel-listing-page .hotel-price-scale {
    margin-top: 7px;
    font-size: 10px;
}
.hotel-listing-page .hotel-results-column {
    display: flex;
    min-width: 0;
    flex-direction: column;
}
.hotel-listing-page .hotel-sort-only-toolbar {
    display: flex !important;
    min-height: 60px !important;
    padding: 8px !important;
    align-items: center !important;
    gap: 12px !important;
    border-radius: 14px;
}
.hotel-result-count {
    display: inline-flex;
    min-width: max-content;
    align-items: center;
    gap: 8px;
    color: #10213f;
}
.hotel-result-count i {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    color: #1f63f2;
    border-radius: 10px;
    background: #eef4ff;
    font-size: 15px;
}
.hotel-result-count strong {
    font-size: 13px !important;
    font-weight: 750 !important;
    white-space: nowrap;
}
.hotel-result-count-mobile {
    display: none;
}
.hotel-listing-page .hotel-sort-only-toolbar .hotel-sort-area {
    flex: 1 1 auto;
    gap: 10px !important;
}
.hotel-listing-page .hotel-sort-only-toolbar .hotel-sort-label {
    padding-left: 6px;
    font-size: 12px !important;
}
.hotel-listing-page .hotel-sort-only-toolbar .hotel-sort-table {
    gap: 5px !important;
}
.hotel-listing-page .hotel-sort-only-toolbar .hotel-sort-chip {
    min-height: 42px !important;
    padding: 8px 11px !important;
    font-size: 12px !important;
}
.hotel-listing-page .hotel-quick-filters {
    margin-top: 10px !important;
    padding: 0 0 12px !important;
    gap: 8px !important;
}
@media(max-width:767px){
    .hotel-listing-page .hotel-sort-only-toolbar {
        display: none !important;
    }
    .hotel-listing-page .hotel-mobile-toolbar {
        flex-wrap: wrap;
    }
    .hotel-result-count-mobile {
        display: inline-flex;
        width: 100%;
        margin-right: 0;
    }
    .hotel-result-count-mobile i {
        width: 30px;
        height: 30px;
        flex-basis: 30px;
        font-size: 13px;
    }
    .hotel-result-count-mobile strong {
        font-size: 12px !important;
    }
}
.hotel-listing-page .hotel-quick-filters button {
    min-height: 38px;
    padding: 8px 13px !important;
    font-size: 12px !important;
    line-height: 1.2;
}
.hotel-listing-page .hotel-card-list {
    margin-top: 0 !important;
    gap: 14px !important;
}
.hotel-listing-page .hotel-list-card.is-filtered-out {
    display: none !important;
}
.hotel-listing-page .hotel-card-heading h2 {
    font-size: 17px !important;
    line-height: 1.28;
}
.hotel-listing-page .hotel-card-heading p,
.hotel-listing-page .hotel-amenities span,
.hotel-listing-page .hotel-room-highlight strong,
.hotel-listing-page .hotel-room-highlight span {
    line-height: 1.4;
}
@media (max-width: 1100px) {
    .hotel-listing-page .hotel-listing-layout {
        grid-template-columns: 244px minmax(0, 1fr) !important;
        gap: 16px !important;
    }
}
@media (max-width: 820px) {
    .hotel-listing-page > .container {
        padding-right: 12px;
        padding-left: 12px;
    }
    .hotel-listing-page .hotel-listing-layout {
        display: block !important;
        margin-top: 12px !important;
    }
    .hotel-listing-page .hotel-filter-sidebar {
        border-radius: 0;
    }
}

/* Hotel details V6: professional room discovery and brand-consistent controls */
.emt-hotel-page {
    --hotel-brand: #175cd3;
    --hotel-brand-strong: #0f49b8;
    --hotel-brand-soft: #eef5ff;
    --hotel-teal: #07936e;
    --hotel-navy: #102a56;
    background: #f4f7fb;
}
.emt-hotel-page .emt-shell {
    width: min(1320px, calc(100% - 40px));
}
.emt-hotel-page .emt-main-shell {
    padding-top: 22px;
}
.emt-hotel-page .emt-breadcrumb {
    margin-bottom: 16px;
}
.emt-hotel-page .emt-hotel-head {
    margin-bottom: 14px;
}
.emt-hotel-page .emt-title-wrap h1 {
    color: var(--hotel-navy);
    font-size: 30px;
    font-weight: 720;
    letter-spacing: -.025em;
}
.emt-hotel-page .emt-star-row {
    color: #6b4ee6;
}
.emt-hotel-page .emt-star-row span {
    background: #eaf8f4;
    color: #087a5c;
}
.emt-stay-context {
    display: grid;
    grid-template-columns: 1.35fr .75fr 1fr auto;
    min-height: 72px;
    margin-bottom: 16px;
    padding: 11px 14px;
    align-items: stretch;
    gap: 8px;
    border: 1px solid #dce5f0;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 7px 22px rgba(16, 42, 86, .05);
}
.emt-stay-context > div {
    display: flex;
    min-width: 0;
    padding: 8px 12px;
    align-items: center;
    gap: 10px;
    border-radius: 10px;
    background: #f8faff;
}
.emt-stay-context > div > i {
    display: grid;
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
    place-items: center;
    border-radius: 9px;
    background: var(--hotel-brand-soft);
    color: var(--hotel-brand);
}
.emt-stay-context span {
    display: flex;
    min-width: 0;
    flex-direction: column;
}
.emt-stay-context small {
    color: #7a899f;
    font-size: 10px;
    font-weight: 650;
}
.emt-stay-context strong {
    overflow: hidden;
    color: #243a5e;
    font-size: 12px;
    font-weight: 720;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.emt-stay-context > a {
    display: inline-flex;
    padding: 0 14px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    color: var(--hotel-brand);
    border: 1px solid #b8cdf2;
    border-radius: 10px;
    background: #fff;
    font-size: 12px;
    font-weight: 750;
    text-decoration: none;
}
.emt-stay-context > a:hover {
    border-color: var(--hotel-brand);
    background: var(--hotel-brand-soft);
}
.emt-hotel-page .emt-gallery {
    height: 410px;
    border: 1px solid #dce5f0;
    border-radius: 16px;
    box-shadow: 0 12px 34px rgba(16, 42, 86, .08);
}
.emt-hotel-page .emt-tab-nav {
    border-radius: 12px;
}
.emt-hotel-page .emt-tab-nav a:hover {
    color: var(--hotel-brand);
    border-color: var(--hotel-brand);
}
.emt-hotel-page .emt-content-grid {
    grid-template-columns: minmax(0, 1fr) 310px;
    gap: 18px;
}
.emt-hotel-page .emt-card,
.emt-hotel-page .emt-room-section,
.emt-hotel-page .emt-booking-card {
    border-color: #dce5f0;
    border-radius: 14px;
    box-shadow: 0 7px 22px rgba(16, 42, 86, .045);
}
.emt-hotel-page .emt-eyebrow {
    color: var(--hotel-brand);
}
.emt-hotel-page .emt-location-box > i {
    color: var(--hotel-brand);
}
.emt-hotel-page .emt-amenity-grid [hidden] {
    display: none !important;
}
.emt-hotel-page .emt-availability {
    padding: 7px 10px;
    color: #075e96;
    border: 1px solid #b9dcf5;
    background: #eef8ff;
}
.emt-hotel-page .emt-room-titlebar {
    padding: 20px 22px;
}
.emt-hotel-page .emt-room-titlebar h2 {
    color: var(--hotel-navy);
    font-size: 21px;
    font-weight: 720;
}
.emt-room-results {
    gap: 14px !important;
    padding: 14px;
    background: #f7f9fc;
}
.room-options-toolbar {
    display: grid;
    grid-template-columns: minmax(170px, 1fr) auto auto;
    padding: 12px;
    align-items: center;
    gap: 12px;
    border: 1px solid #dce5f0;
    border-radius: 12px;
    background: #fff;
}
.room-options-count {
    display: flex;
    flex-direction: column;
}
.room-options-count strong {
    color: #1c3153;
    font-size: 14px;
    font-weight: 750;
}
.room-options-count small {
    margin-top: 2px;
    color: #7b899d;
    font-size: 10px;
}
.room-option-filters {
    display: flex;
    gap: 6px;
}
.room-option-filters button {
    min-height: 36px;
    padding: 7px 11px;
    color: #52627a;
    border: 1px solid #d7e1ed;
    border-radius: 9px;
    background: #fff;
    font-size: 11px;
    font-weight: 700;
}
.room-option-filters button:hover,
.room-option-filters button.is-active {
    color: var(--hotel-brand);
    border-color: #9ebcf0;
    background: var(--hotel-brand-soft);
}
.room-option-sort {
    display: flex;
    align-items: center;
    gap: 7px;
}
.room-option-sort span {
    color: #77859a;
    font-size: 10px;
    font-weight: 700;
}
.room-option-sort select {
    min-height: 36px;
    padding: 0 30px 0 10px;
    color: #344866;
    border: 1px solid #d7e1ed;
    border-radius: 9px;
    background: #fff;
    font-size: 11px;
    font-weight: 700;
    outline: 0;
}
.room-option-card.emt-room-card {
    display: grid;
    grid-template-columns: 235px minmax(0, 1fr) 220px;
    min-height: 270px;
    overflow: hidden;
    border: 1px solid #d8e3f0;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 7px 22px rgba(17, 45, 88, .055);
    transition: border-color .18s, box-shadow .18s, transform .18s;
}
.room-option-card.emt-room-card:hover {
    border-color: #afc6ea;
    box-shadow: 0 14px 32px rgba(17, 45, 88, .1);
    transform: translateY(-1px);
}
.room-option-card.emt-room-card.is-selected {
    border-color: var(--hotel-brand);
    box-shadow: 0 0 0 3px rgba(23, 92, 211, .12), 0 14px 32px rgba(17, 45, 88, .1);
}
.room-option-card.is-filtered-out {
    display: none !important;
}
.room-option-card .emt-room-photo {
    position: relative;
    min-height: 270px;
    overflow: hidden;
    border-right: 1px solid #e3eaf3;
    background: #eaf0f7;
}
.room-photo-button {
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: zoom-in;
}
.room-photo-button img {
    width: 100%;
    height: 100%;
    min-height: 270px;
    object-fit: cover;
    transition: transform .35s ease;
}
.room-photo-button:hover img {
    transform: scale(1.035);
}
.room-value-badge,
.room-option-card .emt-room-photo .room-value-badge {
    position: absolute;
    z-index: 2;
    top: 12px;
    left: 12px;
    display: inline-flex;
    padding: 6px 9px;
    align-items: center;
    gap: 5px;
    color: #fff;
    border-radius: 7px;
    background: var(--hotel-brand);
    font-size: 10px;
    font-weight: 800;
    box-shadow: 0 5px 15px rgba(15, 73, 184, .22);
}
.room-value-badge.is-limited {
    background: #6b4ee6;
}
.room-photo-count {
    position: absolute;
    z-index: 2;
    right: 10px;
    bottom: 10px;
    padding: 6px 8px;
    color: #fff;
    border-radius: 7px;
    background: rgba(9, 27, 58, .76);
    font-size: 9px;
    font-weight: 700;
    backdrop-filter: blur(6px);
}
.room-photo-placeholder {
    display: grid;
    width: 100%;
    height: 100%;
    min-height: 270px;
    place-content: center;
    gap: 8px;
    color: #8ba0bc;
    text-align: center;
    background: linear-gradient(145deg, #edf3fa, #f8fafc);
}
.room-photo-placeholder i {
    font-size: 31px;
}
.room-option-card .emt-room-photo .room-photo-placeholder span {
    position: static;
    padding: 0;
    color: #7f91aa;
    background: transparent;
    font-size: 11px;
    font-weight: 650;
}
.room-option-card .emt-room-info {
    padding: 18px 20px;
    border-right: 1px solid #e3eaf3;
}
.room-card-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}
.room-card-title-row > div {
    min-width: 0;
}
.room-card-title-row small {
    color: var(--hotel-brand);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.room-option-card .room-card-title-row h3 {
    margin: 4px 0 0;
    color: var(--hotel-navy);
    font-size: 18px;
    font-weight: 720;
    line-height: 1.25;
}
.room-policy-badge {
    display: inline-flex;
    flex: 0 0 auto;
    padding: 5px 7px;
    align-items: center;
    gap: 4px;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 750;
}
.room-policy-badge.is-refundable {
    color: #08785c;
    background: #eaf8f3;
}
.room-policy-badge.is-restricted {
    color: #a83c4a;
    background: #fff0f2;
}
.room-feature-chips {
    display: flex;
    margin-top: 14px;
    flex-wrap: wrap;
    gap: 6px;
}
.room-feature-chips span {
    display: inline-flex;
    padding: 6px 8px;
    align-items: center;
    gap: 5px;
    color: #475d7b;
    border: 1px solid #e0e7f0;
    border-radius: 7px;
    background: #f8fafd;
    font-size: 10px;
}
.room-feature-chips i {
    color: var(--hotel-brand);
}
.room-inclusion-list {
    display: grid;
    margin-top: 13px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px 12px;
}
.room-inclusion-list span {
    display: flex;
    min-width: 0;
    align-items: flex-start;
    gap: 6px;
    color: #52657f;
    font-size: 10px;
    line-height: 1.35;
}
.room-inclusion-list i {
    flex: 0 0 auto;
    color: var(--hotel-teal);
}
.room-details-toggle {
    margin-top: 14px;
    padding: 0;
    color: var(--hotel-brand);
    border: 0;
    background: none;
    font-size: 10px;
    font-weight: 750;
}
.room-details-panel {
    display: grid;
    margin-top: 11px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}
.room-details-panel[hidden] {
    display: none;
}
.room-details-panel > div {
    display: flex;
    padding: 9px;
    flex-direction: column;
    gap: 3px;
    border-radius: 8px;
    background: #f5f8fc;
}
.room-details-panel small {
    color: #7b899e;
    font-size: 9px;
}
.room-details-panel strong {
    color: #364c6b;
    font-size: 10px;
    font-weight: 650;
    line-height: 1.4;
}
.room-option-card .emt-rate-price {
    display: flex;
    padding: 18px;
    align-items: stretch;
    justify-content: space-between;
    flex-direction: column;
    border: 0;
    background: #fbfdff;
    text-align: right;
}
.room-price-top {
    display: flex;
    align-items: flex-end;
    flex-direction: column;
}
.room-price-top em {
    padding: 4px 6px;
    color: #08785c;
    border-radius: 6px;
    background: #e7f8f1;
    font-size: 9px;
    font-style: normal;
    font-weight: 800;
}
.room-price-top del {
    margin-top: 7px;
    color: #8d9bae;
    font-size: 11px;
}
.room-price-top small {
    margin-top: 5px;
    color: #73839a;
    font-size: 9px;
}
.room-price-top strong {
    margin-top: 1px;
    color: #0d367f;
    font-size: 25px;
    font-weight: 780;
    letter-spacing: -.025em;
}
.room-price-top span {
    color: #75849a;
    font-size: 9px;
}
.room-price-notes {
    display: grid;
    margin: 13px 0;
    gap: 7px;
}
.room-price-notes span {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 5px;
    color: #62748c;
    font-size: 9px;
}
.room-price-notes i {
    color: var(--hotel-teal);
}
.room-price-notes .is-urgent {
    color: #a83c4a;
}
.room-price-notes .is-urgent i {
    color: #a83c4a;
}
.room-option-card .emt-rate-price > button,
.emt-hotel-page .emt-booking-card > button,
.emt-hotel-page .hotel-mobile-bookbar button {
    width: 100%;
    min-height: 42px;
    margin-top: auto;
    padding: 10px 13px;
    color: #fff;
    border: 0;
    border-radius: 9px;
    background: linear-gradient(135deg, #2466ed, #164ac5);
    font-size: 11px;
    font-weight: 800;
    box-shadow: 0 8px 18px rgba(23, 92, 211, .2);
}
.room-option-card .emt-rate-price > button:hover,
.emt-hotel-page .emt-booking-card > button:hover:not(:disabled) {
    background: linear-gradient(135deg, #175cd3, #0f3fa9);
}
.room-option-card .emt-rate-price > button.is-selected {
    background: var(--hotel-teal);
    box-shadow: 0 8px 18px rgba(7, 147, 110, .2);
}
.room-price-assurance {
    margin-top: 8px;
    color: #718198;
    font-size: 8px;
    text-align: center;
}
.room-price-assurance i {
    color: var(--hotel-teal);
}
.room-filter-empty {
    display: grid;
    min-height: 170px;
    place-content: center;
    gap: 5px;
    color: #718198;
    text-align: center;
    border: 1px dashed #cbd8e8;
    border-radius: 12px;
    background: #fff;
}
.room-filter-empty[hidden] {
    display: none;
}
.room-filter-empty i {
    color: var(--hotel-brand);
    font-size: 24px;
}
.room-filter-empty strong {
    color: #263e62;
    font-size: 13px;
}
.room-filter-empty span {
    font-size: 10px;
}
.emt-hotel-page .emt-booking-card {
    top: 16px;
    padding: 18px;
}
.emt-hotel-page .emt-booking-top strong {
    color: #0d367f;
}
.emt-hotel-page .emt-booking-card > button:disabled {
    color: #7c899a;
    background: #e4e9f0;
    box-shadow: none;
}
.emt-hotel-page .emt-booking-card li i {
    color: var(--hotel-teal);
}
.emt-hotel-page .hotel-gallery-modal {
    background: rgba(6, 19, 43, .94);
}
@media (max-width: 1120px) {
    .room-option-card.emt-room-card {
        grid-template-columns: 205px minmax(0, 1fr) 205px;
    }
    .room-options-toolbar {
        grid-template-columns: 1fr auto;
    }
    .room-option-sort {
        grid-column: 2;
        grid-row: 1;
    }
    .room-option-filters {
        grid-column: 1 / -1;
    }
}
@media (max-width: 900px) {
    .emt-hotel-page .emt-content-grid {
        grid-template-columns: 1fr;
    }
    .emt-hotel-page .emt-booking-card {
        position: relative;
        top: auto;
    }
    .room-option-card.emt-room-card {
        grid-template-columns: 210px minmax(0, 1fr);
    }
    .room-option-card .emt-rate-price {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto 190px;
        align-items: center;
        gap: 16px;
        border-top: 1px solid #e3eaf3;
        text-align: left;
    }
    .room-price-top {
        align-items: flex-start;
    }
    .room-price-notes {
        margin: 0;
    }
    .room-price-notes span {
        justify-content: flex-start;
    }
    .room-option-card .emt-rate-price > button {
        margin: 0;
    }
    .room-price-assurance {
        display: none;
    }
}
@media (max-width: 767px) {
    .emt-hotel-page .emt-shell {
        width: calc(100% - 20px);
    }
    .emt-hotel-page .emt-main-shell {
        padding-top: 14px;
    }
    .emt-stay-context {
        grid-template-columns: 1fr 1fr;
        padding: 9px;
    }
    .emt-stay-context > div:nth-child(3),
    .emt-stay-context > a {
        grid-column: 1 / -1;
    }
    .emt-stay-context > a {
        min-height: 42px;
    }
    .emt-hotel-page .emt-gallery {
        height: 260px;
    }
    .room-options-toolbar {
        display: flex;
        align-items: stretch;
        flex-direction: column;
    }
    .room-option-filters {
        overflow-x: auto;
    }
    .room-option-filters button {
        flex: 0 0 auto;
    }
    .room-option-sort {
        justify-content: space-between;
    }
    .room-option-sort select {
        flex: 1;
    }
    .room-option-card.emt-room-card {
        display: block;
    }
    .room-option-card .emt-room-photo,
    .room-photo-button img,
    .room-photo-placeholder {
        min-height: 210px;
        height: 210px;
    }
    .room-option-card .emt-room-info {
        padding: 16px;
        border-right: 0;
    }
    .room-card-title-row {
        flex-direction: column;
    }
    .room-inclusion-list {
        grid-template-columns: 1fr;
    }
    .room-option-card .emt-rate-price {
        display: block;
        padding: 16px;
        text-align: left;
        border-top: 1px solid #e3eaf3;
    }
    .room-price-top {
        align-items: flex-start;
    }
    .room-price-notes span {
        justify-content: flex-start;
    }
    .room-option-card .emt-rate-price > button {
        margin-top: 12px;
    }
    .room-price-assurance {
        display: block;
    }
}

/* Hotel review V1 */
.hotel-review-page {
    --review-blue: #175cd3;
    --review-blue-dark: #0e3f9e;
    --review-blue-soft: #eef5ff;
    --review-navy: #102a56;
    --review-teal: #078b69;
    padding: 26px 0 76px;
    color: #233a5e;
    background: #f4f7fb;
}
.hotel-review-shell {
    width: min(1320px, calc(100% - 40px));
    margin: 0 auto;
}
.hotel-review-steps {
    display: grid;
    width: min(800px, 100%);
    margin: 0 auto 28px;
    grid-template-columns: auto 1fr auto 1fr auto;
    align-items: center;
}
.hotel-review-steps > span {
    height: 1px;
    margin: 0 12px;
    background: #cfdbea;
}
.hotel-review-steps > div {
    display: flex;
    align-items: center;
    gap: 9px;
    color: #8a98ac;
}
.hotel-review-steps > div > i {
    display: grid;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    place-items: center;
    border: 1px solid #d2ddea;
    border-radius: 50%;
    background: #fff;
}
.hotel-review-steps > div > span {
    display: flex;
    flex-direction: column;
}
.hotel-review-steps strong {
    font-size: 12px;
    font-weight: 750;
}
.hotel-review-steps small {
    margin-top: 2px;
    font-size: 9px;
}
.hotel-review-steps .is-complete {
    color: var(--review-teal);
}
.hotel-review-steps .is-complete > i {
    color: #fff;
    border-color: var(--review-teal);
    background: var(--review-teal);
}
.hotel-review-steps .is-active {
    color: var(--review-blue);
}
.hotel-review-steps .is-active > i {
    color: #fff;
    border-color: var(--review-blue);
    background: var(--review-blue);
    box-shadow: 0 0 0 6px rgba(23, 92, 211, .1);
}
.hotel-review-heading {
    display: flex;
    margin-bottom: 22px;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
}
.hotel-review-heading > div:first-child > span,
.hotel-review-card-head > div > span,
.hotel-review-summary-head > span {
    color: var(--review-blue);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .09em;
}
.hotel-review-heading h1 {
    margin: 5px 0 5px;
    color: var(--review-navy);
    font-size: 34px;
    font-weight: 740;
    letter-spacing: -.035em;
}
.hotel-review-heading p {
    margin: 0;
    color: #718198;
    font-size: 13px;
}
.hotel-review-verified {
    display: flex;
    padding: 10px 13px;
    align-items: center;
    gap: 9px;
    color: #087558;
    border: 1px solid #b9e6d7;
    border-radius: 11px;
    background: #ecfaf5;
}
.hotel-review-verified > i {
    font-size: 21px;
}
.hotel-review-verified span {
    display: flex;
    flex-direction: column;
}
.hotel-review-verified strong {
    font-size: 11px;
}
.hotel-review-verified small {
    margin-top: 2px;
    font-size: 9px;
}
.hotel-review-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 330px;
    align-items: start;
    gap: 20px;
}
.hotel-review-layout > main {
    display: grid;
    min-width: 0;
    gap: 16px;
}
.hotel-review-card,
.hotel-review-summary {
    border: 1px solid #dce5f0;
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 8px 25px rgba(16, 42, 86, .05);
}
.hotel-review-card {
    padding: 20px;
}
.hotel-review-card-head {
    display: flex;
    margin-bottom: 17px;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}
.hotel-review-card-head h2 {
    margin: 4px 0 0;
    color: var(--review-navy);
    font-size: 20px;
    font-weight: 720;
    line-height: 1.3;
}
.hotel-review-card-head p {
    margin: 4px 0 0;
    color: #718198;
    font-size: 11px;
}
.hotel-review-card-head > a,
.hotel-review-card-head > button {
    display: inline-flex;
    padding: 7px 9px;
    align-items: center;
    gap: 5px;
    color: var(--review-blue);
    border: 1px solid #b9cdf0;
    border-radius: 8px;
    background: #fff;
    font-size: 10px;
    font-weight: 750;
    text-decoration: none;
}
.hotel-stay-review-grid {
    display: grid;
    grid-template-columns: 190px minmax(200px, 1fr) minmax(330px, 1.25fr);
    overflow: hidden;
    border: 1px solid #e0e7f0;
    border-radius: 12px;
}
.hotel-review-image {
    min-height: 170px;
    overflow: hidden;
    background: #edf2f8;
}
.hotel-review-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.hotel-review-image.is-empty {
    display: grid;
    place-items: center;
    color: #8fa0b6;
}
.hotel-review-image.is-empty i {
    font-size: 38px;
}
.hotel-review-property {
    padding: 18px;
}
.hotel-review-stars {
    display: flex;
    gap: 3px;
    color: #6b4ee6;
    font-size: 10px;
}
.hotel-review-property h3 {
    margin: 7px 0 5px;
    color: var(--review-navy);
    font-size: 17px;
    font-weight: 720;
}
.hotel-review-property > p {
    margin: 0;
    color: #718198;
    font-size: 10px;
    line-height: 1.5;
}
.hotel-review-property > p i {
    margin-right: 5px;
    color: var(--review-blue);
}
.hotel-review-trust {
    display: flex;
    margin-top: 15px;
    flex-wrap: wrap;
    gap: 6px;
}
.hotel-review-trust span {
    display: inline-flex;
    padding: 6px 7px;
    align-items: center;
    gap: 5px;
    color: #41607f;
    border-radius: 7px;
    background: #f3f7fc;
    font-size: 9px;
}
.hotel-review-trust i {
    color: var(--review-teal);
}
.hotel-review-dates {
    position: relative;
    display: grid;
    padding: 20px;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 12px;
    border-left: 1px solid #e0e7f0;
    background: #fbfdff;
}
.hotel-review-dates > div {
    display: flex;
    min-width: 0;
    flex-direction: column;
}
.hotel-review-dates small {
    color: #78879b;
    font-size: 9px;
    font-weight: 750;
}
.hotel-review-dates strong {
    margin-top: 5px;
    color: #203a62;
    font-size: 12px;
}
.hotel-review-dates span {
    margin-top: 4px;
    color: #8a98aa;
    font-size: 8px;
}
.hotel-review-dates > i {
    color: var(--review-blue);
}
.hotel-review-dates > b {
    position: absolute;
    right: 16px;
    bottom: 13px;
    padding: 5px 7px;
    color: var(--review-blue);
    border-radius: 6px;
    background: var(--review-blue-soft);
    font-size: 9px;
}
.hotel-review-rate-badge {
    display: inline-flex;
    padding: 6px 8px;
    align-items: center;
    gap: 5px;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 750;
}
.hotel-review-rate-badge.is-refundable {
    color: #087558;
    background: #eaf8f3;
}
.hotel-review-rate-badge.is-restricted {
    color: #a63b49;
    background: #fff0f2;
}
.hotel-room-review-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
}
.hotel-room-review-grid > div {
    display: flex;
    padding: 12px;
    align-items: center;
    gap: 9px;
    border: 1px solid #e1e8f1;
    border-radius: 10px;
    background: #f8fafd;
}
.hotel-room-review-grid > div > i {
    display: grid;
    width: 33px;
    height: 33px;
    flex: 0 0 33px;
    place-items: center;
    color: var(--review-blue);
    border-radius: 8px;
    background: var(--review-blue-soft);
}
.hotel-room-review-grid span {
    display: flex;
    min-width: 0;
    flex-direction: column;
}
.hotel-room-review-grid small {
    color: #8491a3;
    font-size: 8px;
    font-weight: 750;
}
.hotel-room-review-grid strong {
    margin-top: 3px;
    overflow: hidden;
    color: #344b6a;
    font-size: 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.hotel-review-inclusions {
    display: flex;
    margin-top: 13px;
    flex-wrap: wrap;
    gap: 7px;
}
.hotel-review-inclusions span {
    display: inline-flex;
    padding: 6px 8px;
    align-items: center;
    gap: 5px;
    color: #49617f;
    border-radius: 7px;
    background: #f3f7fb;
    font-size: 9px;
}
.hotel-review-inclusions i {
    color: var(--review-teal);
}
.hotel-guest-form {
    display: contents;
}
.hotel-room-guests {
    display: grid;
    gap: 12px;
}
.hotel-lead-guest {
    padding: 15px;
    border: 1px solid #e0e7f0;
    border-radius: 11px;
    background: #fbfdff;
}
.hotel-lead-guest header {
    display: flex;
    margin-bottom: 13px;
    align-items: center;
    gap: 9px;
}
.hotel-lead-guest header > b {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    color: #fff;
    border-radius: 9px;
    background: var(--review-blue);
    font-size: 12px;
}
.hotel-lead-guest header > span {
    display: flex;
    flex-direction: column;
}
.hotel-lead-guest header strong {
    color: #2c4263;
    font-size: 12px;
}
.hotel-lead-guest header small {
    margin-top: 2px;
    color: #7e8c9e;
    font-size: 9px;
}
.hotel-guest-fields {
    display: grid;
    grid-template-columns: 130px 1fr 1fr;
    gap: 10px;
}
.hotel-guest-fields label,
.hotel-contact-fields label {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.hotel-guest-fields label > span,
.hotel-contact-fields label > span {
    color: #52657e;
    font-size: 10px;
    font-weight: 700;
}
.hotel-guest-fields input,
.hotel-guest-fields select,
.hotel-contact-fields input {
    width: 100%;
    height: 42px;
    padding: 0 11px;
    color: #263e60;
    border: 1px solid #d7e1ed;
    border-radius: 9px;
    background: #fff;
    font-size: 11px;
    outline: 0;
}
.hotel-guest-fields input:focus,
.hotel-guest-fields select:focus,
.hotel-contact-fields input:focus,
.hotel-review-card textarea:focus {
    border-color: #76a1ed;
    box-shadow: 0 0 0 3px rgba(23, 92, 211, .1);
}
.hotel-contact-fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.hotel-contact-fields label > div {
    display: flex;
    height: 42px;
    align-items: center;
    overflow: hidden;
    border: 1px solid #d7e1ed;
    border-radius: 9px;
    background: #fff;
}
.hotel-contact-fields label > div:focus-within {
    border-color: #76a1ed;
    box-shadow: 0 0 0 3px rgba(23, 92, 211, .1);
}
.hotel-contact-fields label > div > i,
.hotel-contact-fields label > div > b {
    display: grid;
    height: 100%;
    padding: 0 12px;
    place-items: center;
    color: var(--review-blue);
    border-right: 1px solid #e1e7ef;
    background: #f7faff;
    font-size: 11px;
}
.hotel-contact-fields input {
    height: 100%;
    border: 0;
    border-radius: 0;
    box-shadow: none !important;
}
.hotel-review-card textarea {
    width: 100%;
    padding: 11px;
    resize: vertical;
    color: #263e60;
    border: 1px solid #d7e1ed;
    border-radius: 9px;
    font-size: 11px;
    line-height: 1.5;
    outline: 0;
}
.hotel-cancellation-review > div:last-child {
    display: flex;
    padding: 13px;
    align-items: flex-start;
    gap: 10px;
    border-radius: 10px;
}
.hotel-cancellation-review > div:last-child.is-refundable {
    color: #087558;
    background: #edf9f5;
}
.hotel-cancellation-review > div:last-child.is-restricted {
    color: #973945;
    background: #fff1f2;
}
.hotel-cancellation-review > div:last-child > i {
    margin-top: 2px;
}
.hotel-cancellation-review > div:last-child span {
    display: flex;
    flex-direction: column;
}
.hotel-cancellation-review strong {
    font-size: 11px;
}
.hotel-cancellation-review p {
    margin: 4px 0 0;
    color: #52657e;
    font-size: 10px;
    line-height: 1.5;
}
.hotel-review-consent {
    display: flex;
    padding: 0 3px;
    align-items: flex-start;
    gap: 8px;
    color: #53657c;
    font-size: 10px;
    line-height: 1.45;
}
.hotel-review-consent input {
    width: 15px;
    height: 15px;
    margin-top: 1px;
    flex: 0 0 15px;
    accent-color: var(--review-blue);
}
.hotel-review-summary {
    position: sticky;
    top: 16px;
    overflow: hidden;
}
.hotel-review-summary-head {
    display: flex;
    padding: 18px;
    flex-direction: column;
    border-bottom: 1px solid #e2e8f0;
}
.hotel-review-summary-head > strong {
    margin-top: 5px;
    color: var(--review-navy);
    font-size: 14px;
}
.hotel-review-summary-head > small {
    margin-top: 3px;
    color: #7a899d;
    font-size: 9px;
}
.hotel-review-summary dl {
    display: grid;
    margin: 0;
    padding: 17px 18px;
    gap: 11px;
}
.hotel-review-summary dl > div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    color: #5e7088;
    font-size: 10px;
}
.hotel-review-summary dd {
    margin: 0;
    color: #304664;
    font-weight: 700;
}
.hotel-review-summary dl > .hotel-review-price-change {
    padding-top: 9px;
    color: #5d47b7;
    border-top: 1px dashed #cfc5f3;
}
.hotel-review-summary dl > .hotel-review-price-change dd {
    color: #5d47b7;
    text-decoration: line-through;
}
.hotel-review-total {
    display: flex;
    padding: 15px 18px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border-top: 1px dashed #cbd7e5;
    border-bottom: 1px solid #e2e8f0;
    background: #f8fbff;
}
.hotel-review-total > span {
    display: flex;
    flex-direction: column;
}
.hotel-review-total strong {
    color: #233c61;
    font-size: 12px;
}
.hotel-review-total small {
    margin-top: 2px;
    color: #7a899d;
    font-size: 8px;
}
.hotel-review-total b {
    color: #0d3f9f;
    font-size: 23px;
    letter-spacing: -.025em;
}
.hotel-review-price-lock {
    display: flex;
    margin: 14px 16px 0;
    padding: 11px;
    align-items: flex-start;
    gap: 8px;
    color: #087558;
    border-radius: 9px;
    background: #ecf9f4;
}
.hotel-review-price-lock > i {
    margin-top: 1px;
}
.hotel-review-price-lock > span {
    display: flex;
    flex-direction: column;
}
.hotel-review-price-lock strong {
    font-size: 10px;
}
.hotel-review-price-lock small {
    margin-top: 3px;
    color: #567368;
    font-size: 8px;
    line-height: 1.4;
}
.hotel-review-summary > button {
    width: calc(100% - 32px);
    min-height: 45px;
    margin: 14px 16px 0;
    color: #fff;
    border: 0;
    border-radius: 10px;
    background: linear-gradient(135deg, #2466ed, #164ac5);
    font-size: 11px;
    font-weight: 800;
    box-shadow: 0 9px 20px rgba(23, 92, 211, .2);
}
.hotel-review-summary > button.is-complete {
    background: var(--review-teal);
    box-shadow: 0 9px 20px rgba(7, 139, 105, .18);
}
.hotel-review-form-status {
    min-height: 0;
    margin: 8px 17px 0;
    font-size: 9px;
    line-height: 1.45;
}
.hotel-review-form-status:empty {
    display: none;
}
.hotel-review-form-status.is-error {
    color: #a43c49;
}
.hotel-review-form-status.is-success {
    color: #087558;
}
.hotel-review-summary > ul {
    display: grid;
    margin: 14px 18px 18px;
    padding: 13px 0 0;
    gap: 8px;
    border-top: 1px solid #e4eaf1;
    list-style: none;
}
.hotel-review-summary > ul li {
    color: #687a91;
    font-size: 9px;
}
.hotel-review-summary > ul i {
    margin-right: 7px;
    color: var(--review-teal);
}
.hotel-review-error-page {
    display: grid;
    min-height: 65vh;
    padding: 40px 20px;
    place-items: center;
    background: #f4f7fb;
}
.hotel-review-error-card {
    width: min(560px, 100%);
    padding: 42px 30px;
    text-align: center;
    border: 1px solid #dbe5f0;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(16, 42, 86, .09);
}
.hotel-review-error-card > span {
    display: grid;
    width: 64px;
    height: 64px;
    margin: 0 auto 17px;
    place-items: center;
    color: #a43c49;
    border-radius: 18px;
    background: #fff0f2;
    font-size: 25px;
}
.hotel-review-error-card > small {
    color: var(--review-blue, #175cd3);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .1em;
}
.hotel-review-error-card h1 {
    margin: 8px 0;
    color: #102a56;
    font-size: 27px;
}
.hotel-review-error-card p {
    margin: 0 auto;
    color: #718198;
    font-size: 12px;
    line-height: 1.6;
}
.hotel-review-error-card > div {
    display: flex;
    margin-top: 22px;
    justify-content: center;
    gap: 9px;
}
.hotel-review-error-card button,
.hotel-review-error-card a {
    display: inline-flex;
    min-height: 41px;
    padding: 9px 13px;
    align-items: center;
    gap: 6px;
    color: #175cd3;
    border: 1px solid #b8cdf1;
    border-radius: 9px;
    background: #fff;
    font-size: 10px;
    font-weight: 750;
    text-decoration: none;
}
.hotel-review-error-card a {
    color: #fff;
    border-color: #175cd3;
    background: #175cd3;
}
@media (max-width: 1080px) {
    .hotel-review-layout {
        grid-template-columns: 1fr;
    }
    .hotel-review-summary {
        position: relative;
        top: auto;
    }
    .hotel-stay-review-grid {
        grid-template-columns: 180px 1fr;
    }
    .hotel-review-dates {
        grid-column: 1 / -1;
        border-top: 1px solid #e0e7f0;
        border-left: 0;
    }
}
@media (max-width: 767px) {
    .hotel-review-page {
        padding-top: 18px;
    }
    .hotel-review-shell {
        width: calc(100% - 20px);
    }
    .hotel-review-steps {
        margin-bottom: 22px;
    }
    .hotel-review-steps > div > span {
        display: none;
    }
    .hotel-review-steps > span {
        margin: 0 7px;
    }
    .hotel-review-heading {
        align-items: flex-start;
        flex-direction: column;
    }
    .hotel-review-heading h1 {
        font-size: 28px;
    }
    .hotel-review-card {
        padding: 15px;
    }
    .hotel-review-card-head {
        flex-direction: column;
    }
    .hotel-stay-review-grid {
        display: block;
    }
    .hotel-review-image {
        height: 190px;
    }
    .hotel-review-dates {
        min-height: 150px;
    }
    .hotel-room-review-grid,
    .hotel-contact-fields {
        grid-template-columns: 1fr;
    }
    .hotel-guest-fields {
        grid-template-columns: 1fr;
    }
    .hotel-review-summary {
        margin-bottom: 10px;
    }
}

@media (max-width: 1199.98px) {
    .multicity-itinerary-leg {
        grid-template-columns: minmax(125px, .85fr) minmax(100px, .62fr) minmax(90px, 1fr) minmax(100px, .62fr);
        gap: .52rem;
    }
    .multicity-itinerary-content {
        grid-template-columns: minmax(0, 1fr) 155px;
    }
}

@media (max-width: 767.98px) {
    .multicity-itinerary-head {
        align-items: flex-start;
    }
    .multicity-itinerary-head > div {
        align-items: flex-start;
        flex-direction: column;
        gap: .16rem;
    }
    .multicity-itinerary-head strong i {
        display: none;
    }
    .multicity-itinerary-content {
        grid-template-columns: 1fr;
    }
    .multicity-itinerary-legs {
        padding: 0 .78rem;
    }
    .multicity-itinerary-leg {
        min-height: 0;
        padding: .78rem 0;
        grid-template-columns: minmax(0, 1fr) minmax(82px, auto);
        grid-template-areas:
            "airline airline"
            "departure arrival"
            "route route";
        gap: .5rem .75rem;
    }
    .multicity-itinerary-leg .flight-result-airline {
        grid-area: airline;
    }
    .multicity-leg-time {
        grid-area: departure;
    }
    .multicity-leg-time.is-arrival {
        grid-area: arrival;
    }
    .multicity-leg-route {
        grid-area: route;
    }
    .multicity-itinerary-fare {
        padding: .75rem .8rem;
        align-items: center;
        border-top: 1px solid #e2eaf4;
        border-left: 0;
        text-align: center;
    }
    .multicity-book-form {
        max-width: 230px;
        margin-top: .6rem;
    }
    .multicity-itinerary-meta {
        align-items: flex-start;
        flex-direction: row;
    }
    .multicity-itinerary-meta .fare-details-toggle {
        width: 100%;
        margin: .1rem 0 0;
        justify-content: center;
    }
    .multicity-detail-route {
        grid-template-columns: minmax(65px, auto) minmax(80px, 1fr) minmax(65px, auto);
        gap: .45rem;
    }
}

/* B2B Phase 8 flight checkout */
.saved-traveller-picker {
    display: grid;
    margin: -.05rem 0 .75rem;
    grid-template-columns: minmax(180px, 240px) minmax(220px, 1fr);
    align-items: center;
    gap: .75rem;
}
.saved-traveller-picker > span {
    color: #365170;
    font-size: .74rem;
    font-weight: 650;
}
.saved-traveller-picker > span i {
    margin-right: .35rem;
    color: var(--brand-blue);
}
.saved-traveller-picker select {
    height: 40px;
    padding: 0 2rem 0 .75rem;
    color: #11294a;
    border: 1px solid #cedcef;
    border-radius: 9px;
    background: #f8fbff;
    font-size: .76rem;
}
.traveller-card.is-saved-traveller-filled {
    border-color: #a8c6ff;
    box-shadow: 0 8px 24px rgba(21, 94, 239, .09);
}
.b2b-flight-commercial-card {
    overflow: hidden;
    border: 1px solid #cbdcf3;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(24, 55, 96, .06);
}
.b2b-flight-commercial-card > header {
    display: flex;
    padding: .95rem 1rem;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border-bottom: 1px solid #e1e9f3;
    background: linear-gradient(100deg, #f7fbff, #edf5ff);
}
.b2b-flight-commercial-card > header > div {
    display: flex;
    flex-direction: column;
}
.b2b-flight-commercial-card > header span {
    color: var(--brand-blue);
    font-size: .65rem;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.b2b-flight-commercial-card > header strong {
    margin-top: .18rem;
    color: #0b2348;
    font-size: .95rem;
}
.b2b-flight-commercial-card > header small {
    margin-top: .2rem;
    color: #6d7f98;
    font-size: .7rem;
}
.b2b-flight-commercial-card > header em {
    flex: 0 0 auto;
    padding: .55rem .7rem;
    color: #087b5b;
    border: 1px solid #b6eadc;
    border-radius: 999px;
    background: #effcf7;
    font-size: .72rem;
    font-style: normal;
    font-weight: 700;
}
.b2b-commercial-rule-note {
    display: flex;
    margin: .75rem 1rem 0;
    padding: .58rem .72rem;
    align-items: center;
    gap: .45rem;
    color: #24528f;
    border: 1px solid #d7e6fa;
    border-radius: 9px;
    background: #f5f9ff;
    font-size: .72rem;
}
.b2b-commercial-rule-note strong {
    color: #0c3f91;
}
.b2b-commercial-summary {
    display: grid;
    padding: .85rem 1rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    border-bottom: 1px solid #e5ecf5;
}
.b2b-commercial-summary > span,
.b2b-commercial-summary > label {
    display: flex;
    min-height: 60px;
    padding: .65rem .75rem;
    flex-direction: column;
    justify-content: center;
    border: 1px solid #dce6f2;
    border-radius: 10px;
    background: #fbfdff;
}
.b2b-commercial-summary small {
    color: #71829a;
    font-size: .67rem;
}
.b2b-commercial-summary strong,
.b2b-commercial-summary label > span {
    margin-top: .15rem;
    color: #0d3f9f;
    font-size: 1rem;
    font-weight: 750;
}
.b2b-commercial-summary input {
    width: calc(100% - 20px);
    padding: 0;
    color: inherit;
    border: 0;
    outline: 0;
    background: transparent;
    font: inherit;
}
.b2b-commercial-fields {
    display: grid;
    padding: .9rem 1rem 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}
.b2b-commercial-fields label {
    display: flex;
    flex-direction: column;
    gap: .35rem;
}
.b2b-commercial-fields label.is-wide {
    grid-column: 1 / -1;
}
.b2b-commercial-fields label > span {
    color: #344d6e;
    font-size: .7rem;
    font-weight: 650;
}
.b2b-commercial-fields label > span em {
    color: #8996a9;
    font-style: normal;
    font-weight: 500;
}
.b2b-commercial-fields input,
.b2b-commercial-fields textarea {
    width: 100%;
    padding: .65rem .75rem;
    color: #10294b;
    border: 1px solid #d4e0ef;
    border-radius: 9px;
    outline: 0;
    background: #fbfdff;
    font-size: .75rem;
    resize: vertical;
}
.b2b-commercial-fields input:focus,
.b2b-commercial-fields textarea:focus {
    border-color: #7ba9ff;
    box-shadow: 0 0 0 3px rgba(21, 94, 239, .09);
}
.b2b-flight-payment-methods {
    overflow: hidden;
    border: 1px solid #cbdcf3;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(24, 55, 96, .05);
}
.b2b-flight-payment-methods > header {
    display: flex;
    padding: .9rem 1rem;
    flex-direction: column;
    border-bottom: 1px solid #e2eaf4;
    background: #f8fbff;
}
.b2b-flight-payment-methods > header span {
    color: var(--brand-blue);
    font-size: .62rem;
    font-weight: 750;
    letter-spacing: .08em;
}
.b2b-flight-payment-methods > header strong {
    margin-top: .16rem;
    color: #0b2348;
    font-size: .92rem;
}
.b2b-flight-payment-methods > header small {
    margin-top: .18rem;
    color: #6d7f98;
    font-size: .7rem;
}
.b2b-flight-payment-methods > div {
    display: grid;
    padding: .85rem 1rem 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}
.b2b-flight-payment-methods label,
.b2b-flight-payment-methods button {
    display: flex;
    min-width: 0;
    min-height: 64px;
    padding: .75rem .85rem;
    align-items: center;
    gap: .65rem;
    color: #29405f;
    border: 1px solid #d6e1ef;
    border-radius: 11px;
    background: #fff;
    text-align: left;
}
.b2b-flight-payment-methods label.is-selected {
    border-color: #75a5ff;
    background: #f1f6ff;
    box-shadow: inset 0 0 0 1px #b7d0ff;
}
.b2b-flight-payment-methods label > input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.b2b-flight-payment-methods label > i,
.b2b-flight-payment-methods button > i {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    color: var(--brand-blue);
    border-radius: 9px;
    background: #e7f0ff;
    font-size: 1rem;
}
.b2b-flight-payment-methods label > span,
.b2b-flight-payment-methods button > span {
    display: flex;
    min-width: 0;
    flex: 1;
    flex-direction: column;
}
.b2b-flight-payment-methods label strong,
.b2b-flight-payment-methods button strong {
    color: #132d53;
    font-size: .78rem;
}
.b2b-flight-payment-methods label small,
.b2b-flight-payment-methods button small {
    margin-top: .12rem;
    color: #71829a;
    font-size: .66rem;
}
.b2b-flight-payment-methods label em,
.b2b-flight-payment-methods button em {
    color: #0a8061;
    font-size: .67rem;
    font-style: normal;
    font-weight: 700;
}
.b2b-flight-payment-methods button:disabled {
    opacity: .58;
    cursor: not-allowed;
}
.booking-safety-notice.is-wallet-booking {
    color: #075e49;
    border-color: #aee4d6;
    background: #effcf7;
}
.booking-safety-notice.is-pending-booking {
    color: #075e49;
    border-color: #b6eadc;
    background: #effcf7;
}

@media (max-width: 767.98px) {
    .saved-traveller-picker,
    .b2b-commercial-summary,
    .b2b-commercial-fields {
        grid-template-columns: 1fr;
    }
    .b2b-flight-payment-methods > div {
        grid-template-columns: 1fr;
    }
    .b2b-commercial-fields label.is-wide {
        grid-column: auto;
    }
    .b2b-flight-commercial-card > header {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* Mobile flight results: compact app-style shell. Keep this block last so
   older responsive rules cannot expand the modify form or result cards. */
@media (max-width: 767.98px) {
    .flight-results-page {
        padding: .65rem 0 3rem !important;
    }
    html.roundtrip-flight-results-active .flight-results-page {
        padding-bottom: calc(14rem + env(safe-area-inset-bottom)) !important;
    }
    .flight-results-page > .container {
        padding-right: 12px;
        padding-left: 12px;
    }
    .results-title-row {
        display: block !important;
        margin: 0 0 .55rem !important;
    }
    .results-title-row .section-kicker,
    .results-title-row p {
        display: none !important;
    }
    .results-title-row h1 {
        margin: 0 !important;
        font-size: 1.2rem !important;
        line-height: 1.2;
        letter-spacing: -.025em;
    }
    .flight-listing-modify-panel {
        margin: 0 0 .65rem !important;
        padding: .5rem !important;
        border-radius: 16px !important;
        box-shadow: 0 8px 22px rgba(31, 60, 105, .07) !important;
    }
    .flight-modify-mobile-summary {
        display: grid !important;
        width: 100%;
        min-height: 58px;
        padding: .62rem .68rem;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas: "route action" "meta action";
        align-items: center;
        gap: .18rem .65rem;
        color: #0d2349;
        border: 0;
        border-radius: 12px;
        background: #f6f9fe;
        text-align: left;
        cursor: pointer;
    }
    .flight-modify-mobile-route {
        display: flex;
        min-width: 0;
        grid-area: route;
        align-items: center;
        gap: .42rem;
        font-size: .88rem;
    }
    .flight-modify-mobile-route strong {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .flight-modify-mobile-route i {
        color: #6e7f99;
        font-size: .72rem;
    }
    .flight-modify-mobile-meta {
        overflow: hidden;
        grid-area: meta;
        color: #71819a;
        font-size: .66rem;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .flight-modify-mobile-action {
        display: inline-flex;
        min-height: 34px;
        padding: 0 .62rem;
        grid-area: action;
        align-items: center;
        justify-content: center;
        gap: .32rem;
        color: #155eef;
        border: 1px solid #cbdcff;
        border-radius: 10px;
        background: white;
        font-size: .68rem;
        font-weight: 700;
        white-space: nowrap;
    }
    .flight-listing-modify-panel.is-mobile-collapsed .flight-listing-modify-body {
        display: none !important;
    }
    .flight-listing-modify-panel:not(.is-mobile-collapsed) .flight-modify-mobile-summary {
        margin-bottom: .5rem;
        background: #edf4ff;
    }
    .flight-listing-modify-panel:not(.is-mobile-collapsed) .flight-modify-mobile-action i {
        transform: rotate(180deg);
    }
    .flight-listing-modify-head {
        display: none !important;
    }
    .flight-search-summary-wrap {
        display: none !important;
    }
    .nearby-fare-strip {
        min-height: 68px !important;
        margin-top: 0 !important;
        grid-template-columns: 34px minmax(0, 1fr) 34px !important;
        border-radius: 14px !important;
    }
    .nearby-fare-days {
        display: flex !important;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    .nearby-fare-days::-webkit-scrollbar {
        display: none;
    }
    .nearby-fare-day {
        min-width: 112px;
        flex: 0 0 34%;
        scroll-snap-align: start;
    }
    .nearby-fare-day strong {
        font-size: .74rem !important;
    }
    .nearby-fare-day span {
        font-size: .66rem !important;
    }
    .flight-insight-bar {
        margin-top: .6rem !important;
        border-radius: 14px !important;
    }
    .flight-insight-options,
    .popular-filter-row {
        overflow-x: auto;
        flex-wrap: nowrap !important;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    .flight-insight-options::-webkit-scrollbar,
    .popular-filter-row::-webkit-scrollbar {
        display: none;
    }
    .flight-insight-option {
        min-width: 128px;
        flex: 0 0 auto;
    }
    .flight-results-layout {
        display: block !important;
        margin-top: .65rem !important;
    }
    .flight-filter-sidebar {
        display: none;
    }
    .flight-filter-sidebar.is-mobile-open {
        display: block;
    }
    .flight-results-content {
        min-width: 0;
        width: 100%;
    }
    .flight-result-controls {
        min-height: 50px !important;
        padding: .55rem .7rem !important;
        gap: .55rem;
    }
    .result-count-wrap {
        gap: .4rem;
    }
    .filtered-result-count {
        font-size: .68rem;
    }
    .mobile-filter-toggle {
        display: inline-flex;
    }
    .result-sort {
        min-width: 0;
        overflow: hidden;
    }
    .result-sort > span {
        display: none;
    }
    .result-sort-options {
        display: flex;
        max-width: 100%;
        overflow-x: auto;
        scrollbar-width: none;
    }
    .result-sort-options::-webkit-scrollbar {
        display: none;
    }
    .result-sort-options button {
        min-height: 32px;
        padding: .4rem .52rem;
        font-size: .6rem;
    }
    .flight-result-list {
        padding: .55rem !important;
        gap: .58rem !important;
    }
    .flight-result-card {
        overflow: hidden;
        border-radius: 14px !important;
        box-shadow: 0 5px 16px rgba(31, 60, 105, .06);
    }
    .flight-result-card:hover {
        transform: none;
    }
    .flight-result-main {
        display: grid !important;
        min-height: 0 !important;
        padding: .72rem !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        grid-template-areas:
            "airline fare"
            "schedule schedule" !important;
        align-items: start !important;
        gap: .7rem .6rem !important;
    }
    .flight-result-airline {
        min-width: 0;
        padding: 0 !important;
        grid-area: airline;
        align-self: center;
        gap: .52rem;
    }
    .airline-logo-mark {
        width: 42px;
        height: 42px;
        flex-basis: 42px;
        border-radius: 10px;
    }
    .flight-result-airline strong {
        font-size: .8rem;
    }
    .flight-result-airline > div > span {
        margin-top: .12rem;
        font-size: .64rem;
    }
    .flight-result-airline em {
        margin-top: .18rem;
        padding: .14rem .34rem;
        font-size: .55rem;
    }
    .flight-result-schedule {
        width: 100%;
        padding: .45rem 0 .12rem;
        grid-area: schedule;
        grid-template-columns: minmax(62px, auto) minmax(80px, 1fr) minmax(62px, auto) !important;
        gap: .42rem !important;
        border-top: 1px solid #edf1f6;
    }
    .flight-time-block strong {
        font-size: 1.08rem;
    }
    .flight-time-block span {
        margin-top: .22rem;
        font-size: .7rem;
    }
    .flight-time-block small {
        margin-top: .12rem;
        font-size: .58rem;
    }
    .flight-route-line > span,
    .flight-route-line small {
        font-size: .6rem;
    }
    .flight-route-line > i {
        margin: .38rem 0 .28rem;
    }
    .flight-result-fare {
        min-width: 98px !important;
        padding: 0 !important;
        grid-area: fare;
        align-items: flex-end !important;
        border: 0 !important;
        text-align: right !important;
    }
    .flight-result-fare > span {
        font-size: .56rem;
    }
    .flight-result-fare strong {
        margin-top: .14rem;
        font-size: 1.08rem;
    }
    .flight-result-fare em {
        display: none;
    }
    .select-flight-button {
        min-width: 96px;
        min-height: 34px;
        margin-top: .42rem;
        padding: .42rem .55rem;
        border-radius: 9px;
        font-size: .62rem;
    }
    .view-fares-button > small {
        font-size: .5rem;
    }
    .flight-result-meta {
        min-height: 40px !important;
        padding: .42rem .65rem !important;
        align-items: center !important;
        flex-flow: row nowrap !important;
        gap: .42rem !important;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    .flight-result-meta::-webkit-scrollbar {
        display: none;
    }
    .flight-result-meta > * {
        flex: 0 0 auto;
    }
    .flight-result-meta span {
        font-size: .58rem;
        white-space: nowrap;
    }
    .flight-result-meta .limited-seats {
        margin-left: 0;
    }
    .fare-details-toggle {
        margin-left: 0 !important;
        white-space: nowrap;
    }
}

@media (max-width: 479.98px) {
    .flight-result-main {
        grid-template-columns: 1fr !important;
        grid-template-areas:
            "airline"
            "schedule"
            "fare" !important;
    }
    .flight-result-fare {
        display: grid !important;
        width: 100%;
        min-width: 0 !important;
        padding-top: .5rem !important;
        grid-template-columns: 1fr auto;
        grid-template-areas: "label button" "price button";
        align-items: center !important;
        border-top: 1px solid #edf1f6 !important;
        text-align: left !important;
    }
    .flight-result-fare > span {
        grid-area: label;
    }
    .flight-result-fare strong {
        grid-area: price;
    }
    .flight-result-fare .select-flight-button {
        margin: 0;
        grid-area: button;
    }
}

/* App-like compact flight results on phones and small tablets. */
@media (max-width: 767.98px) {
    .flight-decision-toolbar {
        margin-top: .55rem !important;
        border-radius: 12px !important;
    }

    .flight-quick-tabs {
        grid-auto-columns: minmax(108px, 1fr) !important;
    }

    .flight-quick-tabs button {
        min-height: 50px !important;
        padding: .38rem .46rem !important;
        gap: .34rem !important;
    }

    .flight-quick-tabs button > i {
        font-size: .8rem !important;
    }

    .flight-quick-tabs button > span {
        font-size: .66rem !important;
    }

    .flight-quick-tabs button small {
        margin-top: .08rem !important;
        font-size: .53rem !important;
    }

    .flight-filter-chips {
        min-height: 0 !important;
        padding: .4rem .5rem !important;
        gap: .3rem !important;
    }

    .flight-results-content {
        overflow: visible !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    .flight-result-controls {
        min-height: 48px !important;
        padding: .52rem .66rem !important;
        border: 1px solid #dbe5f0 !important;
        border-radius: 12px !important;
        background: #fff !important;
    }

    .flight-result-list {
        padding: .52rem 0 0 !important;
        gap: .55rem !important;
        background: transparent !important;
    }

    .flight-result-card {
        border-radius: 12px !important;
        box-shadow: 0 4px 12px rgba(31, 60, 105, .045) !important;
    }

    .flight-result-main {
        padding: .66rem !important;
        gap: .55rem !important;
    }

    .view-fares-button {
        width: auto !important;
        min-width: 76px !important;
        min-height: 31px !important;
        margin-top: .24rem !important;
        padding: .34rem .5rem !important;
        border-radius: 8px !important;
        font-size: .62rem !important;
        line-height: 1 !important;
    }

    .view-fares-button > small {
        display: none !important;
    }

    .flight-result-meta {
        display: flex !important;
        min-height: 0 !important;
        padding: .4rem .62rem !important;
        gap: .35rem .45rem !important;
    }

    .flight-result-meta .fare-details-toggle {
        order: -100;
        margin: 0 !important;
        flex: 0 0 auto;
    }

    .flight-result-meta .limited-seats {
        margin-left: 0 !important;
    }
}

@media (max-width: 479.98px) {
    .flight-results-layout {
        margin-inline: 0 !important;
    }

    .flight-result-airline strong {
        font-size: .76rem !important;
    }

    .flight-result-fare {
        min-width: 88px !important;
    }

    .flight-result-fare strong {
        font-size: 1rem !important;
    }

    .flight-result-meta .fare-details-toggle {
        order: -100;
    }
}

/* Final mobile listing polish: compact flight CTA and app-like hotel cards. */
@media (max-width: 767.98px) {
    .view-fares-button {
        min-width: 62px !important;
        min-height: 27px !important;
        margin-top: .12rem !important;
        padding: .25rem .36rem !important;
        border-radius: 7px !important;
        font-size: .55rem !important;
        line-height: 1.05 !important;
        box-shadow: 0 5px 11px rgba(29, 96, 226, .14) !important;
    }

    .hotel-search-results-page,
    .hotel-results-page,
    .hotel-listing-page {
        overflow-x: hidden;
    }

    .hotel-listing-layout,
    .hotel-results-column,
    .hotel-card-list {
        min-width: 0 !important;
    }

    .hotel-results-toolbar,
    .hotel-results-toolbar-v3 {
        min-height: 48px !important;
        padding: .38rem !important;
        border-radius: 12px !important;
        overflow-x: auto !important;
        scrollbar-width: none;
    }

    .hotel-results-toolbar::-webkit-scrollbar,
    .hotel-quick-filters::-webkit-scrollbar,
    .hotel-amenities::-webkit-scrollbar {
        display: none;
    }

    .hotel-quick-filters {
        display: flex !important;
        flex-wrap: nowrap !important;
        gap: .38rem !important;
        overflow-x: auto !important;
        padding-bottom: .15rem !important;
        scrollbar-width: none;
    }

    .hotel-quick-filters > * {
        flex: 0 0 auto !important;
        min-height: 32px !important;
        padding: 0 .7rem !important;
        font-size: .69rem !important;
    }

    .hotel-card-list {
        gap: .62rem !important;
    }

    .hotel-card-list .hotel-list-card {
        display: block !important;
        min-height: 0 !important;
        border-radius: 13px !important;
        box-shadow: 0 4px 14px rgba(24, 57, 98, .05) !important;
    }

    .hotel-card-list .hotel-card-image {
        display: block !important;
        width: 100% !important;
        height: 154px !important;
        min-height: 154px !important;
    }

    .hotel-card-list .hotel-card-image img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    .hotel-card-list .hotel-card-content {
        display: block !important;
        min-height: 0 !important;
    }

    .hotel-card-list .hotel-card-main {
        min-width: 0 !important;
        padding: .7rem .72rem .62rem !important;
    }

    .hotel-card-heading h2 {
        margin: .2rem 0 !important;
        font-size: .96rem !important;
        line-height: 1.25 !important;
    }

    .hotel-card-heading > p {
        display: -webkit-box !important;
        margin: 0 !important;
        overflow: hidden !important;
        color: #687b96 !important;
        font-size: .68rem !important;
        line-height: 1.35 !important;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    .hotel-card-heading .hotel-stars,
    .hotel-card-heading .hotel-badge {
        font-size: .65rem !important;
    }

    .hotel-amenities {
        display: flex !important;
        flex-wrap: nowrap !important;
        gap: .32rem !important;
        margin-top: .5rem !important;
        overflow-x: auto !important;
        scrollbar-width: none;
    }

    .hotel-amenities > * {
        flex: 0 0 auto !important;
        padding: .3rem .42rem !important;
        font-size: .61rem !important;
    }

    .hotel-room-highlight {
        margin-top: .52rem !important;
        padding: .52rem .58rem !important;
        border-radius: 9px !important;
        font-size: .65rem !important;
    }

    .hotel-room-highlight strong {
        font-size: .72rem !important;
    }

    .hotel-card-list .hotel-card-price {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        grid-template-areas:
            "price button"
            "caption button" !important;
        align-items: center !important;
        width: 100% !important;
        min-height: 0 !important;
        padding: .58rem .72rem !important;
        border-top: 1px solid #e7edf4 !important;
        border-left: 0 !important;
        text-align: left !important;
    }

    .hotel-card-price strong {
        grid-area: price;
        margin: 0 !important;
        color: #0d3f92 !important;
        font-size: 1.08rem !important;
        line-height: 1.1 !important;
    }

    .hotel-card-price > small {
        grid-area: caption;
        margin-top: .15rem !important;
        font-size: .58rem !important;
    }

    .hotel-card-price > p,
    .hotel-card-price .hotel-price-note {
        display: none !important;
    }

    .hotel-card-price .b2b-hotel-net-label,
    .hotel-card-price .hotel-offer-label,
    .hotel-card-price > del {
        display: none !important;
    }

    .hotel-view-rooms-button {
        grid-area: button;
        width: auto !important;
        min-width: 88px !important;
        min-height: 34px !important;
        margin: 0 !important;
        padding: 0 .72rem !important;
        border-radius: 8px !important;
        font-size: .68rem !important;
        box-shadow: 0 5px 12px rgba(26, 93, 221, .14) !important;
    }

    .hotel-image-overlay {
        padding: .3rem .46rem !important;
        font-size: .6rem !important;
    }
}

@media (max-width: 479.98px) {
    .hotel-card-list .hotel-card-image {
        height: 142px !important;
        min-height: 142px !important;
    }

    .hotel-card-list .hotel-card-main {
        padding: .62rem !important;
    }
}


/* Hotel listing mobile app experience V11 */
.hotel-mobile-modify-trigger,
.hotel-mobile-search-backdrop,
.hotel-mobile-search-panel-head {
    display: none;
}

.hotel-price-copy {
    display: flex;
    width: 100%;
    min-width: 0;
    align-items: flex-end;
    flex-direction: column;
}
.hotel-price-copy > strong {
    margin: .1rem 0;
    color: var(--ink);
    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1.1;
}
.hotel-price-copy > small {
    color: #8491a5;
    font-size: .62rem;
}
.hotel-price-copy > p {
    margin: .55rem 0;
    color: #61718a;
    font-size: .62rem;
    line-height: 1.45;
}

@media (min-width: 768px) {
    .hotel-mobile-search-panel,
    .hotel-mobile-search-panel-body {
        display: contents;
    }
}

@media (max-width: 767.98px) {
    body.hotel-mobile-search-open {
        overflow: hidden !important;
        overscroll-behavior: none;
        touch-action: pan-x pan-y;
    }

    .hotel-listing-page {
        padding: 10px 0 48px !important;
        background: #f4f7fb !important;
    }

    .hotel-listing-page > .container {
        width: 100% !important;
        max-width: none !important;
        padding-right: 10px !important;
        padding-left: 10px !important;
    }

    /* Collapsed search summary shown by default on phones. */
    .hotel-listing-page .hotel-listing-search-shell {
        position: relative;
        z-index: 42 !important;
        margin: 0 0 10px !important;
        padding: 0 !important;
        overflow: visible !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    .hotel-mobile-modify-trigger {
        display: grid;
        width: 100%;
        min-height: 70px;
        padding: 10px 11px;
        grid-template-columns: 42px minmax(0, 1fr) auto;
        align-items: center;
        gap: 10px;
        color: #122a50;
        border: 1px solid #dbe5f1;
        border-radius: 16px;
        background: #fff;
        box-shadow: 0 8px 24px rgba(26, 54, 94, .07);
        text-align: left;
        -webkit-tap-highlight-color: transparent;
    }

    .hotel-mobile-modify-trigger:active {
        background: #f8fbff;
        transform: scale(.995);
    }

    .hotel-mobile-modify-icon {
        display: grid;
        width: 42px;
        height: 42px;
        place-items: center;
        color: #1d5fe9;
        border-radius: 13px;
        background: #edf4ff;
        font-size: 18px;
    }

    .hotel-mobile-modify-copy {
        display: flex;
        min-width: 0;
        flex-direction: column;
        gap: 3px;
    }

    .hotel-mobile-modify-copy strong {
        overflow: hidden;
        color: #10254a;
        font-size: 15px;
        font-weight: 800;
        line-height: 1.25;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .hotel-mobile-modify-copy small {
        overflow: hidden;
        color: #6f7f97;
        font-size: 11px;
        font-weight: 650;
        line-height: 1.35;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .hotel-mobile-modify-action {
        display: inline-flex;
        min-width: max-content;
        align-items: center;
        gap: 5px;
        color: #175cd3;
        font-size: 11px;
        font-weight: 800;
    }

    .hotel-mobile-modify-action i {
        font-size: 11px;
        transition: transform .2s ease;
    }

    .hotel-mobile-search-backdrop {
        position: fixed;
        z-index: 11990;
        inset: 0;
        display: block;
        visibility: hidden;
        opacity: 0;
        pointer-events: none;
        background: rgba(8, 24, 50, .52);
        backdrop-filter: blur(2px);
        transition: opacity .22s ease, visibility .22s ease;
    }

    .hotel-mobile-search-panel {
        position: fixed;
        z-index: 12000;
        right: 0;
        bottom: -110vh;
        bottom: -110dvh;
        left: 0;
        display: flex;
        max-height: min(90vh, 760px);
        max-height: min(90dvh, 760px);
        visibility: hidden;
        overflow: hidden;
        flex-direction: column;
        border: 1px solid #dbe4ef;
        border-bottom: 0;
        border-radius: 22px 22px 0 0;
        background: #fff;
        box-shadow: 0 -22px 54px rgba(8, 28, 58, .24);
        opacity: 0;
        pointer-events: none;
        transform: none !important;
        transition: bottom .28s cubic-bezier(.22, .72, .22, 1), opacity .2s ease, visibility .28s ease;
    }

    .hotel-listing-page .hotel-listing-search-shell.is-mobile-search-open {
        z-index: 13000 !important;
    }

    .hotel-mobile-search-backdrop.is-open,
    .hotel-listing-search-shell.is-mobile-search-open .hotel-mobile-search-backdrop {
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
    }

    .hotel-mobile-search-panel.is-open,
    .hotel-listing-search-shell.is-mobile-search-open .hotel-mobile-search-panel {
        bottom: 0;
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
        transform: none !important;
    }

    .hotel-listing-search-shell.is-mobile-search-open .hotel-mobile-modify-action i {
        transform: rotate(90deg);
    }

    .hotel-mobile-search-panel-head {
        position: sticky;
        z-index: 5;
        top: 0;
        display: flex;
        min-height: 64px;
        padding: 12px 14px;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        border-bottom: 1px solid #e7edf4;
        background: rgba(255, 255, 255, .98);
        box-shadow: 0 4px 14px rgba(23, 47, 84, .035);
        backdrop-filter: blur(12px);
    }

    .hotel-mobile-search-panel-head > div {
        display: flex;
        flex-direction: column;
        gap: 2px;
    }

    .hotel-mobile-search-panel-head span {
        color: #718198;
        font-size: 10px;
        font-weight: 800;
        letter-spacing: .07em;
        text-transform: uppercase;
    }

    .hotel-mobile-search-panel-head strong {
        color: #10254a;
        font-size: 17px;
        font-weight: 800;
    }

    .hotel-mobile-search-panel-head button {
        display: grid;
        width: 38px;
        height: 38px;
        flex: 0 0 38px;
        place-items: center;
        color: #3f526f;
        border: 1px solid #dce5f0;
        border-radius: 12px;
        background: #f7f9fc;
        font-size: 15px;
    }

    .hotel-mobile-search-panel-body {
        min-height: 0;
        padding: 12px 12px calc(14px + env(safe-area-inset-bottom));
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }

    .hotel-mobile-search-panel .hotel-listing-search-form {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
        gap: 9px !important;
    }

    .hotel-mobile-search-panel .hotel-listing-search-form .hotel-destination-picker,
    .hotel-mobile-search-panel .hotel-listing-search-form .hotel-room-field,
    .hotel-mobile-search-panel .hotel-listing-search-form .hotel-listing-nationality,
    .hotel-mobile-search-panel .hotel-listing-search-form .hotel-modify-inline-button {
        grid-column: 1 / -1 !important;
    }

    .hotel-mobile-search-panel .hotel-listing-search-form .booking-field,
    .hotel-mobile-search-panel .hotel-listing-search-form .hotel-destination-picker > .booking-field {
        height: 66px !important;
        min-height: 66px !important;
        padding: 11px 12px 9px !important;
        justify-content: center;
        border: 1px solid #d9e3ef !important;
        border-radius: 13px !important;
        background: #fff !important;
        box-shadow: none !important;
    }

    .hotel-mobile-search-panel .hotel-listing-search-form .booking-field:focus-within {
        border-color: #7aa4f7 !important;
        box-shadow: 0 0 0 3px rgba(37, 99, 235, .09) !important;
    }

    .hotel-mobile-search-panel .hotel-listing-search-form .booking-field > span:first-child {
        margin: 0 0 6px !important;
        color: #71819a !important;
        font-size: 10px !important;
        font-weight: 800 !important;
        letter-spacing: .045em !important;
        line-height: 1 !important;
    }

    .hotel-mobile-search-panel .hotel-listing-search-form .booking-control {
        min-height: 26px !important;
        gap: 7px !important;
    }

    .hotel-mobile-search-panel .hotel-listing-search-form .booking-control input,
    .hotel-mobile-search-panel .hotel-listing-search-form .booking-control strong,
    .hotel-mobile-search-panel .hotel-listing-search-form .booking-control select {
        color: #10254a !important;
        font-size: 14px !important;
        font-weight: 750 !important;
        line-height: 1.2 !important;
    }

    .hotel-mobile-search-panel .hotel-listing-search-form .booking-control i {
        color: #4e70a5 !important;
        font-size: 14px !important;
    }

    .hotel-mobile-search-panel .hotel-listing-search-form .hotel-modify-inline-button {
        height: 50px !important;
        min-height: 50px !important;
        margin-top: 2px !important;
        border-radius: 13px !important;
        font-size: 14px !important;
        font-weight: 800 !important;
        box-shadow: 0 9px 20px rgba(23, 92, 211, .2) !important;
    }

    .hotel-mobile-search-panel .hotel-destination-suggestions {
        top: calc(100% + 6px) !important;
        width: 100% !important;
        max-width: none !important;
        max-height: min(320px, 44dvh) !important;
        border-radius: 14px !important;
    }

    .hotel-mobile-search-panel .hotel-nationality-menu {
        top: auto !important;
        right: 0;
        bottom: calc(100% + 6px) !important;
        left: 0;
        width: 100%;
        max-height: min(240px, 34dvh);
        overflow-y: auto;
        border-radius: 14px;
        box-shadow: 0 18px 44px rgba(8, 26, 56, .18);
    }

    .hotel-mobile-search-panel .hotel-listing-room-popover,
    .hotel-mobile-search-panel .hotel-listing-calendar {
        position: fixed !important;
        z-index: 12020 !important;
        top: auto !important;
        right: 10px !important;
        bottom: 10px !important;
        left: 10px !important;
        width: auto !important;
        overflow-y: auto !important;
        border-radius: 18px !important;
        box-shadow: 0 22px 60px rgba(8, 26, 56, .27) !important;
    }

    .hotel-mobile-search-panel .hotel-listing-room-popover {
        max-height: min(78vh, 650px) !important;
        max-height: min(78dvh, 650px) !important;
    }

    .hotel-mobile-search-panel .hotel-listing-calendar {
        max-height: min(88vh, 720px) !important;
        max-height: min(88dvh, 720px) !important;
    }

    /* Compact count/filter/sort control below the collapsed search button. */
    .hotel-listing-page .hotel-mobile-toolbar {
        display: flex !important;
        margin: 0 0 10px !important;
        padding: 11px !important;
        align-items: stretch !important;
        flex-direction: column !important;
        gap: 9px !important;
        border: 1px solid #dbe5f0 !important;
        border-radius: 16px !important;
        background: #fff !important;
        box-shadow: 0 7px 22px rgba(25, 54, 94, .055) !important;
    }

    .hotel-result-count-mobile {
        display: inline-flex !important;
        width: 100% !important;
        min-width: 0 !important;
        align-items: center;
        gap: 9px;
    }

    .hotel-result-count-mobile i {
        display: grid;
        width: 34px !important;
        height: 34px !important;
        flex: 0 0 34px !important;
        place-items: center;
        color: #1e60ed;
        border-radius: 11px;
        background: #eef4ff;
        font-size: 14px !important;
    }

    .hotel-result-count-mobile strong {
        overflow: hidden;
        color: #10254a;
        font-size: 13px !important;
        font-weight: 800 !important;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .hotel-mobile-toolbar-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr);
        gap: 8px;
    }

    .hotel-mobile-filter-button,
    .hotel-mobile-sort-control {
        position: relative;
        display: flex !important;
        min-width: 0;
        height: 44px !important;
        padding: 0 12px !important;
        align-items: center;
        justify-content: center;
        gap: 8px !important;
        color: #27466f !important;
        border: 1px solid #d5e0ed !important;
        border-radius: 12px !important;
        background: #f9fbfe !important;
        font-size: 12px !important;
        font-weight: 800 !important;
        line-height: 1 !important;
        -webkit-tap-highlight-color: transparent;
    }

    .hotel-mobile-filter-button i,
    .hotel-mobile-sort-control > i:first-child {
        color: #1e60ed;
        font-size: 14px;
    }

    .hotel-mobile-sort-control > i:last-of-type {
        margin-left: auto;
        color: #71819a;
        font-size: 11px;
    }

    .hotel-mobile-sort-control > span {
        overflow: hidden;
        min-width: 0;
        color: #27466f !important;
        font-size: 12px !important;
        font-weight: 800 !important;
        line-height: 1.2;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .hotel-mobile-sort-control .hotel-sort-select {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        min-width: 0 !important;
        opacity: 0;
        cursor: pointer;
    }

    .hotel-listing-page .hotel-listing-layout {
        margin-top: 0 !important;
    }

    .hotel-listing-page .hotel-quick-filters {
        display: flex !important;
        margin: 0 0 10px !important;
        padding: 0 1px 2px !important;
        flex-wrap: nowrap !important;
        gap: 7px !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        scrollbar-width: none;
        scroll-snap-type: x proximity;
        -webkit-overflow-scrolling: touch;
    }

    .hotel-listing-page .hotel-quick-filters::-webkit-scrollbar {
        display: none;
    }

    .hotel-listing-page .hotel-quick-filters button {
        min-height: 36px !important;
        padding: 0 12px !important;
        flex: 0 0 auto !important;
        border-radius: 999px !important;
        background: #fff !important;
        font-size: 11px !important;
        font-weight: 750 !important;
        scroll-snap-align: start;
        box-shadow: 0 4px 12px rgba(29, 55, 91, .035) !important;
    }

    .hotel-listing-page .hotel-quick-filters button.is-active {
        color: #164fc4 !important;
        border-color: #9fbbf4 !important;
        background: #edf4ff !important;
    }

    /* Natural 16:9 imagery and a compact app-style card body. */
    .hotel-listing-page .hotel-card-list {
        gap: 11px !important;
    }

    .hotel-listing-page .hotel-card-list .hotel-list-card {
        display: block !important;
        min-height: 0 !important;
        overflow: hidden !important;
        border: 1px solid #dbe4ef !important;
        border-radius: 17px !important;
        background: #fff !important;
        box-shadow: 0 7px 22px rgba(22, 51, 91, .065) !important;
        transform: none !important;
    }

    .hotel-listing-page .hotel-card-list .hotel-card-image {
        display: block !important;
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        aspect-ratio: 16 / 9;
        overflow: hidden;
        background-color: #e8eef6;
        background-position: center !important;
        background-size: cover !important;
        image-rendering: auto;
    }

    .hotel-listing-page .hotel-card-image::before {
        background: linear-gradient(180deg, rgba(6, 18, 39, .02) 42%, rgba(6, 18, 39, .44) 100%) !important;
    }

    .hotel-listing-page .hotel-gallery-nav {
        display: none !important;
    }

    .hotel-listing-page .hotel-image-count {
        bottom: 10px !important;
        left: 10px !important;
        min-height: 28px;
        padding: 0 9px !important;
        display: inline-flex;
        align-items: center;
        gap: 5px;
        border: 1px solid rgba(255, 255, 255, .18);
        border-radius: 9px !important;
        background: rgba(10, 25, 51, .78) !important;
        font-size: 10px !important;
        font-weight: 800 !important;
        line-height: 1;
        backdrop-filter: blur(7px);
    }

    .hotel-listing-page .hotel-gallery-progress {
        bottom: 10px !important;
        min-width: 54px;
        min-height: 28px;
        padding: 0 10px !important;
        border-radius: 999px !important;
        background: rgba(10, 25, 51, .74) !important;
        font-size: 11px !important;
        backdrop-filter: blur(7px);
    }

    .hotel-listing-page .hotel-gallery-dots {
        bottom: 13px !important;
    }

    .hotel-listing-page .hotel-wishlist-button {
        top: 10px !important;
        right: 10px !important;
        width: 40px !important;
        height: 40px !important;
        color: #fff !important;
        border: 1px solid rgba(255, 255, 255, .72) !important;
        background: rgba(12, 27, 49, .46) !important;
        box-shadow: 0 6px 16px rgba(0, 0, 0, .16);
        font-size: 18px;
        backdrop-filter: blur(7px);
    }

    .hotel-listing-page .hotel-wishlist-button.is-active {
        color: #e54562 !important;
        background: #fff !important;
    }

    .hotel-listing-page .hotel-card-list .hotel-card-content {
        display: block !important;
        min-height: 0 !important;
    }

    .hotel-listing-page .hotel-card-list .hotel-card-main {
        min-width: 0 !important;
        padding: 13px 13px 12px !important;
    }

    .hotel-listing-page .hotel-card-heading {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: start;
        gap: 10px !important;
    }

    .hotel-listing-page .hotel-card-heading > div:first-child {
        min-width: 0;
    }

    .hotel-listing-page .hotel-smart-badges {
        margin-bottom: 5px;
        flex-wrap: nowrap;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .hotel-listing-page .hotel-smart-badges::-webkit-scrollbar {
        display: none;
    }

    .hotel-listing-page .hotel-smart-badge {
        flex: 0 0 auto;
        padding: 4px 7px;
        font-size: 9px;
    }

    .hotel-listing-page .hotel-star-row {
        gap: 2px !important;
        font-size: 11px !important;
    }

    .hotel-listing-page .hotel-card-heading h2 {
        display: -webkit-box;
        margin: 5px 0 4px !important;
        overflow: hidden;
        color: #0b1f41 !important;
        font-size: 17px !important;
        font-weight: 750 !important;
        letter-spacing: -.018em !important;
        line-height: 1.28 !important;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    .hotel-listing-page .hotel-card-heading p {
        display: -webkit-box;
        margin: 0 !important;
        overflow: hidden;
        color: #687b96 !important;
        font-size: 11px !important;
        line-height: 1.4 !important;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    .hotel-listing-page .hotel-card-heading p i {
        margin-right: 2px;
    }

    .hotel-listing-page .hotel-rating-block {
        display: flex !important;
        align-items: flex-start !important;
        justify-content: flex-end !important;
        text-align: right !important;
    }

    .hotel-listing-page .hotel-rating-block > div {
        display: none !important;
    }

    .hotel-listing-page .hotel-rating-block b {
        display: grid;
        width: 38px !important;
        height: 36px !important;
        place-items: center;
        border-radius: 10px 10px 10px 4px !important;
        font-size: 13px !important;
    }

    .hotel-listing-page .hotel-amenities {
        display: flex !important;
        margin-top: 9px !important;
        padding-bottom: 1px;
        flex-wrap: nowrap !important;
        gap: 6px !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    .hotel-listing-page .hotel-amenities::-webkit-scrollbar {
        display: none;
    }

    .hotel-listing-page .hotel-amenities span {
        min-height: 31px;
        padding: 0 9px !important;
        flex: 0 0 auto !important;
        border: 1px solid #e1e8f1 !important;
        border-radius: 9px !important;
        background: #f8fafc !important;
        color: #4d607c !important;
        font-size: 10.5px !important;
        line-height: 1 !important;
    }

    .hotel-listing-page .hotel-room-highlight {
        display: grid !important;
        margin-top: 10px !important;
        padding: 10px !important;
        grid-template-columns: minmax(0, 1fr);
        align-items: start !important;
        gap: 7px !important;
        border: 1px solid #e1e8f1 !important;
        border-radius: 11px !important;
        background: #f8fafc !important;
    }

    .hotel-listing-page .hotel-room-highlight > div {
        min-width: 0;
        gap: 4px !important;
    }

    .hotel-listing-page .hotel-room-highlight > div:last-child {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: wrap;
        gap: 6px 10px !important;
    }

    .hotel-listing-page .hotel-room-highlight strong {
        display: -webkit-box;
        overflow: hidden;
        color: #203653 !important;
        font-size: 12px !important;
        font-weight: 800 !important;
        line-height: 1.35 !important;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    .hotel-listing-page .hotel-room-highlight span {
        font-size: 10.5px !important;
        line-height: 1.3 !important;
    }

    .hotel-listing-page .hotel-card-list .hotel-card-price {
        display: grid !important;
        width: 100% !important;
        min-height: 66px !important;
        padding: 10px 12px !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        align-items: center !important;
        gap: 12px !important;
        border-top: 1px solid #e4ebf3 !important;
        border-left: 0 !important;
        background: #fbfdff !important;
        text-align: left !important;
    }

    .hotel-listing-page .hotel-price-copy {
        display: grid !important;
        min-width: 0;
        grid-template-columns: auto minmax(0, 1fr);
        align-items: end;
        justify-items: start;
        column-gap: 7px;
        row-gap: 1px;
    }

    .hotel-listing-page .hotel-price-copy .b2b-hotel-net-label {
        grid-column: 1 / -1;
        margin-bottom: 3px;
        font-size: 9px !important;
    }

    .hotel-listing-page .hotel-price-copy .hotel-offer-label {
        grid-column: 1;
        margin: 0 0 3px !important;
        padding: 3px 6px !important;
        border-radius: 6px !important;
        font-size: 9px !important;
        line-height: 1;
    }

    .hotel-listing-page .hotel-price-copy > del {
        grid-column: 2;
        margin: 0 0 4px !important;
        color: #8b98a9 !important;
        font-size: 10px !important;
        line-height: 1;
    }

    .hotel-listing-page .hotel-price-copy > strong {
        grid-column: 1 / -1;
        margin: 0 !important;
        color: #0d3f92 !important;
        font-size: 22px !important;
        font-weight: 850 !important;
        letter-spacing: -.02em;
        line-height: 1.05 !important;
    }

    .hotel-listing-page .hotel-price-copy > small {
        grid-column: 1 / -1;
        margin-top: 2px;
        color: #708097 !important;
        font-size: 9.5px !important;
        font-weight: 650;
        line-height: 1.2;
    }

    .hotel-listing-page .hotel-price-copy > p {
        display: none !important;
    }

    .hotel-listing-page .hotel-view-rooms-button {
        display: inline-flex;
        width: auto !important;
        min-width: 108px !important;
        min-height: 42px !important;
        margin: 0 !important;
        padding: 0 13px !important;
        align-items: center;
        justify-content: center;
        gap: 7px;
        border-radius: 11px !important;
        background: #175cd3 !important;
        font-size: 12px !important;
        font-weight: 800 !important;
        line-height: 1;
        text-decoration: none;
        box-shadow: 0 7px 16px rgba(23, 92, 211, .18) !important;
    }

    .hotel-listing-page .hotel-view-rooms-button i {
        font-size: 12px;
    }

    .hotel-listing-page .hotel-no-results {
        border-radius: 16px;
    }
}

@media (max-width: 389.98px) {
    .hotel-mobile-modify-action {
        font-size: 10px;
    }

    .hotel-mobile-toolbar-actions {
        grid-template-columns: 1fr 1.18fr;
    }

    .hotel-listing-page .hotel-card-heading h2 {
        font-size: 16px !important;
    }

    .hotel-listing-page .hotel-view-rooms-button {
        min-width: 98px !important;
        padding: 0 11px !important;
        font-size: 11px !important;
    }
}

/* Hotel details V7: mobile app-style room discovery (mobile-only) */
.emt-mobile-pagebar,
.emt-mobile-gallery-count,
.emt-mobile-gallery-position {
    display: none;
}

@media (max-width: 767.98px) {
    html { scroll-behavior: smooth; }
    body { overflow-x: hidden; }

    .hotel-details-page.emt-hotel-page {
        padding: 0 0 calc(108px + env(safe-area-inset-bottom, 0px));
        background: #f3f6fb;
    }
    .emt-hotel-page .emt-shell,
    .emt-hotel-page .emt-main-shell { width: 100%; }
    .emt-hotel-page .emt-main-shell { padding: 8px 12px 0; }

    .emt-mobile-pagebar {
        display: flex;
        min-height: 46px;
        margin-bottom: 8px;
        align-items: center;
        justify-content: space-between;
    }
    .emt-mobile-pagebar > a {
        display: inline-flex;
        min-width: 0;
        align-items: center;
        gap: 9px;
        color: #17345f;
        font-size: 14px;
        font-weight: 800;
        text-decoration: none;
    }
    .emt-mobile-pagebar > a i,
    .emt-mobile-pagebar button {
        display: grid;
        width: 38px;
        height: 38px;
        padding: 0;
        flex: 0 0 38px;
        place-items: center;
        color: #174fbd;
        border: 1px solid #d5e1f1;
        border-radius: 12px;
        background: #fff;
        box-shadow: 0 5px 15px rgba(27, 61, 111, .06);
    }
    .emt-mobile-pagebar > div { display: flex; gap: 7px; }
    .emt-mobile-pagebar button.is-active {
        color: #df475a;
        border-color: #f3cbd1;
        background: #fff4f6;
    }
    .emt-hotel-page .emt-breadcrumb { display: none; }

    .emt-hotel-page .emt-hotel-head {
        display: block;
        margin: 0 0 10px;
    }
    .emt-hotel-page .emt-title-wrap { min-width: 0; }
    .emt-hotel-page .emt-star-row {
        display: flex;
        min-height: 28px;
        margin-bottom: 6px;
        align-items: center;
        flex-wrap: wrap;
        gap: 3px;
        font-size: 13px;
    }
    .emt-hotel-page .emt-star-row span {
        margin-left: 7px;
        padding: 5px 9px;
        border-radius: 999px;
        font-size: 9px;
        font-weight: 800;
        line-height: 1;
    }
    .emt-hotel-page .emt-title-wrap h1 {
        margin: 0;
        color: #0b2e62;
        font-size: clamp(22px, 6.4vw, 27px);
        font-weight: 820;
        letter-spacing: -.035em;
        line-height: 1.13;
    }
    .emt-hotel-page .emt-title-wrap > p {
        display: -webkit-box;
        margin: 8px 0 0;
        overflow: hidden;
        color: #64758d;
        font-size: 12px;
        line-height: 1.5;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }
    .emt-hotel-page .emt-title-wrap > p > i { margin-right: 4px; color: #eb5860; }
    .emt-hotel-page .emt-title-wrap > p > a {
        margin-left: 5px;
        color: #0b61c9;
        font-weight: 800;
        white-space: nowrap;
    }
    .emt-hotel-page .emt-head-actions { width: auto; margin-top: 9px; }
    .emt-hotel-page .emt-head-actions > button { display: none; }
    .emt-hotel-page .emt-head-actions:empty { display: none; }
    .emt-hotel-page .emt-rating-card {
        min-height: 38px;
        margin: 0;
        padding: 5px 6px 5px 10px;
        border: 1px solid #d9e8e2;
        border-radius: 11px;
        background: #f1faf6;
    }
    .emt-hotel-page .emt-rating-card span { margin-right: 8px; }
    .emt-hotel-page .emt-rating-card strong { width: 34px; height: 30px; font-size: 11px; }

    .emt-stay-context {
        display: grid;
        min-height: 0;
        margin: 12px 0;
        padding: 7px;
        grid-template-columns: minmax(0, 1.25fr) minmax(0, .9fr);
        gap: 7px;
        border: 1px solid #d9e4f1;
        border-radius: 16px;
        background: #fff;
        box-shadow: 0 7px 20px rgba(25, 57, 105, .055);
    }
    .emt-stay-context > div {
        min-height: 58px;
        padding: 8px 9px;
        gap: 8px;
        border-radius: 12px;
        background: #f6f9fd;
    }
    .emt-stay-context > div:nth-child(2),
    .emt-stay-context > a { display: none; }
    .emt-stay-context > div:nth-child(3) { grid-column: auto; }
    .emt-stay-context > div > i {
        width: 34px;
        height: 34px;
        flex: 0 0 34px;
        border-radius: 10px;
        font-size: 15px;
    }
    .emt-stay-context small {
        font-size: 8px;
        font-weight: 750;
        letter-spacing: .02em;
        text-transform: uppercase;
    }
    .emt-stay-context strong {
        margin-top: 2px;
        font-size: 10px;
        line-height: 1.25;
    }

    .emt-hotel-page .emt-gallery {
        position: relative;
        display: block;
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 10;
        margin: 0;
        overflow: hidden;
        border: 0;
        border-radius: 17px;
        background: #dfe7f1;
        box-shadow: 0 10px 24px rgba(18, 48, 92, .11);
    }
    .emt-hotel-page .emt-gallery-main {
        position: relative;
        display: block;
        width: 100%;
        height: 100%;
        border: 0;
        background-position: center;
        background-size: cover;
    }
    .emt-hotel-page .emt-gallery-main::after {
        position: absolute;
        inset: 55% 0 0;
        background: linear-gradient(180deg, transparent, rgba(7, 24, 51, .5));
        content: "";
        pointer-events: none;
    }
    .emt-hotel-page .emt-gallery-grid { display: none; }
    .emt-mobile-gallery-count,
    .emt-mobile-gallery-position {
        position: absolute;
        z-index: 2;
        bottom: 11px;
        display: inline-flex;
        min-height: 30px;
        padding: 0 10px;
        align-items: center;
        gap: 5px;
        color: #fff;
        border: 1px solid rgba(255, 255, 255, .3);
        border-radius: 999px;
        background: rgba(8, 28, 59, .78);
        font-size: 9px;
        font-weight: 750;
        line-height: 1;
        backdrop-filter: blur(7px);
    }
    .emt-mobile-gallery-count { left: 11px; }
    .emt-mobile-gallery-position { right: 11px; }
    .emt-mobile-gallery-count b { font-weight: 850; }

    .emt-hotel-page .emt-tab-nav {
        position: sticky;
        z-index: 40;
        top: 0;
        display: flex;
        min-height: 50px;
        margin: 11px 0 12px;
        padding: 4px 6px;
        overflow-x: auto;
        align-items: center;
        gap: 3px;
        border: 1px solid #dce5f0;
        border-radius: 14px;
        background: rgba(255, 255, 255, .96);
        box-shadow: 0 7px 20px rgba(22, 50, 93, .07);
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    .emt-hotel-page .emt-tab-nav::-webkit-scrollbar,
    .room-option-filters::-webkit-scrollbar { display: none; }
    .emt-hotel-page .emt-tab-nav a {
        flex: 0 0 auto;
        min-width: max-content;
        padding: 10px 12px;
        color: #566781;
        border: 0;
        border-radius: 10px;
        font-size: 10px;
        font-weight: 800;
        line-height: 1;
        scroll-snap-align: start;
    }
    .emt-hotel-page .emt-tab-nav a[href="#rooms"] {
        order: -5;
        color: #fff;
        background: linear-gradient(135deg, #246af4, #1551d8);
        box-shadow: 0 6px 13px rgba(24, 83, 206, .18);
    }

    .emt-hotel-page .emt-content-grid { display: block; }
    .emt-hotel-page .emt-content-grid > main { display: grid; gap: 12px; }
    .emt-hotel-page #rooms { order: 1; scroll-margin-top: 64px; }
    .emt-hotel-page #overview { order: 2; scroll-margin-top: 64px; }
    .emt-hotel-page #amenities { order: 3; scroll-margin-top: 64px; }
    .emt-hotel-page #policies { order: 4; scroll-margin-top: 64px; }
    .emt-hotel-page #location { order: 5; scroll-margin-top: 64px; }

    .emt-hotel-page .emt-card,
    .emt-hotel-page .emt-room-section {
        margin: 0;
        padding: 15px;
        border: 1px solid #dbe5f0;
        border-radius: 16px;
        background: #fff;
        box-shadow: 0 7px 20px rgba(22, 50, 93, .05);
    }
    .emt-hotel-page .emt-room-section { padding: 0; overflow: hidden; }
    .emt-hotel-page .emt-room-titlebar {
        display: flex;
        min-height: 82px;
        padding: 14px 14px 12px;
        align-items: flex-end;
        justify-content: space-between;
        flex-direction: row;
        gap: 8px;
        border-bottom: 1px solid #e3eaf3;
    }
    .emt-hotel-page .emt-room-titlebar > div:first-child { min-width: 0; }
    .emt-hotel-page .emt-eyebrow { font-size: 9px; letter-spacing: .08em; }
    .emt-hotel-page .emt-room-titlebar h2,
    .emt-hotel-page .emt-section-head h2,
    .emt-hotel-page .emt-overview h2 {
        margin: 4px 0 0;
        color: #102f5f;
        font-size: 19px;
        font-weight: 800;
        letter-spacing: -.025em;
        line-height: 1.2;
    }
    .emt-hotel-page .emt-room-titlebar p {
        margin-top: 4px;
        overflow: hidden;
        font-size: 9px;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .emt-hotel-page .emt-availability {
        flex: 0 0 auto;
        padding: 7px 8px;
        border-radius: 9px;
        font-size: 8px;
        white-space: nowrap;
    }
    .emt-room-results {
        display: grid;
        padding: 10px;
        gap: 11px !important;
        background: #f3f6fa;
    }

    .emt-room-loading {
        position: relative;
        display: grid;
        min-height: 340px;
        padding: 208px 14px 14px;
        align-content: start;
        gap: 9px;
        overflow: hidden;
        border: 1px solid #dce5ef;
        border-radius: 16px;
        background: #fff;
    }
    .emt-room-loading::before {
        position: absolute;
        top: 0;
        right: 0;
        left: 0;
        height: 190px;
        background: linear-gradient(100deg, #e9eef5 18%, #f7f9fc 43%, #e9eef5 68%);
        background-size: 220% 100%;
        content: "";
        animation: emtRoomPulse 1.2s infinite;
    }
    .emt-room-loading span { height: 13px; border-radius: 6px; }
    .emt-room-loading span:nth-child(1) { width: 74%; height: 18px; }
    .emt-room-loading span:nth-child(2) { width: 58%; }
    .emt-room-loading span:nth-child(3) { width: 42%; }
    .emt-room-loading p { margin-top: 2px; color: #6e7f95; font-size: 10px; }

    .room-options-toolbar {
        display: grid;
        padding: 10px;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 9px;
        border: 1px solid #dbe5f0;
        border-radius: 13px;
        background: #fff;
        box-shadow: 0 5px 14px rgba(22, 50, 93, .045);
    }
    .room-options-count { min-width: 0; }
    .room-options-count strong { font-size: 12px; white-space: nowrap; }
    .room-options-count small { display: none; }
    .room-option-sort { width: 154px; grid-column: 2; grid-row: 1; gap: 0; }
    .room-option-sort > span { display: none; }
    .room-option-sort select {
        width: 100%;
        min-width: 0;
        min-height: 36px;
        flex: 0 0 100%;
        padding: 0 29px 0 10px;
        border-radius: 10px;
        font-size: 9px;
    }
    .room-option-filters {
        display: flex;
        grid-column: 1 / -1;
        grid-row: 2;
        width: 100%;
        padding-bottom: 1px;
        overflow-x: auto;
        gap: 6px;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    .room-option-filters button {
        min-height: 34px;
        padding: 7px 10px;
        flex: 0 0 auto;
        border-radius: 999px;
        font-size: 9px;
        white-space: nowrap;
    }

    .room-option-card.emt-room-card {
        display: block;
        min-height: 0;
        overflow: hidden;
        border: 1px solid #d7e2ef;
        border-radius: 17px;
        background: #fff;
        box-shadow: 0 8px 21px rgba(17, 45, 88, .07);
        transform: none;
    }
    .room-option-card.emt-room-card:hover { transform: none; }
    .room-option-card.emt-room-card.is-selected {
        border-color: #2b68e7;
        box-shadow: 0 0 0 2px rgba(36, 102, 237, .12), 0 10px 25px rgba(17, 45, 88, .1);
    }
    .room-option-card .emt-room-photo,
    .room-photo-button,
    .room-photo-button img,
    .room-photo-placeholder {
        width: 100%;
        min-height: 0;
        height: auto;
        aspect-ratio: 16 / 9;
    }
    .room-option-card .emt-room-photo { border: 0; background: #e6edf6; }
    .room-photo-button img { display: block; object-fit: cover; }
    .room-value-badge,
    .room-option-card .emt-room-photo .room-value-badge {
        top: 10px;
        left: 10px;
        padding: 6px 9px;
        border-radius: 999px;
        font-size: 8px;
    }
    .room-photo-count {
        right: 9px;
        bottom: 9px;
        padding: 6px 8px;
        border-radius: 999px;
        font-size: 8px;
    }

    .room-option-card .emt-room-info { padding: 14px; border: 0; background: #fff; }
    .room-card-title-row {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        flex-direction: row;
        gap: 9px;
    }
    .room-card-title-row > div { flex: 1 1 auto; }
    .room-card-title-row small { font-size: 8px; }
    .room-option-card .room-card-title-row h3 {
        margin-top: 3px;
        font-size: 17px;
        font-weight: 800;
        line-height: 1.22;
    }
    .room-policy-badge { padding: 5px 7px; font-size: 8px; white-space: nowrap; }
    .room-feature-chips { margin-top: 10px; gap: 5px; }
    .room-feature-chips span {
        min-height: 29px;
        padding: 5px 7px;
        border-radius: 8px;
        font-size: 8px;
        line-height: 1.2;
    }
    .room-inclusion-list {
        display: grid;
        margin-top: 10px;
        grid-template-columns: 1fr;
        gap: 6px;
    }
    .room-inclusion-list span { font-size: 9px; line-height: 1.35; }
    .room-inclusion-list span:nth-child(n + 4) { display: none; }
    .room-details-toggle {
        display: flex;
        width: 100%;
        min-height: 36px;
        margin-top: 11px;
        padding: 8px 0 0;
        align-items: center;
        justify-content: space-between;
        border-top: 1px solid #edf1f6;
        font-size: 9px;
        text-align: left;
    }
    .room-details-panel { grid-template-columns: 1fr; gap: 7px; }
    .room-details-panel > div { padding: 9px 10px; border-radius: 9px; }

    .room-option-card .emt-rate-price {
        display: grid;
        padding: 12px 14px 13px;
        grid-template-columns: minmax(0, 1fr) 126px;
        align-items: center;
        gap: 7px 10px;
        border-top: 1px solid #e4eaf2;
        background: #fbfdff;
        text-align: left;
    }
    .room-price-top {
        display: flex;
        min-width: 0;
        grid-column: 1;
        grid-row: 1;
        align-items: flex-start;
        flex-direction: column;
    }
    .room-price-top em { padding: 3px 6px; font-size: 8px; }
    .room-price-top del { margin-top: 4px; font-size: 9px; }
    .room-price-top small { margin-top: 2px; font-size: 8px; }
    .room-price-top strong { margin-top: 0; font-size: 22px; font-weight: 850; line-height: 1.08; }
    .room-price-top span { margin-top: 2px; font-size: 8px; }
    .room-price-notes {
        display: flex;
        margin: 0;
        grid-column: 1 / -1;
        grid-row: 2;
        flex-wrap: wrap;
        gap: 5px 10px;
    }
    .room-price-notes span { justify-content: flex-start; font-size: 8px; }
    .room-option-card .emt-rate-price > button {
        width: 126px;
        min-height: 46px;
        margin: 0;
        padding: 9px 10px;
        grid-column: 2;
        grid-row: 1;
        align-self: center;
        border-radius: 12px;
        font-size: 10px;
        white-space: nowrap;
    }
    .room-price-assurance {
        display: block;
        margin-top: 0;
        grid-column: 1 / -1;
        grid-row: 3;
        font-size: 7.5px;
        text-align: left;
    }
    .emt-room-empty,
    .room-filter-empty { min-height: 180px; padding: 28px 17px; border-radius: 15px; }

    .emt-hotel-page .emt-overview { display: block; }
    .emt-hotel-page .emt-overview > div:first-child > p {
        display: -webkit-box;
        margin: 8px 0 0;
        overflow: hidden;
        color: #64758b;
        font-size: 11px;
        line-height: 1.6;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
    }
    .emt-hotel-page .emt-overview-score {
        display: grid;
        width: 100%;
        min-width: 0;
        min-height: 62px;
        margin-top: 12px;
        padding: 10px 12px;
        grid-template-columns: 32px minmax(0, 1fr);
        align-items: center;
        column-gap: 9px;
        border-radius: 12px;
    }
    .emt-hotel-page .emt-overview-score i { grid-row: 1 / span 2; font-size: 21px; }
    .emt-hotel-page .emt-overview-score strong { margin: 0; font-size: 10px; }
    .emt-hotel-page .emt-overview-score small { font-size: 8px; }
    .emt-hotel-page .emt-section-head { align-items: flex-end; gap: 8px; }
    .emt-hotel-page .emt-text-btn { flex: 0 0 auto; font-size: 9px; }
    .emt-hotel-page .emt-amenity-grid {
        display: grid;
        margin-top: 11px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 7px;
    }
    .emt-hotel-page .emt-amenity-grid > div {
        min-height: 46px;
        padding: 8px;
        border-radius: 10px;
        font-size: 9px;
        line-height: 1.35;
    }
    .emt-hotel-page .emt-policy-list { margin-top: 10px; gap: 7px; }
    .emt-hotel-page .emt-policy-list > div,
    .emt-hotel-page .emt-location-box { padding: 10px; border-radius: 10px; }
    .emt-hotel-page .emt-policy-list span,
    .emt-hotel-page .emt-location-box p { font-size: 9px; line-height: 1.45; }
    .emt-hotel-page .emt-policy-list strong,
    .emt-hotel-page .emt-location-box strong { font-size: 10px; }

    .emt-hotel-page .emt-booking-card { display: none; }
    .emt-hotel-page .hotel-mobile-bookbar {
        position: fixed;
        z-index: 1200;
        right: 0;
        bottom: 0;
        left: 0;
        display: grid;
        min-height: 78px;
        padding: 9px 12px calc(9px + env(safe-area-inset-bottom, 0px));
        grid-template-columns: minmax(0, 1fr) 146px;
        align-items: center;
        gap: 10px;
        border-top: 1px solid #dbe4ef;
        background: rgba(255, 255, 255, .98);
        box-shadow: 0 -10px 28px rgba(10, 35, 73, .14);
        backdrop-filter: blur(12px);
    }
    .emt-hotel-page .hotel-mobile-bookbar > div {
        display: flex;
        min-width: 0;
        flex-direction: column;
    }
    .emt-hotel-page .hotel-mobile-bookbar small { color: #75849a; font-size: 8px; font-weight: 650; }
    .emt-hotel-page .hotel-mobile-bookbar strong {
        margin-top: 1px;
        color: #0d367f;
        font-size: 21px;
        font-weight: 850;
        line-height: 1.08;
    }
    .emt-hotel-page .hotel-mobile-bookbar [data-mobile-room-label] {
        display: block;
        max-width: 100%;
        margin-top: 2px;
        overflow: hidden;
        color: #68798f;
        font-size: 8px;
        line-height: 1.2;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .emt-hotel-page .hotel-mobile-bookbar button {
        width: 146px;
        min-width: 0;
        min-height: 49px;
        margin: 0;
        padding: 10px 12px;
        border-radius: 13px;
        font-size: 11px;
        white-space: nowrap;
    }
    .emt-hotel-page .hotel-mobile-bookbar button:disabled {
        color: #7d8999;
        background: #e5eaf1;
        box-shadow: none;
    }
    .emt-hotel-page .hotel-mobile-bookbar.has-selection { border-top-color: #cbdcf5; }
    .emt-hotel-page .hotel-mobile-bookbar.has-selection button {
        background: linear-gradient(135deg, #246af4, #124bc8);
    }

    .hotel-gallery-modal { grid-template-columns: 38px minmax(0, 1fr) 38px; padding: 14px 3px; }
    .hotel-gallery-modal img { max-height: 78vh; border-radius: 10px; }
    .hotel-gallery-modal button { width: 36px; height: 36px; }
}

@media (max-width: 379.98px) {
    .emt-hotel-page .emt-main-shell { padding-inline: 9px; }
    .emt-hotel-page .emt-title-wrap h1 { font-size: 22px; }
    .emt-stay-context { grid-template-columns: 1fr 1fr; }
    .emt-stay-context > div { padding-inline: 7px; }
    .emt-stay-context > div > i { width: 31px; height: 31px; flex-basis: 31px; }
    .emt-stay-context strong { font-size: 9px; }
    .emt-hotel-page .emt-tab-nav a { padding-inline: 10px; }
    .room-option-sort { width: 145px; }
    .room-option-card .emt-rate-price { grid-template-columns: minmax(0, 1fr) 113px; }
    .room-option-card .emt-rate-price > button { width: 113px; padding-inline: 7px; font-size: 9px; }
    .emt-hotel-page .hotel-mobile-bookbar {
        grid-template-columns: minmax(0, 1fr) 132px;
        gap: 8px;
        padding-inline: 9px;
    }
    .emt-hotel-page .hotel-mobile-bookbar button { width: 132px; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
}

/* Flight review app layout v2 — scoped to checkout so existing modules remain unchanged. */
.flight-checkout-page {
    background: #f3f7fc;
}

.flight-checkout-page > .container {
    max-width: 1180px;
}

.flight-checkout-page .checkout-progress {
    max-width: none;
    margin: 0 0 16px;
    padding: 13px 18px;
    gap: 8px;
    border: 1px solid #dce6f3;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(19, 53, 99, .055);
}

.flight-checkout-page .checkout-progress > span {
    display: grid;
    min-width: 0;
    grid-template-columns: 32px minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-items: center;
    justify-content: start;
    column-gap: 9px;
    row-gap: 1px;
    color: #667892;
    text-align: left;
}

.flight-checkout-page .checkout-progress > span::after {
    top: 16px;
    right: -20%;
    width: 40%;
    background: #d9e2ee;
}

.flight-checkout-page .checkout-progress > span.is-complete::after {
    background: #70cdb1;
}

.flight-checkout-page .checkout-progress > span > i {
    width: 32px;
    height: 32px;
    grid-row: 1 / 3;
    font-size: .75rem;
}

.flight-checkout-page .checkout-progress > span > strong {
    overflow: hidden;
    color: #1a3154;
    font-size: .75rem;
    font-weight: 720;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.flight-checkout-page .checkout-progress > span > small {
    overflow: hidden;
    color: #8a97aa;
    font-size: .61rem;
    font-weight: 550;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.flight-checkout-page .checkout-progress > span.is-complete > strong {
    color: #08765d;
}

.flight-checkout-page .checkout-progress > span.is-active > strong {
    color: var(--brand-blue);
}

.flight-checkout-page .checkout-heading {
    margin-bottom: 18px;
    padding: 16px 18px;
    align-items: center;
    border: 1px solid #dce6f3;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(19, 53, 99, .055);
}

.flight-checkout-page .checkout-heading-route {
    min-width: 0;
}

.flight-checkout-page .checkout-heading-route .section-kicker {
    display: block;
    margin-bottom: 6px;
    color: #1b63d9;
    font-size: .66rem;
    font-weight: 760;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.flight-checkout-page .checkout-heading-route > strong {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 9px;
    color: #0d2850;
    font-size: 1.35rem;
    font-weight: 780;
    letter-spacing: -.025em;
}

.flight-checkout-page .checkout-heading-route > strong i {
    color: #1b63df;
    font-size: .82em;
}

.flight-checkout-page .checkout-heading-route > p {
    margin: 5px 0 0;
    color: #718199;
    font-size: .76rem;
}

.flight-checkout-page .review-verified {
    flex: 0 0 auto;
}

.flight-checkout-page .review-itinerary-section.review-itinerary-flat {
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.flight-checkout-page .review-itinerary-flat > .review-itinerary-heading {
    padding: 2px 2px 12px;
    border: 0;
    background: transparent;
}

.flight-checkout-page .review-itinerary-flat > .review-itinerary-heading > div > span {
    color: #1762d7;
}

.flight-checkout-page .review-itinerary-flat > .review-itinerary-heading h2 {
    margin-top: 3px;
    font-size: 1.22rem;
    font-weight: 760;
}

.flight-checkout-page .review-itinerary-flat > .review-journey-list {
    padding: 0;
    gap: 14px;
    background: transparent;
}

.flight-checkout-page .review-journey-card {
    border-color: #d7e3f1;
    border-radius: 16px;
    box-shadow: 0 9px 26px rgba(19, 53, 99, .065);
}

.flight-checkout-page .review-journey-head {
    padding: 14px 16px;
    background: #fff;
}

.flight-checkout-page .review-flight-operator {
    padding: 12px 16px;
    background: #fbfdff;
}

.flight-checkout-page .review-flight-operator > div {
    min-width: 0;
}

.flight-checkout-page .review-flight-operator > div > strong,
.flight-checkout-page .review-flight-operator > div > small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.flight-checkout-page .review-fare-attributes {
    padding: 10px 16px;
}

.flight-checkout-page .review-segment-list {
    padding: 0 16px;
}

.flight-checkout-page .review-segment-airline.is-aircraft-only {
    justify-content: flex-end;
}

.flight-checkout-page .review-segment-airline.is-aircraft-only small {
    margin-left: auto;
}

.flight-checkout-page .review-segment-point,
.flight-checkout-page .review-segment-path {
    min-width: 0;
}

.flight-checkout-page .review-segment-point h4 small {
    overflow-wrap: anywhere;
}

.flight-checkout-page .review-journey-meta {
    padding: 12px 16px;
}

.flight-checkout-page .checkout-form-title {
    padding: 2px 2px 10px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.flight-checkout-page .checkout-form-title-icon {
    display: grid;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    place-items: center;
    color: #155eef !important;
    border: 1px solid #cadcf9;
    border-radius: 12px;
    background: #edf4ff;
    font-size: 1rem !important;
    letter-spacing: 0 !important;
}

.flight-checkout-page .checkout-form-title strong {
    font-size: 1.15rem;
    font-weight: 760;
}

.flight-checkout-page .traveller-card,
.flight-checkout-page .contact-card,
.flight-checkout-page .checkout-summary {
    border-radius: 16px;
    box-shadow: 0 9px 26px rgba(19, 53, 99, .065);
}

@media (max-width: 767.98px) {
    .flight-checkout-page {
        padding: 14px 0 42px !important;
        font-size: 1rem;
        background: #f3f7fc;
    }

    .flight-checkout-page > .container {
        width: calc(100% - 20px);
        max-width: none;
        padding-right: 0;
        padding-left: 0;
    }

    .flight-checkout-page .checkout-progress {
        position: relative;
        display: grid;
        margin-bottom: 12px !important;
        padding: 10px 6px 9px;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 0 !important;
        border-radius: 15px;
    }

    .flight-checkout-page .checkout-progress > span {
        display: flex !important;
        min-width: 0;
        align-items: center;
        justify-content: flex-start !important;
        flex-direction: column;
        gap: 5px;
        text-align: center;
    }

    .flight-checkout-page .checkout-progress > span::after {
        display: block !important;
        top: 15px;
        right: -25%;
        width: 50%;
        height: 1px;
    }

    .flight-checkout-page .checkout-progress > span:last-child::after {
        display: none !important;
    }

    .flight-checkout-page .checkout-progress > span > i {
        width: 30px;
        height: 30px;
        flex: 0 0 30px;
        font-size: .7rem;
    }

    .flight-checkout-page .checkout-progress > span > strong {
        width: 100%;
        font-size: .62rem;
        line-height: 1.1;
    }

    .flight-checkout-page .checkout-progress > span > small {
        display: none;
    }

    .flight-checkout-page .checkout-heading {
        display: grid !important;
        margin-bottom: 16px;
        padding: 14px 15px;
        align-items: center !important;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 12px;
        border-radius: 16px;
    }

    .flight-checkout-page .checkout-heading-route .section-kicker {
        margin-bottom: 5px;
        font-size: .58rem;
    }

    .flight-checkout-page .checkout-heading-route > strong {
        gap: 7px;
        font-size: 1.18rem;
    }

    .flight-checkout-page .checkout-heading-route > p {
        max-width: 100%;
        margin-top: 4px;
        overflow: hidden;
        font-size: .67rem;
        line-height: 1.35;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .flight-checkout-page .review-verified {
        width: 38px;
        height: 38px;
        padding: 0;
        justify-content: center;
        border-radius: 12px;
        font-size: 0;
        white-space: normal;
    }

    .flight-checkout-page .review-verified i {
        margin: 0;
        font-size: 1rem;
    }

    .flight-checkout-page .review-itinerary-flat > .review-itinerary-heading {
        display: grid !important;
        padding: 0 2px 10px !important;
        align-items: end !important;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 10px;
        flex-direction: initial !important;
    }

    .flight-checkout-page .review-itinerary-flat > .review-itinerary-heading > div > span {
        font-size: .6rem;
    }

    .flight-checkout-page .review-itinerary-flat > .review-itinerary-heading h2 {
        margin: 2px 0 0;
        font-size: 1.08rem;
        line-height: 1.2;
    }

    .flight-checkout-page .review-itinerary-flat > .review-itinerary-heading p {
        display: none;
    }

    .flight-checkout-page .review-itinerary-flat > .review-itinerary-heading > strong {
        min-height: 34px;
        padding: 0 10px;
        font-size: .61rem;
    }

    .flight-checkout-page .review-itinerary-flat > .review-journey-list {
        padding: 0 !important;
        gap: 12px;
    }

    .flight-checkout-page .review-journey-card {
        border-radius: 17px;
    }

    .flight-checkout-page .review-journey-head {
        display: grid !important;
        padding: 13px 14px !important;
        align-items: center !important;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 9px;
        flex-direction: initial !important;
    }

    .flight-checkout-page .review-journey-title {
        min-width: 0;
    }

    .flight-checkout-page .review-journey-title > span {
        font-size: .58rem;
    }

    .flight-checkout-page .review-journey-title h3 {
        margin: 3px 0 2px;
        gap: 7px;
        font-size: 1.1rem;
        line-height: 1.15;
    }

    .flight-checkout-page .review-journey-title p {
        overflow: hidden;
        font-size: .64rem;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .flight-checkout-page .review-journey-badges {
        max-width: 124px;
        align-items: flex-end;
        flex-direction: column;
        gap: 5px;
    }

    .flight-checkout-page .review-journey-badges span,
    .flight-checkout-page .review-journey-badges strong {
        max-width: 124px;
        padding: 4px 8px;
        overflow: hidden;
        font-size: .57rem;
        line-height: 1.2;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .flight-checkout-page .review-flight-operator {
        display: grid !important;
        padding: 11px 14px !important;
        grid-template-columns: 44px minmax(0, 1fr) auto;
        align-items: center;
        gap: 10px;
        flex-wrap: nowrap !important;
    }

    .flight-checkout-page .review-airline-logo {
        width: 44px;
        height: 44px;
        flex-basis: 44px;
        border-radius: 12px;
    }

    .flight-checkout-page .review-airline-logo img {
        width: 32px;
        height: 32px;
    }

    .flight-checkout-page .review-flight-operator strong {
        font-size: .8rem;
    }

    .flight-checkout-page .review-flight-operator small {
        font-size: .63rem;
    }

    .flight-checkout-page .review-flight-operator em {
        width: auto !important;
        margin: 0 !important;
        padding: 6px 8px !important;
        border: 0 !important;
        border-radius: 999px;
        background: #eff4fb;
        font-size: .6rem;
    }

    .flight-checkout-page .review-fare-attributes {
        padding: 9px 14px !important;
        overflow-x: auto;
        flex-wrap: nowrap;
        gap: 7px;
        scrollbar-width: none;
    }

    .flight-checkout-page .review-fare-attributes::-webkit-scrollbar,
    .flight-checkout-page .review-journey-meta::-webkit-scrollbar {
        display: none;
    }

    .flight-checkout-page .review-fare-attributes span {
        min-height: 30px;
        flex: 0 0 auto;
        padding: 0 9px;
        border-radius: 999px;
        font-size: .6rem;
    }

    .flight-checkout-page .review-segment-list {
        padding: 0 14px !important;
    }

    .flight-checkout-page .review-segment {
        padding: 13px 0;
    }

    .flight-checkout-page .review-segment-airline {
        margin-bottom: 9px;
        flex-wrap: wrap;
        gap: 4px 8px;
        font-size: .64rem;
    }

    .flight-checkout-page .review-segment-airline.is-aircraft-only {
        margin-bottom: 7px;
        justify-content: flex-start;
    }

    .flight-checkout-page .review-segment-airline.is-aircraft-only small {
        margin-left: 0;
    }

    .flight-checkout-page .review-segment-route {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) 78px minmax(0, 1fr) !important;
        align-items: center;
        gap: 8px !important;
    }

    .flight-checkout-page .review-segment-point strong {
        font-size: 1.35rem;
    }

    .flight-checkout-page .review-segment-point > span {
        margin-top: 4px;
        font-size: .59rem;
        white-space: nowrap;
    }

    .flight-checkout-page .review-segment-point h4 {
        margin: 8px 0 2px;
        font-size: .76rem;
        line-height: 1.22;
    }

    .flight-checkout-page .review-segment-point h4 small {
        display: -webkit-box !important;
        max-height: 2.45em;
        margin: 3px 0 0 !important;
        overflow: hidden;
        font-size: .61rem;
        line-height: 1.22;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    .flight-checkout-page .review-segment-point p {
        font-size: .58rem;
    }

    .flight-checkout-page .review-segment-path {
        display: flex !important;
        padding: 0 !important;
        align-items: center !important;
        border: 0 !important;
        text-align: center !important;
    }

    .flight-checkout-page .review-segment-path > div {
        display: grid !important;
        margin: 7px 0 5px;
    }

    .flight-checkout-page .review-segment-path > span,
    .flight-checkout-page .review-segment-path > small {
        font-size: .58rem;
        line-height: 1.2;
    }

    .flight-checkout-page .review-segment-point.is-arrival {
        text-align: right !important;
    }

    .flight-checkout-page .review-journey-meta {
        padding: 10px 14px !important;
        overflow-x: auto;
        flex-wrap: nowrap;
        gap: 8px;
        white-space: nowrap;
        scrollbar-width: none;
    }

    .flight-checkout-page .review-journey-meta span {
        display: inline-flex;
        min-height: 30px;
        padding: 0 9px;
        align-items: center;
        flex: 0 0 auto;
        border-radius: 999px;
        background: #eff4fb;
        font-size: .61rem;
    }

    .flight-checkout-page .checkout-main-column,
    .flight-checkout-page .checkout-form {
        gap: 14px;
    }

    .flight-checkout-page .checkout-form-title {
        padding: 2px 2px 0 !important;
        align-items: center !important;
        flex-direction: row !important;
    }

    .flight-checkout-page .checkout-form-title-icon {
        width: 38px;
        height: 38px;
        flex-basis: 38px;
        border-radius: 12px;
    }

    .flight-checkout-page .checkout-form-title strong {
        font-size: 1.02rem;
    }

    .flight-checkout-page .checkout-form-title small {
        font-size: .66rem;
    }

    .flight-checkout-page .traveller-card,
    .flight-checkout-page .contact-card,
    .flight-checkout-page .checkout-summary {
        border-radius: 17px;
    }
}

@media (max-width: 359.98px) {
    .flight-checkout-page > .container {
        width: calc(100% - 16px);
    }

    .flight-checkout-page .checkout-progress > span > strong {
        font-size: .56rem;
    }

    .flight-checkout-page .checkout-heading {
        padding: 12px 13px;
    }

    .flight-checkout-page .checkout-heading-route > strong {
        font-size: 1.06rem;
    }

    .flight-checkout-page .review-itinerary-flat > .review-itinerary-heading > strong {
        padding-inline: 8px;
        font-size: .56rem;
    }

    .flight-checkout-page .review-journey-head {
        grid-template-columns: minmax(0, 1fr) 108px;
    }

    .flight-checkout-page .review-journey-badges {
        max-width: 108px;
    }

    .flight-checkout-page .review-journey-badges span,
    .flight-checkout-page .review-journey-badges strong {
        max-width: 108px;
    }

    .flight-checkout-page .review-flight-operator {
        grid-template-columns: 40px minmax(0, 1fr);
    }

    .flight-checkout-page .review-airline-logo {
        width: 40px;
        height: 40px;
    }

    .flight-checkout-page .review-flight-operator em {
        grid-column: 1 / -1;
        justify-self: start;
    }

    .flight-checkout-page .review-segment-route {
        grid-template-columns: minmax(0, 1fr) 64px minmax(0, 1fr) !important;
        gap: 5px !important;
    }

    .flight-checkout-page .review-segment-point strong {
        font-size: 1.18rem;
    }

    .flight-checkout-page .review-segment-point h4 {
        font-size: .7rem;
    }
}

/* On tablet and mobile, keep the app review flow in the same order as the booking journey. */
@media (max-width: 991.98px) {
    .flight-checkout-page .checkout-main-column {
        display: contents;
    }

    .flight-checkout-page .review-itinerary-section {
        order: 1;
    }

    .flight-checkout-page .checkout-summary {
        order: 2;
        width: 100%;
    }

    .flight-checkout-page .checkout-form {
        order: 3;
    }
}
