:root {
    --brand-blue: #155eef;
    --brand-blue-dark: #0f46c8;
    --brand-cyan: #06b6d4;
    --brand-purple: #6d3ce8;
    --brand-green: #12b981;
    --brand-orange: #ff9f0a;
    --ink: #0f1f46;
    --text: #253555;
    --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: #f7faff; -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: relative; z-index: 1050; border-bottom: 1px solid #e8edf4; background: rgba(255,255,255,.98); box-shadow: 0 1px 0 rgba(15,31,70,.025); }
.utility-bar { height: 42px; color: #3d4f70; border-bottom: 1px solid #edf1f6; background: #fff; font-size: .72rem; }
.utility-bar .container { height: 100%; }
.utility-links { display: flex; align-items: center; gap: 1.65rem; }
.utility-links a { text-decoration: none; }
.utility-links a:hover { color: var(--brand-blue); }
.utility-links i { margin-right: .32rem; color: #526789; }
.utility-links .tiny-chevron { margin: 0 0 0 .2rem; font-size: .55rem; }
.utility-login { padding: .38rem .8rem; color: var(--brand-blue); border: 1px solid #9dbcfb; border-radius: 8px; font-weight: 600; }
.utility-login i { color: var(--brand-blue); }
.main-navbar { min-height: 72px; padding: 0; }
.header-brand { display: flex; width: 180px; height: 60px; padding: 0; align-items: center; }
.header-logo-frame { position: relative; display: block; width: 180px; height: 54px; overflow: hidden; }
.header-brand-logo { display: block; width: 180px; max-width: 100%; height: auto; }
.main-navbar .nav-link { position: relative; padding: 1.65rem .8rem !important; color: #132345; font-size: .76rem; font-weight: 600; }
.main-navbar .nav-link:hover, .main-navbar .nav-link.active { color: var(--brand-blue); }
.main-navbar .nav-link.active::after { position: absolute; right: .65rem; bottom: 0; left: .65rem; height: 2px; content: ""; border-radius: 4px 4px 0 0; background: var(--brand-blue); }
.nav-chevron { margin-left: .2rem; font-size: .56rem; }

/* 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(620px, 100%); height: 58px; overflow: hidden; grid-template-columns: repeat(4, 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; }
.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, #1d63f2, #0e49df); box-shadow: 0 8px 18px rgba(21,94,239,.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(21,94,239,.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; }
.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-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; }

/* 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; }
.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) auto; 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; 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); }
.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; }
.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-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; }
.is-roundtrip-results .roundtrip-flight-grid .view-fares-button { display: none; }
.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; }

/* 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; }
.fare-option-rule-note { margin: .55rem .65rem 0; color: #7d8b9f; font-size: .56rem; line-height: 1.4; }
.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, #155eef, #0d49bc); 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: 3.25rem 0 0;
    color: #9fb0cd;
    background:
        radial-gradient(circle at 8% 12%, rgba(21, 94, 239, .24), transparent 27rem),
        radial-gradient(circle at 90% 80%, rgba(6, 182, 212, .1), transparent 24rem),
        #09162f;
}
.site-footer::before {
    position: absolute;
    top: -11rem;
    right: -8rem;
    width: 26rem;
    height: 26rem;
    border: 1px solid rgba(255,255,255,.06);
    border-radius: 50%;
    box-shadow: 0 0 0 4rem rgba(255,255,255,.018), 0 0 0 8rem rgba(255,255,255,.012);
    content: "";
    pointer-events: none;
}
.site-footer .container { position: relative; z-index: 1; }
.footer-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: 1.55rem 1.65rem;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 20px;
    background: linear-gradient(120deg, #155eef 0%, #0f55dd 52%, #087dbd 100%);
    box-shadow: 0 22px 55px rgba(1, 12, 34, .34);
}
.footer-cta-copy { display: flex; align-items: center; gap: 1rem; }
.footer-cta-icon {
    display: grid;
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    place-items: center;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 15px;
    color: white;
    background: rgba(255,255,255,.13);
    font-size: 1.25rem;
    transform: rotate(-8deg);
}
.footer-eyebrow {
    margin: 0 0 .25rem;
    color: #bfeaff;
    font-size: .62rem;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.footer-cta h2 { margin: 0; color: white; font-size: clamp(1.2rem, 2vw, 1.65rem); font-weight: 600; letter-spacing: -.035em; }
.footer-cta-copy > div > p:last-child { margin: .28rem 0 0; color: rgba(255,255,255,.78); font-size: .79rem; }
.footer-cta-action {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    min-width: 150px;
    margin: 0 !important;
    padding: .82rem 1.15rem;
    border: 1px solid rgba(255,255,255,.38);
    border-radius: 12px;
    color: #0e3e9f !important;
    background: white;
    box-shadow: 0 10px 25px rgba(3, 28, 83, .18);
    font-size: .74rem !important;
    font-weight: 600;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease;
}
.footer-cta-action:hover { color: #0e3e9f !important; transform: translateY(-2px); box-shadow: 0 14px 30px rgba(3, 28, 83, .25); }
.footer-content {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1.65fr);
    gap: clamp(3rem, 7vw, 7rem);
    padding: 3.5rem 0 2.7rem;
}
.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; }
.footer-brand { font-size: 1.16rem; }
.footer-intro { max-width: 420px; margin: 1rem 0 1.35rem; color: #9fb0cd; font-size: .79rem; line-height: 1.75; }
.footer-contact-list { display: flex; flex-wrap: wrap; gap: .6rem; }
.footer-contact-list a,
.footer-contact-list span {
    display: inline-flex !important;
    align-items: center;
    gap: .5rem;
    margin: 0 !important;
    padding: .57rem .72rem;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 10px;
    color: #c8d4e8 !important;
    background: rgba(255,255,255,.045);
    font-size: .68rem !important;
}
.footer-contact-list i { color: #42cdf0; font-size: .84rem; }
.footer-nav-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
.footer-heading { margin: 0 0 1.15rem; color: white; font-size: .68rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.footer-column a {
    position: relative;
    display: table !important;
    margin-bottom: .72rem !important;
    color: #9fb0cd !important;
    font-size: .73rem !important;
    text-decoration: none;
    transition: color .2s ease, transform .2s ease;
}
.footer-column a::after {
    position: absolute;
    right: 0;
    bottom: -.15rem;
    left: 0;
    height: 1px;
    background: #35c6e7;
    content: "";
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .2s ease;
}
.footer-column a:hover { color: white !important; transform: translateX(3px); }
.footer-column a:hover::after { transform: scaleX(1); }
.footer-trust-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 1px solid rgba(255,255,255,.09);
    border-bottom: 1px solid rgba(255,255,255,.09);
}
.footer-trust-item {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    padding: 1rem;
    color: #c3d0e4;
    font-size: .71rem;
    font-weight: 600;
}
.footer-trust-item + .footer-trust-item { border-left: 1px solid rgba(255,255,255,.09); }
.footer-trust-item i { color: #42cdf0; font-size: 1rem; }
.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 0;
    color: #788aa9;
    font-size: .66rem;
}

@media (max-width: 991.98px) {
    .footer-content { grid-template-columns: 1fr; gap: 2.5rem; }
    .footer-intro { max-width: 520px; }
}

@media (max-width: 767.98px) {
    .site-footer { padding-top: 2rem; }
    .footer-cta { align-items: flex-start; flex-direction: column; gap: 1.25rem; padding: 1.35rem; }
    .footer-cta-action { width: 100%; }
    .footer-content { padding: 2.7rem 0 2.2rem; }
    .footer-nav-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 2.2rem; }
    .footer-trust-row { grid-template-columns: 1fr; }
    .footer-trust-item { justify-content: flex-start; }
    .footer-trust-item + .footer-trust-item { border-top: 1px solid rgba(255,255,255,.09); border-left: 0; }
    .footer-bottom { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 479.98px) {
    .footer-cta-copy { align-items: flex-start; }
    .footer-cta-icon { flex-basis: 42px; width: 42px; height: 42px; }
    .footer-nav-grid { grid-template-columns: 1fr 1fr; gap: 2rem 1.25rem; }
    .footer-contact-list { align-items: flex-start; flex-direction: column; }
}

/* 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; }

@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, .header-logo-frame { width: 168px; height: 52px; }
    .header-brand-logo { width: 168px; }
    .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: 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; }
    .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-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; }
    .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) {
    .flight-results-page { padding-bottom: 7rem; }
    .flight-search-summary-wrap { position: static; grid-template-columns: minmax(0, 1fr) 76px; 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-flight-grid { grid-template-columns: 1fr; }
    .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; }
    .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 { max-height: calc(100vh - 6rem); overflow-y: auto; grid-template-columns: 1fr; }
    .flight-selection-tray.is-roundtrip > button { width: 100%; min-width: 0; justify-self: stretch; }
    .flight-selection-tray.is-roundtrip .roundtrip-selection-flights { grid-column: auto; overflow-x: auto; grid-template-columns: none; grid-auto-columns: min(84vw, 310px); grid-auto-flow: column; scrollbar-width: none; scroll-snap-type: x proximity; }
    .flight-selection-tray.is-roundtrip .roundtrip-selection-flights::-webkit-scrollbar { display: none; }
    .roundtrip-selected-flight { grid-template-columns: minmax(105px, .85fr) minmax(115px, 1fr) auto; scroll-snap-align: start; }
    .roundtrip-selection-total { min-height: 45px; padding: .45rem .2rem; align-items: center; border-top: 1px solid rgba(255,255,255,.16); border-left: 0; text-align: center; }
    html.roundtrip-flight-results-active .flight-results-page { padding-bottom: 16rem; }
    .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-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-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}
