/* =========================================================================
   Offers page (airline-offers). Page-specific layout only —
   tokens, type, buttons, pills, cards, timeline, FAQ live in base.css.
   ========================================================================= */

.offers-page .section-head + * { margin-top: 40px; }

/* ---------- Hero ---------- */
/* Full-width sky wash; big faint IATA code centred at the top, top quarter cropped. */
.offers-page .hero { position: relative; overflow: hidden; padding: 35px 0 80px; background: linear-gradient(180deg, var(--col-grey-50) 0%, var(--col-grey-50) 26%, var(--col-blue-50) 62%, var(--col-white) 100%); }
.offers-page .hero > .wrap { position: relative; }
.offers-page .hero-code {
  position: absolute; right: max(var(--wrap-pad), calc((100% - var(--wrap-max)) / 2 + var(--wrap-pad))); top: -66px; font-weight: 800; font-size: var(--fs-ghost); line-height: 1em; letter-spacing: -.06em;
  color: var(--col-blue-100); white-space: nowrap; pointer-events: none; user-select: none;
}
@media (max-width: 820px) { .offers-page .hero-code { top: -54px; font-size: var(--fs-ghost-m); } }
.offers-page .hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 64px; align-items: start; }
.offers-page .hero-updated { padding-top: 10px; line-height: 1.45em; }
.offers-page .hero-id .hero-crumb { font: inherit !important; color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.offers-page .hero-id .hero-crumb:hover { text-decoration-thickness: 2px; }
.offers-page .hero-id b { font-weight: 700; color: var(--col-grey-950); }
.offers-page .hero-id i { display: inline-block; width: 4px; height: 4px; border-radius: 50%; background: var(--col-grey-300); margin: 0 8px; vertical-align: middle; }
.offers-page .hero h1 { margin-top: 16px; }
.offers-page .hero .lead { margin-top: 24px; max-width: 480px; color: var(--col-grey-950); }
.offers-page .hero .signup { margin-top: 36px; }

/* "tested" with a hand-drawn Volt swoosh under it */
.offers-page .hero h1 .swoosh { position: relative; display: inline-block; font: inherit !important; letter-spacing: inherit !important; color: inherit !important; }
.offers-page .swoosh svg { position: absolute; z-index: -1; left: -6px; bottom: -6px; width: calc(100% + 16px); height: 26px; fill: none; stroke: var(--col-lime-500); stroke-linecap: round; }
.offers-page .hero h1 { position: relative; z-index: 0; }

/* Signup in the hero: longer field, 46px tall, one row */
.offers-page .hero .signup .ff-t-container { flex-wrap: nowrap; }
.offers-page .hero .signup .ff-t-column-1 { flex: 0 0 340px !important; }
.offers-page .hero .signup .fluentform .ff-el-form-control { height: 46px; }
.offers-page .hero .signup .fluentform .ff_submit_btn_wrapper .ff-btn.ff-btn-submit { height: 46px; line-height: 1em; display: inline-flex; align-items: center; padding-right: 62px; }
.offers-page .hero .signup .fluentform .ff_submit_btn_wrapper .ff-btn.ff-btn-submit::after { width: 46px; }

/* Live terminal (dark) */
.offers-page .terminal {
  margin-top: 57px; border-radius: var(--r-l); overflow: hidden;
  background: var(--col-grey-950); color: var(--col-white); box-shadow: 0 24px 48px -24px color-mix(in srgb, var(--col-grey-950) 45%, transparent);
  font-family: var(--font-mono); font-size: var(--fs-xs);
}
.offers-page .terminal-bar { display: flex; align-items: center; gap: 6px; padding: 12px 16px; background: color-mix(in srgb, var(--col-white) 6%, var(--col-grey-950)); border-bottom: 1px solid color-mix(in srgb, var(--col-white) 6%, var(--col-grey-950)); }
.offers-page .terminal-bar > i { width: 10px; height: 10px; border-radius: 50%; background: color-mix(in srgb, var(--col-white) 12%, var(--col-grey-950)); }
.offers-page .terminal-bar > span:not(.terminal-live) { flex: 1; text-align: center; color: var(--col-grey-500); }
.offers-page .terminal-live { display: inline-flex; align-items: center; gap: 6px; height: 22px; padding: 0 8px; border-radius: var(--r-s); background: var(--col-lime-500); color: var(--col-grey-950); font-weight: 700; }
.offers-page .terminal-live::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--col-grey-950); }
.offers-page .terminal-body { padding: 16px 20px 18px; }
.offers-page .terminal-cmd { padding-bottom: 10px; color: var(--col-grey-500); }
.offers-page .terminal-cmd span, .offers-page .terminal-foot span { color: var(--col-grey-500); }
.offers-page .terminal li { display: grid; grid-template-columns: 78px minmax(0, 1fr) 30px 34px; gap: 10px; align-items: center; padding: 7px 0; }
.offers-page .terminal-tag { font-weight: 700; color: var(--col-white); white-space: nowrap; }
.offers-page .terminal .is-new .terminal-tag { color: var(--col-blue-400); }
.offers-page .terminal .is-check .terminal-tag { color: var(--col-white); }
.offers-page .terminal .is-ended .terminal-tag { color: var(--col-grey-500); }
.offers-page .terminal-title { display: flex; gap: 6px; align-items: baseline; min-width: 0; }
.offers-page .terminal-title > span { font-size: var(--fs-sm); font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.offers-page .terminal-title::after { content: ""; flex: 1; min-width: 12px; border-bottom: 1px dotted color-mix(in srgb, var(--col-white) 12%, var(--col-grey-950)); transform: translateY(-3px); }
.offers-page .terminal .is-ended .terminal-title > span { color: var(--col-grey-500); }
.offers-page .terminal .score-dots { display: grid; grid-template-columns: repeat(5, 4px); gap: 2px; }
.offers-page .terminal .score-dots i { width: 4px; height: 4px; border-radius: 50%; background: color-mix(in srgb, var(--col-white) 12%, var(--col-grey-950)); }
.offers-page .terminal .score-dots .on { background: var(--col-grey-500); }
.offers-page .terminal .is-good .score-dots .on { background: var(--col-blue-400); }
.offers-page .terminal .is-ended .score-dots .on { background: var(--col-grey-500); }
.offers-page .terminal-score { text-align: right; font-size: var(--fs-sm); font-weight: 700; color: var(--col-white); }
.offers-page .terminal .is-good .terminal-score { color: var(--col-blue-400); }
.offers-page .terminal .is-ended .terminal-score { color: var(--col-grey-500); }
.offers-page .terminal-foot { display: flex; align-items: center; gap: 6px; margin-top: 12px; padding-top: 12px; border-top: 1px dashed color-mix(in srgb, var(--col-white) 12%, var(--col-grey-950)); color: var(--col-grey-500); }
.offers-page .terminal-foot i { width: 7px; height: 14px; margin-left: 2px; background: var(--col-lime-500); animation: blink 1.1s steps(1) infinite; }
@keyframes blink { 50% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .offers-page .terminal-foot i { animation: none; } }

/* Stats row (5 columns, transparent, hairline captions) */
.offers-page .stat-row { --col-divider: color-mix(in srgb, var(--col-grey-950) 9%, transparent); display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); margin-top: var(--gap-tight); }
.offers-page .stat-row .stat { padding: 20px 22px 18px; }
.offers-page .stat-row .stat + .stat { border-left: 1px solid var(--col-divider); }
.offers-page .stat-row .stat:first-child { padding-left: 0; }
.offers-page .stat-row dt { font-size: var(--fs-sm); font-weight: 500; color: var(--col-grey-500); }
.offers-page .stat-row .figure { margin-top: 6px; font-family: var(--font-mono); font-weight: 700; letter-spacing: -.03em; }
.offers-page .stat-row .stat-note { display: flex; align-items: center; gap: 4px; margin-top: 12px; font-size: var(--fs-xs); color: var(--col-grey-500); }
.offers-page .stat-row .stat-note .icon { color: var(--col-blue-500); }

/* ---------- How often ---------- */
.offers-page .frequency { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 48px; padding: 48px; }
.offers-page .facts { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin-top: 32px; }
.offers-page .facts dt { font-size: var(--fs-sm); color: var(--col-grey-500); }
.offers-page .month-chart { padding: 24px; }
.offers-page .month-chart figcaption { font-weight: 500; }
.offers-page .columns { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 8px; height: 192px; margin-top: 16px; }
.offers-page .columns li { display: flex; flex-direction: column; justify-content: flex-end; gap: 6px; text-align: center; }
.offers-page .columns span { display: block; border-radius: var(--r-s); background: var(--col-grey-300); }
.offers-page .columns span.is-good { background: var(--col-blue-500); }
.offers-page .columns small { font-size: var(--fs-xs); color: var(--col-grey-500); }
.offers-page .next { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 18px; }
.offers-page .next .label { display: block; }
.offers-page .next b { font-weight: 700; }

/* ---------- 150 section (join) ---------- */
.offers-page .join150 { position: relative; overflow: hidden; padding: var(--gap-section) 0 0; background: none; }
.offers-page .join150-grid { display: flex; gap: 56px; align-items: center; }
.offers-page .join150-text { min-width: 0; }
.offers-page .join150 h2 { position: relative; z-index: 0; font-size: var(--fs-h2); font-weight: 800; line-height: 1.1em; text-wrap: balance; }
.offers-page .join150 .swoosh { position: relative; display: inline-block; white-space: nowrap; }
.offers-page .join150 .swoosh > span { position: relative; z-index: 1; }
.offers-page .join150 .swoosh svg { position: absolute; z-index: 0; left: -6px; bottom: -6px; width: calc(100% + 16px); height: 26px; fill: none; stroke: var(--col-lime-500); stroke-linecap: round; }
.offers-page .join150 .lead { max-width: 624px; margin-top: 18px; color: var(--col-grey-950); }
.offers-page .join150 .lead + .lead { margin-top: 12px; }
.offers-page .join150 .lead b { font-weight: 700; color: var(--col-grey-950); }
.offers-page .join150 .ticks { gap: 7px; margin-top: 28px; font-size: var(--fs-p); line-height: 1.45em; color: var(--col-grey-950); }
.offers-page .join150 .ticks li { gap: 10px; }
.offers-page .join150 .ticks li { margin: 0 !important; padding: 0 !important; }
.offers-page .join150 .ticks .icon { margin-top: 5px; flex: none; }
.offers-page .join150-cta .btn { height: 52px; font-size: var(--fs-p); }
.offers-page .join150-cta .btn > i { width: 52px; }
.offers-page .join150-cta { display: flex; align-items: center; gap: 10px; margin-top: 28px; }
.offers-page .join150-visual { position: relative; min-width: 0; display: flex; align-items: center; }
.offers-page .join150-panel { position: relative; width: 100%; }
/* 150 illustration: animated inline SVG, transparent background, text uses the site fonts */
.offers-page .join150-art { display: block; width: 100%; }
.offers-page .join150-art img { display: block; width: 100%; height: auto; }
.offers-page .join150-text { flex: 0 0 552px; }
/* image: right edge on the right edge of the wrap; takes the space the text column leaves, max 784px */
.offers-page .join150-visual { flex: 1 1 0; max-width: 784px; margin-left: auto; margin-right: 0; }

/* ---------- Live offers ---------- */
.offers-page #offers { padding-top: 110px; }
.offers-page .offer-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 32px; } /* shadcn-style Tabs (variant A, 23 Oct 2026) */
.offers-page .of-sep { flex: 1 1 0; min-width: 0; }
.offers-page .of-tabs { display: inline-flex; gap: 2px; padding: 4px; border-radius: calc(var(--r-s) + 4px); background: var(--col-grey-50); box-shadow: inset 0 0 0 1px var(--col-grey-200); } /* same grey as the grey cards; thin ring so it still shows on white */
.offers-page .of-input { position: absolute; opacity: 0; pointer-events: none; }
.offers-page .pchip { display: inline-flex; align-items: center; gap: 8px; height: 32px; padding: 0 14px; border-radius: var(--r-s); font-size: var(--fs-sm); font-weight: 500; line-height: 1; color: var(--col-grey-500); cursor: pointer; white-space: nowrap; transition: background .15s, color .15s, box-shadow .15s; }
.offers-page .pchip b { font: 500 var(--fs-xs)/1 var(--font-mono); color: inherit; }
.offers-page .pchip:hover { color: var(--col-grey-950); }
.offers-page .of-input:checked + .pchip, .offers-page .offer .pills--cat .pill { background: var(--col-white); color: var(--col-grey-950); box-shadow: 0 1px 2px color-mix(in srgb, var(--col-grey-950) 8%, transparent), 0 0 0 1px var(--col-grey-200); } /* active tab = category pills on cards */
.offers-page .of-input:focus-visible + .pchip { outline: 2px solid var(--col-blue-700); outline-offset: 2px; }

/* two independent columns (hidden cards collapse inside their own column) */
.offers-page .offer-board { display: grid; gap: 32px; margin-top: 40px; }
.offers-page .offer-cols { display: flex; gap: 32px; align-items: flex-start; }
.offers-page .offer-col { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 32px; }
.offers-page .offer-disclaimer { margin-top: 28px; }

.offers-page .offer { --col-card-bg: var(--col-grey-50); --col-ring: var(--col-grey-200); --col-hover: var(--col-grey-300); position: relative; scroll-margin-top: 120px; padding: 30px 42px 21px; border-radius: var(--r-s); background: var(--col-card-bg); box-shadow: none; transition: box-shadow .2s, transform .2s; }
.offers-page .offer.is-good { --col-card-bg: var(--col-blue-50); --col-ring: var(--col-blue-100); --col-hover: var(--col-blue-200); }
.offers-page .offer:hover { box-shadow: 0 0 0 1px var(--col-hover), 0 14px 30px -14px color-mix(in srgb, var(--col-grey-950) 22%, transparent); transform: translateY(-2px); }
.offers-page .offer-main, .offers-page .offer-side { min-width: 0; }

/* header: category pills above the status row, score block on the right */
.offers-page .offer-top { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; }
.offers-page .offer-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; } /* status row (Active · Ends in N days) */
.offers-page .offer .pills--cat { gap: 6px; margin: 0; }
/* category pills sit BELOW the header line, above the title (23 Oct 2026): the line belongs to this row, the title has none */
.offers-page .offer-cats { margin-top: 10px; padding-top: 0; } /* no line above the category pills (1 Nov 2026) */
.offers-page .offer .offer-cats + .offer-title { margin-top: 24px; padding-top: 0; border-top: 0; }
.offers-page .offer .pills--cat .pill { height: 28px; padding: 3px 12px 0; border-radius: var(--r-s); font-size: var(--fs-xs); font-weight: 500; }
.offers-page .offer-status { display: flex; align-items: center; gap: 6px; margin: 0; font-size: var(--fs-sm); font-weight: 500; color: var(--col-grey-950); }
.offers-page .offer-status .ends { display: inline-flex; align-items: center; gap: 5px; margin-left: 8px; color: var(--col-grey-950); }
.offers-page .offer-status .ends .cal { flex: none; }
.offers-page .offer-status .act { display: inline-flex; align-items: center; gap: 6px; color: var(--col-blue-700); }
.offers-page .offer-status .act i { width: 6px; height: 6px; border-radius: 50%; background: var(--col-blue-500); }
.offers-page .offer-score { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; flex: none; }
.offers-page .score-row { display: flex; align-items: baseline; gap: 12px; } /* verdict label LEFT of the number, no dots (23 Oct 2026) */
.offers-page .sdots { display: grid; grid-template-columns: repeat(5, 6px); gap: 3px; margin-top: 2px; }
.offers-page .sdots i { width: 6px; height: 6px; border-radius: 50%; background: var(--col-grey-200); }
.offers-page .sdots i.on { background: var(--col-grey-300); }
.offers-page .is-good .sdots i.on { background: var(--col-blue-500); }
.offers-page .score-num { font-family: var(--font-mono); font-weight: 700; font-size: var(--fs-3xbig); line-height: 1em; letter-spacing: -.03em; color: var(--col-grey-950); }
.offers-page .is-good .score-num { color: var(--col-blue-700); }
.offers-page .score-label { font-size: var(--fs-sm); font-weight: 700; color: var(--col-grey-950); }
.offers-page .is-good .score-label { color: var(--col-blue-700); }

/* title (theme heading font), locked teaser lead */
.offers-page .offer-title { text-wrap: wrap; font-size: var(--fs-h3); font-weight: 800; letter-spacing: -.02em; } /* spacing: .offer-cats + .offer-title; line-height: next rule */
.offers-page .offer .offer-title { margin-bottom: 0 !important; padding-bottom: 0 !important; line-height: 1.3em !important; } /* site/theme CSS may add margin or padding to h3: the gap below the title is set ONLY by the next element's margin-top */
.offers-page .offer .offer-title + .offer-called, .offers-page .offer .offer-title + .offer-lead { padding-top: 0 !important; }
.offers-page .offer .offer-title + *, .offers-page .offer-title + * { margin-top: 4px !important; } /* title → next element: 4px box gap (the line-heights add the rest of the visible gap) */
.offers-page .offer-called { font-size: var(--fs-sm); line-height: 1.45em !important; color: var(--col-grey-500); }
.offers-page .offer-lead { margin-top: 18px; font-size: var(--fs-sm); line-height: 1.45em; color: var(--col-grey-950); }

/* detail block */
.offers-page .offer-detail { margin-top: 22px; }
.offers-page .offer-leadline { margin: 14px 0 0; font-size: var(--fs-p); font-weight: 500; line-height: 1.45em; color: var(--col-grey-950); }
/* OUR PRICE CHECK (F3a, locked 22 Oct 2026): full-width lines only, no side borders, no radius; only the sale cell is tinted */
.offers-page .pcheck { margin-top: 17px; } /* the two cells carry the only line (23 Oct 2026) */
/* "Price checked / estimated by ATC on …" opens the note line under the block (one line, 23 Oct 2026) */
.offers-page .pc-by { font-weight: 400; color: inherit; }
.offers-page .pc-by .icon { vertical-align: -1px; margin-right: 4px; }
.offers-page .pc-cells { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-bottom: 1px solid var(--col-grey-200); }
.offers-page .pc-cell { padding: 16px 20px; }
.offers-page .pc-cell + .pc-cell { border-left: 1px solid var(--col-grey-200); }
.offers-page .pc-cell:first-child { padding-left: 0; } /* no cell backgrounds: first cell aligns with the card text */
.offers-page .pc-k { margin: 0; font-size: var(--fs-xs); font-weight: 500; line-height: 1.45em; color: var(--col-grey-950); }
.offers-page .is-sale .pc-k, .offers-page .is-sale .pc-v { color: var(--col-blue-700); }
.offers-page .pc-v { margin: 6px 0 0; font-family: var(--font-mono); font-size: var(--fs-xbig); font-weight: 500; line-height: 1.45em; color: var(--col-grey-950); }
.offers-page .is-sale .pc-v { font-weight: 700; }
.offers-page .pc-bar { display: flex; height: 6px; margin-top: 12px; border-radius: var(--r-pill); background: var(--col-grey-100); overflow: hidden; }
.offers-page .pc-bar i { background: var(--col-grey-950); border-radius: var(--r-pill); }
.offers-page .is-sale .pc-bar { background: var(--col-blue-200); }
.offers-page .is-sale .pc-bar i { background: var(--col-blue-500); }
.offers-page .pc-bar b { background: var(--col-grey-300); }
.offers-page .pc-s { margin: 8px 0 0; font-size: var(--fs-xs); line-height: 1.45em; color: var(--col-grey-500); }
.offers-page .pc-save { font-family: var(--font-mono); font-size: var(--fs-big); font-weight: 700; color: var(--col-grey-950); }
.offers-page .is-sale .pc-s { color: var(--col-blue-400); }
.offers-page .pc-save i { font-style: normal; color: var(--col-blue-700); }
/* code offers (variant A, 24 Oct 2026): example fare on the left, "With the code" on the right (the sale fare is shown second) */
.offers-page .pcheck--code .pc-cell:not(.is-sale) { order: 1; padding-left: 0; padding-right: 20px; border-left: 0; }
.offers-page .pcheck--code .pc-cell.is-sale { order: 2; padding-left: 20px; padding-right: 0; border-left: 1px solid var(--col-grey-200); }
@media (max-width: 720px) { .offers-page .pcheck--code .pc-cell:not(.is-sale) { padding: 14px 14px 14px 0; } .offers-page .pcheck--code .pc-cell.is-sale { padding: 14px; } }
.offers-page .pc-saveline { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; margin: 0; padding: 16px 0; border-bottom: 1px solid var(--col-grey-200); font-size: var(--fs-xs); font-weight: 500; line-height: 1.45em; color: var(--col-grey-950); } /* "You save [amount] per person": same style as "Usually paid", amount at cell-price size, line below (layout A, 23 Oct 2026) */
.offers-page .pc-saveline .pc-save { font-size: var(--fs-p); line-height: 1.45em; } /* mono amount and %: two steps below the cell prices */
.offers-page .pc-saveline .pc-save i { font-weight: 500; }
.offers-page .pc-saveline--pub { margin-top: 18px; padding: 16px 0; border-top: 1px solid var(--col-grey-200); border-bottom: 1px solid var(--col-grey-200); } /* locked card: the only saving line shown (no prices), a line above and below */
.offers-page .is-locked .offer-main > .offer-leadline { margin-top: 4px !important; } /* locked teaser = the TL;DR line: same style and the standard title gap (4px box gap, like title → "calls it") */
.offers-page .pcheck--miles .pc-saveline, .offers-page .pcheck--legacy .pc-saveline { border-top: 1px solid var(--col-grey-200); } /* miles / legacy saving line: no price cells above it, so it carries its own top line (also directly under the verdict) */
.offers-page .pc-note { margin: 12px 0 0; font-size: var(--fs-xs); font-weight: 400; line-height: 1.45em; color: var(--col-grey-500); } /* one style for the whole line */
@media (max-width: 720px) { .offers-page .pc-cell { padding: 14px; } }
.offers-page .offer-saving { padding: 16px 0; border-top: 1px solid var(--col-grey-200); border-bottom: 1px solid var(--col-grey-200); }
.offers-page .offer-saving p:first-child { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; }
.offers-page .offer-saving .title { font-size: var(--fs-2xbig); }
.offers-page .offer-saving .small { color: var(--col-grey-950); }
.offers-page .offer-saving .tiny { margin-top: 6px; color: var(--col-grey-500); }
.offers-page .offer-body { margin-top: 28px; max-width: 60ch; line-height: 1.45em; color: var(--col-grey-950); }
.offers-page .offer-body p + p, .offers-page .offer-body details p { margin-top: 10px; }
.offers-page .more summary { display: inline-flex; align-items: center; gap: 4px; margin-top: 10px; font-size: var(--fs-sm); font-weight: 700; color: var(--col-blue-700); }
.offers-page .more summary .icon { transition: transform .2s; }
.offers-page .more[open] summary .icon { transform: rotate(180deg); }
.offers-page .more .sh { display: none; }
.offers-page .more[open] .sh { display: inline; }
.offers-page .more[open] .st { display: none; }
.offers-page .more summary:hover { text-decoration: underline; }
.offers-page .kf { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--col-grey-200); } /* key facts: 2 columns, label above value, one line above (layout A, 23 Oct 2026) */
@media (max-width: 720px) { .offers-page .kf { grid-template-columns: 1fr; } }
.offers-page .kf dt { margin: 0 0 4px !important; padding: 0 !important; line-height: 1.45em; }
.offers-page .kf dd { margin: 0 !important; padding: 0 !important; line-height: 1.45em; color: var(--col-grey-950); }
/* promo code strip (V7B, 24 Oct 2026): sits in the key facts grid, white fill, 1px border, soft shadow, mono code + copy button */
.offers-page .codestrip { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px; border: 1px solid var(--col-grey-300); border-radius: var(--r-s); background: var(--col-white); box-shadow: 0 1px 3px color-mix(in srgb, var(--col-grey-950) 6%, transparent); }
.offers-page .codestrip .code-text { flex: 1; min-width: 0; overflow-wrap: anywhere; font-family: var(--font-mono) !important; font-size: var(--fs-sm); font-weight: 600; letter-spacing: .07em; color: var(--col-grey-950); }
.offers-page .offer.is-good .codestrip .code-text { color: var(--col-blue-700); }
.offers-page .codestrip .copy-btn { display: flex; align-items: center; flex-shrink: 0; padding: 3px; border: 0; border-radius: 4px; background: none; color: var(--col-grey-500); cursor: pointer; transition: color .15s; }
.offers-page .codestrip .copy-btn:hover { color: var(--col-blue-500); }
.offers-page .copy-flash { display: block; height: 0; overflow: visible; margin-top: 4px; font-size: var(--fs-xs); font-weight: 600; color: var(--col-blue-700); opacity: 0; transition: opacity .2s; pointer-events: none; white-space: nowrap; }
.offers-page .copy-flash.on { opacity: 1; }
.offers-page .offer-checks { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 22px; padding: 20px 0; border-top: 1px solid var(--col-grey-200); border-bottom: 1px solid var(--col-grey-200); } /* every line inside a card: 1px var(--col-grey-200) */
.offers-page .offer .label { margin: 0 0 8px; }
.offers-page .offer-checks .ticks { gap: 10px; font-size: var(--fs-p); } /* Benefits / Limitations items: 10px apart */
.offers-page .offer-checks .ticks .icon { margin-top: 5px; }
.offers-page .offer-checks .ticks li { margin: 0 !important; padding: 0 !important; } /* main cards: label → text below = 8px, everywhere */
.offers-page .offer-where { margin-top: 22px; }
.offers-page .fromto { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 14px; }
.offers-page .airports { display: grid; gap: 8px; font-size: var(--fs-sm); line-height: 1.45em; }
.offers-page .airports li { display: flex; align-items: center; gap: 8px; }
.offers-page .ap-code { font-family: var(--font-mono); font-size: var(--fs-xs); font-weight: 700; line-height: 1.45em; min-width: 38px; text-align: center; padding: 0 6px; border-radius: var(--r-s); background: var(--col-grey-100); color: var(--col-grey-950); }
.offers-page .offer-btn { margin-top: 28px; margin-bottom: 21px; }


/* member lock: locked cards ship with empty .lk placeholders; offers.js (pass) or the server (members) fills them and adds .is-open */
.offers-page .lk:empty, .offers-page .lk-detail[hidden] { display: none; }
.offers-page .is-locked.is-open .pub, .offers-page .is-locked.is-open .lockbox { display: none; }
.offers-page .lockbox { position: relative; margin-top: 22px; min-height: 286px; padding-bottom: 10px; box-sizing: border-box; } /* +10px bottom space (23 Oct 2026) */
.offers-page .lockbox .ph { opacity: .5; filter: blur(6px); user-select: none; pointer-events: none; -webkit-mask-image: radial-gradient(ellipse at center, var(--col-grey-950) 25%, transparent 90%); mask-image: radial-gradient(ellipse at center, var(--col-grey-950) 25%, transparent 90%); }
.offers-page .lockbox .ph b { display: block; font-size: var(--fs-p); font-weight: 700; color: var(--col-grey-950); }
.offers-page .lockbox .ph b.lab { margin-top: 18px; font-size: var(--fs-xs); text-transform: uppercase; }
.offers-page .lockbox .ph p { margin-top: 10px; font-size: var(--fs-sm); line-height: 1.45em; color: var(--col-grey-950); }
.offers-page .lock-over { position: absolute; inset: -6px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0; padding: 20px 0; text-align: center; background: linear-gradient(180deg, color-mix(in srgb, var(--col-white) 5%, transparent), color-mix(in srgb, var(--col-white) 30%, transparent) 70%); }
.offers-page .lock-icon { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%; background: var(--col-white); box-shadow: 0 0 0 1px var(--col-blue-100); color: var(--col-blue-700); }
.offers-page .lock-title { font-size: var(--fs-p); font-weight: 700; color: var(--col-grey-950); }
.offers-page .lock-over > * + * { margin-top: 12px; margin-bottom: 0; }
.offers-page .lock-over > .lock-text { margin-top: 4px; } /* title to text: 4px box gap, no negative margins */
.offers-page .lock-text { font-size: var(--fs-sm); color: var(--col-grey-950); text-wrap: balance; }
.offers-page .lock-over > .lock-note { margin-top: 0; } /* single line = TIGHT line-height, so it sits right under the link */
.offers-page .lock-note { font-size: var(--fs-xs); line-height: 1em; color: var(--col-grey-500); }

@media (prefers-reduced-motion: reduce) { .offers-page .offer { transition: none; } .offers-page .offer:hover { transform: none; } }

/* ---------- Price check + claims ---------- */
.offers-page .split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 64px; align-items: center; }
.offers-page .price-check .text { margin-top: 14px; max-width: 440px; }
.offers-page .inline-stats { display: flex; gap: 28px; margin-top: 28px; }
.offers-page .inline-stats dt, .offers-page .facts dt { font-size: var(--fs-sm); color: var(--col-grey-500); }
/* label is first in the HTML (valid <dl>), value shown on top */
.offers-page :is(.facts, .inline-stats) .stat { display: flex; flex-direction: column-reverse; justify-content: flex-end; }
.offers-page .stage { padding: 76px 40px; border-radius: var(--r-l); background: var(--col-grey-100); }
.offers-page .chart-card { padding: 22px; border-radius: var(--r-m); box-shadow: 0 0 0 1px var(--col-grey-200), 0 30px 60px -30px color-mix(in srgb, var(--col-grey-950) 30%, transparent); }
.offers-page .chart-head { display: flex; justify-content: space-between; align-items: flex-start; }
.offers-page .chart-head .figure { margin-top: 4px; }
.offers-page .chart-head s { font-size: var(--fs-p); font-weight: 700; color: var(--col-grey-500); }
.offers-page .score-chip { display: inline-flex; align-items: center; justify-content: center; height: 40px; min-width: 52px; border-radius: var(--r-s); background: var(--col-grey-100); font-family: var(--font-mono); font-weight: 700; font-size: var(--fs-xbig); color: var(--col-grey-950); }
.offers-page .score-chip.is-good { background: var(--col-blue-100); color: var(--col-blue-700); }
.offers-page .fare-chart { display: block; width: 100%; height: 170px; margin-top: 12px; }
.offers-page .fare-chart .sale { fill: var(--col-lime-500); opacity: .55; }
.offers-page .fare-chart .usual { stroke: var(--col-grey-300); stroke-dasharray: 3 5; }
.offers-page .fare-chart .area { fill: var(--col-blue-100); }
.offers-page .fare-chart .line { fill: none; stroke: var(--col-blue-500); stroke-width: 2.2; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.offers-page .fare-chart .dot { fill: var(--col-white); stroke: var(--col-blue-500); stroke-width: 2.2; }
.offers-page .chart-axis { display: flex; justify-content: space-between; margin-top: 6px; color: var(--col-grey-500); }
.offers-page .chart-axis b { color: var(--col-grey-950); font-weight: 700; }

.offers-page .claims { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 64px; margin-top: 96px; align-items: start; }
.offers-page .claims .text { margin-top: 12px; line-height: 1.45em; }
.offers-page .reality { margin-top: 28px; padding: 28px; border-radius: var(--r-l); background: var(--col-grey-100); }
.offers-page .reality-text { margin-top: 10px; font-size: var(--fs-2xbig); font-weight: 700; line-height: 1.25em; color: var(--col-grey-950); }
.offers-page .reality-text s { color: var(--col-grey-500); }
.offers-page .reality .tiny { margin-top: 12px; }
.offers-page .claims-card { padding: 32px; border-radius: var(--r-l); }
.offers-page .claims-head { display: flex; justify-content: space-between; align-items: baseline; }
.offers-page .claims-head .tiny { display: flex; align-items: center; gap: 6px; }
.offers-page .tick { display: inline-block; width: 2px; height: 12px; background: var(--col-grey-950); }
.offers-page .claim-list { display: grid; gap: 24px; margin-top: 24px; }
.offers-page .claim-list li { display: grid; grid-template-columns: minmax(0, 1fr) 56px; gap: 14px; align-items: center; }
.offers-page .claim-line { display: flex; justify-content: space-between; gap: 10px; font-size: var(--fs-sm); }
.offers-page .claim-line b { font-weight: 700; }
.offers-page .claim-list .track { margin: 8px 0 6px; }
.offers-page .claim-list .track .tick { position: absolute; left: 70%; top: -4px; bottom: -4px; height: auto; }
.offers-page .claim-list > li > .figure { text-align: right; }

/* ---------- Compare ---------- */
.offers-page #compare { padding-top: 104px; }
.offers-page .compare { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.offers-page .compare-card { --col-compare: var(--col-lime-100); position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 14px; padding: 24px 24px 40px; border-radius: var(--r-s); background: var(--col-lime-100); box-shadow: 0 0 0 1px var(--col-compare); }
.offers-page .compare-card > * { position: relative; z-index: 1; }
.offers-page .compare-card.is-here { --col-compare: var(--col-blue-200); background: linear-gradient(180deg, var(--col-blue-100), var(--col-blue-200)); }
.offers-page .compare-card > .compare-wm { position: absolute; z-index: 0; top: -17px; right: 24px; font-weight: 800; font-size: var(--fs-watermark); line-height: .8; letter-spacing: -.06em; color: color-mix(in srgb, var(--col-grey-950) 6%, transparent); pointer-events: none; user-select: none; }
.offers-page .is-here .compare-wm { color: color-mix(in srgb, var(--col-blue-500) 14%, transparent); }
.offers-page .compare-name { font-size: var(--fs-h3); line-height: 1.1em; font-weight: 700; letter-spacing: 0; margin: 0; }
.offers-page .compare-top { display: flex; flex-direction: column; gap: 2px; }
.offers-page .compare-top .tiny { font-size: var(--fs-p); }
.offers-page .compare-top p { margin: 0; }
.offers-page .compare-avg { display: flex; align-items: baseline; gap: 10px; margin: 4px 0 0; }
.offers-page .compare-line { width: 100%; height: 86px; display: block; }
.offers-page .compare-line .cl-area { fill: color-mix(in srgb, var(--col-grey-950) 6%, transparent); }
.offers-page .is-here .cl-area { fill: color-mix(in srgb, var(--col-blue-500) 14%, transparent); }
.offers-page .compare-line .cl-line { fill: none; stroke: var(--col-grey-950); stroke-width: 2.4; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.offers-page .compare-line .cl-peak { fill: var(--col-lime-500); stroke: var(--col-grey-950); stroke-width: 2; }
.offers-page .is-here .cl-peak { fill: var(--col-blue-500); }
.offers-page .mini-axis { display: flex; justify-content: space-between; margin: 0; color: var(--col-grey-500); }
.offers-page .compare-stats { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; min-height: 52px; }
.offers-page .compare-active { display: flex; align-items: baseline; gap: 8px; margin: 0; font-family: var(--font-mono); font-weight: 700; font-size: var(--fs-2xbig); }
.offers-page .compare-active .tiny { font-weight: 400; }
.offers-page .compare-avg { display: flex; align-items: baseline; gap: 8px; margin: 0; }
.offers-page .compare-stats .score--lg { font-family: var(--font-mono); }
.offers-page .compare-cta { margin-top: auto; padding-top: 6px; }
.offers-page .compare-card .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* ---------- Steps (zigzag) ---------- */
.offers-page .steps-section { padding-top: 160px; }
.offers-page .steps { position: relative; margin-top: 32px; }
.offers-page .steps::before { content: ""; position: absolute; left: 50%; top: 40px; bottom: 40px; width: 2px; margin-left: -1px; background: repeating-linear-gradient(var(--col-grey-300) 0 6px, transparent 6px 12px); }
.offers-page .step { display: grid; grid-template-columns: minmax(0, 1fr) 80px minmax(0, 1fr); grid-template-areas: "text num demo"; align-items: center; padding: 28px 0; }
.offers-page .step--flip { grid-template-areas: "demo num text"; }
.offers-page .step-text { grid-area: text; max-width: 420px; }
.offers-page .step:not(.step--flip) .step-text { justify-self: end; }
.offers-page .step-title { margin-top: 8px; font-weight: 700; }
.offers-page .step-text .text { margin-top: 10px; line-height: 1.45em; }
.offers-page .step .label { letter-spacing: .08em; }
.offers-page .step-num { grid-area: num; justify-self: center; position: relative; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--col-white); box-shadow: 0 0 0 1px var(--col-grey-200); font-size: var(--fs-sm); font-weight: 700; color: var(--col-grey-950); }
.offers-page .step-demo { grid-area: demo; width: 100%; max-width: 420px; }
.offers-page .step--flip .step-demo { justify-self: end; }
.offers-page .step-demo .card { padding: 14px; border-radius: var(--r-s); }
.offers-page .log { display: grid; gap: 8px; font-size: var(--fs-xs); }
.offers-page .log li { display: flex; align-items: center; gap: 8px; }
.ui.ui.ui .log li::before, .offers-page .log li::before { content: "" !important; flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--col-grey-300); }
.offers-page .log li.is-new::before { background: var(--col-blue-500); }
.offers-page .log time { font-family: var(--font-mono); color: var(--col-grey-500); }
.offers-page .log b { font-weight: 700; color: var(--col-grey-950); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.offers-page .compare-bars { display: grid; grid-template-columns: 44px 1fr 64px; gap: 10px 8px; align-items: center; }
.offers-page .compare-bars .track { height: 8px; background: none; }
.offers-page .compare-bars b { text-align: right; }
.offers-page .legend-score { display: flex; align-items: center; gap: 12px; }
.offers-page .legend ul { display: grid; gap: 6px; margin-top: 10px; color: var(--col-grey-500); }
.offers-page .legend li { display: flex; align-items: center; gap: 8px; }
.offers-page .legend .tag { min-width: 56px; justify-content: center; padding: 2px 8px; }
.offers-page .step--blue .label { color: var(--col-blue-700); }
.offers-page .step--blue .step-num { background: var(--col-blue-500); color: var(--col-white); box-shadow: none; }
.offers-page .step-signup { background: var(--col-blue-100); }
.offers-page .step-signup .signup { margin-top: 10px; }
.offers-page .step-signup .link { margin-top: 10px; text-decoration-color: var(--col-grey-500); }

/* ---------- Sale guide (dark section before the FAQ; no JS: radio tabs on the left, panel of the checked tab on the right) ---------- */
.offers-page .guide-block { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); column-gap: 48px; align-items: start; padding-top: 128px; }
.offers-page .guide-block > h2 { grid-column: 1 / -1; }
.offers-page .guide-block > .intro { grid-column: 1; margin-top: 24px; color: var(--col-grey-500); max-width: 32ch; }
.offers-page .guide-tabs { grid-column: 1; margin-top: 24px; border-top: 1px solid color-mix(in srgb, var(--col-white) 12%, var(--col-grey-950)); }
.offers-page .guide-tabs label { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 8px; align-items: center; padding: 18px 0; border-bottom: 1px solid color-mix(in srgb, var(--col-white) 12%, var(--col-grey-950)); color: var(--col-grey-500); font-weight: 700; cursor: pointer; }
.offers-page .guide-tabs label .tiny { font-family: var(--font-mono); color: var(--col-grey-500); }
.offers-page .guide-tabs label:hover { color: var(--col-white); }
.offers-page .guide-tabs input:checked + label { color: var(--col-white); }
.offers-page .guide-tabs input:checked + label .tiny { color: var(--col-blue-400); }
.offers-page .guide-tabs input:focus-visible + label { outline: 2px solid var(--col-blue-400); outline-offset: 2px; }
.offers-page .guide-panels { grid-column: 2; grid-row: 2 / span 2; min-width: 0; }
.offers-page .gpanel { display: none; gap: 20px; align-content: start; }
.offers-page .guide-block:has(#guide-tab-1:checked) .gp-1,
.offers-page .guide-block:has(#guide-tab-2:checked) .gp-2,
.offers-page .guide-block:has(#guide-tab-3:checked) .gp-3,
.offers-page .guide-block:has(#guide-tab-4:checked) .gp-4 { display: grid; }
.offers-page .gpanel h3 { font-size: var(--fs-h3); font-weight: 700; line-height: 1.3em; }
.offers-page .gpanel .sub { margin-top: 8px; font-size: var(--fs-p); color: var(--col-grey-500); }
.offers-page .gcard { background: color-mix(in srgb, var(--col-white) 6%, var(--col-grey-950)); border: 1px solid color-mix(in srgb, var(--col-white) 12%, var(--col-grey-950)); border-radius: var(--r-m); padding: 48px; min-width: 0; }
.offers-page .gchart { display: block; width: 100%; max-width: 560px; height: auto; }
.offers-page .gchart text { font-size: var(--fs-xs); fill: var(--col-grey-500); }
.offers-page .gchart .gv { font-family: var(--font-mono); font-weight: 700; fill: var(--col-white); }
.offers-page .gchart .gm { fill: var(--col-grey-300); }
.offers-page .gchart .gtrack, .offers-page .gchart .gaxis { stroke: color-mix(in srgb, var(--col-white) 12%, var(--col-grey-950)); stroke-width: 2; }
.offers-page .gchart .gline { stroke: var(--col-blue-500); stroke-width: 2; }
.offers-page .gchart .gdot { fill: var(--col-blue-500); }
.offers-page .gchart .gdot.is-zero { fill: color-mix(in srgb, var(--col-white) 6%, var(--col-grey-950)); stroke: var(--col-blue-500); stroke-width: 2; }
.offers-page .gchart .gdot.is-peak { fill: var(--col-lime-500); }
.offers-page .gchart .gdot.is-hi { fill: var(--col-blue-400); }
.offers-page .gchart .gnil { fill: var(--col-grey-500); opacity: .6; }

/* ---------- Past offers + archive ---------- */
.offers-page #history { padding-top: 160px; }
.offers-page .archive { margin-top: 40px; }
.offers-page .segmented { display: inline-flex; gap: 2px; padding: 4px; border-radius: var(--r-s); background: var(--col-grey-100); }
.offers-page .segmented label { display: inline-flex; align-items: center; height: 32px; padding: 0 14px; border-radius: var(--r-s); font-size: var(--fs-sm); font-weight: 500; color: var(--col-grey-500); cursor: pointer; }
.offers-page .segmented input { position: absolute; opacity: 0; pointer-events: none; }
.offers-page .segmented label:has(input:checked) { background: var(--col-white); color: var(--col-grey-950); box-shadow: 0 1px 2px color-mix(in srgb, var(--col-grey-950) 8%, transparent), 0 0 0 1px var(--col-grey-200); }
.offers-page .segmented label:has(input:focus-visible) { outline: 2px solid var(--col-blue-500); }
.offers-page .archive-year { display: none; margin-top: 16px; }
.offers-page .archive:has(label:nth-child(1) input:checked) .archive-year:nth-child(2),
.offers-page .archive:has(label:nth-child(2) input:checked) .archive-year:nth-child(3),
.offers-page .archive:has(label:nth-child(3) input:checked) .archive-year:nth-child(4) { display: block; }
.offers-page .archive-row { display: grid; grid-template-columns: 90px minmax(0, 1fr) 150px 48px; gap: 16px; align-items: center; padding: 14px 0; border-top: 1px solid var(--col-grey-100); }
.offers-page .archive-row b { font-weight: 700; }
.offers-page .archive-row .quote { color: var(--col-grey-500); }
.offers-page .archive-row .score { text-align: right; }
.offers-page .archive-row .pill { justify-self: start; }
.offers-page .archive-more { padding-top: 14px; border-top: 1px solid var(--col-grey-100); }

/* ---------- Tablet ---------- */
@media (max-width: 1100px) {
  .offers-page .hero-grid { grid-template-columns: minmax(0, 1fr); gap: 109px; } /* = space above the terminal (hero padding-top) */
  .offers-page .hero-grid > .terminal { order: -1; margin-top: 0; }
  .offers-page .hero-updated { padding-top: 0; }
  .offers-page .compare { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .offers-page .stat-row { grid-auto-flow: row; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .offers-page .stat-row .stat:nth-child(3n+1) { border-left: 0; padding-left: 0; }
  .offers-page .stat-row .stat:nth-child(3n+1) { padding-left: 0; }
  .offers-page .stat-row .stat:nth-child(n+4) { border-top: 1px solid var(--col-divider); }
}

/* ---------- Mobile ---------- */
@media (max-width: 900px) {
  .offers-page .hero-grid, .offers-page .frequency, .offers-page .split, .offers-page .claims,
  .offers-page .offer-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .offers-page .hero { padding: 35px 0 56px; }
  .offers-page .hero .hero-grid { gap: 58px; } /* = hero padding-top */
  .offers-page .hero-updated { padding-top: 0; }
  .offers-page .terminal li { grid-template-columns: 78px minmax(0, 1fr) 30px; }
  .offers-page .terminal .score-dots { display: none; }
  .offers-page .hero .signup .ff-t-container { flex-wrap: wrap; }
  .offers-page .hero .signup .ff-t-column-1 { flex: 1 1 200px !important; }
  .offers-page .stat-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .offers-page .stat-row .stat { border-left: 0 !important; border-top: 1px solid var(--col-divider); }
  .offers-page .stat-row .stat:nth-child(-n+2) { border-top: 0; }
  .offers-page .stat-row .stat:nth-child(odd) { padding-left: 0; }
  .offers-page .stat-row .stat:nth-child(3n+1):not(:nth-child(odd)) { padding-left: 22px; }
  .offers-page .stat-row .stat:nth-child(even) { border-left: 1px solid var(--col-divider) !important; }
  .offers-page .frequency { padding: 24px; }
  .offers-page #offers, .offers-page #compare, .offers-page .steps-section, .offers-page #history { padding-top: var(--gap-section); }
  .offers-page .offer { padding: 24px; }
  .offers-page .offer-checks { grid-template-columns: 1fr; }
  .offers-page .stage { padding: 24px 16px; }
  .offers-page .inline-stats { flex-wrap: wrap; gap: 20px; }
  .offers-page .claims { margin-top: 56px; }
  .offers-page .claims-card { padding: 20px; }
  .offers-page .compare { grid-template-columns: 1fr; }
  .offers-page .steps::before { left: 20px; }
  .offers-page .step, .offers-page .step--flip { grid-template-columns: 40px minmax(0, 1fr); grid-template-areas: "num text" ". demo"; gap: 16px; padding: 20px 0; }
  .offers-page .step-text, .offers-page .step-demo { justify-self: start !important; }
  .offers-page .guide-block { grid-template-columns: minmax(0, 1fr); padding-top: 80px; }
  .offers-page .guide-block > .intro, .offers-page .guide-tabs { grid-column: 1; }
  .offers-page .guide-panels { grid-column: 1; grid-row: auto; margin-top: 40px; }
  .offers-page .gcard { padding: 24px; overflow-x: auto; }
  .offers-page .gchart { min-width: 480px; }
  .offers-page .archive-row { grid-template-columns: minmax(0, 1fr) 40px; }
  .offers-page .archive-row > .tiny, .offers-page .archive-row > .pill { display: none; }
}

/* ---------- Route network map ---------- */
.offers-page .net { background: var(--col-white); border-radius: var(--r-l); box-shadow: 0 0 0 1px var(--col-grey-200); padding: 32px; }
.offers-page .net-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; }
.offers-page .net-head h2 { margin-top: 8px; }
.offers-page .net-head .lead { margin-top: 10px; }
.offers-page .net-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.offers-page .net-radio { position: absolute; opacity: 0; pointer-events: none; }
.offers-page .net-chips label { display: inline-flex; align-items: center; height: 34px; padding: 0 14px; border-radius: var(--r-s); background: var(--col-blue-100); color: var(--col-blue-700); font-size: var(--fs-sm); font-weight: 700; cursor: pointer; transition: background .15s, color .15s; }
.offers-page .net-chips label:hover { background: var(--col-blue-200); }
.offers-page .net-radio:focus-visible + label { outline: 2px solid var(--col-blue-500); outline-offset: 2px; }
.offers-page .net-map { position: relative; margin: 28px 0 0; border-radius: var(--r-l); overflow: hidden; background: var(--col-grey-50); }
.offers-page .net-map svg { display: block; width: 100%; height: auto; }
.offers-page .net .land { fill: var(--col-blue-100); stroke: var(--col-white); stroke-width: .8px; vector-effect: non-scaling-stroke; }
.offers-page .net .rt { stroke: var(--col-blue-500); vector-effect: non-scaling-stroke; transition: opacity .2s; }
.offers-page .net .rt.t1 { opacity: .55; stroke-width: 1.5px; }
.offers-page .net .rt.t2 { opacity: .4; stroke-width: 1.1px; }
.offers-page .net .rt.t3 { opacity: .3; stroke-width: .8px; }
/* all hubs at once: lighter lines (overlaps darken = busy corridors) and no tier-3 lines */
.offers-page .net:has(#net-h-all:checked) .rt { opacity: .26; }
.offers-page .net:has(#net-h-all:checked) .rt.t3 { display: none; }
/* focus: pointing at an airport keeps only its routes */
.offers-page .net svg.focus .rt:not(.on) { opacity: .03 !important; }
.offers-page .net svg.focus .rt.on { opacity: .95 !important; stroke: var(--col-blue-700); stroke-width: 1.8px; }
.offers-page .net svg.focus .d:not(.on) { opacity: .2; }
.offers-page .net .d, .offers-page .net .hub { cursor: pointer; }
.offers-page .net .d { stroke: var(--col-white); stroke-width: 1px; vector-effect: non-scaling-stroke; transition: opacity .2s; }
.offers-page .net .d.t1 { fill: var(--col-blue-700); }
.offers-page .net .d.t2 { fill: var(--col-blue-500); }
.offers-page .net .d.t3 { fill: var(--col-blue-400); }
.offers-page .net .d:hover { stroke: var(--col-grey-950); }
.offers-page .net .hub { fill: var(--col-grey-950); stroke: var(--col-white); stroke-width: 2px; vector-effect: non-scaling-stroke; }
.offers-page .net .labs text { fill: var(--col-grey-950); font-weight: 700; paint-order: stroke; stroke: var(--col-white); stroke-linejoin: round; pointer-events: none; display: none; }
.offers-page .net .labs text[data-l="0"], .offers-page .net svg[data-lvl="1"] .labs text[data-l="1"],
.offers-page .net svg[data-lvl="2"] .labs text:is([data-l="1"], [data-l="2"]), .offers-page .net svg[data-lvl="3"] .labs text { display: inline; }
.offers-page .net-map svg { touch-action: pan-y; user-select: none; -webkit-user-select: none; }
.offers-page .net-map svg.is-zoomed { touch-action: none; cursor: grab; }
.offers-page .net-zoom { position: absolute; top: 12px; right: 12px; z-index: 2; display: flex; flex-direction: column; background: var(--col-white); border-radius: var(--r-s); box-shadow: 0 0 0 1px var(--col-grey-200), 0 2px 8px color-mix(in srgb, var(--col-grey-950) 6%, transparent); overflow: hidden; }
.offers-page .net-zoom[hidden] { display: none; }
.offers-page .net-zoom button { display: grid; place-items: center; width: 36px; height: 36px; border: 0; background: transparent; color: var(--col-grey-950); cursor: pointer; transition: background .15s; }
.offers-page .net-zoom button + button { box-shadow: inset 0 1px 0 var(--col-grey-200); }
.offers-page .net-zoom button:hover { background: var(--col-blue-100); color: var(--col-blue-700); }
.offers-page .net-zoom button:focus-visible { outline: 2px solid var(--col-blue-500); outline-offset: -2px; }
.offers-page .net-info { min-height: 44px; padding: 12px 20px 0; color: var(--col-grey-500); }
.offers-page .net-info[hidden] { display: none; }
.offers-page .net-info.is-on { color: var(--col-grey-950); font-weight: 700; }
.offers-page .net-legend { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; padding: 14px 20px; color: var(--col-grey-500); }
.offers-page .net-legend span { display: inline-flex; align-items: center; gap: 7px; }
.offers-page .net-legend .k { display: inline-block; width: 10px; height: 10px; border-radius: 50%; }
.offers-page .net-legend .k.hub { background: var(--col-grey-950); }
.offers-page .net-legend .k.t1 { background: var(--col-blue-700); }
.offers-page .net-legend .k.t2 { background: var(--col-blue-500); }
.offers-page .net-legend .k.t3 { background: var(--col-blue-400); }
.offers-page .net-list { margin-top: 24px; }
.offers-page .net-list summary { cursor: pointer; font-size: var(--fs-sm); font-weight: 700; color: var(--col-blue-700); }
.offers-page .net-list p { margin-top: 12px; color: var(--col-grey-950); line-height: 1.45em; }
.offers-page .net-src { margin-top: 16px; }
@media (max-width: 720px) {
  .offers-page .net { padding: 20px; }
  .offers-page .net .labs { display: none; }
}

/* ---- Offer card: static route map ---- */
.offers-page .omap { margin: 0; }
.offers-page .omap-box { position: relative; }
.offers-page .omap .ml { position: absolute; font-family: var(--font-mono); font-size: var(--fs-sm); font-weight: 500; line-height: 1; color: var(--col-grey-950); white-space: nowrap; pointer-events: none; text-shadow: 0 0 2px var(--col-card-bg, var(--col-white)), 0 0 2px var(--col-card-bg, var(--col-white)), 0 0 3px var(--col-card-bg, var(--col-white)); }
.offers-page .omap .md { position: absolute; width: 10px; height: 10px; border-radius: 50%; transform: translate(-50%, -50%); box-shadow: 0 0 0 1px var(--col-card-bg, var(--col-white)); }
.offers-page .omap .md.hub { background: var(--col-grey-950); }
.offers-page .omap .md.d { background: var(--col-blue-700); }
.offers-page .omap .ml-r { transform: translate(9px, -50%); }
.offers-page .omap .ml-l { transform: translate(calc(-100% - 9px), -50%); }
.offers-page .omap .ml-t { transform: translate(-50%, calc(-100% - 8px)); }
.offers-page .omap .ml-b { transform: translate(-50%, 8px); }
.offers-page .omap svg { display: block; width: 100%; height: auto; background: transparent; } /* water = card background */
.offers-page .omap .land { fill: var(--col-blue-100); stroke: var(--col-card-bg, var(--col-white)); stroke-width: .8px; vector-effect: non-scaling-stroke; }
.offers-page .offer:not(.is-good) .omap .land { fill: var(--col-grey-200); } /* grey cards (< 5): neutral land at the same OKLCH lightness as the blue land */
.offers-page .omap .rt { stroke: var(--col-blue-500); stroke-width: 1px; opacity: .5; vector-effect: non-scaling-stroke; }
.offers-page .omap .rt.is-net { stroke-dasharray: 2 4; opacity: .7; } /* whole network: hub spokes, not specific routes */
.offers-page .omap .d { fill: var(--col-blue-700); stroke: var(--col-white); stroke-width: 1px; vector-effect: non-scaling-stroke; }
.offers-page .omap .hub { fill: var(--col-grey-950); stroke: var(--col-white); stroke-width: 1px; vector-effect: non-scaling-stroke; }
.offers-page .omap-groups { list-style: none; margin: 10px 0 4px; padding: 0; display: grid; gap: 4px; }
/* route lines under the card map: optional label above, then ONE line of codes; extra codes fold into "+N more" */
.offers-page .rlist { margin-top: 12px; }
.offers-page .rline { padding: 12px 0; border-bottom: 1px solid var(--col-grey-200); }
.offers-page .rlab { margin: 0 0 4px; font-size: var(--fs-xs); line-height: 1.45em; color: var(--col-grey-500); }
.offers-page .rcodes { display: flex; flex-wrap: nowrap; align-items: center; gap: 6px; overflow: hidden; white-space: nowrap; font-size: var(--fs-sm); font-weight: 700; line-height: 24px; color: var(--col-grey-950); }
.offers-page .rcodes > span:not(.any), .offers-page .rcodes .sep, .offers-page .rcodes .rmore { font-family: var(--font-mono); } /* codes in mono; plain words keep the site font */
.offers-page .rcodes:has(.rmore[open]) { flex-wrap: wrap; white-space: normal; }
.offers-page .rcodes:has(.rmore[open]) .mh { display: inline; }
.offers-page .rcodes .sep { font-style: normal; color: var(--col-grey-500); }
.offers-page .rcodes .to { color: var(--col-blue-700); }
.offers-page .rcodes .icon { flex: none; color: var(--col-blue-500); }
.offers-page .rcodes .pair { display: inline-flex; align-items: center; gap: 4px; }
.offers-page .rcodes .any { font-weight: 600; }
.offers-page .rmore { display: inline; }
.offers-page .rmore summary { display: inline-block; list-style: none; cursor: pointer; padding: 0 8px; border-radius: var(--r-s); background: var(--col-grey-100); color: var(--col-grey-950); font-weight: 500; line-height: 22px; }
.offers-page .rmore summary::-webkit-details-marker { display: none; }
.offers-page .rmore[open] summary { display: none; }
.offers-page .rmore .mb, .offers-page .rmore.mb-only { display: none; }
.offers-page .rrest { font-weight: 500; color: var(--col-grey-950); }
.offers-page .rnote { position: relative; margin-top: 12px; }
.offers-page .rnote p { margin: 0; line-height: 1.45em; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.offers-page .rnote label { position: absolute; right: 0; bottom: 0; padding-left: 28px; cursor: pointer; font-weight: 600; line-height: 1.45em; color: var(--col-grey-950); background: linear-gradient(90deg, transparent, var(--col-card-bg, var(--col-white)) 24px); }
.offers-page .rnote label:hover { text-decoration: underline; }
.offers-page .rn-t { position: absolute; opacity: 0; pointer-events: none; }
.offers-page .rn-t:checked ~ p { display: block; -webkit-line-clamp: unset; }
.offers-page .rn-t:checked ~ label { display: none; }
.offers-page .rn-t:focus-visible ~ label { outline: 2px solid var(--col-blue-700); outline-offset: 2px; }
@media (max-width: 720px) {
  .offers-page .rcodes .mh { display: none; }
  .offers-page .rmore .dk { display: none; }
  .offers-page .rmore .mb, .offers-page .rmore.mb-only { display: inline; }
}

/* ---------- Offer cards, mobile (<= 820px) ---------- */
@media (max-width: 820px) {
  .offers-page .offer-cols { flex-direction: column; gap: 24px; }
  .offers-page .offer-col { width: 100%; gap: 24px; }
  .offers-page .offer-board { gap: 24px; }
  .offers-page .offer { padding: 24px 24px 12px; }
  .offers-page .of-sep { flex: 0 0 8px; }
  .offers-page .offer-filters { flex-wrap: nowrap; overflow-x: auto; margin-left: -24px; margin-right: -24px; padding: 0 24px 4px; scrollbar-width: none; }
  .offers-page .offer-filters::-webkit-scrollbar { display: none; }
  .offers-page .of-tabs { flex: none; }
  .offers-page .offer-top { flex-wrap: wrap; }
  .offers-page .fromto, .offers-page .offer-checks { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  .offers-page .join150-grid { flex-direction: column; align-items: stretch; gap: 40px; }
  .offers-page .join150-text { flex: none; max-width: none; }
  .offers-page .join150-cta { flex-wrap: wrap; }
  .offers-page .join150-visual { flex: none; width: 100%; margin: 0; }
}

/* empty offers placeholder (radar) */
.offers-page .offer-empty { overflow: hidden; margin-top: 32px; background: var(--col-white); box-shadow: 0 0 0 1px var(--col-grey-200); border-radius: var(--r-s); padding: 56px 24px; text-align: center; }
.offers-page .offer-empty h3 { margin: 14px 0 8px; }
.offers-page .offer-empty .lead { max-width: 700px; margin: 0 auto 24px; text-wrap: balance; }
.offers-page .offer-empty .sweep { transform-origin: 60px 60px; animation: atc-sweep 6s linear infinite; }
@keyframes atc-sweep { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .offers-page .offer-empty .sweep { animation: none; } }

/* similar airlines: borderless, no fill; 4 across on desktop, 2 on tablet, 1 on mobile */
.offers-page .offer-empty:has(.similar) { padding-bottom: 0; }
.offers-page .similar { margin-top: 56px; }
.offers-page .similar-cards { display: flex; flex-wrap: wrap; justify-content: center; gap: 28px 40px; margin-top: 28px; padding: 0 8px 40px; text-align: left; }
.offers-page .sim { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; flex: 0 1 230px; }
.offers-page .sim-code { font-weight: 800; font-size: var(--fs-4xbig); line-height: 1em; letter-spacing: -.06em; color: var(--col-grey-500); white-space: nowrap; user-select: none; }
.offers-page .sim-name { margin: 6px 0 2px; font-size: var(--fs-p); font-weight: 700; color: var(--col-grey-950); }
.offers-page .sim-meta { margin: 0 0 16px; font-size: var(--fs-xs); line-height: 1.45em; color: var(--col-grey-500); }
@media (max-width: 820px) { .offers-page .offer-empty { padding: 40px 16px; } .offers-page .offer-empty:has(.similar) { padding-bottom: 0; } .offers-page .similar { margin-top: 40px; } }
@media (max-width: 560px) { .offers-page .sim { flex-basis: 100%; } .offers-page .similar-cards { padding-left: 24px; padding-right: 24px; } }


/* How we score offers: formula tiles, confidence + worked example, score scale. Neutrals: ink / body / muted only. */
.offers-page .hs-eq { margin-top: 32px; display: grid; grid-template-columns: minmax(0, 1.35fr) 0 minmax(0, 1fr) 0 minmax(0, 1fr); gap: 8px; align-items: stretch; }
.offers-page .hs-op { position: relative; z-index: 2; }
.offers-page .hs-op i { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 40px; height: 40px; border-radius: 50%; background: var(--col-white); color: var(--col-grey-950); display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 1px var(--col-grey-200), 0 6px 16px color-mix(in srgb, var(--col-grey-950) 8%, transparent); }
.offers-page .hs-rows { margin: 20px 0 0; font-size: var(--fs-sm); }
.offers-page .hs-rows div { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-top: 1px solid var(--col-grey-200); }
.offers-page .hs-rows dt { margin: 0; color: var(--col-grey-950); }
.offers-page .hs-tile--tint .hs-rows dd { font-weight: 700; white-space: normal; text-align: right; }
.offers-page .hs-receipt { align-self: start; }
.offers-page .hs-rows dd { margin: 0; font-family: var(--font-mono); font-weight: 700; color: var(--col-grey-950); white-space: nowrap; }
.offers-page .hs-tile { background: var(--col-white); border: 1px solid var(--col-grey-200); border-radius: var(--r-m); padding: 28px; }
.offers-page .hs-tile--tint { background: var(--col-white); border-color: var(--col-grey-200); }
.offers-page .hs-top { display: flex; align-items: center; gap: 12px; }
.offers-page .hs-ico { flex: none; width: 42px; height: 42px; border-radius: var(--r-s); background: var(--col-blue-50); display: flex; align-items: center; justify-content: center; color: var(--col-blue-700); }
.offers-page .hs-tile--tint .hs-ico { background: var(--col-white); }
.offers-page .hs-k { display: block; font-size: var(--fs-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--col-grey-500); }
.offers-page .hs-tile h3 { margin: 2px 0 0 !important; padding: 0 !important; font-size: var(--fs-h3); line-height: 1.25em; }
.offers-page .hs-tile p { margin: 14px 0 0 !important; padding: 0 !important; font-size: var(--fs-sm); line-height: 1.45em; color: var(--col-grey-950); }
.offers-page .hs-low { margin-top: 16px; display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 16px; align-items: stretch; }
.offers-page .hs-receipt { background: var(--col-white); border: 1px solid var(--col-grey-200); border-radius: var(--r-m); padding: 28px; font-family: var(--font-mono); box-shadow: 0 12px 30px color-mix(in srgb, var(--col-grey-950) 5%, transparent); }
.offers-page .hs-receipt dl { margin: 14px 0 0; font-size: var(--fs-sm); line-height: 1.45em; color: var(--col-grey-950); }
.offers-page .hs-receipt dl div { display: flex; justify-content: space-between; gap: 12px; }
.offers-page .hs-receipt dt, .offers-page .hs-receipt dd { margin: 0; }
.offers-page .hs-total { margin-top: 12px; padding-top: 12px; border-top: 2px dashed var(--col-grey-200); display: flex; justify-content: space-between; align-items: baseline; font-weight: 700; font-size: var(--fs-sm); color: var(--col-grey-950); }
.offers-page .hs-total b { font-weight: 800; font-size: var(--fs-3xbig); }
.offers-page .hs-more { margin-top: 20px; }
@media (max-width: 820px) {
  .offers-page .hs-eq { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .offers-page .hs-op { height: 0; }
  .offers-page .hs-eq { gap: 24px; }
  .offers-page .hs-tile, .offers-page .hs-receipt { padding: 22px 18px; }
  .offers-page .hs-low { grid-template-columns: minmax(0, 1fr); }
  }
.offers-page #how-scored .lead { color: var(--col-grey-950); }
.offers-page #how-scored .lead b { color: var(--col-grey-950); font-weight: 700; }
.offers-page .hs-result { background: var(--col-blue-50); border: 1px solid transparent; border-radius: var(--r-m); padding: 28px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; align-items: center; }
.offers-page .hs-result h3 { margin: 2px 0 0 !important; padding: 0 !important; font-size: var(--fs-h3); line-height: 1.25em; }
@media (max-width: 820px) {
  .offers-page .hs-result { grid-template-columns: minmax(0, 1fr); gap: 16px; padding: 22px 18px; }
    }
/* Code font (JetBrains Mono, var(--font-mono)): codes, timestamps, counts, small uppercase labels. Never titles, body text or scores. */
.offers-page .hero-updated > p { font-size: var(--fs-p); }
.offers-page .hero-updated > p:last-child { margin-top: 2px; }
.offers-page .net .labs text { font-family: var(--font-mono); font-weight: 700; }
.offers-page .hs-k { font-family: var(--font-mono); font-weight: 700; letter-spacing: .04em; }
.offers-page .hs-numline { padding-top: 14px; }
.offers-page .hs-digits { display: flex; align-items: center; }
.offers-page .hs-digits span { flex: 1; text-align: center; font: 700 var(--fs-2xbig)/1 var(--font-mono); }
.offers-page .hs-digits .is-low { color: var(--col-grey-500); }
.offers-page .hs-digits span:nth-of-type(6) { color: var(--col-blue-400); }
.offers-page .hs-digits span:nth-of-type(7) { color: color-mix(in srgb, var(--col-blue-500) 20%, var(--col-blue-400)); }
.offers-page .hs-digits span:nth-of-type(8) { color: color-mix(in srgb, var(--col-blue-500) 40%, var(--col-blue-400)); }
.offers-page .hs-digits span:nth-of-type(9) { color: color-mix(in srgb, var(--col-blue-500) 60%, var(--col-blue-400)); }
.offers-page .hs-digits span:nth-of-type(10) { color: color-mix(in srgb, var(--col-blue-500) 80%, var(--col-blue-400)); }
.offers-page .hs-digits span:nth-of-type(11) { color: var(--col-blue-500); }
.offers-page .hs-digits em { position: relative; width: 0; font-style: normal; align-self: stretch; }
.offers-page .hs-digits em::before { content: ""; position: absolute; left: -1px; top: -6px; bottom: -10px; width: 2px; background: var(--col-grey-950); }
.offers-page .hs-digits u { position: absolute; left: 0; top: -28px; transform: translateX(-50%); text-decoration: none; font: 700 var(--fs-xs) var(--font-mono); background: var(--col-grey-950); color: var(--col-white); padding: 2px 8px; border-radius: var(--r-s); }
.offers-page .hs-groups { list-style: none; margin: 12px 0 0; padding: 0; display: grid; grid-template-columns: 2fr 2fr 1fr 2fr 1fr 1fr 2fr; gap: 8px; } /* digits 0-1 Skip · 2-3 Weak · 4 Fair · 5-6 Good deal · 7 Great deal · 8 Steal · 9-10 Unicorn (23 Oct 2026) */
.offers-page .hs-groups li { border-top: 2px solid; padding-top: 8px; font-size: var(--fs-xs); color: var(--col-grey-500); }
.offers-page .hs-groups b { display: block; font-size: var(--fs-sm); font-weight: 700; color: var(--col-grey-950); }
.offers-page .hs-groups span { font-family: var(--font-mono); }
.offers-page .hs-groups .is-low { border-color: var(--col-grey-300); }
.offers-page .hs-groups .is-fair { border-color: var(--col-grey-500); }
.offers-page .hs-groups .is-ok { border-color: color-mix(in srgb, var(--col-blue-500) 20%, var(--col-blue-400)); }
.offers-page .hs-groups .is-skip { border-color: var(--col-grey-300); }
.offers-page .hs-groups .is-great { border-color: color-mix(in srgb, var(--col-blue-500) 40%, var(--col-blue-400)); }
.offers-page .hs-groups .is-steal { border-color: color-mix(in srgb, var(--col-blue-500) 60%, var(--col-blue-400)); }
.offers-page .hs-groups .is-rare { border-color: var(--col-blue-500); }
@media (max-width: 820px) {
  .offers-page .hs-groups { grid-template-columns: 1fr 1fr 1fr 1fr; gap: 12px 16px; }
}
.offers-page .hs-db { margin: 5px 0 0; padding: 26px 58px 0 0; }
.offers-page .hs-db-track { position: relative; height: 26px; margin-right: 8px; }
.offers-page .hs-db-track::before { content: ""; position: absolute; left: 0; right: 0; top: 12px; height: 2px; background: var(--col-blue-100); }
.offers-page .hs-db-track .found { position: absolute; left: 0; top: 11px; height: 4px; border-radius: var(--r-s); background: var(--col-blue-700); }
.offers-page .hs-db-track .gap { position: absolute; right: 0; top: 11px; height: 4px; background: repeating-linear-gradient(90deg, var(--col-grey-300) 0 6px, transparent 6px 10px); }
.offers-page .hs-db-track em { position: absolute; top: 5px; width: 16px; height: 16px; margin-left: -8px; border-radius: 50%; }
.offers-page .hs-db-track .dot-found { background: var(--col-blue-700); box-shadow: 0 0 0 4px var(--col-blue-50); }
.offers-page .hs-db-track .dot-claim { background: var(--col-blue-50); box-shadow: inset 0 0 0 2px var(--col-grey-300); }
.offers-page .hs-db-track b { position: absolute; bottom: 22px; left: 50%; transform: translateX(-50%); font: 700 var(--fs-xs) var(--font-mono); white-space: nowrap; }
.offers-page .hs-db-track .dot-found b { color: var(--col-blue-700); }
.offers-page .hs-db-track .dot-claim b { color: var(--col-grey-500); }
.offers-page .hs-db-legend { margin-top: 10px; display: flex; justify-content: space-between; font-size: var(--fs-xs); color: var(--col-grey-500); }
.offers-page .hs-db-legend span { display: inline-flex; align-items: center; gap: 6px; }
.offers-page .hs-db-legend i { width: 8px; height: 8px; border-radius: 50%; }
.offers-page .hs-db-legend .found { background: var(--col-blue-700); }
.offers-page .hs-db-legend .claim { box-shadow: inset 0 0 0 2px var(--col-grey-300); }

/* Lower block: Result + Confidence span columns 1-3, Example sits under box 3 spanning both rows */
.offers-page .hs-lower { margin-top: 16px; display: grid; grid-template-columns: minmax(0, 1.35fr) 0 minmax(0, 1fr) 0 minmax(0, 1fr); gap: 16px 8px; align-items: stretch; }
.offers-page .hs-lower .hs-result { grid-column: 1 / 4; grid-row: 1; }
.offers-page .hs-lower .hs-tile { grid-column: 1 / 4; grid-row: 2; }
.offers-page .hs-lower .hs-receipt { grid-column: 5; grid-row: 1 / 3; align-self: stretch; display: flex; flex-direction: column; }
.offers-page .hs-lower .hs-receipt .hs-total { margin-top: auto; }
@media (max-width: 820px) {
  .offers-page .hs-lower { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .offers-page .hs-lower .hs-result, .offers-page .hs-lower .hs-tile, .offers-page .hs-lower .hs-receipt { grid-column: 1; grid-row: auto; }
}
.offers-page .hs-lower .hs-receipt dl { flex: 0 0 auto; display: block; margin-top: 14px; }
.offers-page .hs-lower .hs-receipt dl > div { display: flex; justify-content: space-between; }
.offers-page .hs-lower .hs-receipt .hs-total { margin-top: 12px; }
@media (max-width: 820px) { .offers-page .hs-lower .hs-receipt dl { flex: none; } }

/* AdSense slot at the very top of the hero: space reserved so the page does not jump when the ad loads */
.offers-page .ad-slot--top { position: relative; z-index: 1; min-height: 100px; margin: 0 0 50px; }
.offers-page .ad-slot--top:has(ins.adsbygoogle[data-ad-status="unfilled"]) { display: none; }
.offers-page .ad-slot ins.adsbygoogle[data-ad-status="unfilled"] { display: none !important; }
.offers-page .ad-slot--feed { position: relative; min-height: 120px; }
.offers-page .ad-slot--feed:has(ins.adsbygoogle[data-ad-status="unfilled"]) { display: none; }
.offers-page .ad-slot--cards { min-height: 100px; }
.offers-page .tl-group--ad:has(ins.adsbygoogle[data-ad-status="unfilled"]) { display: none; }
@media (max-width: 900px) { .offers-page .tl-group--ad > div:empty { display: none; } }
/* no top ad (unfilled or blocked): restore the roomy top gap before the text */
.offers-page .hero.ad-empty, .offers-page .hero:has(.ad-slot--top ins.adsbygoogle[data-ad-status="unfilled"]) { padding-top: 75px; }
.offers-page .hero.ad-empty .ad-slot--top { display: none; }
/* in-feed ad must stay inside its column (the ad script can measure the column too wide and spill under the right column) */
.offers-page .offer-col { min-width: 0; }
.offers-page .ad-slot--feed { width: 100%; max-width: 100%; overflow: hidden; contain: layout paint; }
.offers-page .ad-slot--feed ins.adsbygoogle, .offers-page .ad-slot--feed iframe { max-width: 100% !important; }
.offers-page .frequency h2 + .text { margin-top: 14px; margin-bottom: 8px; }
.offers-page .hs-groups, .offers-page .hs-groups li { list-style: none !important; margin-left: 0 !important; padding-left: 0 !important; }
.offers-page .hs-groups li::before, .offers-page .hs-groups li::marker { content: none !important; display: none !important; }
.offers-page .hs-groups li { padding-top: 8px !important; }
.offers-page .month-letters { display: flex; justify-content: space-between; margin: 4px 4.76% 0; font-size: var(--fs-xs); color: var(--col-grey-500); }
.offers-page .month-letters span { display: flex; justify-content: center; width: 0; }
.offers-page .frequency .facts .figure { font-family: var(--font-mono); font-weight: 700; letter-spacing: -.03em; }
.offers-page .frequency .chart-axis { margin-top: 10px; }
.offers-page .frequency .next { margin-top: 28px; }
.offers-page .archive-table { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid var(--col-grey-200); border-radius: var(--r-m); overflow: hidden; }
.offers-page .archive-table th { text-align: left; font: 700 var(--fs-xs) var(--font-mono); letter-spacing: .04em; text-transform: uppercase; color: var(--col-grey-500); background: var(--col-grey-50); padding: 14px 18px; border-bottom: 1px solid var(--col-grey-200); }
.offers-page .archive-table td { padding: 16px 18px; border-bottom: 1px solid var(--col-grey-200); vertical-align: middle; }
.offers-page .archive-table tr:last-child td { border-bottom: 0; }
.offers-page .archive-table tbody tr:hover td { background: var(--col-blue-50); }
.offers-page .archive-table .dt { font: 500 var(--fs-sm) var(--font-mono); color: var(--col-grey-500); width: 110px; white-space: nowrap; }
.offers-page .archive-table b { font-size: var(--fs-p); color: var(--col-grey-950); }
.offers-page .archive-table p { margin: 2px 0 0; font-size: var(--fs-sm); color: var(--col-grey-950); }
.offers-page .archive-table .r { text-align: right; width: 90px; }
.offers-page .archive-table .score-n { font: 700 var(--fs-big) var(--font-mono); font-style: normal; color: var(--col-grey-950); }
.offers-page .archive-table .score-n.is-good { color: var(--col-blue-700); }
.offers-page .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
@media (max-width: 820px) {
  .offers-page .archive-table th:nth-child(3), .offers-page .archive-table td:nth-child(3) { display: none; }
  .offers-page .archive-table th, .offers-page .archive-table td { padding: 12px; }
  .offers-page .archive-table .dt { width: 78px; }
}
.offers-page .frequency.frequency--solo { grid-template-columns: minmax(0, 1fr); }

.offers-page .offer-admin-id{margin:12px 0 0;font: 500 var(--fs-xs)/1 var(--font-mono);color:var(--col-grey-500)}
.offers-page .offer-admin-id b{color:var(--col-blue-500)}
.offers-page .offer-admin-added{text-transform:uppercase;letter-spacing:.04em}


/* region prices: the Worker writes US$, € and A$ for each saving; the page shows the visitor's currency (data-cur set by geo-grid.js, default US$) */
.offers-page .px { display: none; }
.offers-page .px[data-cur="USD"] { display: inline; }
html[data-cur="EUR"] .offers-page .px[data-cur="USD"], html[data-cur="AUD"] .offers-page .px[data-cur="USD"] { display: none; }
html[data-cur="EUR"] .offers-page .px[data-cur="EUR"] { display: inline; }
html[data-cur="AUD"] .offers-page .px[data-cur="AUD"] { display: inline; }
/* route lines: max 2 visible, the rest behind "+N more routes" (23 Oct 2026) */
.offers-page .rlines-more > summary { display: inline-flex; align-items: center; gap: 4px; margin-top: 12px; list-style: none; cursor: pointer; font-size: var(--fs-sm); font-weight: 700; color: var(--col-blue-700); }
.offers-page .rlines-more > summary::-webkit-details-marker { display: none; }
.offers-page .rlines-more > summary:hover { text-decoration: underline; }
.offers-page .rlines-more > summary .icon { transition: transform .2s; }
.offers-page .rlines-more[open] > summary .icon { transform: rotate(180deg); }
.offers-page .rlines-more .sh, .offers-page .rlines-more[open] .st { display: none; }
.offers-page .rlines-more[open] .sh { display: inline; }
.offers-page .rlines-more[open] > summary { margin-bottom: 0; }
/* empty-state radar (colours as tokens, no inline colours) */
.offers-page .radar .rr { fill: none; stroke: var(--col-grey-200); }
.offers-page .radar .rr-in { stroke: var(--col-grey-300); }
.offers-page .radar .rs { fill: var(--col-blue-500); opacity: .13; }
.offers-page .radar .rl { stroke: var(--col-blue-500); stroke-width: 1.5; }
.offers-page .radar .rc { fill: var(--col-blue-500); }

@media (min-width: 821px) { .offers-page .offer .offer-title { padding-right: 5%; } } /* desktop: titles stop short of the right edge */

/* About accordion (below the offers, all rows folded at the start): shadcn-style rows, one text style (15px) */
.offers-page .about-eyebrow { margin: 0 0 12px; font: 700 var(--fs-xs) var(--font-mono); letter-spacing: .04em; text-transform: uppercase; color: var(--col-grey-500); }
.offers-page .about-title { margin: 0 0 28px; font-size: var(--fs-h2); font-weight: 800; letter-spacing: -.02em; line-height: 1.1em; }
.offers-page .about-acc { border-top: 1px solid var(--col-grey-200); }
.offers-page .about-row { border-bottom: 1px solid var(--col-grey-200); }
.offers-page .about-row summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 0; font-size: var(--fs-p); font-weight: 600; line-height: 1.3em; cursor: pointer; list-style: none; }
.offers-page .about-row summary::-webkit-details-marker { display: none; }
.offers-page .about-row summary svg { flex: none; width: 16px; height: 16px; fill: none; stroke: var(--col-grey-500); stroke-width: 2; transition: transform .2s; }
.offers-page .about-row[open] summary svg { transform: rotate(180deg); }
.offers-page .about-row p { margin: 0; padding: 0 0 20px; max-width: 760px; font-size: var(--fs-p); line-height: 1.6em; color: var(--col-grey-950); }
.offers-page .about-note { margin: 24px 0 0; font-size: var(--fs-xs); line-height: 1.45em; color: var(--col-grey-500); }

/* Teaser cards (3rd offer onwards): lead + price check stay visible, round button on the bottom border opens the rest (27 Oct 2026) */
.offers-page .od-in { min-width: 0; }
.offers-page .offer.is-teaser { padding-bottom: 50px; } /* folded card: only up to the TL;DR; no resting shadow (hover works like every card); 20px of free space above the round button */
.offers-page .offer.is-teaser.is-expanded, .offers-page .offer.is-teaser.is-expanded:hover { box-shadow: 0 0 0 1px var(--col-hover), 0 14px 30px -14px color-mix(in srgb, var(--col-grey-950) 22%, transparent); } /* darker ring only once opened */
.offers-page .offer.is-teaser .od-fold { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .28s cubic-bezier(.2, .8, .2, 1); }
.offers-page .offer.is-teaser .od-in { overflow: hidden; min-height: 0; visibility: hidden; transition: visibility 0s linear .28s; }
.offers-page .offer.is-teaser.is-expanded .od-fold { grid-template-rows: 1fr; }
.offers-page .offer.is-teaser.is-expanded .od-in { visibility: visible; transition-delay: 0s; }
.offers-page .od-toggle { position: absolute; left: 50%; bottom: 0; z-index: 2; transform: translate(-50%, calc(50% - 8px)); display: grid; place-items: center; box-sizing: border-box; width: 44px !important; height: 44px !important; min-width: 44px; padding: 0 !important; margin: 0; line-height: 1; border: 1px solid var(--col-grey-300) !important; border-radius: 50% !important; background: var(--col-white) !important; color: var(--col-grey-950) !important; box-shadow: none; cursor: pointer; transition: border-color .2s, box-shadow .2s; }
.offers-page .od-toggle:hover { border-color: var(--col-grey-500) !important; box-shadow: 0 4px 10px -4px color-mix(in srgb, var(--col-grey-950) 30%, transparent); }
.offers-page .od-toggle:focus-visible { outline: 2px solid var(--col-blue-500); outline-offset: 2px; }
.offers-page .od-toggle svg { display: block; transition: transform .28s cubic-bezier(.2, .8, .2, 1); }
.offers-page .offer.is-expanded .od-toggle svg { transform: rotate(180deg); }
@media (prefers-reduced-motion: reduce) { .offers-page .offer.is-teaser .od-fold, .offers-page .od-toggle svg { transition: none; } }

/* Offer card cover image: full-bleed strip on top of the card, follows the card's top corners.
   The airline name inside the cover image starts at 23.33% of the image width (1680px wide, text at x=392).
   The image is scaled and shifted so that this text starts exactly at the card's left padding (--cpad), the same line as all card text.
   Anchored to the bottom; the right edge always stays flush with the card. Needs container units (all current browsers); older ones show the plain image. */
.offers-page .offer-cover { --cpad: 42px; container-type: inline-size; position: relative; margin: -30px -42px 24px; aspect-ratio: 7 / 3; overflow: hidden; border-radius: var(--r-s) var(--r-s) 0 0; background: var(--col-grey-200); }
.offers-page .offer-cover img { position: absolute; left: 0; bottom: 0; display: block; width: 100%; height: auto; max-width: none; }
@supports (width: 1cqw) {
  /* --wi = image width: wide enough to reach the card's right edge AND to fill the (taller) strip; left edge follows so the name stays on --cpad */
  .offers-page .offer-cover img { --wi: max(calc((100cqw - var(--cpad)) / .7667), 120cqw); width: var(--wi); left: calc(var(--cpad) + 5px - .2333 * var(--wi)); } /* name sits 5px to the right of the card text line (1 Nov 2026) */
}
@media (max-width: 900px) { .offers-page .offer-cover { --cpad: 24px; margin: -24px -24px 20px; } }

/* Offer card footer (1 Nov 2026): the airline's own offer name (italic) and its domain, then the button (no line above) */
.offers-page .offer-foot { margin-top: 22px; }
.offers-page .offer-foot .offer-called { margin: 0; }
.offers-page .offer-foot .offer-called + .offer-called { margin-top: 2px; }
.offers-page .offer-foot + .offer-btn { margin-top: 10px; }
/* gap title -> TL;DR line: 7px box gap (about 14.5px visible) (the card's side block adds 22px above its first child; the line's own 14px collapses into it) */
.offers-page .offer-detail > .offer-leadline:first-child { margin-top: -15px; }
/* verdict icon (Lucide scale, thin 1.75 stroke like shadcn): first line aligned, wrapped lines hang under the text */
.offers-page .offer-verdict { display: flex; align-items: flex-start; gap: 8px; }
.offers-page .offer-verdict .icon { flex: none; margin-top: 0; stroke-width: 1.75; color: var(--col-grey-950); }
/* verdict block (1 Nov 2026): below the TL;DR, a line above only */
.offers-page .offer-verdict { margin-top: 18px; padding: 16px 0; border-top: 1px solid var(--col-grey-200); }
/* verdict text = regular card text (same as the description) */
.offers-page .offer-verdict { font-size: var(--fs-p); font-weight: 400; line-height: 1.45em; color: var(--col-grey-950); }
/* card category pills (1 Nov 2026): back to boxed pills (white, 28px high, 12px side padding), with a real 1px border in the same grey as the card's horizontal lines; transparent, 12px, uppercase */
.offers-page .offer .pills--cat .pill { box-sizing: border-box; height: 28px; padding: 3px 12px 0; border: 1px solid var(--col-grey-200); border-radius: calc(var(--r-s) - 2px); background: transparent; box-shadow: none; font-size: var(--fs-xs); font-weight: 400; text-transform: uppercase; }
/* no gap below the verdict block: the price check starts right under it */
.offers-page .offer-verdict + .pcheck { margin-top: 0; }
