/* Public route, airport and tool pages */
.s-main{padding-bottom:64px}
.s-crumbs{display:flex;flex-wrap:wrap;gap:6px;font-size:13px;color:var(--faint);padding-top:22px}
.s-crumbs a{color:var(--muted);text-decoration:none}.s-crumbs a:hover{color:var(--accent)}
.s-head{padding:14px 0 22px}
.s-head h1{font-size:clamp(34px,5vw,56px);font-weight:800;letter-spacing:-.045em;line-height:1.02}
.s-sub{color:var(--muted);font-size:clamp(16px,1.8vw,19px);margin-top:10px;max-width:60ch}
.s-sub a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.s-card{background:var(--card);border-radius:24px;box-shadow:var(--shadow);padding:22px}
.s-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:18px;align-items:start}
.s-globe{margin:0;padding:0;overflow:hidden}
.s-globe figcaption{padding:12px 20px 16px;font-size:13px;color:var(--muted)}
.g-map{display:block;width:100%;height:auto;background:radial-gradient(70% 70% at 50% 50%,var(--ocean-a),var(--ocean-b))}
.m-ocean{fill:var(--ocean-a)} .m-grat{fill:none;stroke:var(--grat);stroke-width:.7} .m-land{fill:var(--land);stroke:var(--border-map);stroke-width:.5}
.m-route{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:s-draw 1.6s cubic-bezier(.45,0,.2,1) calc(.25s + var(--i,0) * .12s) forwards}
.m-route.soft{stroke-width:1.8;opacity:.75}
.m-dot{fill:var(--card);stroke:var(--accent);stroke-width:2.5} .m-dot.main{fill:var(--accent);stroke:var(--card);stroke-width:3}
.m-lab{font:700 14px var(--f);fill:var(--fg);paint-order:stroke;stroke:var(--card);stroke-width:4px;stroke-linejoin:round}
@keyframes s-draw{to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){.m-route{animation:none;stroke-dashoffset:0}}
.s-facts{display:flex;flex-direction:column;gap:14px}
.k{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}
.s-dist b{display:block;font-family:var(--f-d);font-size:clamp(44px,5vw,60px);font-weight:800;letter-spacing:-.05em;line-height:1.05;margin:4px 0}
.s-dist b small{font-size:.45em;font-weight:600;color:var(--muted);letter-spacing:-.02em}
.s-dist span.num{color:var(--muted)}
.s-dl{margin:0;display:grid;gap:0}
.s-dl div{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--line-soft)}
.s-dl div:first-child{border-top:0;padding-top:0}.s-dl div:last-child{padding-bottom:0}
.s-dl dt{color:var(--muted);font-size:14px}.s-dl dd{margin:0;font-weight:600}
.s-dl dd small{display:block;font-weight:400;color:var(--faint);font-size:13px}
.s-dl a{color:var(--fg);text-decoration:none}.s-dl a:hover{color:var(--accent)}
.s-acts{display:flex;flex-wrap:wrap;gap:10px}
.s-place{display:grid;grid-template-columns:120px 1fr;gap:20px;align-items:center;margin-top:18px}
.s-place img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:16px;display:block}
.s-place p{color:var(--muted)}
.s-place h2{font-size:24px;letter-spacing:-.03em;margin:4px 0 6px}
.s-place.sm{grid-template-columns:84px 1fr;gap:14px;margin:0;padding:14px}
.s-place.sm img{border-radius:12px}
.s-logged{margin-top:18px}.s-logged h2,.s-faq h2,.s-links h2{font-size:22px;letter-spacing:-.025em}
.s-logged .big{font-family:var(--f-d);font-size:36px;font-weight:800;letter-spacing:-.04em;margin:6px 0 4px}
.s-logged .big small{font-size:15px;font-weight:500;color:var(--muted);letter-spacing:0}
.s-logged h3{font-size:13px;color:var(--faint);font-weight:600;margin:14px 0 8px;text-transform:uppercase;letter-spacing:.04em}
.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.chips li{background:var(--fill);border-radius:999px;padding:6px 12px;font-size:14px;font-weight:500}
.chips li span{color:var(--faint);margin-left:4px;font-variant-numeric:tabular-nums}
.s-faq{margin-top:18px}.s-faq h3{font-size:17px;margin:18px 0 6px;letter-spacing:-.015em}.s-faq p{color:var(--muted);max-width:72ch}
.s-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin-top:18px;align-items:start}
.s-links>div{background:var(--card);border-radius:24px;box-shadow:var(--shadow);padding:22px}
.s-links ul{list-style:none;margin:12px 0 0;padding:0}
.s-links li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line-soft);font-size:15px}
.s-links li:first-child{border-top:0}
.s-links li a{color:var(--fg);text-decoration:none;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-links li a:hover{color:var(--accent)}
.s-links li span{color:var(--faint);font-size:13px;white-space:nowrap}
.s-promo{display:grid;grid-template-columns:1fr 200px;gap:28px;align-items:center;margin-top:36px;padding:30px 34px;border-radius:28px;background:var(--g-ink);color:#fff;overflow:hidden}
.s-promo h2{font-size:clamp(26px,3.4vw,36px);letter-spacing:-.035em;line-height:1.08}
.s-promo p{color:rgba(255,255,255,.72);margin:10px 0 20px;max-width:46ch;font-size:16px}
.s-promo img{width:100%;height:auto;border-radius:18px;box-shadow:0 20px 50px rgba(0,0,0,.4);transform:rotate(3deg)}
.s-find{display:flex;gap:10px;margin-top:18px;max-width:420px}
.s-find .input{flex:1}
.s-az{columns:3 260px;column-gap:18px}
.s-az>div{break-inside:avoid;background:var(--card);border-radius:20px;box-shadow:var(--shadow);padding:16px 18px;margin-bottom:18px}
.s-az h2{font-size:17px;letter-spacing:-.015em;scroll-margin-top:70px}
.s-az ul{list-style:none;margin:8px 0 0;padding:0;font-size:14px;line-height:1.75}
.s-az li a{color:var(--fg);text-decoration:none}.s-az li a:hover{color:var(--accent)}.s-az li span{color:var(--faint);font-size:12px}
@media (max-width:860px){
  .s-grid{grid-template-columns:1fr}
  .s-promo{grid-template-columns:1fr;padding:26px 22px}.s-promo img{max-width:150px;justify-self:center}
  .navlinks{display:none}
}
@media (max-width:560px){
  .s-place{grid-template-columns:96px 1fr;gap:14px;padding:14px}.s-place h2{font-size:21px}
  .s-dl div{grid-template-columns:92px 1fr}
  .s-card{padding:18px;border-radius:20px}.s-globe{padding:0}
}

/* distance calculator */
.t-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}
.t-stops{display:flex;flex-direction:column;gap:10px;position:relative}
.t-stop{display:grid;grid-template-columns:18px 1fr auto;gap:10px;align-items:center;position:relative}
.t-stop:not(.last)::after{content:"";position:absolute;left:8px;top:28px;height:calc(100% - 6px);border-left:2px dotted var(--line)}
.t-dot{width:12px;height:12px;border-radius:50%;border:3px solid var(--accent);background:var(--card);justify-self:center;z-index:1}
.t-stop.last .t-dot{background:var(--accent)}
.t-ap{position:relative}.t-ap .input{width:100%}
.t-rm{width:32px;height:32px}
.t-row{display:flex;gap:8px;margin:14px 0 4px;padding-left:28px}
.t-res{margin-top:20px;padding-top:18px;border-top:1px solid var(--line-soft)}
.t-km{display:block;font-family:var(--f-d);font-size:clamp(44px,5vw,58px);font-weight:800;letter-spacing:-.05em;line-height:1.05;margin:4px 0}
.t-km small{font-size:.45em;font-weight:600;color:var(--muted);letter-spacing:-.02em}
.t-time{margin:8px 0 12px;font-weight:600}
.t-legs{list-style:none;margin:0 0 16px;padding:0}
.t-legs li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line-soft)}
.t-legs a{display:flex;flex-direction:column;text-decoration:none;color:var(--fg);min-width:0}
.t-legs a span{font-size:13px;color:var(--muted)}.t-legs a:hover b{color:var(--accent)}
.t-legs .num{font-size:13px;color:var(--faint);white-space:nowrap}
.t-legs .t-direct span{font-size:13px;color:var(--muted)}
.t-globe svg{cursor:grab;touch-action:none}.t-globe svg:active{cursor:grabbing}
.m-route.on{animation-delay:.2s}

/* countries map */
.c-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:18px;align-items:start}
.c-mapcard{padding:12px}
.c-map{display:block;width:100%;height:auto}
.c-sphere{fill:var(--ocean-a);stroke:var(--line-soft)}
.c-land{fill:var(--land);stroke:var(--border-map);stroke-width:.5;cursor:pointer;transition:fill .15s}
.c-land:hover{fill:var(--land-hi)}.c-land:focus-visible{outline:none;stroke:var(--fg);stroke-width:1.5}
.c-land.on{fill:var(--accent)}.c-land.on:hover{fill:color-mix(in srgb,var(--accent) 80%,#000)}
.c-dot{fill:var(--card);stroke:var(--faint);stroke-width:1.2;cursor:pointer}.c-dot.on{fill:var(--accent);stroke:var(--accent)}
.c-find{padding:10px 8px 6px}.c-find .input{width:100%}
.c-side{display:flex;flex-direction:column;gap:14px}
.c-total>b{display:block;font-family:var(--f-d);font-size:72px;font-weight:800;letter-spacing:-.05em;line-height:1}
.c-total>span{display:block}.c-total>span:first-of-type{font-weight:600;font-size:17px;margin-top:2px}
.c-cont{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:8px}
.c-cont li{display:grid;grid-template-columns:1fr auto;gap:2px 10px;font-size:14px}
.c-cont li b small{color:var(--faint);font-weight:500}
.c-cont li i{grid-column:1/-1;height:5px;border-radius:3px;background:linear-gradient(90deg,var(--accent) var(--p),var(--fill) var(--p))}
.c-chips{margin-bottom:6px}
.c-chips button{border:0;background:none;font:inherit;color:inherit;cursor:pointer;padding:0}
.c-chips button span{color:var(--faint);margin-left:2px}
.c-acts{margin-top:14px;padding-top:14px;border-top:1px solid var(--line-soft);display:flex;flex-direction:column;gap:12px}
.c-who{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}

/* import page */
.i-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
.i-drop{min-height:220px}
.i-out{margin-top:14px}
.i-res{display:flex;flex-direction:column;gap:12px}
.i-res h2{font-size:24px;letter-spacing:-.03em}
.i-nums{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.i-nums b{display:block;font-family:var(--f-d);font-size:30px;font-weight:800;letter-spacing:-.04em}
.i-nums span{font-size:13px;color:var(--muted)}
.i-map svg{display:block;width:100%;height:auto}
.i-how h2{font-size:22px;letter-spacing:-.025em;margin-bottom:12px}
.i-how .s-dl div{grid-template-columns:130px 1fr}.i-how dd{font-weight:500}
.s-acts .faint{font-size:13px;align-self:center}
@media (max-width:860px){.t-grid,.c-grid,.i-grid{grid-template-columns:1fr}}
@media (max-width:560px){.i-nums{grid-template-columns:repeat(2,1fr)}.i-how .s-dl div{grid-template-columns:1fr;gap:2px}.c-total>b{font-size:56px}}

/* country fill on the globe, Explore */
.m-fill{fill:color-mix(in srgb,var(--accent) 55%,var(--land));stroke:var(--accent);stroke-width:1}
.x-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}
.x-lb{background:var(--card);border-radius:24px;box-shadow:var(--shadow);padding:22px}
.x-lb h2{font-size:20px;letter-spacing:-.025em;margin-bottom:10px}
.x-lb ol{list-style:none;margin:0;padding:0}
.x-lb li{display:grid;grid-template-columns:22px 1fr auto;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line-soft)}
.x-lb li:first-child{border-top:0}
.x-n{color:var(--faint);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}
.x-lb li:nth-child(-n+3) .x-n{color:var(--accent)}
.x-lb a{display:flex;align-items:center;gap:10px;color:var(--fg);text-decoration:none;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.x-lb a:hover{color:var(--accent)}
.x-av{flex:none;width:30px;height:30px;border-radius:50%;background:var(--g-blue);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:700}
.x-lb b{font-variant-numeric:tabular-nums}
.x-join{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;margin-top:18px}
.x-join h2{font-size:22px;letter-spacing:-.025em}
.c-opts{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:16px;padding-left:28px}
.c-pax{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--muted)}.c-pax .input{width:70px}
.c-tab{width:100%;border-collapse:collapse;margin:14px 0 6px;font-size:14px}
.c-tab th,.c-tab td{text-align:left;padding:8px 10px;border-top:1px solid var(--line-soft)}.c-tab th{color:var(--muted);font-weight:600;font-size:13px}
@media (max-width:560px){.c-tab{font-size:12px}.c-tab th,.c-tab td{padding:6px 4px}}

/* destinations */
.d-hero{position:relative;border-radius:28px;overflow:hidden;min-height:340px;display:flex;align-items:flex-end;margin:6px 0 18px;background:linear-gradient(140deg,#0A84FF,#5E5CE6);color:#fff;isolation:isolate}
.d-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.d-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,0) 35%,rgba(0,0,0,.65))}
.d-hero>div{padding:28px 32px}
.d-hero .k{color:rgba(255,255,255,.8)}
.d-hero h1{font-size:clamp(40px,6vw,72px);font-weight:800;letter-spacing:-.05em;line-height:1}
.d-hero p{font-size:18px;opacity:.9;margin-top:8px}
.d-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:18px}
.d-facts .s-card{display:flex;flex-direction:column;gap:4px}
.d-facts b{font-family:var(--f-d);font-size:32px;font-weight:800;letter-spacing:-.04em}
.d-bars{display:flex;align-items:flex-end;gap:4px;height:70px;margin-top:8px}
.d-bars span{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px}
.d-bars i{display:block;width:100%;height:max(3px,var(--h));border-radius:3px;background:var(--accent);opacity:.8}
.d-bars small{font-size:10px;color:var(--faint)}
.d-aps{display:flex;flex-direction:column;gap:4px;font-size:14px}.d-aps a{color:var(--fg);text-decoration:none}.d-aps a:hover{color:var(--accent)}
.d-trips h2{font-size:22px;letter-spacing:-.025em;margin:6px 0 12px}
.d-trips ul,.d-grid ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.d-trips a,.d-grid a{display:flex;flex-direction:column;gap:4px;background:var(--card);border-radius:20px;box-shadow:var(--shadow);overflow:hidden;color:var(--fg);text-decoration:none;padding-bottom:14px;transition:transform .15s}
.d-trips a:hover,.d-grid a:hover{transform:translateY(-2px)}
.d-trips img{width:100%;height:auto;aspect-ratio:1200/630;object-fit:cover;display:block}
.d-grid img{width:100%;aspect-ratio:1;object-fit:cover;display:block;height:auto}
.d-trips b,.d-grid b{padding:8px 14px 0;font-size:16px;letter-spacing:-.015em}
.d-trips span,.d-grid span{padding:0 14px;font-size:13px;color:var(--muted)}
.s-h2{font-size:15px;letter-spacing:-.01em;margin-bottom:8px}
.chips li a{color:inherit;text-decoration:none}.chips li a:hover{color:var(--accent)}
.langs{display:block;width:100%;margin-top:8px;font-size:12px}.langs a{color:var(--muted)}.langs b{color:var(--fg);font-weight:600}
