/* TravelonAir design: clean, calm, professional. No external fonts or images needed. */
:root {
  --ink:#0f172a; --muted:#52607a; --line:#e2e8f0; --bg:#f6f8fc; --white:#fff;
  --brand:#0b4fb3; --brand-dark:#083a86; --navy:#0a2a5c; --navy-deep:#0a1f44; --sky:#e9f1ff;
  --accent:#ffb020; --accent-dark:#f59e0b; --ok:#0e7a4b; --err:#b42318;
  --radius:14px;
  --shadow-sm:0 1px 2px rgba(15,23,42,.06), 0 1px 3px rgba(15,23,42,.08);
  --shadow-md:0 10px 30px rgba(15,23,42,.12);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body { margin:0; font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif; font-size:1rem; line-height:1.65; color:var(--ink); background:#fff; }
[hidden] { display:none !important; }
img, svg { max-width:100%; }
img { height:auto; }
a { color:var(--brand); text-underline-offset:2px; }
a:hover { color:var(--brand-dark); }
:focus-visible { outline:3px solid #1a73d9; outline-offset:2px; border-radius:4px; }
.hero :focus-visible, .site-footer :focus-visible, .delta-panel :focus-visible, .cta-band :focus-visible { outline-color:var(--accent); }
.icon { flex:none; vertical-align:-0.2em; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.skip-link { position:absolute; left:-9999px; top:8px; background:#fff; color:var(--ink); padding:10px 14px; border-radius:8px; z-index:100; box-shadow:var(--shadow-md); }
.skip-link:focus { left:8px; }
.container { width:100%; max-width:1120px; margin:0 auto; padding:0 20px; }
.container.narrow { max-width:860px; }
.muted { color:var(--muted); }

h1, h2, h3 { line-height:1.2; letter-spacing:-.01em; color:var(--navy); }
h1 { font-size:clamp(1.9rem, 4.2vw, 2.7rem); font-weight:800; margin:0 0 .5rem; letter-spacing:-.02em; }
h2 { font-size:clamp(1.4rem, 2.6vw, 1.8rem); font-weight:750; margin:2.2rem 0 .6rem; }
h3 { font-size:1.15rem; font-weight:700; margin:1.4rem 0 .4rem; }
p { margin:0 0 1rem; }
.lead { font-size:1.15rem; color:var(--muted); }

/* ---------- buttons ---------- */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; min-height:46px; padding:.7rem 1.35rem; border:2px solid var(--brand); border-radius:10px; background:var(--brand); color:#fff; font:inherit; font-weight:700; text-decoration:none; cursor:pointer; box-shadow:var(--shadow-sm); transition:transform .12s ease, box-shadow .12s ease, background .12s ease; }
.btn:hover { background:var(--brand-dark); border-color:var(--brand-dark); color:#fff; box-shadow:var(--shadow-md); transform:translateY(-1px); }
.btn-small { min-height:40px; padding:.45rem 1rem; font-size:.95rem; }
.btn-lg { min-height:54px; padding:.85rem 1.7rem; font-size:1.08rem; }
.btn-block { display:flex; width:100%; }
.btn-accent { background:var(--accent); border-color:var(--accent); color:var(--ink); }
.btn-accent:hover { background:var(--accent-dark); border-color:var(--accent-dark); color:var(--ink); }
.btn-ghost { background:transparent; border-color:rgba(255,255,255,.7); color:#fff; box-shadow:none; }
.btn-ghost:hover { background:rgba(255,255,255,.14); border-color:#fff; color:#fff; }
.btn-light { background:#fff; color:var(--brand); border-color:var(--brand); }
.btn-light:hover { background:var(--sky); color:var(--brand-dark); }
.btn[disabled] { opacity:.7; cursor:wait; transform:none; }

/* ---------- header ---------- */
.site-header { position:sticky; top:0; z-index:20; background:rgba(255,255,255,.96); backdrop-filter:saturate(1.4) blur(8px); border-bottom:1px solid var(--line); }
.header-inner { display:flex; flex-wrap:wrap; align-items:center; gap:14px 18px; padding-top:10px; padding-bottom:10px; }
.brand { display:inline-flex; align-items:center; gap:10px; text-decoration:none; color:var(--navy); font-weight:800; font-size:1.3rem; letter-spacing:-.02em; }
.brand:hover { color:var(--navy); }
.brand-mark { display:inline-grid; place-items:center; width:36px; height:36px; border-radius:10px; background:linear-gradient(135deg,#0b4fb3,#1a73d9); color:#fff; box-shadow:var(--shadow-sm); }
.brand-light, .brand-light:hover { color:#fff; }
.nav { display:flex; flex-wrap:wrap; gap:2px 4px; flex:1; justify-content:center; }
.nav a { padding:8px 12px; border-radius:8px; color:var(--ink); text-decoration:none; font-weight:600; font-size:.97rem; }
.nav a:hover { background:var(--sky); color:var(--brand-dark); }
.nav-toggle { display:none; margin-left:auto; background:#fff; border:1px solid var(--line); border-radius:8px; padding:8px 14px; font:inherit; font-weight:600; cursor:pointer; }

/* ---------- page title band (inner pages) ---------- */
.page-hero { background:linear-gradient(180deg,var(--sky),#fff); border-bottom:1px solid var(--line); padding:34px 0 24px; }
.page-hero h1 { margin-bottom:.4rem; }
.page-hero .lead, .page-hero .post-meta { margin:0; }
.main-inner { padding-top:28px; padding-bottom:28px; font-size:1.04rem; line-height:1.75; }
.main-inner h2:first-child { margin-top:0; }
.main-inner ul, .main-inner ol, .prose ul, .prose ol { padding-left:1.3rem; }
.main-inner li, .prose li { margin:.4rem 0; }
.prose img { border-radius:12px; }
.prose figure { margin:1.6rem 0; }
.prose blockquote, .main-inner blockquote { border-left:4px solid var(--brand); background:var(--sky); margin:1.4rem 0; padding:.6rem 1.1rem; border-radius:0 10px 10px 0; color:var(--ink); }
.post-meta { color:var(--muted); font-size:.95rem; }

/* ---------- home hero ---------- */
.hero { color:#fff; padding:52px 0 60px; background:radial-gradient(900px 420px at 88% -8%, rgba(255,255,255,.16), transparent 60%), radial-gradient(600px 300px at 0% 100%, rgba(255,176,32,.16), transparent 60%), linear-gradient(135deg,#0a2a5c 0%,#0b4fb3 62%,#1a73d9 100%); }
.hero h1 { color:#fff; font-size:clamp(2.05rem, 4.8vw, 3.2rem); margin:.4rem 0 1rem; }
.hero a { color:#fff; }
.hero .btn-accent, .hero .btn-accent:hover { color:var(--ink); }
.hero-grid { display:grid; grid-template-columns:1fr; gap:34px; align-items:center; }
.eyebrow { display:inline-block; margin:0; padding:5px 12px; border-radius:999px; background:rgba(255,255,255,.14); font-size:.85rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.hero-lead { font-size:1.2rem; color:#dbe7fb; max-width:34rem; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin:1.4rem 0 .8rem; }
.hero-hours { color:#dbe7fb; font-size:.95rem; }
.hero-points { list-style:none; padding:0; margin:1.2rem 0 0; display:grid; gap:8px; color:#eaf2ff; }
.hero-points li { display:flex; align-items:center; gap:10px; margin:0; }
.hero-points .icon { color:var(--accent); }
.hero-card { background:#fff; color:var(--ink); border-radius:18px; padding:24px; box-shadow:var(--shadow-md); scroll-margin-top:90px; }
.hero-card h2 { margin:0 0 .2rem; font-size:1.45rem; }
.hero-card .muted { margin-bottom:1rem; }
@media (min-width:900px) { .hero-grid { grid-template-columns:1.05fr .95fr; } .hero { padding:68px 0 76px; } }

/* ---------- home sections ---------- */
.section { padding:56px 0; }
.section-tint { background:var(--bg); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.section-head { text-align:center; max-width:42rem; margin:0 auto 28px; }
.section-head h2 { margin:0 0 .4rem; }
.feature-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:18px; }
.feature { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:22px; box-shadow:var(--shadow-sm); }
.feature h3 { margin:.8rem 0 .3rem; }
.feature p { margin:0; color:var(--muted); }
.feature-icon { display:inline-grid; place-items:center; width:48px; height:48px; border-radius:12px; background:var(--sky); color:var(--brand); }
.step-grid { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:18px; }
.step { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:22px; box-shadow:var(--shadow-sm); margin:0; }
.step h3 { margin:.7rem 0 .3rem; }
.step p { margin:0; color:var(--muted); }
.step-num { display:inline-grid; place-items:center; width:38px; height:38px; border-radius:50%; background:var(--brand); color:#fff; font-weight:800; }
.delta-panel { display:grid; gap:24px; background:linear-gradient(135deg,var(--navy-deep),var(--navy)); color:#e8f0ff; border-radius:20px; padding:32px; box-shadow:var(--shadow-md); }
.delta-panel h2 { color:#fff; margin:0 0 .5rem; }
.delta-panel p { color:#d5e2fb; }
.delta-links { display:flex; flex-direction:column; gap:10px; align-content:center; }
.delta-links-title { margin:0 0 4px; font-weight:700; color:#fff; }
.chip-link { display:inline-flex; align-items:center; gap:8px; padding:12px 16px; border-radius:12px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.25); color:#fff; text-decoration:none; font-weight:600; }
.chip-link:hover { background:rgba(255,255,255,.2); color:#fff; }
@media (min-width:800px) { .delta-panel { grid-template-columns:1.3fr 1fr; padding:40px; } }
.cta-band { display:grid; gap:20px; align-items:center; background:linear-gradient(135deg,#0b4fb3,#1a73d9); color:#fff; border-radius:20px; padding:32px; box-shadow:var(--shadow-md); }
.cta-band h2 { color:#fff; margin:0 0 .3rem; }
.cta-band p { margin:0; color:#e3eeff; }
.cta-band-actions { display:flex; flex-wrap:wrap; gap:12px; }
@media (min-width:800px) { .cta-band { grid-template-columns:1fr auto; padding:36px 40px; } }
.faq-more { text-align:center; margin-top:22px; color:var(--muted); }

/* ---------- cards, notices, tables ---------- */
.card { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:20px 22px; margin:18px 0; box-shadow:var(--shadow-sm); }
.card > h2:first-child { margin-top:0; font-size:1.3rem; }
.cta-box { background:var(--sky); border:1px solid #cfe0fb; border-radius:var(--radius); padding:20px 24px; margin:32px 0; }
.cta-box h2 { margin:0 0 .4rem; font-size:1.35rem; }
.cta-box p:last-child { margin-bottom:0; }
.notice { padding:14px 16px; border-radius:10px; margin:16px 0; }
.notice ul { margin:.4rem 0 0; }
.notice.ok { background:#e8f6ee; border:1px solid #b6e0c6; }
.notice.err { background:#fdecec; border:1px solid #f3b8b8; }
.notice.todo { background:#fff7e0; border:1px solid #f0d98a; }
table { width:100%; border-collapse:separate; border-spacing:0; margin:16px 0; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
th, td { text-align:left; padding:12px 14px; border-bottom:1px solid var(--line); }
th { background:var(--sky); color:var(--navy); }
tr:last-child td { border-bottom:0; }
.disclaimer { font-size:.85rem; color:var(--muted); }

.route-card { display:block; text-decoration:none; color:inherit; transition:transform .15s, box-shadow .15s; }
.route-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-md); color:inherit; }
.route-card h3 { margin:.7rem 0 .2rem; color:var(--navy); }
.route-card p { margin:0; color:var(--muted); }

.route-group ul { list-style:none; padding:0; margin:.6rem 0; }
.route-group li { padding:7px 0; border-bottom:1px solid var(--line); margin:0; }
.route-group li:last-child { border-bottom:0; }
.route-group p { margin:.4rem 0 0; }

/* ---------- numbers ---------- */
.stat-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:16px; margin:24px 0; }
.stat { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:18px 20px; text-align:center; box-shadow:var(--shadow-sm); }
.stat strong { display:block; font-size:1.7rem; line-height:1.2; color:var(--brand); }
.stat span { color:var(--muted); }
.stats-band { position:relative; z-index:2; margin-top:-34px; }
.stats-band .stat-grid { margin:0; }
.stats-band .stat { box-shadow:var(--shadow-md); }

/* ---------- FAQ ---------- */
details.faq { background:#fff; border:1px solid var(--line); border-radius:12px; margin:10px 0; box-shadow:var(--shadow-sm); }
details.faq summary { display:flex; justify-content:space-between; align-items:center; gap:12px; cursor:pointer; padding:14px 18px; font-weight:700; color:var(--navy); list-style:none; }
details.faq summary::-webkit-details-marker { display:none; }
details.faq summary::after { content:"+"; font-size:1.5rem; line-height:1; color:var(--brand); }
details.faq[open] summary::after { content:"\2013"; }
details.faq[open] summary { border-bottom:1px solid var(--line); }
details.faq p { margin:0; padding:14px 18px 16px; color:var(--muted); }

/* ---------- forms ---------- */
form.quote .field label, form.contact label { display:block; font-weight:600; font-size:.9rem; margin:0 0 5px; color:var(--navy); }
form.contact label { margin-top:14px; }
form.quote input[type=text], form.quote input[type=date], form.quote input[type=tel], form.quote input[type=email], form.quote select, form.quote textarea,
form.contact input[type=text], form.contact input[type=email], form.contact textarea, .blog-tools input[type=search] { width:100%; min-height:46px; padding:10px 12px; border:1px solid #cbd5e1; border-radius:10px; font:inherit; color:var(--ink); background:#fff; transition:border-color .12s, box-shadow .12s; }
form.quote input:focus, form.quote select:focus, form.quote textarea:focus, form.contact input:focus, form.contact textarea:focus, .blog-tools input:focus { outline:none; border-color:var(--brand); box-shadow:0 0 0 4px rgba(11,79,179,.18); }
form.quote textarea, form.contact textarea { resize:vertical; }
form.quote .trip-type { border:0; padding:0; margin:0 0 14px; display:flex; flex-wrap:wrap; gap:10px; }
form.quote .pill { display:inline-flex; align-items:center; gap:8px; padding:9px 16px; border:1px solid #cbd5e1; border-radius:999px; font-weight:600; cursor:pointer; background:#fff; }
form.quote .pill:has(input:checked) { background:var(--sky); border-color:var(--brand); color:var(--brand-dark); }
form.quote .route-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; align-items:end; margin-bottom:12px; }
.js form.quote .route-row { grid-template-columns:1fr auto 1fr; }
form.quote .grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; }
form.quote .contact-grid { margin-top:12px; }
form.quote .swap-wrap { display:none; }
.js form.quote .swap-wrap { display:block; }
form.quote .swap { min-height:46px; width:46px; border:1px solid #cbd5e1; background:#fff; border-radius:10px; font-size:1.25rem; line-height:1; color:var(--brand); cursor:pointer; }
form.quote .swap:hover { background:var(--sky); }
.hp { position:absolute; left:-9999px; height:0; overflow:hidden; }
form.quote p.post-meta { margin:10px 0; font-size:.85rem; }
@media (max-width:520px) { .js form.quote .route-row, form.quote .route-row { grid-template-columns:1fr; } form.quote .swap { transform:rotate(90deg); width:100%; } }

/* two-step form */
.q-progress { margin:0 0 14px; }
.q-label { margin:0 0 6px; font-weight:700; font-size:.92rem; color:var(--navy); }
.q-bar { height:6px; border-radius:999px; background:var(--line); overflow:hidden; }
.q-bar span { display:block; height:100%; width:50%; border-radius:999px; background:linear-gradient(90deg,var(--brand),#1a73d9); transition:width .25s ease; }
.js form.quote.is-steps:not([data-step]) .q-step-2 { display:none; }
.q-next-wrap { margin:16px 0 0; }
.q-recap { margin:0 0 14px; padding:10px 12px; border-radius:10px; background:var(--sky); color:var(--navy); font-size:.93rem; font-weight:600; }
.q-actions { display:flex; gap:10px; margin:12px 0 0; }
.q-actions .q-back { flex:none; }
.q-actions .btn-block { flex:1; }
@media (max-width:520px) { .q-actions { flex-direction:column-reverse; } .q-actions .q-back { width:100%; } }

/* ---------- blog, contents list, checklist ---------- */
.blog-tools { margin:0 0 22px; }
.chips { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.chip { border:1px solid #cbd5e1; background:#fff; border-radius:999px; padding:7px 15px; font:inherit; font-weight:600; cursor:pointer; color:var(--ink); }
.chip:hover { background:var(--sky); }
.chip.active { background:var(--brand); border-color:var(--brand); color:#fff; }
.post-list { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:18px; }
.post-list li { position:relative; margin:0; padding:20px; background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-sm); transition:transform .15s, box-shadow .15s; display:flex; flex-direction:column; gap:6px; }
.post-list li:hover { transform:translateY(-3px); box-shadow:var(--shadow-md); }
.post-list a { text-decoration:none; color:var(--navy); font-size:1.08rem; line-height:1.35; }
.post-list a::after { content:""; position:absolute; inset:0; }
.post-list li div { color:var(--muted); font-size:.95rem; line-height:1.5; }
.badge { align-self:flex-start; display:inline-block; padding:2px 10px; border-radius:999px; background:var(--sky); color:var(--brand-dark); font-size:.78rem; font-weight:700; letter-spacing:.03em; text-transform:uppercase; }
.post-list .post-meta { font-size:.9rem; }
.post-list .post-excerpt { color:var(--muted); }
.post-list.related { grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); }
@media (min-width:800px) {
  .post-list:not(.related) li:first-child { grid-column:1 / -1; padding:28px 30px; background:linear-gradient(135deg,#fff,var(--sky)); }
  .post-list:not(.related) li:first-child a { font-size:1.6rem; }
  .post-list:not(.related) li:first-child .post-excerpt { font-size:1.05rem; max-width:46rem; }
}
.pager { display:flex; gap:16px; margin:24px 0; align-items:center; }
.toc { background:var(--bg); border:1px solid var(--line); border-radius:12px; padding:14px 20px; margin:0 0 24px; }
.toc ol { margin:6px 0 0; padding-left:20px; }
.toc li { margin:.25rem 0; font-size:.98rem; }
.checklist { list-style:none; padding:0 !important; margin:18px 0; }
.checklist li { margin:8px 0; background:#fff; border:1px solid var(--line); border-radius:12px; padding:12px 14px; box-shadow:var(--shadow-sm); }
.checklist label { display:flex; gap:12px; align-items:flex-start; cursor:pointer; }
.checklist input { margin-top:5px; width:20px; height:20px; flex:none; accent-color:var(--brand); }

/* ---------- footer ---------- */
.site-footer { background:var(--navy-deep); color:#c7d4ec; margin-top:24px; padding:44px 0 90px; font-size:.97rem; }
.site-footer a { color:#e6eefc; text-decoration:none; }
.site-footer a:hover { color:#fff; text-decoration:underline; }
.footer-grid { display:grid; grid-template-columns:1fr; gap:28px; }
.footer-brand p { margin:.8rem 0 0; max-width:26rem; }
.footer-contact { line-height:2; }
.footer-col h2 { font-size:.85rem; letter-spacing:.08em; text-transform:uppercase; color:#8fa6cf; margin:0 0 .6rem; }
.footer-col a { display:block; padding:4px 0; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.12); margin-top:28px; padding-top:18px; }
.footer-bottom .disclaimer, .site-footer .disclaimer { color:#9fb2d6; }
.footer-bottom p { margin:0 0 .6rem; }
@media (min-width:800px) { .footer-grid { grid-template-columns:1.6fr 1fr 1fr; } .site-footer { padding-bottom:44px; } }

/* ---------- sticky call bar (phones only) ---------- */
.callbar { display:none; }
@media (max-width:1060px) {
  .js .nav-toggle { display:inline-block; }
  .js .nav { display:none; flex-basis:100%; flex-direction:column; gap:2px; padding:8px 0; order:5; }
  .js .nav.open { display:flex; }
  .js .nav a { padding:12px; }
}
@media (max-width:700px) {
  .header-call { display:none; }
  .callbar { display:flex; position:fixed; left:0; right:0; bottom:0; z-index:30; gap:8px; padding:8px 10px calc(8px + env(safe-area-inset-bottom)); background:#fff; border-top:1px solid var(--line); box-shadow:0 -4px 14px rgba(15,23,42,.10); }
  .callbar a { flex:1; display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:46px; border-radius:10px; text-decoration:none; font-weight:700; }
  .callbar-call { background:var(--accent); color:var(--ink); }
  .callbar-quote { border:2px solid var(--brand); color:var(--brand); }
  body { padding-bottom:72px; }
  .btn-lg { width:100%; }
  .hero-actions .btn { width:100%; }
  .section { padding:40px 0; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *, *::before, *::after { transition:none !important; animation:none !important; } }
@media print {
  .site-header, .site-footer, .callbar, .no-print, .toc, .page-hero .lead { display:none !important; }
  body { padding:0; }
}
