/* =========================================================================
   Fare On Call — amber + charcoal design system
   -------------------------------------------------------------------------
   Palette is built from the FareOnCall logo: deep charcoal (#181A2E) paired
   with a golden amber (#F2A900). Variable names are kept from the previous
   theme so the recolour cascades site-wide; only the values changed.
   ----------------------------------------------------------------------- */

:root {
    /* "navy" slots repurposed as the brand charcoal (dark surfaces, headings) */
    --c-navy:        #181A2E;
    --c-navy-700:    #24273F;
    /* "blue" slots repurposed as the brand amber (primary actions, accents) */
    --c-blue:        #F2A900;
    --c-blue-500:    #FFB81C;
    --c-blue-100:    #FFF3D6;
    /* "teal" slots repurposed as a deep gold secondary accent */
    --c-teal:        #E0A011;
    --c-teal-100:    #FDF1D6;
    --c-accent:      #FFC94D;
    --c-link:        #B5790B;   /* AA-contrast amber for inline text links */
    --c-text:        #1F2230;
    --c-text-muted:  #6B7180;
    --c-bg:          #FAFAF8;
    --c-surface:     #FFFFFF;
    --c-border:      #ECE8E0;
    --c-danger:      #DC2626;
    --c-success:     #16A34A;

    --shadow-sm:     0 1px 2px rgba(24, 26, 46, 0.06);
    --shadow:        0 4px 16px rgba(24, 26, 46, 0.10);
    --shadow-lg:     0 18px 40px rgba(24, 26, 46, 0.16);

    --radius-sm:     10px;
    --radius:        16px;
    --radius-lg:     26px;
    --radius-pill:   999px;

    --container:     1200px;
    --header-h:      84px;

    --ff-body:       'Inter', 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
    --ff-display:    'Sora', 'Plus Jakarta Sans', 'Inter', 'Segoe UI', Arial, sans-serif;
}

/* Reset & base ---------------------------------------------------------- */

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    margin: 0;
    font-family: var(--ff-body);
    font-size: 16px;
    line-height: 1.55;
    color: var(--c-text);
    background: var(--c-bg);
    -webkit-font-smoothing: antialiased;
}

img, svg { max-width: 100%; display: block; }

a {
    color: var(--c-link);
    text-decoration: none;
    transition: color .15s ease;
}
a:hover { color: var(--c-navy); }

h1, h2, h3, h4, h5 {
    font-family: var(--ff-display);
    color: var(--c-navy);
    line-height: 1.2;
    margin: 0 0 .6em;
    letter-spacing: -0.01em;
}

h1 { font-size: clamp(2rem, 4vw + .5rem, 3.4rem); font-weight: 800; }
h2 { font-size: clamp(1.5rem, 2vw + .5rem, 2.25rem); font-weight: 800; }
h3 { font-size: 1.3rem; font-weight: 700; }
h4 { font-size: 1.1rem; font-weight: 700; }

p { margin: 0 0 1rem; }

.text-muted { color: var(--c-text-muted); }
.text-center { text-align: center; }

.container {
    width: 100%;
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
}

section { padding: 64px 0; }
@media (max-width: 720px) { section { padding: 40px 0; } }

/* Buttons --------------------------------------------------------------- */

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    font-family: var(--ff-display);
    font-weight: 600;
    font-size: 1rem;
    padding: 12px 22px;
    border-radius: var(--radius-pill);
    border: 1px solid transparent;
    cursor: pointer;
    transition: transform .12s ease, box-shadow .15s ease, background .15s ease, color .15s ease, border-color .15s ease;
    white-space: nowrap;
}
.btn:hover { transform: translateY(-1px); }
.btn:focus-visible { outline: 3px solid rgba(242, 169, 0, 0.45); outline-offset: 2px; }

.btn-primary {
    background: linear-gradient(135deg, var(--c-blue-500) 0%, var(--c-blue) 100%);
    color: var(--c-navy);
    box-shadow: var(--shadow);
}
.btn-primary:hover { color: var(--c-navy); box-shadow: var(--shadow-lg); filter: brightness(1.03); }

.btn-secondary {
    background: var(--c-surface);
    color: var(--c-navy);
    border-color: var(--c-border);
}
.btn-secondary:hover { background: var(--c-blue-100); color: var(--c-navy); }

.btn-ghost {
    background: transparent;
    color: var(--c-navy);
}
.btn-ghost:hover { background: rgba(255,255,255,0.18); color: var(--c-navy); }

.btn-block { width: 100%; }
.btn-lg { padding: 16px 28px; font-size: 1.05rem; }

/* Header ---------------------------------------------------------------- */

.site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(255,255,255,0.95);
    -webkit-backdrop-filter: saturate(180%) blur(12px);
    backdrop-filter: saturate(180%) blur(12px);
    border-bottom: 1px solid var(--c-border);
    /* Signature amber top-accent — a quick brand tell that distinguishes the
       header from the previous blue theme. */
    border-top: 3px solid var(--c-blue);
}
.site-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    min-height: var(--header-h);
}

.brand { display: flex; align-items: center; gap: 12px; min-width: 0; }
.brand img { height: 56px; width: auto; max-width: 100%; }

.nav-main { display: flex; align-items: center; gap: 4px; flex-wrap: nowrap; }
.nav-main a {
    font-family: var(--ff-display);
    font-weight: 600;
    color: var(--c-navy);
    padding: 10px 12px;
    border-radius: var(--radius-pill);
    transition: background .15s ease;
    white-space: nowrap;
}
.nav-main a:hover, .nav-main a.active {
    background: var(--c-blue-100);
    color: var(--c-navy);
}

.header-cta {
    display: flex;
    align-items: center;
    gap: 12px;
}
.header-cta .phone {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--ff-display);
    font-weight: 700;
    color: var(--c-navy);
    text-decoration: none;
    border-radius: var(--radius-pill);
    padding: 6px 10px;
    transition: background .15s ease;
}
.header-cta .phone:hover { background: var(--c-blue-100); }
.header-cta .phone .phone-ic {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--c-blue-100);
    color: var(--c-navy);
    flex-shrink: 0;
}
.header-cta .phone-text { display: inline-flex; flex-direction: column; line-height: 1.15; white-space: nowrap; }
.header-cta .phone-text small {
    display: block;
    font-size: .7rem;
    color: var(--c-text-muted);
    font-weight: 500;
    white-space: nowrap;
}

.nav-toggle {
    display: none;
    background: transparent;
    border: 1px solid var(--c-border);
    border-radius: var(--radius-sm);
    padding: 8px 12px;
    cursor: pointer;
}
.nav-toggle span,
.nav-toggle span::before,
.nav-toggle span::after {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--c-navy);
    position: relative;
}
.nav-toggle span::before { content: ''; position: absolute; top: -7px; }
.nav-toggle span::after  { content: ''; position: absolute; top:  7px; }

/* Tight desktop range: nav stays full but phone subtitle + CTA button drop
   to keep the 5 nav items + phone number + logo on a single line. The 64px
   logo is ~340px wide, which leaves only ~780px for nav/phone/button — not
   enough below 1280px. */
@media (max-width: 1280px) and (min-width: 1025px) {
    .header-cta .phone-text small { display: none; }
    .header-cta__btn { display: none; }
    .site-header__inner { gap: 16px; }
}

@media (max-width: 1024px) {
    .nav-toggle { display: inline-flex; }
    .nav-main {
        position: absolute;
        top: var(--header-h);
        left: 0;
        right: 0;
        flex-direction: column;
        align-items: stretch;
        background: var(--c-surface);
        padding: 12px 16px 18px;
        border-bottom: 1px solid var(--c-border);
        box-shadow: var(--shadow);
        display: none;
    }
    .nav-main.is-open { display: flex; }
    .header-cta .phone-text { display: none; }
}
@media (max-width: 560px) {
    .header-cta__btn { display: none; }
    .header-cta .phone { padding: 4px; }
    .brand img { height: 44px; }
    :root { --header-h: 70px; }
}
@media (max-width: 380px) {
    .brand img { height: 38px; }
}

/* Hero ------------------------------------------------------------------ */

.hero {
    position: relative;
    color: #fff;
    overflow: hidden;
    padding: 96px 0 220px;
    background: url('/img/hero.svg') center/cover no-repeat, var(--c-navy);
}
@media (max-width: 720px) {
    .hero { padding: 64px 0 200px; }
}
@media (max-width: 480px) {
    .hero { padding: 48px 0 200px; }
    .hero h1 { font-size: 1.85rem; line-height: 1.18; }
    .hero p.lead { font-size: 1rem; margin-bottom: 1.25rem; }
    .hero .trust-row { gap: 8px 10px; }
    .hero .trust-row span { padding: 6px 10px; font-size: .78rem; }
    .hero .trust-row svg { width: 14px; height: 14px; }
}
.hero::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(24, 26, 46,0.25) 0%, rgba(24, 26, 46,0.6) 100%);
    z-index: 0;
}
.hero .container { position: relative; z-index: 1; }
.hero h1 { color: #fff; max-width: 760px; }
.hero p.lead {
    font-size: 1.2rem;
    color: rgba(255,255,255,0.92);
    max-width: 640px;
    margin-bottom: 2rem;
}
.hero .trust-row {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 24px;
    margin-top: 12px;
}
.hero .trust-row span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--ff-display);
    font-weight: 600;
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.18);
    padding: 8px 14px;
    border-radius: var(--radius-pill);
    font-size: .92rem;
}
.hero .trust-row svg { width: 18px; height: 18px; }

/* Hero with search panel embedded (centered variant) --------------------- */

.hero--centered { padding: 56px 0 72px; text-align: center; overflow: visible; }
.hero--centered .container { display: flex; flex-direction: column; align-items: center; }
.hero--centered h1 { margin: 0 auto 28px; max-width: 900px; font-size: 2.4rem; line-height: 1.18; }
.hero--centered .search-panel-wrap { width: 100%; margin-top: 0; text-align: left; }
@media (max-width: 720px) {
    .hero--centered { padding: 36px 0 48px; }
    .hero--centered h1 { font-size: 1.8rem; margin-bottom: 22px; }
}
@media (max-width: 480px) {
    .hero--centered { padding: 24px 0 36px; }
    .hero--centered h1 { font-size: 1.45rem; line-height: 1.22; margin-bottom: 18px; }
}

/* Search panel overlap (legacy non-centered hero) ----------------------- */

.search-panel-wrap { position: relative; z-index: 2; }
.hero:not(.hero--centered) + .search-panel-wrap,
.search-panel-wrap.search-panel-wrap--overlap { margin-top: -180px; }
@media (max-width: 720px) {
    .hero:not(.hero--centered) + .search-panel-wrap,
    .search-panel-wrap.search-panel-wrap--overlap { margin-top: -160px; }
}

.search-panel {
    background: var(--c-surface);
    border-radius: var(--radius-lg);
    padding: 28px;
    box-shadow: var(--shadow-lg);
    border: 1px solid var(--c-border);
}

.search-tabs {
    display: inline-flex;
    background: var(--c-bg);
    border-radius: var(--radius-pill);
    padding: 4px;
    margin-bottom: 22px;
    gap: 2px;
}
.search-tabs button {
    background: transparent;
    border: 0;
    padding: 9px 18px;
    border-radius: var(--radius-pill);
    font-family: var(--ff-display);
    font-weight: 600;
    color: var(--c-text-muted);
    cursor: pointer;
    transition: all .15s ease;
}
.search-tabs button.is-active {
    background: var(--c-surface);
    color: var(--c-navy);
    box-shadow: var(--shadow-sm);
}

.search-grid {
    display: grid;
    grid-template-columns: 1.2fr 1.2fr 1fr 1fr 1fr;
    gap: 14px;
    align-items: stretch;
}
.search-grid .field { position: relative; }
.search-grid label {
    display: block;
    font-family: var(--ff-display);
    font-size: .75rem;
    font-weight: 700;
    color: var(--c-text-muted);
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-bottom: 6px;
}
.search-grid input,
.search-grid select,
.search-grid .pax-trigger {
    width: 100%;
    border: 1px solid var(--c-border);
    background: var(--c-bg);
    border-radius: var(--radius);
    padding: 14px 14px;
    font-size: 1rem;
    color: var(--c-text);
    font-family: var(--ff-body);
    transition: border-color .15s ease, background .15s ease;
}
.search-grid input:focus,
.search-grid select:focus,
.search-grid .pax-trigger:focus {
    outline: none;
    border-color: var(--c-blue);
    background: #fff;
}

.field--from input, .field--to input {
    padding-left: 42px;
    background-repeat: no-repeat;
    background-position: 14px center;
    background-size: 18px 18px;
}
.field--from input {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23F2A900'><path d='M21 14l-9-7-9 7 1.4 1.4L11 11v9h2v-9l6.6 4.4z' transform='rotate(45 12 12)'/></svg>");
}
.field--to input {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23181A2E'><path d='M21 14l-9-7-9 7 1.4 1.4L11 11v9h2v-9l6.6 4.4z' transform='rotate(135 12 12)'/></svg>");
}
.field--from input:focus, .field--to input:focus { background-color: #fff; }

.search-grid-bottom {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 18px;
}
.search-options {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 22px;
    align-items: center;
}
.checkbox {
    display: inline-flex;
    align-items: flex-start;
    gap: 10px;
    font-family: var(--ff-display);
    font-weight: 600;
    color: var(--c-navy);
    cursor: pointer;
    line-height: 1.45;
}
.checkbox input { accent-color: var(--c-blue); width: 18px; height: 18px; flex-shrink: 0; margin-top: 1px; }

/* Consent line: keep the wording flowing as one sentence beside the box
   (the text + links must live in a single span, not as bare flex children)
   and nudge the box to line up with the first row of text. */
.checkbox--consent { align-items: flex-start; }
.checkbox--consent input { margin-top: 3px; }
.consent-text { font-weight: 500; }
.consent-text a { white-space: nowrap; font-weight: 600; }

.search-submit { min-width: 220px; }

@media (max-width: 1080px) { .search-grid { grid-template-columns: 1fr 1fr 1fr; } }
@media (max-width: 720px)  {
    .search-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
    .search-panel { padding: 20px; }
    .search-submit { width: 100%; min-width: 0; }
    .search-grid-bottom { flex-direction: column; align-items: stretch; }
    .search-grid-bottom .search-options { width: 100%; gap: 12px; }
    .search-grid-bottom .search-options .field { width: 100%; }
    .search-grid-bottom select { width: 100%; }
}
@media (max-width: 480px)  {
    .search-grid { grid-template-columns: 1fr; }
    .search-panel { padding: 16px; }
}

/* Passenger popover ----------------------------------------------------- */

.pax-trigger {
    text-align: left;
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.pax-trigger > span {
    display: inline-block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}
.pax-popover {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;          /* anchor to the right edge of the field so growth is leftward */
    left: auto;
    width: 340px;
    max-width: 90vw;
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
    box-shadow: var(--shadow-lg);
    padding: 18px;
    z-index: 30;
    display: none;
}
.pax-popover.is-open { display: block; }
@media (max-width: 720px) {
    /* On narrow screens, anchor to the field's full width so it never overflows */
    .pax-popover {
        left: 0;
        right: 0;
        width: auto;
        max-width: none;
    }
}
.pax-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 0;
}
.pax-row + .pax-row { border-top: 1px solid var(--c-border); }
.pax-row .label { font-family: var(--ff-display); font-weight: 600; color: var(--c-navy); }
.pax-row .label small { display: block; font-weight: 500; color: var(--c-text-muted); font-size: .8rem; }
.pax-counter {
    display: inline-flex; align-items: center; gap: 8px;
}
.pax-counter button {
    width: 32px; height: 32px;
    border-radius: 50%;
    border: 1px solid var(--c-border);
    background: var(--c-surface);
    color: var(--c-navy);
    font-size: 1.1rem;
    cursor: pointer;
}
.pax-counter button:disabled { opacity: .4; cursor: not-allowed; }
.pax-counter .val { min-width: 22px; text-align: center; font-weight: 700; color: var(--c-navy); }
.pax-popover .pax-done { width: 100%; margin-top: 12px; }

/* Autocomplete --------------------------------------------------------- */

.autocomplete {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    margin: 0;
    padding: 6px;
    list-style: none;
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
    box-shadow: var(--shadow-lg);
    z-index: 40;
    max-height: 380px;
    overflow-y: auto;
    overflow-x: hidden;
    display: none;
    scrollbar-width: thin;
    scrollbar-color: var(--c-border) transparent;
}
.autocomplete.is-open { display: block; animation: ac-pop .15s ease; }
@keyframes ac-pop {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}
.autocomplete::-webkit-scrollbar { width: 8px; }
.autocomplete::-webkit-scrollbar-thumb { background: var(--c-border); border-radius: 8px; }

.ac-item {
    display: grid;
    grid-template-columns: 52px 1fr auto 18px;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 10px;
    cursor: pointer;
    transition: background .12s ease, transform .12s ease;
    border: 1px solid transparent;
}
.ac-item + .ac-item { margin-top: 2px; }
.ac-item:hover,
.ac-item.is-active {
    background: var(--c-blue-100);
    border-color: rgba(242, 169, 0,0.18);
    transform: translateX(2px);
}

.ac-code {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 48px;
    height: 30px;
    padding: 0 8px;
    background: linear-gradient(135deg, var(--c-navy) 0%, var(--c-blue) 100%);
    color: #fff;
    border-radius: 8px;
    font-family: var(--ff-display);
    font-weight: 800;
    font-size: .85rem;
    letter-spacing: .04em;
    box-shadow: 0 2px 6px rgba(24, 26, 46,0.18);
}
.ac-text { display: flex; flex-direction: column; min-width: 0; overflow: hidden; }
.ac-city {
    font-family: var(--ff-display);
    font-weight: 700;
    color: var(--c-navy);
    font-size: .98rem;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ac-name {
    color: var(--c-text-muted);
    font-size: .8rem;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ac-country {
    color: var(--c-text-muted);
    font-size: .8rem;
    font-weight: 600;
    white-space: nowrap;
    max-width: 130px;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ac-icon {
    width: 18px;
    height: 18px;
    color: var(--c-blue);
    opacity: .35;
    transition: opacity .15s ease, transform .25s ease;
}
.ac-item:hover .ac-icon,
.ac-item.is-active .ac-icon { opacity: 1; transform: translateX(3px) rotate(8deg); }

@media (max-width: 480px) {
    .ac-item { grid-template-columns: 44px 1fr auto; }
    .ac-country { display: none; }
    .ac-icon    { display: none; }
}

/* Flatpickr brand theme ------------------------------------------------ */
/* Surgical overrides only — never touch flatpickr's structural sizing/positioning,
   only colours, fonts, and the inner content of cells. */

.flatpickr-calendar {
    border-radius: var(--radius);
    box-shadow: var(--shadow-lg);
    border: 1px solid var(--c-border);
    font-family: var(--ff-body);
    background: var(--c-surface);
    padding: 6px 6px 10px;
    width: 320px;
}
.flatpickr-calendar.arrowTop::before { border-bottom-color: var(--c-border); }
.flatpickr-calendar.arrowTop::after  { border-bottom-color: var(--c-surface); }
.flatpickr-calendar.arrowBottom::before { border-top-color: var(--c-border); }
.flatpickr-calendar.arrowBottom::after  { border-top-color: var(--c-surface); }

/* Header bar -------------------------------------------------------- */
.flatpickr-months .flatpickr-month,
.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month {
    color: var(--c-navy);
    fill: var(--c-navy);
}

.flatpickr-months {
    background: transparent;
    border-radius: var(--radius) var(--radius) 0 0;
    padding-top: 4px;
}

.flatpickr-current-month {
    font-family: var(--ff-display);
    font-weight: 700;
    font-size: 1rem;
    color: var(--c-navy);
}
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year {
    font-family: var(--ff-display);
    font-weight: 700;
    color: var(--c-navy);
    background: transparent;
    font-size: 1rem;
}
.flatpickr-current-month .flatpickr-monthDropdown-months {
    border-radius: 6px;
    padding: 2px 8px 2px 4px;
    transition: background .12s ease;
}
.flatpickr-current-month .flatpickr-monthDropdown-months:hover { background: var(--c-blue-100); }
.flatpickr-current-month .numInputWrapper { width: 5ch; }
.flatpickr-current-month input.cur-year { padding: 0 0 0 4px; }

.flatpickr-prev-month,
.flatpickr-next-month {
    border-radius: 8px;
    transition: background .12s ease;
}
.flatpickr-prev-month svg,
.flatpickr-next-month svg { width: 14px; height: 14px; }
.flatpickr-prev-month:hover,
.flatpickr-next-month:hover {
    background: var(--c-blue-100);
}
.flatpickr-prev-month:hover svg,
.flatpickr-next-month:hover svg { fill: var(--c-navy); }

/* Weekday row ------------------------------------------------------- */
.flatpickr-weekdays { background: transparent; padding: 6px 0 2px; }
span.flatpickr-weekday {
    color: var(--c-text-muted);
    background: transparent;
    font-family: var(--ff-display);
    font-weight: 700;
    text-transform: uppercase;
    font-size: .72rem;
    letter-spacing: .05em;
}

/* Day cells --------------------------------------------------------- */
.flatpickr-day {
    color: var(--c-text);
    border-radius: 10px;
    border-color: transparent;
    font-weight: 500;
    transition: background .12s ease, color .12s ease, transform .1s ease;
}
.flatpickr-day:hover,
.flatpickr-day.prevMonthDay:hover,
.flatpickr-day.nextMonthDay:hover {
    background: var(--c-blue-100);
    color: var(--c-navy);
    border-color: transparent;
}
.flatpickr-day.today {
    border: 1px solid var(--c-blue);
    color: var(--c-blue);
    font-weight: 700;
    background: transparent;
}
.flatpickr-day.today:hover { background: var(--c-blue-100); color: var(--c-blue); }
.flatpickr-day.selected,
.flatpickr-day.selected.inRange,
.flatpickr-day.selected:focus,
.flatpickr-day.selected:hover,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.startRange.endRange {
    background: linear-gradient(135deg, var(--c-blue) 0%, var(--c-navy) 100%);
    color: #fff;
    border-color: transparent;
    box-shadow: 0 4px 10px rgba(24, 26, 46,0.25);
}
.flatpickr-day.inRange,
.flatpickr-day.inRange:hover {
    background: var(--c-blue-100);
    color: var(--c-navy);
    box-shadow: none;
    border-color: transparent;
}
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover,
.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay {
    color: var(--c-text-muted);
    opacity: .42;
}
.flatpickr-day.flatpickr-disabled:hover { background: transparent; cursor: not-allowed; }

/* Year wrapper arrows */
.numInputWrapper span.arrowUp::after { border-bottom-color: var(--c-navy); }
.numInputWrapper span.arrowDown::after { border-top-color: var(--c-navy); }
.numInputWrapper:hover { background: var(--c-blue-100); border-radius: 6px; }

/* Mobile sizing: keep calendar usable on small screens */
@media (max-width: 380px) {
    .flatpickr-calendar { width: calc(100vw - 32px) !important; left: 16px !important; right: 16px !important; }
    .flatpickr-day { max-width: none; }
}

/* USP strip ------------------------------------------------------------- */

.usp-strip { padding: 36px 0; }
.usp-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}
@media (max-width: 880px) { .usp-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .usp-grid { grid-template-columns: 1fr; } }

.usp-card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 18px;
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
}
.usp-card .ic {
    width: 48px; height: 48px;
    border-radius: 12px;
    background: var(--c-blue-100);
    color: var(--c-navy);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.usp-card h4 { margin: 0 0 2px; font-size: 1rem; }
.usp-card p  { margin: 0; font-size: .9rem; color: var(--c-text-muted); }

/* Section heading ------------------------------------------------------- */

.section-head { text-align: center; margin-bottom: 36px; }
.section-head .eyebrow {
    display: inline-block;
    background: var(--c-blue-100);
    color: var(--c-navy);
    padding: 4px 12px;
    border-radius: var(--radius-pill);
    font-family: var(--ff-display);
    font-weight: 700;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-bottom: 12px;
}
.section-head p { color: var(--c-text-muted); max-width: 640px; margin: 0 auto; }

/* Airline strip --------------------------------------------------------- */

.airline-strip {
    background: var(--c-surface);
    border-top: 1px solid var(--c-border);
    border-bottom: 1px solid var(--c-border);
    padding: 28px 0;
}
.airline-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 28px 40px;
    opacity: .9;
}
.airline-row img { max-height: 36px; filter: grayscale(20%); transition: filter .2s ease, transform .2s ease; }
.airline-row img:hover { filter: none; transform: scale(1.06); }

/* Destinations grid ----------------------------------------------------- */

.dest-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}
@media (max-width: 880px) { .dest-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 580px) { .dest-grid { grid-template-columns: 1fr; } }

.dest-card {
    position: relative;
    border-radius: var(--radius-lg);
    overflow: hidden;
    aspect-ratio: 4 / 3;
    box-shadow: var(--shadow);
    color: #fff;
    transition: transform .2s ease, box-shadow .2s ease;
    display: block;
    text-decoration: none;
}
.dest-card:hover { transform: translateY(-4px); color: #fff; box-shadow: var(--shadow-lg); }
.dest-card img {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .4s ease;
}
.dest-card:hover img { transform: scale(1.05); }
.dest-card::after {
    content: '';
    position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(24, 26, 46,0.85) 100%);
}
.dest-card .info {
    position: absolute;
    left: 20px; right: 20px; bottom: 18px;
    z-index: 1;
}
.dest-card h3 { color: #fff; margin: 0 0 4px; font-size: 1.4rem; }
.dest-card .sub { color: rgba(255,255,255,0.85); font-size: .9rem; }
.dest-card .price {
    display: inline-block;
    margin-top: 10px;
    background: rgba(255,255,255,0.18);
    border: 1px solid rgba(255,255,255,0.28);
    color: #fff;
    border-radius: var(--radius-pill);
    padding: 4px 12px;
    font-size: .85rem;
    font-weight: 700;
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}

/* Two-column / why us --------------------------------------------------- */

.why-us-grid {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 56px;
    align-items: center;
}
@media (max-width: 880px) { .why-us-grid { grid-template-columns: 1fr; gap: 32px; } }

.why-us-list { list-style: none; padding: 0; margin: 24px 0 0; display: grid; gap: 12px; }
.why-us-list li {
    display: flex;
    gap: 12px;
    padding: 12px 14px;
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
}
.why-us-list .tick {
    width: 26px; height: 26px;
    background: var(--c-teal-100);
    color: var(--c-teal);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    font-weight: 800;
}
.why-us-list strong { font-family: var(--ff-display); color: var(--c-navy); }
.why-us-list small { display: block; color: var(--c-text-muted); }

.why-us-illustration {
    aspect-ratio: 1 / 1;
    border-radius: 28px;
    background:
        radial-gradient(circle at 30% 30%, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0) 50%),
        linear-gradient(135deg, var(--c-blue) 0%, var(--c-navy) 100%);
    position: relative;
    overflow: hidden;
}
.why-us-illustration::after {
    content: '';
    position: absolute;
    width: 240%; height: 240%;
    left: -70%; top: -70%;
    background:
        radial-gradient(circle, rgba(255,255,255,0.12) 0 2px, transparent 3px) 0 0 / 32px 32px;
}

/* CTA banner ------------------------------------------------------------ */

.cta-banner {
    background: linear-gradient(135deg, var(--c-navy) 0%, var(--c-blue) 100%);
    color: #fff;
    border-radius: var(--radius-lg);
    padding: 36px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    box-shadow: var(--shadow-lg);
}
.cta-banner h3 { color: #fff; margin: 0; max-width: 640px; }
.cta-banner .num { font-family: var(--ff-display); font-weight: 800; font-size: 1.6rem; }

/* Newsletter ------------------------------------------------------------ */

.newsletter {
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--radius-lg);
    padding: 32px;
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 24px;
    align-items: center;
}
@media (max-width: 720px) { .newsletter { grid-template-columns: 1fr; } }
.newsletter h3 { margin: 0 0 6px; }
.newsletter p  { margin: 0; color: var(--c-text-muted); }
.newsletter form { display: flex; gap: 8px; flex-wrap: wrap; }
.newsletter input[type="email"] {
    flex: 1 1 220px;
    min-width: 0;
    border: 1px solid var(--c-border);
    border-radius: var(--radius-pill);
    padding: 12px 18px;
    font-size: 1rem;
    background: var(--c-bg);
}
.newsletter input[type="email"]:focus { outline: none; border-color: var(--c-blue); background: #fff; }

/* Footer ---------------------------------------------------------------- */

.site-footer {
    background: var(--c-navy);
    color: rgba(255,255,255,0.85);
    padding: 56px 0 24px;
    margin-top: 80px;
}
.site-footer h4 { color: #fff; font-family: var(--ff-display); font-size: 1rem; letter-spacing: .04em; text-transform: uppercase; margin: 0 0 18px; }
.site-footer a { color: rgba(255,255,255,0.78); }
.site-footer a:hover { color: #fff; }

.footer-grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
    gap: 36px;
}
@media (max-width: 880px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .footer-grid { grid-template-columns: 1fr; } }

.footer-grid ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.footer-grid p { margin: 0 0 8px; }

.footer-brand img { height: 60px; margin-bottom: 14px; max-width: 100%; }
.footer-brand p   { color: rgba(255,255,255,0.78); font-size: .92rem; }

.footer-pay {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}
.footer-pay span {
    background: rgba(255,255,255,0.1);
    border: 1px solid rgba(255,255,255,0.16);
    border-radius: 6px;
    padding: 6px 10px;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .04em;
}

.footer-social { display: flex; gap: 10px; margin-top: 10px; }
.footer-social a {
    width: 38px; height: 38px;
    display: inline-flex; align-items: center; justify-content: center;
    background: rgba(255,255,255,0.08);
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,0.12);
}
.footer-social a:hover { background: var(--c-blue); border-color: transparent; }
.footer-social svg { width: 18px; height: 18px; }

.footer-bottom {
    border-top: 1px solid rgba(255,255,255,0.12);
    margin-top: 36px;
    padding-top: 20px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 12px;
    color: rgba(255,255,255,0.65);
    font-size: .85rem;
}

/* Generic page hero ----------------------------------------------------- */

.page-hero {
    background: linear-gradient(135deg, var(--c-navy) 0%, var(--c-blue) 100%);
    color: #fff;
    padding: 64px 0 56px;
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
@media (max-width: 720px) {
    .page-hero { padding: 44px 0 36px; }
    .page-hero h1 { font-size: 1.85rem; }
}
.page-hero h1 { color: #fff; margin-bottom: 6px; }
.page-hero p  { color: rgba(255,255,255,0.85); margin: 0; }
.crumbs { font-size: .9rem; color: rgba(255,255,255,0.7); margin-bottom: 10px; }
.crumbs a { color: rgba(255,255,255,0.7); }
.crumbs a:hover { color: #fff; }

/* Booking lookup form -------------------------------------------------- */
.lookup-form { display: flex; flex-direction: column; gap: 16px; padding: 28px; background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.lookup-form .field { display: flex; flex-direction: column; gap: 6px; }
.lookup-form label { font-family: var(--ff-display); font-weight: 700; color: var(--c-navy); font-size: .82rem; letter-spacing: .04em; text-transform: uppercase; }
.lookup-form input { width: 100%; border: 1px solid var(--c-border); background: var(--c-bg); border-radius: var(--radius); padding: 14px; font-size: 1rem; }
.lookup-form input:focus { outline: 2px solid var(--c-blue); outline-offset: 1px; }
.lookup-form .field-error { color: #B91C1C; font-size: .82rem; }
.lookup-form__help { color: var(--c-text-muted); font-size: .9rem; margin: 4px 0 0; text-align: center; }

/* Error / session-expired pages ---------------------------------------- */
.page-hero--error { padding: 96px 0 72px; text-align: center; }
.page-hero--error .crumbs { display: inline-block; }
.page-hero--error .error-code {
    display: inline-block;
    font-family: var(--ff-display);
    font-size: 4rem;
    font-weight: 800;
    color: rgba(255,255,255,0.45);
    margin: 0 0 8px;
    line-height: 1;
}
.page-hero--error h1 { font-size: 2.2rem; }
.error-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    padding: 32px 0;
}
@media (max-width: 720px) {
    .page-hero--error { padding: 56px 0 44px; }
    .page-hero--error .error-code { font-size: 3rem; }
    .page-hero--error h1 { font-size: 1.6rem; }
    .error-actions { flex-direction: column; align-items: stretch; }
}

/* Content article ------------------------------------------------------- */

.prose {
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--radius-lg);
    padding: 36px;
    max-width: 880px;
    margin: 0 auto;
    box-shadow: var(--shadow-sm);
}
@media (max-width: 640px) { .prose { padding: 22px; } }
.prose h2 { margin-top: 1.6em; }
.prose h2:first-child { margin-top: 0; }
.prose ul { padding-left: 1.4em; }
.prose li { margin-bottom: 6px; }

/* Forms ----------------------------------------------------------------- */

.form-card {
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--radius-lg);
    padding: 36px;
    box-shadow: var(--shadow-sm);
}
@media (max-width: 640px) { .form-card { padding: 22px; } }
.form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
@media (max-width: 640px) { .form-grid { grid-template-columns: 1fr; } }
.form-field label {
    display: block;
    font-family: var(--ff-display);
    font-weight: 600;
    color: var(--c-navy);
    margin-bottom: 6px;
    font-size: .9rem;
}
.form-field input,
.form-field select,
.form-field textarea {
    width: 100%;
    border: 1px solid var(--c-border);
    background: var(--c-bg);
    border-radius: var(--radius);
    padding: 12px 14px;
    font-size: 1rem;
    font-family: var(--ff-body);
    color: var(--c-text);
}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
    outline: none;
    border-color: var(--c-blue);
    background: #fff;
}
.form-field textarea { min-height: 140px; resize: vertical; }
.form-field .span-2 { grid-column: span 2; }
.field-validation-error,
.text-danger { color: var(--c-danger); font-size: .85rem; display: block; margin-top: 4px; }

/* Alerts ---------------------------------------------------------------- */

.alert {
    border-radius: var(--radius);
    padding: 14px 16px;
    margin-bottom: 18px;
    font-weight: 500;
}
.alert-success { background: #ECFDF5; color: #065F46; border: 1px solid #A7F3D0; }
.alert-error   { background: #FEF2F2; color: #991B1B; border: 1px solid #FECACA; }

/* Flight enquiry page --------------------------------------------------- */

.enquiry-hero {
    background:
        radial-gradient(circle at 80% -10%, rgba(43,187,192,0.35) 0%, transparent 50%),
        radial-gradient(circle at 0% 110%, rgba(242, 169, 0,0.45) 0%, transparent 55%),
        linear-gradient(135deg, var(--c-navy) 0%, #102D7A 70%, var(--c-blue) 100%);
    color: #fff;
    padding: 72px 0 56px;
}
.enquiry-hero h1 {
    color: #fff;
    margin-bottom: 14px;
    max-width: 820px;
}
.enquiry-hero .hero-accent {
    color: rgba(255,255,255,0.78);
    font-weight: 600;
    display: inline-block;
}
.enquiry-hero__row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
}
.enquiry-hero__pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.18);
    color: #fff;
    border-radius: var(--radius-pill);
    padding: 7px 14px;
    font-family: var(--ff-display);
    font-weight: 600;
    font-size: .85rem;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}

.enquiry-section { padding-top: 56px; padding-bottom: 64px; }

.enquiry-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}
@media (max-width: 980px) { .enquiry-grid { grid-template-columns: 1fr; } }

.enquiry-form-card {
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--radius-lg);
    padding: 36px;
    box-shadow: var(--shadow);
    overflow: hidden;
}
@media (max-width: 640px) { .enquiry-form-card { padding: 24px; } }

.enquiry-form-card__head { margin-bottom: 18px; }
.enquiry-query {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--c-blue-100);
    color: var(--c-navy);
    border: 1px solid rgba(242, 169, 0,0.18);
    border-radius: var(--radius-pill);
    padding: 6px 14px;
    margin-bottom: 18px;
    font-size: .9rem;
}

.enquiry-step {
    border: none;
    padding: 0;
    margin: 0 0 26px;
}
.enquiry-step legend {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--ff-display);
    font-weight: 800;
    color: var(--c-navy);
    font-size: 1.05rem;
    margin-bottom: 14px;
    padding: 0;
}
.step-num {
    width: 28px; height: 28px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--c-blue) 0%, var(--c-navy) 100%);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .85rem;
    font-weight: 800;
    box-shadow: 0 4px 10px rgba(24, 26, 46,0.20);
}

.route-row {
    display: grid;
    grid-template-columns: 1fr 36px 1fr;
    align-items: end;
    gap: 8px;
}
@media (max-width: 560px) {
    .route-row { grid-template-columns: 1fr; }
    .route-arrow { display: none !important; }
}
.route-leg label { display: block; }
.route-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--c-blue);
    padding-bottom: 12px;
}

.input-with-icon {
    position: relative;
}
.input-with-icon svg {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--c-blue);
    pointer-events: none;
}
.input-with-icon input { padding-left: 42px !important; }

.pax-strip {
    display: grid;
    /* Auto-fit ensures cards never clip — each card needs at least 260px,
       otherwise it wraps to the next row. On the enquiry form (constrained
       to ~600px) this naturally stacks to 1 column. */
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 14px;
}
.pax-strip__row {
    background: var(--c-bg);
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
    padding: 14px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-width: 0;
}
.pax-strip__label {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    flex: 1 1 auto;
}
.pax-strip__label > div { min-width: 0; }
.pax-strip__label .ic {
    width: 38px; height: 38px;
    border-radius: 10px;
    background: var(--c-blue-100);
    color: var(--c-navy);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.pax-strip__label strong { display: block; font-family: var(--ff-display); color: var(--c-navy); }
.pax-strip__label small  { display: block; color: var(--c-text-muted); font-size: .8rem; }

.stepper {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fff;
    border: 1px solid var(--c-border);
    border-radius: var(--radius-pill);
    padding: 4px;
}
.stepper button {
    width: 34px; height: 34px;
    border-radius: 50%;
    border: 0;
    background: transparent;
    color: var(--c-navy);
    font-size: 1.1rem;
    font-weight: 700;
    cursor: pointer;
    transition: background .15s ease, transform .1s ease;
}
.stepper button:hover { background: var(--c-blue-100); }
.stepper button:active { transform: scale(0.94); }
.stepper button:disabled { opacity: .3; cursor: not-allowed; }
.stepper .val { min-width: 24px; text-align: center; font-weight: 800; color: var(--c-navy); font-family: var(--ff-display); }

.time-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.time-pill {
    background: var(--c-bg);
    border: 1px solid var(--c-border);
    border-radius: var(--radius-pill);
    padding: 9px 16px;
    color: var(--c-text);
    font-family: var(--ff-display);
    font-weight: 600;
    font-size: .9rem;
    cursor: pointer;
    transition: all .15s ease;
}
.time-pill:hover { background: var(--c-blue-100); border-color: rgba(242, 169, 0,0.25); }
.time-pill.is-active {
    background: var(--c-navy);
    color: #fff;
    border-color: var(--c-navy);
    box-shadow: 0 4px 10px rgba(24, 26, 46,0.20);
}

.enquiry-submit {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 8px;
    padding-top: 18px;
    border-top: 1px solid var(--c-border);
}

.enquiry-aside { display: grid; gap: 18px; position: sticky; top: calc(var(--header-h) + 20px); }
@media (max-width: 980px) { .enquiry-aside { position: static; } }

.enquiry-aside__card {
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--radius-lg);
    padding: 24px;
    box-shadow: var(--shadow-sm);
}
.enquiry-aside__card h3 { margin: 0 0 14px; }

.enquiry-perks {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 14px;
}
.enquiry-perks li { display: flex; gap: 12px; align-items: flex-start; }
.enquiry-perks .ic {
    width: 28px; height: 28px;
    border-radius: 50%;
    background: var(--c-teal-100);
    color: var(--c-teal);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.enquiry-perks strong { display: block; font-family: var(--ff-display); color: var(--c-navy); }
.enquiry-perks small  { display: block; color: var(--c-text-muted); font-size: .85rem; }

.enquiry-aside__cta {
    background: linear-gradient(135deg, var(--c-navy) 0%, var(--c-blue) 100%);
    color: #fff;
    border-radius: var(--radius-lg);
    padding: 24px;
    box-shadow: var(--shadow);
}
.enquiry-aside__cta h3 { color: #fff; }
.enquiry-aside__cta p.text-muted { color: rgba(255,255,255,0.78); }
.enquiry-aside__cta .eyebrow {
    display: inline-block;
    background: rgba(255,255,255,0.18);
    border: 1px solid rgba(255,255,255,0.22);
    border-radius: var(--radius-pill);
    color: #fff;
    padding: 3px 12px;
    font-family: var(--ff-display);
    font-weight: 700;
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: 12px;
}
.enquiry-aside__cta .btn-primary { background: #fff; color: var(--c-navy); box-shadow: 0 8px 20px rgba(0,0,0,0.18); }
.enquiry-aside__cta .btn-primary:hover { background: #fff; color: var(--c-navy); }
.enquiry-aside__cta .btn-secondary { background: rgba(255,255,255,0.14); color: #fff; border-color: rgba(255,255,255,0.22); }
.enquiry-aside__cta .btn-secondary:hover { background: rgba(255,255,255,0.22); color: #fff; }

/* Two-column contact ---------------------------------------------------- */

.contact-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 32px;
    align-items: start;
}
@media (max-width: 880px) { .contact-grid { grid-template-columns: 1fr; } }

.contact-card {
    background: linear-gradient(135deg, var(--c-navy) 0%, var(--c-blue) 100%);
    color: #fff;
    border-radius: var(--radius-lg);
    padding: 32px;
}
.contact-card h3 { color: #fff; }
.contact-card .row {
    display: flex; gap: 12px; align-items: flex-start;
    padding: 14px 0; border-top: 1px solid rgba(255,255,255,0.12);
}
.contact-card .row:first-of-type { border-top: 0; }
.contact-card .row .ic {
    width: 38px; height: 38px;
    border-radius: 10px;
    background: rgba(255,255,255,0.15);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.contact-card .row a { color: #fff; font-weight: 600; }
.contact-card .row small { color: rgba(255,255,255,0.78); display: block; margin-top: 2px; }

/* FAQ ------------------------------------------------------------------- */

.faq { max-width: 820px; margin: 0 auto; }
.faq details {
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
    padding: 18px 22px;
    margin-bottom: 12px;
    transition: box-shadow .15s ease;
}
.faq details[open] { box-shadow: var(--shadow); }
.faq summary {
    list-style: none;
    cursor: pointer;
    font-family: var(--ff-display);
    font-weight: 700;
    color: var(--c-navy);
    display: flex; justify-content: space-between; align-items: center;
    gap: 16px;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
    content: '+';
    font-size: 1.4rem; color: var(--c-blue);
    transition: transform .2s ease;
}
.faq details[open] summary::after { content: '−'; }
.faq p { margin: 12px 0 0; color: var(--c-text-muted); }

/* ======================================================================
   Flight results page
   ====================================================================== */

.results-summary {
    background: linear-gradient(135deg, var(--c-navy) 0%, var(--c-blue) 100%);
    color: #fff;
    padding: 18px 0;
    position: sticky;
    top: var(--header-h);
    z-index: 20;
    box-shadow: 0 6px 18px rgba(24, 26, 46,0.18);
}
.results-summary .container {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}
.results-back {
    width: 38px; height: 38px;
    border-radius: 50%;
    background: rgba(255,255,255,0.12);
    color: #fff;
    display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid rgba(255,255,255,0.18);
    flex-shrink: 0;
    transition: background .15s ease;
}
.results-back:hover { background: rgba(255,255,255,0.2); color: #fff; }

.results-summary__route {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--ff-display);
    font-weight: 700;
    font-size: 1.05rem;
}
.results-summary__route .route-code {
    color: rgba(255,255,255,0.7);
    font-weight: 600;
    margin-left: 4px;
    font-size: .85em;
}

.results-summary__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    color: rgba(255,255,255,0.88);
    font-size: .88rem;
    font-family: var(--ff-display);
    font-weight: 500;
}
.results-summary__meta span { display: inline-flex; align-items: center; gap: 6px; }
.results-summary__sep { opacity: .5; }

.btn-edit-search {
    margin-left: auto;
    background: #fff;
    color: var(--c-navy);
    border-color: transparent;
}
.btn-edit-search:hover { background: rgba(255,255,255,0.92); color: var(--c-navy); }
.btn-edit-search svg { transition: transform .2s ease; }
.btn-edit-search[aria-expanded="true"] svg { transform: rotate(180deg); }

@media (max-width: 720px) {
    .results-summary { padding: 14px 0; }
    .results-summary .container { gap: 10px; }
    .results-summary__route { font-size: .95rem; }
    .results-summary__route svg { width: 14px; height: 14px; }
    .results-summary__meta { font-size: .8rem; flex-basis: 100%; }
    .btn-edit-search { margin-left: 0; margin-top: 4px; padding: 8px 14px; font-size: .85rem; }
}

/* Search progress overlay ---------------------------------------- */
.search-overlay {
    position: fixed;
    inset: 0;
    background: rgba(24, 26, 46,0.55);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    z-index: 200;
    animation: search-overlay-in .2s ease;
}
@keyframes search-overlay-in { from { opacity: 0; } to { opacity: 1; } }
.search-overlay__card {
    background: var(--c-surface);
    border-radius: var(--radius-lg);
    padding: 36px 32px;
    text-align: center;
    max-width: 420px;
    width: 100%;
    box-shadow: 0 24px 50px rgba(0,0,0,0.25);
}
.search-overlay__card h3 { margin: 8px 0 6px; }
.search-overlay__card p  { color: var(--c-text-muted); margin: 0 0 18px; font-size: .92rem; }
.search-overlay__card .search-overlay__phone { color: var(--c-navy); font-size: .98rem; }
.search-overlay__card .search-overlay__phone a { color: var(--c-blue); text-decoration: none; white-space: nowrap; }
.search-overlay__card .search-overlay__phone a:hover { text-decoration: underline; }
.search-overlay__plane {
    width: 72px; height: 72px;
    margin: 0 auto 16px;
    border-radius: 50%;
    background: var(--c-blue-100);
    color: var(--c-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: search-plane-bob 1.6s ease-in-out infinite;
}
@keyframes search-plane-bob {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    50%      { transform: translateY(-6px) rotate(8deg); }
}
.search-overlay__bar {
    height: 4px;
    background: var(--c-bg);
    border-radius: 999px;
    overflow: hidden;
    position: relative;
}
.search-overlay__bar span {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent 0%, var(--c-blue) 40%, var(--c-navy) 60%, transparent 100%);
    transform: translateX(-100%);
    animation: search-bar-slide 1.4s ease-in-out infinite;
}
@keyframes search-bar-slide {
    0%   { transform: translateX(-100%); }
    100% { transform: translateX(200%); }
}

/* Edit-search collapsible panel ----------------------------------- */
.edit-search-section {
    background: var(--c-bg);
    border-bottom: 1px solid var(--c-border);
    padding: 16px 0 20px;
    animation: edit-search-in .25s ease;
    scroll-margin-top: calc(var(--header-h) + 80px);
}
.edit-search-section[hidden] { display: none; }

/* Compact variant of the search form for the results page */
.edit-search-section .search-panel {
    padding: 16px 18px;
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
}
.edit-search-section .search-tabs { margin-bottom: 12px; padding: 3px; }
.edit-search-section .search-tabs button { padding: 6px 14px; font-size: .85rem; }
.edit-search-section .search-grid { gap: 10px; }
.edit-search-section .search-grid label {
    font-size: .68rem;
    margin-bottom: 4px;
}
.edit-search-section .search-grid input,
.edit-search-section .search-grid select,
.edit-search-section .search-grid .pax-trigger {
    padding: 10px 12px;
    font-size: .92rem;
    border-radius: 10px;
}
.edit-search-section .field--from input,
.edit-search-section .field--to input {
    padding-left: 38px;
    background-position: 11px center;
    background-size: 16px 16px;
}
.edit-search-section .search-grid-bottom { margin-top: 12px; gap: 12px; }
.edit-search-section .search-grid-bottom select { padding: 8px 14px !important; font-size: .88rem; }
.edit-search-section .checkbox { font-size: .88rem; }
.edit-search-section .search-submit { min-width: 180px; padding: 12px 22px; font-size: .95rem; }

@keyframes edit-search-in {
    from { opacity: 0; transform: translateY(-8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Page layout ------------------------------------------------------- */
.results-section { padding: 28px 0 80px; }

.results-grid {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}
@media (max-width: 1024px) {
    .results-grid { grid-template-columns: minmax(0, 1fr); }
}

/* Filters sidebar --------------------------------------------------- */
.results-sidebar {
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--radius-lg);
    padding: 18px 18px 14px;
    box-shadow: var(--shadow-sm);
    position: sticky;
    top: calc(var(--header-h) + 24px);
    max-height: calc(100vh - var(--header-h) - 40px);
    display: flex;
    flex-direction: column;
}

.filters-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--c-navy);
    color: #fff;
    margin: -18px -18px 14px;
    padding: 14px 18px;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    flex-shrink: 0;
}
.filters-head h3 { margin: 0; font-size: 1rem; color: #fff; }
.filters-close {
    display: none;
    background: transparent;
    border: 0;
    color: #fff;
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
    padding: 4px 8px;
}

.filter-scroll {
    overflow-y: auto;
    flex: 1 1 auto;
    margin-right: -8px;
    padding-right: 8px;
    scrollbar-width: thin;
    scrollbar-color: var(--c-border) transparent;
}
.filter-scroll::-webkit-scrollbar { width: 6px; }
.filter-scroll::-webkit-scrollbar-thumb { background: var(--c-border); border-radius: 4px; }

.filter-group {
    padding: 4px 0 14px;
    border: 0;
}
.filter-group > summary {
    list-style: none;
    cursor: pointer;
    font-family: var(--ff-display);
    font-weight: 700;
    color: var(--c-accent);
    font-size: .95rem;
    padding: 10px 0 8px;
    border-bottom: 1px solid var(--c-accent);
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
}
.filter-group > summary::-webkit-details-marker { display: none; }
.filter-group > summary::after {
    content: "−";
    color: var(--c-accent);
    font-size: 1.4rem;
    font-weight: 700;
    line-height: .8;
}
.filter-group:not([open]) > summary::after { content: "+"; }

.filter-group__actions {
    display: flex;
    justify-content: space-between;
    margin-bottom: 6px;
}
.link-btn {
    background: transparent;
    border: 0;
    padding: 2px 0;
    color: var(--c-blue);
    font-family: var(--ff-display);
    font-weight: 600;
    font-size: .82rem;
    cursor: pointer;
}
.link-btn:hover { color: var(--c-navy); text-decoration: underline; }

.filter-group__body { display: block; }

.filter-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 5px 0;
    cursor: pointer;
    color: var(--c-text);
    font-size: .92rem;
}
.filter-row input[type="checkbox"] { accent-color: var(--c-blue); width: 16px; height: 16px; flex-shrink: 0; }
.filter-row span { flex: 1; line-height: 1.3; }
.filter-row span small { color: var(--c-text-muted); font-weight: 500; }
.filter-count { color: var(--c-text-muted); font-size: .78rem; flex-shrink: 0; }

.filter-list { /* no inner scroll — outer .filter-scroll handles overflow */ }

/* Price dual-handle range slider ------------------------------------ */
.price-range {
    position: relative;
    height: 36px;
    margin: 6px 0 2px;
}
.price-range__track {
    position: absolute;
    top: 50%;
    left: 0; right: 0;
    transform: translateY(-50%);
    height: 4px;
    background: var(--c-border);
    border-radius: 999px;
}
.price-range__highlight {
    position: absolute;
    top: 0; bottom: 0;
    background: linear-gradient(90deg, var(--c-blue) 0%, var(--c-navy) 100%);
    border-radius: 999px;
}
.price-range input[type="range"] {
    position: absolute;
    width: 100%;
    height: 36px;
    background: transparent;
    pointer-events: none;
    -webkit-appearance: none;
    appearance: none;
    top: 0; left: 0;
    margin: 0;
}
.price-range input[type="range"]::-webkit-slider-thumb {
    pointer-events: auto;
    -webkit-appearance: none;
    appearance: none;
    width: 18px; height: 18px;
    border-radius: 50%;
    background: var(--c-accent);
    border: 2px solid #fff;
    box-shadow: 0 2px 6px rgba(24, 26, 46,0.25);
    cursor: pointer;
    margin-top: 0;
}
.price-range input[type="range"]::-moz-range-thumb {
    pointer-events: auto;
    width: 18px; height: 18px;
    border-radius: 50%;
    background: var(--c-accent);
    border: 2px solid #fff;
    box-shadow: 0 2px 6px rgba(24, 26, 46,0.25);
    cursor: pointer;
}
.price-range input[type="range"]::-webkit-slider-runnable-track { background: transparent; height: 36px; }
.price-range input[type="range"]::-moz-range-track { background: transparent; height: 36px; }
.price-range__labels {
    font-size: .82rem;
    color: var(--c-text);
    margin-top: 4px;
}
.price-range__labels strong { color: var(--c-navy); font-family: var(--ff-display); font-weight: 700; }

/* Time-of-day band buttons ----------------------------------------- */
.time-bands {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
}
.time-band {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    background: var(--c-bg);
    border: 1px solid var(--c-border);
    border-radius: 8px;
    padding: 8px 4px 6px;
    color: var(--c-navy);
    cursor: pointer;
    transition: all .15s ease;
}
.time-band svg { color: var(--c-text-muted); }
.time-band small { font-family: var(--ff-display); font-weight: 700; font-size: .72rem; color: var(--c-navy); }
.time-band:hover { background: var(--c-blue-100); border-color: rgba(242, 169, 0,0.3); }
.time-band:hover svg { color: var(--c-blue); }
.time-band.is-active {
    background: var(--c-navy);
    border-color: var(--c-navy);
    box-shadow: 0 4px 10px rgba(24, 26, 46,0.18);
}
.time-band.is-active svg,
.time-band.is-active small { color: #fff; }

/* Filter drawer (mobile) ------------------------------------------- */
@media (max-width: 1024px) {
    .results-sidebar {
        position: fixed;
        top: 0;
        bottom: 0;
        left: 0;
        width: 320px;
        max-width: 88vw;
        z-index: 90;
        border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
        transform: translateX(-100%);
        transition: transform .25s ease;
        overflow-y: auto;
    }
    .results-sidebar.is-open { transform: translateX(0); box-shadow: 0 12px 40px rgba(0,0,0,0.3); }
    .filters-close { display: inline-flex; }
    .results-sidebar::before {
        content: "";
        position: fixed;
        inset: 0;
        background: rgba(24, 26, 46,0.45);
        opacity: 0;
        pointer-events: none;
        transition: opacity .25s ease;
        z-index: -1;
    }
    .results-sidebar.is-open::before { opacity: 1; pointer-events: auto; }
}

/* Toolbar ---------------------------------------------------------- */
.results-main { min-width: 0; }

.results-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}

.btn-filters-toggle {
    display: none;
    padding: 9px 14px;
    font-size: .9rem;
}
@media (max-width: 1024px) { .btn-filters-toggle { display: inline-flex; } }

.results-meta {
    color: var(--c-text-muted);
    font-size: .9rem;
}
.results-meta strong { color: var(--c-navy); font-family: var(--ff-display); }

.loading-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--c-blue-100);
    color: var(--c-navy);
    border-radius: var(--radius-pill);
    padding: 4px 12px;
    margin-left: 8px;
    font-size: .8rem;
    font-weight: 600;
}
.loading-pill .dot {
    width: 8px; height: 8px;
    background: var(--c-blue);
    border-radius: 50%;
    animation: pulse 1.2s ease-in-out infinite;
}
@keyframes pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%      { opacity: .4; transform: scale(0.6); }
}

.results-sort {
    margin-left: auto;
    display: inline-flex;
    background: var(--c-bg);
    border-radius: var(--radius-pill);
    padding: 4px;
    gap: 2px;
}
.sort-tab {
    background: transparent;
    border: 0;
    padding: 8px 14px;
    border-radius: var(--radius-pill);
    color: var(--c-text-muted);
    font-family: var(--ff-display);
    font-weight: 600;
    font-size: .88rem;
    cursor: pointer;
    transition: all .15s ease;
}
.sort-tab.is-active {
    background: var(--c-surface);
    color: var(--c-navy);
    box-shadow: var(--shadow-sm);
}

@media (max-width: 560px) {
    .results-sort {
        margin-left: 0;
        flex-basis: 100%;
        overflow-x: auto;
    }
    .sort-tab { padding: 8px 12px; font-size: .82rem; }
}

/* Results list ----------------------------------------------------- */
.results-list { display: flex; flex-direction: column; gap: 14px; }

.result-card {
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: box-shadow .15s ease, transform .15s ease;
}
.result-card:hover { box-shadow: var(--shadow); }

/* Lazy-load sentinel & skeleton cards ------------------------------- */
.results-load-sentinel {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-top: 14px;
}
.skeleton-card {
    height: 124px;
    background: linear-gradient(
        90deg,
        var(--c-surface) 0%,
        var(--c-bg) 50%,
        var(--c-surface) 100%);
    background-size: 200% 100%;
    border: 1px solid var(--c-border);
    border-radius: var(--radius-lg);
    animation: skeleton-shimmer 1.4s ease-in-out infinite;
}
@keyframes skeleton-shimmer {
    0%   { background-position:  200% 0; }
    100% { background-position: -200% 0; }
}

.result-card__top {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 190px;
    gap: 22px;
    padding: 18px;
    align-items: stretch;
}
@media (max-width: 720px) {
    .result-card__top { grid-template-columns: 1fr; padding: 14px; gap: 14px; }
}

.result-card__journeys { display: flex; flex-direction: column; gap: 12px; }

.journey-row {
    display: grid;
    grid-template-columns:
        minmax(0, 0.75fr)          /* airline (logo only) */
        minmax(0, 0.6fr)           /* date */
        minmax(0, 1fr)             /* depart */
        minmax(0, 1.4fr)           /* stops */
        minmax(0, 1fr);            /* arrive */
    gap: 14px;
    align-items: center;
}
.journey-row + .journey-row { border-top: 1px dashed var(--c-border); padding-top: 12px; }

.journey-airline {
    display: flex;
    align-items: center;
    min-width: 0;
    cursor: help;
}
.journey-airline img {
    max-height: 32px;
    max-width: 100%;
    width: auto;
    object-fit: contain;
    flex-shrink: 0;
}
.journey-airline__fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 28px;
    padding: 0 8px;
    background: linear-gradient(135deg, var(--c-navy) 0%, var(--c-blue) 100%);
    color: #fff;
    border-radius: 6px;
    font-family: var(--ff-display);
    font-weight: 800;
    font-size: .8rem;
    letter-spacing: .04em;
}

.journey-date {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--c-text-muted);
    font-size: .85rem;
    font-weight: 500;
}
.journey-date svg { color: var(--c-accent); }

.journey-time { line-height: 1.2; }
.journey-time strong {
    display: block;
    color: var(--c-navy);
    font-family: var(--ff-display);
    font-weight: 800;
    font-size: 1.15rem;
}
.journey-time strong sup {
    font-size: .65em;
    color: var(--c-blue);
    vertical-align: top;
    margin-left: 2px;
}
.journey-time small {
    display: block;
    color: var(--c-text-muted);
    font-size: .8rem;
    line-height: 1.25;
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
/* Airport code drops to its own line so long city names ("Bangkok") can't
   push the code off the right edge as "(BK...". */
.journey-time .apt-code {
    display: block;
    color: var(--c-text);
    font-weight: 600;
    margin-left: 0;
    margin-top: 1px;
    font-size: .78rem;
}
.journey-time--arrive { text-align: right; }

.journey-stops {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    min-width: 0;
}
.journey-duration {
    color: var(--c-text-muted);
    font-size: .8rem;
    font-weight: 600;
}
.journey-line {
    display: block;
    height: 1.5px;
    width: 100%;
    background: linear-gradient(90deg, var(--c-border) 0%, var(--c-blue) 50%, var(--c-border) 100%);
    position: relative;
}
.journey-line::before, .journey-line::after {
    content: "";
    position: absolute;
    top: 50%;
    width: 8px; height: 8px;
    border-radius: 50%;
    background: var(--c-blue);
    transform: translateY(-50%);
}
.journey-line::before { left: 0; }
.journey-line::after  { right: 0; }
.journey-stops__label {
    font-family: var(--ff-display);
    font-weight: 700;
    color: var(--c-navy);
    font-size: .82rem;
    text-align: center;
}
.journey-stops__label.is-direct { color: var(--c-teal); }
.journey-stops__label em {
    font-style: normal;
    font-weight: 500;
    color: var(--c-text-muted);
    margin-left: 4px;
}

.result-card__price {
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
    padding: 18px 16px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: stretch;
    gap: 10px;
    box-shadow: 0 2px 8px rgba(24, 26, 46,0.04);
}
.price-amount {
    font-family: var(--ff-display);
    font-weight: 800;
    color: var(--c-navy);
    font-size: 1.6rem;
    line-height: 1;
    text-align: center;
}
.price-label {
    color: var(--c-teal);
    font-size: .78rem;
    font-weight: 600;
    text-align: center;
    margin-bottom: 4px;
}
.price-actions { display: flex; flex-direction: column; gap: 8px; }
.price-actions .btn { padding: 10px 14px; font-size: .9rem; justify-content: center; }
.price-actions .btn-details { background: var(--c-surface); }
.price-actions .btn-details[aria-expanded="true"] svg { transform: rotate(180deg); }
.price-actions .btn-details svg { transition: transform .15s ease; }

@media (max-width: 720px) {
    .result-card__price {
        padding: 14px;
    }
    .price-actions { flex-direction: row; }
    .price-actions .btn { flex: 1; }
}

/* Mobile journey row ----------------------------------------------- */
@media (max-width: 720px) {
    .journey-row {
        grid-template-columns: 1fr 1fr 1fr;
        grid-template-areas:
            "airline airline date"
            "depart  stops   arrive";
        gap: 8px 10px;
        align-items: center;
    }
    .journey-airline      { grid-area: airline; min-width: 0; }
    .journey-date         { grid-area: date; justify-self: end; margin: 0; }
    .journey-time--depart { grid-area: depart; }
    .journey-stops        { grid-area: stops; }
    .journey-time--arrive { grid-area: arrive; }

    .journey-row + .journey-row { padding-top: 10px; }

    .journey-airline img   { max-height: 24px; }
    .journey-date          { font-size: .78rem; white-space: nowrap; }

    .journey-time strong { font-size: 1.05rem; }
    .journey-time small  { font-size: .7rem; }
    .journey-time--depart small,
    .journey-time--arrive small { line-height: 1.2; }
    .journey-time .apt-code { display: block; margin-left: 0; }
    .journey-time--arrive { text-align: right; }

    .journey-duration, .journey-stops__label { font-size: .7rem; }
    .journey-stops__label em { display: none; }
}

/* Expanded details ------------------------------------------------- */
.result-card__details {
    border-top: 1px solid var(--c-border);
    background: linear-gradient(180deg, #F4F7FC 0%, #ECF1FA 100%);
    padding: 20px;
}
@media (max-width: 720px) { .result-card__details { padding: 14px; } }

.detail-tabs {
    display: flex;
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
    overflow: hidden;
    margin-bottom: 18px;
}
.detail-tab {
    flex: 1;
    background: transparent;
    border: 0;
    padding: 12px 16px;
    border-bottom: 3px solid transparent;
    color: var(--c-text-muted);
    cursor: pointer;
    text-align: left;
    transition: all .15s ease;
    font-family: var(--ff-body);
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}
.detail-tab + .detail-tab { border-left: 1px solid var(--c-border); }
.detail-tab:hover { background: var(--c-bg); }
.detail-tab.is-active {
    background: var(--c-surface);
    color: var(--c-navy);
    border-bottom-color: var(--c-blue);
}
.detail-tab__label {
    font-family: var(--ff-display);
    font-weight: 700;
    color: var(--c-text-muted);
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    line-height: 1;
}
.detail-tab.is-active .detail-tab__label { color: var(--c-blue); }
.detail-tab__route {
    font-family: var(--ff-display);
    font-weight: 700;
    color: var(--c-navy);
    font-size: .95rem;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.detail-tab__route svg { color: var(--c-accent); }
.detail-tab__duration {
    color: var(--c-text-muted);
    font-size: .82rem;
    line-height: 1;
    margin-left: auto;
    font-weight: 600;
}
@media (max-width: 480px) {
    .detail-tab { gap: 8px; padding: 10px 12px; }
    .detail-tab__duration { margin-left: 0; flex-basis: 100%; }
}

.detail-panel { display: none; }
.detail-panel.is-active { display: block; }

.leg-row {
    display: grid;
    grid-template-columns: 200px minmax(0, 1fr) 200px;
    gap: 18px;
    align-items: stretch;
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
    padding: 18px;
}
.leg-row + .leg-row { margin-top: 12px; }
@media (max-width: 880px) {
    .leg-row { grid-template-columns: 1fr; gap: 14px; padding: 14px; }
}

.leg-airline {
    display: flex;
    align-items: center;
    gap: 10px;
}
.leg-airline img { max-height: 32px; width: auto; }
.leg-airline__meta { display: flex; flex-direction: column; min-width: 0; }
.leg-airline__meta strong {
    color: var(--c-navy);
    font-family: var(--ff-display);
    font-weight: 700;
    font-size: .98rem;
}
.leg-airline__meta small { color: var(--c-text-muted); font-size: .82rem; }

.leg-timeline { display: grid; grid-template-columns: 28px 1fr; gap: 10px; min-width: 0; }
.leg-timeline__line {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 4px 0;
}
.leg-timeline__line .dot {
    width: 14px; height: 14px;
    border-radius: 50%;
    border: 2px solid var(--c-blue);
    background: var(--c-surface);
    flex-shrink: 0;
}
.leg-timeline__line .bar {
    flex: 1;
    width: 2px;
    background: linear-gradient(180deg, var(--c-blue) 0%, var(--c-teal) 100%);
    margin: 4px 0;
    min-height: 36px;
}

.leg-timeline__points { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.point__title {
    margin: 0;
    color: var(--c-navy);
    font-family: var(--ff-display);
    font-weight: 700;
    font-size: .95rem;
}
.point__time {
    margin: 2px 0 0;
    color: var(--c-text-muted);
    font-size: .85rem;
    line-height: 1.4;
}
.point__time strong { color: var(--c-navy); font-weight: 700; margin-right: 2px; }
.point__duration {
    margin: 0;
    color: var(--c-text-muted);
    font-size: .82rem;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding-left: 4px;
}
.point__duration svg { color: var(--c-blue); }

.leg-facts {
    display: flex;
    flex-direction: column;
    gap: 8px;
    color: var(--c-navy);
    font-size: .85rem;
    border-left: 1px solid var(--c-border);
    padding-left: 18px;
}
.leg-facts span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.leg-facts svg { color: var(--c-blue); flex-shrink: 0; }
.leg-facts__operated { color: var(--c-teal); font-weight: 600; }
.leg-facts__operated svg { color: var(--c-teal); }
@media (max-width: 880px) {
    .leg-facts {
        border-left: 0;
        border-top: 1px solid var(--c-border);
        padding-left: 0;
        padding-top: 12px;
        flex-direction: row;
        flex-wrap: wrap;
        gap: 8px 16px;
    }
}

.leg-stopover {
    display: flex;
    align-items: center;
    gap: 10px;
    background: rgba(43,187,192,0.10);
    border: 1px solid rgba(43,187,192,0.28);
    border-radius: var(--radius);
    color: var(--c-teal);
    font-family: var(--ff-display);
    font-weight: 600;
    padding: 10px 14px;
    margin: 12px 0;
    font-size: .9rem;
}

.detail-footer {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px dashed rgba(24, 26, 46,0.18);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}
.detail-fare-breakdown {
    display: grid;
    gap: 2px;
    font-size: .88rem;
    color: var(--c-text);
}
.detail-fare-breakdown strong { color: var(--c-navy); font-family: var(--ff-display); font-size: .92rem; }
.detail-fare-breakdown .grand-total { color: var(--c-blue); font-weight: 700; font-family: var(--ff-display); }

@media (max-width: 720px) {
    .detail-footer { flex-direction: column; align-items: stretch; }
    .detail-footer .btn { width: 100%; justify-content: center; }
}

/* No results card -------------------------------------------------- */
.no-results-card {
    text-align: center;
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--radius-lg);
    padding: 56px 28px;
    box-shadow: var(--shadow-sm);
}
.no-results-illustration {
    width: 96px; height: 96px;
    border-radius: 50%;
    background: var(--c-blue-100);
    color: var(--c-navy);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
}
.no-results-card h3 { margin: 0 0 8px; }
.no-results-card p  { color: var(--c-text-muted); max-width: 480px; margin: 0 auto 24px; }
.no-results-cta { display: inline-flex; flex-wrap: wrap; gap: 10px; justify-content: center; }

.results-empty-filtered {
    text-align: center;
    padding: 40px 20px;
    color: var(--c-text-muted);
}
.results-empty-filtered p { margin-bottom: 16px; }

/* ======================================================================
   Booking page
   ====================================================================== */
/* Slim breadcrumb strip — replaces the old big booking-hero block. */
.booking-strip {
    background: var(--c-surface);
    border-bottom: 1px solid var(--c-border);
    padding: 12px 0;
}
.booking-strip .container {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}
.booking-strip__back {
    width: 34px; height: 34px;
    border-radius: 50%;
    background: var(--c-blue-100);
    color: var(--c-navy);
    display: inline-flex; align-items: center; justify-content: center;
    transition: background .15s ease;
    flex-shrink: 0;
}
.booking-strip__back:hover { background: var(--c-blue); color: #fff; }
.booking-strip__crumbs {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: .85rem;
    color: var(--c-text-muted);
    font-family: var(--ff-display);
    font-weight: 500;
}
.booking-strip__crumbs a { color: var(--c-text-muted); }
.booking-strip__crumbs a:hover { color: var(--c-blue); }
.booking-strip__crumbs span { opacity: .5; }
.booking-strip__crumbs .is-current { color: var(--c-navy); opacity: 1; font-weight: 700; }
.booking-strip__step {
    margin-left: auto;
    background: var(--c-blue-100);
    color: var(--c-navy);
    border-radius: var(--radius-pill);
    padding: 4px 12px;
    font-family: var(--ff-display);
    font-weight: 700;
    font-size: .78rem;
    letter-spacing: .03em;
}
@media (max-width: 560px) {
    .booking-strip__step { display: none; }
}

.booking-section { padding: 28px 0 80px; }
.booking-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}
@media (max-width: 980px) { .booking-grid { grid-template-columns: 1fr; } }

.booking-flight-summary {
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--radius-lg);
    padding: 22px;
    box-shadow: var(--shadow-sm);
    margin-bottom: 18px;
}
.booking-flight-summary h2 { margin: 0 0 14px; font-size: 1.15rem; }
.booking-journey + .booking-journey { margin-top: 14px; padding-top: 14px; border-top: 1px dashed var(--c-border); }
.booking-journey__head { font-family: var(--ff-display); font-weight: 700; color: var(--c-navy); margin-bottom: 10px; display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: baseline; }
.booking-journey__meta { color: var(--c-text-muted); font-weight: 500; font-size: .9rem; }
.booking-leg {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    padding: 12px 14px;
    background: var(--c-bg);
    border-radius: var(--radius);
    border: 1px solid var(--c-border);
}
.booking-leg + .booking-leg { margin-top: 8px; }
.booking-leg__airline { display: flex; align-items: center; gap: 12px; min-width: 0; }
.booking-leg__airline img { max-height: 26px; flex-shrink: 0; }
.booking-leg__airline strong { display: block; color: var(--c-navy); font-family: var(--ff-display); font-size: .95rem; }
.booking-leg__airline small { color: var(--c-text-muted); font-size: .8rem; }
.booking-leg__times { display: flex; align-items: center; gap: 12px; font-family: var(--ff-display); color: var(--c-navy); }
.booking-leg__times strong { font-size: 1rem; }
.booking-leg__times span { display: block; color: var(--c-text-muted); font-size: .78rem; font-weight: 500; }
.booking-leg__arrow { color: var(--c-blue); font-weight: 700; }
@media (max-width: 720px) {
    .booking-leg { grid-template-columns: 1fr; }
}

.booking-form-col { display: flex; flex-direction: column; gap: 14px; min-width: 0; }

/* Compact booking card — separate card per section (contact, passenger N). */
.booking-form { background: transparent; padding: 0; border: 0; box-shadow: none; display: flex; flex-direction: column; gap: 14px; }

.bk-card {
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--radius-lg);
    padding: 20px 22px;
    box-shadow: var(--shadow-sm);
}
@media (max-width: 640px) { .bk-card { padding: 16px; } }

.bk-card__head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
}
.bk-card__head svg { color: var(--c-blue); flex-shrink: 0; }
.bk-card__head h2 {
    margin: 0;
    font-size: 1.05rem;
    color: var(--c-navy);
    font-family: var(--ff-display);
    font-weight: 800;
}
.bk-pax-tag {
    color: var(--c-blue);
    font-weight: 700;
    font-size: .85rem;
    margin-left: 4px;
}
.bk-pax-age {
    margin-left: auto;
    color: var(--c-text-muted);
    font-size: .78rem;
    font-weight: 500;
}

.bk-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 14px;
}
.bk-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bk-field { display: flex; flex-direction: column; min-width: 0; }
.bk-field--full { grid-column: 1 / -1; }
.bk-field label {
    display: block;
    font-family: var(--ff-display);
    font-weight: 700;
    color: var(--c-text-muted);
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-bottom: 5px;
}
.bk-field label small { color: var(--c-text-muted); font-weight: 500; letter-spacing: 0; text-transform: none; }
.bk-field input,
.bk-field select,
.bk-field textarea {
    width: 100%;
    border: 1px solid var(--c-border);
    background: var(--c-bg);
    border-radius: 10px;
    padding: 9px 12px;
    font-size: .92rem;
    font-family: var(--ff-body);
    color: var(--c-text);
    transition: border-color .12s ease, background .12s ease;
}
.bk-field input:focus,
.bk-field select:focus,
.bk-field textarea:focus {
    outline: none;
    border-color: var(--c-blue);
    background: #fff;
}
.bk-field span.field-validation-error { color: var(--c-danger); font-size: .78rem; margin-top: 3px; display: block; }

@media (max-width: 640px) {
    .bk-grid, .bk-grid--3 { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
    .bk-pax-age { display: none; }
}

.phone-row { display: flex; gap: 6px; align-items: stretch; }
.phone-row input { flex: 1; min-width: 0; }

.bk-passport { margin-top: 14px; }
.bk-passport > summary {
    list-style: none;
    cursor: pointer;
    padding: 8px 12px;
    background: var(--c-bg);
    border: 1px dashed var(--c-border);
    border-radius: 10px;
    font-family: var(--ff-display);
    font-weight: 600;
    color: var(--c-navy);
    font-size: .9rem;
    display: flex; justify-content: space-between; align-items: center;
}
.bk-passport > summary::-webkit-details-marker { display: none; }
.bk-passport > summary::after { content: '+'; color: var(--c-blue); font-size: 1.3rem; line-height: .8; font-weight: 700; }
.bk-passport[open] > summary::after { content: '−'; }
.bk-passport[open] > summary { margin-bottom: 12px; }
.bk-passport small { color: var(--c-text-muted); font-weight: 500; }

.passport-toggle { margin-top: 14px; }
.passport-toggle > summary {
    list-style: none;
    cursor: pointer;
    padding: 10px 12px;
    background: var(--c-surface);
    border: 1px dashed var(--c-border);
    border-radius: 10px;
    font-family: var(--ff-display);
    font-weight: 600;
    color: var(--c-navy);
    display: flex; justify-content: space-between; align-items: center;
}
.passport-toggle > summary::-webkit-details-marker { display: none; }
.passport-toggle > summary::after { content: '+'; color: var(--c-blue); font-size: 1.4rem; line-height: .8; }
.passport-toggle[open] > summary::after { content: '−'; }
.passport-toggle[open] > summary { margin-bottom: 14px; }
.passport-toggle small { color: var(--c-text-muted); font-weight: 500; margin-left: 6px; }

.booking-submit-bar {
    display: flex;
    flex-direction: column;
    gap: 14px;
    border-top: 1px solid var(--c-border);
    padding-top: 18px;
    margin-top: 8px;
}
.booking-submit-btn { width: 100%; }
@media (min-width: 720px) {
    .booking-submit-bar { flex-direction: row; align-items: center; justify-content: space-between; flex-wrap: wrap; }
    .booking-submit-btn { width: auto; }
}

.booking-side-col { display: flex; flex-direction: column; gap: 18px; position: sticky; top: calc(var(--header-h) + 16px); }
@media (max-width: 980px) { .booking-side-col { position: static; } }

.booking-fare-card,
.booking-support-card {
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--radius-lg);
    padding: 22px;
    box-shadow: var(--shadow-sm);
}
.booking-fare-card h3,
.booking-support-card h4 { margin: 0 0 12px; }

.fare-row { display: flex; justify-content: space-between; padding: 6px 0; color: var(--c-text); font-size: .92rem; }
.fare-row strong { color: var(--c-navy); font-family: var(--ff-display); }
.fare-row--total { border-top: 1px solid var(--c-border); margin-top: 6px; padding-top: 12px; font-size: 1.05rem; }
.fare-row--total strong { color: var(--c-blue); font-size: 1.15rem; }
.fare-row--discount { color: var(--c-teal); font-weight: 600; }
.fare-row--discount span:last-child { color: var(--c-teal); }
.fare-foot { color: var(--c-text-muted); font-size: .78rem; margin: 8px 0 0; }

.booking-support-card { background: linear-gradient(135deg, var(--c-navy) 0%, var(--c-blue) 100%); color: #fff; }
.booking-support-card h4 { color: #fff; }
.booking-support-card p { color: rgba(255,255,255,0.85); margin: 0 0 12px; }
.booking-support-card .eyebrow {
    display: inline-block;
    background: rgba(255,255,255,0.18);
    border: 1px solid rgba(255,255,255,0.22);
    border-radius: var(--radius-pill);
    color: #fff;
    padding: 3px 12px;
    font-family: var(--ff-display);
    font-weight: 700;
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: 12px;
}
.booking-support-card .btn-primary { background: #fff; color: var(--c-navy); }
.booking-support-card .btn-primary:hover { background: rgba(255,255,255,0.92); color: var(--c-navy); }

.alert-warning { background: #FFF7E6; color: #92400E; border: 1px solid #FCD34D; border-radius: var(--radius); padding: 14px 16px; margin-bottom: 18px; }

/* ======================================================================
   Confirmation page
   ====================================================================== */
.conf-hero {
    background:
        radial-gradient(circle at 85% -10%, rgba(43,187,192,0.30) 0%, transparent 50%),
        radial-gradient(circle at 0% 110%, rgba(242, 169, 0,0.40) 0%, transparent 55%),
        linear-gradient(135deg, var(--c-navy) 0%, #102D7A 70%, var(--c-blue) 100%);
    color: #fff;
    padding: 48px 0;
}
.conf-hero__row { display: flex; align-items: flex-start; gap: 18px; }
.conf-hero__icon {
    width: 64px; height: 64px;
    border-radius: 50%;
    background: rgba(255,255,255,0.18);
    color: #fff;
    display: flex; align-items: center; justify-content: center;
    border: 1px solid rgba(255,255,255,0.28);
    flex-shrink: 0;
}
.conf-hero__eyebrow { color: rgba(255,255,255,0.75); margin: 0 0 4px; font-size: .85rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 600; }
.conf-hero h1 { color: #fff; margin: 0 0 4px; font-size: clamp(1.8rem, 2.4vw + 1rem, 2.3rem); }
.conf-hero__sub { color: rgba(255,255,255,0.88); margin: 0; }
.conf-hero__meta {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.16);
    border-radius: var(--radius-lg);
    padding: 16px;
    margin-top: 22px;
}
@media (max-width: 560px) { .conf-hero__meta { grid-template-columns: 1fr; } }
.conf-hero__meta small { color: rgba(255,255,255,0.7); font-size: .78rem; text-transform: uppercase; letter-spacing: .05em; }
.conf-hero__meta strong { display: block; font-family: var(--ff-display); font-size: 1.05rem; color: #fff; margin-top: 2px; }

.conf-status { display: inline-flex; align-items: center; gap: 8px; }
.conf-status span { width: 9px; height: 9px; border-radius: 50%; }
.conf-status--pending span { background: var(--c-accent); box-shadow: 0 0 0 4px rgba(255,179,65,0.25); animation: conf-pulse 1.6s ease-in-out infinite; }
@keyframes conf-pulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.25); } }

.conf-section { padding: 36px 0 80px; }
.conf-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 28px; align-items: start; }
@media (max-width: 980px) { .conf-grid { grid-template-columns: 1fr; } }

.conf-main { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.conf-card { background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--radius-lg); padding: 28px; box-shadow: var(--shadow-sm); }
.conf-card h2 { margin: 0 0 16px; font-size: 1.2rem; }
.conf-card--references { background: linear-gradient(135deg, var(--c-blue-100) 0%, #ffffff 100%); border-color: var(--c-blue); }
.conf-refs-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 18px; }
.conf-ref { display: flex; flex-direction: column; gap: 4px; }
.conf-ref small { color: var(--c-text-muted); font-family: var(--ff-display); font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; }
.conf-ref strong { color: var(--c-navy); font-size: 1.25rem; font-weight: 800; letter-spacing: .3px; }
.conf-card__foot { color: var(--c-text-muted); font-size: .85rem; margin-top: 12px; }
@media (max-width: 640px) { .conf-card { padding: 20px; } }

.conf-journey + .conf-journey { margin-top: 14px; padding-top: 14px; border-top: 1px dashed var(--c-border); }
.conf-journey__head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin-bottom: 12px; color: var(--c-navy); font-family: var(--ff-display); }
.conf-journey__chip {
    background: var(--c-blue-100);
    border-radius: var(--radius-pill);
    padding: 4px 12px;
    color: var(--c-navy);
    font-size: .78rem;
    font-weight: 600;
}

.conf-leg {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr) 180px;
    gap: 18px;
    align-items: stretch;
    padding: 16px;
    background: var(--c-bg);
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
    margin-bottom: 10px;
}
@media (max-width: 880px) { .conf-leg { grid-template-columns: 1fr; gap: 14px; } }
.conf-leg__airline { display: flex; align-items: center; gap: 12px; }
.conf-leg__airline img { max-height: 32px; }
.conf-leg__airline-meta strong { display: block; color: var(--c-navy); font-family: var(--ff-display); }
.conf-leg__airline-meta small { color: var(--c-text-muted); }

.conf-leg__timeline { display: grid; grid-template-columns: 26px 1fr; gap: 8px; }
.conf-leg__timeline .line { display: flex; flex-direction: column; align-items: center; padding: 4px 0; }
.conf-leg__timeline .dot { width: 12px; height: 12px; border-radius: 50%; border: 2px solid var(--c-blue); background: var(--c-surface); }
.conf-leg__timeline .bar { flex: 1; width: 2px; background: linear-gradient(180deg, var(--c-blue), var(--c-teal)); margin: 4px 0; min-height: 36px; }
.conf-leg__timeline .points { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.conf-leg__timeline .point strong { display: block; color: var(--c-navy); font-family: var(--ff-display); }
.conf-leg__timeline .point span { color: var(--c-text-muted); font-size: .85rem; }
.conf-leg__timeline .duration { margin: 0; color: var(--c-text-muted); font-size: .8rem; padding-left: 2px; }

.conf-leg__facts {
    display: flex; flex-direction: column; gap: 8px;
    border-left: 1px solid var(--c-border);
    padding-left: 18px;
    font-size: .85rem;
    color: var(--c-navy);
}
@media (max-width: 880px) {
    .conf-leg__facts { border-left: 0; border-top: 1px solid var(--c-border); padding-left: 0; padding-top: 12px; flex-direction: row; flex-wrap: wrap; gap: 8px 16px; }
}

.conf-stopover {
    display: flex; align-items: center; gap: 10px;
    background: rgba(43,187,192,0.10);
    border: 1px solid rgba(43,187,192,0.28);
    border-radius: var(--radius);
    color: var(--c-teal);
    font-family: var(--ff-display); font-weight: 600;
    padding: 10px 14px; margin: 8px 0;
    font-size: .9rem;
}

.conf-pax-table { display: flex; flex-direction: column; }
.conf-pax-row { display: grid; grid-template-columns: 1.4fr 0.7fr 1fr 1fr; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--c-border); align-items: center; }
.conf-pax-row--head { color: var(--c-text-muted); font-size: .8rem; text-transform: uppercase; letter-spacing: .05em; font-family: var(--ff-display); font-weight: 700; border-bottom: 2px solid var(--c-border); }
.conf-pending { color: var(--c-text-muted); font-style: italic; font-size: .9rem; }
@media (max-width: 640px) {
    .conf-pax-row { grid-template-columns: 1fr 1fr; }
    .conf-pax-row--head { display: none; }
    .conf-pax-row span:nth-child(3)::before { content: "PNR: "; color: var(--c-text-muted); font-size: .8rem; }
    .conf-pax-row span:nth-child(4)::before { content: "Ticket: "; color: var(--c-text-muted); font-size: .8rem; }
}

.conf-baggage { padding-left: 20px; color: var(--c-text); }
.conf-baggage li { margin-bottom: 6px; }

.conf-side { display: flex; flex-direction: column; gap: 18px; position: sticky; top: calc(var(--header-h) + 16px); }
@media (max-width: 980px) { .conf-side { position: static; } }

.conf-fare-card, .conf-support-card {
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--radius-lg);
    padding: 22px;
    box-shadow: var(--shadow-sm);
}
.conf-fare-card h3, .conf-support-card h4 { margin: 0 0 12px; }
.conf-payment-note {
    background: var(--c-blue-100);
    color: var(--c-navy);
    border-radius: var(--radius);
    padding: 10px 12px;
    font-size: .82rem;
    text-align: center;
    margin-top: 12px;
}

.conf-support-card { background: linear-gradient(135deg, var(--c-navy), var(--c-blue)); color: #fff; }
.conf-support-card h4 { color: #fff; }
.conf-support-card p { color: rgba(255,255,255,0.88); margin: 0 0 12px; }
.conf-support-card .eyebrow {
    display: inline-block; background: rgba(255,255,255,0.18); border: 1px solid rgba(255,255,255,0.22);
    border-radius: var(--radius-pill); color: #fff; padding: 3px 12px;
    font-family: var(--ff-display); font-weight: 700; font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 12px;
}
.conf-support-card .btn-primary { background: #fff; color: var(--c-navy); }
.conf-support-card .btn-primary:hover { background: rgba(255,255,255,0.92); color: var(--c-navy); }
.conf-support-card .btn-secondary { background: rgba(255,255,255,0.14); color: #fff; border-color: rgba(255,255,255,0.22); }
.conf-support-card .btn-secondary:hover { background: rgba(255,255,255,0.22); color: #fff; }

/* Utility --------------------------------------------------------------- */

.mt-0 { margin-top: 0 !important; }
.mt-2 { margin-top: 16px; }
.mt-4 { margin-top: 32px; }
.mb-0 { margin-bottom: 0 !important; }

.visually-hidden {
    position: absolute !important;
    width: 1px; height: 1px;
    margin: -1px; padding: 0;
    overflow: hidden;
    clip: rect(0,0,0,0); border: 0;
}
