:root{
  --bg:#F4F6F3; --surface:#FFFFFF; --ink:#111A20; --muted:#5A6770; --line:#DCE2DE;
  --accent:#2344D9; --accent-ink:#FFFFFF; --accent-soft:#E6EBFD;
  --stamp:#F2A31B; --stamp-ink:#1F1600; --good:#1C7C54;
  --radius:14px;
  --display:"Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;
  --body:"Instrument Sans", "Segoe UI", system-ui, sans-serif;
  --mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --bg:#0C1115; --surface:#141B21; --ink:#E7ECEE; --muted:#95A3AB; --line:#25303A;
    --accent:#8EA4FF; --accent-ink:#0B1030; --accent-soft:#1B2447;
    --stamp:#F5B942; --stamp-ink:#1F1600; --good:#5FD1A0;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0C1115; --surface:#141B21; --ink:#E7ECEE; --muted:#95A3AB; --line:#25303A;
  --accent:#8EA4FF; --accent-ink:#0B1030; --accent-soft:#1B2447;
  --stamp:#F5B942; --stamp-ink:#1F1600; --good:#5FD1A0;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 var(--body);padding-inline:20px;padding-block:0 48px}
.wrap{max-width:1120px;margin:0 auto}
h1,h2,h3{font-family:var(--display);margin:0;line-height:1.1;text-wrap:balance}
a{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}

header.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:22px 8px}
.logo{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:800;font-size:1.35rem;letter-spacing:-.01em}
.logo svg{flex:none}
.top small{color:var(--muted);font-size:.85rem;text-align:right}
@media (max-width:480px){.top small{max-width:9rem;font-size:.78rem}}

.intro{padding-block:22px 26px;max-width:720px}
.intro h1{font-size:clamp(2rem,5.5vw,3.3rem);font-weight:800;letter-spacing:-.02em}
.intro p{color:var(--muted);margin:14px 0 0;font-size:1.05rem;max-width:60ch}

.layout{display:grid;grid-template-columns:340px 1fr;gap:28px;align-items:start}
@media (max-width:880px){.layout{grid-template-columns:1fr}}

.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;display:grid;gap:24px;position:sticky;top:calc(env(safe-area-inset-top,0px) + 16px)}
@media (max-width:880px){.panel{position:static}}
.field{display:grid;gap:10px}
.label{font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.dests{display:flex;flex-wrap:wrap;gap:6px}
.dest{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:999px;padding:6px 11px 6px 7px;font:500 .88rem var(--body);cursor:pointer}
.dest .cc{font:600 .7rem var(--mono);background:var(--accent-soft);color:var(--accent);padding:2px 5px;border-radius:5px}
.dest[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.dest[aria-pressed="true"] .cc{background:rgba(255,255,255,.22);color:var(--accent-ink)}
.days{display:flex;align-items:center;gap:12px}
.days input[type=range]{flex:1;accent-color:var(--accent)}
.days output{font:600 1.25rem var(--mono);min-width:5.2ch;text-align:right}
.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.seg button{border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:10px;padding:9px 6px;font:600 .9rem var(--body);cursor:pointer;display:grid;gap:2px}
.seg button small{font:500 .72rem var(--mono);color:var(--muted)}
.seg button[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.seg button[aria-pressed="true"] small{color:var(--accent)}
.hint{font-size:.85rem;color:var(--muted);margin:0}
.need{border-top:1px dashed var(--line);padding-top:18px;display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.need b{font:600 1.6rem var(--mono)}

.results-head{display:flex;justify-content:space-between;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.results-head h2{font-size:1.5rem}
.results-head p{margin:4px 0 0;color:var(--muted);font-size:.92rem}
.list{display:grid;gap:12px}

.ticket{display:grid;grid-template-columns:1fr 210px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);position:relative;overflow:hidden}
.ticket .main{padding:18px 20px;display:grid;gap:8px;min-width:0}
.ticket .stub{padding:18px 20px;border-left:2px dashed var(--line);display:grid;align-content:center;justify-items:end;gap:10px}
.ticket::before,.ticket::after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:var(--bg);border:1px solid var(--line);right:calc(210px - 10px)}
.ticket::before{top:-10px}.ticket::after{bottom:-10px}
.ticket .row1{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ticket h3{font-size:1.25rem;font-weight:800}
.rank{font:600 .78rem var(--mono);color:var(--muted)}
.badge{font:600 .72rem var(--body);letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:6px;background:var(--accent-soft);color:var(--accent)}
.badge.best{background:var(--stamp);color:var(--stamp-ink)}
.plan{font-size:1rem}
.meta{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--muted);font-size:.86rem}
.alt{font-size:.86rem;color:var(--muted)}
.price{font:600 2rem var(--mono);line-height:1;letter-spacing:-.02em}
.perday{font:500 .8rem var(--mono);color:var(--muted)}
.buy{display:inline-flex;align-items:center;gap:6px;text-decoration:none;background:var(--accent);color:var(--accent-ink);padding:9px 14px;border-radius:999px;font-weight:600;font-size:.9rem;white-space:nowrap}
.buy:hover{filter:brightness(1.08)}
.ticket.top{border-color:var(--stamp)}
@media (max-width:560px){
  .ticket{grid-template-columns:1fr}
  .ticket .stub{border-left:0;border-top:2px dashed var(--line);justify-items:stretch;grid-template-columns:1fr auto;align-items:center;min-width:0}
  .ticket::before,.ticket::after{display:none}
  .ticket .stub .buy{grid-column:1/-1;justify-content:center}
}
.empty{padding:22px;border:1px dashed var(--line);border-radius:var(--radius);color:var(--muted)}

details.all{margin-top:22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
details.all summary{cursor:pointer;padding:16px 20px;font-weight:600}
.tablewrap{overflow-x:auto;padding:0 20px 18px}
table{border-collapse:collapse;width:100%;font-size:.9rem;min-width:460px}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}
th{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
td.n{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right}
th.n{text-align:right}

.guide{margin-top:48px;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media (max-width:880px){.guide{grid-template-columns:1fr}}
.guide h3{font-size:1.1rem;margin-bottom:8px}
.guide p{margin:0;color:var(--muted);font-size:.93rem}
footer{margin-top:44px;padding-top:20px;border-top:1px solid var(--line);color:var(--muted);font-size:.82rem;display:grid;gap:6px}
@media (prefers-reduced-motion: reduce){*{transition:none!important}}
.pricebox{text-align:right}
nav.site{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:20px 6px;flex-wrap:wrap}
nav.site .links{display:flex;gap:20px;list-style:none;margin:0;padding:0;font-size:.95rem}
nav.site .links a{color:var(--ink);text-decoration:none}
nav.site .links a:hover{color:var(--accent)}
@media (max-width:560px){nav.site .links li.opt{display:none}}
.logo{text-decoration:none;color:var(--ink)}
.logo em{font-style:normal;color:var(--accent)}
.checked{color:var(--muted);font-size:.82rem}
.crumbs{font-size:.85rem;color:var(--muted);padding-top:18px}
.crumbs a{color:var(--muted)}
section.block{margin-top:56px}
section.block h2{font-size:clamp(1.5rem,3vw,2rem);margin-bottom:10px}
section.block > p.lede{color:var(--muted);margin:0 0 22px;max-width:62ch}
.grid-dest{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
a.dcard{display:grid;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 18px;text-decoration:none;color:var(--ink)}
a.dcard:hover{border-color:var(--accent)}
a.dcard strong{font-family:var(--display);font-size:1.1rem}
a.dcard span{color:var(--muted);font-size:.86rem}
a.dcard .from{font:600 .95rem var(--mono);color:var(--accent)}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media (max-width:760px){.facts{grid-template-columns:1fr}}
.fact{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px}
.fact small{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600}
.fact b{display:block;font:600 1.5rem var(--mono);margin:6px 0 2px}
.fact span{color:var(--muted);font-size:.88rem}
.prose{max-width:720px}
.prose h2{font-size:1.5rem;margin:36px 0 10px}
.prose h3{font-size:1.15rem;margin:24px 0 6px}
.prose p,.prose li{line-height:1.7}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-bottom:10px;max-width:820px}
.faq summary{cursor:pointer;padding:16px 20px;font-weight:600}
.faq details p{margin:0;padding:0 20px 18px;color:var(--muted)}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;counter-reset:s;list-style:none;padding:0;margin:0}
.steps li{counter-increment:s;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px}
.steps li::before{content:counter(s);display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font:600 .9rem var(--mono);margin-bottom:10px}
.steps strong{display:block;margin-bottom:4px}
.steps span{color:var(--muted);font-size:.92rem}
@media (max-width:760px){.steps{grid-template-columns:1fr}}
.country-more{display:inline-block;margin-top:14px;font-weight:600}
.hero-home{display:grid;grid-template-columns:1.05fr .95fr;gap:36px;align-items:center;padding-block:18px 30px}
.hero-home .intro{padding:0}
.hero-photo{position:relative;margin:0;border-radius:22px;overflow:hidden;aspect-ratio:4/3.4;background:var(--accent-soft);max-width:100%}
.hero-photo img{width:100%;height:100%;object-fit:cover;display:block}
.hero-photo .tag{position:absolute;left:16px;bottom:16px;right:16px;display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--surface);color:var(--ink);border-radius:14px;padding:12px 16px;box-shadow:0 10px 30px -12px rgba(0,0,0,.45)}
.hero-photo .tag small{display:block;color:var(--muted);font-size:.78rem}
.hero-photo .tag b{font:600 1.3rem var(--mono)}
.hero-photo .tag .badge{flex:none}
@media (max-width:880px){.hero-home{grid-template-columns:1fr}.hero-photo{aspect-ratio:16/10}}
a.dcard{padding:0;overflow:hidden}
a.dcard .ph{aspect-ratio:16/10;background:var(--accent-soft);overflow:hidden}
a.dcard .ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}
a.dcard:hover .ph img{transform:scale(1.04)}
a.dcard .tx{display:grid;gap:4px;padding:12px 16px 16px}
.band{position:relative;border-radius:22px;overflow:hidden;min-height:300px;display:grid;align-items:end;margin-bottom:18px;background:#0c1a3a}
.band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.band::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,12,30,.85) 0%,rgba(6,12,30,.55) 45%,rgba(6,12,30,.05) 100%)}
.band .in{position:relative;z-index:1;padding:32px;max-width:520px;color:#fff}
.band h2{color:#fff}
.band p{color:#dfe5f5;margin:10px 0 0}
.chero{position:relative;border-radius:22px;overflow:hidden;margin-top:14px;min-height:320px;display:grid;align-items:end;background:#0c1a3a}
.chero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.chero::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(6,12,30,.9) 0%,rgba(6,12,30,.55) 50%,rgba(6,12,30,.15) 100%)}
.chero .intro{position:relative;z-index:1;padding:28px;color:#fff;max-width:760px}
.chero .intro p,.chero .checked{color:#dfe5f5}
.chero h1{color:#fff}
.facts{margin-top:18px}
.aboutimg{margin:6px 0 10px;border-radius:18px;overflow:hidden;aspect-ratio:16/8;max-width:720px;background:var(--accent-soft)}
.aboutimg img{width:100%;height:100%;object-fit:cover;display:block}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.search{position:relative;flex:1;max-width:340px;display:flex;align-items:center}
.search svg{position:absolute;left:12px;color:var(--muted);pointer-events:none}
.search input{width:100%;font:500 .95rem var(--body);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:10px 14px 10px 38px}
.search input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.search.big{max-width:560px;margin:22px 0 4px}
.search.big input{font-size:1.05rem;padding:15px 18px 15px 44px;box-shadow:0 8px 24px -16px rgba(17,26,32,.4)}
.search.big svg{left:16px;width:20px;height:20px}
.sugg{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:20;list-style:none;margin:0;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 40px -18px rgba(0,0,0,.45);max-height:320px;overflow:auto}
.sugg li{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:10px;cursor:pointer;font-size:.95rem}
.sugg li small{color:var(--muted);font-size:.8rem}
.sugg li[aria-selected="true"],.sugg li:hover{background:var(--accent-soft)}
.sugg li.soon{cursor:default;color:var(--muted)}
.sugg li.soon:hover{background:transparent}
.sugg li.none{cursor:default;color:var(--muted)}
@media (max-width:720px){nav.site .search{order:3;flex-basis:100%;max-width:none}}
select.cur{font:600 .9rem var(--mono);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:9px 12px;cursor:pointer}
select.cur:focus-visible{outline:2px solid var(--accent)}
.fxnote{margin:12px 0 0;font-size:.84rem;color:var(--muted);max-width:70ch}
@media (max-width:720px){nav.site select.cur{order:2}}
.fact b .px,a.dcard .from .px,.hero-photo .tag b .px,td .px{font:inherit;color:inherit}
footer .cols{display:flex;flex-wrap:wrap;gap:8px 20px}
footer a{color:var(--muted)}
