/* =========================================================================
   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, #FAFBFD 0%, #FAFBFD 26%, var(--blue-50) 74%, var(--blue-100) 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-family: var(--font-head); font-weight: 800; font-size: var(--fs-ghost); line-height: 1em; letter-spacing: -.06em;
  color: var(--ghost); 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.5em; }
.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(--ink); }
.offers-page .hero-id i { display: inline-block; width: 4px; height: 4px; border-radius: 50%; background: var(--faint); 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(--text-2); }
.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(--volt); 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 {
  --t-bg: #0F0F0F; --t-bar: #171717; --t-line: #222; --t-dash: #262626; --t-dot: #2A2A2A; --t-btn: #2E2E2E; --t-lead: #333;
  --t-text: #FAFAFA; --t-muted: #71717A; --t-soft: #A1A1AA; --t-score: var(--white); --t-good: #8E9FFE; --t-check: var(--white); --t-ended: var(--faint);
  margin-top: 57px; border-radius: var(--r-l); overflow: hidden;
  background: var(--t-bg); color: var(--t-text); box-shadow: 0 24px 48px -24px rgba(15, 15, 15, .45);
  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: var(--t-bar); border-bottom: 1px solid var(--t-line); }
.offers-page .terminal-bar > i { width: 10px; height: 10px; border-radius: 50%; background: var(--t-btn); }
.offers-page .terminal-bar > span:not(.terminal-live) { flex: 1; text-align: center; color: var(--t-muted); }
.offers-page .terminal-live { display: inline-flex; align-items: center; gap: 6px; height: 22px; padding: 0 8px; border-radius: var(--r-s); background: var(--volt); color: var(--ink); font-weight: 700; }
.offers-page .terminal-live::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--ink); }
.offers-page .terminal-body { padding: 16px 20px 18px; }
.offers-page .terminal-cmd { padding-bottom: 10px; color: var(--t-muted); }
.offers-page .terminal-cmd span, .offers-page .terminal-foot span { color: var(--t-soft); }
.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(--t-score); white-space: nowrap; }
.offers-page .terminal .is-new .terminal-tag { color: var(--t-good); }
.offers-page .terminal .is-check .terminal-tag { color: var(--t-check); }
.offers-page .terminal .is-ended .terminal-tag { color: var(--t-ended); }
.offers-page .terminal-title { display: flex; gap: 6px; align-items: baseline; min-width: 0; }
.offers-page .terminal-title > span { font-family: var(--font-body); 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 var(--t-lead); transform: translateY(-3px); }
.offers-page .terminal .is-ended .terminal-title > span { color: var(--t-soft); }
.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: var(--t-dot); }
.offers-page .terminal .score-dots .on { background: var(--t-soft); }
.offers-page .terminal .is-good .score-dots .on { background: var(--t-good); }
.offers-page .terminal .is-ended .score-dots .on { background: var(--t-ended); }
.offers-page .terminal-score { text-align: right; font-size: var(--fs-sm); font-weight: 700; color: var(--t-score); }
.offers-page .terminal .is-good .terminal-score { color: var(--t-good); }
.offers-page .terminal .is-ended .terminal-score { color: var(--t-ended); }
.offers-page .terminal-foot { display: flex; align-items: center; gap: 6px; margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--t-dash); color: var(--t-muted); }
.offers-page .terminal-foot i { width: 7px; height: 14px; margin-left: 2px; background: var(--volt); 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 { --divider: rgba(15, 15, 15, .09); 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(--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(--muted-2); }
.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(--muted-2); }
.offers-page .stat-row .stat-note .icon { color: var(--blue); }

/* ---------- 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(--muted-2); }
.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(--bar); }
.offers-page .columns span.is-good { background: var(--blue); }
.offers-page .columns small { font-size: var(--fs-xs); color: var(--muted-2); }
.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: 24px 0 120px; background: linear-gradient(180deg, #ECEEFF 0%, #F5F7FF 26%, #F9FAFF 74%, #FFFFFF 100%); }
.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(--volt); stroke-linecap: round; }
.offers-page .join150 .lead { max-width: 624px; margin-top: 18px; color: var(--text-2); }
.offers-page .join150 .lead + .lead { margin-top: 12px; }
.offers-page .join150 .lead b { font-weight: 700; color: var(--ink); }
.offers-page .join150 .ticks { gap: 7px; margin-top: 28px; font-size: var(--fs-p); line-height: 1.5em; color: var(--text-2); }
.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: 16px; }
.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, fonts set inside the SVG (Bricolage titles, Mulish subtitles, Poppins pills) */
.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; gap: 8px; margin-top: 32px; }
.offers-page .of-sep { flex: 1 1 0; min-width: 0; }
.offers-page .pchip--cabin { background: var(--white); box-shadow: inset 0 0 0 1px var(--line); }
.offers-page .pchip--cabin:hover { background: var(--grey-100); }
.offers-page .of-input:checked + .pchip--cabin { box-shadow: none; }
.offers-page .of-input { position: absolute; opacity: 0; pointer-events: none; }
.offers-page .pchip { display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 6px 0 14px; border-radius: var(--r-pill); background: var(--grey-100); font-size: var(--fs-sm); font-weight: 500; color: var(--text-2); cursor: pointer; transition: background .15s, color .15s; }
.offers-page .pchip b { font-weight: 700; background: var(--white); color: var(--text-2); border-radius: var(--r-pill); padding: 0 8px; line-height: 1.5em; box-shadow: 0 0 0 1px var(--line); }
.offers-page .pchip:hover { background: #E9E9EC; }
.offers-page .of-input:checked + .pchip { background: var(--ink); color: var(--white); }
.offers-page .of-input:checked + .pchip b { background: var(--text-2); color: var(--white); box-shadow: none; }
.offers-page .of-input:focus-visible + .pchip { outline: 2px solid var(--blue-700); outline-offset: 2px; }

/* featured card full width on top, then 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 { --fade: var(--grey-100); --ring: var(--line); --hover: #D4D4D8; position: relative; scroll-margin-top: 120px; padding: 42px 42px 21px; border-radius: var(--r-s); background: linear-gradient(180deg, var(--fade) 0, var(--white) 260px); box-shadow: 0 0 0 1px var(--ring); transition: box-shadow .2s, transform .2s; }
.offers-page .offer.is-good { --fade: var(--blue-50); --ring: var(--blue-ring); --hover: #C5D3F5; }
.offers-page .offer:hover { box-shadow: 0 0 0 1px var(--hover), 0 14px 30px -14px rgba(15, 15, 15, .22); 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: center; gap: 16px; }
.offers-page .offer .pills--cat { gap: 6px; margin-bottom: 12px; }
.offers-page .offer .pills--cat .pill { height: 24px; padding: 0 10px; font-size: var(--fs-xs); font-weight: 400; background: #E8E8EB; color: var(--text-2); }
.offers-page .offer.is-good .pills--cat .pill { background: #ECEEFF; color: var(--blue-700); }
.offers-page .offer-status { display: flex; align-items: center; gap: 6px; font-size: var(--fs-xs); font-weight: 700; color: var(--text-2); }
.offers-page .offer-status b { font-weight: 700; color: var(--ink); margin-right: 8px; }
.offers-page .offer-status .act { display: inline-flex; align-items: center; gap: 6px; margin-right: 10px; color: var(--blue-700); }
.offers-page .offer-status .act i { width: 8px; height: 8px; border-radius: 50%; background: var(--blue); }
.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: center; gap: 12px; }
.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: #E4E4E7; }
.offers-page .sdots i.on { background: var(--faint); }
.offers-page .is-good .sdots i.on { background: var(--blue); }
.offers-page .score-num { font-family: var(--font-mono); font-weight: 700; font-size: 40px; line-height: 1em; letter-spacing: -.03em; color: var(--ink); }
.offers-page .is-good .score-num { color: var(--blue-700); }
.offers-page .score-label { font-size: var(--fs-xs); font-weight: 700; color: var(--text-2); }
.offers-page .is-good .score-label { color: var(--blue-700); }

/* title (headline font via global h3 rule), generic lead */
.offers-page .offer-title { font-size: 28px; font-weight: 800; line-height: 1.25em; letter-spacing: -.02em; margin-top: 18px; padding-top: 20px; border-top: 1px solid var(--ring); }
.offers-page .offer-called { margin-top: 6px; font-size: var(--fs-sm); color: var(--muted-2); }
.offers-page .offer-lead { margin-top: 18px; font-size: var(--fs-sm); line-height: 1.65em; color: var(--text-2); }

/* detail block */
.offers-page .offer-detail { margin-top: 22px; }
.offers-page .offer-saving { padding: 16px 0; border-top: 1px solid var(--hair); border-bottom: 1px solid var(--hair); }
.offers-page .offer-saving p:first-child { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; }
.offers-page .offer-saving .title { font-size: 28px; }
.offers-page .offer-saving .small { color: var(--text-2); }
.offers-page .offer-saving .tiny { margin-top: 6px; color: var(--faint); }
.offers-page .offer-body { margin-top: 20px; line-height: 1.65em; color: var(--text-2); }
.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(--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; gap: 12px; margin-top: 20px; }
.offers-page .kf dd { margin: 2px 0 0; line-height: 1.5em; color: var(--text-2); }
.offers-page .offer .codebox { margin-top: 20px; }
.offers-page .offer-checks { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 22px; }
.offers-page .offer-checks .label { margin-bottom: 8px; }
.offers-page .offer-where { margin-top: 22px; }
.offers-page .fromto { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 14px; }
.offers-page .fromto .label { margin-bottom: 8px; }
.offers-page .airports { display: grid; gap: 8px; font-size: var(--fs-sm); line-height: 1.5em; }
.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.5em; min-width: 38px; text-align: center; padding: 0 6px; border-radius: var(--r-s); background: var(--grey-100); color: var(--ink); }
.offers-page .offer-btn { margin-top: 28px; margin-bottom: 21px; }

/* featured card: details left, score + lock/content right; H2-size title */
.offers-page .offer--feat { display: grid; grid-template-columns: minmax(0, 1fr) 440px; gap: 56px; align-items: start; padding-bottom: 39px; background: linear-gradient(135deg, var(--blue-50) 0, var(--white) 62%); --ring: #D9E3FA; }
.offers-page .offer--feat .offer-top { flex-direction: column-reverse; align-items: flex-start; justify-content: flex-start; gap: 22px; }
.offers-page .offer--feat .offer-score { flex-direction: row; align-items: center; gap: 14px; }
.offers-page .offer--feat .offer-title { font-size: 40px; line-height: 1.1em; margin-top: 24px; padding-top: 0; border-top: 0; }
.offers-page .offer--feat .offer-lead { max-width: 460px; }
.offers-page .offer--feat .offer-side > * { margin-top: 0; }
.offers-page .offer--feat .offer-btn { margin-bottom: 0; }

/* 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: 276px; }
.offers-page .lockbox .ph { opacity: .5; filter: blur(6px); user-select: none; pointer-events: none; -webkit-mask-image: radial-gradient(ellipse at center, #000 25%, transparent 90%); mask-image: radial-gradient(ellipse at center, #000 25%, transparent 90%); }
.offers-page .lockbox .ph b { display: block; font-size: var(--fs-p); font-weight: 700; color: var(--text-2); }
.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.65em; color: var(--text-2); }
.offers-page .lock-over { position: absolute; inset: -6px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 20px 0; text-align: center; background: linear-gradient(180deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, .3) 70%); }
.offers-page .lock-icon { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%; background: var(--white); box-shadow: 0 0 0 1px var(--blue-ring); color: var(--blue-700); }
.offers-page .lock-title { font-size: var(--fs-p); font-weight: 700; color: var(--ink); }
.offers-page .lock-text { margin-top: -8.5px; font-size: var(--fs-sm); color: var(--text-2); text-wrap: balance; }
.offers-page .lock-note { margin-top: -15px; font-size: var(--fs-xs); color: var(--muted-2); }

@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(--muted-2); }
/* 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(--grey-100); }
.offers-page .chart-card { padding: 22px; border-radius: var(--r-m); box-shadow: 0 0 0 1px var(--line), 0 30px 60px -30px rgba(15, 15, 15, .3); }
.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-family: var(--font-body); font-size: var(--fs-p); font-weight: 700; color: var(--faint); }
.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(--grey-100); font-family: var(--font-mono); font-weight: 700; font-size: var(--fs-h4); color: var(--text-2); }
.offers-page .score-chip.is-good { background: var(--blue-100); color: var(--blue-700); }
.offers-page .fare-chart { display: block; width: 100%; height: 170px; margin-top: 12px; }
.offers-page .fare-chart .sale { fill: var(--volt); opacity: .55; }
.offers-page .fare-chart .usual { stroke: var(--faint); stroke-dasharray: 3 5; }
.offers-page .fare-chart .area { fill: var(--blue-100); }
.offers-page .fare-chart .line { fill: none; stroke: var(--blue); stroke-width: 2.2; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.offers-page .fare-chart .dot { fill: var(--white); stroke: var(--blue); stroke-width: 2.2; }
.offers-page .chart-axis { display: flex; justify-content: space-between; margin-top: 6px; color: var(--muted-2); }
.offers-page .chart-axis b { color: var(--ink); 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.65em; }
.offers-page .reality { margin-top: 28px; padding: 28px; border-radius: var(--r-l); background: var(--grey-100); }
.offers-page .reality-text { margin-top: 10px; font-size: var(--fs-h3); font-weight: 700; line-height: 1.25em; color: var(--ink); }
.offers-page .reality-text s { color: var(--faint); }
.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(--ink); }
.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 { --cl: #E6EFA8; position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 14px; padding: 24px 24px 40px; border-radius: var(--r-s); background: #F7FBDD; box-shadow: 0 0 0 1px var(--cl); }
.offers-page .compare-card > * { position: relative; z-index: 1; }
.offers-page .compare-card.is-here { --cl: #C9D1FF; background: linear-gradient(180deg, #ECEEFF, #E0E5FF); }
.offers-page .compare-card > .compare-wm { position: absolute; z-index: 0; top: -17px; right: 24px; font: 800 var(--fs-watermark)/.8 var(--font-head); letter-spacing: -.06em; color: rgba(15,15,15,.06); pointer-events: none; user-select: none; }
.offers-page .is-here .compare-wm { color: rgba(61,90,254,.14); }
.offers-page .compare-name { font-family: var(--font-body); font-size: 28px; 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: 16px; }
.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: rgba(15,15,15,.06); }
.offers-page .is-here .cl-area { fill: rgba(61,90,254,.14); }
.offers-page .compare-line .cl-line { fill: none; stroke: #18181B; stroke-width: 2.4; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.offers-page .compare-line .cl-peak { fill: #D7F23A; stroke: #18181B; stroke-width: 2; }
.offers-page .is-here .cl-peak { fill: var(--blue); }
.offers-page .mini-axis { display: flex; justify-content: space-between; margin: 0; color: var(--faint); }
.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: 28px; }
.offers-page .compare-active .tiny { font-family: var(--font-body); 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(--bar) 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-family: var(--font-body); font-weight: 700; }
.offers-page .step-text .text { margin-top: 10px; line-height: 1.65em; }
.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(--white); box-shadow: 0 0 0 1px var(--line); font-size: var(--fs-sm); font-weight: 700; color: var(--ink); }
.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(--bar); }
.offers-page .log li.is-new::before { background: var(--blue); }
.offers-page .log time { font-family: var(--font-mono); color: var(--muted-2); }
.offers-page .log b { font-weight: 700; color: var(--ink); 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(--muted); }
.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(--blue-700); }
.offers-page .step--blue .step-num { background: var(--blue); color: var(--white); box-shadow: none; }
.offers-page .step-signup { background: var(--blue-100); }
.offers-page .step-signup .signup { margin-top: 10px; }
.offers-page .step-signup .link { margin-top: 10px; text-decoration-color: var(--faint); }

/* ---------- 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(--faint); max-width: 32ch; }
.offers-page .guide-tabs { grid-column: 1; margin-top: 24px; border-top: 1px solid var(--line-dark); }
.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 var(--line-dark); color: var(--muted); font-weight: 700; cursor: pointer; }
.offers-page .guide-tabs label .tiny { font-family: var(--font-mono); color: var(--muted); }
.offers-page .guide-tabs label:hover { color: var(--white); }
.offers-page .guide-tabs input:checked + label { color: var(--white); }
.offers-page .guide-tabs input:checked + label .tiny { color: var(--blue-400); }
.offers-page .guide-tabs input:focus-visible + label { outline: 2px solid var(--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-family: var(--font-body); font-size: var(--fs-h4); font-weight: 700; line-height: 1.3em; }
.offers-page .gpanel .sub { margin-top: 8px; font-size: var(--fs-p); color: var(--bar); }
.offers-page .gcard { background: var(--card-dark); border: 1px solid var(--line-dark); 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-family: var(--font-body); font-size: var(--fs-xs); fill: var(--bar); }
.offers-page .gchart .gv { font-family: var(--font-mono); font-weight: 700; fill: var(--white); }
.offers-page .gchart .gm { fill: var(--faint); }
.offers-page .gchart .gtrack, .offers-page .gchart .gaxis { stroke: var(--line-dark); stroke-width: 2; }
.offers-page .gchart .gline { stroke: var(--blue); stroke-width: 2; }
.offers-page .gchart .gdot { fill: var(--blue); }
.offers-page .gchart .gdot.is-zero { fill: var(--card-dark); stroke: var(--blue); stroke-width: 2; }
.offers-page .gchart .gdot.is-peak { fill: var(--volt); }
.offers-page .gchart .gdot.is-hi { fill: var(--blue-400); }
.offers-page .gchart .gnil { fill: var(--muted); 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(--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(--muted-2); cursor: pointer; }
.offers-page .segmented input { position: absolute; opacity: 0; pointer-events: none; }
.offers-page .segmented label:has(input:checked) { background: var(--white); color: var(--ink); box-shadow: 0 1px 2px rgba(0, 0, 0, .08), 0 0 0 1px var(--line); }
.offers-page .segmented label:has(input:focus-visible) { outline: 2px solid var(--blue); }
.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(--hair); }
.offers-page .archive-row b { font-weight: 700; }
.offers-page .archive-row .quote { color: var(--faint); }
.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(--hair); }

/* ---------- 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(--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(--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(--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(--white); border-radius: var(--r-l); box-shadow: 0 0 0 1px var(--line-soft); 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(--blue-100); color: var(--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(--blue-200); }
.offers-page .net-radio:focus-visible + label { outline: 2px solid var(--blue); outline-offset: 2px; }
.offers-page .net-map { position: relative; margin: 28px 0 0; border-radius: var(--r-l); overflow: hidden; background: #FAFBFD; }
.offers-page .net-map svg { display: block; width: 100%; height: auto; }
.offers-page .net .land { fill: var(--blue-ring); stroke: var(--white); stroke-width: .8px; vector-effect: non-scaling-stroke; }
.offers-page .net .rt { stroke: var(--blue); 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(--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(--white); stroke-width: 1px; vector-effect: non-scaling-stroke; transition: opacity .2s; }
.offers-page .net .d.t1 { fill: var(--blue-700); }
.offers-page .net .d.t2 { fill: var(--blue); }
.offers-page .net .d.t3 { fill: var(--blue-300); }
.offers-page .net .d:hover { stroke: var(--ink); }
.offers-page .net .hub { fill: var(--ink); stroke: var(--white); stroke-width: 2px; vector-effect: non-scaling-stroke; }
.offers-page .net .labs text { fill: var(--ink); font-family: var(--font-body); font-weight: 700; paint-order: stroke; stroke: var(--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(--white); border-radius: var(--r-s); box-shadow: 0 0 0 1px var(--line), 0 2px 8px rgba(15,15,15,.06); 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(--ink); cursor: pointer; transition: background .15s; }
.offers-page .net-zoom button + button { box-shadow: inset 0 1px 0 var(--line-soft); }
.offers-page .net-zoom button:hover { background: var(--blue-100); color: var(--blue-700); }
.offers-page .net-zoom button:focus-visible { outline: 2px solid var(--blue); outline-offset: -2px; }
.offers-page .net-info { min-height: 44px; padding: 12px 20px 0; color: var(--muted-2); }
.offers-page .net-info[hidden] { display: none; }
.offers-page .net-info.is-on { color: var(--ink); font-weight: 700; }
.offers-page .net-legend { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; padding: 14px 20px; color: var(--muted); }
.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(--ink); }
.offers-page .net-legend .k.t1 { background: var(--blue-700); }
.offers-page .net-legend .k.t2 { background: var(--blue); }
.offers-page .net-legend .k.t3 { background: var(--blue-300); }
.offers-page .net-list { margin-top: 24px; }
.offers-page .net-list summary { cursor: pointer; font-size: var(--fs-sm); font-weight: 700; color: var(--blue-700); }
.offers-page .net-list p { margin-top: 12px; color: var(--text-2, var(--muted)); line-height: 1.65em; }
.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: 18px 0 0; }
.offers-page .omap svg { display: block; width: 100%; height: auto; margin-top: 8px; border-radius: var(--r-l); background: #FAFBFD; }
.offers-page .omap .land { fill: var(--blue-ring); stroke: var(--white); stroke-width: .8px; vector-effect: non-scaling-stroke; }
.offers-page .omap .rt { stroke: var(--blue); stroke-width: 1.3px; opacity: .55; vector-effect: non-scaling-stroke; }
.offers-page .omap .d { fill: var(--blue-700); stroke: var(--white); stroke-width: 1px; vector-effect: non-scaling-stroke; }
.offers-page .omap .hub { fill: var(--ink); stroke: var(--white); stroke-width: 2px; vector-effect: non-scaling-stroke; }
.offers-page .omap .labs text { fill: var(--ink); font-family: var(--font-body); font-weight: 700; paint-order: stroke; stroke: var(--white); stroke-linejoin: round; }
.offers-page .omap-groups { list-style: none; margin: 10px 0 4px; padding: 0; display: grid; gap: 4px; }
@media (max-width: 720px) { .offers-page .omap .labs { display: none; } }

/* ---------- 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 .offer--feat { grid-template-columns: minmax(0, 1fr); gap: 28px; padding-bottom: 24px; }
  .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 .pchip { 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 { padding-bottom: 96px; }
  .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(--white); box-shadow: 0 0 0 1px var(--line); 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-family: var(--font-head); font-weight: 800; font-size: 61px; line-height: 1em; letter-spacing: -.06em; color: var(--faint); white-space: nowrap; user-select: none; }
.offers-page .sim-name { margin: 6px 0 2px; font-size: 16px; font-weight: 700; color: var(--ink); }
.offers-page .sim-meta { margin: 0 0 16px; font-size: 12px; line-height: 1.5em; color: var(--muted-2); }
@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(--white); color: var(--ink); display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 1px var(--line), 0 6px 16px rgba(15, 15, 15, .08); }
.offers-page .hs-rows { margin: 20px 0 0; font-size: 14px; }
.offers-page .hs-rows div { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-top: 1px solid var(--line-soft); }
.offers-page .hs-rows dt { margin: 0; color: var(--text-2); }
.offers-page .hs-tile--tint .hs-rows dd { font-family: var(--font-body); 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(--ink); white-space: nowrap; }
.offers-page .hs-tile { background: var(--white); border: 1px solid var(--line); border-radius: var(--r-m); padding: 28px; }
.offers-page .hs-tile--tint { background: var(--white); border-color: var(--line); }
.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(--blue-50); display: flex; align-items: center; justify-content: center; color: var(--blue-700); }
.offers-page .hs-tile--tint .hs-ico { background: var(--white); }
.offers-page .hs-k { display: block; font-size: var(--fs-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted-2); }
.offers-page .hs-tile h3 { margin: 2px 0 0 !important; padding: 0 !important; font-size: 20px; 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.65em; color: var(--text-2); }
.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(--white); border: 1px solid var(--line); border-radius: var(--r-m); padding: 28px; font-family: var(--font-mono); box-shadow: 0 12px 30px rgba(0,0,0,.05); }
.offers-page .hs-receipt dl { margin: 14px 0 0; font-size: 14px; line-height: 1.65em; color: var(--text-2); }
.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(--line); display: flex; justify-content: space-between; align-items: baseline; font: 700 14px var(--font-body); color: var(--ink); }
.offers-page .hs-total b { font: 800 40px var(--font-head); }
.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(--text-2); }
.offers-page #how-scored .lead b { color: var(--ink); font-weight: 700; }
.offers-page .hs-result { background: var(--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: 20px; 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: 16px; }
.offers-page .hero-updated > p:last-child { margin-top: 2px; }
.offers-page .net .labs text, .offers-page .omap .labs text { font-family: var(--font-mono); font-weight: 700; }
.offers-page .pchip b { font-family: var(--font-mono); }
.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 28px/1 var(--font-mono); }
.offers-page .hs-digits .is-low { color: var(--faint); }
.offers-page .hs-digits span:nth-of-type(6) { color: #8E9FFE; }
.offers-page .hs-digits span:nth-of-type(7) { color: #7E91FE; }
.offers-page .hs-digits span:nth-of-type(8) { color: #6E83FE; }
.offers-page .hs-digits span:nth-of-type(9) { color: #5D76FE; }
.offers-page .hs-digits span:nth-of-type(10) { color: #4D68FE; }
.offers-page .hs-digits span:nth-of-type(11) { color: #3D5AFE; }
.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(--ink); }
.offers-page .hs-digits u { position: absolute; left: 0; top: -28px; transform: translateX(-50%); text-decoration: none; font: 700 12px var(--font-mono); background: var(--ink); color: var(--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: 5fr 2fr 2fr 2fr; gap: 8px; }
.offers-page .hs-groups li { border-top: 2px solid; padding-top: 8px; font-size: var(--fs-xs); color: var(--muted-2); }
.offers-page .hs-groups b { display: block; font-size: 14px; font-weight: 700; color: var(--ink); }
.offers-page .hs-groups span { font-family: var(--font-mono); }
.offers-page .hs-groups .is-low { border-color: var(--bar); }
.offers-page .hs-groups .is-ok { border-color: #7E91FE; }
.offers-page .hs-groups .is-strong { border-color: #5D76FE; }
.offers-page .hs-groups .is-rare { border-color: #3D5AFE; }
@media (max-width: 820px) {
  .offers-page .hs-groups { grid-template-columns: 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(--blue-ring); }
.offers-page .hs-db-track .found { position: absolute; left: 0; top: 11px; height: 4px; border-radius: var(--r-s); background: var(--blue-700); }
.offers-page .hs-db-track .gap { position: absolute; right: 0; top: 11px; height: 4px; background: repeating-linear-gradient(90deg, var(--faint) 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(--blue-700); box-shadow: 0 0 0 4px var(--blue-50); }
.offers-page .hs-db-track .dot-claim { background: var(--blue-50); box-shadow: inset 0 0 0 2px var(--faint); }
.offers-page .hs-db-track b { position: absolute; bottom: 22px; left: 50%; transform: translateX(-50%); font: 700 12px var(--font-mono); white-space: nowrap; }
.offers-page .hs-db-track .dot-found b { color: var(--blue-700); }
.offers-page .hs-db-track .dot-claim b { color: var(--muted-2); }
.offers-page .hs-db-legend { margin-top: 10px; display: flex; justify-content: space-between; font-size: var(--fs-xs); color: var(--muted-2); }
.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(--blue-700); }
.offers-page .hs-db-legend .claim { box-shadow: inset 0 0 0 2px var(--faint); }

/* 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(--muted-2); }
.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(--line); border-radius: var(--r-m); overflow: hidden; }
.offers-page .archive-table th { text-align: left; font: 700 12px var(--font-mono); letter-spacing: .04em; text-transform: uppercase; color: var(--muted-2); background: #FAFAFA; padding: 14px 18px; border-bottom: 1px solid var(--line); }
.offers-page .archive-table td { padding: 16px 18px; border-bottom: 1px solid var(--line-soft); vertical-align: middle; }
.offers-page .archive-table tr:last-child td { border-bottom: 0; }
.offers-page .archive-table tbody tr:hover td { background: var(--blue-50); }
.offers-page .archive-table .dt { font: 500 14px var(--font-mono); color: var(--muted-2); width: 110px; white-space: nowrap; }
.offers-page .archive-table b { font-size: 16px; color: var(--ink); }
.offers-page .archive-table p { margin: 2px 0 0; font-size: 14px; color: var(--text-2); }
.offers-page .archive-table .r { text-align: right; width: 90px; }
.offers-page .archive-table .score-n { font: 700 18px var(--font-mono); font-style: normal; color: var(--text-2); }
.offers-page .archive-table .score-n.is-good { color: var(--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 12px/1 var(--font-mono);color:var(--muted-2)}
.offers-page .offer-admin-id b{color:var(--blue)}


/* 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; }
