/* ==========================================================================
   Flight Masters UI 2026 - design system + components
   Loaded last; keeps brand colours from the logo (navy, blue, orange-red).
   ========================================================================== */
:root{
  --fx-navy:#0b1d4f; --fx-navy-2:#12296b; --fx-blue:#0a47b8; --fx-blue-2:#2563eb; --fx-sky:#e8f0ff;
  --fx-orange:#f05a14; --fx-orange-2:#ff7a2f; --fx-red:#d9361b;
  --fx-ink:#0f172a; --fx-text:#334155; --fx-muted:#64748b; --fx-line:#e2e8f0; --fx-line-2:#cbd5e1;
  --fx-bg:#f5f7fb; --fx-white:#fff; --fx-success:#15803d;
  --fx-head:"Plus Jakarta Sans","Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --fx-body:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --fx-r-sm:8px; --fx-r:14px; --fx-r-lg:22px; --fx-pill:999px;
  --fx-s1:4px; --fx-s2:8px; --fx-s3:12px; --fx-s4:16px; --fx-s5:24px; --fx-s6:32px; --fx-s7:48px; --fx-s8:64px; --fx-s9:96px;
  --fx-sh-sm:0 1px 2px rgba(15,23,42,.06),0 1px 3px rgba(15,23,42,.08);
  --fx-sh:0 6px 20px rgba(11,29,79,.08),0 2px 6px rgba(11,29,79,.05);
  --fx-sh-lg:0 24px 60px rgba(11,29,79,.18);
  --fx-max:1200px;
  /* keep older layer in step */
  --fm-navy:var(--fx-navy); --fm-blue:var(--fx-blue); --fm-ink:var(--fx-ink); --fm-muted:var(--fx-muted); --fm-line:var(--fx-line);
  --fm-font:var(--fx-body); --fm-head:var(--fx-head);
}
html{ scroll-behavior:smooth; scroll-padding-top:90px; }
/* fm-modern.css sets overflow-x:hidden on html AND body, which turns body into a scroll box and
   silently breaks the sticky header. clip keeps the no-sideways-scroll effect without that. */
html body{ overflow-x:clip; overflow-y:visible; }
body{ font-family:var(--fx-body) !important; color:var(--fx-text); background:#fff; font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; }
h1,h2,h3,h4,h5,h6,.headin{ font-family:var(--fx-head) !important; color:var(--fx-ink); letter-spacing:-.01em; }
a{ color:var(--fx-blue); }
a:hover{ color:var(--fx-navy); }
img{ max-width:100%; height:auto; }
.fmx-ic{ display:inline-block; vertical-align:middle; flex:0 0 auto; }
.fmx-container{ width:100%; max-width:var(--fx-max); margin:0 auto; padding:0 20px; box-sizing:border-box; }
.fmx-sr,.fmx-hp{ position:absolute !important; left:0 !important; top:0 !important; width:1px !important; height:1px !important; padding:0 !important; border:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0 0 0 0) !important; white-space:nowrap; opacity:0; }
.fmx-skip{ position:absolute; left:-9999px; top:0; z-index:3000; background:var(--fx-navy); color:#fff; padding:10px 16px; border-radius:0 0 8px 0; }
.fmx-skip:focus{ left:0; color:#fff; }
*:focus-visible{ outline:3px solid var(--fx-orange-2) !important; outline-offset:2px; }

/* ---------- buttons ---------- */
.fmx-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:46px; padding:0 22px; border-radius:var(--fx-pill); border:2px solid transparent;
  background:var(--fx-blue); color:#fff !important; font:700 15px/1 var(--fx-head); text-decoration:none !important; cursor:pointer; transition:background .15s, transform .15s, box-shadow .15s; white-space:nowrap; }
.fmx-btn:hover{ background:var(--fx-navy); transform:translateY(-1px); box-shadow:var(--fx-sh); }
.fmx-btn--accent{ background:linear-gradient(135deg,var(--fx-orange),var(--fx-red)); }
.fmx-btn--accent:hover{ background:linear-gradient(135deg,var(--fx-red),#b3270f); }
.fmx-btn--ghost{ background:transparent; color:var(--fx-navy) !important; border-color:var(--fx-line-2); }
.fmx-btn--ghost:hover{ background:var(--fx-sky); border-color:var(--fx-blue); }
.fmx-btn--light{ background:#fff; color:var(--fx-navy) !important; }
.fmx-btn--lg{ min-height:56px; padding:0 30px; font-size:17px; }
.fmx-link{ font-weight:600; text-decoration:none; display:inline-flex; align-items:center; gap:6px; }
.fmx-link:hover{ text-decoration:underline; }

/* ---------- disclosure strip ---------- */
.fm-disclose{ background:var(--fx-navy) !important; color:#dbe4ff !important; font-size:12.5px !important; padding:7px 16px !important; text-align:center; }

/* ---------- header ---------- */
.fmx-header{ position:sticky; top:0; z-index:1500; background:rgba(255,255,255,.97); backdrop-filter:saturate(1.4) blur(8px); border-bottom:1px solid var(--fx-line); transition:box-shadow .2s; }
.fmx-header.is-scrolled{ box-shadow:0 6px 24px rgba(11,29,79,.10); }
.fmx-header__bar{ display:flex; align-items:center; gap:20px; min-height:74px; }
.fmx-logo{ display:flex; align-items:center; flex:0 0 auto; }
.fmx-logo img{ width:190px; height:auto; display:block; }
.fmx-nav{ flex:1 1 auto; display:flex; justify-content:center; }
.fmx-nav__list{ display:flex; gap:2px; list-style:none; margin:0; padding:0; flex-wrap:nowrap; }
.fmx-nav__list a{ display:block; padding:10px 11px; border-radius:var(--fx-r-sm); font:600 14.5px/1.2 var(--fx-head); color:var(--fx-ink); text-decoration:none; white-space:nowrap; }
.fmx-nav__list a:hover{ background:var(--fx-bg); color:var(--fx-blue); }
.fmx-nav__list a.is-active{ color:var(--fx-blue); background:var(--fx-sky); }
.fmx-nav__call,.fmx-nav__note{ display:none; }
.fmx-call{ display:flex; align-items:center; gap:10px; padding:7px 16px 7px 8px; border-radius:var(--fx-pill); background:linear-gradient(135deg,var(--fx-orange),var(--fx-red)); color:#fff !important; text-decoration:none !important; flex:0 0 auto; box-shadow:0 6px 16px rgba(240,90,20,.28); }
.fmx-call:hover{ filter:brightness(1.05); }
.fmx-call__ic{ width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.2); display:grid; place-items:center; }
.fmx-call__txt{ display:flex; flex-direction:column; line-height:1.15; }
.fmx-call__txt small{ font-size:11px; opacity:.92; font-weight:500; float:none !important; width:auto !important; height:auto !important; overflow:visible !important; margin:0 !important; color:#fff; }
.fmx-call__txt strong{ font:800 17px/1.15 var(--fx-head); letter-spacing:.01em; white-space:nowrap; }
.fmx-burger{ display:none; margin-left:auto; width:46px; height:46px; border-radius:12px; border:1px solid var(--fx-line); background:#fff; color:var(--fx-navy); align-items:center; justify-content:center; cursor:pointer; }
.fmx-burger__close{ display:none; }
.fmx-burger[aria-expanded="true"] .fmx-burger__open{ display:none; }
.fmx-burger[aria-expanded="true"] .fmx-burger__close{ display:inline; }
/* the header row may use a little more width than the page content */
.fmx-header .fmx-container{ max-width:1440px; }
@media (max-width:1600px){ .fmx-call__txt small{ display:none; } .fmx-header__bar{ gap:16px; } .fmx-nav__list a{ padding:10px 9px; } }
@media (max-width:1366px){ .fmx-header__bar{ gap:14px; } .fmx-logo img{ width:170px; } .fmx-lang__btn .fmx-lang__chev{ display:none; } .fmx-lang__btn{ padding:0 11px; } }
@media (max-width:1240px){ .fmx-header__bar{ gap:12px; } .fmx-nav__list a{ padding:10px 7px; font-size:14px; } .fmx-logo img{ width:160px; } .fmx-call__txt strong{ font-size:15px; } }
/* ---------- language switcher (header pill + dropdown) ---------- */
.fmx-nav__head,.fmx-nav__langs{ display:none; }
.fmx-lang{ position:relative; flex:0 0 auto; }
.fmx-lang__btn{ display:inline-flex; align-items:center; gap:6px; height:46px; padding:0 12px 0 11px; border-radius:var(--fx-pill); border:1px solid var(--fx-line); background:#fff; color:var(--fx-navy); font:700 14px/1 var(--fx-head); cursor:pointer; transition:border-color .15s, background .15s; }
.fmx-lang__btn:hover,.fmx-lang__btn[aria-expanded="true"]{ border-color:var(--fx-blue); background:var(--fx-sky); }
.fmx-lang__chev{ transition:transform .15s; }
.fmx-lang__btn[aria-expanded="true"] .fmx-lang__chev{ transform:rotate(180deg); }
.fmx-lang__menu{ position:absolute; right:0; top:calc(100% + 8px); min-width:190px; background:#fff; border:1px solid var(--fx-line); border-radius:var(--fx-r); box-shadow:var(--fx-sh-lg); padding:6px; z-index:1700; }
.fmx-lang__menu[hidden]{ display:none; }
.fmx-lang__item{ display:flex; align-items:center; gap:10px; width:100%; padding:10px 12px; border:0; border-radius:var(--fx-r-sm); background:none; color:var(--fx-ink) !important; font:600 14.5px/1.2 var(--fx-head); text-decoration:none !important; cursor:pointer; text-align:left; }
.fmx-lang__item:hover{ background:var(--fx-bg); color:var(--fx-blue) !important; }
.fmx-lang__item.is-current{ background:var(--fx-sky); color:var(--fx-blue) !important; }
.fmx-lang__code{ display:inline-grid; place-items:center; min-width:30px; height:22px; border-radius:var(--fx-pill); background:var(--fx-bg); color:var(--fx-navy); font:800 11px/1 var(--fx-head); letter-spacing:.04em; }
.fmx-lang__item.is-current .fmx-lang__code{ background:var(--fx-blue); color:#fff; }

/* Small-screen header: drawer menu. html.fmx-compact is set by the inline script after the header
   (at 1080px and below, or whenever the full menu does not fit on one line, e.g. longer translations). */
  html.fmx-compact .fmx-burger{ display:inline-flex; }
  html.fmx-compact .fmx-call{ padding:6px; margin-left:auto; } html.fmx-compact .fmx-call__txt{ display:none; }
  html.fmx-compact .fmx-burger{ margin-left:0; }
  html.fmx-compact .fmx-header__bar{ gap:10px; }
  /* backdrop-filter makes the header the containing block of position:fixed children,
     which squeezed the menu panel into the header box. Use a solid header on small screens. */
  html.fmx-compact .fmx-header{ background:#fff; -webkit-backdrop-filter:none; backdrop-filter:none; }
  /* #page-content is position:relative + z-index:10, a stacking context that kept the menu under the page overlay */
  html.fmx-compact body.fmx-menu-open #page-content{ z-index:auto !important; }
  html.fmx-compact body.fmx-menu-open .fmx-header{ z-index:3000; }
  html.fmx-compact .fmx-nav{ position:fixed; top:0; right:0; bottom:0; left:auto; width:min(100vw,420px); height:100vh; height:100dvh; background:#fff; flex-direction:column; justify-content:flex-start; padding:0 20px 28px; box-sizing:border-box;
    box-shadow:var(--fx-sh-lg); transform:translateX(100%); transition:transform .25s ease, visibility 0s linear .25s; z-index:10; overflow-y:auto; overscroll-behavior:contain; visibility:hidden; }
  html.fmx-compact .fmx-nav.is-open{ transform:none; visibility:visible; transition:transform .25s ease; }
  html.fmx-compact .fmx-nav__head{ display:flex; align-items:center; justify-content:space-between; gap:12px; position:sticky; top:0; background:#fff; padding:14px 0; margin-bottom:6px; border-bottom:1px solid var(--fx-line); z-index:1; }
  html.fmx-compact .fmx-nav__head .fmx-logo img{ width:150px; }
  html.fmx-compact .fmx-nav__close{ width:46px; height:46px; border-radius:12px; border:1px solid var(--fx-line); background:#fff; color:var(--fx-navy); display:inline-grid; place-items:center; cursor:pointer; flex:0 0 auto; }
  html.fmx-compact .fmx-nav__close:hover{ background:var(--fx-sky); border-color:var(--fx-blue); }
  html.fmx-compact .fmx-nav__list{ flex-direction:column; gap:2px; }
  html.fmx-compact .fmx-nav__list a{ padding:14px 12px; font-size:16px; border-bottom:1px solid var(--fx-line); border-radius:0; }
  html.fmx-compact .fmx-nav__langs{ display:block; margin-top:18px; }
  html.fmx-compact .fmx-nav__langs-label{ display:flex; align-items:center; gap:6px; font:700 13px/1 var(--fx-head); color:var(--fx-muted); text-transform:uppercase; letter-spacing:.06em; margin-bottom:10px; }
  html.fmx-compact .fmx-nav__langs-row{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
  html.fmx-compact .fmx-langpill{ display:flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:0 12px; border-radius:var(--fx-pill); border:1px solid var(--fx-line-2); background:#fff; color:var(--fx-navy) !important; font:700 14.5px/1 var(--fx-head); text-decoration:none !important; cursor:pointer; }
  html.fmx-compact .fmx-langpill .fmx-lang__code{ display:none; }
  html.fmx-compact .fmx-langpill.is-current{ background:var(--fx-sky); border-color:var(--fx-blue); color:var(--fx-blue) !important; }
  html.fmx-compact .fmx-nav__call{ display:flex; align-items:center; justify-content:center; gap:8px; margin-top:20px; padding:14px; border-radius:var(--fx-pill); background:var(--fx-orange); color:#fff !important; font:700 16px var(--fx-head); text-decoration:none; }
  html.fmx-compact .fmx-nav__note{ display:block; text-align:center; font-size:13px; color:var(--fx-muted); margin-top:8px; }
  html.fmx-compact .fmx-lang{ margin-left:auto; }
  html.fmx-compact .fmx-lang + .fmx-call{ margin-left:0; }
  html.fmx-compact .fmx-lang__btn{ padding:0 10px; }
  html.fmx-compact body.fmx-menu-open::after{ content:""; position:fixed; inset:0; background:rgba(11,29,79,.45); z-index:2900; }
  html.fmx-compact.fmx-scroll-lock, html.fmx-compact body.fmx-menu-open{ overflow:hidden; }
@media (max-width:420px){ .fmx-lang__btn .fmx-lang__chev{ display:none; } .fmx-lang__btn{ padding:0 9px; gap:5px; } }
@media (max-width:420px){ .fmx-logo img{ width:140px; } .fmx-header__bar{ gap:8px; min-height:64px; } }

/* ---------- hero + search ---------- */
.fmx-hero{ position:relative; color:#fff; background:var(--fx-navy) center/cover no-repeat; isolation:isolate; padding:64px 0 120px; }
.fmx-hero::before{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(100deg,rgba(11,29,79,.94) 0%,rgba(11,29,79,.80) 45%,rgba(11,29,79,.35) 100%); }
.fmx-hero__img{ position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:70% 30%; }
.fmx-hero h1{ color:#fff; font-size:clamp(30px,4.4vw,52px); line-height:1.08; font-weight:800; margin:0 0 14px; max-width:720px; }
.fmx-hero__lede{ font-size:clamp(16px,1.6vw,19px); color:#dbe4ff; max-width:620px; margin:0 0 22px; }
.fmx-hero__chips{ display:flex; flex-wrap:wrap; gap:10px; list-style:none; padding:0; margin:0; }
.fmx-hero__chips li{ display:inline-flex; align-items:center; gap:6px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22); padding:6px 12px; border-radius:var(--fx-pill); font-size:13.5px; font-weight:500; }
.fmx-searchwrap{ position:relative; margin-top:-84px; z-index:20; }
.fmx-search{ background:#fff; border-radius:var(--fx-r-lg); box-shadow:var(--fx-sh-lg); padding:22px 24px 24px; color:var(--fx-text); }
.fmx-search__top{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
.fmx-trip{ display:inline-flex; background:var(--fx-bg); border-radius:var(--fx-pill); padding:4px; gap:4px; border:1px solid var(--fx-line); }
.fmx-trip input{ position:absolute; opacity:0; pointer-events:none; }
.fmx-trip label{ margin:0; padding:9px 18px; border-radius:var(--fx-pill); font:600 14px/1 var(--fx-head); color:var(--fx-text); cursor:pointer; }
.fmx-trip input:checked + label{ background:var(--fx-navy); color:#fff; box-shadow:var(--fx-sh-sm); }
.fmx-trip input:focus-visible + label{ outline:3px solid var(--fx-orange-2); }
.fmx-search__help{ font-size:13.5px; color:var(--fx-muted); display:flex; align-items:center; gap:6px; }
.fmx-search__help a{ font-weight:700; color:var(--fx-navy); text-decoration:none; white-space:nowrap; }
.fmx-search__grid{ display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1.7fr) minmax(0,1.3fr) auto; gap:12px; align-items:stretch; }
.fmx-route{ position:relative; display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.fmx-dates{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.fmx-dates.is-oneway{ grid-template-columns:1fr; }
.fmx-dates.is-oneway .fmx-field--ret{ display:none; }
.fmx-field{ position:relative; display:flex; flex-direction:column; justify-content:center; min-height:64px; border:1.5px solid var(--fx-line-2); border-radius:var(--fx-r); padding:8px 14px 8px 44px; background:#fff; transition:border-color .15s, box-shadow .15s; }
.fmx-field:focus-within{ border-color:var(--fx-blue); box-shadow:0 0 0 4px rgba(37,99,235,.12); }
.fmx-field > .fmx-ic{ position:absolute; left:14px; top:50%; transform:translateY(-50%); color:var(--fx-blue); }
.fmx-field label{ margin:0; font:600 11.5px/1.2 var(--fx-body); text-transform:uppercase; letter-spacing:.06em; color:var(--fx-muted); }
.fmx-field input,.fmx-field select,.fmx-field button.fmx-pax__btn{ border:0 !important; outline:0; padding:2px 0 0 !important; margin:0 !important; height:auto !important; background:transparent !important; box-shadow:none !important; font:600 16px/1.35 var(--fx-head); color:var(--fx-ink); width:100%; min-width:0; text-overflow:ellipsis; }
.fmx-field input::placeholder{ color:#94a3b8; font-weight:500; }
.fmx-swap{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:3; width:38px; height:38px; border-radius:50%; border:1.5px solid var(--fx-line-2); background:#fff; color:var(--fx-navy); display:grid; place-items:center; cursor:pointer; box-shadow:var(--fx-sh-sm); transition:transform .25s; }
.fmx-swap:hover{ transform:translate(-50%,-50%) rotate(180deg); border-color:var(--fx-blue); }
.fmx-search__go{ min-height:64px; padding:0 28px; border-radius:var(--fx-r); font-size:17px; }
.fmx-ac{ position:absolute; left:-1.5px; right:-1.5px; top:calc(100% + 6px); z-index:50; background:#fff; border:1px solid var(--fx-line); border-radius:var(--fx-r); box-shadow:var(--fx-sh-lg); list-style:none; margin:0; padding:6px; max-height:320px; overflow:auto; min-width:280px; }
.fmx-ac[hidden]{ display:none; }
.fmx-ac li{ display:flex; gap:10px; align-items:center; padding:10px 10px; border-radius:10px; cursor:pointer; font-size:14.5px; color:var(--fx-ink); }
.fmx-ac li[aria-selected="true"],.fmx-ac li:hover{ background:var(--fx-sky); }
.fmx-ac__code{ flex:0 0 auto; min-width:46px; text-align:center; font:800 13px/1 var(--fx-head); color:var(--fx-navy); background:#eef2ff; border-radius:6px; padding:6px 4px; }
.fmx-ac__name small{ display:block; color:var(--fx-muted); font-size:12.5px; }
.fmx-pax{ position:relative; }
.fmx-pax__btn{ text-align:left; cursor:pointer; white-space:nowrap; overflow:hidden; }
.fmx-pax__panel{ position:absolute; right:-1.5px; top:calc(100% + 6px); z-index:50; width:300px; max-width:calc(100vw - 40px); background:#fff; border:1px solid var(--fx-line); border-radius:var(--fx-r); box-shadow:var(--fx-sh-lg); padding:16px; }
.fmx-pax__panel[hidden]{ display:none; }
.fmx-pax__row{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid var(--fx-line); }
.fmx-pax__row strong{ display:block; font:700 15px var(--fx-head); color:var(--fx-ink); }
.fmx-pax__row small{ color:var(--fx-muted); font-size:12.5px; }
.fmx-step{ display:flex; align-items:center; gap:10px; }
.fmx-step button{ width:34px; height:34px; border-radius:50%; border:1.5px solid var(--fx-line-2); background:#fff; font:700 18px/1 var(--fx-head); color:var(--fx-navy); cursor:pointer; }
.fmx-step button:disabled{ opacity:.35; cursor:not-allowed; }
.fmx-step output{ min-width:18px; text-align:center; font:700 16px var(--fx-head); color:var(--fx-ink); }
.fmx-pax__cabin{ margin-top:12px; }
.fmx-pax__cabin label{ display:block; font:600 12px var(--fx-body); text-transform:uppercase; letter-spacing:.06em; color:var(--fx-muted); margin-bottom:6px; }
.fmx-pax__cabin select{ width:100%; min-height:44px; border:1.5px solid var(--fx-line-2); border-radius:10px; padding:0 10px; font:600 15px var(--fx-head); }
.fmx-pax__done{ margin-top:14px; width:100%; }
.fmx-search__note{ margin:14px 0 0; font-size:13px; color:var(--fx-muted); display:flex; gap:8px; align-items:flex-start; }
.fmx-search__err{ margin:12px 0 0; color:var(--fx-red); font-weight:600; font-size:14px; }
.fmx-search__err[hidden]{ display:none; }
.fmx-field.has-error{ border-color:var(--fx-red); }
@media (max-width:1080px){
  .fmx-search__grid{ grid-template-columns:1fr 1fr; }
  .fmx-route{ grid-column:1 / -1; }
  .fmx-search__go{ grid-column:1 / -1; }
}
@media (max-width:640px){
  .fmx-hero{ padding:36px 0 96px; }
  .fmx-search{ padding:16px; border-radius:18px; }
  .fmx-search__grid{ grid-template-columns:1fr; gap:10px; }
  .fmx-route{ grid-template-columns:1fr; gap:10px; }
  .fmx-swap{ left:auto; right:14px; top:50%; transform:translateY(-50%) rotate(90deg); }
  .fmx-swap:hover{ transform:translateY(-50%) rotate(270deg); }
  .fmx-pax__panel{ left:-1.5px; right:auto; width:auto; min-width:100%; }
  .fmx-hero__chips li{ font-size:12.5px; }
}

/* ---------- sections ---------- */
.fmx-section{ padding:var(--fx-s8) 0; }
.fmx-section--tint{ background:var(--fx-bg); }
.fmx-section--navy{ background:var(--fx-navy); color:#dbe4ff; }
.fmx-section--navy h2,.fmx-section--navy h3{ color:#fff; }
.fmx-head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:28px; }
.fmx-head h2{ font-size:clamp(24px,3vw,34px); font-weight:800; margin:0 0 6px; }
.fmx-head p{ margin:0; color:var(--fx-muted); max-width:640px; }
.fmx-eyebrow{ display:inline-block; font:700 12.5px/1 var(--fx-head); letter-spacing:.12em; text-transform:uppercase; color:var(--fx-orange); margin-bottom:10px; }
.fmx-grid{ display:grid; gap:22px; }
.fmx-grid--4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
.fmx-grid--3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.fmx-grid--2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
@media (max-width:1000px){ .fmx-grid--4{ grid-template-columns:repeat(2,minmax(0,1fr)); } .fmx-grid--3{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:620px){ .fmx-grid--4,.fmx-grid--3,.fmx-grid--2{ grid-template-columns:1fr; } .fmx-section{ padding:44px 0; } }

/* trust bar */
.fmx-trust{ padding:28px 0 8px; }
.fmx-trust__list{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; list-style:none; margin:0; padding:0; }
.fmx-trust__list li{ display:flex; gap:12px; align-items:flex-start; padding:16px; border-radius:var(--fx-r); background:#fff; border:1px solid var(--fx-line); }
.fmx-trust__ic{ width:42px; height:42px; border-radius:12px; display:grid; place-items:center; background:var(--fx-sky); color:var(--fx-blue); flex:0 0 auto; }
.fmx-trust__list strong{ display:block; font:700 15px/1.3 var(--fx-head); color:var(--fx-ink); }
.fmx-trust__list span{ font-size:13.5px; color:var(--fx-muted); line-height:1.45; }
@media (max-width:1000px){ .fmx-trust__list{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:520px){ .fmx-trust__list{ grid-template-columns:1fr; } }

/* deal cards */
.fmx-deal{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--fx-line); border-radius:var(--fx-r-lg); overflow:hidden; text-decoration:none !important; color:inherit; box-shadow:var(--fx-sh-sm); transition:transform .2s, box-shadow .2s; height:100%; }
.fmx-deal:hover{ transform:translateY(-4px); box-shadow:var(--fx-sh); }
.fmx-deal__img{ position:relative; aspect-ratio:4/3; overflow:hidden; background:#dbe4f3; }
.fmx-deal__img img{ width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.fmx-deal:hover .fmx-deal__img img{ transform:scale(1.05); }
.fmx-badge{ position:absolute; left:12px; top:12px; background:rgba(11,29,79,.88); color:#fff; font:700 12px/1 var(--fx-head); padding:7px 10px; border-radius:var(--fx-pill); letter-spacing:.02em; }
.fmx-deal__body{ padding:16px 18px 18px; display:flex; flex-direction:column; gap:10px; flex:1; }
.fmx-deal__route{ display:flex; align-items:center; gap:8px; font:700 13px var(--fx-head); color:var(--fx-muted); letter-spacing:.04em; }
.fmx-deal__title{ font:700 18px/1.3 var(--fx-head); color:var(--fx-ink); margin:0; }
.fmx-deal__foot{ margin-top:auto; display:flex; align-items:flex-end; justify-content:space-between; gap:12px; padding-top:12px; border-top:1px dashed var(--fx-line-2); }
.fmx-price small{ display:block; font-size:12px; color:var(--fx-muted); }
.fmx-price strong{ font:800 26px/1 var(--fx-head); color:var(--fx-navy); }
.fmx-price span{ display:block; font-size:12px; color:var(--fx-muted); margin-top:3px; }
.fmx-deal__cta{ font:700 14px var(--fx-head); color:var(--fx-blue); display:inline-flex; align-items:center; gap:4px; }
.fmx-fare-note{ margin:18px 0 0; font-size:13px; color:var(--fx-muted); }

/* steps / features */
.fmx-how{ counter-reset:how; list-style:none; margin:0; padding:0; }
.fmx-how li{ position:relative; background:#fff; border:1px solid var(--fx-line); border-radius:var(--fx-r-lg); padding:26px 22px 22px; }
.fmx-how__n{ width:44px; height:44px; border-radius:14px; display:grid; place-items:center; background:linear-gradient(135deg,var(--fx-orange),var(--fx-red)); color:#fff; font:800 18px var(--fx-head); margin-bottom:14px; }
.fmx-how h3,.fmx-feature h3{ font-size:18px; margin:0 0 8px; font-weight:700; }
.fmx-how p,.fmx-feature p{ margin:0; font-size:15px; color:var(--fx-text); }
.fmx-feature{ display:flex; gap:16px; align-items:flex-start; padding:22px; border-radius:var(--fx-r-lg); background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); }
.fmx-section--navy .fmx-feature p{ color:#c7d2fe; }
.fmx-feature__ic{ width:48px; height:48px; border-radius:14px; display:grid; place-items:center; background:rgba(255,122,47,.16); color:var(--fx-orange-2); flex:0 0 auto; }

/* destinations */
.fmx-dest-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-auto-rows:220px; gap:18px; }
.fmx-dest{ position:relative; border-radius:var(--fx-r-lg); overflow:hidden; display:block; color:#fff !important; text-decoration:none !important; background:#1e293b; }
.fmx-dest--wide{ grid-column:span 2; }
.fmx-dest--tall{ grid-row:span 2; }
.fmx-dest img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.fmx-dest::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(11,29,79,.85) 100%); }
.fmx-dest:hover img{ transform:scale(1.06); }
.fmx-dest__txt{ position:absolute; left:18px; right:18px; bottom:16px; z-index:2; }
.fmx-dest__txt strong{ display:block; font:800 21px/1.2 var(--fx-head); color:#fff; }
.fmx-dest__txt span{ font-size:13.5px; color:#e2e8f0; display:inline-flex; align-items:center; gap:6px; }
@media (max-width:1000px){ .fmx-dest-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:200px; } .fmx-dest--tall{ grid-row:span 1; } }
@media (max-width:560px){ .fmx-dest-grid{ grid-template-columns:1fr 1fr; grid-auto-rows:150px; gap:12px; } .fmx-dest--wide{ grid-column:span 2; } .fmx-dest--tall{ grid-row:auto; } .fmx-dest--wide.fmx-dest--tall{ grid-row:span 1; } }

/* promo band */
.fmx-promo{ display:grid; grid-template-columns:1.1fr 1fr; align-items:center; gap:0; border-radius:var(--fx-r-lg); overflow:hidden; background:linear-gradient(135deg,var(--fx-navy),var(--fx-navy-2)); color:#dbe4ff; box-shadow:var(--fx-sh); }
.fmx-promo__txt{ padding:40px; }
.fmx-promo__txt h2{ color:#fff; font-size:clamp(24px,3vw,32px); margin:0 0 10px; }
.fmx-promo__txt p{ margin:0 0 20px; }
.fmx-promo__img{ height:100%; min-height:260px; }
.fmx-promo__img img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:820px){ .fmx-promo{ grid-template-columns:1fr; } .fmx-promo__txt{ padding:28px 22px; } .fmx-promo__img{ min-height:180px; } }

/* airlines */
.fmx-airlines{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; list-style:none; margin:0; padding:0; }
.fmx-airline{ display:flex; flex-direction:column; align-items:center; gap:10px; padding:20px 16px 16px; background:#fff; border:1px solid var(--fx-line); border-radius:var(--fx-r); text-decoration:none !important; color:var(--fx-ink); transition:box-shadow .2s, border-color .2s; height:100%; }
.fmx-airline:hover{ box-shadow:var(--fx-sh); border-color:var(--fx-line-2); }
.fmx-airline__logo{ height:64px; display:flex; align-items:center; justify-content:center; width:100%; }
.fmx-airline__logo img{ max-height:56px; max-width:150px; width:auto; height:auto; object-fit:contain; }
.fmx-airline strong{ font:700 15px var(--fx-head); }
.fmx-airline span{ font-size:13px; color:var(--fx-blue); font-weight:600; }
.fmx-idnote{ display:flex; gap:10px; align-items:flex-start; margin:20px 0 0; padding:14px 16px; border-radius:var(--fx-r); background:#fff; border:1px solid var(--fx-line); font-size:13.5px; color:var(--fx-muted); }
@media (max-width:900px){ .fmx-airlines{ grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* faq */
.fmx-faq{ display:grid; gap:12px; }
.fmx-faq details{ background:#fff; border:1px solid var(--fx-line); border-radius:var(--fx-r); padding:0 20px; }
.fmx-faq summary{ list-style:none; cursor:pointer; padding:18px 0; font:700 16.5px/1.4 var(--fx-head); color:var(--fx-ink); display:flex; justify-content:space-between; gap:16px; align-items:center; }
.fmx-faq summary::-webkit-details-marker{ display:none; }
.fmx-faq summary .fmx-ic{ transition:transform .2s; color:var(--fx-blue); }
.fmx-faq details[open] summary .fmx-ic{ transform:rotate(180deg); }
.fmx-faq details p{ margin:0 0 18px; }
.fmx-faq-wrap{ display:grid; grid-template-columns:1fr 1.6fr; gap:40px; align-items:start; }
@media (max-width:900px){ .fmx-faq-wrap{ grid-template-columns:1fr; gap:20px; } }

/* cta band */
.fmx-cta{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px; padding:32px 36px; border-radius:var(--fx-r-lg); background:linear-gradient(135deg,var(--fx-orange),var(--fx-red)); color:#fff; }
.fmx-cta h2{ color:#fff; margin:0 0 6px; font-size:clamp(22px,2.6vw,28px); }
.fmx-cta p{ margin:0; color:#ffe9dc; }

/* newsletter */
.fmx-newsletter{ background:var(--fx-sky); padding:40px 0; border-top:1px solid #d6e2ff; }
.fmx-newsletter__inner{ display:grid; grid-template-columns:1fr 1.1fr; gap:24px; align-items:center; }
.fmx-newsletter h2{ margin:0 0 6px; font-size:24px; }
.fmx-newsletter p{ margin:0; color:var(--fx-text); }
.fmx-newsletter__form{ display:flex; flex-wrap:wrap; gap:10px; }
.fmx-newsletter__form input[type=email]{ flex:1 1 240px; min-height:52px; border:1.5px solid var(--fx-line-2); border-radius:var(--fx-pill); padding:0 20px; font:500 16px var(--fx-body); background:#fff; }
.fmx-newsletter__form input[type=email]:focus{ border-color:var(--fx-blue); outline:0; box-shadow:0 0 0 4px rgba(37,99,235,.12); }
.fmx-newsletter__form .fmx-btn{ min-height:52px; }
.fmx-newsletter__fine{ flex-basis:100%; font-size:12.5px; color:var(--fx-muted) !important; }
@media (max-width:820px){ .fmx-newsletter__inner{ grid-template-columns:1fr; } }

/* footer */
footer.fmx-footer{ position:static !important; display:block; background:#081538; color:#b8c4e6; padding:56px 0 0; margin:0; border:0; font-size:14.5px; text-align:left; }
.fmx-footer__grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1.1fr 1.3fr; gap:32px; }
.fmx-footer h2{ font:700 13px var(--fx-head) !important; text-transform:uppercase; letter-spacing:.12em; color:#fff; margin:6px 0 16px; }
.fmx-footer ul{ list-style:none; margin:0; padding:0; }
.fmx-footer__col li{ margin:0 0 10px; }
.fmx-footer a{ color:#dbe4ff; text-decoration:none; }
.fmx-footer a:hover{ color:#fff; text-decoration:underline; }
.fmx-footer__logo{ display:inline-block; background:#fff; padding:10px 14px; border-radius:12px; margin-bottom:16px; }
.fmx-footer__logo img{ width:170px; height:auto; display:block; }
.fmx-footer__brand p{ margin:0 0 16px; }
.fmx-trust-list li,.fmx-contact-list li{ display:flex; gap:10px; align-items:flex-start; margin:0 0 10px; }
.fmx-trust-list .fmx-ic,.fmx-contact-list .fmx-ic{ color:var(--fx-orange-2); margin-top:3px; }
.fmx-social{ display:flex; gap:10px; margin-top:12px !important; }
.fmx-social a{ width:38px; height:38px; display:grid; place-items:center; border-radius:50%; background:rgba(255,255,255,.08); }
.fmx-footer__legal{ margin-top:40px; border-top:1px solid rgba(255,255,255,.1); padding:22px 0 26px; font-size:13px; color:#9fb0d9; }
.fmx-footer__legal p{ margin:0 0 10px; max-width:1000px; }
.fmx-footer__legal strong{ color:#fff; }
.fmx-footer__copy{ color:#7f91c0; }
@media (max-width:1080px){ .fmx-footer__grid{ grid-template-columns:1fr 1fr 1fr; } .fmx-footer__brand{ grid-column:1 / -1; } }
@media (max-width:640px){ .fmx-footer__grid{ grid-template-columns:1fr 1fr; gap:24px; } .fmx-footer__support{ grid-column:1 / -1; } footer.fmx-footer{ padding-bottom:70px; } }
@media (max-width:380px){ .fmx-footer__grid{ grid-template-columns:1fr; } }
/* the old footer rule in assets/css/style.css made every <footer> position:fixed; the old layer is no longer used */
.fm-footer{ display:none !important; }

/* ---------- content pages (policies, guides, destinations) ---------- */
.fm-page{ background:#fff; }
.fm-page__hero,.fmx-pagehero{ background:linear-gradient(120deg,var(--fx-navy),var(--fx-navy-2)) !important; color:#dbe4ff; padding:48px 0 44px !important; text-align:left !important; }
.fm-page__hero h1,.fmx-pagehero h1{ color:#fff !important; font-size:clamp(28px,3.6vw,42px) !important; font-weight:800; margin:0 0 10px; }
.fm-page__lede,.fmx-pagehero p{ color:#dbe4ff !important; font-size:17px; max-width:760px; margin:0; }
.fm-page__updated{ color:#a5b4fc !important; font-size:13px; margin-top:10px !important; }
.fm-wrap{ max-width:var(--fx-max) !important; padding-left:20px !important; padding-right:20px !important; margin:0 auto; box-sizing:border-box; }
.fmx-pagehero .fmx-crumbs{ margin-bottom:14px; }
.fmx-crumbs ol{ list-style:none; display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:0; font-size:13px; }
.fmx-crumbs li{ color:#a5b4fc; }
.fmx-crumbs li + li::before{ content:"/"; margin-right:6px; color:#6b7fc4; }
.fmx-crumbs a{ color:#dbe4ff; text-decoration:none; }
.fmx-crumbs a:hover{ text-decoration:underline; color:#fff; }
.fmx-doc{ display:grid; grid-template-columns:minmax(0,1fr); gap:48px; padding:44px 20px 64px; align-items:start; }
.fmx-doc.has-toc{ grid-template-columns:260px minmax(0,1fr); }
.fmx-doc--single{ grid-template-columns:minmax(0,1fr); max-width:820px; }
.fmx-toc{ position:sticky; top:96px; border:1px solid var(--fx-line); border-radius:var(--fx-r); padding:18px; background:var(--fx-bg); font-size:14px; }
.fmx-toc strong{ display:block; font:700 13px var(--fx-head); text-transform:uppercase; letter-spacing:.1em; color:var(--fx-muted); margin-bottom:10px; }
.fmx-toc ol{ list-style:none; margin:0; padding:0; }
.fmx-toc li{ margin:0; }
.fmx-toc a{ display:block; padding:6px 8px; border-radius:8px; color:var(--fx-text); text-decoration:none; line-height:1.35; }
.fmx-toc a:hover,.fmx-toc a.is-active{ background:#fff; color:var(--fx-blue); }
@media (max-width:960px){ .fmx-doc,.fmx-doc.has-toc{ grid-template-columns:1fr; gap:20px; padding-top:24px; } .fmx-toc{ position:static; } }
.fm-prose,.fmx-prose{ max-width:760px; font-size:16.5px; line-height:1.75; color:var(--fx-text); }
.fm-prose h2,.fmx-prose h2{ font-size:24px; margin:36px 0 12px; font-weight:800; scroll-margin-top:100px; }
.fm-prose h3,.fmx-prose h3{ font-size:19px; margin:26px 0 8px; font-weight:700; }
.fm-prose p,.fmx-prose p{ margin:0 0 14px; }
.fm-prose ul,.fmx-prose ul,.fm-prose ol,.fmx-prose ol{ padding-left:22px; margin:0 0 16px; }
.fm-prose li,.fmx-prose li{ margin:0 0 8px; }
.fm-prose a,.fmx-prose a{ text-decoration:underline; text-underline-offset:2px; }
.fmx-source{ font-size:13.5px !important; color:var(--fx-muted) !important; border-top:1px solid var(--fx-line); padding-top:12px; margin-top:28px !important; }
.fm-help-box,.fmx-helpbox{ margin:36px 0 0; padding:22px 24px; border-radius:var(--fx-r); background:var(--fx-sky); border:1px solid #d6e2ff; }
.fm-help-box h2,.fmx-helpbox h2{ margin:0 0 6px !important; font-size:19px !important; }
.fm-callout,.fmx-callout{ padding:16px 18px; border-left:4px solid var(--fx-orange); background:#fff7f2; border-radius:0 var(--fx-r-sm) var(--fx-r-sm) 0; margin:0 0 20px; }
.fmx-facts{ width:100%; border-collapse:collapse; margin:0 0 20px; font-size:15px; }
.fmx-facts th,.fmx-facts td{ text-align:left; padding:12px 14px; border-bottom:1px solid var(--fx-line); vertical-align:top; }
.fmx-facts th{ width:34%; color:var(--fx-ink); font-weight:600; background:var(--fx-bg); }
.fmx-aside-card{ border:1px solid var(--fx-line); border-radius:var(--fx-r); padding:20px; background:#fff; box-shadow:var(--fx-sh-sm); position:sticky; top:96px; }
.fmx-aside-card h2{ font-size:18px; margin:0 0 10px; }
.fmx-aside-card .fmx-btn{ width:100%; margin-top:8px; }
.fmx-doc--aside{ grid-template-columns:minmax(0,1fr) 320px; }
@media (max-width:960px){ .fmx-doc--aside{ grid-template-columns:1fr; } .fmx-aside-card{ position:static; } }
.fmx-taglist{ display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0 !important; margin:0 0 16px; }
.fmx-taglist li{ background:var(--fx-sky); color:var(--fx-navy); border-radius:var(--fx-pill); padding:6px 12px; font-size:13.5px; font-weight:600; margin:0 !important; }
.fmx-card{ display:flex; flex-direction:column; gap:10px; padding:22px; border:1px solid var(--fx-line); border-radius:var(--fx-r-lg); background:#fff; text-decoration:none !important; color:inherit; transition:box-shadow .2s, transform .2s; height:100%; }
.fmx-card:hover{ box-shadow:var(--fx-sh); transform:translateY(-2px); }
.fmx-card h3{ font-size:18px; margin:0; }
.fmx-card p{ margin:0; font-size:15px; color:var(--fx-text); }
.fmx-card__ic{ width:44px; height:44px; border-radius:12px; display:grid; place-items:center; background:var(--fx-sky); color:var(--fx-blue); }
.fmx-card__meta{ font-size:13px; color:var(--fx-muted); margin-top:auto !important; }
.fmx-sitemap{ columns:3 240px; column-gap:32px; }
.fmx-sitemap section{ break-inside:avoid; margin-bottom:24px; }
.fmx-sitemap h2{ font-size:18px; margin:0 0 10px; }
.fmx-sitemap ul{ list-style:none; padding:0; margin:0; }
.fmx-sitemap li{ margin:0 0 6px; }

/* legacy policy pages (old markup): readable measure + typography */
.paragaraph{ max-width:900px !important; margin:0 auto !important; font-size:16px; line-height:1.75; color:var(--fx-text); float:none !important; }
.paragaraph h2,.paragaraph h3,.paragaraph h4{ margin:28px 0 10px; }
.paragaraph p{ color:var(--fx-text) !important; }
.page-title{ background:linear-gradient(120deg,var(--fx-navy),var(--fx-navy-2)) !important; padding:44px 20px !important; margin:0 !important; }
.page-title h1,.margintopbottom{ color:#fff !important; font-family:var(--fx-head) !important; font-weight:800; font-size:clamp(28px,3.6vw,40px) !important; }

/* ---------- booking flow ---------- */
.fmx-steps{ display:flex; list-style:none; margin:20px auto; padding:0 20px; max-width:var(--fx-max); gap:8px; counter-reset:s; box-sizing:border-box; }
.fmx-steps li{ flex:1; display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:var(--fx-r); background:var(--fx-bg); border:1px solid var(--fx-line); font:600 14px/1.2 var(--fx-head); color:var(--fx-muted); min-width:0; }
.fmx-steps__n{ width:28px; height:28px; border-radius:50%; display:grid; place-items:center; background:#fff; border:1.5px solid var(--fx-line-2); font-weight:800; flex:0 0 auto; }
.fmx-steps li.is-done{ color:var(--fx-success); }
.fmx-steps li.is-done .fmx-steps__n{ background:var(--fx-success); border-color:var(--fx-success); color:#fff; }
.fmx-steps li.is-current{ background:var(--fx-navy); border-color:var(--fx-navy); color:#fff; }
.fmx-steps li.is-current .fmx-steps__n{ background:var(--fx-orange); border-color:var(--fx-orange); color:#fff; }
.fmx-steps__l{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media (max-width:700px){ .fmx-steps li:not(.is-current) .fmx-steps__l{ display:none; } .fmx-steps li{ flex:0 0 auto; } .fmx-steps li.is-current{ flex:1; } }
.fmx-terms{ margin:16px 0; padding:16px 18px; border:1.5px solid var(--fx-line-2); border-radius:var(--fx-r); background:#fff; text-align:left; }
.fmx-terms label{ display:flex; gap:12px; align-items:flex-start; font-weight:500; font-size:14.5px; line-height:1.5; color:var(--fx-text); cursor:pointer; margin:0 0 10px; }
.fmx-terms label:last-child{ margin-bottom:0; }
.fmx-terms input[type=checkbox]{ width:20px; height:20px; margin-top:2px; flex:0 0 auto; accent-color:var(--fx-blue); }
.fmx-terms.has-error{ border-color:var(--fx-red); background:#fff5f3; }

/* forms (contact etc.) */
.fmx-form{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.fmx-form .fmx-full{ grid-column:1 / -1; }
.fmx-form label{ display:block; font:600 14px var(--fx-head); color:var(--fx-ink); margin:0 0 6px; }
.fmx-form input,.fmx-form select,.fmx-form textarea{ width:100%; min-height:50px; border:1.5px solid var(--fx-line-2) !important; border-radius:12px !important; padding:10px 14px !important; font:500 16px var(--fx-body) !important; background:#fff !important; color:var(--fx-ink); box-sizing:border-box; margin:0 !important; height:auto !important; }
.fmx-form textarea{ min-height:140px; resize:vertical; }
.fmx-form input:focus,.fmx-form select:focus,.fmx-form textarea:focus{ border-color:var(--fx-blue) !important; outline:0; box-shadow:0 0 0 4px rgba(37,99,235,.12) !important; }
.fmx-form small{ color:var(--fx-muted); font-size:13px; }
@media (max-width:640px){ .fmx-form{ grid-template-columns:1fr; } }
.fmx-alert{ padding:14px 18px; border-radius:var(--fx-r); margin:0 0 18px; font-weight:500; }
.fmx-alert--ok{ background:#ecfdf3; border:1px solid #a7f3d0; color:#065f46; }
.fmx-alert--err{ background:#fff5f3; border:1px solid #fecaca; color:#991b1b; }
.fmx-contact-cards{ display:grid; gap:14px; }
.fmx-contact-card{ display:flex; gap:14px; align-items:flex-start; padding:18px; border:1px solid var(--fx-line); border-radius:var(--fx-r); background:#fff; }
.fmx-contact-card strong{ display:block; font:700 15px var(--fx-head); color:var(--fx-ink); }
.fmx-contact-card span,.fmx-contact-card a{ font-size:15px; }

/* old cookie banner + misc */
.fm-cookie{ z-index:2500 !important; }
#toTop{ z-index:1400; }
.sticky-footer{ display:none !important; }
@media (prefers-reduced-motion:reduce){ *{ transition:none !important; animation:none !important; scroll-behavior:auto !important; } }
/* legacy policy markup inside the new prose layout */
.fmx-legacy [class*="col-"]{ width:auto !important; float:none !important; padding-left:0 !important; padding-right:0 !important; }
.fmx-legacy .row{ margin:0 !important; }
.fmx-legacy p,.fmx-legacy li{ color:var(--fx-text) !important; font-size:16.5px !important; }
.fmx-legacy b,.fmx-legacy strong{ font-size:inherit !important; color:var(--fx-ink); }
.fmx-legacy h1{ font-size:26px !important; }
.fmx-legacy h2,.fmx-legacy h3,.fmx-legacy h4{ color:var(--fx-ink) !important; scroll-margin-top:100px; }
.fmx-legacy h3{ font-size:20px !important; margin:28px 0 10px !important; }
.fm-wrap.fmx-doc{ padding-top:40px; padding-bottom:64px; }
.fm-prose{ background:none !important; border:0 !important; box-shadow:none !important; padding:0 !important; }
.fm-page__hero{ margin-bottom:0 !important; }
.fm-page{ background:#fff !important; padding-bottom:0 !important; }
.fmx-doc--contact{ grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); }
@media (max-width:960px){ .fmx-doc--contact{ grid-template-columns:1fr; } }
.fmx-terms__err{ color:var(--fx-red); font-weight:600; font-size:14px; margin:6px 0 0; }
.fmx-terms__err[hidden]{ display:none; }
[hidden]{ display:none !important; }
/* mobile density */
@media (max-width:640px){
  .fmx-scroller{ display:grid; grid-auto-flow:column; grid-template-columns:none; grid-auto-columns:78%; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; padding:2px 2px 10px; -webkit-overflow-scrolling:touch; scrollbar-width:thin; }
  .fmx-scroller > *{ scroll-snap-align:start; }
  .fmx-trust__list{ grid-template-columns:1fr 1fr; gap:10px; }
  .fmx-trust__list li{ flex-direction:column; gap:8px; padding:12px; }
  .fmx-trust__ic{ width:34px; height:34px; border-radius:10px; }
  .fmx-trust__list strong{ font-size:14px; }
  .fmx-trust__list span{ font-size:12.5px; }
  .fmx-how li{ padding:18px 16px; }
  .fmx-how__n{ width:36px; height:36px; font-size:16px; margin-bottom:10px; }
  .fmx-section{ padding-top:44px !important; padding-bottom:44px !important; }
}
/* booking flow: the new step bar replaces the old 3-step strip */
.trvdtls,.trvdtls1,.solidlinedv{ display:none !important; }
#paynow.paynowdv{ width:100% !important; height:auto !important; white-space:normal; padding:14px 20px !important; font:700 18px/1.2 var(--fx-head) !important; background:linear-gradient(135deg,var(--fx-orange),var(--fx-red)) !important; border:0 !important; border-radius:14px !important; box-shadow:0 10px 24px rgba(240,90,20,.28); color:#fff !important; }
#paynow.paynowdv .lisnjkd{ display:block; font:600 12px var(--fx-body); opacity:.9; margin-top:4px; }
.lisnbsgwew{ font-size:12.5px !important; color:var(--fx-muted) !important; text-align:center; margin-top:8px; }
/* results page: modify-search band in brand colours */
.header.header-bg-2,.header.header-bg-5{ background:linear-gradient(135deg,var(--fx-navy),var(--fx-blue)) !important; }
#mainboxdiv .thm-btn,#mainboxdiv button[type=submit]{ background:linear-gradient(135deg,var(--fx-orange),var(--fx-red)) !important; border:0 !important; border-radius:12px !important; font-weight:700; }
#mainboxdiv .form-control{ border-radius:10px !important; }
/* note on pages whose long text is only in English (shown to es/fr/de visitors) */
.fmx-en-only{ display:inline-flex; align-items:center; gap:6px; margin:10px 0 0; padding:6px 14px; border-radius:var(--fx-pill); background:rgba(255,255,255,.14); color:inherit; font-size:13.5px; }
.fm-page__hero .fmx-en-only{ background:var(--fx-sky); color:var(--fx-navy); }
.fmx-pagehero p.fmx-en-only, .fm-page__hero p.fmx-en-only{ font-size:13px; line-height:1.45; font-weight:500; margin-top:14px; max-width:none; opacity:.95; }
