:root{--ink:#1f2a44;--muted:#5a6478;--bg:#fbfaf7;--card:#fff;--line:#e6e3dc;--accent:#e2553a;--accent2:#2d6cdf;--sky:#eaf2ff;--sun:#fff4d6;--night:#ecebff;--ok:#1f7a4d;--r:14px}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:16px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg)}
.wrap{max-width:760px;margin:0 auto;padding:0 16px}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:9}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.hero{background:linear-gradient(160deg,#1f2a44 0%,#33407a 60%,#e2553a 140%);color:#fff;padding:28px 0 64px}
.brand{font-weight:700;letter-spacing:.2px;margin:0 0 8px;opacity:.95}
h1{font-size:1.8rem;line-height:1.2;margin:0 0 10px}
.lede{margin:0;font-size:1.05rem;color:#eef1ff}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;box-shadow:0 6px 24px rgba(31,42,68,.06)}
.form{margin-top:-44px;position:relative}
fieldset{border:0;padding:0;margin:0 0 18px}
legend{font-weight:700;font-size:1.05rem;margin-bottom:8px}
.opt{font-weight:400;color:var(--muted);font-size:.9em}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:520px){.grid2{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:4px}
.field label{font-size:.92rem;font-weight:600}
input,select{font:inherit;color:var(--ink);background:#fff;border:1.5px solid #cfcabf;border-radius:10px;padding:10px 12px;min-height:46px;width:100%}
input:focus,select:focus,button:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #9cc0ff;outline-offset:1px}
.hint{color:var(--muted);font-size:.9rem;margin:8px 0 0}
.tzpick{font-size:.88rem;color:var(--muted);margin-top:2px}.tzpick summary{cursor:pointer;padding:4px 0}
.inline{flex-direction:row;align-items:center;justify-content:space-between;gap:12px}
.stepper{display:flex;align-items:center;gap:6px}.stepper input{width:64px;text-align:center}
.stepper button,.kid button{min-width:44px;min-height:44px;border-radius:10px;border:1.5px solid #cfcabf;background:#fff;font-size:1.2rem;color:var(--ink);cursor:pointer}
.kids{display:flex;flex-direction:column;gap:8px;margin:12px 0}
.kid{display:flex;gap:8px;align-items:flex-end}.kid .field{flex:1}
.check{flex-direction:row;align-items:flex-start;gap:10px;margin-bottom:12px}.check input{width:22px;height:22px;min-height:0;margin-top:2px;flex:none}.check label{font-weight:500}
.btn{font:inherit;font-weight:700;border-radius:12px;padding:12px 16px;border:0;cursor:pointer;min-height:46px}
.primary{background:var(--accent);color:#fff}.primary:hover{background:#c8442b}
.big{width:100%;font-size:1.1rem;padding:14px}
.ghost{background:var(--sky);color:#1b4fae}
.error{color:#b3261e;font-weight:600}
.examples{font-size:.9rem;color:var(--muted);margin:12px 0 0}.examples a{color:#1b4fae}
.result{margin:24px 0}
.result h2{font-size:1.45rem;line-height:1.25;margin:0 0 8px}
.answer{background:var(--sky);border-left:5px solid var(--accent2);padding:12px 14px;border-radius:10px;font-size:1.05rem;margin:0 0 12px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px;padding:0;list-style:none}
.chips li{background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:.9rem}
.chips b{font-weight:700}
.notes{font-size:.88rem;color:var(--muted);margin:0 0 12px;padding-left:18px}
.actions{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.actions .btn{flex:1 1 140px;font-size:.95rem}
.secondary{background:#fff;border:1.5px solid var(--ink);color:var(--ink)}
.toast{font-size:.9rem;color:var(--ok);min-height:1.2em;margin:-10px 0 10px}
.steps{padding-left:0;list-style:none;counter-reset:s;margin:0}
.steps li{counter-increment:s;position:relative;padding:10px 0 10px 44px;border-bottom:1px solid var(--line)}
.steps li:before{content:counter(s);position:absolute;left:0;top:10px;width:32px;height:32px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-weight:700;font-size:.9rem}
.steps strong{display:block}
.sec{margin-top:22px}
.sec>h3{font-size:1.2rem;margin:0 0 4px}
.sec>p.sub{margin:0 0 10px;color:var(--muted);font-size:.95rem}
.day{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;margin:10px 0;break-inside:avoid}
.day h4{margin:0 0 8px;font-size:1.02rem;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.day h4 span{font-weight:500;color:var(--muted);font-size:.9rem}
.day.done{border-color:#bfe3cf;background:#f5fbf7}
table.times{width:100%;border-collapse:collapse;font-size:.95rem;margin:0 0 8px}
.times th,.times td{text-align:left;padding:6px 4px;border-bottom:1px solid var(--line)}
.times th{font-size:.8rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.3px}
.times td:nth-child(n+2){white-space:nowrap;font-variant-numeric:tabular-nums}
ul.items{list-style:none;padding:0;margin:0}
ul.items li{display:flex;gap:10px;padding:5px 0;font-size:.95rem}
ul.items li .ic{flex:none;width:1.4em;text-align:center}
li.seek{background:var(--sun);border-radius:8px;padding:6px 8px}
li.avoid{background:var(--night);border-radius:8px;padding:6px 8px}
.flight{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px 14px}
.groups{display:grid;gap:10px}
.group{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px 14px}
.group h4{margin:0 0 6px}
.group ul{margin:0;padding-left:18px}
.return{background:var(--sun);border-radius:10px;padding:12px 14px}
.content{margin:36px 0}
.content h2{font-size:1.35rem;margin:0 0 8px}
.content h3{font-size:1.05rem;margin:16px 0 4px}
.content p{margin:0 0 10px}
.faq details{border-bottom:1px solid var(--line);padding:6px 0}
.faq summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";font-size:1.4rem;color:var(--muted)}
.faq details[open] summary:after{content:"−"}
.faq summary h3{margin:8px 0;font-size:1rem}
.disclaimer{font-size:.88rem;color:var(--muted);border-top:1px solid var(--line);padding-top:12px}
.foot{font-size:.85rem;color:var(--muted);padding-bottom:32px}
.printonly{display:none}
@media (min-width:700px){h1{font-size:2.3rem}.groups{grid-template-columns:1fr 1fr}}
@media print{
  body{background:#fff;font-size:12pt}
  .hero,.form,.actions,.toast,.content,.foot,.skip,.examples{display:none!important}
  .result{margin:0}.printonly{display:block}
  .day,.group,.flight{box-shadow:none;border:1px solid #bbb;page-break-inside:avoid}
  li.seek,li.avoid{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  a{color:inherit;text-decoration:none}
  .wrap{max-width:none;padding:0}
}
/* ---- guide & route pages ---- */
.hero.slim{padding:18px 0 22px}.hero.slim h1{font-size:1.6rem;margin:6px 0 0}
.brand a{color:#fff;text-decoration:none}
.crumbs{font-size:.85rem;color:var(--muted);margin:14px 0 0}.crumbs ol{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:4px}
.crumbs li+li:before{content:"›";margin-right:4px}.crumbs a{color:#1b4fae}
.page h2{font-size:1.25rem;margin:26px 0 8px}.page h3{font-size:1.05rem;margin:16px 0 6px}
.page p{margin:0 0 10px}.page ul,.page ol{margin:0 0 12px;padding-left:20px}.page li{margin:4px 0}
.facts{list-style:none;padding:0!important;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.facts li{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0!important;font-size:.92rem}
.facts b{display:block;font-size:1.05rem}
@media (max-width:340px){.facts{grid-template-columns:1fr}}
.cta{display:block;text-align:center;text-decoration:none;margin:16px 0}
table.plan{width:100%;border-collapse:collapse;font-size:.88rem;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.plan th,.plan td{padding:7px 6px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.plan th{background:#f3f1ec;font-size:.78rem;text-transform:uppercase;letter-spacing:.3px;color:var(--muted)}
.plan td.t{white-space:nowrap;font-variant-numeric:tabular-nums}
.plan tr.trav td{background:var(--sky)}
.related{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0!important}
.related a{display:inline-block;background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 12px;color:#1b4fae;text-decoration:none;font-size:.92rem}
.hubgroup{margin:18px 0}.hubgroup h3{margin:0 0 8px}
.hublist{list-style:none;padding:0!important;display:grid;gap:6px}
.hublist a{display:flex;justify-content:space-between;gap:8px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 12px;text-decoration:none;color:var(--ink)}
.hublist a span{color:var(--muted);font-size:.88rem;white-space:nowrap}
.faqs dt{font-weight:700;margin-top:12px}.faqs dd{margin:4px 0 0}
