/* metric-matched fallbacks (measured widths: Barlow Condensed 700 = 0.759 × Arial Bold, 0.925 × Arial Narrow Bold;
   Barlow 400 = 0.962 × Arial), so the swap to the web fonts doesn't re-wrap text (no layout shift) */
@font-face{font-family:"BC Fallback";src:local("Arial Narrow Bold"),local("ArialNarrow-Bold"),local("Liberation Sans Narrow Bold"),local("LiberationSansNarrow-Bold");font-weight:600 800;size-adjust:92.5%;ascent-override:100%;descent-override:20%;line-gap-override:0%}
@font-face{font-family:"BC Fallback 2";src:local("Arial Bold"),local("Arial-BoldMT"),local("Helvetica Neue Bold"),local("HelveticaNeue-Bold"),local("Helvetica Bold"),local("Helvetica-Bold"),local("Liberation Sans Bold"),local("LiberationSans-Bold");font-weight:600 800;size-adjust:75.9%;ascent-override:100%;descent-override:20%;line-gap-override:0%}
@font-face{font-family:"B Fallback";src:local("Arial"),local("ArialMT"),local("Helvetica Neue"),local("HelveticaNeue"),local("Helvetica"),local("Liberation Sans"),local("LiberationSans");size-adjust:96.2%;ascent-override:100%;descent-override:20%;line-gap-override:0%}
/* Catch A Flight v2 — shared styles. Mobile-first (390px), scales up. */
:root{
  --ink:#0E1A2B; --ink-2:#22304A; --paper:#FFFFFF; --soft:#F4F6F9; --card:#FFFFFF; --line:#E3E8EF;
  --text:#14213A; --muted:#5E6B82; --accent:#1876C8; --accent-2:#1465AB; --accent-soft:#E6F2FC; --accent-ink:#0E1A2B; --accent-fill:#8FD0FF; --accent-fill-2:#6FC0FA;
  --ok:#13774A; --ok-soft:#E5F4EC; --bad:#C62828;
  --radius:20px; --radius-s:14px; --shadow:0 1px 2px rgba(14,26,43,.06),0 8px 24px rgba(14,26,43,.06);
  --display:"Barlow Condensed","BC Fallback","BC Fallback 2","Arial Narrow",Arial,sans-serif;
  --body:Barlow,"B Fallback","Segoe UI",Helvetica,Arial,sans-serif;
  --gut:16px; --hdr:56px;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --ink:#0B1422; --ink-2:#182742; --paper:#0C1422; --soft:#121C2E; --card:#16213A; --line:#26344F;
    --text:#EEF2F8; --muted:#9AA8C0; --accent:#7CC4FA; --accent-2:#9AD2FB; --accent-soft:#12304A; --accent-fill:#8FD0FF; --accent-fill-2:#6FC0FA;
    --ok:#3CC98A; --ok-soft:#12302A; --bad:#FF7B7B; --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.25);
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --ink:#0B1422; --ink-2:#182742; --paper:#0C1422; --soft:#121C2E; --card:#16213A; --line:#26344F;
  --text:#EEF2F8; --muted:#9AA8C0; --accent:#7CC4FA; --accent-2:#9AD2FB; --accent-soft:#12304A; --accent-fill:#8FD0FF; --accent-fill-2:#6FC0FA;
  --ok:#3CC98A; --ok-soft:#12302A; --bad:#FF7B7B; --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.25);
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none !important}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--body);font-size:17px;line-height:1.5;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1.02;margin:0;text-wrap:balance;letter-spacing:-.005em}
p{margin:0}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:6px}
.wrap{width:100%;max-width:1120px;margin:0 auto;padding-inline:max(var(--gut),env(safe-area-inset-left)) max(var(--gut),env(safe-area-inset-right))}
.narrow{max-width:720px}
.muted{color:var(--muted)}
.fine{font-size:13.5px;color:var(--muted);line-height:1.45}
.fine a{color:inherit}
.eyebrow{font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* header */
.hdr{position:sticky;top:0;z-index:30;background:var(--paper);background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid transparent;padding-top:env(safe-area-inset-top)}
.hdr.scrolled{border-bottom-color:var(--line)}
.hdr .wrap{display:flex;align-items:center;gap:12px;min-height:var(--hdr)}
.brand{font-family:var(--display);font-weight:700;font-size:21px;letter-spacing:.03em;text-decoration:none;display:inline-flex;align-items:center;gap:8px;min-height:44px;white-space:nowrap}
.brand i{width:10px;height:10px;border-radius:50%;background:var(--accent-fill);display:inline-block}
.nav{margin-left:auto;display:flex;align-items:center;gap:4px}
.nav a.lnk{text-decoration:none;font-weight:500;font-size:15px;padding:10px 10px;min-height:44px;display:inline-flex;align-items:center;color:var(--muted)}
.nav a.lnk:hover{color:var(--text)}
@media (max-width:380px){.nav a.lnk.hide-xs{display:none}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 26px;border-radius:999px;border:0;background:var(--accent-fill);color:var(--accent-ink);font-weight:600;font-size:17px;text-decoration:none;cursor:pointer;transition:background .15s,transform .1s;white-space:nowrap;-webkit-tap-highlight-color:transparent}
.btn:hover{background:var(--accent-fill-2)}
.btn:active{transform:scale(.98)}
.btn[disabled]{opacity:.6;cursor:wait}
.btn.dark{background:var(--ink);color:#fff}
.btn.ghost{background:transparent;color:var(--text);box-shadow:inset 0 0 0 1.5px var(--line)}
.btn.ghost:hover{box-shadow:inset 0 0 0 1.5px var(--text)}
.btn.sm{min-height:44px;padding:0 18px;font-size:15px}
.btn.block{width:100%}
.btn-row{display:flex;flex-wrap:wrap;gap:10px}
.tlink{color:var(--accent);font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:6px;min-height:44px}
.tlink:hover{text-decoration:underline}

/* sections */
.sec{padding-block:56px}
.sec.soft{background:var(--soft)}
.sec h2{font-size:clamp(34px,8.5vw,52px)}
.sec .lede{color:var(--muted);margin-top:10px;max-width:46ch;font-size:18px}
.sec-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:8px 16px;margin-bottom:24px}
@media (min-width:900px){.sec{padding-block:88px}}

/* hero */
.hero{padding-block:40px 48px}
.hero h1{font-size:clamp(50px,14vw,96px);line-height:.94;margin:14px 0 18px}
.hero h1 em{font-style:normal;color:var(--accent)}
.hero .sub{font-size:19px;color:var(--muted);max-width:34ch}
.hero .btn-row{margin-top:28px}
.hero .trust{margin-top:18px;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:14px;color:var(--muted)}
.hero .trust span{display:inline-flex;align-items:center;gap:6px}
.hero .trust svg{width:16px;height:16px;color:var(--ok)}
.hero-grid{display:grid;gap:36px;align-items:center}
@media (min-width:900px){.hero{padding-block:72px 88px}.hero-grid{grid-template-columns:1.1fr .9fr;gap:56px}}

/* ticket visual in hero */
.ticket{position:relative;border-radius:28px;overflow:hidden;aspect-ratio:4/4.4;background:var(--ink-2);box-shadow:var(--shadow);max-width:440px;width:100%;justify-self:center}
.ticket img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ticket::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,12,24,0) 40%,rgba(6,12,24,.82) 100%)}
.ticket .tk{position:absolute;left:18px;right:18px;bottom:18px;z-index:1;color:#fff}
.ticket .tk .c{font-family:var(--display);font-size:42px;font-weight:700;line-height:1}
.ticket .tk .o{font-size:15px;opacity:.9;margin-top:4px}
.ticket .save{position:absolute;top:16px;left:16px;z-index:1}
@media (max-width:899px){.ticket{aspect-ratio:16/11}}

/* steps */
.steps{display:grid;gap:14px;counter-reset:s;margin-top:28px}
.step{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px}
.sec.soft .step{border-color:transparent}
.step .n{width:36px;height:36px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:700;display:grid;place-items:center;margin-bottom:14px}
.step h3{font-size:26px;margin-bottom:6px}
.step p{color:var(--muted)}
@media (min-width:760px){.steps{grid-template-columns:repeat(3,1fr)}}

/* save badge */
.save{display:inline-flex;align-items:center;gap:6px;background:var(--accent-fill);color:var(--accent-ink);font-family:var(--display);font-weight:700;letter-spacing:.04em;font-size:17px;padding:5px 12px;border-radius:999px;line-height:1.1;white-space:nowrap}

/* deal cards */
.cards{display:grid;gap:14px}
@media (min-width:640px){.cards{grid-template-columns:repeat(2,1fr)}}
@media (min-width:980px){.cards{grid-template-columns:repeat(3,1fr)}}
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:82%;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:6px;margin-inline:calc(-1 * var(--gut));padding-inline:var(--gut);scroll-padding-inline:var(--gut);scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
.rail>*{scroll-snap-align:start}
@media (min-width:640px){.rail{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:repeat(2,1fr);overflow:visible;margin-inline:0;padding-inline:0}}
@media (min-width:980px){.rail{grid-template-columns:repeat(3,1fr)}}
.card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;text-decoration:none;color:var(--text);transition:transform .15s,box-shadow .15s;min-width:0}
.card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.card .ph{position:relative;aspect-ratio:16/10;background:var(--soft)}
.card .ph img{width:100%;height:100%;object-fit:cover}
.card .ph .save{position:absolute;left:12px;top:12px}
.card .ph .lk{position:absolute;right:12px;top:12px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.92);color:#0E1A2B;display:grid;place-items:center}
.card .ph .lk svg{width:16px;height:16px}
.card .bd{padding:16px 18px 18px;display:grid;gap:4px}
.card .city{font-family:var(--display);font-size:28px;font-weight:700;line-height:1.05}
.card .meta{font-size:15px;color:var(--muted)}
.card .pr{display:flex;align-items:baseline;gap:8px;margin-top:6px}
.card .pr b{font-family:var(--display);font-size:24px}
.card .pr s{color:var(--muted);font-size:15px}
.card .go{margin-top:8px;font-weight:600;color:var(--accent);font-size:15px}
.card.gone .ph img{filter:grayscale(1) brightness(.8)}

/* skeletons / empty */
.skel{border-radius:var(--radius);background:linear-gradient(90deg,var(--soft),color-mix(in srgb,var(--soft) 60%,var(--line)),var(--soft));background-size:200% 100%;animation:sk 1.4s infinite;min-height:280px}
@keyframes sk{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.skel{animation:none}}
.empty{border:1.5px dashed var(--line);border-radius:var(--radius);padding:28px 22px;text-align:center;color:var(--muted)}
.empty b{display:block;color:var(--text);font-size:19px;margin-bottom:4px}

/* missed strip */
.mstrip{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gut);-webkit-overflow-scrolling:touch;margin-inline:calc(-1 * var(--gut));padding:2px var(--gut) 6px;scrollbar-width:none}
.mstrip::-webkit-scrollbar{display:none}
.mi{flex:0 0 auto;scroll-snap-align:start;display:flex;gap:12px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-s);padding:10px 14px 10px 10px;min-width:240px}
.mi img{width:56px;height:56px;border-radius:10px;object-fit:cover;filter:grayscale(.7);flex:none;background:var(--soft)}
.mi .mc{font-weight:600;line-height:1.2;display:flex;align-items:center;gap:6px}
.mi .gn{font-size:11px;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line);color:var(--muted);border-radius:6px;padding:0 5px}
.mi>div:not(.mp){flex:1 1 auto;min-width:0}
.mi .mp{font-family:var(--display);font-weight:700;font-size:22px;color:var(--accent);line-height:1.1;margin-left:auto;text-align:right;flex:none;display:flex;flex-direction:column;align-items:flex-end}
.mi .mp s{color:var(--muted);font-size:14px;text-decoration:none;font-weight:600;font-family:var(--body,inherit)}
.mi .ms{font-size:13.5px;color:var(--muted)}
.mgrid{display:grid;gap:10px}
.mgrid .mi{min-width:0}
@media (min-width:640px){.mgrid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:980px){.mgrid{grid-template-columns:repeat(3,1fr)}}
@media (min-width:980px){.mstrip{flex-wrap:wrap;overflow:visible;margin-inline:0;padding-inline:0}}

/* pricing */
.price-card{background:var(--ink);color:#fff;border-radius:28px;padding:28px 22px;display:grid;gap:18px}
.price-card h2{color:#fff}
.price-card .big{font-family:var(--display);font-size:64px;font-weight:700;line-height:1}
.price-card .big small{font-family:var(--body);font-size:16px;font-weight:500;opacity:.75;margin-left:4px}
.price-card .muted{color:#B8C3D6}
.ticks{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.ticks li{display:flex;gap:10px;align-items:flex-start}
.ticks li::before{content:"";flex:none;width:22px;height:22px;margin-top:1px;border-radius:50%;background:var(--accent-fill) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E1A2B' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/14px no-repeat}
@media (min-width:900px){.price-card{grid-template-columns:1fr 1fr;padding:48px;align-items:center}}

/* plans */
.plans{display:grid;gap:10px}
.plan{position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:2px 14px;align-items:center;background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius-s);padding:16px;cursor:pointer;min-height:72px;-webkit-tap-highlight-color:transparent}
.plan input{position:absolute;opacity:0;pointer-events:none}
.plan .dot{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);grid-row:1/3;display:grid;place-items:center}
.plan .nm{font-weight:600;font-size:17px}
.plan .pm{font-size:14px;color:var(--muted)}
.plan .pp{grid-column:3;grid-row:1/3;text-align:right;font-family:var(--display);font-weight:700;font-size:26px;line-height:1}
.plan .pp small{display:block;font-family:var(--body);font-weight:500;font-size:13px;color:var(--muted);margin-top:3px}
.plan .tag{position:absolute;top:-11px;right:14px;background:var(--accent-fill);color:var(--accent-ink);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 10px;border-radius:999px}
.plan:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.plan:has(input:checked) .dot{border-color:var(--accent)}
.plan:has(input:checked) .dot::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--accent-fill)}
.plan:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px}
.plan.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}

/* trial card */
.trial{background:var(--accent-soft);border-radius:var(--radius);padding:20px;display:grid;gap:12px}
.trial h3{font-size:30px}
.trial .fine{color:var(--muted)}

/* forms */
.field{display:flex;gap:8px;flex-wrap:wrap}
.input{flex:1 1 220px;min-width:0;min-height:52px;border-radius:999px;border:1.5px solid var(--line);background:var(--card);padding:0 20px;font-size:17px;outline:none;-webkit-appearance:none;appearance:none}
.input:focus{border-color:var(--accent)}
.field .btn{flex:0 0 auto}
@media (max-width:480px){.field .btn{flex:1 1 100%}}
.msg{font-size:15px;margin-top:10px;min-height:1.2em}
.msg.err{color:var(--bad)}
.msg.ok{color:var(--ok)}
.capture{background:var(--soft);border-radius:28px;padding:28px 22px;display:grid;gap:14px}
.capture h2{font-size:clamp(32px,8vw,46px)}
@media (min-width:900px){.capture{padding:48px}}

/* FAQ */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:18px 40px 18px 0;font-weight:600;font-size:18px;position:relative;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:6px;top:50%;width:12px;height:12px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:translateY(-70%) rotate(45deg);transition:transform .2s}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq details p{padding:0 0 18px;color:var(--muted);max-width:62ch}

/* footer */
.foot{border-top:1px solid var(--line);padding-block:36px calc(36px + env(safe-area-inset-bottom));font-size:14px;color:var(--muted)}
.foot .wrap{display:grid;gap:16px}
.foot nav{display:flex;flex-wrap:wrap;gap:0 18px}
.foot nav a{text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.foot nav a:hover{color:var(--text)}
body.has-sticky .foot{padding-bottom:calc(110px + env(safe-area-inset-bottom))}

/* sticky mobile CTA */
.sticky{position:fixed;left:0;right:0;bottom:0;z-index:40;padding:12px max(var(--gut),env(safe-area-inset-left)) calc(12px + env(safe-area-inset-bottom));background:var(--paper);background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);transform:translateY(110%);transition:transform .25s ease}
.sticky.show{transform:none}
.sticky .btn{width:100%}
.sticky .fine{text-align:center;margin-top:6px;font-size:13.5px}
@media (min-width:900px){.sticky{display:none}body.has-sticky .foot{padding-bottom:36px}}

/* panels */
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px}
.lock-ico{width:44px;height:44px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center}
.lock-ico svg{width:20px;height:20px}
.center{text-align:center}
.stack{display:grid;gap:14px}
.stack-l{display:grid;gap:24px}
.pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:4px 12px;font-size:14px;color:var(--muted)}
.chip-ok{display:inline-flex;align-items:center;gap:6px;background:var(--ok-soft);color:var(--ok);border-radius:999px;padding:4px 12px;font-size:14px;font-weight:600}

@media (max-width:480px){.hero .btn-row .btn{width:100%}}
.msg:empty{display:none}
@media (min-width:900px){.hero h1{font-size:clamp(64px,6.6vw,88px)}.hero-grid{grid-template-columns:1.25fr .75fr}}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .btn.dark{background:#EEF2F8;color:#0E1A2B}
  :root:not([data-theme="light"]) .price-card{background:var(--card);border:1px solid var(--line)}
}
:root[data-theme="dark"] .btn.dark{background:#EEF2F8;color:#0E1A2B}
:root[data-theme="dark"] .price-card{background:var(--card);border:1px solid var(--line)}
.sticky{visibility:hidden;transition:transform .25s ease,visibility 0s linear .25s}
.sticky.show{visibility:visible;transition:transform .25s ease,visibility 0s}

/* ======================= v2.1: motion, ticker, colour blocks ======================= */
@media (max-width:470px){.nav a.lnk.hide-xs{display:none}}   /* 2026-10-23 audit: brand clipped to "CATCH A FLIGH" at 420-450px (iPhone Pro Max) */
.nav .lnk+.btn{margin-left:4px}
/* scroll-in reveals: only when JS turned them on (html.rv-on); content is visible otherwise */
.rv-on [data-rv]{opacity:0;transform:translateY(22px);transition:opacity .6s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
.rv-on [data-rv].in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv-on [data-rv]{opacity:1;transform:none;transition:none}}

/* hero v2 */
.livepill{display:inline-flex;align-items:center;gap:8px;background:var(--soft);border-radius:999px;padding:6px 14px 6px 10px;font-size:14px;font-weight:600;color:var(--text)}
.dot-live{width:9px;height:9px;border-radius:50%;background:#16A34A;box-shadow:0 0 0 0 rgba(22,163,74,.5);flex:none}
@media (prefers-reduced-motion:no-preference){.dot-live{animation:pulse 1.8s infinite}}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(22,163,74,.45)}70%{box-shadow:0 0 0 8px rgba(22,163,74,0)}100%{box-shadow:0 0 0 0 rgba(22,163,74,0)}}
.hero form.hform{margin-top:26px;display:grid;gap:10px;max-width:520px}
.hero .upsell{margin-top:14px;font-size:15px;color:var(--muted)}
.hero .upsell a{color:var(--text);font-weight:600}

/* live ticker */
.ticker{background:var(--card);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);overflow:hidden;width:100%;max-width:520px;justify-self:center}
.tk-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}
.tk-head b{font-family:var(--display);font-size:22px;letter-spacing:.02em}
.tk-head .livepill{background:color-mix(in srgb,#16A34A 12%,transparent);color:var(--live-ink);font-size:13px;padding:4px 12px 4px 9px}
.tk-win{height:calc(var(--rowh) * var(--rows));overflow:hidden;position:relative;--rowh:66px;--rows:5}
.tk-win::after{content:"";position:absolute;left:0;right:0;bottom:0;height:40px;background:linear-gradient(transparent,var(--card));pointer-events:none}
.tk-list{list-style:none;margin:0;padding:0;will-change:transform}
.tk-row{height:var(--rowh);display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:12px;align-items:center;padding:0 16px;border-bottom:1px solid var(--line);cursor:pointer;background:var(--card);transition:background .15s}
.tk-row:hover{background:var(--soft)}
.tk-row:focus-visible{outline-offset:-3px}
.tk-row .logo{width:64px;height:30px;border-radius:8px;background:#fff;display:grid;place-items:center;overflow:hidden;border:1px solid var(--line)}
.tk-row .logo img{width:60px;height:20px;object-fit:contain}
.tk-row .logo.glyph{color:var(--muted);background:var(--soft)}
.tk-row .logo.glyph svg{width:18px;height:18px}
.tk-row .rt{font-weight:600;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25}
.tk-row .sb{font-size:13.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk-row .pz{text-align:right;line-height:1.1}
.tk-row .pz b{font-family:var(--display);font-size:24px;display:block}
.tk-row .pz span{font-size:12px;color:var(--muted);white-space:nowrap}
.tk-row.fresh{background:color-mix(in srgb,var(--accent) 9%,var(--card))}
.tk-row.fresh .pz b{color:var(--accent)}
.tk-foot{padding:14px 16px 16px;display:grid;gap:8px}
.tk-foot .fine{text-align:center}
.tk-empty{height:100%;display:grid;place-items:center;color:var(--muted);font-size:15px;text-align:center;padding:16px}

/* stats band (data-forward) */
.band{background:var(--band);color:#fff}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding-block:28px}
.stat b{display:block;font-family:var(--display);font-weight:700;font-size:clamp(34px,10vw,64px);line-height:1;font-variant-numeric:tabular-nums;color:#fff}
.stat span{display:block;font-size:13px;color:#B8C3D6;margin-top:6px;line-height:1.3}
.stat b em{font-style:normal;color:var(--accent)}
@media (min-width:900px){.stats{padding-block:44px}.stat span{font-size:16px}}

/* usual vs now mini chart on cards */
.uvn{margin-top:8px;display:grid;gap:4px}
.uvn svg{width:100%;height:14px;display:block}
.uvn .u{fill:color-mix(in srgb,var(--muted) 28%,transparent)}
.uvn .n{fill:var(--accent)}
.uvl{display:flex;justify-content:space-between;font-size:13px;color:var(--muted)}
.uvl b{color:var(--ok);font-weight:600}

/* free vs member colour blocks (editorial) */
.choose{display:grid;gap:14px}
.blk{border-radius:28px;padding:28px 22px;display:grid;gap:14px;align-content:start}
.blk h2{font-size:clamp(36px,9vw,56px)}
.blk.free{background:var(--accent-fill);color:var(--accent-ink)}
.blk.free .muted,.blk.free .fine{color:#fff}
.blk.free .fine a{color:#fff}
.blk.free .input{border-color:transparent}
.blk.free .btn{background:var(--ink);color:#fff}
.blk.free .btn:hover{background:#000}
.blk.free .msg.err{color:#fff;font-weight:600}
.blk.mem{background:var(--soft);color:var(--text)}
.blk .tagline{font-family:var(--display);font-size:20px;letter-spacing:.06em;text-transform:uppercase}
.blk .big{font-family:var(--display);font-size:56px;font-weight:700;line-height:1}
.blk .big small{font-family:var(--body);font-size:16px;font-weight:500;color:var(--muted);margin-left:4px}
@media (min-width:900px){.choose{grid-template-columns:1.15fr .85fr}.blk{padding:44px}}

/* bottom sheet */
.sheet{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-end;justify-content:center}
.sheet-bg{position:absolute;inset:0;background:rgba(6,12,24,.5);opacity:0;transition:opacity .25s}
.sheet-card{position:relative;width:100%;max-width:560px;background:var(--paper);border-radius:28px 28px 0 0;padding:26px max(20px,env(safe-area-inset-left)) calc(24px + env(safe-area-inset-bottom));display:grid;gap:12px;transform:translateY(100%);transition:transform .28s cubic-bezier(.2,.7,.2,1);max-height:92vh;overflow:auto}
.sheet-card h2{font-size:36px;padding-right:40px}
.sheet.open .sheet-bg{opacity:1}
.sheet.open .sheet-card{transform:none}
.sheet-x{position:absolute;top:14px;right:14px;width:44px;height:44px;border-radius:50%;border:0;background:var(--soft);font-size:26px;line-height:1;cursor:pointer;color:var(--text)}
@media (min-width:640px){.sheet{align-items:center}.sheet-card{border-radius:28px;padding:32px}}
@media (prefers-reduced-motion:reduce){.sheet-bg,.sheet-card{transition:none}}
html.sheet-lock,html.sheet-lock body{overflow:hidden}

:root{--live-ink:#15803D;--band:#0E1A2B}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--live-ink:#4ADE80;--band:#182742}}
:root[data-theme="dark"]{--live-ink:#4ADE80;--band:#182742}
.card .ph.noimg{background:linear-gradient(135deg,var(--ink-2) 0%,#3B4C6B 55%,var(--accent) 140%)}
.card .ph.noimg::after{content:"";position:absolute;inset:0;margin:auto;width:44px;height:44px;opacity:.35;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M21 15.5v-1.7l-8-5V3.6a1.6 1.6 0 0 0-3.2 0v5.2l-8 5v1.7l8-2.4v5l-2 1.5V21l3.6-1 3.6 1v-1.4l-2-1.5v-5z'/%3E%3C/svg%3E") center/contain no-repeat}
.card .ph{flex:none}
@media (min-width:900px){.hero-grid{grid-template-columns:1.05fr .95fr}.hero .sub{max-width:40ch}}
.mi .mth{width:56px;height:56px;border-radius:10px;overflow:hidden;flex:none;background:var(--soft)}
.mi .mth img{width:100%;height:100%;object-fit:cover;border-radius:0}
.mi .mth.noimg{background:linear-gradient(135deg,var(--ink-2) 0%,#3B4C6B 55%,var(--accent) 140%)}

/* ======================= v3: sky hero, departures board, ask ======================= */
:root{--navy:#0E1A2B;--board-bg:rgba(8,14,26,.82);--flap:#152238;--flap-ink:#FFB938;--flap-dim:#7E8CA3;--mono:"SF Mono",ui-monospace,Menlo,Consolas,"Roboto Mono","Liberation Mono",monospace}
/* hero on navy with a shader canvas; the gradient is the no-WebGL fallback */
.hero.sky{position:relative;overflow:hidden;isolation:isolate;color:#fff;
  background:radial-gradient(70% 60% at 92% 12%,rgba(240,82,47,.22) 0%,rgba(240,82,47,0) 60%),radial-gradient(120% 80% at 0% 0%,#1C2D4C 0%,#0E1A2B 55%,#0A1322 100%)}
.hero.sky::after{content:"";position:absolute;inset:auto 0 0 0;height:80px;background:linear-gradient(transparent,rgba(10,19,34,.55));pointer-events:none;z-index:-1}
.hero.sky canvas.shader{position:absolute;inset:0;width:100%;height:100%;z-index:-1;opacity:0;transition:opacity 1.4s ease;pointer-events:none}
.hero.sky canvas.shader.on{opacity:1}
@media (prefers-reduced-motion:reduce){.hero.sky canvas.shader{transition:none}}
.hero.sky h1{color:#fff}
.hero.sky h1 em{color:#FF6B48}
.hero.sky .sub{color:#C9D3E3}
.hero.sky .fine{color:#9FB0CA}
.hero.sky .fine a,.hero.sky .upsell a{color:#fff}
.hero.sky .upsell{color:#C9D3E3}
.hero.sky .livepill{background:rgba(255,255,255,.08);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.hero.sky .input{background:#fff;color:#0E1A2B;border-color:transparent}
.hero.sky .input::placeholder{color:#6B7891}
.hero.sky .input:focus{border-color:#FF6B48}
.hero.sky .msg.err{color:#FFA48F}
.hero.sky .msg.ok{color:#7BE3AE}

/* split-flap departures board */
.dboard{width:100%;max-width:540px;justify-self:center;background:var(--board-bg);-webkit-backdrop-filter:blur(10px) saturate(1.2);backdrop-filter:blur(10px) saturate(1.2);border:1px solid rgba(255,255,255,.1);border-radius:22px;box-shadow:0 20px 60px rgba(0,0,0,.35);overflow:hidden;color:var(--flap-ink);
  --fw:10px;--fh:19px;--fs:12px;--cg:8px;--to:8}
@media (min-width:560px){.dboard{--fw:14px;--fh:25px;--fs:16px;--cg:12px;--to:11}}
.bd-chrome{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.08);color:#DCE3EE}
.bd-chrome .dots{display:inline-flex;gap:6px}
.bd-chrome .dots i{width:10px;height:10px;border-radius:50%;background:#3A4760;display:block}
.bd-chrome .dots i:first-child{background:#FF5F57}.bd-chrome .dots i:nth-child(2){background:#FEBC2E}.bd-chrome .dots i:nth-child(3){background:#28C840}
.bd-title{font-family:var(--mono);font-size:12px;letter-spacing:.14em;font-weight:600;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bd-chrome .livepill{background:rgba(22,163,74,.16);color:#4ADE80;font-size:12px;padding:3px 10px 3px 8px}
.bd-grid{display:grid;grid-template-columns:calc(5 * (var(--fw) + 1px)) calc(3 * (var(--fw) + 1px)) calc(var(--to) * (var(--fw) + 1px)) minmax(34px,1fr) calc(5 * (var(--fw) + 1px));column-gap:var(--cg);align-items:center}
.bd-head{padding:10px 12px 4px;font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--flap-dim);font-weight:600}
.bd-head span:last-child{text-align:right}
.bd-list{list-style:none;margin:0;padding:4px 0 6px}
.bd-row{padding:5px 12px;cursor:pointer;border-radius:0;-webkit-tap-highlight-color:transparent;transition:background .15s}
.bd-row:hover{background:rgba(255,255,255,.04)}
.bd-row:focus-visible{outline:2px solid #FF6B48;outline-offset:-2px}
.flaps{display:flex;gap:1px;perspective:220px}
.flaps.r{justify-content:flex-end}
.fl{position:relative;display:inline-grid;place-items:center;width:var(--fw);height:var(--fh);background:var(--flap);border-radius:2px;font-family:var(--mono);font-size:var(--fs);font-weight:700;line-height:1;color:var(--flap-ink);font-variant-numeric:tabular-nums;transform-origin:50% 50%;backface-visibility:hidden}
.fl::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(0,0,0,.55)}
.fl::before{content:"";position:absolute;inset:0 0 50% 0;background:rgba(255,255,255,.04);border-radius:2px 2px 0 0}
.bd-row .c-air{display:flex;align-items:center;min-width:0}
.bd-row .logo{width:100%;max-width:56px;height:var(--fh);border-radius:3px;background:#fff;display:grid;place-items:center;overflow:hidden}
.bd-row .logo img{width:100%;height:100%;object-fit:contain;padding:1px 3px}
.bd-row .logo.glyph{background:var(--flap);color:var(--flap-dim)}
.bd-row .logo.glyph svg{width:13px;height:13px}
.bd-row.fresh .c-price .fl{color:#fff;background:#3A1D17}
.bd-foot{padding:12px 14px 14px;display:grid;gap:8px;border-top:1px solid rgba(255,255,255,.08)}
.bd-foot .fine{text-align:center;color:#8C9AB3}



/* ---- v3.1 departures board: readable rows (full city names in Barlow), flaps only on price/time ---- */
.bd-row2{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;align-items:center}
.bd-row2 .c-time,.bd-row2 .c-air,.bd-head .h-time,.bd-head .h-air{display:none}
.bd-head.bd-row2{padding:10px 16px 6px;font-family:var(--body);font-size:12px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;color:#9AA8C0}
.bd-head .h-price{text-align:right}
@media (max-width:559px){.bd-head.bd-row2{display:none}}
.bd-list{padding:2px 0 4px}
.bd-row.bd-row2{height:78px;padding:0 16px;border-top:1px solid rgba(255,255,255,.08)}
.bd-row.bd-row2:first-child{border-top:0}
.bd-row2 .c-main{display:grid;gap:4px;min-width:0}
.bd-row2 .rt{font-family:var(--body);font-weight:600;font-size:17px;line-height:1.22;color:#F4F7FB;overflow-wrap:anywhere}
.bd-row2 .rt.long{font-size:16px}
.bd-row2 .sb{display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;font-family:var(--body);font-size:13.5px;line-height:1.3;color:#A9B6CC}
.bd-row2 .sb .tm{margin-left:-4px}
.bd-row2 .logo.in{width:44px;height:18px;flex:none;border-radius:4px;background:#fff;display:inline-grid;place-items:center;overflow:hidden}
.bd-row2 .logo.in img{width:100%;height:100%;object-fit:contain;padding:1px 3px}
.bd-row2 .logo.in.glyph{background:rgba(255,255,255,.1);color:#A9B6CC}
.bd-row2 .logo.in.glyph svg{width:12px;height:12px}
.bd-row2 .c-price{justify-self:end}
.flaps.big .fl{width:19px;height:32px;font-size:23px;border-radius:3px}
.flaps.sm .fl{width:12px;height:22px;font-size:14px}
.fl.e{background:transparent}
.fl.e::before,.fl.e::after{display:none}
.bd-row2.fresh .c-price .fl:not(.e){color:#fff;background:#4A2219}
.bd-row2.empty{cursor:default}
@media (min-width:560px){
  .bd-row2{grid-template-columns:calc(5 * 13px) minmax(0,1fr) 56px auto;column-gap:14px}
  .bd-row2 .c-time,.bd-row2 .c-air,.bd-head .h-time,.bd-head .h-air{display:block}
  .bd-row.bd-row2{height:72px}
  .bd-row2 .sb .logo.in,.bd-row2 .sb .tm{display:none}
  .bd-row2 .c-air .logo{width:56px;height:24px;border-radius:5px;background:#fff;display:grid;place-items:center;overflow:hidden}
  .bd-row2 .c-air .logo img{width:100%;height:100%;object-fit:contain;padding:2px 4px}
  .bd-row2 .c-air .logo.glyph{background:rgba(255,255,255,.08);color:#A9B6CC}
  .bd-row2 .c-air .logo.glyph svg{width:14px;height:14px}
}

/* 2026-10-08: clock column retired (age is shown as "caught 12 min ago" under the route) */
.bd-row .c-time, .bd-head .h-time{display:none !important}
@media (min-width:560px){
  .bd-row2{grid-template-columns:minmax(0,1fr) 56px auto !important}
  .bd-row2 .sb .tm{display:inline !important}
}
.bd-row2 .sb .tm{display:block;width:100%;font-size:12.5px;opacity:.85;margin-top:1px}
.bd-row2 .sb{flex-wrap:wrap}
@media (min-width:560px){ .bd-row2 .sb .tm{display:inline !important;width:auto;margin:0;font-size:inherit;opacity:1} .bd-row2 .sb .tm::before{content:" · "} }

/* ======================= v4 ======================= */
.homesel{display:grid;gap:4px;margin-bottom:8px;max-width:520px}
.homesel label{font-size:13px;font-weight:600;color:var(--muted)}
.homesel select,.wl select{min-height:48px;border-radius:999px;border:1.5px solid var(--line);background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235E6B82' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 16px center/16px no-repeat;color:var(--text);padding:0 44px 0 18px;font:inherit;font-size:16px;-webkit-appearance:none;appearance:none;width:100%;max-width:320px;cursor:pointer}
.homesel select:focus,.wl select:focus{outline:none;border-color:var(--accent)}
.hero.sky .homesel label{color:#C9D3E3}
.hero.sky .homesel select{background-color:#fff;color:#0E1A2B;border-color:transparent}
.blk.free .homesel label{color:#fff}
.blk.free .homesel select{background-color:#fff;color:#0E1A2B;border-color:transparent}
.errnote{display:flex;gap:10px;align-items:flex-start;background:#FFF4DB;color:#6B4500;border:1px solid #F2C46B;border-radius:14px;padding:12px 14px;font-size:14.5px;line-height:1.45}
.errnote svg{width:20px;height:20px;flex:none;margin-top:1px;color:#B7791F}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .errnote{background:#33270F;color:#F6D58E;border-color:#6B5320}:root:not([data-theme="light"]) .errnote svg{color:#F2B544}}
:root[data-theme="dark"] .errnote{background:#33270F;color:#F6D58E;border-color:#6B5320}
.errchip{display:inline-flex;justify-self:start;align-items:center;gap:6px;font-size:12px;font-weight:700;letter-spacing:.02em;color:#6B4500;background:#FFE7B0;border-radius:999px;padding:3px 10px;margin-bottom:2px}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .errchip{background:#4A3712;color:#F6D58E}}
:root[data-theme="dark"] .errchip{background:#4A3712;color:#F6D58E}
.hotels{display:grid;grid-template-columns:44px minmax(0,1fr);gap:4px 14px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}
.hotels-ico{width:44px;height:44px;border-radius:12px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;grid-row:1/3}
.hotels-ico svg{width:22px;height:22px}
.hotels-b{display:grid;gap:2px;min-width:0}
.hotels-b b{font-size:17px}
.hotels-b span{font-size:14px;color:var(--muted)}
.hotels .btn{grid-column:2;justify-self:start;margin-top:6px}
.hotels-f{grid-column:1/-1;margin-top:4px}
@media (min-width:640px){.hotels{grid-template-columns:44px minmax(0,1fr) auto}.hotels .btn{grid-column:3;grid-row:1/3;margin:0}.hotels-ico{grid-row:1/2}}
.watch-b{gap:8px}
.wgrid{display:grid;gap:10px}
@media (min-width:480px){.wgrid{grid-template-columns:1fr 1fr}}
.wl{display:grid;gap:4px;font-size:13px;font-weight:600;color:var(--muted)}
.wl select{max-width:none}
.wmoney{display:flex;align-items:center;gap:0;border:1.5px solid var(--line);border-radius:999px;background:var(--card);min-height:48px;padding-left:16px}
.wmoney:focus-within{border-color:var(--accent)}
.wmoney span{font-weight:700;color:var(--text);font-size:16px}
.wmoney input{flex:1;min-width:0;border:0;background:transparent;color:var(--text);font:inherit;font-size:16px;padding:0 14px 0 6px;outline:none;-moz-appearance:textfield}
.done-box{display:grid;gap:4px;background:var(--ok-soft);color:var(--text);border-radius:14px;padding:14px 16px}
.done-box span{color:var(--muted);font-size:14.5px}
.honest{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:14px;color:var(--muted);align-items:center}
.honest span{display:inline-flex;align-items:center;gap:6px}
.honest svg{width:15px;height:15px;color:var(--ok);flex:none}
/* Recent catches board (v4): calmer, curated */
.dot-static{width:9px;height:9px;border-radius:50%;background:#FF6B48;flex:none;display:inline-block}
.rc-row{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:14px;align-items:center}
.bd-head.rc-row{padding:10px 16px 6px;font-family:var(--body);font-size:12px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;color:#9AA8C0}
@media (max-width:559px){.bd-head.rc-row{display:none}}
.rc-list{min-height:calc(6 * 92px);padding:0}
.rc-list li{list-style:none;border-top:1px solid rgba(255,255,255,.08)}
.rc-list li:first-child{border-top:0}
.rc-row.bd-row{height:92px;padding:0 16px;text-decoration:none;color:inherit}
.rc-row .c-main{display:grid;gap:3px;min-width:0}
.rc-row .rt{font-family:var(--body);font-weight:600;font-size:17px;line-height:1.22;color:#F4F7FB;overflow-wrap:anywhere}
.rc-row .rt.long{font-size:16px}
.rc-row .nt{font-family:var(--body);font-size:14px;line-height:1.3;color:#FFD08A}
.rc-row .errdot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#F2B544;margin-right:6px;vertical-align:1px}
.rc-row .sb{display:flex;align-items:center;gap:6px;font-family:var(--body);font-size:13px;color:#A9B6CC}
.rc-row .logo.in{width:40px;height:16px;flex:none;border-radius:4px;background:#fff;display:inline-grid;place-items:center;overflow:hidden}
.rc-row .logo.in img{width:100%;height:100%;object-fit:contain;padding:1px 3px}
.rc-row .logo.in.glyph{background:rgba(255,255,255,.1);color:#A9B6CC}
.rc-row .logo.in.glyph svg{width:11px;height:11px}
.rc-row .c-price{display:grid;justify-items:end;gap:3px;font-family:var(--body)}
.rc-row .c-price small{font-size:11.5px;font-weight:600;letter-spacing:.04em;color:#A9B6CC;text-transform:uppercase}
.rc-row .c-price small.was{text-transform:none;letter-spacing:0;font-weight:500;font-size:12.5px}
.rc-empty{height:100%;display:grid;place-items:center;color:#A9B6CC;padding:24px;text-align:center}
@media (min-width:560px){.rc-list{min-height:calc(6 * 86px)}.rc-row.bd-row{height:86px}}
/* v4.1 rolling Recent catches: fixed window, the list rolls inside it */
.rc-win{height:calc(6 * 92px);overflow:hidden;position:relative}
.rc-list{min-height:0 !important;will-change:transform}
.rc-list li{height:92px;box-sizing:border-box}
.rc-row.bd-row{height:100% !important}
@media (min-width:560px){.rc-win{height:calc(6 * 86px)}.rc-list li{height:86px}}
.rc-win::after{content:"";position:absolute;left:0;right:0;bottom:0;height:18px;background:linear-gradient(transparent,var(--board-bg));pointer-events:none;opacity:.6}

/* 2026-10-08 clear price: one bold number, small "return", "usually" under it */
.rc-row .c-price{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:2px;min-width:92px}
.rc-row .c-price .pv{font-family:"Barlow Condensed",system-ui,sans-serif;font-weight:800;font-size:30px;line-height:1;color:#FFC24B;font-variant-numeric:tabular-nums;letter-spacing:.01em;transform-origin:50% 60%;white-space:nowrap}
.rc-row .c-price .pv small{font-family:Barlow,system-ui,sans-serif;font-weight:600;font-size:13px;color:#A9B6CC;letter-spacing:0}
.rc-row .c-price > small:first-child{display:none}
.rc-row .c-price .was{font-size:12.5px;color:#A9B6CC}
@media (min-width:560px){.rc-row .c-price .pv{font-size:32px}}
.rc-row .c-price .pv small{text-transform:none !important;letter-spacing:0 !important;margin-left:3px}
.rc-row .c-price .was{text-transform:none !important;letter-spacing:0 !important}
.homenote{font-size:13px;line-height:1.4;color:var(--muted);margin:2px 0 0;max-width:420px}
.hero.sky .homenote{color:#C9D3E3}
.blk.free .homenote{color:#fff}
/* onboarding: Make it yours */
.onb{display:grid;gap:14px;text-align:left;width:100%}
.onb-page{width:100%;max-width:560px;display:grid;gap:12px;text-align:left}
.onb-page .onb{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
.onb-pre{font-size:15px;color:var(--muted);margin:0;text-align:center}
.onb-top{display:flex;align-items:center;gap:10px}
.onb-dots{display:inline-flex;gap:5px}
.onb-dots i{width:22px;height:5px;border-radius:3px;background:var(--line);display:block}
.onb-dots i.on{background:var(--accent-fill)}
.onb-n{font-size:13px;color:var(--muted);flex:1}
.onb-skip{border:0;background:none;color:var(--muted);font:inherit;font-size:15px;font-weight:600;min-height:44px;padding:0 4px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.onb-h{font-size:clamp(30px,7.5vw,40px);outline:none}
.onb-sub{margin:-6px 0 0;font-size:15.5px}
.onb-chips{display:flex;flex-wrap:wrap;gap:8px}
.onb-chip{min-height:44px;padding:0 16px;border-radius:999px;border:1.5px solid var(--line);background:var(--card);color:var(--text);font:inherit;font-weight:600;font-size:15px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.onb-chip:hover{border-color:var(--text)}
.onb-chip.on{background:var(--text);border-color:var(--text);color:var(--paper)}
.onb-note{font-size:13.5px;color:var(--muted);margin:0;background:var(--soft);border-radius:12px;padding:10px 12px}
.onb-lab{margin:4px 0 -6px}
.onb-search{position:relative}
.onb-search .input{width:100%}
.onb-sugg{position:absolute;left:0;right:0;top:calc(100% + 6px);background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);z-index:5;overflow:hidden}
.onb-sugg button{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:48px;padding:10px 14px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}
.onb-sugg button:last-child{border-bottom:0}
.onb-sugg button:hover{background:var(--soft)}
.onb-sugg small{color:var(--muted)}
.onb-cabin button{min-height:40px}
.onb-foot{display:flex;justify-content:flex-end}
.onb-foot .btn{min-width:140px}
@media (max-width:480px){.onb-foot .btn{width:100%}}
.box .onb .onb-chip{background:var(--paper)}

/* ======================= v6 habit features ======================= */
.lowchip{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;color:var(--ok);background:var(--ok-soft);border-radius:999px;padding:3px 10px;white-space:nowrap}
.lowchip svg{width:14px;height:14px;flex:none}
.spark{color:var(--accent);display:block;flex:none}
.spark-dot{fill:var(--accent)}
.histrow{display:flex;align-items:center;gap:10px;margin-top:6px;flex-wrap:wrap}
.rc-row .lowchip{background:rgba(60,201,138,.16);color:#7BE3AE;font-size:11.5px;padding:2px 8px}
.wishline{display:flex;gap:10px;align-items:flex-start;background:var(--soft);border-radius:14px;padding:12px 14px;font-size:15px;line-height:1.45;margin:0;text-align:left}
.wishline svg{width:18px;height:18px;flex:none;color:var(--accent);margin-top:2px}
/* found for you */
.found{margin:0;padding-top:26px;font-size:clamp(17px,4.4vw,22px);color:#C9D3E3;line-height:1.35;text-align:left}
.found b{font-family:var(--display);font-size:clamp(30px,8vw,44px);color:#fff;font-variant-numeric:tabular-nums;margin-right:4px}
.found + .stats{padding-top:18px}
.proof{background:var(--soft);border-radius:var(--radius);padding:18px;display:grid;gap:4px}
.proof b.big{font-family:var(--display);font-size:36px;line-height:1;font-variant-numeric:tabular-nums}
.proof span{color:var(--muted);font-size:15px}
}
.chg{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border-radius:999px;border:1.5px solid var(--line);background:var(--card);color:var(--text);font-weight:600;font-size:14px;cursor:pointer;flex:none}
.chg select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:16px}
.chg:focus-within{border-color:var(--accent)}

/* ======================= v6.1 calmer home: Recently caught below the fold ======================= */
.rlist{list-style:none;margin:0;padding:0;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;max-width:860px}
.rlist li{border-top:1px solid var(--line)}
.rlist li:first-child{border-top:0}
.rlist .rc-row.bd-row{height:auto !important;min-height:92px;padding:14px 16px;color:var(--text);transition:background .15s}
.rlist .rc-row.bd-row:hover{background:var(--soft)}
.rlist .rc-row .rt{color:var(--text)}
.rlist .rc-row .nt{color:var(--accent-2)}
.rlist .rc-row .sb{color:var(--muted)}
.rlist .rc-row .logo.in{border:1px solid var(--line)}
.rlist .rc-row .logo.in.glyph{background:var(--soft);color:var(--muted)}
.rlist .rc-row .c-price small{color:var(--muted)}
.rlist .rc-row .lowchip{background:var(--ok-soft);color:var(--ok)}
.rlist .pv{font-family:var(--display);font-weight:700;font-size:26px;line-height:1;color:var(--text);white-space:nowrap}
.rlist .pv small{font-family:var(--body);font-size:13px;font-weight:500;color:var(--muted);text-transform:none;letter-spacing:0}
.rl-skel{height:92px;background:linear-gradient(90deg,var(--card),var(--soft),var(--card));background-size:200% 100%;animation:sk 1.4s infinite}
@media (prefers-reduced-motion:reduce){.rl-skel{animation:none}}
.rl-empty{padding:22px 16px;color:var(--muted)}
.rlist-foot{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:16px}
/* calmer globe */
.hero.sky canvas.shader.on{opacity:.55}
.rlist .rc-row .c-price .pv{color:var(--text);font-size:28px}
.rlist .rc-row .c-price .pv small,.rlist .rc-row .c-price .was{color:var(--muted)}
/* header must fit at 360–400px even before web fonts load (fallback fonts are wider) */
.hdr .brand{min-width:0;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto}
.hdr .nav{flex:none}
.tbtn{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1.5px solid var(--line);background:var(--card);color:var(--text);cursor:pointer;padding:0;margin-left:2px}
.tbtn:hover{border-color:var(--text)}
.tbtn svg{width:18px;height:18px}
.tbtn .moon{display:block}.tbtn .sun{display:none}
:root[data-theme="dark"] .tbtn .moon{display:none}:root[data-theme="dark"] .tbtn .sun{display:block}
@media (max-width:420px){.hdr .brand{font-size:19px;gap:6px}.nav a.lnk{padding:10px 8px}.nav .btn.sm{padding:0 14px}}


/* contrast (WCAG AA): fills that carry white text use --accent-fill; orange text uses --accent (text-safe per theme) */
.tick{background:#0E7A47 !important}
.lowchip{color:var(--ok)}

/* ======================= v7 conversion ======================= */
.mup{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;background:var(--soft);border:1px solid var(--line);border-radius:var(--radius-s);padding:14px 16px}
.mup .up-t{display:flex;gap:10px;align-items:flex-start;min-width:0;flex:1 1 260px}
.mup .up-t svg{width:18px;height:18px;flex:none;color:var(--accent);margin-top:2px}
.mup b{display:block;font-size:15.5px;line-height:1.3}
.mup span{display:block;font-size:13.5px;color:var(--muted);margin-top:2px}
.mup .btn{flex:none}
.mup.dark{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12);color:#fff}
.mup.dark span{color:#C9D3E3}
.mup.dark svg{color:#7CC4FA}
.mi .ms .lasted{color:var(--accent);font-weight:600}
/* pricing page */
.cmp{width:100%;border-collapse:separate;border-spacing:0;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;font-size:15px}
.cmp th,.cmp td{padding:12px 14px;border-top:1px solid var(--line);text-align:left;vertical-align:top}
.cmp thead th{border-top:0;font-family:var(--display);font-size:20px;letter-spacing:.02em}
.cmp thead th:last-child,.cmp td:last-child{background:var(--accent-soft)}
.cmp td:first-child{color:var(--muted);width:34%}
.cmp td b{font-weight:600}
.cmp .x{color:var(--muted)}
@media (max-width:420px){.cmp th,.cmp td{padding:10px 10px;font-size:14px}.cmp thead th{font-size:18px}}
.jm{display:grid;gap:10px}
.jm .mgrid{grid-template-columns:1fr}
/* one row per fare at every width: the join column is narrow and two-up wrapped every line (2026-10-08) */
/* exit / scroll soft sheet (desktop only) */
.esheet{position:fixed;inset:0;z-index:62;display:flex;align-items:center;justify-content:center;padding:20px}
.esheet .sheet-bg{position:absolute;inset:0;background:rgba(6,12,24,.5);opacity:0;transition:opacity .25s}
.esheet .ecard{position:relative;width:100%;max-width:480px;background:var(--paper);border-radius:28px;padding:30px 28px 26px;display:grid;gap:12px;box-shadow:0 30px 80px rgba(0,0,0,.35);transform:translateY(12px);opacity:0;transition:transform .28s cubic-bezier(.2,.7,.2,1),opacity .28s}
.esheet.open .sheet-bg{opacity:1}
.esheet.open .ecard{transform:none;opacity:1}
.esheet h2{font-size:38px;padding-right:40px}
.esheet .num{font-family:var(--display);font-size:64px;line-height:1;color:var(--accent)}
@media (prefers-reduced-motion:reduce){.esheet .sheet-bg,.esheet .ecard{transition:none}}

/* found-for-you line: fixed box so the stats never move when the number arrives */
.found{min-height:calc(1.35em + 26px)}

/* ======================= v8: "Flights like these" examples + Just missed grid ======================= */
.ex{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media (min-width:640px){.ex{gap:14px}}
@media (min-width:980px){.ex{grid-template-columns:repeat(4,minmax(0,1fr))}}
.ex .card{min-height:272px}
.ex .card .bd{padding:12px 12px 14px;gap:3px}
.ex .card .city{font-size:22px;display:flex;gap:6px;align-items:baseline;min-width:0}
.ex .card .city span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ex .card .city .fl{font-size:18px;flex:none}
.ex .card .meta{font-size:13.5px;line-height:1.3;min-height:calc(2 * 1.3 * 13.5px);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ex .card .pr{display:block;margin-top:4px}
.ex .card .pr b{font-size:30px;line-height:1}
.ex .card .pr small{font-size:12.5px;font-weight:600;color:var(--muted);margin-left:3px}
.ex .card .usual{display:block;font-size:13.5px;color:var(--muted);margin-top:2px}
.ex .card .ph .st{position:absolute;left:10px;top:10px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:3px 9px;background:rgba(255,255,255,.94);color:#0E1A2B}
.ex .card .ph .st.live{color:#0E7A47}
.ex .card .ph .st.gone{color:#5E6B82}
.ex .skel{min-height:272px}
@media (min-width:640px){.ex .card{min-height:322px}.ex .skel{min-height:322px}.ex .card .city{font-size:26px}.ex .card .pr b{font-size:34px}.ex .card .bd{padding:14px 16px 16px}}
.ex-foot{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:18px}
.ex-foot .fine{font-size:14px}
/* Just missed on home: a real grid, equal widths; phones see 4 then a link */
.mgrid.home-m{display:grid;gap:10px;grid-template-columns:1fr}
@media (min-width:640px){.mgrid.home-m{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:980px){.mgrid.home-m{grid-template-columns:repeat(3,minmax(0,1fr))}}
.mgrid.home-m .mi{min-width:0;flex:none;scroll-snap-align:none}
@media (max-width:639px){.mgrid.home-m .mi:nth-child(n+5){display:none}}
.mmore{display:none;margin-top:12px}
@media (max-width:639px){.mmore{display:inline-flex}}

/* ======================= v9: the examples ARE the hero ======================= */
.hero-ex{padding-block:28px 40px}
.hero-ex .wrap{display:grid;gap:18px;justify-items:start}
.hero-ex h1{font-size:clamp(40px,10.5vw,64px);line-height:.96;margin:10px 0 8px;max-width:560px}
.hero-ex .sub{font-size:16.5px;max-width:640px;margin:0}
.hero-ex .ex{width:100%}
.hero-ex .ex .card{min-height:258px;border-color:rgba(255,255,255,.14)}
.hero-ex .ex .skel{min-height:258px;background:linear-gradient(90deg,rgba(255,255,255,.06),rgba(255,255,255,.12),rgba(255,255,255,.06));background-size:200% 100%}
.hero-ex form.hform{margin-top:6px;width:100%}
.hero-ex .upsell{margin-top:0}
@media (min-width:640px){.hero-ex .ex .card{min-height:322px}.hero-ex .ex .skel{min-height:322px}}
@media (min-width:900px){.hero-ex{padding-block:56px 64px}.hero-ex h1{font-size:clamp(56px,5.6vw,76px);max-width:760px}.hero-ex .sub{font-size:18px}.hero-ex .wrap{gap:22px}}
.livenow{display:grid;gap:12px;text-align:left;width:100%}
.ln-list{display:grid;gap:8px}
.ln{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:12px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:10px 14px 10px 10px;text-decoration:none;color:var(--text)}
.ln:hover{border-color:var(--accent)}
.ln .th{width:56px;height:56px;border-radius:12px;overflow:hidden;background:var(--soft);display:block}
.ln .th img{width:100%;height:100%;object-fit:cover}
.ln .th.noimg{background:linear-gradient(135deg,var(--ink-2) 0%,#3B4C6B 55%,var(--accent) 140%)}
.ln-t{display:grid;gap:2px;min-width:0}
.ln-t b{font-size:17px;line-height:1.2}
.ln-t span{font-size:13.5px;color:var(--muted)}
.ln-p{text-align:right;line-height:1.05}
.ln-p b{font-family:var(--display);font-size:26px;display:block}
.ln-p small{font-size:13.5px;color:var(--muted);white-space:nowrap}

/* examples: fixed body height so a skeleton has exactly the card's shape at every width (no shift when fares arrive) */
.ex .card{min-height:0 !important}
.ex .card .ph{flex:none;aspect-ratio:16/10}
.ex .card .bd{height:150px;box-sizing:border-box;overflow:hidden}
.ex .skel{min-height:0 !important;display:flex;flex-direction:column;overflow:hidden;border-radius:var(--radius)}
.ex .skel::before{content:"";display:block;aspect-ratio:16/10;flex:none}
.ex .skel::after{content:"";display:block;height:150px;flex:none}
@media (min-width:640px){.ex .card .bd{height:172px}.ex .skel::after{height:172px}}
.ex .card .city{white-space:nowrap}
.ex .card .ph img{position:absolute;inset:0;width:100%;height:100%}
.ex .skel{border:1px solid transparent}

/* missing photo: gradient tile with the city initial (never a blank square) */
.mth.noimg,.th.noimg{display:grid;place-items:center;color:#fff;font-family:var(--display);font-weight:700;font-size:22px}
.mth.noimg::after,.th.noimg::after{content:attr(data-i)}
/* /go: in-place trial offer after the email */
.offer{display:grid;gap:10px}
.offer h2{font-size:34px}
.offer p{margin:0}
.offer .btn{justify-self:start}
.golink{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--accent);text-decoration:none;min-height:44px}
.golink:hover{text-decoration:underline}


/* ======================= v12: onboarding (going.com-style) ======================= */
.stp{display:grid;gap:16px;text-align:left;width:100%}
.stp-prog{height:4px;background:var(--line);border-radius:2px;overflow:hidden}
.stp-prog i{display:block;height:100%;background:var(--accent-fill);transition:width .4s ease}
@media (prefers-reduced-motion:reduce){.stp-prog i{transition:none}}
.stp-banner{display:flex;align-items:center;gap:8px;margin:0;background:var(--ok-soft);color:var(--text);border-radius:12px;padding:9px 12px;font-size:13.5px}
.stp-body{display:grid;gap:12px;min-height:400px;align-content:start}
.stp-h{font-size:clamp(32px,8.5vw,44px);line-height:1.02;margin:6px 0 0;outline:none}
.stp-help{margin:0;font-size:16px;color:var(--muted)}
.asearch{display:grid;gap:10px}
.asearch .input{width:100%;border-radius:14px}
.arows{display:grid;gap:6px}
.arow{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:12px;align-items:center;min-height:52px;padding:0 14px;border:1.5px solid var(--line);border-radius:14px;background:var(--card);color:var(--text);font:inherit;font-size:16px;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}
.arow .rtick{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;background:transparent}
.arow.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.arow.on .rtick{border-color:var(--accent);background:var(--accent-fill)}
.arow.on .rtick::after{content:"";width:8px;height:8px;border-radius:50%;background:#fff}
.arow .an{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.arow .ac{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.stp .onb-note{margin:0}
.stp-foot{position:sticky;bottom:0;display:grid;gap:4px;padding:12px 0 calc(8px + env(safe-area-inset-bottom));background:var(--paper);margin-top:4px;box-shadow:0 -12px 16px -12px rgba(14,26,43,.18)}
.stp-links{display:flex;justify-content:space-between;align-items:center;min-height:36px}
.stp-quiet{border:0;background:none;color:var(--muted);font:inherit;font-size:15px;font-weight:600;min-height:44px;padding:0 4px;cursor:pointer;text-decoration:underline;text-underline-offset:3px;justify-self:center}
.onb-page .stp{background:var(--paper)}
.box .stp .arow,.box .stp .onb-chip,.box .stp .input{background:var(--paper)}
.box .stp-foot{background:var(--soft)}

/* ======================= v13: Going-style airport screen ======================= */
html.onb-mode #foot,html.onb-mode .sticky,html.onb-mode .gatebar{display:none !important}
.stp-h{text-align:center;margin-inline:auto;max-width:560px}
.stp-help{text-align:center;margin-inline:auto;max-width:460px}
.stp-body{gap:16px}
.afield{display:grid;gap:2px;border:1.5px solid var(--line);border-radius:18px;background:var(--card);padding:10px 18px 8px;cursor:text}
.afield:focus-within{border-color:var(--accent)}
.af-l{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.afield input{border:0;background:transparent;color:var(--text);font:inherit;font-size:17px;min-height:30px;padding:0;outline:none;-webkit-appearance:none;appearance:none;width:100%}
.afield input::placeholder{color:var(--muted)}
.arow{grid-template-columns:24px minmax(0,1fr) auto;min-height:64px;padding:10px 14px;border-radius:16px;align-items:center}
.arow .at{display:grid;gap:1px;min-width:0}
.arow .at b{font-weight:700;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.arow .at span{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.freq{display:inline-flex;align-items:center;gap:3px;font-size:11.5px;font-weight:600;color:var(--muted);white-space:nowrap}
.freq i{width:7px;height:7px;border-radius:50%;background:var(--line);display:inline-block}
.freq span{margin-left:4px}
.freq.f1 i:nth-child(-n+1),.freq.f2 i:nth-child(-n+2),.freq.f3 i:nth-child(-n+3){background:var(--ok)}
@media (max-width:420px){.freq span{display:none}}
.stp-sent{margin:4px 0 0;text-align:center;font-size:13px;color:var(--muted)}
.stp-body{padding-bottom:8px}
.stp-foot{box-shadow:none;border-top:1px solid var(--line)}
.onb-page{padding-top:8px}

/* ======================= v14: Going-style locks ======================= */
.btn.unlock{gap:7px;white-space:nowrap}
.btn.unlock svg{width:15px;height:15px;flex:none}
.lockbadge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text);background:var(--soft);border-radius:999px;padding:3px 9px}
.lockbadge svg{width:12px;height:12px}
.lockprice{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-family:var(--display);font-weight:700;font-size:26px;line-height:1}
.lockprice svg{width:18px;height:18px;color:var(--accent)}
.lockprice s{text-decoration:none;letter-spacing:.06em}
/* locked list card: everything visible except the price */
.fc.glock{position:relative}
.fc.glock .fc-t{color:var(--text)}
.fc.glock .fc-p{align-items:center}
.glock-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px 14px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px 14px}
.glock-row>svg{width:20px;height:20px;color:var(--accent)}
.glock-row b{display:block;font-size:15.5px;line-height:1.3}
.glock-row span.sub{display:block;font-size:13.5px;color:var(--muted);margin-top:2px}
@media (max-width:480px){.glock-row{grid-template-columns:auto minmax(0,1fr)}.glock-row .btn{grid-column:1/-1;justify-self:start}.fc.glock .fc-p{flex-wrap:wrap;gap:10px}}
.ln.glock-row{grid-template-columns:56px minmax(0,1fr) auto}
@media (max-width:480px){.ln.glock-row{grid-template-columns:56px minmax(0,1fr)}.ln.glock-row .btn{grid-column:1/-1;justify-self:start}}
.ln .th.noimg{font-size:26px}
.hero-unlock{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.hero.sky .hero-unlock{color:#C9D3E3}
.asked{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ok);background:var(--ok-soft);border-radius:999px;padding:2px 8px;margin-left:6px;vertical-align:2px}
.onb-chips.sel{margin-bottom:2px}

/* ---- v16: live check stamp + Latest catches ---- */
.lchk{display:inline-flex;align-items:center;gap:6px;white-space:normal}
.lchk.ok{color:var(--ok);font-weight:600}
.lchk.gone{color:var(--accent);font-weight:600}
.spin{width:12px;height:12px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--accent);animation:spin .9s linear infinite;flex:none}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spin{animation:none;border-color:var(--accent)}}
.gonechip{display:inline-flex;align-items:center;background:var(--accent-fill);color:var(--accent-ink);font-family:var(--body);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:3px 9px;vertical-align:middle;margin-left:6px;line-height:1.2}
.latest{padding-block:6px 28px}
.latest .lhead-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}
.latest h2{font-size:clamp(26px,6.5vw,36px);margin:0}
.latest .lhead-row .muted{font-size:13px;white-space:nowrap}
.lrows{position:relative;overflow:hidden;--rh:100px;--rg:8px;height:calc(var(--rh)*5 + var(--rg)*4)}
.lrow{position:absolute;left:0;right:0;top:0;height:var(--rh);box-sizing:border-box;display:grid;grid-template-columns:60px minmax(0,1fr) auto;gap:10px;align-items:center;padding:0 10px 0 10px;border:1.5px solid var(--line);border-radius:16px;background:var(--card);color:var(--text);text-decoration:none;cursor:pointer;transition:transform .55s cubic-bezier(.3,.7,.3,1),opacity .45s ease;will-change:transform}
.lrow.nt{transition:none}
.lrow.skel{cursor:default;border-color:transparent;animation:none;background:var(--soft)}
.lrow:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.lrow .th{width:60px;height:60px;border-radius:12px;background:var(--soft);overflow:hidden;position:relative}
.lrow .th img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lrow .tx{display:grid;gap:2px;min-width:0}
.lrow .tx > b{font-size:15px;font-weight:700;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media (min-width:560px){.lrow .tx > b{font-size:16px;-webkit-line-clamp:1}}
.lrow .tx .l2{font-size:14px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lrow .tx .l2 b{font-size:14px;display:inline}
.lrow .tx .l3{font-size:13.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lrow .act .btn.sm{min-height:38px;padding:0 10px;font-size:12.5px;white-space:nowrap;gap:5px}
.lrow .act .btn.sm svg{width:13px;height:13px}
.lrow .act .btn.sm .full{display:none}
@media (min-width:560px){.lrow .act .btn.sm .full{display:inline}.lrow .act .btn.sm .short{display:none}.lrow .act .btn.sm{min-height:42px;padding:0 16px;font-size:14px}.lrows{--rh:88px}.lrow{grid-template-columns:64px minmax(0,1fr) auto;gap:12px;padding-right:12px}.lrow .th{width:64px;height:64px}}
.lrow.out{opacity:0}
@media (prefers-reduced-motion:reduce){.lrow{transition:none}}

/* ---- v17: Latest catches lives in the hero ---- */
.hlatest{width:100%;display:grid;gap:8px}
.hl-lab{margin:0;color:#C9D3E3}
.hero.sky .lrow.skel{background:rgba(255,255,255,.08);border-color:transparent}
.hero.sky .lrow{border-color:rgba(255,255,255,.14)}
.bigdrop{display:inline-block;vertical-align:1px;background:var(--accent-fill);color:var(--accent-ink);font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:2px 7px;margin-left:4px;line-height:1.3;white-space:nowrap}
.hero-ex .hlatest{margin-top:4px}
.onb-limit{margin:2px 0 4px}
.onb-limit .btn.sm{min-height:40px;padding:0 12px;font-size:13px}

/* ---- v20: every price carries its airport; UK-wide cheapest always visible ---- */
.ln-uk{display:block;font-size:12.5px;color:var(--text);font-weight:600;margin-top:1px}
.ln-uk a{color:var(--accent);font-weight:700;text-decoration:underline;text-underline-offset:2px}
.ln .ln-t .ln-uk{white-space:normal}
.arow .at .ln-uk{white-space:normal;font-size:12.5px}
.ln[data-href]{cursor:pointer}
.ln[data-href]:focus-visible{outline:3px solid var(--accent);outline-offset:2px}

/* ---- v22: quiet Going-style home ---- */
body.home-q{background:var(--paper)}
.home-q .wrap.narrow{max-width:640px}
.qhero{padding:44px 0 28px;text-align:center}
.qhero h1{font-size:clamp(44px,11.5vw,76px);line-height:.96;margin:0 auto;max-width:620px}
.qhero h1 em{font-style:normal;color:var(--accent)}
.qhero .sub{font-size:18px;color:var(--muted);margin:16px auto 0;max-width:460px;min-height:1.5em}
.qform{margin:24px auto 0;max-width:460px;text-align:left}
.qform .field{flex-direction:column}
.qform .field .btn{width:100%}
.qform .input{width:100%;flex:0 0 auto;height:52px}
@media (min-width:640px){.qform .field .input{flex:1 1 220px}}
.qform .fine{text-align:center;margin-top:8px}
@media (min-width:640px){.qform .field{flex-direction:row}.qform .field .input{flex:1 1 auto}.qform .field .btn{width:auto}}
.qlist{padding:20px 0 8px}
.qlab{display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 12px}
.qrows{display:grid;gap:8px}
.ql{display:grid;grid-template-columns:56px minmax(0,1fr);gap:12px;align-items:center;min-height:76px;height:76px;box-sizing:border-box;padding:0 12px 0 10px;border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--text);text-decoration:none}
.ql.skel{border-color:transparent;background:var(--soft);animation:none}
.ql:hover{border-color:var(--text)}
.ql:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.ql .th{width:56px;height:56px;border-radius:10px;background:var(--soft);overflow:hidden;position:relative}
.ql .th img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ql .tx{display:grid;gap:1px;min-width:0}
.ql .tx b{font-size:16px;font-weight:700;line-height:1.2;white-space:normal;overflow:hidden}   /* 2026-10-23 audit: "Tokyo from London, Mancheste…" clipped at 360px */
.ql .tx span{font-size:14px;color:var(--text);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ql .tx small{font-size:13.5px;color:var(--muted);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qmore{text-align:center;margin:16px 0 0;font-size:15px}
.qmore a{color:var(--accent);font-weight:600;text-decoration:none;display:inline-block;min-height:44px;line-height:44px}
.qmore a:hover{text-decoration:underline}
.qsec{padding:48px 0;text-align:center}
.qsec h2{font-size:clamp(30px,8vw,44px);margin:0}
.qsec .lede{color:var(--muted);margin:10px auto 22px;max-width:46ch;font-size:17px}
.qsteps{display:grid;gap:26px;margin-top:26px}
.qstep .n{width:40px;height:40px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-family:var(--display);font-weight:700;font-size:20px;display:grid;place-items:center;margin:0 auto 10px}
.qstep h3{font-size:24px;margin:0 0 6px}
.qstep p{color:var(--muted);margin:0 auto;max-width:40ch}
.qproof{padding:8px 0 24px;text-align:center}
.home-q .found{margin:0 auto;padding:0;font-size:clamp(17px,4.4vw,22px);color:var(--muted);line-height:1.35;text-align:center;min-height:104px;max-width:300px}
.home-q .found b{font-family:var(--display);font-size:clamp(30px,8vw,44px);color:var(--text);font-variant-numeric:tabular-nums;margin-right:4px;display:block;line-height:1}
#missedSec .mgrid.home-m{text-align:left;margin-top:0}
@media (max-width:639px){#missedSec .mgrid.home-m .mi:nth-child(n+4){display:none}}
#free .choose{text-align:left}
#faq h2{margin-bottom:16px}
#faq .faq{text-align:left}
@media (min-width:900px){.qhero{padding:72px 0 36px}.qsteps{grid-template-columns:repeat(3,1fr);gap:32px}.qsec{padding:64px 0}.qlist{padding:28px 0 8px}.home-q .wrap.narrow{max-width:720px}}

/* ---- members-first window + fare-map lock (2026-10-19 gate) ---- */
.early{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--accent-text,var(--accent));font-size:14px;line-height:1.3}
.early::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}
.early.gone{color:var(--muted)}
.early.gone::before{background:var(--muted)}
.card.early-card .bd .meta .early{font-size:13.5px}
.ql.early-row .tx > span .early{font-size:14px}
.ql.early-row .tx small .early{font-size:12.5px;line-height:1.25}
.meta .plus{color:var(--muted);font-weight:500}
.fmlock{position:relative;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);overflow:hidden;margin-top:14px}
.fmlock .fm-head{padding:16px 18px 6px}
.fmlock .fm-head h2{font-size:24px;margin:0}
.fmlock .fm-head p{margin:4px 0 0;color:var(--muted);font-size:14.5px}
.fm-sample{display:grid;gap:6px;padding:8px 18px 18px;filter:blur(5px);user-select:none;pointer-events:none;opacity:.75}
.fm-sample .fm-row{display:grid;grid-template-columns:92px repeat(6,minmax(0,1fr));gap:6px;align-items:center}
.fm-sample .fm-row b{font-size:13px;color:var(--muted);font-weight:600}
.fm-sample .fm-row span{height:34px;border-radius:9px;background:var(--soft);display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:700;font-size:15px;color:var(--text)}
.fm-sample .fm-row span.hot{color:var(--accent-text,var(--accent))}
.fm-body{position:relative;min-height:280px}
.fm-cta{position:absolute;inset:0;display:grid;align-content:center;justify-items:center;text-align:center;gap:10px;padding:24px 18px;background:linear-gradient(180deg,transparent 0,color-mix(in srgb,var(--paper) 86%,transparent) 32%,color-mix(in srgb,var(--paper) 94%,transparent) 100%)}
.fm-cta .lock-ico{margin:0}
.fm-cta h3{font-size:22px;margin:0;max-width:30ch}
.fm-cta p{margin:0;color:var(--muted);font-size:14.5px;max-width:40ch}
.fm-cta .btn{min-width:220px}
@media (max-width:600px){.fm-sample .fm-row{grid-template-columns:70px repeat(4,minmax(0,1fr))}.fm-sample .fm-row span:nth-child(n+6){display:none}}

/* ---------- simple mode (2026-10-20, Ammo: "make the whole thing SIMPLE… pay to unlock the blurred ones") ---------- */
.bl{filter:blur(5px);user-select:none;pointer-events:none;display:inline-block;color:var(--text)}
.lockv{display:inline-flex;align-items:center;gap:8px;border:0;background:none;padding:0;font:inherit;color:var(--text);cursor:pointer;text-align:left;line-height:inherit;vertical-align:baseline}
.lockv svg{width:15px;height:15px;color:var(--accent);flex:none}
.lockv:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}
.dprice .lockv .bl{font-family:var(--display);font-weight:700;font-size:44px;line-height:1}
.dprice .lockv small{font-family:var(--body);font-size:15px;font-weight:500;color:var(--muted)}
.bookblur{position:relative;margin-top:16px}
.bookblur .btn{width:100%;filter:blur(4px);pointer-events:none;user-select:none}
.bookblur .lockv{position:absolute;inset:0;justify-content:center;font-weight:700;background:none}
.ucard{background:var(--card);border:1.5px solid var(--text);border-radius:var(--radius);padding:22px;display:grid;gap:14px;scroll-margin-top:calc(var(--hdr) + 12px)}
.ucard h2{font-size:30px;line-height:1.02;margin:0}
.ucard .what{margin:0;color:var(--muted);font-size:15.5px;line-height:1.45}
.ucard .what b{color:var(--text);font-weight:600}
.ucard .honest{margin:0}
.ucard .lock-ico{width:40px;height:40px}
.freeline{margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}
.freeline h3{font-size:22px;margin:0 0 6px}
.freeline p.muted{margin:0 0 12px;font-size:15px}
.dmeta{margin-top:14px;display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}
.qmem{margin:28px auto 0;max-width:640px;border:1.5px solid var(--text);border-radius:var(--radius);padding:22px;display:grid;gap:10px;text-align:left}
.qmem h2{font-size:clamp(28px,7vw,36px);line-height:1.02;margin:0}
.qmem p{margin:0;color:var(--muted);font-size:16px;line-height:1.45}
.qmem .row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:4px}
.qmem .pm{font-family:var(--display);font-weight:700;font-size:30px;line-height:1}
.qmem .pm small{font-family:var(--body);font-weight:500;font-size:14px;color:var(--muted);margin-left:4px}
.qwhy{text-align:center;color:var(--muted);font-size:15px;max-width:520px;margin:18px auto 0;line-height:1.5}
.qmiss{padding:8px 0 4px}
.qmiss .qlab{margin-top:8px}
.qmiss .qwhy{margin-top:14px}
.qjoin{text-align:center;margin:14px 0 0}
.qjoin .btn{min-width:min(100%,280px)}
.mgrid.home .mi .ms .lasted{color:var(--accent);font-weight:600}
.ql .tx span .bl{font-size:14px}
.ql .tx span .cheap{color:var(--muted);font-weight:500}
.ql .tx span .lk{display:inline-flex;align-items:center;gap:5px;color:var(--accent);font-weight:700;font-size:12.5px;margin-left:8px;vertical-align:middle}
.ql .tx span .lk svg{width:12px;height:12px}
.home-q .qfoot{padding:36px 0 48px}

/* members: no free-newsletter capture on the home hero */
html.is-member .qhero .hform{display:none}

/* 2026-10-23 (Ammo: 'why am I able to zoom in'): no double-tap zoom; pinch is blocked by the viewport meta + gesturestart handler in site.js (iOS may still allow accessibility zoom) */
html,body{touch-action:manipulation}

/* account: new-catch email toggle (2026-10-23) */
.acard .tog{display:flex;gap:12px;align-items:flex-start;margin:18px 0 6px;padding:14px;border:1px solid var(--line,#E6E8EB);border-radius:12px;cursor:pointer;font-size:15px;line-height:1.45}
.acard .tog input{width:20px;height:20px;margin:2px 0 0;flex:0 0 auto;accent-color:var(--accent,#2F80FF)}
.acard .tog .muted{font-size:13px}

/* 2026-10-24 pre-launch: count-based proof line; locked-city search note on /fares */
.proof .fl-count{display:block;font-size:17px;line-height:1.4;color:var(--text)}
.proof .fl-count b{font-family:var(--display);font-size:28px;line-height:1;margin-right:2px}
#found b{font-weight:700;color:var(--text)}
.fl-lockednote{margin:0 0 10px;color:var(--muted);font-size:15px}
