/**
 * Window (theme 3.1.0, 2026-09-26)
 *
 * Light, photo-framed style layer on top of the 3.0.0 Boarding Pass markup:
 * a rounded destination photograph carries the navigation and the search on
 * the homepage; everything else sits on white and pale-grey surfaces, flat
 * (no shadows), separated by 1px #D9D9D9 lines. One typeface (Nunito Sans),
 * blue for links, search and booking, near-black ink for headings.
 * Full rules: docs/design/WINDOW.md.
 *
 * Contrast (WCAG AA): the reference blue #1878EC is 4.25:1 with white, so
 * text and text-bearing buttons use --win-blue-text #1266D4 (5.42:1 on white,
 * 5.01:1 on #F6F6F6); #1878EC stays for the icon-only search button and
 * decoration (3:1 non-text). Placeholders use #767676 (4.54:1), not #B3B3B3.
 *
 * Loads last (functions.php), so equal-specificity rules here win; the
 * !important flags answer the !important colours in moraine.css/tickets.css.
 */

/* ── Tokens ─────────────────────────────────────────────────────────── */
html body.fs-mock01 {
    --win-blue: #1878EC;
    --win-blue-text: #1266D4;
    --win-blue-deep: #0E52AE;
    --win-blue-tint: #EAF2FD;
    --win-white: #FFFFFF;
    --win-cloud: #F6F6F6;
    --win-mist: #EDEDED;
    --win-line: #D9D9D9;
    --win-ink: #111111;
    --win-graphite: #606060;
    --win-placeholder: #767676;
    --win-font: 'Nunito Sans', 'Proxima Nova', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --win-r-card: 16px;
    --win-r-image: 32px;
    --win-r-pill: 9999px;
    --win-r-control: 12px;

    /* Older layers read these; point them at the Window palette. */
    --mor-bg: #FFFFFF;
    --mor-surface: #FFFFFF;
    --mor-ink: #111111;
    --mor-muted: #606060;
    --mor-teal: #1266D4;
    --mor-teal-dark: #0E52AE;
    --mor-orange: #1266D4;
    --mor-orange-deep: #1266D4;
    --mor-orange-soft: #CFE2FF;
    --mor-cyan: #CFE2FF;
    --mor-green: #1266D4;
    --mor-green-ink: #FFFFFF;
    --mor-line: #D9D9D9;
    --mor-line-soft: #EDEDED;
    --mor-card-line: #D9D9D9;
    --mor-chip: #EDEDED;
    --mor-on-dark: #FFFFFF;
    --mor-radius: 16px;
    --bp-ink: #111111;
    --bp-snow: #F6F6F6;
    --bp-muted: #606060;
    --bp-line: #D9D9D9;
    --bp-teal: #1266D4;
    --bp-teal-ink: #1266D4;
    --bp-mint: #F6F6F6;
    --bp-glacier: #CFE2FF;
    --bp-orange: #1266D4;
    --bp-orange-ink: #1266D4;
    --bp-dash: #D9D9D9;
    --bp-perf: #D9D9D9;
    --bp-mono: var(--win-font);
    --fs-bg: #FFFFFF;
    --fs-ink: #111111;

    background: #FFFFFF !important;
    color: var(--win-ink);
    font-family: var(--win-font) !important;
}

/* One family everywhere, including form controls and the old mono labels. */
html body.fs-mock01 :is(h1, h2, h3, h4, h5, h6, p, a, span, li, dt, dd, label, small, strong, button, input, select, textarea, th, td, summary, div) {
    font-family: var(--win-font) !important;
}
html body.fs-mock01 :is(h1, h2, h3, h4) { color: var(--win-ink); letter-spacing: -0.01em; }
html body.fs-mock01 ::placeholder { color: var(--win-placeholder) !important; opacity: 1; }
html body.fs-mock01 a { color: var(--win-blue-text); }
html body.fs-mock01 :focus-visible { outline: 2px solid var(--win-blue-text) !important; outline-offset: 2px; }

/* ── Header (inner pages): white bar, ink links, selected item in a pill ─ */
html body.fs-mock01 .site-header {
    background: #FFFFFF !important;
    border-bottom: 1px solid var(--win-line) !important;
    box-shadow: none !important;
    backdrop-filter: none;
}
html body.fs-mock01 .site-header .site-title-text { color: var(--win-ink) !important; }
html body.fs-mock01 .site-header .main-navigation a {
    color: var(--win-ink) !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    line-height: 24px;
    padding: 8px 12px !important;
    border: 1px solid transparent;
    border-radius: 1000px;
}
html body.fs-mock01 .site-header .main-navigation a::after { display: none !important; }
html body.fs-mock01 .site-header .main-navigation a:hover { background: var(--win-cloud); color: var(--win-ink) !important; }
html body.fs-mock01 .site-header .main-navigation .current-menu-item > a { border-color: var(--win-ink); }
/* Request a Route: outlined account-style button, not a filled one. */
html body.fs-mock01 .site-header .main-navigation .nav-route-request a {
    background: transparent !important;
    color: var(--win-ink) !important;
    border: 1px solid var(--win-ink) !important;
    border-radius: var(--win-r-control) !important;
    padding: 8px 20px !important;
    box-shadow: none !important;
}
html body.fs-mock01 .site-header .main-navigation .nav-route-request a:hover { background: var(--win-ink) !important; color: #FFFFFF !important; }
/* EN/FR */
html body.fs-mock01 .language-switcher { background: var(--win-cloud) !important; border: 1px solid var(--win-line); }
html body.fs-mock01 .language-switcher .lang-btn { color: var(--win-graphite) !important; font-weight: 700 !important; }
html body.fs-mock01 .language-switcher .lang-btn.active { background: var(--win-ink) !important; color: #FFFFFF !important; }
html body.fs-mock01 .menu-toggle span { background: var(--win-ink) !important; }

/* ── Homepage: the navigation sits inside the photo frame ───────────── */
html body.fs-mock01.home { padding-top: 0 !important; }
html body.fs-mock01.home .site-header {
    position: absolute !important;
    top: 12px; left: 16px; right: 16px;
    background: transparent !important;
    border-bottom: 0 !important;
    padding: 18px 28px !important;
    z-index: 30;
}
html body.fs-mock01.home .site-header .site-title-text { color: #FFFFFF !important; }
html body.fs-mock01.home .site-header .main-navigation:not(.active) a { color: #FFFFFF !important; }
html body.fs-mock01.home .site-header .main-navigation:not(.active) a:hover { background: rgba(255, 255, 255, 0.14); }
html body.fs-mock01.home .site-header .main-navigation:not(.active) .current-menu-item > a { border-color: #FFFFFF; }
html body.fs-mock01.home .site-header .main-navigation:not(.active) .nav-route-request a { color: #FFFFFF !important; border-color: #FFFFFF !important; }
html body.fs-mock01.home .site-header .main-navigation:not(.active) .nav-route-request a:hover { background: #FFFFFF !important; color: var(--win-ink) !important; }
html body.fs-mock01.home .language-switcher { background: rgba(255, 255, 255, 0.16) !important; border-color: rgba(255, 255, 255, 0.7); }
html body.fs-mock01.home .language-switcher .lang-btn { color: #FFFFFF !important; }
html body.fs-mock01.home .language-switcher .lang-btn.active { background: #FFFFFF !important; color: var(--win-ink) !important; }
html body.fs-mock01.home .menu-toggle:not(.active) span { background: #FFFFFF !important; }

/* The frame itself. */
html body.fs-mock01 .fsm-hero.fs-window {
    position: relative;
    margin: 12px 16px 0 !important;
    border-radius: var(--win-r-image) !important;
    padding: 118px 0 56px !important;
    min-height: 0;
    color: #FFFFFF;
    background-color: #2B3A44 !important;
    background-image:
        linear-gradient(90deg, rgba(8, 18, 26, 0.66) 0%, rgba(8, 18, 26, 0.38) 55%, rgba(8, 18, 26, 0.18) 100%),
        linear-gradient(180deg, rgba(8, 18, 26, 0.35) 0%, rgba(8, 18, 26, 0) 30%, rgba(8, 18, 26, 0) 65%, rgba(8, 18, 26, 0.45) 100%),
        image-set(url('https://images.unsplash.com/photo-1703194887679-406a9b5e7cf6?auto=format&fit=crop&q=70&w=1600') 1x,
                  url('https://images.unsplash.com/photo-1703194887679-406a9b5e7cf6?auto=format&fit=crop&q=70&w=2200') 2x) !important;
    background-size: cover !important;
    background-position: center 55% !important;
    overflow: visible;
}
html body.fs-mock01 .fsm-hero.fs-window::before,
html body.fs-mock01 .fsm-hero.fs-window::after { display: none !important; }
html body.fs-mock01 .fs-window .fsm-freshness { color: rgba(255, 255, 255, 0.92) !important; font-size: 14px; font-weight: 600; }
html body.fs-mock01 .fs-window .mor-h1 {
    color: #FFFFFF !important;
    font-weight: 800 !important;
    font-size: clamp(2.4rem, 4.6vw, 4.1rem) !important;
    line-height: 1.02 !important;
    letter-spacing: -0.02em !important;
    text-shadow: 0 1px 24px rgba(0, 0, 0, 0.18);
}
html body.fs-mock01 .fs-window .mor-h1-accent { color: #CFE2FF !important; }
html body.fs-mock01 .fs-window .mor-sub { color: rgba(255, 255, 255, 0.94) !important; font-size: 18px !important; line-height: 1.5; max-width: 34rem; }
html body.fs-mock01 .fs-window .fsm-stat-val { color: #FFFFFF !important; font-weight: 800 !important; font-size: 28px !important; }
html body.fs-mock01 .fs-window .fsm-stat-val.mor-stat-cyan { color: #CFE2FF !important; }
html body.fs-mock01 .fs-window .fsm-stat-label { color: rgba(255, 255, 255, 0.88) !important; font-size: 13px !important; font-weight: 600 !important; letter-spacing: 0.02em !important; text-transform: none !important; }
html body.fs-mock01 .fs-window-caption {
    position: absolute; right: 28px; bottom: 16px; margin: 0;
    color: rgba(255, 255, 255, 0.86); font-size: 13px; font-weight: 600; letter-spacing: 0.01em;
}

/* Deal of the moment: a flat white card on the photo. */
html body.fs-mock01 .fs-window .fs-bp-pass {
    background: #FFFFFF !important;
    border: 0 !important;
    border-radius: 24px !important;
    box-shadow: none !important;
    overflow: hidden;
}
html body.fs-mock01 .fs-window .fs-bp-photo { border-radius: 0 !important; }
html body.fs-mock01 .fs-window .fs-bp-main,
html body.fs-mock01 .fs-window .fs-bp-body { background: #FFFFFF !important; color: var(--win-ink) !important; }
html body.fs-mock01 .fs-window .fs-bp-kicker { color: var(--win-blue-text) !important; letter-spacing: 0.04em !important; font-weight: 800 !important; }
html body.fs-mock01 .fs-window .fs-bp-carrier { color: var(--win-graphite) !important; }
html body.fs-mock01 .fs-window .fs-bp-code { color: var(--win-ink) !important; font-weight: 800 !important; }
html body.fs-mock01 .fs-window .fs-bp-city,
html body.fs-mock01 .fs-window .fs-bp-fields dt,
html body.fs-mock01 .fs-window .fs-bp-fare-label { color: var(--win-graphite) !important; }
html body.fs-mock01 .fs-window .fs-bp-fields dd { color: var(--win-ink) !important; }
html body.fs-mock01 .fs-window .fs-bp-fields { border-color: var(--win-line) !important; }
html body.fs-mock01 .fs-window .fs-bp-arc path,
html body.fs-mock01 .fs-window .fs-bp-arc line { stroke: var(--win-line) !important; }
html body.fs-mock01 .fs-window .fs-bp-plane,
html body.fs-mock01 .fs-window .fs-bp-plane path { color: var(--win-blue) !important; fill: var(--win-blue) !important; }
html body.fs-mock01 .fs-window .fs-bp-stub { background: #FFFFFF !important; border-left: 1px solid var(--win-line) !important; }
html body.fs-mock01 .fs-window .fs-bp-stub::before,
html body.fs-mock01 .fs-window .fs-bp-stub::after,
html body.fs-mock01 .fs-window .fs-bp-barcode { display: none !important; }
html body.fs-mock01 .fs-window .fs-bp-price { color: var(--win-ink) !important; font-weight: 800 !important; }
html body.fs-mock01 .fs-window .fs-bp-cta,
html body.fs-mock01 .fs-window .mor-moment-cta {
    background: var(--win-blue-text) !important;
    color: #FFFFFF !important;
    border-radius: 1000px !important;
    box-shadow: none !important;
    font-weight: 700 !important;
}
html body.fs-mock01 .fs-window .fs-bp-cta:hover { background: var(--win-blue-deep) !important; }

/* Departure airport chips on the photo. */
html body.fs-mock01 .fs-window .fsm-origin-footer-label,
html body.fs-mock01 .fs-window .fsm-origin-chip { color: #FFFFFF !important; }
html body.fs-mock01 .fs-window .fsm-origin-footer-label { font-size: 13px; font-weight: 700; letter-spacing: 0.03em; }
html body.fs-mock01 .fs-window .fsm-origin-pill-sm {
    background: rgba(255, 255, 255, 0.12) !important;
    border: 1px solid rgba(255, 255, 255, 0.75) !important;
    color: #FFFFFF !important;
    border-radius: 1000px !important;
    box-shadow: none !important;
}
html body.fs-mock01 .fs-window .fsm-origin-pill-sm .fsm-origin-pill-sm-city,
html body.fs-mock01 .fs-window .fsm-origin-pill-sm .fsm-origin-pill-sm-code { color: inherit !important; }
html body.fs-mock01 .fs-window .fsm-origin-pill-sm .fsm-origin-pill-sm-code { opacity: 0.8; }
html body.fs-mock01 .fs-window .fsm-origin-pill-sm:hover { background: rgba(255, 255, 255, 0.24) !important; }
html body.fs-mock01 .fs-window .fsm-origin-pill-sm.active { background: #FFFFFF !important; color: var(--win-ink) !important; border-color: #FFFFFF !important; }
html body.fs-mock01 .fs-window .fsm-origin-change { color: #FFFFFF !important; border: 0 !important; text-decoration: underline; text-underline-offset: 3px; background: none !important; }
html body.fs-mock01 .fs-window .fsm-origin-picker { background: #FFFFFF !important; color: var(--win-ink) !important; border: 0 !important; border-radius: var(--win-r-card) !important; box-shadow: none !important; }
html body.fs-mock01 .fs-window .fsm-origin-picker :is(p, label) { color: var(--win-graphite) !important; }
html body.fs-mock01 .fs-window .fsm-origin-picker .fsm-origin-picker-label { color: var(--win-ink) !important; }

/* ── Search: one white pill, fields split by 1px lines, round blue button ─ */
html body.fs-mock01 .fs-window .mor-searchbar {
    position: relative !important;
    margin: 36px 0 0 !important;
    transform: none !important;
    display: flex !important;
    align-items: stretch;
    background: #FFFFFF !important;
    border: 0 !important;
    border-radius: var(--win-r-pill) !important;
    box-shadow: none !important;
    padding: 6px 6px 6px 8px !important;
    max-width: 980px;
}
html body.fs-mock01 .fs-window .mor-sb-cell {
    flex: 1 1 0;
    min-width: 0;
    padding: 10px 20px 8px 24px !important;
    border: 0 !important;
    border-left: 1px solid var(--win-line) !important;
    border-radius: 0 !important;
    background: transparent !important;
}
html body.fs-mock01 .fs-window .mor-sb-cell:first-of-type { border-left: 0 !important; }
html body.fs-mock01 .fs-window .mor-sb-label { color: var(--win-ink) !important; font-size: 13px !important; font-weight: 800 !important; letter-spacing: 0 !important; text-transform: none !important; }
html body.fs-mock01 .fs-window .mor-sb-input {
    color: var(--win-ink) !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background-color: transparent !important;
    box-shadow: none !important;
    padding-left: 0 !important;
}
html body.fs-mock01 .fs-window .mor-sb-btn {
    flex: none;
    width: 58px; height: 58px;
    align-self: center;
    display: inline-flex; align-items: center; justify-content: center;
    padding: 0 !important;
    background: var(--win-blue) !important;
    color: #FFFFFF !important;
    border: 0 !important;
    border-radius: 50% !important;
    box-shadow: none !important;
}
html body.fs-mock01 .fs-window .mor-sb-btn:hover { background: var(--win-blue-text) !important; }
html body.fs-mock01 .fs-window .mor-sb-btn-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ── Sections on white ──────────────────────────────────────────────── */
html body.fs-mock01 .mor-main { padding-top: 48px !important; }
html body.fs-mock01 .fsm-section-title h2 { font-weight: 800 !important; font-size: 28px !important; line-height: 1.25; color: var(--win-ink) !important; }
html body.fs-mock01 .fsm-section-title p { color: var(--win-graphite) !important; }
html body.fs-mock01 .fsm-section-title a { color: var(--win-blue-text) !important; font-weight: 700; }

/* Chips and the scope switch: white pills with a 1px line; chosen = ink. */
html body.fs-mock01 .fsm-tabs .tab {
    background: #FFFFFF !important;
    border: 1px solid var(--win-line) !important;
    border-radius: 1000px !important;
    color: var(--win-ink) !important;
    font-weight: 700 !important;
    box-shadow: none !important;
    padding: 8px 16px !important;
}
html body.fs-mock01 .fsm-tabs .tab .count { color: var(--win-graphite) !important; }
html body.fs-mock01 .fsm-tabs .tab.active { background: var(--win-ink) !important; border-color: var(--win-ink) !important; color: #FFFFFF !important; }
html body.fs-mock01 .fsm-tabs .tab.active .count { color: rgba(255, 255, 255, 0.8) !important; }
html body.fs-mock01 .fs-scope { background: var(--win-cloud) !important; border: 0 !important; border-radius: 1000px !important; }
html body.fs-mock01 .fs-scope .fs-scope-btn { border-radius: 1000px !important; color: var(--win-ink) !important; }
html body.fs-mock01 .fs-scope .fs-scope-btn:hover { background: #FFFFFF !important; }
html body.fs-mock01 .fs-scope .fs-scope-btn.active { background: var(--win-ink) !important; color: #FFFFFF !important; }
html body.fs-mock01 .fs-scope .fs-scope-btn .count { color: var(--win-graphite) !important; }
html body.fs-mock01 .fs-scope .fs-scope-btn.active .count { color: rgba(255, 255, 255, 0.8) !important; }
@media (max-width: 575.98px) { html body.fs-mock01 .fs-scope { border-radius: 20px !important; } html body.fs-mock01 .fs-scope .fs-scope-btn { border-radius: 16px !important; } }

/* ── Fare cards (home grid, /deals/, /weekend-escapes/): flat cloud cards ─ */
html body.fs-mock01 .fs-ticket {
    background: var(--win-cloud) !important;
    border: 0 !important;
    border-radius: var(--win-r-card) !important;
    box-shadow: none !important;
    overflow: hidden;
    transition: none;
}
html body.fs-mock01 .fs-ticket:hover { transform: none !important; box-shadow: none !important; }
html body.fs-mock01 .fs-ticket .fs-ticket-photo { border-radius: 0 !important; }
html body.fs-mock01 .fs-ticket .fs-ticket-perf {
    height: 0 !important; margin: 0 22px !important;
    border-top: 1px solid var(--win-line) !important;
    background: none !important;
}
html body.fs-mock01 .fs-ticket .fs-ticket-perf::before,
html body.fs-mock01 .fs-ticket .fs-ticket-perf::after,
html body.fs-mock01 .fs-ticket::before,
html body.fs-mock01 .fs-ticket::after { display: none !important; }
html body.fs-mock01 .fs-ticket .fs-ticket-code { color: var(--win-ink) !important; font-weight: 800 !important; letter-spacing: 0 !important; }
html body.fs-mock01 .fs-ticket .fs-ticket-city,
html body.fs-mock01 .fs-ticket .fs-ticket-trip,
html body.fs-mock01 .fs-ticket .fs-ticket-airline { color: var(--win-graphite) !important; }
html body.fs-mock01 .fs-ticket .fs-ticket-dates { color: var(--win-ink) !important; font-weight: 700 !important; letter-spacing: 0 !important; }
html body.fs-mock01 .fs-ticket .fs-ticket-fact { color: var(--win-graphite) !important; font-weight: 800 !important; letter-spacing: 0.04em !important; }
html body.fs-mock01 .fs-ticket .fs-ticket-fact.is-hot,
html body.fs-mock01 .fs-ticket .fs-ticket-fact.is-warm { color: var(--win-blue-text) !important; }
html body.fs-mock01 .fs-ticket .fs-ticket-line { color: var(--win-line) !important; }
html body.fs-mock01 .fs-ticket .fs-ticket-line svg { color: var(--win-blue) !important; }
html body.fs-mock01 .fs-ticket .fs-ticket-fare,
html body.fs-mock01 .fs-ticket .fs-ticket-fare .price { color: var(--win-ink) !important; font-weight: 800 !important; }
html body.fs-mock01 .fs-ticket .fs-ticket-fare small { color: var(--win-graphite) !important; }
html body.fs-mock01 .fs-ticket .fs-ticket-cta {
    background: #FFFFFF !important;
    color: var(--win-blue-text) !important;
    border: 1px solid var(--win-line) !important;
    border-radius: 1000px !important;
    box-shadow: none !important;
    font-weight: 700 !important;
}
html body.fs-mock01 .fs-ticket .fs-ticket-cta:hover { background: var(--win-blue-text) !important; border-color: var(--win-blue-text) !important; color: #FFFFFF !important; }

/* Popular routes and other white panels: flat, 1px line. */
html body.fs-mock01 .mor-routes-card,
html body.fs-mock01 .fsm-map-card {
    background: #FFFFFF !important;
    border: 1px solid var(--win-line) !important;
    border-radius: var(--win-r-card) !important;
    box-shadow: none !important;
}

/* Deal alerts: the blue promotional tile. */
html body.fs-mock01 .mor-alerts {
    background: var(--win-blue-text) !important;
    color: #FFFFFF !important;
    border: 0 !important;
    border-radius: var(--win-r-image) !important;
    box-shadow: none !important;
}
html body.fs-mock01 .mor-alerts :is(.mor-alerts-title, .mor-alerts-sub, .mor-alerts-trust, .mor-alerts-consent, label, p, span, a) { color: #FFFFFF !important; }
html body.fs-mock01 .mor-alerts :is(input[type=email], select) {
    background: #FFFFFF !important; color: var(--win-ink) !important;
    border: 0 !important; border-radius: 1000px !important; box-shadow: none !important;
}
html body.fs-mock01 .mor-alerts .mor-alerts-btn {
    background: #FFFFFF !important; color: var(--win-blue-text) !important;
    border: 0 !important; border-radius: 1000px !important; font-weight: 800 !important; box-shadow: none !important;
}
html body.fs-mock01 .mor-alerts .mor-alerts-btn:hover { background: var(--win-blue-tint) !important; }
html body.fs-mock01 .mor-alerts .mor-alerts-error { color: #FFFFFF !important; text-decoration: underline; }

/* ── Inner pages: title in a rounded photo frame (plane window) ─────── */
html body.fs-mock01 .fsm-page-hero {
    margin: 12px 16px 0 !important;
    border-radius: var(--win-r-image) !important;
    padding: 48px 0 44px !important;
    background-color: #2B3A44 !important;
    background-image:
        linear-gradient(90deg, rgba(8, 18, 26, 0.72) 0%, rgba(8, 18, 26, 0.45) 60%, rgba(8, 18, 26, 0.3) 100%),
        url('https://images.unsplash.com/photo-1488085061387-422e29b40080?auto=format&fit=crop&q=65&w=1800') !important;
    background-size: cover !important;
    background-position: center 40% !important;
    box-shadow: none !important;
}
html body.fs-mock01 .fsm-page-hero::before,
html body.fs-mock01 .fsm-page-hero::after { display: none !important; }
html body.fs-mock01 .fsm-page-hero h1 { color: #FFFFFF !important; font-weight: 800 !important; }
html body.fs-mock01 .fsm-page-hero .lead,
html body.fs-mock01 .fsm-page-hero p { color: rgba(255, 255, 255, 0.94) !important; }

/* Generic content panels (the white box the shortcodes sit in). */
html body.fs-mock01 .fsm-shortcode-wrap { box-shadow: none !important; }

/* /deals/ explainer and summary line. */
html body.fs-mock01 details.fs-deals-explainer { background: var(--win-cloud) !important; border: 0 !important; }
html body.fs-mock01 .fs-results-summary { background: transparent !important; border: 0 !important; color: var(--win-graphite) !important; padding-left: 0 !important; }
html body.fs-mock01 .fs-results-summary .fs-deal-count { color: var(--win-ink) !important; }
html body.fs-mock01 .fs-roundtrip-banner { background: var(--win-cloud) !important; border: 0 !important; color: var(--win-graphite) !important; border-radius: 1000px !important; }

/* Route page hero: rounded photo frame; blue primary action. */
html body.fs-mock01 .fs-route-header { border-radius: var(--win-r-image) !important; box-shadow: none !important; }
html body.fs-mock01 .fs-route-cta-primary { background: var(--win-blue-text) !important; color: #FFFFFF !important; border: 0 !important; border-radius: 1000px !important; box-shadow: none !important; }
html body.fs-mock01 .fs-route-cta-primary:hover { background: var(--win-blue-deep) !important; }
html body.fs-mock01 .fs-route-cta-secondary { border-radius: 1000px !important; }

/* /last-minute/ search panel: a light cloud surface instead of dark teal. */
html body.fs-mock01 .fs-lm .fs-lm-hero {
    background: var(--win-cloud) !important;
    border: 0 !important;
    border-radius: var(--win-r-image) !important;
    box-shadow: none !important;
}
html body.fs-mock01 .fs-lm .fs-lm-hero::before,
html body.fs-mock01 .fs-lm .fs-lm-hero::after { display: none !important; }
html body.fs-mock01 .fs-lm .fs-lm-hero :is(h1, h2, h3, h4) { color: var(--win-ink) !important; }
html body.fs-mock01 .fs-lm .fs-lm-hero :is(p, label, span, a) { color: var(--win-graphite) !important; }
html body.fs-mock01 .fs-lm .fs-lm-hero a { color: var(--win-blue-text) !important; }
html body.fs-mock01 .fs-lm .fs-lm-hero button:not([type=submit]):not(.fs-lm-search-btn) {
    background: #FFFFFF !important; border: 1px solid var(--win-line) !important; border-radius: 1000px !important; box-shadow: none !important;
}
html body.fs-mock01 .fs-lm .fs-lm-hero button:not([type=submit]):not(.fs-lm-search-btn) :is(span, strong) { color: var(--win-ink) !important; }
html body.fs-mock01 .fs-lm .fs-lm-hero button.active,
html body.fs-mock01 .fs-lm .fs-lm-hero button[aria-pressed=true] { background: var(--win-ink) !important; border-color: var(--win-ink) !important; }
html body.fs-mock01 .fs-lm .fs-lm-hero button.active :is(span, strong),
html body.fs-mock01 .fs-lm .fs-lm-hero button[aria-pressed=true] :is(span, strong) { color: #FFFFFF !important; }
html body.fs-mock01 .fs-lm .fs-lm-hero :is(input, select) { background: #FFFFFF !important; color: var(--win-ink) !important; border: 1px solid var(--win-line) !important; border-radius: var(--win-r-control) !important; }

/* Primary buttons across plugin pages: blue pill. */
html body.fs-mock01 :is(.fs-search-btn, .fs-search-btn-premium, .fs-lm-search-btn, .fs-rr-submit, .fs-book-btn-premium, .fs-flight-book-btn, .fs-no-results-btn:not(.is-secondary), .fs-blog-read-more, .fs-404-btn:first-child) {
    background: var(--win-blue-text) !important;
    color: #FFFFFF !important;
    border: 0 !important;
    border-radius: 1000px !important;
    box-shadow: none !important;
}

/* ── Footer: mist band ──────────────────────────────────────────────── */
html body.fs-mock01 footer.site-footer.mor-footer { background: var(--win-mist) !important; border-top: 0 !important; }
html body.fs-mock01 .mor-footer .mor-footer-wordmark { color: var(--win-ink) !important; }
html body.fs-mock01 .mor-footer .mor-footer-links a { color: var(--win-blue-text) !important; font-size: 14px; }
html body.fs-mock01 .mor-footer .mor-footer-copy { color: var(--win-graphite) !important; }

/* Phone quick bar. */
html body.fs-mock01 .fs-mobile-bar { background: #FFFFFF !important; border-top: 1px solid var(--win-line) !important; box-shadow: none !important; }
html body.fs-mock01 .fs-mobile-bar .fs-mobile-bar-primary { background: var(--win-blue-text) !important; color: #FFFFFF !important; border-radius: 1000px !important; }
html body.fs-mock01 .fs-mobile-bar .fs-mobile-bar-icon { color: var(--win-ink) !important; border-color: var(--win-line) !important; }

/* ── Phones and tablets ─────────────────────────────────────────────── */
@media (max-width: 991.98px) {
    html body.fs-mock01 .fsm-hero.fs-window { padding: 104px 0 48px !important; }
    html body.fs-mock01 .fs-window .mor-searchbar {
        flex-direction: column;
        border-radius: 24px !important;
        padding: 6px !important;
    }
    html body.fs-mock01 .fs-window .mor-sb-cell { border-left: 0 !important; border-top: 1px solid var(--win-line) !important; padding: 10px 16px !important; }
    html body.fs-mock01 .fs-window .mor-sb-cell:first-of-type { border-top: 0 !important; }
    html body.fs-mock01 .fs-window .mor-sb-btn {
        width: 100%; height: 50px; margin-top: 6px;
        border-radius: 1000px !important;
        background: var(--win-blue-text) !important;
        gap: 8px; font-weight: 800; font-size: 16px;
    }
    html body.fs-mock01 .fs-window .mor-sb-btn-text { position: static; width: auto; height: auto; overflow: visible; clip: auto; }
}
@media (max-width: 768px) {
    html body.fs-mock01.home .site-header { top: 8px; left: 8px; right: 8px; padding: 14px 16px !important; }
    html body.fs-mock01 .fsm-hero.fs-window { margin: 8px 8px 0 !important; border-radius: 24px !important; padding: 92px 0 44px !important; }
    html body.fs-mock01 .fsm-page-hero { margin: 8px 8px 0 !important; border-radius: 24px !important; padding: 32px 0 30px !important; }
    html body.fs-mock01 .fs-window .fs-bp-stub { border-left: 0 !important; border-top: 1px solid var(--win-line) !important; }
    html body.fs-mock01 .fs-window-caption { right: 18px; bottom: 12px; font-size: 12px; }
    html body.fs-mock01 .fsm-section-title h2 { font-size: 24px !important; }
    html body.fs-mock01 .mor-alerts { border-radius: 24px !important; }
}

/* ── UAT round 1 fixes ──────────────────────────────────────────────── */
/* Homepage background: body.home outranked the token block. */
html body.fs-mock01.home,
html body.fs-mock01.front-page-mock01 { background: #FFFFFF !important; }
/* Wordmark: an old gradient-text fix pins -webkit-text-fill-color. */
html body.fs-mock01 .site-header .site-title-text { -webkit-text-fill-color: var(--win-ink) !important; }
html body.fs-mock01.home .site-header .site-title-text { -webkit-text-fill-color: #FFFFFF !important; color: #FFFFFF !important; }

/* Form controls: 1px line, never the old navy border. */
html body.fs-mock01 select,
html body.fs-mock01 input[type=text],
html body.fs-mock01 input[type=email],
html body.fs-mock01 input[type=date],
html body.fs-mock01 input[type=number],
html body.fs-mock01 textarea { border-color: var(--win-line) !important; }

/* Secondary pills and "show more" buttons: white, 1px line, blue text. */
html body.fs-mock01 :is(.fs-lowonly-chip, .fs-page-btn.fs-show-more, .fs-swap-btn) {
    background: #FFFFFF !important;
    border: 1px solid var(--win-line) !important;
    color: var(--win-blue-text) !important;
    border-radius: 1000px !important;
    box-shadow: none !important;
}
html body.fs-mock01 :is(.fs-lowonly-chip, .fs-page-btn.fs-show-more, .fs-swap-btn):hover { border-color: var(--win-blue-text) !important; }
html body.fs-mock01 .fs-lowonly-chip.is-active { background: var(--win-ink) !important; border-color: var(--win-ink) !important; color: #FFFFFF !important; }
html body.fs-mock01 .fs-swap-btn svg { color: var(--win-blue-text) !important; stroke: currentColor; }
html body.fs-mock01 .fs-pagination.fs-show-more-wrap,
html body.fs-mock01 .fs-deals-links-panel { border-color: var(--win-line) !important; }
html body.fs-mock01 .fs-deals-links-panel a { border-color: var(--win-line) !important; color: var(--win-blue-text) !important; background: #FFFFFF !important; }
html body.fs-mock01 .fs-follow-btn { background: var(--win-blue-text) !important; border-radius: 1000px !important; }

/* /search/ */
html body.fs-mock01 .fs-quick-card { border-color: var(--win-line) !important; box-shadow: none !important; }
html body.fs-mock01 .fs-quick-card.active { background: var(--win-ink) !important; border-color: var(--win-ink) !important; }
html body.fs-mock01 .fs-quick-card.active * { color: #FFFFFF !important; }
html body.fs-mock01 .fs-badge.fs-badge-direct,
html body.fs-mock01 .fs-route-summary-stops.nonstop { color: var(--win-ink) !important; }

/* /last-minute/: labels on the (now light) panel, map chrome, fare list. */
html body.fs-mock01 .fs-lm .fs-lm-ctrl-label { color: var(--win-graphite) !important; }
html body.fs-mock01 .fs-lm :is(.leaflet-control-zoom-in, .leaflet-control-zoom-out) { background: #FFFFFF !important; color: var(--win-ink) !important; border-color: var(--win-line) !important; }
html body.fs-mock01 .fs-lm .fs-map-legend { background: #FFFFFF !important; border: 1px solid var(--win-line) !important; box-shadow: none !important; }
html body.fs-mock01 .fs-lm .fs-map-legend * { color: var(--win-ink) !important; }
html body.fs-mock01 .fs-lm .fs-lm-float-bar { background: #FFFFFF !important; border: 1px solid var(--win-line) !important; box-shadow: none !important; }
html body.fs-mock01 .fs-lm .fs-lm-float-bar * { color: var(--win-ink) !important; }
html body.fs-mock01 .fs-mk-price { border-color: rgba(255, 255, 255, 0.55) !important; }
html body.fs-mock01 .fs-lm-static-price { color: var(--win-ink) !important; }
html body.fs-mock01 .fs-lm-static,
html body.fs-mock01 .fs-ssr-deals { border-color: var(--win-line) !important; box-shadow: none !important; border-radius: var(--win-r-card) !important; }

/* /blog/ cards: flat cloud surfaces. */
html body.fs-mock01 .fs-blog-card { background: var(--win-cloud) !important; border: 0 !important; box-shadow: none !important; border-radius: var(--win-r-card) !important; overflow: hidden; }
html body.fs-mock01 .fs-blog-card:hover { transform: none !important; box-shadow: none !important; }
html body.fs-mock01 .fs-blog-card-thumb-wrap { background: var(--win-mist) !important; }
html body.fs-mock01 .fs-blog-card a { color: var(--win-ink) !important; }
html body.fs-mock01 .fs-blog-card-excerpt,
html body.fs-mock01 .fs-blog-card-meta,
html body.fs-mock01 .fs-blog-card-meta span { color: var(--win-graphite) !important; }

/* About / Privacy highlights. */
html body.fs-mock01 .fs-about-card { border-color: var(--win-line) !important; box-shadow: none !important; background: #FFFFFF !important; }
html body.fs-mock01 .fs-about-card.fs-about-highlight { background: var(--win-cloud) !important; border: 0 !important; }
html body.fs-mock01 .fs-privacy-highlight { background: var(--win-blue-tint) !important; color: var(--win-ink) !important; border: 0 !important; }
html body.fs-mock01 .fs-privacy-highlight * { color: var(--win-ink) !important; }
html body.fs-mock01 :is(.fs-legal-page, .fs-privacy-page, .fsm-page-content) a { color: var(--win-blue-text) !important; }

/* Route page: price history and fares. */
html body.fs-mock01 .fs-price-history { border-color: var(--win-line) !important; box-shadow: none !important; }
html body.fs-mock01 .fs-ph-figure { border-color: var(--win-line) !important; background: var(--win-cloud) !important; }
html body.fs-mock01 :is(.fs-ph-figure-label, .fs-price-history-verdict--neutral, .fs-price-history-range) { color: var(--win-graphite) !important; }
html body.fs-mock01 .fs-ph-figure-value { color: var(--win-ink) !important; }
html body.fs-mock01 .fs-ph-figure-value--now { color: var(--win-blue-text) !important; }
html body.fs-mock01 .fs-ph-key { border-color: var(--win-graphite) !important; }
html body.fs-mock01 .fs-top5-code { color: var(--win-graphite) !important; background: var(--win-cloud) !important; }
html body.fs-mock01 .fs-flight-price { color: var(--win-ink) !important; }
/* /flight-route/ hub links */
html body.fs-mock01 .fs-route-hub a,
html body.fs-mock01 .fs-hub a { border-color: var(--win-line) !important; }

/* Phone homepage: search right under the headline, deal card after it. */
@media (max-width: 991.98px) {
    html body.fs-mock01 .fs-window > .container { display: flex; flex-direction: column; }
    html body.fs-mock01 .fs-window > .container > .row { display: contents; }
    html body.fs-mock01 .fs-window > .container > .row > .col-lg-6:first-child { order: 1; }
    html body.fs-mock01 .fs-window > .container > .mor-searchbar { order: 2; margin: 24px 0 8px !important; }
    html body.fs-mock01 .fs-window > .container > .row > .fs-hero-pass-col { order: 3; margin-top: 24px; }
    html body.fs-mock01 .fs-window > .container > .fs-window-caption { order: 4; }
}
html body.fs-mock01 .fs-search-page .fs-badge.fs-badge-direct,
html body.fs-mock01 span.fs-badge.fs-badge-direct { color: var(--win-ink) !important; }
html body.fs-mock01 .fs-blog-hero-meta span,
html body.fs-mock01 .fs-price-history-axis span { color: var(--win-graphite) !important; }
html body.fs-mock01 .fs-blog-links a { border-color: var(--win-line) !important; color: var(--win-blue-text) !important; background: #FFFFFF !important; border-radius: 1000px !important; }
html body.fs-mock01 .fs-route-hub-links a { background: var(--win-blue-text) !important; border-color: var(--win-blue-text) !important; color: #FFFFFF !important; border-radius: 1000px !important; }
html body.fs-mock01 .fs-list-more { background: #FFFFFF !important; border: 1px solid var(--win-line) !important; color: var(--win-blue-text) !important; border-radius: 1000px !important; }
html body.fs-mock01 .fs-filters-toggle { border-color: var(--win-line) !important; border-radius: 1000px !important; color: var(--win-ink) !important; background: #FFFFFF !important; }

/* ── UAT round 2 fixes ──────────────────────────────────────────────── */
/* Buttons on dark/photo surfaces: older, more specific link rules painted
   their text blue (blue on blue). Pin white text with a stronger selector. */
html body.fs-mock01 :is(.fs-route-header, .fs-route-page, .fs-route-actions) a.fs-route-cta-primary.fs-route-cta-primary,
html body.fs-mock01 :is(.fs-route-header, .fs-route-page, .fs-route-actions) a.fs-route-cta-primary.fs-route-cta-primary * { color: #FFFFFF !important; }
html body.fs-mock01 :is(.fs-route-header, .fs-route-page, .fs-route-actions) a.fs-route-cta-secondary.fs-route-cta-secondary {
    color: #FFFFFF !important; background: rgba(255, 255, 255, 0.12) !important; border: 1px solid rgba(255, 255, 255, 0.75) !important;
}
html body.fs-mock01 :is(.fs-route-header, .fs-route-page, .fs-route-actions) a.fs-route-cta-secondary.fs-route-cta-secondary * { color: #FFFFFF !important; }
html body.fs-mock01 .fs-lm .fs-lm-hero button.fs-lm-search-btn.fs-lm-search-btn,
html body.fs-mock01 .fs-lm .fs-lm-hero button.fs-lm-search-btn.fs-lm-search-btn * { color: #FFFFFF !important; }
html body.fs-mock01 .fs-lm .fs-lm-hero button.fs-lm-search-btn:disabled { background: var(--win-graphite) !important; }

/* Inline SVG illustrations still carried the retired colours. */
html body.fs-mock01 svg [stroke="#12808F" i],
html body.fs-mock01 svg [stroke="#0F2430" i] { stroke: var(--win-blue); }
html body.fs-mock01 svg [fill="#12808F" i],
html body.fs-mock01 svg [fill="#E1682B" i],
html body.fs-mock01 svg [fill="#F79A56" i] { fill: var(--win-blue); }
html body.fs-mock01 svg [fill="#0F2430" i] { fill: var(--win-ink); }
html body.fs-mock01 svg [stroke="#5FD3DF" i] { stroke: var(--win-blue); }
/* ...except on the dark route photo, where the path is drawn in white. */
html body.fs-mock01 .fs-route-path-svg [fill="#E1682B" i],
html body.fs-mock01 .fs-route-path-svg [fill="#F79A56" i] { fill: #FFFFFF; }
html body.fs-mock01 .fs-route-path-svg [stroke="#5FD3DF" i] { stroke: #FFFFFF; }

/* Phone: the photo label sits under the chips instead of over them. */
@media (max-width: 991.98px) {
    html body.fs-mock01 .fs-window-caption { position: static; text-align: right; margin: 14px 0 0; }
    html body.fs-mock01 .fsm-hero.fs-window { padding-bottom: 20px !important; }
}
/* Scope counts were faded (opacity .75): graphite at full strength is 5.8:1. */
html body.fs-mock01 .fs-scope .fs-scope-btn .count,
html body.fs-mock01 .fsm-tabs .tab .count { opacity: 1 !important; }

/* ── UAT round 3 fixes ──────────────────────────────────────────────── */
/* White canvas on every template (404 and others had their own grey). */
html body.fs-mock01.fs-mock01 { background: #FFFFFF !important; }
html body.fs-mock01 .fs-404-ticket { box-shadow: none !important; }

/* Phone menu: a white panel with ink links (was the old dark panel). */
@media (max-width: 991.98px) {
    html body.fs-mock01 .site-header #main-nav.active {
        background: #FFFFFF !important;
        border: 1px solid var(--win-line) !important;
        border-radius: 24px !important;
        box-shadow: none !important;
        margin-top: 8px;
        left: 0; right: 0;
    }
    html body.fs-mock01 .site-header #main-nav.active a,
    html body.fs-mock01 .site-header #main-nav.active a:hover,
    html body.fs-mock01 .site-header #main-nav.active a:focus-visible { color: var(--win-ink) !important; background: transparent; }
    html body.fs-mock01 .site-header #main-nav.active .current-menu-item > a { color: var(--win-ink) !important; border-color: var(--win-ink) !important; }
    html body.fs-mock01 .site-header #main-nav.active .nav-route-request a {
        color: var(--win-ink) !important; border: 1px solid var(--win-ink) !important;
        padding: 8px 20px !important; background: transparent !important;
    }
    html body.fs-mock01.home .menu-toggle.active span { background: #FFFFFF !important; }
}
/* Phones download the 900px hero (the preload in functions.php picks the
   same file through imagesrcset), not the 1600px desktop one. */
@media (max-width: 768px) {
    html body.fs-mock01 .fsm-hero.fs-window {
        background-image:
            linear-gradient(180deg, rgba(8, 18, 26, 0.55) 0%, rgba(8, 18, 26, 0.35) 45%, rgba(8, 18, 26, 0.55) 100%),
            url('https://images.unsplash.com/photo-1703194887679-406a9b5e7cf6?auto=format&fit=crop&q=70&w=900') !important;
    }
    html body.fs-mock01 .fsm-page-hero {
        background-image:
            linear-gradient(90deg, rgba(8, 18, 26, 0.72) 0%, rgba(8, 18, 26, 0.45) 60%, rgba(8, 18, 26, 0.3) 100%),
            url('https://images.unsplash.com/photo-1488085061387-422e29b40080?auto=format&fit=crop&q=65&w=900') !important;
    }
}
