:root {
  --bg: #ffffff;
  --surface: #f2f2f2;
  --ink: #0a0a0a;
  --ink-2: #111827;
  --accent: #2563eb;
  --accent-deep: #1d4ed8;
  --muted: #6b7280;
  --line: #e2e2e2;
  --line-ink: #0a0a0a;
  --on-dark: #f5f5f5;
  --on-dark-muted: #a3a3a3;
  --font: "Archivo", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --wrap: 1280px;
  --gut: clamp(20px, 4vw, 40px);
  --sec: clamp(72px, 9vw, 128px);
  --header-h: 72px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 16px); }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font: 400 17px/1.62 var(--font);
  font-stretch: 100%;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
p { margin: 0 0 1em; }
h1, h2, h3, h4 { margin: 0; font-weight: 800; letter-spacing: -0.03em; line-height: 1; }
h1, h2, h3 { text-wrap: balance; }
ul, ol { margin: 0; padding: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
[hidden] { display: none !important; }

.skip {
  position: absolute; left: 16px; top: -100px; z-index: 100;
  background: var(--ink); color: #fff; padding: 12px 16px; text-decoration: none; font-weight: 600;
}
.skip:focus { top: 12px; }
.wrap { width: 100%; max-width: calc(var(--wrap) + 2 * var(--gut)); margin: 0 auto; padding: 0 var(--gut); }
.ico { width: 20px; height: 20px; flex: none; }

/* buttons and links */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 0 22px; border: 1px solid var(--accent);
  background: var(--accent); color: #fff; text-decoration: none; font-weight: 600; font-size: 16px;
  letter-spacing: 0; cursor: pointer; transition: background .2s, border-color .2s, color .2s;
}
.btn:hover { background: var(--accent-deep); border-color: var(--accent-deep); }
.btn-ghost { background: transparent; color: var(--ink); border-color: var(--ink); }
.btn-ghost:hover { background: var(--ink); color: #fff; border-color: var(--ink); }
.btn .ico { width: 18px; height: 18px; transition: transform .2s; }
.btn:hover .ico { transform: translateX(3px); }
.link {
  display: inline-flex; align-items: center; gap: 8px; font-weight: 600; text-decoration: none;
  border-bottom: 2px solid var(--ink); padding-bottom: 2px;
}
.link:hover { color: var(--accent); border-color: var(--accent); }
.link .ico { width: 18px; height: 18px; transition: transform .2s; }
.link:hover .ico { transform: translateX(3px); }

/* header */
.site-header {
  position: sticky; top: 0; z-index: 50; background: rgba(255, 255, 255, .96);
  border-bottom: 1px solid var(--line);
  backdrop-filter: saturate(140%) blur(10px); -webkit-backdrop-filter: saturate(140%) blur(10px);
}
.site-header[data-scrolled] { border-bottom-color: var(--ink); }
.header-in { display: flex; align-items: center; gap: 32px; height: var(--header-h); }
.logo { display: inline-flex; align-items: center; text-decoration: none; color: var(--ink); }
.logo svg { height: 30px; width: auto; overflow: visible; }
.logo-word { font-family: var(--font); font-weight: 800; font-size: 19px; letter-spacing: -0.02em; font-stretch: 92%; }
.nav { margin-left: auto; }
.nav ul { list-style: none; display: flex; gap: 28px; }
.nav a {
  text-decoration: none; font-weight: 500; font-size: 15px; padding: 6px 0;
  border-bottom: 2px solid transparent; transition: border-color .2s, color .2s;
}
.nav a:hover { border-color: var(--ink); }
.nav a[aria-current="page"] { border-color: var(--accent); }
.header-cta { min-height: 44px; padding: 0 18px; font-size: 15px; }
.menu-btn {
  display: none; margin-left: auto; align-items: center; gap: 10px; min-height: 44px; min-width: 44px;
  padding: 0 12px; background: none; border: 1px solid var(--ink); cursor: pointer; font-weight: 600; font-size: 15px;
}
.menu-btn .burger { position: relative; width: 18px; height: 12px; }
.menu-btn .burger::before, .menu-btn .burger::after, .menu-btn .burger span {
  content: ""; position: absolute; left: 0; right: 0; height: 2px; background: var(--ink); transition: transform .2s, opacity .2s;
}
.menu-btn .burger::before { top: 0; }
.menu-btn .burger span { top: 5px; }
.menu-btn .burger::after { bottom: 0; }
[data-menu="open"] .menu-btn .burger::before { transform: translateY(5px) rotate(45deg); }
[data-menu="open"] .menu-btn .burger span { opacity: 0; }
[data-menu="open"] .menu-btn .burger::after { transform: translateY(-5px) rotate(-45deg); }

/* type helpers */
.eyebrow, .sec-label {
  font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin: 0;
}
.sec-label span { color: var(--accent); margin-right: 10px; }
.display { font-size: clamp(50px, 8.4vw, 128px); line-height: .9; letter-spacing: -0.05em; font-stretch: 84%; }
.h2 { font-size: clamp(38px, 5vw, 72px); line-height: .95; letter-spacing: -0.045em; font-stretch: 86%; }
.lede { font-size: clamp(18px, 1.5vw, 21px); line-height: 1.55; color: var(--ink-2); }
.muted { color: var(--muted); }
.small { font-size: 14px; line-height: 1.55; }

/* sections */
.sec { padding: var(--sec) 0; }
.sec-grey { background: var(--surface); }
.sec-dark { background: var(--ink); color: var(--on-dark); }
.sec-dark .sec-label { color: var(--on-dark-muted); }
.sec-head { display: grid; grid-template-columns: repeat(12, 1fr); gap: 24px; margin-bottom: clamp(40px, 5vw, 64px); }
.sec-head .sec-label { grid-column: 1 / 4; padding-top: 12px; }
.sec-head .h2 { grid-column: 4 / 13; }
.sec-head .sec-intro { grid-column: 4 / 11; margin: 20px 0 0; font-size: 18px; color: var(--muted); max-width: 62ch; }
.sec-dark .sec-head .sec-intro { color: var(--on-dark-muted); }

/* hero */
.hero { padding: clamp(28px, 3.4vw, 48px) 0 0; }
.hero-top { display: grid; grid-template-columns: repeat(12, 1fr); gap: 20px 24px; align-items: end; margin-bottom: clamp(24px, 2.6vw, 36px); }
.hero-top .eyebrow { grid-column: 1 / -1; }
.hero-top h1 { grid-column: 1 / 9; font-size: clamp(46px, 5.7vw, 84px); line-height: .9; }
.hero-top h1 span { display: block; }
.hero-side { grid-column: 9 / 13; padding-bottom: 8px; }
.hero-side p { margin: 0 0 18px; font-size: 18px; line-height: 1.55; color: var(--ink-2); }
.hero-ticks { list-style: none; display: grid; gap: 8px; font-size: 15px; font-weight: 500; }
.hero-ticks li { display: flex; gap: 10px; align-items: center; }
.hero-ticks .ico { width: 18px; height: 18px; color: var(--accent); }
.hero-frame { border: 1px solid var(--ink); background: var(--ink); }
.hero-photo { margin: 0; position: relative; height: clamp(260px, 27vw, 390px); overflow: hidden; background: #222; }
.hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 55%; }
.hero-photo figcaption {
  position: absolute; left: 0; bottom: 0; padding: 10px 14px; background: var(--ink); color: var(--on-dark-muted);
  font-size: 12px; letter-spacing: .12em; text-transform: uppercase;
}
.hero-bar { background: var(--ink); color: var(--on-dark); padding: 22px 24px 18px; }

/* quote form (shared) */
.qf { position: relative; }
.qf label, .qf legend { display: block; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 8px; }
.qf input[type="text"], .qf input[type="email"], .qf input[type="tel"], .qf input[type="date"], .qf select, .qf textarea {
  display: block; width: 100%; min-height: 50px; padding: 12px 14px; border-radius: 0; border: 1px solid #c9c9c9;
  background: #fff; color: var(--ink); font-size: 17px; line-height: 1.3; appearance: none; -webkit-appearance: none;
  transition: border-color .15s, box-shadow .15s;
}
.qf select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%230a0a0a' stroke-width='1.6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; padding-right: 36px;
}
.qf textarea { min-height: 96px; resize: vertical; }
.qf input:hover, .qf select:hover, .qf textarea:hover { border-color: var(--ink); }
.qf input:focus, .qf select:focus, .qf textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(37, 99, 235, .28); }
.qf [aria-invalid="true"] { border-color: #b91c1c !important; }
.qf-err { margin: 6px 0 0; font-size: 14px; font-weight: 500; color: #b91c1c; }
.qf-hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.qf-check { display: flex !important; gap: 12px; align-items: flex-start; margin: 18px 0 0 !important; text-transform: none !important; letter-spacing: 0 !important; font-size: 15px !important; font-weight: 400 !important; line-height: 1.5; cursor: pointer; }
.qf-check input { width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--accent); flex: none; }
.qf-actions { margin-top: 22px; }
.qf-submit, .qf-next {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 54px; padding: 0 28px;
  border: 0; border-radius: 0; background: var(--accent); color: #fff; font-weight: 700; font-size: 17px; cursor: pointer;
  transition: background .2s;
}
.qf-submit:hover, .qf-next:hover { background: var(--accent-deep); }
.qf-submit:disabled { background: #6b7280; cursor: progress; }
.qf-next .ico { width: 18px; height: 18px; }
.qf-legal { margin-top: 16px; font-size: 13px; line-height: 1.55; color: var(--muted); }
.qf-legal p { margin: 0 0 6px; }
.qf-legal a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.qf-fail { margin-top: 18px; padding: 16px 18px; border: 1px solid #b91c1c; background: #fef2f2; color: #7f1d1d; }
.qf-fail p { margin: 0 0 10px; font-size: 15px; }
.qf-fail-title { font-weight: 700; }
.qf-retry { min-height: 44px; padding: 0 18px; border: 1px solid #7f1d1d; background: #fff; color: #7f1d1d; font-weight: 600; cursor: pointer; }
.qf-retry:hover { background: #7f1d1d; color: #fff; }
.qf-done { padding: 28px 0 8px; }
.qf-done:focus { outline: none; }
.qf-done-ico { width: 40px; height: 40px; color: #fff; background: var(--accent); padding: 8px; margin-bottom: 16px; }
.qf-done-title { font-size: 28px; font-weight: 800; letter-spacing: -0.03em; margin: 0 0 8px; }
.qf-done p { font-size: 17px; }
.qf-trip { border: 0; padding: 0; margin: 0 0 18px; }
.qf-seg { display: inline-flex; border: 1px solid var(--ink); }
.qf-opt { margin: 0 !important; position: relative; }
.qf-opt input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.qf-opt span {
  display: block; padding: 12px 18px; font-size: 15px; font-weight: 600; letter-spacing: 0; text-transform: none; cursor: pointer;
  border-left: 1px solid var(--ink);
}
.qf-opt:first-child span { border-left: 0; }
.qf-opt input:checked + span { background: var(--ink); color: #fff; }
.qf-opt input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 2px; }
.qf-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 16px; }
.qf-grid-contact { margin-top: 18px; }
.qf-f-notes { grid-column: 1 / -1; }
.qf-full .qf-f-from, .qf-full .qf-f-to { grid-column: span 1; }

/* compact (hero bar) */
.qf-compact label { color: var(--on-dark-muted); }
.qf-compact input[type="text"], .qf-compact input[type="email"], .qf-compact input[type="tel"], .qf-compact input[type="date"], .qf-compact select, .qf-compact textarea {
  background-color: #161616; border-color: #333; color: #fff; color-scheme: dark;
}
.qf-compact select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23ffffff' stroke-width='1.6'/%3E%3C/svg%3E");
}
.qf-compact input:hover, .qf-compact select:hover, .qf-compact textarea:hover { border-color: #6b6b6b; }
.qf-compact input::placeholder, .qf-compact textarea::placeholder { color: #8a8a8a; }
.qf-compact .qf-err { color: #fca5a5; }
.qf-compact [aria-invalid="true"] { border-color: #f87171 !important; }
.qf-row { display: grid; grid-template-columns: 1.05fr 1.5fr 1.5fr 1.2fr .8fr auto; gap: 12px; align-items: start; }
.qf-compact[data-trip="Round trip"] .qf-row { grid-template-columns: 1.05fr 1.35fr 1.35fr 1.15fr 1.15fr .8fr auto; }
.qf-row .qf-next { margin-top: 26px; min-height: 50px; }
.qf-step2 { margin-top: 20px; padding-top: 20px; border-top: 1px solid #2a2a2a; }
.qf-step2 .qf-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.qf-compact .qf-check { color: var(--on-dark); }
.qf-compact .qf-legal { color: #9a9a9a; margin-top: 14px; }
.qf-compact .qf-done { color: #fff; }
.qf-compact .qf-fail { background: #1f0d0d; color: #fecaca; border-color: #f87171; }
.qf-compact .qf-retry { background: transparent; color: #fecaca; border-color: #fecaca; }

/* value strip */
.values { border-bottom: 1px solid var(--line); }
.values-grid { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); }
.values-grid li { padding: 36px 28px 36px 0; }
.values-grid li + li { padding-left: 28px; border-left: 1px solid var(--line); }
.values-grid .v-num { display: block; font-size: 13px; font-weight: 700; color: var(--accent); letter-spacing: .1em; margin-bottom: 14px; }
.values-grid h3 { font-size: 21px; letter-spacing: -0.02em; margin-bottom: 8px; line-height: 1.15; }
.values-grid p { margin: 0; font-size: 15.5px; color: var(--muted); line-height: 1.55; }

/* aircraft grid */
.cat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 1px solid var(--ink); border-left: 1px solid var(--ink); }
.cat { border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); display: flex; flex-direction: column; background: #fff; }
.cat-photo { aspect-ratio: 4 / 3; overflow: hidden; background: var(--surface); }
.cat-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.cat:hover .cat-photo img { transform: scale(1.03); }
.cat-body { padding: 22px 22px 24px; display: flex; flex-direction: column; gap: 14px; flex: 1; }
.cat-top { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.cat h3 { font-size: 26px; letter-spacing: -0.035em; font-stretch: 90%; }
.cat-tag { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--accent); white-space: nowrap; }
.spec { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); margin: 0; }
.spec div { padding: 12px 10px 0 0; }
.spec dt { font-size: 11.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin-bottom: 4px; }
.spec dd { margin: 0; font-weight: 700; font-size: 16px; letter-spacing: -0.01em; }
.cat-ex { margin: auto 0 0; font-size: 14.5px; color: var(--muted); }
.cat-foot { margin-top: 28px; display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; }
.cat-foot p { margin: 0; color: var(--muted); font-size: 15px; max-width: 70ch; }

/* cost breakdown */
.cost { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(32px, 5vw, 80px); align-items: start; }
.cost-copy p { color: var(--ink-2); }
.cost-copy .h2 { margin: 18px 0 24px; }
.receipt { background: #fff; border: 1px solid var(--ink); }
.receipt-head { display: flex; justify-content: space-between; gap: 16px; padding: 18px 22px; border-bottom: 1px solid var(--ink); }
.receipt-head strong { font-size: 17px; }
.receipt-head span { font-size: 14px; color: var(--muted); text-align: right; }
.receipt table { width: 100%; border-collapse: collapse; font-size: 15.5px; }
.receipt th, .receipt td { text-align: left; padding: 14px 22px; border-bottom: 1px solid var(--line); vertical-align: top; }
.receipt th { font-weight: 600; width: 34%; }
.receipt td:last-child { text-align: right; font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }
.receipt td.how { color: var(--muted); }
.receipt tfoot td, .receipt tfoot th { border-bottom: 0; background: var(--ink); color: #fff; font-size: 16px; }
.receipt-note { padding: 14px 22px; margin: 0; font-size: 13.5px; color: var(--muted); border-top: 1px solid var(--line); }

/* range teaser */
.range { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.range-photo { margin: 0; aspect-ratio: 4 / 5; overflow: hidden; background: var(--surface); }
.range-photo img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.05); }
.bars { list-style: none; margin: 28px 0 32px; display: grid; gap: 14px; }
.bar { display: grid; grid-template-columns: 150px 1fr 130px; gap: 16px; align-items: center; font-size: 15px; }
.bar b { font-weight: 600; }
.bar-track { height: 12px; background: var(--surface); position: relative; }
.bar-fill { position: absolute; inset: 0 auto 0 0; background: var(--ink); }
.bar-fill.is-span::after { content: ""; position: absolute; top: 0; bottom: 0; right: 0; width: var(--span, 0%); background: var(--accent); }
.bar span:last-child { text-align: right; font-variant-numeric: tabular-nums; color: var(--muted); }

/* steps */
.steps { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); counter-reset: s; border-top: 1px solid #2c2c2c; }
.steps li { padding: 32px 28px 8px 0; }
.steps li + li { padding-left: 28px; border-left: 1px solid #2c2c2c; }
.step-n { display: block; font-size: 56px; font-weight: 800; letter-spacing: -0.05em; line-height: 1; color: var(--accent); margin-bottom: 22px; font-stretch: 85%; }
.steps h3 { font-size: 22px; letter-spacing: -0.02em; margin-bottom: 10px; color: #fff; line-height: 1.15; }
.steps p { color: var(--on-dark-muted); font-size: 15.5px; margin: 0; }

/* routes */
.route-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px 24px; }
.route { text-decoration: none; display: flex; flex-direction: column; }
.route-photo { aspect-ratio: 4 / 3; overflow: hidden; background: var(--surface); margin-bottom: 18px; }
.route-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.route:hover .route-photo img { transform: scale(1.03); }
.route-code { font-size: 34px; font-weight: 800; letter-spacing: -0.04em; font-stretch: 85%; line-height: 1; display: flex; align-items: center; gap: 12px; }
.route-code .ico { width: 26px; height: 26px; color: var(--accent); }
.route-name { margin: 8px 0 12px; font-weight: 600; }
.route-meta { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 14.5px; color: var(--muted); padding-top: 12px; border-top: 1px solid var(--line); margin: 0; }
.route-cta { margin-top: 14px; font-weight: 600; font-size: 15px; display: inline-flex; align-items: center; gap: 8px; color: var(--accent); }
.route-cta .ico { width: 18px; height: 18px; transition: transform .2s; }
.route:hover .route-cta .ico { transform: translateX(4px); }

/* standards */
.std-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--ink); }
.std { padding: 28px 24px 0 0; }
.std + .std { padding-left: 24px; border-left: 1px solid var(--line); }
.std .ico { width: 28px; height: 28px; color: var(--accent); margin-bottom: 18px; }
.std h3 { font-size: 21px; letter-spacing: -0.02em; margin-bottom: 10px; line-height: 1.15; }
.std p { font-size: 15.5px; color: var(--muted); margin: 0; }
.std-note { margin-top: 36px; font-size: 15px; color: var(--muted); max-width: 80ch; }
.std-note a { color: var(--ink); }

/* faq */
.faq-wrap { display: grid; grid-template-columns: 4fr 8fr; gap: clamp(32px, 5vw, 80px); align-items: start; }
.faq-wrap .h2 { margin: 18px 0 20px; }
.faq { border-top: 1px solid var(--ink); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-item summary {
  list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 24px;
  padding: 22px 0; cursor: pointer; font-weight: 600; font-size: 19px; letter-spacing: -0.01em; line-height: 1.35;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary:hover { color: var(--accent); }
.faq-ico { width: 22px; height: 22px; flex: none; transition: transform .25s; }
.faq-item[open] .faq-ico { transform: rotate(45deg); }
.faq-a { padding: 0 48px 24px 0; color: var(--ink-2); }
.faq-a p:last-child { margin-bottom: 0; }

/* journal cards */
.post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px 24px; }
.post-card { text-decoration: none; display: flex; flex-direction: column; border-top: 1px solid var(--ink); padding-top: 18px; }
.post-card .pc-photo { aspect-ratio: 3 / 2; overflow: hidden; background: var(--surface); margin-bottom: 20px; order: -1; }
.post-card .pc-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.post-card:hover .pc-photo img { transform: scale(1.03); }
.pc-kicker { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); margin-bottom: 10px; }
.post-card h3 { font-size: 24px; letter-spacing: -0.03em; line-height: 1.12; margin-bottom: 10px; }
.post-card:hover h3 { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.post-card p { color: var(--muted); font-size: 15.5px; margin: 0; }

/* closing cta */
.cta-grid { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(32px, 5vw, 80px); align-items: start; }
.cta-copy .h2 { margin: 18px 0 24px; }
.cta-list { list-style: none; display: grid; gap: 14px; margin: 28px 0 0; }
.cta-list li { display: flex; gap: 12px; align-items: flex-start; font-weight: 500; }
.cta-list .ico { color: var(--accent); margin-top: 2px; }
.form-panel { background: #fff; border: 1px solid var(--ink); padding: clamp(22px, 3vw, 36px); }
.form-panel-title { font-size: 24px; letter-spacing: -0.03em; margin: 0 0 20px; font-weight: 800; }

/* footer */
.site-footer { background: var(--ink); color: var(--on-dark); padding: 72px 0 32px; }
.foot-top { display: grid; grid-template-columns: 5fr 2fr 2fr 3fr; gap: 32px; padding-bottom: 48px; border-bottom: 1px solid #262626; }
.foot-brand .logo { color: #fff; }
.foot-brand p { margin: 18px 0 0; color: var(--on-dark-muted); font-size: 15px; max-width: 40ch; }
.foot-col h2 { font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--on-dark-muted); margin-bottom: 16px; }
.foot-col ul { list-style: none; display: grid; gap: 10px; }
.foot-col a { text-decoration: none; font-size: 15px; }
.foot-col a:hover { text-decoration: underline; text-underline-offset: 3px; }
.foot-legal { padding-top: 28px; display: grid; grid-template-columns: 8fr 4fr; gap: 32px; font-size: 13.5px; color: var(--on-dark-muted); }
.foot-legal p { margin: 0; max-width: 92ch; }
.foot-legal .copy { text-align: right; }

/* inner pages */
.page-head { padding: clamp(48px, 6vw, 88px) 0 clamp(32px, 4vw, 56px); border-bottom: 1px solid var(--line); }
.page-head .display { font-size: clamp(46px, 6.6vw, 100px); margin: 16px 0 0; max-width: 16ch; }
.page-head .lede { margin: 24px 0 0; max-width: 60ch; }
.crumbs { font-size: 14px; color: var(--muted); }
.crumbs a { text-decoration: none; }
.crumbs a:hover { text-decoration: underline; }
.prose { max-width: 720px; min-width: 0; }
.prose h2 { font-size: clamp(28px, 3vw, 38px); letter-spacing: -0.035em; line-height: 1.05; margin: 56px 0 16px; font-stretch: 90%; }
.prose h3 { font-size: 22px; letter-spacing: -0.02em; margin: 32px 0 10px; line-height: 1.2; }
.prose p, .prose li { color: var(--ink-2); }
.prose ul, .prose ol { padding-left: 22px; margin: 0 0 1em; }
.prose li { margin-bottom: 8px; }
.prose a { color: var(--accent); text-underline-offset: 3px; }
.prose code { font-size: .9em; background: var(--surface); padding: 1px 5px; }
.prose .lede { font-size: 20px; color: var(--ink); }
.prose .effective { margin-top: 40px; font-weight: 600; }
.table-wrap { overflow-x: auto; margin: 28px 0; border: 1px solid var(--ink); }
.data { width: 100%; border-collapse: collapse; font-size: 15.5px; min-width: 620px; }
.data caption { text-align: left; padding: 14px 18px; font-weight: 700; border-bottom: 1px solid var(--ink); }
.data th, .data td { padding: 13px 18px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: top; }
.data thead th { background: var(--ink); color: #fff; font-size: 12.5px; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; }
.data tbody tr:last-child td, .data tbody tr:last-child th { border-bottom: 0; }
.data td.num { font-variant-numeric: tabular-nums; white-space: nowrap; }
.fig-note { font-size: 14px; color: var(--muted); margin: -16px 0 28px; }
.two-col { display: grid; grid-template-columns: 8fr 4fr; gap: clamp(32px, 5vw, 80px); align-items: start; }
.aside-box { border: 1px solid var(--ink); padding: 24px; position: sticky; top: calc(var(--header-h) + 24px); }
.aside-box h2 { font-size: 22px; letter-spacing: -0.02em; margin-bottom: 12px; }
.aside-box p { font-size: 15.5px; color: var(--muted); }

/* article */
.art-head { padding: clamp(44px, 5vw, 72px) 0 32px; }
.art-head h1 { font-size: clamp(40px, 5.4vw, 76px); line-height: .98; letter-spacing: -0.045em; font-stretch: 86%; max-width: 20ch; margin: 18px 0 20px; }
.art-meta { font-size: 14px; color: var(--muted); display: flex; gap: 18px; flex-wrap: wrap; }
.art-cover { margin: 0 0 clamp(40px, 5vw, 64px); }
.art-cover img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; }
.art-cover figcaption { font-size: 13.5px; color: var(--muted); padding-top: 10px; }
.art-body { display: grid; grid-template-columns: 3fr 9fr; gap: 24px; }
.art-body .prose { grid-column: 2; }
.art-side { font-size: 14px; color: var(--muted); border-top: 1px solid var(--ink); padding-top: 14px; align-self: start; position: sticky; top: calc(var(--header-h) + 24px); }
.art-side strong { display: block; color: var(--ink); margin-bottom: 6px; }
.cta-block { margin: 48px 0 0; padding: 28px; background: var(--ink); color: #fff; display: grid; gap: 14px; }
.cta-block h2 { color: #fff; margin: 0 !important; font-size: 28px !important; }
.cta-block p { color: var(--on-dark-muted) !important; margin: 0; }
.cta-block .btn { justify-self: start; }
.related { margin-top: 48px; border-top: 1px solid var(--ink); padding-top: 18px; }
.related h2 { margin-top: 0 !important; font-size: 13px !important; letter-spacing: .14em !important; text-transform: uppercase; color: var(--muted); font-weight: 700; }
.related ul { list-style: none; padding: 0 !important; }
.related li { border-bottom: 1px solid var(--line); margin: 0 !important; }
.related a { display: flex; justify-content: space-between; align-items: center; padding: 14px 0; text-decoration: none; font-weight: 600; color: var(--ink) !important; }
.related a:hover { color: var(--accent) !important; }

/* tool */
.tool { border: 1px solid var(--ink); background: #fff; }
.tool-inputs { display: grid; grid-template-columns: 1fr 1fr auto; gap: 16px; padding: 24px; border-bottom: 1px solid var(--ink); align-items: end; background: var(--surface); }
.tool label { display: block; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 8px; }
.tool input, .tool select { display: block; width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid #c9c9c9; border-radius: 0; background: #fff; font-size: 17px; }
.tool input:focus, .tool select:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(37, 99, 235, .28); }
.tool-out { padding: 24px; }
.tool-summary { display: flex; flex-wrap: wrap; gap: 8px 28px; align-items: baseline; margin-bottom: 18px; }
.tool-summary strong { font-size: 30px; letter-spacing: -0.03em; font-weight: 800; }
.tool-summary span { color: var(--muted); }
.fit { font-weight: 700; white-space: nowrap; }
.fit-yes { color: #15803d; }
.fit-maybe { color: #a16207; }
.fit-no { color: #b91c1c; }
.tool-msg { margin: 0; color: var(--muted); }

/* 404 */
.nf { padding: clamp(80px, 12vw, 160px) 0; }
.nf .display { margin: 18px 0 24px; }
.nf-links { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 32px; }


/* inner page components */
.next-list { padding-left: 20px !important; margin: 0 0 8px; display: grid; gap: 12px; font-size: 15.5px; color: var(--ink-2); }
.next-list strong { color: var(--ink); }
.tick-list { list-style: none; display: grid; gap: 10px; font-size: 15.5px; }
.tick-list li { display: flex; gap: 10px; align-items: flex-start; }
.tick-list .ico { color: var(--accent); width: 18px; height: 18px; margin-top: 3px; }
.guides { display: grid; gap: clamp(40px, 5vw, 72px); }
.guide { display: grid; grid-template-columns: 6fr 6fr; gap: clamp(28px, 4vw, 64px); align-items: center; }
.guide-flip .guide-photo { order: 2; }
.guide-photo { aspect-ratio: 4 / 3; overflow: hidden; background: #e5e5e5; }
.guide-photo img { width: 100%; height: 100%; object-fit: cover; }
.guide-body h3 { font-size: clamp(30px, 3vw, 42px); letter-spacing: -0.04em; font-stretch: 88%; }
.guide-ex { color: var(--muted); margin: 8px 0 18px; font-size: 15px; }
.guide-body .spec { margin-bottom: 18px; border-top-color: var(--ink); }
.guide-body > p { color: var(--ink-2); }
.guide-lists { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; border-top: 1px solid var(--line); padding-top: 18px; }
.guide-lists h4 { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin: 0 0 10px; letter-spacing: .12em; }
.guide-lists ul { list-style: none; display: grid; gap: 8px; font-size: 15px; }
.guide-lists li { padding-left: 16px; position: relative; }
.guide-lists li::before { content: ""; position: absolute; left: 0; top: .62em; width: 7px; height: 2px; background: var(--accent); }
.factors { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--ink); border-left: 1px solid var(--line); }
.factors li { padding: 26px 24px 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.factors h3 { font-size: 21px; letter-spacing: -0.02em; margin-bottom: 10px; }
.factors p { margin: 0; color: var(--muted); font-size: 15.5px; }
.cta-band { padding: clamp(56px, 7vw, 96px) 0; }
.cta-band-in { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; flex-wrap: wrap; }
.cta-band .h2 { color: #fff; max-width: 18ch; }
.cta-band p { color: var(--on-dark-muted); margin: 18px 0 0; max-width: 56ch; }
.faq-page { display: grid; gap: 56px; max-width: 960px; }
.faq-group-title { font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); margin-bottom: 8px; }
.toc { margin: 0; padding-left: 18px; display: grid; gap: 8px; }
@media (max-width: 1023px) {
  .guide { grid-template-columns: 1fr; }
  .guide-flip .guide-photo { order: 0; }
  .factors { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 700px) {
  .factors, .guide-lists { grid-template-columns: 1fr; }
  .art-side { display: none; }
}

/* responsive */
@media (max-width: 1100px) {
  .qf-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .qf-compact[data-trip="Round trip"] .qf-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .qf-row .qf-next { margin-top: 26px; }
}
@media (max-width: 1120px) {
  .nav, .header-cta { display: none; }
  .menu-btn { display: inline-flex; }
  [data-menu="open"] .nav {
    display: block; position: fixed; inset: var(--header-h) 0 0 0; background: #fff; padding: 24px var(--gut) 40px;
    border-top: 1px solid var(--ink); overflow-y: auto;
  }
  [data-menu="open"] .nav ul { flex-direction: column; gap: 0; }
  [data-menu="open"] .nav li { border-bottom: 1px solid var(--line); }
  [data-menu="open"] .nav a { display: block; padding: 18px 0; font-size: 30px; font-weight: 800; letter-spacing: -0.03em; border: 0; }
  [data-menu="open"] .nav .nav-cta { display: flex; margin-top: 28px; width: 100%; font-size: 17px; }
  [data-menu="open"] body { overflow: hidden; }
}
@media (max-width: 1023px) {
  .hero-top h1 { grid-column: 1 / -1; }
  .hero-side { grid-column: 1 / -1; }
  .values-grid { grid-template-columns: repeat(2, 1fr); }
  .values-grid li:nth-child(3) { padding-left: 0; border-left: 0; }
  .values-grid li:nth-child(n + 3) { border-top: 1px solid var(--line); }
  .cat-grid { grid-template-columns: repeat(2, 1fr); }
  .cost, .range, .faq-wrap, .cta-grid, .two-col { grid-template-columns: 1fr; }
  .range-photo { aspect-ratio: 16 / 9; }
  .steps { grid-template-columns: repeat(2, 1fr); }
  .steps li:nth-child(3) { padding-left: 0; border-left: 0; }
  .route-grid, .post-grid { grid-template-columns: repeat(2, 1fr); }
  .std-grid { grid-template-columns: repeat(2, 1fr); }
  .std:nth-child(3) { padding-left: 0; border-left: 0; }
  .std:nth-child(n + 3) { margin-top: 28px; }
  .foot-top { grid-template-columns: 1fr 1fr; }
  .foot-brand { grid-column: 1 / -1; }
  .art-body { grid-template-columns: 1fr; }
  .art-body .prose { grid-column: 1; }
  .art-side { position: static; }
  .aside-box { position: static; }
}
@media (min-width: 1121px) { .nav .nav-cta { display: none; } }
@media (max-width: 700px) {
  body { font-size: 17px; }
  .header-in { gap: 12px; }
  .logo svg { height: 27px; }
  .sec-head { display: block; }
  .sec-head .h2 { margin-top: 14px; }
  .hero-photo { height: auto; aspect-ratio: 16 / 10; }
  .hero-ticks { display: none; }
  .hero-side p { margin: 0; }
  .hero-bar { padding: 18px 16px 16px; }
  .qf-row, .qf-compact[data-trip="Round trip"] .qf-row { grid-template-columns: 1fr 1fr; }
  .qf-row .qf-f-trip, .qf-row .qf-f-from, .qf-row .qf-f-to, .qf-row .qf-next { grid-column: 1 / -1; }
  .qf-row .qf-next { margin-top: 4px; width: 100%; }
  .qf-step2 .qf-grid, .qf-grid { grid-template-columns: 1fr; }
  .qf-seg { display: flex; width: 100%; }
  .qf-opt { flex: 1; }
  .qf-opt span { padding: 12px 6px; text-align: center; font-size: 14.5px; }
  .qf-submit { width: 100%; }
  .values-grid { grid-template-columns: 1fr; }
  .values-grid li, .values-grid li + li { padding: 24px 0; border-left: 0; }
  .values-grid li + li { border-top: 1px solid var(--line); }
  .cat-grid, .route-grid, .post-grid, .std-grid { grid-template-columns: 1fr; }
  .std, .std + .std { padding: 24px 0 0; border-left: 0; margin-top: 0; }
  .std + .std { border-top: 1px solid var(--line); margin-top: 24px; }
  .steps { grid-template-columns: 1fr; }
  .steps li, .steps li + li { padding: 28px 0 0; border-left: 0; }
  .steps li + li { border-top: 1px solid #2c2c2c; margin-top: 28px; }
  .bar { grid-template-columns: 1fr 104px; }
  .bar .bar-track { grid-column: 1 / -1; grid-row: 2; }
  .receipt th, .receipt td { padding: 12px 14px; }
  .receipt td.how { display: none; }
  .receipt-head { padding: 14px; flex-direction: column; }
  .receipt-head span { text-align: left; }
  .foot-top { grid-template-columns: 1fr 1fr; }
  .foot-legal { grid-template-columns: 1fr; }
  .foot-legal .copy { text-align: left; }
  .tool-inputs { grid-template-columns: 1fr; }
  .cat-top { flex-direction: column; gap: 6px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
