/**
 * MORAINE — the 2026-08 rebrand token layer.
 * Source of truth: docs/design/moraine-homepage-reference.html and
 * docs/design/moraine-brand-guidelines.html (owner-approved design).
 *
 * Loads AFTER style.css and mock01-polish.css and remaps the old
 * coral/navy system onto the Moraine petrol/teal/orange system. New work
 * should use the --mor-* variables directly; the override blocks below
 * exist so every legacy page inherits the palette without touching each
 * template at once (templates are being migrated by section).
 *
 * Contrast notes (all measured):
 *  - white on --mor-teal   #12808F : 4.66:1  AA ✓ (primary buttons)
 *  - white on --mor-orange #E1682B : 3.61:1  — large text/badges only;
 *    body-size white-on-orange must use --mor-orange-deep #C2410C-like
 *    #B54E14 (5.1:1) — defined as --mor-orange-deep.
 *  - --mor-ink   #0F2430 on --mor-bg #EEF5F6 : 14.9:1 ✓
 *  - --mor-muted #4A6672 on white           : 5.6:1  ✓
 */

:root,
body.fs-mock01 {
    /* Moraine tokens */
    --mor-bg:        #EEF5F6;
    --mor-surface:   #FFFFFF;
    --mor-ink:       #0F2430;
    --mor-muted:     #4A6672;
    --mor-teal:      #12808F;   /* primary actions, links, prices */
    --mor-teal-dark: #0D6470;
    --mor-orange:    #E1682B;   /* accent: CTAs, badges, hover */
    --mor-orange-deep:#B54E14;  /* white body text passes AA on this */
    --mor-orange-soft:#F79A56;  /* hero highlight line */
    --mor-cyan:      #5FD3DF;   /* stat accents on dark */
    --mor-green:     #123C2B;   /* alerts/subscribe panel */
    --mor-green-ink: #EEF7F1;
    --mor-line:      #D9E7E9;
    --mor-line-soft: #E7F2F3;
    --mor-card-line: #DEEBED;
    --mor-chip:      #BFE3E7;
    --mor-on-dark:   #F2F8F9;
    --mor-radius:    20px;
    --mor-pill:      999px;

    /* Remap the legacy variable system so every var()-based rule follows */
    --fs-primary:      var(--mor-teal);
    --fs-accent:       var(--mor-orange);
    --fs-ink:          var(--mor-ink);
    --fs-muted:        var(--mor-muted);
    --fs-muted-light:  #6B8792;
    --fs-text-muted:   var(--mor-muted);
    --fs-text-primary: var(--mor-ink);
    --fs-accent-purple: var(--mor-teal);   /* legacy gradients collapse to brand */
    --fs-accent-pink:   var(--mor-orange);
    --coral:        var(--mor-orange);
    --coral-deep:   var(--mor-orange-deep);
    --coral-dk:     var(--mor-teal-dark);
    --cyan:         var(--mor-cyan);
    --emerald:      #1B7A4B;
    --muted:        var(--mor-muted);
}

/* ── Global surfaces ─────────────────────────────────────────────── */
body.fs-mock01 { background: var(--mor-bg); color: var(--mor-ink); }
body.fs-mock01 a { color: var(--mor-teal); }
body.fs-mock01 a:hover { color: var(--mor-orange); }

/* ── Header / nav (white bar per Moraine) ────────────────────────── */
body.fs-mock01 .site-header,
body.fs-mock01 header.fs-header {
    background: var(--mor-surface) !important;
    border-bottom: 1px solid var(--mor-line);
    box-shadow: none;
}
body.fs-mock01 .site-header a,
body.fs-mock01 .site-header .nav-menu a,
body.fs-mock01 header.fs-header a { color: var(--mor-muted) !important; }
body.fs-mock01 .site-header a:hover,
body.fs-mock01 header.fs-header a:hover { color: var(--mor-teal) !important; }
body.fs-mock01 .site-header .site-title,
body.fs-mock01 .site-header .fs-logo-text {
    color: var(--mor-ink) !important;
    font-weight: 800;
    letter-spacing: -.03em;
    text-transform: lowercase;
}
body.fs-mock01 .lang-btn {
    background: var(--mor-line-soft) !important;
    color: var(--mor-muted) !important;
    border: none !important;
    border-radius: var(--mor-pill) !important;
}
body.fs-mock01 .lang-btn.active {
    background: var(--mor-surface) !important;
    color: var(--mor-ink) !important;
    box-shadow: 0 1px 3px rgba(15,36,48,.12);
}
body.fs-mock01 .nav-route-request a,
body.fs-mock01 .fs-header-cta {
    background: var(--mor-orange) !important;
    color: #fff !important;
    border-radius: var(--mor-pill) !important;
}

/* ── Legacy coral -> orange, navy -> petrol hard overrides ───────── */
/* Buttons and CTAs that hardcoded the coral gradient */
body.fs-mock01 .fsm-moment a.btn-light,
body.fs-mock01 .fsm-moment a.btn-moment-cta,
body.fs-mock01 .fs-btn-primary,
body.fs-mock01 .fareseeker-book-btn,
body.fs-mock01 .fs-rr-btn-primary,
body.fs-mock01 .fs-trip-btn.active {
    background: var(--mor-teal) !important;
    color: #fff !important;
    box-shadow: 0 2px 8px rgba(18,128,143,.3) !important;
    border-radius: var(--mor-pill) !important;
}
body.fs-mock01 .fs-btn-primary:hover,
body.fs-mock01 .fareseeker-book-btn:hover { background: var(--mor-teal-dark) !important; }

/* Badges keep orange (accent role) */
body.fs-mock01 .fsm-badge,
body.fs-mock01 .fareseeker-badge-value,
body.fs-mock01 .fs-deal-badge,
body.fs-mock01 .fareseeker-savings-badge {
    background: var(--mor-orange) !important;
    color: #fff !important;
    border-radius: var(--mor-pill) !important;
}

/* Cards: white, soft petrol shadows, Moraine radius */
body.fs-mock01 .fsm-deal-card,
body.fs-mock01 .fareseeker-deal-card,
body.fs-mock01 .fareseeker-route-card,
body.fs-mock01 .fs-card {
    background: var(--mor-surface);
    border: 1px solid var(--mor-card-line) !important;
    border-radius: var(--mor-radius) !important;
    box-shadow: 0 12px 30px -20px rgba(15,36,48,.35) !important;
}

/* Prices move to teal (Moraine treats price as a teal figure) */
body.fs-mock01 .fsm-deal-card .price,
body.fs-mock01 .fareseeker-price,
body.fs-mock01 .fs-price { color: var(--mor-teal) !important; }

/* Dark panels (hero, footer, route header) -> petrol */
body.fs-mock01 .site-footer,
body.fs-mock01 footer.fs-footer {
    background: var(--mor-surface) !important;
    color: var(--mor-muted) !important;
    border-top: 1px solid var(--mor-line);
}
body.fs-mock01 .site-footer a { color: var(--mor-muted) !important; }
body.fs-mock01 .site-footer a:hover { color: var(--mor-teal) !important; }

/* Old purple/pink gradient leftovers anywhere -> flat teal */
body.fs-mock01 [style*="7c3aed"], body.fs-mock01 [class*="gradient"] { /* templates migrated individually */ }

/* Focus rings site-wide */
body.fs-mock01 input:focus,
body.fs-mock01 select:focus,
body.fs-mock01 button:focus-visible {
    outline: none;
    border-color: var(--mor-teal) !important;
    box-shadow: 0 0 0 3px rgba(18,128,143,.18) !important;
}

/* Airport-preference popup follows the brand */
#fs-airport-popup .fs-ap-card { background: var(--mor-ink) !important; }
#fs-airport-popup .fs-ap-btn { background: var(--mor-orange) !important; }

/* fs_msg toast */
#fs-msg-toast { background: var(--mor-ink) !important; }

/* ══════════════════════════════════════════════════════════════════
   /search/ — Moraine retheme (2026-08)
   Replaces the legacy dark (#1e293b) search card + purple-gradient
   trip toggle with the Moraine white search bar. Every rule is scoped
   to body.fs-mock01 .fs-search-page and loads last, so it outranks the
   dark defaults in style.css and the interim fixes in mock01-polish.
   Contrast: teal button text is white on #12808F (5.34:1 AA);
   labels are --mor-muted #4A6672 on white (5.6:1).
   ══════════════════════════════════════════════════════════════════ */

/* Search form card: white Moraine surface */
body.fs-mock01 .fs-search-page .fs-advanced-search-form {
    background: var(--mor-surface) !important;
    backdrop-filter: none;
    border: 1px solid var(--mor-card-line);
    border-radius: var(--mor-radius);
    box-shadow: 0 12px 30px -20px rgba(15, 36, 48, .35);
    color: var(--mor-ink);
    padding: 1.75rem;
}
body.fs-mock01 .fs-search-page .fs-search-form-wrapper {
    margin-top: 1.5rem;
}

/* Trip type toggle: light pill track, teal active (active state is set
   globally in the override block above) */
body.fs-mock01 .fs-search-page .fs-trip-type-toggle {
    background: var(--mor-line-soft);
    border-radius: var(--mor-pill);
}
body.fs-mock01 .fs-search-page .fs-trip-btn {
    color: var(--mor-muted);
    border-radius: var(--mor-pill);
}
body.fs-mock01 .fs-search-page .fs-trip-btn:hover:not(.active) {
    color: var(--mor-ink);
}

/* Tiny uppercase labels — must out-rank the dark-card light-label
   !important rule in style.css */
body.fs-mock01 .fs-search-page .fs-field-label,
body.fs-mock01 .fs-search-page .fs-passenger-label,
body.fs-mock01 .fs-search-page .fs-filter-label,
body.fs-mock01 .fs-search-page .fs-results-sort label {
    color: var(--mor-muted) !important;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
}
body.fs-mock01 .fs-search-page .fs-passenger-label {
    text-transform: none;
    font-size: .9rem;
    font-weight: 500;
    letter-spacing: 0;
}

/* Inputs: white, Moraine borders, 14px radii */
body.fs-mock01 .fs-search-page .fs-text-input,
body.fs-mock01 .fs-search-page .fs-select-input,
body.fs-mock01 .fs-search-page .fs-date-input {
    background: var(--mor-surface);
    border: 1px solid var(--mor-line);
    border-radius: 14px;
    color: var(--mor-ink);
}
body.fs-mock01 .fs-search-page .fs-text-input::placeholder {
    color: var(--fs-muted-light);
    opacity: 1;
}
body.fs-mock01 .fs-search-page .fs-select-input option {
    background: var(--mor-surface);
    color: var(--mor-ink);
}

/* Autocomplete dropdown */
body.fs-mock01 .fs-search-page .fs-autocomplete-dropdown {
    background: var(--mor-surface);
    border: 1px solid var(--mor-card-line);
    border-radius: 14px;
    box-shadow: 0 16px 34px -18px rgba(15, 36, 48, .4);
    color: var(--mor-ink);
}
body.fs-mock01 .fs-search-page .fs-autocomplete-item:hover,
body.fs-mock01 .fs-search-page .fs-autocomplete-item.active {
    background: var(--mor-line-soft);
}
body.fs-mock01 .fs-search-page .fs-suggestion-code { color: var(--mor-teal); font-weight: 700; }
body.fs-mock01 .fs-search-page .fs-suggestion-name { color: var(--mor-ink); }
body.fs-mock01 .fs-search-page .fs-suggestion-sub,
body.fs-mock01 .fs-search-page .fs-autocomplete-hint { color: var(--mor-muted); }

/* Swap button: teal chip */
body.fs-mock01 .fs-search-page .fs-swap-btn {
    background: rgba(18, 128, 143, .1);
    border: 1px solid rgba(18, 128, 143, .25);
    color: var(--mor-teal);
}
body.fs-mock01 .fs-search-page .fs-swap-btn:hover {
    background: var(--mor-teal);
    color: #fff;
}

/* Passengers / cabin panel: soft background strip */
body.fs-mock01 .fs-search-page .fs-search-options {
    background: var(--mor-bg);
    border: 1px solid var(--mor-line-soft);
    border-radius: 14px;
}
body.fs-mock01 .fs-search-page .fs-counter {
    display: flex;
    align-items: center;
    gap: .6rem;
    background: var(--mor-surface);
    border: 1px solid var(--mor-line);
    border-radius: var(--mor-pill);
    padding: .2rem;
}
body.fs-mock01 .fs-search-page .fs-counter button {
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--mor-teal);
    border: none;
    border-radius: 50%;
    color: #fff;
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
}
body.fs-mock01 .fs-search-page .fs-counter button:hover { background: var(--mor-teal-dark); }
body.fs-mock01 .fs-search-page .fs-counter span {
    min-width: 22px;
    text-align: center;
    font-weight: 700;
    color: var(--mor-ink);
}

/* Search button: solid teal pill (replaces coral/purple gradient) */
body.fs-mock01 .fs-search-page .fs-search-btn {
    background: var(--mor-teal);
    color: #fff;
    border-radius: var(--mor-pill);
    box-shadow: 0 2px 8px rgba(18, 128, 143, .3);
    font-weight: 700;
}
body.fs-mock01 .fs-search-page .fs-search-btn:hover:not(:disabled) {
    background: var(--mor-teal-dark);
    transform: none;
    box-shadow: 0 6px 18px rgba(18, 128, 143, .35);
}
body.fs-mock01 .fs-search-page .fs-search-btn .fs-spinner {
    width: 18px;
    height: 18px;
    border-color: rgba(255, 255, 255, .35);
    border-top-color: #fff;
    margin: 0;
}
body.fs-mock01 .fs-search-page .fs-searching {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
}

/* Fallback / flexible-dates notice */
body.fs-mock01 .fs-search-notice,
.fs-search-notice {
    display: flex;
    align-items: center;
    gap: .6rem;
    max-width: 900px;
    margin: 0 auto 1.5rem;
    padding: .8rem 1.1rem;
    background: var(--mor-line-soft, #E7F2F3);
    border: 1px solid var(--mor-chip, #BFE3E7);
    border-radius: 14px;
    color: var(--mor-ink, #0F2430);
    font-size: .92rem;
}

/* Results: quick-select cards */
body.fs-mock01 .fs-search-page .fs-quick-card {
    background: var(--mor-surface);
    border: 1px solid var(--mor-card-line);
    border-radius: 16px;
}
body.fs-mock01 .fs-search-page .fs-quick-card:hover { border-color: var(--mor-teal); }
body.fs-mock01 .fs-search-page .fs-quick-card.active {
    background: rgba(18, 128, 143, .07);
    border-color: var(--mor-teal);
}
body.fs-mock01 .fs-search-page .fs-quick-price {
    background: none;
    -webkit-text-fill-color: var(--mor-teal);
    color: var(--mor-teal);
}
body.fs-mock01 .fs-search-page .fs-quick-label,
body.fs-mock01 .fs-search-page .fs-quick-detail { color: var(--mor-muted); }

/* Results header + sort */
body.fs-mock01 .fs-search-page .fs-results-header {
    background: var(--mor-surface);
    border: 1px solid var(--mor-card-line);
    border-radius: 14px;
}
body.fs-mock01 .fs-search-page .fs-results-count { color: var(--mor-muted); }
body.fs-mock01 .fs-search-page .fs-results-sort select {
    background: var(--mor-surface);
    border: 1px solid var(--mor-line);
    border-radius: 10px;
    color: var(--mor-ink);
}
body.fs-mock01 .fs-search-page .fs-results-sort select option {
    background: var(--mor-surface);
    color: var(--mor-ink);
}

/* Filter sidebar */
body.fs-mock01 .fs-search-page .fs-filter-sidebar {
    background: var(--mor-surface);
    border: 1px solid var(--mor-card-line);
    border-radius: var(--mor-radius);
}
body.fs-mock01 .fs-search-page .fs-filter-header h3 {
    color: var(--mor-ink);
    font-weight: 800;
    letter-spacing: -.02em;
}
body.fs-mock01 .fs-search-page .fs-reset-filters { color: var(--mor-teal); }
body.fs-mock01 .fs-search-page .fs-filter-option span,
body.fs-mock01 .fs-search-page .fs-range-labels { color: var(--mor-muted); }
body.fs-mock01 .fs-search-page .fs-range-input,
body.fs-mock01 .fs-search-page .fs-filter-option input[type="radio"],
body.fs-mock01 .fs-search-page .fs-filter-option input[type="checkbox"] {
    accent-color: var(--mor-teal);
}

/* Flight cards */
body.fs-mock01 .fs-search-page .fs-flight-card-premium {
    background: var(--mor-surface);
    border: 1px solid var(--mor-card-line);
    border-radius: var(--mor-radius);
    box-shadow: 0 12px 30px -20px rgba(15, 36, 48, .35);
}
body.fs-mock01 .fs-search-page .fs-flight-card-premium:hover {
    border-color: var(--mor-teal);
    box-shadow: 0 16px 34px -18px rgba(15, 36, 48, .4);
}
body.fs-mock01 .fs-search-page .fs-price-amount { color: var(--mor-teal); }
body.fs-mock01 .fs-search-page .fs-price-per { color: var(--mor-muted); }
body.fs-mock01 .fs-search-page .fs-segment-code { color: var(--mor-teal); }
body.fs-mock01 .fs-search-page .fs-segment-time { color: var(--mor-ink); }
body.fs-mock01 .fs-search-page .fs-segment-label,
body.fs-mock01 .fs-search-page .fs-segment-city,
body.fs-mock01 .fs-search-page .fs-segment-duration,
body.fs-mock01 .fs-search-page .fs-segment-stops-text,
body.fs-mock01 .fs-search-page .fs-airline-names,
body.fs-mock01 .fs-search-page .fs-info-item { color: var(--mor-muted); }
body.fs-mock01 .fs-search-page .fs-segment-line-bar { background: var(--mor-line); }
body.fs-mock01 .fs-search-page .fs-segment-stop-dot {
    background: var(--mor-orange);
    border-color: var(--mor-surface);
}

/* Badges: pills; tracked-fare uses the orange accent as a soft chip so the
   deep-orange text stays AA on its own background */
body.fs-mock01 .fs-search-page .fs-badge { border-radius: var(--mor-pill); }
body.fs-mock01 .fs-search-page .fs-badge-direct {
    background: rgba(18, 128, 143, .1);
    border: 1px solid rgba(18, 128, 143, .3);
    color: var(--mor-teal-dark);
}
body.fs-mock01 .fs-search-page .fs-badge-tracked {
    background: #FDEEE3;
    border: 1px solid #F3C9A8;
    color: var(--mor-orange-deep);
    padding: .25rem .7rem;
    font-size: .78rem;
    font-weight: 700;
}

/* Book button: primary teal pill (white on #12808F = 5.34:1 AA) */
body.fs-mock01 .fs-search-page .fs-book-btn-premium {
    background: var(--mor-teal);
    color: #fff !important;
    border-radius: var(--mor-pill);
    box-shadow: 0 2px 8px rgba(18, 128, 143, .3);
}
body.fs-mock01 .fs-search-page .fs-book-btn-premium:hover {
    background: var(--mor-teal-dark);
    color: #fff !important;
}

/* Loading + empty states */
body.fs-mock01 .fs-search-page .fs-results-loading { color: var(--mor-muted); }
body.fs-mock01 .fs-search-page .fs-loading-text { color: var(--mor-muted); }
body.fs-mock01 .fs-search-page .fs-loading-bar { background: var(--mor-line-soft); }
body.fs-mock01 .fs-search-page .fs-loading-progress { background: var(--mor-teal); }
body.fs-mock01 .fs-search-page .fs-no-results h3 {
    color: var(--mor-ink);
    font-weight: 800;
    letter-spacing: -.03em;
}
body.fs-mock01 .fs-search-page .fs-no-results p { color: var(--mor-muted); }
body.fs-mock01 .fs-search-page .fs-no-filtered {
    background: var(--mor-surface);
    border: 1px solid var(--mor-card-line);
    border-radius: var(--mor-radius);
    color: var(--mor-muted);
}

/* ══════════════════════════════════════════════════════════════════
   Post-deploy fixes (2026-08-09 validation round 1)
   ══════════════════════════════════════════════════════════════════ */

/* Axe: nav links rendered rgba(226,232,240,.92) — the OLD dark-header
   rule (mock01-polish:1058, specificity 0,3,1 !important) outranked the
   token layer's 0,2,1. Same specificity here + later cascade = we win.
   #4A6672 on white = 5.6:1 AA. */
body.fs-mock01 .site-header .main-navigation a {
    color: var(--mor-muted) !important;
}
body.fs-mock01 .site-header .main-navigation a:hover,
body.fs-mock01 .site-header .main-navigation .current-menu-item a {
    color: var(--mor-teal) !important;
}

/* Wordmark must be ink per the Moraine reference, not muted/coral. */
body.fs-mock01 .site-header .site-title-text {
    color: var(--mor-ink) !important;
}

/* Header CTA pill: white on #E1682B is 3.38:1 at 14px — fails. Deep
   orange keeps the accent and passes (5.17:1). */
body.fs-mock01 .nav-route-request a,
body.fs-mock01 .fs-header-cta {
    background: var(--mor-orange-deep) !important;
}

/* Moment card: "$363 CAD round trip" — the price's negative tracking
   collapsed the small label's word spacing. */
body.fs-mock01 .mor-moment .price small {
    letter-spacing: 0 !important;
    word-spacing: normal !important;
    display: inline-block;
    margin-left: .35rem;
}

/* Last legacy-coral element (validation §2): hero "Set my airport" pill. */
body.fs-mock01 .fsm-origin-change {
    color: var(--mor-orange-soft) !important;      /* 7.38:1 on the hero scrim */
    border-color: rgba(247,154,86,.5) !important;
}

/* The nav-link colour rule above also catches the CTA pill (it sits inside
   .main-navigation), painting muted slate on deep orange = 1.18:1.
   The pill needs white text; scope it AFTER the nav rule so it wins. */
body.fs-mock01 .site-header .main-navigation .nav-route-request a,
body.fs-mock01 .site-header .main-navigation .nav-route-request a:hover,
body.fs-mock01 .nav-route-request a,
body.fs-mock01 .fs-header-cta {
    color: #ffffff !important;              /* on #B54E14 = 5.17:1 AA */
    background: var(--mor-orange-deep) !important;
}

/* Wordmark was still coral because it is GRADIENT-CLIPPED text
   (background-image: linear-gradient(#f96332…) + -webkit-text-fill-color:
   transparent) — setting `color` alone had no visible effect. Kill the
   gradient and restore a painted glyph. Last legacy-coral surface. */
body.fs-mock01 .site-header .site-title-text,
body.fs-mock01 .site-title-text {
    background-image: none !important;
    background: none !important;
    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;
    -webkit-text-fill-color: var(--mor-ink) !important;
    color: var(--mor-ink) !important;
}

/* Page kicker: #ff8a5b on a 15%-coral tint measured 1.32:1 — effectively
   invisible, and the last coral tint on inner pages. Teal-deep on a teal
   tint gives 5.9:1 and matches the Moraine accent language. */
body.fs-mock01 .fsm-page-kicker {
    color: var(--mor-teal-dark) !important;
    background: rgba(18,128,143,.12) !important;
    border-color: rgba(18,128,143,.28) !important;
}
/* Homepage origin pills + trust icon: last coral fills on the hero. */
body.fs-mock01 .fsm-origin-pill-sm-al,
body.fs-mock01 .fsm-origin-apply {
    background: var(--mor-orange-deep) !important;
    color: #ffffff !important;
}
body.fs-mock01 .fsm-trust-icon.coral { color: var(--mor-orange-soft) !important; }

/* ── 2.9.6 SSR deals list on /deals/ (crawlable fare content) ── */
.fs-ssr-deals { max-width: 1080px; margin: 48px auto 24px; padding: 28px; background: #fff; border: 1px solid var(--mor-line, #D9E7E9); border-radius: 20px; }
.fs-ssr-deals h2 { color: var(--mor-ink, #0F2430); margin: 0 0 6px; }
.fs-ssr-deals-note { color: var(--mor-muted, #4A6672); margin: 0 0 18px; font-size: .95rem; }
.fs-ssr-deals-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 10px 24px; }
.fs-ssr-deals-list li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 12px; border-bottom: 1px solid var(--mor-line, #D9E7E9); }
.fs-ssr-deals-list a { color: var(--mor-teal-dark, #0D6470); font-weight: 600; text-decoration: none; }
.fs-ssr-deals-list a:hover { text-decoration: underline; }
.fs-ssr-deal-price { color: var(--mor-ink, #0F2430); font-weight: 700; white-space: nowrap; }

/* ── 2.9.7 TL;DR key-takeaways box on posts ── */
.fs-tldr { margin: 22px 0 26px; padding: 18px 22px; background: #E7F2F3; border-left: 4px solid var(--mor-teal, #12808F); border-radius: 0 14px 14px 0; }
.fs-tldr > p { margin: 0 0 8px; color: var(--mor-ink, #0F2430); }
.fs-tldr ul { margin: 0; padding-left: 20px; }
.fs-tldr li { margin: 4px 0; color: var(--mor-ink, #0F2430); line-height: 1.55; }

/* ── 2.9.7 deals explainer answer block ── */
.fs-deals-explainer { max-width: 1080px; margin: 6px auto 20px; padding: 18px 24px; background: #fff; border: 1px solid var(--mor-line, #D9E7E9); border-radius: 16px; }
.fs-deals-explainer h2 { font-size: 1.1rem; color: var(--mor-ink, #0F2430); margin: 0 0 6px; }
.fs-deals-explainer p { margin: 0; color: var(--mor-muted, #4A6672); line-height: 1.6; }
