/* Fly2Here brand: navy #0B1F3A, amber #FFB627, teal #0C7C7E. Bricolage Grotesque (display) + DM Sans (text). */
:root{
  --bg:#EEF3F8; --surface:#FFFFFF; --ink:#0B1F3A; --muted:#4A5D78; --line:#D5DFEB;
  --hero:#0B1F3A; --hero-sub:#A9BDD6; --tile:#16315A;
  --accent:#0C7C7E; --accent-ink:#FFFFFF; --soft:#E2F1F1;
  --amber:#FFB627; --amber-ink:#0B1F3A;
  --band:#0C7C7E; --band-ink:#FFFFFF;
  --display:'Bricolage Grotesque','Helvetica Neue',Arial,sans-serif;
  --body:'DM Sans','Helvetica Neue',Arial,sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#071428; --surface:#0F2747; --ink:#EAF1FA; --muted:#A9BDD6; --line:#1F3C66;
  --accent:#35C2C4; --accent-ink:#07213A; --soft:#0F3340; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#071428; --surface:#0F2747; --ink:#EAF1FA; --muted:#A9BDD6; --line:#1F3C66;
  --accent:#35C2C4; --accent-ink:#07213A; --soft:#0F3340; color-scheme:dark}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.5;padding-inline:16px;padding-block:16px 40px}
.wrap{max-width:1080px;margin-inline:auto}
a{color:var(--accent)}
:focus-visible{outline:2px solid var(--amber);outline-offset:2px}

/* Hero and header bar */
.hero,.bar{background:var(--hero);color:#fff;border-radius:24px;position:relative;overflow:hidden;border:1px solid var(--line)}
.hero{padding:22px 28px 34px;margin-bottom:16px}
.bar{padding:14px 22px;margin-bottom:18px}
.hero-top,.bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.lockup{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:#fff}
.lockup .word{font-family:var(--display);font-weight:800;font-size:30px;line-height:1;letter-spacing:-.035em;color:#fff}
.lockup .word span{color:var(--amber)}
.hero nav a,.bar nav a{color:var(--hero-sub);text-decoration:none;font-size:14px;margin-left:18px}
.hero nav a:hover,.bar nav a:hover{color:#fff}
.hero h1{position:relative;font-family:var(--display);font-weight:800;font-size:clamp(30px,5.2vw,54px);line-height:1.04;letter-spacing:-.035em;margin:34px 0 12px;max-width:620px;text-wrap:balance}
.hero h1 em{font-style:normal;color:var(--amber)}
.hero p{position:relative;margin:0;color:var(--hero-sub);font-size:16px;max-width:520px}
.trail{position:absolute;right:16px;top:14px;width:360px;height:auto;pointer-events:none}
@media (max-width:900px){.trail{display:none}}

.notice{font-size:13px;color:var(--muted);margin:0 4px 16px}
.notice b{color:var(--ink);font-weight:600}

/* Planner and results */
main.tool{display:grid;grid-template-columns:320px minmax(0,1fr);gap:22px;align-items:start}
@media (max-width:820px){main.tool{grid-template-columns:minmax(0,1fr)}}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:18px;position:sticky;top:env(safe-area-inset-top,0px)}
@media (max-width:820px){.panel{position:static}}
.panel h2{font-family:var(--display);font-weight:800;font-size:22px;line-height:1.15;margin:0;letter-spacing:-.02em}
label,.lab{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px}
.lab output{font-family:var(--display);font-weight:800;font-size:18px;color:var(--ink);letter-spacing:-.01em;text-transform:none;font-variant-numeric:tabular-nums}
select,input[type=email]{width:100%;font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
input[type=range]{width:100%;accent-color:var(--accent)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font:inherit;font-size:13px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:5px 12px;cursor:pointer}
.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.board-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.board-head h2{font-family:var(--display);font-weight:800;font-size:22px;letter-spacing:-.02em;margin:0}
.count{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.list{display:flex;flex-direction:column;gap:10px}
.trip{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px 16px;display:grid;grid-template-columns:78px minmax(0,1fr) auto;gap:14px;align-items:center}
@media (max-width:560px){.trip{grid-template-columns:62px minmax(0,1fr)}.price{grid-column:1/-1;text-align:left!important;display:flex;justify-content:space-between;align-items:center;gap:10px}}
.code{font-family:var(--display);font-weight:800;font-size:28px;letter-spacing:-.02em;line-height:1}
.code small{display:block;margin-top:5px;font-family:var(--body);font-size:12px;font-weight:500;color:var(--muted);letter-spacing:0}
.dest{min-width:0}
.dest h3{margin:0;font-family:var(--display);font-weight:700;font-size:18px;line-height:1.2;letter-spacing:-.01em}
.dest p{margin:2px 0 6px;color:var(--muted);font-size:13px}
.meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px}
.pill{border:1px solid var(--line);border-radius:999px;padding:1px 9px;color:var(--muted)}
.pill.season{background:var(--amber);border-color:var(--amber);color:var(--amber-ink);font-weight:600}
.price{text-align:right}
.total{font-family:var(--display);font-weight:800;font-size:26px;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1}
.break{font-size:12px;color:var(--muted)}
.go{display:inline-block;margin-top:8px;font-size:13px;font-weight:600;color:var(--amber-ink);background:var(--amber);padding:8px 15px;border-radius:10px;text-decoration:none}
.go:hover{filter:brightness(.95)}
.empty{background:var(--surface);border:1px dashed var(--line);border-radius:16px;padding:28px 18px;text-align:center;color:var(--muted)}

/* How it works */
.how{margin-top:30px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
@media (max-width:700px){.how{grid-template-columns:minmax(0,1fr)}}
.how h3{font-family:var(--display);font-weight:700;font-size:18px;margin:0 0 4px;letter-spacing:-.01em}
.how p{margin:0;color:var(--muted);font-size:14px}

/* Signup band */
.capture{margin-top:30px;background:var(--band);color:var(--band-ink);border-radius:24px;padding:24px 26px;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}
.capture h3{margin:0 0 2px;font-family:var(--display);font-weight:800;font-size:22px;letter-spacing:-.025em}
.capture p{margin:0;font-size:14px;color:#D7F0F0}
.capture form{display:flex;gap:8px;flex:1 1 280px;max-width:440px}
.capture input[type=email]{background:#fff;color:#0B1F3A;border-color:#fff}
.capture button{font:inherit;font-weight:700;color:var(--amber-ink);background:var(--amber);border:0;border-radius:10px;padding:10px 16px;cursor:pointer}
#msg{font-size:13px;color:#fff;flex-basis:100%}

/* Footer and text pages */
footer.foot{margin-top:34px;padding-top:18px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:10px 18px;justify-content:space-between;align-items:center;font-size:13px;color:var(--muted)}
footer.foot a{color:var(--muted)}
.foot-brand{display:inline-flex;align-items:center;gap:8px;font-family:var(--display);font-weight:800;font-size:18px;letter-spacing:-.03em;color:var(--ink)}
.foot-brand span{color:var(--accent)}
.prose{max-width:680px;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:24px}
.prose h1{font-family:var(--display);font-weight:800;font-size:30px;margin:0 0 10px;letter-spacing:-.03em}
.prose h2{font-family:var(--display);font-weight:700;font-size:18px;margin:22px 0 6px;letter-spacing:-.01em}
.prose p,.prose li{font-size:15px}
.prose ul{padding-left:20px}
@media (prefers-reduced-motion:no-preference){.trip{transition:border-color .15s}.trip:hover{border-color:var(--accent)}}
