:root {
  /* Brand palette: teal #0E7C86 is for the logo, borders, icons and focus rings only.
     It is 4.45:1 on mist, so small text uses --cta (#005F66) instead. */
  --navy: #12343b;
  --navy-2: #005f66;
  --teal: #0e7c86;
  --teal-dark: #005f66;
  --teal-2: #0e7c86;
  --teal-bg: #dcf0f1;
  --cta: #005f66;
  --cta-hover: #004a50;
  --ink: #12343b;
  --muted: #5b6878;
  --line: #d3e4e6;
  --bg: #eaf5f6;
  --mist: #eaf5f6;
  --tint: #f3f9fa;
  --card: #fff;
  --green: #15803d;
  --green-bg: #e9f8ee;
  --amber: #a16207;
  --amber-bg: #fdf6e3;
  /* Amber, the one warm accent on a teal site: the checker and sticky bar
     buttons, the dashboard's "Check a flight", the "up to" underlines and the
     dashboard step numbers. Never text on white. Ink on accent 6.61:1, ink on
     hover 5.56:1; the edge is 5.24:1 on white, 4.72:1 on --bg. */
  --accent: #f2a900;
  --accent-hover: #e09a00;
  --accent-ink: #12343b;
  --accent-edge: #946200;
  --red: #b42318;
  --red-bg: #fdecea;
  --radius: 14px;
  --shadow: 0 1px 2px rgba(18, 52, 59, .06), 0 6px 24px rgba(18, 52, 59, .07);
  --font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

  /* Type scale: every font-size on the site is one of these (or an em of its parent). */
  --fs-xs: .8rem;
  --fs-sm: .9rem;
  --fs-md: 1rem;
  --fs-body: 1.0625rem;
  --fs-lg: 1.15rem;
  --fs-icon: 1.5rem;
  --fs-xl: clamp(1.3rem, 2.6vw, 1.6rem);
  --fs-2xl: clamp(1.75rem, 4vw, 2.5rem);
  --fs-hero: clamp(2.1rem, 7.2vw, 3.4rem);

  /* Spacing scale */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 24px;
  --sp-6: 32px;
  --sp-7: 48px;
  --sp-8: 64px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--font); font-size: var(--fs-body); line-height: 1.6; color: var(--ink); background: var(--bg); padding-inline: env(safe-area-inset-left, 0px) env(safe-area-inset-right, 0px); }
img, svg { max-width: 100%; }
a { color: var(--navy-2); text-underline-offset: 2px; }
a:hover { color: var(--ink); }
h1, h2, h3 { line-height: 1.25; color: var(--navy); letter-spacing: -.01em; }
h1 { font-size: var(--fs-2xl); margin: .5em 0 .4em; }
h2 { font-size: var(--fs-xl); margin: 1.6em 0 .5em; }
h3 { font-size: var(--fs-lg); margin: 1.2em 0 .4em; }
code { background: var(--tint); padding: .1em .35em; border-radius: 5px; font-size: .92em; }
:focus-visible { outline: 3px solid var(--teal-2); outline-offset: 2px; border-radius: 4px; }

.wrap { max-width: 920px; margin: 0 auto; padding: 0 20px; }
.wrap.wide { max-width: 1100px; }
.skip { position: absolute; inset-inline-start: 12px; top: 12px; z-index: 10; background: #fff; padding: 8px 12px; transform: translateY(-200%); }
.skip:focus { transform: none; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Header */
.site-header { background: #fff; color: var(--ink); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 5; }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 64px; max-width: 1100px; }
.brand { color: var(--ink); text-decoration: none; font-weight: 800; font-size: var(--fs-lg); line-height: 1.02; letter-spacing: -.01em; display: flex; align-items: center; gap: 10px; }
.brand:hover { color: var(--ink); }
.brand-mark { flex: none; width: 38px; height: 38px; color: var(--teal); }
.brand-name > span { display: block; }
.brand-money { color: var(--teal); }
.site-nav { display: flex; gap: 4px; flex-wrap: wrap; }
.site-nav a { color: var(--ink); text-decoration: none; padding: 6px 10px; border-radius: 8px; font-size: var(--fs-sm); font-weight: 500; }
.site-nav a:hover, .site-nav a[aria-current="page"], .site-nav a.in-section { background: var(--mist); color: var(--cta); }
.site-nav a[aria-current="page"], .site-nav a.in-section { font-weight: 700; }
.nav-toggle { display: none; background: #fff; color: var(--ink); border: 1px solid #9db8bc; border-radius: 8px; padding: 6px 12px; font: inherit; font-size: var(--fs-sm); cursor: pointer; }
.nav-toggle:hover { background: var(--mist); }
.preview-bar { background: var(--amber-bg); color: #6b4a06; text-align: center; font-size: var(--fs-sm); padding: 6px 12px; border-bottom: 1px solid #f1e2b8; }

@media (max-width: 860px) {
  .nav-toggle { display: block; }
  .site-nav { display: none; position: absolute; top: 64px; left: 0; right: 0; background: #fff; border-bottom: 1px solid var(--line); box-shadow: 0 10px 20px rgba(18, 52, 59, .1); flex-direction: column; padding: 8px 12px 16px; }
  .site-nav.open { display: flex; }
  .site-nav a { padding: 10px 12px; }
  .site-nav.focus-nav { display: flex; position: static; flex-direction: row; padding: 0; background: none; }
  .site-nav.focus-nav a { padding: 6px 10px; }
}

main { padding-bottom: 32px; }
.lead { font-size: var(--fs-lg); color: #334155; }
.hint { color: var(--muted); font-size: var(--fs-sm); margin: .3em 0 0; }
.center { text-align: center; }
.small { font-size: var(--fs-sm); }
.crumbs { font-size: var(--fs-sm); color: var(--muted); margin-top: 20px; }
.crumbs a { color: var(--muted); }

/* Cards */
.card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: 24px; margin: 24px 0; }
.card h2:first-child { margin-top: 0; }
.checker { padding: 28px; }
@media (max-width: 560px) { .card, .checker { padding: 18px; border-radius: 12px; } }

/* Forms */
fieldset { border: 0; padding: 0; margin: 0 0 22px; min-width: 0; }
legend { font-weight: 700; color: var(--navy); font-size: var(--fs-md); margin-bottom: 10px; padding: 0; }
.field { margin-bottom: 14px; position: relative; }
.field label, .label { display: block; font-weight: 600; font-size: var(--fs-md); margin-bottom: 6px; }
input[type="text"], input[type="email"], input[type="number"], input[type="date"], input[type="datetime-local"], select, textarea {
  width: 100%; font: inherit; font-size: var(--fs-md); padding: 11px 12px; border: 1px solid #c5cfda; border-radius: 10px; background: #fff; color: var(--ink);
}
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--teal); box-shadow: 0 0 0 3px rgba(14, 124, 134, .25); }
.invalid, input.invalid, select.invalid { border-color: var(--red) !important; box-shadow: 0 0 0 3px rgba(180, 35, 24, .12); }
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
@media (max-width: 640px) { .grid-2 { grid-template-columns: 1fr; } }
.check { display: flex; gap: 12px; align-items: flex-start; margin: 4px 0 14px; padding: 10px 0; min-height: 44px; font-size: var(--fs-md); cursor: pointer; }
.check input { margin: 0; width: 24px; height: 24px; accent-color: var(--teal); flex: none; }
.choice-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.choice-row.compact { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
@media (max-width: 560px) { .choice-row { grid-template-columns: 1fr; } }
.choice { position: relative; cursor: pointer; display: block; }
.choice input { position: absolute; opacity: 0; inset: 0; }
.choice > span { display: block; height: 100%; border: 1.5px solid #c5cfda; border-radius: 12px; padding: 12px 14px; background: #fff; font-size: var(--fs-md); transition: border-color .15s, background .15s; }
.choice strong { display: block; color: var(--navy); }
.choice small { color: var(--muted); }
.choice input:checked + span { border-color: var(--teal); background: var(--teal-bg); box-shadow: 0 0 0 2px rgba(14, 124, 134, .25); }
.choice input:focus-visible + span { outline: 3px solid var(--teal-2); outline-offset: 2px; }
.cond { border-top: 1px dashed var(--line); padding-top: 18px; }
.errors { background: var(--red-bg); color: var(--red); border-radius: 10px; padding: 12px 16px; margin-bottom: 16px; font-size: var(--fs-md); }
.errors ul { margin: 4px 0 0; padding-inline-start: 20px; }

/* Combobox */
.combo-list { position: absolute; z-index: 4; left: 0; right: 0; top: 76px; margin: 0; padding: 4px; list-style: none; background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow); max-height: 280px; overflow-y: auto; }
.combo-list li { padding: 8px 10px; border-radius: 8px; cursor: pointer; font-size: var(--fs-md); }
.combo-list li[aria-selected="true"], .combo-list li:hover { background: var(--teal-bg); }
.combo-list li.empty { color: var(--muted); cursor: default; }
.combo-list li.empty:hover { background: none; }
.combo-list b { color: var(--navy); }
.combo-list small { color: var(--muted); }

/* Buttons: the only place a .btn gets its size, colour or shape */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--sp-2); font: inherit; font-weight: 600; font-size: var(--fs-md); line-height: 1.3; border-radius: 10px; padding: 11px 18px; min-height: 44px; border: 1.5px solid var(--cta); background: #fff; color: var(--cta); cursor: pointer; text-decoration: none; }
.btn:hover { background: var(--mist); color: var(--cta-hover); }
.btn.primary { background: var(--cta); border-color: var(--cta); color: #fff; }
.btn.primary:hover { background: var(--cta-hover); border-color: var(--cta-hover); color: #fff; }
.btn.accent { background: var(--accent); border-color: var(--accent-edge); color: var(--accent-ink); }
.btn.accent:hover { background: var(--accent-hover); border-color: var(--accent-edge); color: var(--accent-ink); }
.btn.big { width: 100%; padding: 15px; font-size: var(--fs-lg); }
.btn.small { padding: 6px 14px; min-height: 40px; font-size: var(--fs-sm); }
.btn.hero-btn { width: 100%; padding: 18px var(--sp-5); font-size: clamp(1.1rem, 3.6vw, 1.3rem); font-weight: 700; border-radius: 12px; white-space: normal; box-shadow: 0 6px 18px rgba(148, 98, 0, .24); }
.btn.hero-btn:hover { box-shadow: 0 8px 22px rgba(148, 98, 0, .3); }
.btn[disabled], .btn[aria-disabled="true"], .btn.is-disabled { opacity: .55; cursor: not-allowed; pointer-events: auto; }
.btn.coming-soon { opacity: 1; cursor: default; border-style: dashed; margin: 0; }
.btn.external::after { content: "\2197"; font-size: .9em; }
.btn.cta-bar-btn { flex: none; min-height: 40px; padding: 8px 24px; border-radius: 8px; white-space: nowrap; }
@media (max-width: 767px) { .btn.cta-bar-btn { display: flex; width: 100%; height: 40px; padding: 0 20px; font-size: var(--fs-sm); box-shadow: 0 4px 14px rgba(18, 52, 59, .22); } }
/* end Buttons */

/* Result */
.result { margin: 24px 0; scroll-margin-top: 80px; }
.verdict { border-radius: var(--radius); padding: 24px; border: 1px solid var(--line); background: #fff; box-shadow: var(--shadow); }
.verdict h2 { margin: 10px 0 6px; }
.verdict .meta { color: var(--muted); font-size: var(--fs-sm); margin: 0; }
.verdict-likely { border-inline-start: 6px solid var(--green); background: linear-gradient(90deg, var(--green-bg), #fff 60%); }
.verdict-unclear { border-inline-start: 6px solid var(--amber); background: linear-gradient(90deg, var(--amber-bg), #fff 60%); }
.verdict-unlikely { border-inline-start: 6px solid var(--red); background: linear-gradient(90deg, var(--red-bg), #fff 60%); }
.badge { display: inline-block; font-size: var(--fs-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; padding: 3px 10px; border-radius: 999px; background: var(--navy); color: #fff; }
.verdict-likely .badge { background: var(--green); }
.verdict-unclear .badge { background: var(--amber); }
.verdict-unlikely .badge { background: var(--red); }
.regimes { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; margin: 16px 0; }
.regime { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 16px 18px; }
.regime header { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.regime h3 { margin: 0; font-size: var(--fs-md); }
.regime .amount { font-size: var(--fs-xl); font-weight: 800; color: var(--navy); margin: 8px 0 4px; }
.regime .amount small { font-size: var(--fs-xs); font-weight: 500; color: var(--muted); }
.regime .amount.small { font-size: var(--fs-md); font-weight: 600; }
.regime .scope { font-size: var(--fs-sm); color: #334155; }
.reasons { padding-inline-start: 18px; font-size: var(--fs-sm); margin: 8px 0; }
.reasons li { margin-bottom: 4px; }
.refund { font-size: var(--fs-sm); background: var(--tint); border-radius: 8px; padding: 8px 10px; }
.pill { font-size: var(--fs-xs); font-weight: 700; padding: 3px 9px; border-radius: 999px; white-space: nowrap; }
.tile .pill { display: inline-block; white-space: normal; max-width: 100%; margin-bottom: 8px; border-radius: 10px; }
.pill-likely { background: var(--green-bg); color: var(--green); }
.pill-unclear { background: var(--amber-bg); color: var(--amber); }
.pill-unlikely { background: var(--red-bg); color: var(--red); }
.next { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 18px 20px; margin: 16px 0; }
.next h3 { margin-top: 0; }
.not-eligible-box { border-color: #f3c9c4; }
.email-capture h3 { margin-top: 0; }
.inline-form { display: flex; gap: 10px; }
.inline-form input { flex: 1; }
@media (max-width: 480px) { .inline-form { flex-direction: column; } }
.form-msg:empty { display: none; }
.form-msg { background: var(--teal-bg); color: var(--cta); padding: 8px 12px; border-radius: 8px; font-size: var(--fs-sm); }
.form-msg.error { background: var(--red-bg); color: var(--red); }

/* Notes */
.warn, .note { border-radius: 10px; padding: 12px 16px; margin: 12px 0; font-size: var(--fs-md); }
.warn { background: var(--amber-bg); border: 1px solid #f1e2b8; color: #5c4306; }
.note { background: var(--tint); border: 1px solid var(--line); }
.independence { font-size: var(--fs-sm); color: var(--muted); }

/* How it works */
.steps { padding-inline-start: 22px; }
.steps li { margin-bottom: var(--sp-2); }

/* Home sections after the checker */
.band { margin-top: var(--sp-8); }
.band > h2 { margin: 0 0 var(--sp-2); }
.band-lead { margin: 0 0 var(--sp-5); color: #334155; max-width: 44em; }
.step-cards, .amount-cards { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--sp-4); }
.step-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); counter-reset: step; }
.amount-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: var(--sp-4); }
.step-cards li, .amount-cards li, .tpl-card, .proof-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: var(--sp-5); }
.step-cards li { counter-increment: step; }
.step-cards li::before { content: counter(step); display: grid; place-items: center; width: 36px; height: 36px; margin-bottom: var(--sp-3); border-radius: 50%; background: var(--cta); color: #fff; font-weight: 700; }
.amount-cards li { display: flex; flex-direction: column; gap: var(--sp-1); }
.amount-law, .proof-law { font-size: var(--fs-xs); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--cta); margin: 0; }
.amount-max { font-size: var(--fs-xl); color: var(--navy); line-height: 1.2; text-decoration: underline 3px var(--accent); text-underline-offset: 6px; text-decoration-skip-ink: none; }
.amount-cards li > span:last-child { font-size: var(--fs-sm); color: #334155; }
.limits { padding-inline-start: 22px; margin: 0; }
.limits li { margin-bottom: var(--sp-2); }
.tpl-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-4); margin-bottom: var(--sp-4); }
.tpl-card { display: flex; flex-direction: column; align-items: flex-start; gap: var(--sp-2); }
.tpl-card h3, .tpl-card p { margin: 0; }
.tpl-card p { flex: 1; font-size: var(--fs-sm); color: #334155; }
@media (max-width: 700px) { .step-cards, .tpl-cards { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .amount-cards { grid-template-columns: 1fr; } }

/* Proof module: official-source extracts, never testimonials */
.proof { margin: var(--sp-6) 0; }
.band .proof { margin: 0 0 var(--sp-5); }
.band .proof > h2 { font-size: var(--fs-lg); margin: 0 0 var(--sp-1); }
.proof > h2 { margin: 0 0 var(--sp-2); }
.proof-lead { margin: 0 0 var(--sp-4); color: #334155; }
.proof-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-4); }
@media (max-width: 640px) { .proof-grid { grid-template-columns: 1fr; } }
.proof-card { margin: 0; display: flex; flex-direction: column; gap: var(--sp-2); border-inline-start: 4px solid var(--teal); }
.proof-card blockquote { margin: 0; flex: 1; }
.proof-card blockquote p { margin: 0; font-size: var(--fs-sm); color: var(--ink); }
.proof-card blockquote p::before { content: "\201C"; }
.proof-card blockquote p::after { content: "\201D"; }
.proof-card figcaption { font-size: var(--fs-xs); overflow-wrap: anywhere; }

/* /kit/: what you get and what you don't */
.kit-proof { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-4); margin: var(--sp-5) 0; }
.kit-proof .card { margin: 0; }
.kit-proof h2 { font-size: var(--fs-lg); margin: 0 0 var(--sp-3); }
.ticks-list, .cross-list { list-style: none; padding: 0; margin: 0; }
.ticks-list li, .cross-list li { position: relative; padding-inline-start: 30px; margin-bottom: var(--sp-3); }
.ticks-list li::before, .cross-list li::before { position: absolute; inset-inline-start: 0; top: 0; font-weight: 700; }
.ticks-list li::before { content: "\2713"; content: "\2713" / ""; color: var(--green); }
.cross-list li::before { content: "\2715"; content: "\2715" / ""; color: var(--red); }
.proof-yes { border-top: 4px solid var(--green); }
.proof-no { border-top: 4px solid var(--red); }
@media (max-width: 700px) { .kit-proof { grid-template-columns: 1fr; } }

/* Dashboard welcome */
.dash-empty h2 { margin-top: 0; }
.dash-empty .lead { margin-top: 0; }
.guide-steps { margin: 0 0 var(--sp-5); padding-inline-start: 22px; }
.guide-steps li { margin-bottom: var(--sp-2); }
.guide-steps li::marker { color: var(--accent-edge); font-weight: 700; }

/* Fade-ins: opacity and transform only, switched on by site.js */
html.reveal-on .reveal:not(.in) { opacity: 0; transform: translateY(16px); }
html.reveal-on .reveal.in { transition: opacity .5s ease-out, transform .5s ease-out; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
  html.reveal-on .reveal:not(.in) { opacity: 1; transform: none; }
}
@media print { html.reveal-on .reveal:not(.in) { opacity: 1; transform: none; } }

/* Tiles */
.cards-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; margin: 18px 0; }
.tile { display: block; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 16px 18px; text-decoration: none; color: var(--ink); transition: border-color .15s, transform .15s; }
.tile:hover { border-color: var(--teal); transform: translateY(-2px); color: var(--ink); }
.tile h2, .tile h3 { margin: 0 0 6px; font-size: var(--fs-lg); }
.tile p { margin: 0; font-size: var(--fs-sm); color: var(--muted); }
.post { max-width: 720px; }
.post-meta { color: var(--muted); font-size: var(--fs-sm); margin: -.4em 0 1em; }
.post-cta { border-inline-start: 4px solid var(--teal); }
.post-cta p:last-child { margin-bottom: 0; }
.related { padding-inline-start: 1.2em; }
.related li { margin: .35em 0; }
.post-disclaimer { color: var(--muted); font-size: var(--fs-sm); border-top: 1px solid var(--line); padding-top: 12px; }

/* Tables */
.table-wrap { overflow-x: auto; margin: 14px 0; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
table { border-collapse: collapse; width: 100%; font-size: var(--fs-sm); }
th, td { text-align: start; padding: 10px 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
th { background: var(--tint); color: var(--navy); font-weight: 700; }
tr:last-child td { border-bottom: 0; }
table.mini { font-size: var(--fs-sm); }
.conf { font-size: var(--fs-xs); font-weight: 700; padding: 2px 8px; border-radius: 999px; white-space: nowrap; }
.conf-primary { background: var(--green-bg); color: var(--green); }
.conf-secondary { background: var(--amber-bg); color: var(--amber); }
.conf-conflict { background: var(--red-bg); color: var(--red); }

/* Decision trees */
.tree { list-style: none; padding: 0; margin: 18px 0; counter-reset: none; }
.tree > li { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 14px 18px; margin-bottom: 10px; scroll-margin-top: 80px; }
.tree .q { font-weight: 700; color: var(--navy); margin: 0 0 8px; display: flex; gap: 10px; align-items: baseline; }
.step-n { flex: none; display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--navy); color: #fff; font-size: var(--fs-xs); }
.branches { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 600px) { .branches { grid-template-columns: 1fr; } }
.branches p { margin: 0; font-size: var(--fs-sm); padding: 8px 10px; border-radius: 8px; }
.branches span { display: inline-block; font-weight: 700; font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .05em; margin-inline-end: 8px; }
.branches .yes { background: var(--green-bg); }
.branches .yes span { color: var(--green); }
.branches .no { background: var(--tint); }
.branches .no span { color: var(--muted); }


/* Kit expandable sections (disclosure, not fake checkboxes) */
.kit-details { margin: 0 0 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--tint); }
.kit-details summary { cursor: pointer; padding: 10px 14px; font-weight: 600; color: var(--navy); list-style: none; display: flex; align-items: center; gap: 10px; }
.kit-details summary::-webkit-details-marker { display: none; }
.kit-details summary::before { content: "\25B8"; flex: none; color: var(--teal); font-size: var(--fs-md); width: 1.1em; }
.kit-details[open] summary::before { content: "\25BE"; }
.kit-details .kit-details-body { padding: 0 14px 14px; font-size: var(--fs-sm); }
.kit-details .kit-details-body ul { margin: 8px 0; padding-inline-start: 20px; }
.kit-details .kit-details-body li { margin-bottom: 4px; }
.kit-details .kit-details-body p:first-child { margin-top: 0; }

/* Lists and letters */
.facts { padding-inline-start: 20px; }
.facts li { margin-bottom: 6px; }
.checklist { list-style: none; padding: 0; }
.checklist li { padding-block: 6px; padding-inline: 30px 0; position: relative; }
.checklist li::before { content: ""; position: absolute; inset-inline-start: 0; top: 9px; width: 18px; height: 18px; border: 2px solid var(--teal); border-radius: 5px; }
.letter textarea, textarea.letter { min-height: 360px; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: var(--fs-sm); line-height: 1.5; }
.letter { margin: 12px 0; }
.kit-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; margin: 18px 0; }
.kit-grid > * { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 16px 18px; }
.kit-grid h3 { margin-top: 0; }
.buy { text-align: center; }
.consent { color: var(--muted); }
.test-note { margin-top: 12px; font-weight: 600; color: var(--navy); }
.three { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.static { color: var(--muted); }

/* Sources and footer */
.sources { margin-top: 40px; border-top: 1px solid var(--line); padding-top: 8px; font-size: var(--fs-sm); }
.sources h2 { font-size: var(--fs-md); margin: 12px 0 6px; }
.sources ol { padding-inline-start: 20px; margin: 0; }
.sources li { margin-bottom: 3px; overflow-wrap: anywhere; }
.all-sources li { overflow-wrap: anywhere; }
.updated { font-size: var(--fs-xs); color: var(--muted); margin-top: 16px; }
.site-footer { background: #0c262b; color: #c7dadd; font-size: var(--fs-sm); padding: 28px 0; margin-top: 24px; }
.site-footer a { color: #e6f2f3; }
.site-footer :focus-visible, .claim-bar :focus-visible { outline-color: #fff; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: var(--sp-5) var(--sp-6); max-width: 1100px; }
.footer-grid nav { display: flex; flex-direction: column; gap: var(--sp-2); align-items: flex-start; }
.footer-grid nav a { padding-block: 2px; }
.footer-about p { margin: 0 0 var(--sp-3); }
.footer-h { font-size: var(--fs-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #fff; margin: 0 0 var(--sp-3); }
@media (max-width: 860px) { .footer-grid { grid-template-columns: 1fr 1fr 1fr; } .footer-about { grid-column: 1 / -1; } }
@media (max-width: 520px) { .footer-grid { grid-template-columns: 1fr 1fr; } }

@media print { .site-header, .site-footer, .preview-bar, .checker, .email-capture { display: none; } }

/* Checker first screen: the hero */
.checker.first { margin-top: var(--sp-5); padding: var(--sp-6); }
@media (max-width: 560px) { .checker.first { padding: var(--sp-5) var(--sp-4); } }
.first-q legend { margin-bottom: 0; }
.first-q h1 { font-size: var(--fs-hero); line-height: 1.08; letter-spacing: -.025em; margin: 0 0 var(--sp-3); }
.first-q .lead { font-size: var(--fs-lg); margin: 0 0 var(--sp-5); max-width: 40em; }
/* Only the first question shows until it is answered. CSS hides the rest from
   the first paint (no layout shift), and still lets it open without JavaScript. */
#checker:not(:has(input[name="disruption"]:checked)) [data-details] { display: none; }
.trust-regs { margin: var(--sp-3) 0 0; text-align: center; font-size: var(--fs-sm); color: var(--muted); }
.trust-regs a { font-weight: 600; white-space: nowrap; }
.trust { list-style: none; padding: 0; margin: var(--sp-2) 0 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; font-size: var(--fs-sm); color: var(--muted); }
.trust li::before { content: "\2713"; color: var(--teal); font-weight: 700; margin-inline-end: 6px; }
.stale-note:empty { display: none; }
a[target="_blank"]::after { content: "\2197"; content: "\2197" / ""; font-size: .8em; margin-inline-start: 2px; text-decoration: none; display: inline-block; }
.site-footer nav a[aria-current="page"] { font-weight: 700; }
.table-hint { display: none; font-size: var(--fs-xs); color: var(--muted); margin: 14px 0 -8px; }
@media (max-width: 640px) {
  .table-hint { display: block; }
  .table-wrap { background: linear-gradient(to right, #fff 30%, rgba(255, 255, 255, 0)) left / 24px 100% no-repeat local, linear-gradient(to left, #fff 30%, rgba(255, 255, 255, 0)) right / 24px 100% no-repeat local, radial-gradient(farthest-side at 0 50%, rgba(18, 52, 59, .2), transparent) left / 10px 100% no-repeat scroll, radial-gradient(farthest-side at 100% 50%, rgba(18, 52, 59, .2), transparent) right / 10px 100% no-repeat scroll, #fff; }
}
.table-wrap:focus-visible { outline: 3px solid var(--teal); outline-offset: 2px; }
.tree .info { margin: 0; font-size: var(--fs-sm); padding: 8px 10px; border-radius: 8px; background: var(--tint); }

/* Language switcher */
.header-tools { display: flex; align-items: center; gap: 8px; }
/* Language picker: a compact button; the modal is built by site.js on first open */
.flag { display: inline-block; flex: none; width: 20px; height: 15px; border-radius: 2px; box-shadow: 0 0 0 1px rgba(18, 52, 59, .18); object-fit: cover; }
.lang-btn { display: inline-flex; align-items: center; gap: 6px; color: var(--ink); background: #fff; border: 1px solid #9db8bc; border-radius: 8px; padding: 5px 10px; font-size: var(--fs-sm); font-weight: 600; min-height: 44px; min-width: 44px; justify-content: center; text-decoration: none; }
.lang-btn:hover { background: var(--mist); color: var(--ink); }
.lang-btn .globe { flex: none; }
.lang-btn-footer { background: transparent; border-color: rgba(255, 255, 255, .35); color: inherit; font-weight: 500; }
.lang-btn-footer:hover { background: rgba(255, 255, 255, .1); color: inherit; }
html.modal-open { overflow: hidden; }
.lang-dialog { width: min(860px, calc(100vw - 24px)); max-height: min(86vh, 760px); padding: 0; border: 0; border-radius: 16px; box-shadow: 0 20px 60px rgba(18, 52, 59, .3); color: var(--ink); background: #fff; overflow: hidden; }
.lang-dialog[open] { display: flex; flex-direction: column; }
.lang-dialog::backdrop { background: rgba(18, 52, 59, .55); }
.lang-dialog-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--line); }
.lang-dialog-head h2 { margin: 0; font-size: var(--fs-lg); }
.lang-close { flex: none; width: 40px; height: 40px; border-radius: 10px; border: 1px solid var(--line); background: #fff; color: var(--ink); font-size: var(--fs-icon); line-height: 1; cursor: pointer; }
.lang-close:hover { background: var(--mist); }
.lang-dialog-body { overflow-y: auto; padding: 4px 20px 20px; }
.lang-section h2, .lang-section h3 { margin: 18px 0 8px; font-size: var(--fs-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); }
.lang-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px 12px; }
.lang-section + .lang-section { border-top: 1px solid var(--line); }
.lang-item { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 8px 10px; border-radius: 10px; border: 1px solid transparent; color: var(--ink); text-decoration: none; }
.lang-item:hover { background: var(--mist); color: var(--ink); }
.lang-item[aria-current="true"] { background: var(--teal-bg); border-color: var(--teal); font-weight: 700; }
@media (max-width: 860px) { .lang-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) {
  .lang-grid { grid-template-columns: 1fr; }
  .lang-dialog { width: 100vw; max-width: 100vw; height: 100%; max-height: 100%; border-radius: 0; }
}
.region-row { display: flex; flex-wrap: wrap; gap: 6px; }
.region-row button { font: inherit; font-size: var(--fs-sm); text-align: start; background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 8px 12px; min-height: 40px; color: var(--ink); cursor: pointer; }
.region-row button:hover { background: var(--teal-bg); }
.region-row button[aria-pressed="true"] { border-color: var(--teal); background: var(--teal-bg); font-weight: 600; }
.lang-suggest { position: fixed; inset-inline: 0; bottom: 0; z-index: 6; background: var(--teal-bg); border-top: 1px solid var(--line); box-shadow: 0 -4px 16px rgba(18, 52, 59, .14); }
.lang-suggest-inner { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; max-width: 1100px; padding-top: 8px; padding-bottom: 8px; }
.lang-suggest-inner p { margin: 0; flex: 1 1 220px; font-size: var(--fs-md); }
.lang-suggest-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.footer-lang { max-width: 1100px; margin-top: 20px; padding-top: 14px; border-top: 1px solid rgba(255, 255, 255, .15); }
.i18n-note { font-size: var(--fs-sm); color: var(--muted); background: var(--tint); border: 1px solid var(--line); border-radius: 8px; padding: 8px 12px; margin: 16px 0 0; }
.i18n-note.untranslated { background: var(--amber-bg); border-color: #f1e2b8; color: #6b4a06; margin-top: 8px; }
.en-details { margin-top: 6px; }
@media (max-width: 420px) {
  .brand { font-size: var(--fs-md); min-width: 0; }
  .header-inner { gap: 8px; }
  .header-tools { gap: 6px; }
  .site-nav.focus-nav a { padding: 6px 6px; font-size: var(--fs-xs); }
}
@media (max-width: 380px) {
  .brand { font-size: var(--fs-md); gap: 6px; }
  .brand-mark { width: 30px; height: 30px; }
  .nav-toggle { padding: 6px 8px; }
  .lang-btn { padding: 5px 6px; gap: 4px; }
  .lang-btn-code { display: none; }
  .site-nav.focus-nav a { font-size: var(--fs-xs); padding: 6px 4px; }
}

/* Claim bar: sticky, so it never covers the end of the page */
.claim-bar { position: sticky; bottom: 0; z-index: 4; background: var(--navy); color: #fff; box-shadow: 0 -4px 16px rgba(18, 52, 59, .18); }
[hidden] { display: none !important; }
.claim-bar[hidden] { display: none; }
.claim-inner { display: flex; align-items: center; gap: 12px; max-width: 1100px; padding-top: 10px; padding-bottom: 10px; }
.claim-text { margin: 0; flex: 1; font-size: var(--fs-md); line-height: 1.4; }
.claim-text[hidden] { display: none; }
.claim-cta { flex: none; white-space: nowrap; }
.claim-close { flex: none; background: none; border: 1px solid rgba(255, 255, 255, .4); color: #fff; border-radius: 8px; width: 34px; height: 34px; font-size: var(--fs-icon); line-height: 1; cursor: pointer; }
.claim-close:hover { background: rgba(255, 255, 255, .12); }
@media (max-width: 560px) {
  .claim-inner { flex-wrap: wrap; gap: 6px 8px; padding-top: 8px; padding-bottom: 8px; }
  .claim-text { flex-basis: calc(100% - 46px); font-size: var(--fs-xs); line-height: 1.35; }
  .claim-close { order: 2; }
  .claim-cta { order: 3; flex: 1; }
}
/* Sticky check bar (home), after AirHelp's measured behaviour: hidden at the
   top, a 0.3s fade plus a slide of its own height after 100px of scroll,
   hidden while the footer is on screen, no close button. It lives in a fixed
   bottom dock, so it never moves the page, and the language suggestion joins
   the same dock below it instead of covering it. Only opacity and transform
   change. The dock and bar let clicks through; only the card takes them. */
.bottom-dock { position: fixed; inset-inline: 0; bottom: 0; z-index: 6; display: flex; flex-direction: column; pointer-events: none; }
.bottom-dock .lang-suggest { position: relative; pointer-events: auto; }
.cta-bar { pointer-events: none; opacity: 0; transform: translateY(100%); visibility: hidden; transition: opacity .3s ease-out, transform .3s ease-out, visibility 0s linear .3s; }
.cta-bar.on { opacity: 1; transform: none; visibility: visible; transition: opacity .3s ease-out, transform .3s ease-out, visibility 0s; }
.cta-bar-card { pointer-events: auto; box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; gap: var(--sp-5); width: min(1216px, calc(100% - 64px - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px))); min-height: 104px; margin: 0 auto calc(32px + env(safe-area-inset-bottom, 0px)); padding: 16px clamp(24px, 4.5vw, 64px); border-radius: 32px; background: var(--cta); color: #fff; }
.cta-bar-h { margin: 0 0 6px; font-size: var(--fs-xl); font-weight: 700; line-height: 1.25; }
.cta-bar-points { display: flex; flex-wrap: wrap; gap: 4px 24px; margin: 0; padding: 0; list-style: none; font-size: var(--fs-md); }
.cta-bar-points li { display: inline-flex; align-items: center; gap: 6px; }
.cta-bar-check { flex: none; color: #fff; }
.cta-bar :focus-visible { outline-color: #fff; }
@media (max-width: 767px) {
  .cta-bar-card { display: block; width: auto; min-height: 0; margin: 0 max(16px, env(safe-area-inset-right, 0px)) calc(16px + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px)); padding: 0; border-radius: 0; background: none; }
  .cta-bar-copy { display: none; }
  .cta-bar :focus-visible { outline-color: var(--teal-2); }
}
@media (prefers-reduced-motion: reduce) { .cta-bar, .cta-bar.on { transition: none; } }
.lang-suggest { padding: 0 env(safe-area-inset-right, 0px) env(safe-area-inset-bottom, 0px) env(safe-area-inset-left, 0px); }
@media print { .claim-bar, .lang-btn, .footer-lang, .lang-suggest, .cta-bar { display: none; } }

/* Claim dashboard */
.dash h3 { margin-top: 1.6em; }
.dash .next-step h3, .dash .next-step h2 { margin-top: 0; }
.eyebrow { font-size: var(--fs-xs); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--cta); margin: 0 0 4px; }
.next-step { border-inline-start: 4px solid var(--teal); }
.next-step > .btn { margin-top: var(--sp-2); }
.secondary-actions { margin: 12px 0 0; display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; }
.link-btn { font: inherit; font-size: var(--fs-md); background: none; border: 0; padding: 2px 0; color: var(--navy-2); text-decoration: underline; cursor: pointer; }
.link-btn:hover { color: var(--ink); }
.link-btn.danger { color: var(--red); }
.actions-row { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; }
.back { margin: 0 0 8px; }
.claim-h { margin-bottom: 4px; }
.meta .status-pill { margin-inline-start: 4px; }
.status-pill { display: inline-block; font-size: var(--fs-xs); font-weight: 700; padding: 3px 9px; border-radius: 999px; white-space: nowrap; background: var(--tint); color: var(--ink); border: 1px solid var(--line); }
.status-sent { background: var(--teal-bg); color: var(--cta); border-color: var(--teal-bg); }
.status-reply { background: var(--amber-bg); color: var(--amber); border-color: var(--amber-bg); }
.status-escalated { background: var(--tint); color: var(--navy); }
.status-closed { background: var(--green-bg); color: var(--green); border-color: var(--green-bg); }
.claim-list { list-style: none; padding: 0; margin: 0 0 18px; display: grid; gap: 10px; }
.claim-list a { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; color: var(--ink); text-decoration: none; }
.claim-list a:hover { border-color: var(--teal); }
.claim-title { font-weight: 700; }
.claim-meta, .claim-list .hint { grid-column: 1; color: var(--muted); font-size: var(--fs-sm); }
.claim-list .status-pill { grid-column: 2; grid-row: 1; align-self: start; }
.deadlines { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.dl { display: grid; gap: 2px; background: #fff; border: 1px solid var(--line); border-inline-start: 4px solid var(--teal); border-radius: 10px; padding: 10px 14px; }
.dl-label { font-size: var(--fs-sm); font-weight: 600; color: var(--muted); }
.dl-count { font-size: var(--fs-sm); font-weight: 600; color: var(--cta); }
.dl-passed { border-inline-start-color: var(--red); }
.dl-passed .dl-count { color: var(--red); }
.dl-met, .dl-closed, .dl-pending { border-inline-start-color: var(--line); }
.dl-done { color: var(--green); }
.timeline { list-style: none; padding: 0; margin: 0; counter-reset: tl; }
.tl { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; padding-block: 8px; padding-inline: 36px 0; min-height: 44px; }
.tl::before { counter-increment: tl; content: counter(tl); position: absolute; inset-inline-start: 0; top: 9px; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font-size: var(--fs-xs); font-weight: 700; background: #fff; border: 2px solid var(--line); color: var(--muted); }
.tl-done::before { content: "\2713"; background: var(--teal-bg); border-color: var(--teal); color: var(--cta); }
.tl-current::before { background: var(--cta); border-color: var(--cta); color: #fff; }
.tl-current .tl-name { font-weight: 700; }
.tl-name { min-width: 170px; }
.tl input[type="date"] { width: auto; padding: 6px 10px; }
.ticks { list-style: none; padding: 0; margin: 0; }
.ticks .check { margin: 4px 0 10px; }
.flight-details summary, .data-tools summary { cursor: pointer; font-weight: 600; color: var(--navy-2); }
.flight-details[open] summary { margin-bottom: 12px; }
.data-tools { margin: 18px 0; }
.dfy-teaser { background: var(--tint); }
.dfy-teaser h3 { margin-top: 0; }
.pill-soon { background: var(--amber-bg); color: var(--amber); }
.track { border-inline-start: 4px solid var(--teal); }
.track h3 { margin-top: 0; }
dialog.dfy { max-width: 560px; width: calc(100% - 32px); border: 1px solid var(--line); border-radius: var(--radius); padding: 22px 24px; color: var(--ink); box-shadow: var(--shadow); }
dialog.dfy::backdrop { background: rgba(18, 52, 59, .45); }
.dfy-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.dfy-head h2 { margin: 0; }
.dfy-close { font-size: var(--fs-icon); line-height: 1; background: none; border: 0; color: var(--ink); cursor: pointer; min-width: 44px; min-height: 44px; }
.dfy-terms { display: grid; grid-template-columns: max-content 1fr; gap: 6px 14px; margin: 14px 0; }
.dfy-terms dt { font-weight: 700; }
.dfy-terms dd { margin: 0; }
.waitlist label { display: block; font-weight: 600; margin-bottom: 6px; }
@media (max-width: 480px) {
  .dfy-terms { grid-template-columns: 1fr; }
  .dfy-terms dd { margin-bottom: 6px; }
  dialog.dfy { padding: 18px; }
  .claim-list a { grid-template-columns: 1fr; }
  .claim-list .status-pill { grid-column: 1; grid-row: auto; justify-self: start; }
}
@media print { .dfy-teaser, .data-tools, dialog.dfy { display: none; } }

/* Right-to-left locales (Arabic): layout uses logical properties; these flip what they cannot */
[dir="rtl"] a[target="_blank"]::after { content: "\2196"; content: "\2196" / ""; }
[dir="rtl"] .verdict-likely { background: linear-gradient(270deg, var(--green-bg), #fff 60%); }
[dir="rtl"] .verdict-unclear { background: linear-gradient(270deg, var(--amber-bg), #fff 60%); }
[dir="rtl"] .verdict-unlikely { background: linear-gradient(270deg, var(--red-bg), #fff 60%); }
