/* StayGlobe visual system v8 ("aurora").
   One token layer for light and dark, category colours on every card, pill and section, depth
   from layered shadows and gradients, motion that switches off with prefers-reduced-motion.
   Sections: 1 tokens · 2 base · 3 chrome · 4 home and explorer · 5 cards · 6 partner offers ·
   7 page blocks · 8 route sheet · 9 tables · 10 tax and calculators · 11 guides · 12 finder ·
   13 footer and misc · 14 motion · 15 responsive · 16 invariants and print */

/* ---------- 1. Tokens ---------- */
:root{
  color-scheme:light;
  --bg:#f6f2ff;--bg-2:#fff6fb;--paper:#ffffff;--paper-2:#fbf9ff;--glass:rgba(255,255,255,.78);
  --ink:#170f30;--ink-2:#2e2550;--muted:#554c70;--line:#e6dff5;--line-2:#d8cdf0;
  --accent:#6d28d9;--accent-ink:#5b21b6;--accent-2:#db2777;--accent-3:#f97316;--soft:#efe8ff;
  --brand:linear-gradient(120deg,#6d28d9 0%,#a21caf 48%,#db2777 100%);
  --brand-wide:linear-gradient(120deg,#5b21b6 0%,#9333ea 30%,#db2777 65%,#f97316 100%);
  --tax:#0f766e;--tax-soft:#e3f6f2;--figure:var(--ink);
  --sh-1:0 1px 2px rgba(30,16,70,.06),0 4px 14px -4px rgba(30,16,70,.10);
  --sh-2:0 2px 4px rgba(30,16,70,.06),0 14px 34px -12px rgba(52,24,120,.24);
  --sh-3:0 4px 10px rgba(30,16,70,.08),0 30px 60px -20px rgba(70,30,150,.35);
  --r1:12px;--r2:20px;--r3:26px;
  --ease:cubic-bezier(.2,.8,.2,1);
  --focus:#f59e0b;
  --blob1:#c4b5fd;--blob2:#f9a8d4;--blob3:#fed7aa;
  --globe-ocean:#e9e2ff;--globe-land:#fdfcff;--globe-land-hover:#f3eeff;--globe-covered:#c9b6fd;--globe-hover:#a78bfa;--globe-selected:#6d28d9;--globe-line:#6b6280;--globe-point:#db2777;
  --label-ink:#3b3456;--label-halo:#fff;
  --c1:var(--accent);--c2:#4c1d95;--glow:#c084fc;
  --brand-text:linear-gradient(90deg,#5b21b6,#9333ea 35%,#c026d3 65%,#be185d 100%);
  font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --display:ui-rounded,'SF Pro Rounded',system-ui,-apple-system,'Segoe UI',sans-serif;
  color:var(--ink);background:var(--bg);font-size:15px;line-height:1.55;
}
@media (prefers-color-scheme:dark){
  :root:not([data-mode=light]){
    color-scheme:dark;
    --bg:#0c0a1b;--bg-2:#140c22;--paper:#171230;--paper-2:#1d1739;--glass:rgba(23,18,48,.8);
    --ink:#f4f0ff;--ink-2:#ddd5fb;--muted:#b9b0d6;--line:#2d2650;--line-2:#3b3366;
    --accent:#a78bfa;--accent-ink:#c4b5fd;--soft:#251d48;
    --tax:#2dd4bf;--tax-soft:#0f2a2a;
    --sh-1:0 1px 2px rgba(0,0,0,.4),0 6px 18px -6px rgba(0,0,0,.6);
    --sh-2:0 2px 6px rgba(0,0,0,.45),0 18px 40px -14px rgba(0,0,0,.7);
    --sh-3:0 6px 14px rgba(0,0,0,.5),0 30px 70px -24px rgba(0,0,0,.85);
    --blob1:#4c1d95;--blob2:#831843;--blob3:#7c2d12;
    --globe-ocean:#151033;--globe-land:#2a2350;--globe-land-hover:#352c63;--globe-covered:#5b3fb8;--globe-hover:#7c5ce0;--globe-selected:#c084fc;--globe-line:#8b80b8;--globe-point:#f472b6;
    --label-ink:#e7e1ff;--label-halo:#0c0a1b;
    --brand-text:linear-gradient(90deg,#c4b5fd,#e9d5ff 35%,#f0abfc 65%,#fda4af 100%);
  }
}
:root[data-theme=ocean]{--accent:#0369a1;--accent-ink:#075985;--soft:#e0f2fe;--brand:linear-gradient(120deg,#075985,#0e7490 50%,#0f766e);--blob1:#7dd3fc;--blob2:#5eead4;--globe-covered:#7dd3fc;--globe-hover:#38bdf8;--globe-selected:#075985;--globe-point:#0284c7}
:root[data-theme=plum]{--accent:#be185d;--accent-ink:#9d174d;--soft:#fce7f3;--brand:linear-gradient(120deg,#9d174d,#be185d 50%,#c2410c);--blob1:#f9a8d4;--blob2:#fdba74;--globe-covered:#f9a8d4;--globe-hover:#f472b6;--globe-selected:#9d174d;--globe-point:#c2410c}

/* Category colours: c1 is safe for white text, c2 the deep stop, glow is decorative only. */
[data-cat=special]{--c1:#7c3aed;--c2:#4c1d95;--glow:#c084fc}
[data-cat=nomad]{--c1:#0e7490;--c2:#164e63;--glow:#22d3ee}
[data-cat=holiday]{--c1:#15803d;--c2:#14532d;--glow:#4ade80}
[data-cat=invest]{--c1:#c2410c;--c2:#7c2d12;--glow:#fb923c}
[data-cat=pay]{--c1:#be185d;--c2:#831843;--glow:#f472b6}
[data-cat=business]{--c1:#be123c;--c2:#881337;--glow:#fb7185}
[data-cat=work]{--c1:#1d4ed8;--c2:#1e3a8a;--glow:#60a5fa}
[data-cat=student]{--c1:#b45309;--c2:#78350f;--glow:#fbbf24}
[data-cat=spouse]{--c1:#a21caf;--c2:#701a75;--glow:#f0abfc}
[data-cat=nationality]{--c1:#4338ca;--c2:#312e81;--glow:#a5b4fc}
[data-cat=tax]{--c1:#0f766e;--c2:#134e4a;--glow:#2dd4bf}
[data-cat=top]{--c1:#b45309;--c2:#7c2d12;--glow:#facc15}
[data-regime=territorial]{--c1:#0f766e;--c2:#134e4a;--glow:#2dd4bf}
[data-regime=remit]{--c1:#4338ca;--c2:#312e81;--glow:#818cf8}
[data-regime=nondom]{--c1:#7c3aed;--c2:#4c1d95;--glow:#c084fc}
[data-regime=flat]{--c1:#b45309;--c2:#7c2d12;--glow:#fbbf24}
[data-regime=exempt]{--c1:#047857;--c2:#064e3b;--glow:#34d399}
[data-regime=relief]{--c1:#0e7490;--c2:#164e63;--glow:#22d3ee}
[data-regime=plain]{--c1:#475569;--c2:#1e293b;--glow:#94a3b8}
*{--tint:color-mix(in srgb,var(--c1) 11%,var(--paper));--cat-ink:color-mix(in srgb,var(--c1) 82%,#000)}
@media (prefers-color-scheme:dark){:root:not([data-mode=light]) *{--tint:color-mix(in srgb,var(--c1) 22%,var(--paper));--cat-ink:color-mix(in srgb,var(--glow) 62%,#fff)}}

/* ---------- 2. Base ---------- */
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-padding-top:90px}
/* The page backdrop sits on a fixed layer, so scrolling never repaints it. */
body{margin:0;min-height:100vh;color:var(--ink);overflow-wrap:break-word;background:var(--bg)}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(1100px 520px at 8% -8%,color-mix(in srgb,var(--blob1) 55%,transparent),transparent 62%),
    radial-gradient(900px 520px at 96% 2%,color-mix(in srgb,var(--blob2) 48%,transparent),transparent 62%),
    radial-gradient(900px 620px at 50% 108%,color-mix(in srgb,var(--blob3) 42%,transparent),transparent 62%),
    linear-gradient(180deg,var(--bg),var(--bg-2))}
a{color:var(--accent-ink);text-underline-offset:3px}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a,button,input,select,textarea,summary{touch-action:manipulation}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:6px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;top:-80px;left:16px;z-index:100;background:var(--paper);color:var(--ink);padding:12px 16px;border-radius:12px;box-shadow:var(--sh-2)}
.skip-link:focus{top:12px}
.icon{flex:none;vertical-align:-3px}
/* Icon strokes live here too, so sprite icons (<use href="#sg-iN">, static pages) draw like inline ones. */
svg.icon{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
/* Explorer panel while a country's file loads: card-shaped placeholders, no text. */
.panel-loading{display:grid;gap:12px;padding:14px 0}.panel-loading i{display:block;height:96px;border-radius:18px;background:linear-gradient(100deg,var(--soft) 30%,var(--line,#e5e7eb) 50%,var(--soft) 70%) 0 0/300% 100%;animation:sheen 1.4s linear infinite}
@media (prefers-reduced-motion:reduce){.panel-loading i{animation:none}}
h1,h2,h3{font-family:var(--display);color:var(--ink)}
img,svg{max-width:100%}

/* ---------- 3. Chrome: top bar, buttons, chips ---------- */
.topbar{position:sticky;top:12px;z-index:40;display:flex;align-items:center;gap:22px;height:64px;margin:12px max(12px,calc((100vw - 1370px)/2));padding:0 12px 0 18px;border:1px solid color-mix(in srgb,var(--line) 70%,transparent);border-radius:22px;background:var(--glass);backdrop-filter:blur(18px) saturate(1.6);-webkit-backdrop-filter:blur(18px) saturate(1.6);box-shadow:var(--sh-2)}
.topbar::after{content:"";position:absolute;left:24px;right:24px;bottom:-1px;height:2px;border-radius:2px;background:var(--brand-wide);background-size:200% 100%;opacity:.7;animation:slide 9s linear infinite}
.brand{display:inline-flex;align-items:center;gap:10px;font-family:var(--display);font-size:20px;font-weight:800;letter-spacing:-.03em;color:var(--ink);text-decoration:none;flex-shrink:0}
.brand-mark{width:36px;height:36px;filter:drop-shadow(0 4px 10px rgba(124,58,237,.35))}
.wordmark b{font-weight:inherit;background:var(--brand-wide);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:slide 8s ease-in-out infinite alternate}
.brand-pin{transform-box:fill-box;transform-origin:50% 100%;animation:pinhop 3.2s var(--ease) infinite}
@keyframes pinhop{0%,62%,100%{transform:translateY(0)}72%{transform:translateY(-3px) scale(1.06)}82%{transform:translateY(0) scale(.97,1.03)}}
footer .wordmark b{background:linear-gradient(90deg,#f9a8d4,#fdba74);-webkit-background-clip:text;background-clip:text}
.topbar nav{display:flex;gap:6px;margin-left:auto}
.topbar nav a{display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border-radius:12px;color:var(--ink-2);font-size:14px;font-weight:650;text-decoration:none;white-space:nowrap;flex-shrink:0;transition:background .2s,color .2s,transform .2s}
.topbar nav a .icon{color:var(--accent)}
.topbar nav a:hover{background:var(--soft);color:var(--accent-ink);transform:translateY(-1px)}
.topbar nav a:hover .icon{animation:wiggle .5s var(--ease)}
.topbar .button,.topbar .shortlist-chip{white-space:nowrap;flex-shrink:0}
.button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:11px 18px;border:1px solid transparent;border-radius:999px;font-weight:750;font-size:14px;text-decoration:none;cursor:pointer;overflow:hidden;isolation:isolate;transition:transform .2s var(--ease),box-shadow .2s,filter .2s}
.button:hover{transform:translateY(-2px)}
.button:active{transform:scale(.97)}
.primary,.button.primary,.chip.primary{background:var(--brand);background-size:160% 100%;color:#fff;border-color:transparent;box-shadow:0 8px 22px -8px rgba(162,28,175,.6)}
.primary:hover{box-shadow:0 14px 30px -10px rgba(162,28,175,.75);background-position:100% 0}
.button.primary::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.35) 50%,transparent 65%);background-size:250% 100%;background-position:150% 0;animation:sheen 4.5s ease-in-out infinite}
.secondary,.button.secondary{background:var(--paper);color:var(--ink);border-color:var(--line-2);box-shadow:var(--sh-1)}
.secondary:hover{border-color:var(--accent);color:var(--accent-ink);box-shadow:var(--sh-2)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 6px}
.chip{display:inline-flex;align-items:center;gap:7px;padding:9px 15px;border-radius:999px;border:1px solid var(--line);background:var(--paper);box-shadow:var(--sh-1);font-size:14px;font-weight:700;color:var(--ink);text-decoration:none;transition:transform .2s var(--ease),box-shadow .2s,border-color .2s}
.chip .icon{color:var(--accent)}
.chip.primary .icon{color:#fff}
.chip:hover{transform:translateY(-2px);box-shadow:var(--sh-2);border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}
.shortlist-chip{margin-left:auto;background:linear-gradient(120deg,#fef3c7,#fde68a);border-color:#f59e0b;color:#78350f;cursor:pointer}
.breadcrumbs{font-size:13px;color:var(--muted);margin:4px 0 18px}
.breadcrumbs a{color:var(--muted);text-decoration:none;font-weight:600}
.breadcrumbs a:hover{color:var(--accent-ink);text-decoration:underline}

/* ---------- 4. Home and explorer ---------- */
main{display:block}
.intro{position:relative;max-width:1370px;margin:0 auto;padding:38px 24px 18px}
.intro-kicker{display:inline-flex;align-items:center;gap:8px;margin:0 0 10px;padding:6px 13px;border-radius:999px;background:var(--paper);box-shadow:var(--sh-1);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink)}
.intro-kicker .icon{color:var(--accent-2)}
.intro h1{position:relative;margin:0;font-size:clamp(42px,6.6vw,84px);font-weight:850;letter-spacing:-.05em;line-height:1.02;max-width:900px}
.intro h1 span{background:var(--brand-text);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:slide 8s ease-in-out infinite alternate}
.promise{position:relative;margin:14px 0 0;font-size:clamp(16px,1.6vw,20px);color:var(--muted);max-width:640px}
.intro-art{position:absolute;right:max(24px,calc((100vw - 1370px)/2 + 24px));top:6px;width:min(420px,38vw);height:260px;pointer-events:none}
.intro-art .orbit{position:absolute;border-radius:50%;border:2px dashed color-mix(in srgb,var(--accent) 35%,transparent)}
.intro-art .o1{inset:20px 40px 10px 40px;animation:spin 40s linear infinite}
.intro-art .o2{inset:60px 90px 50px 90px;border-style:solid;border-color:color-mix(in srgb,var(--accent-2) 30%,transparent);animation:spin 28s linear infinite reverse}
.intro-art .float{position:absolute;display:grid;place-items:center;width:52px;height:52px;border-radius:18px;color:#fff;box-shadow:var(--sh-2);animation:bob 6s ease-in-out infinite}
.intro-art .float .icon{width:24px;height:24px}
.intro-art .f1{left:10%;top:18%;background:linear-gradient(135deg,#7c3aed,#4c1d95)}
.intro-art .f2{left:44%;top:0;background:linear-gradient(135deg,#db2777,#831843);animation-delay:-1.5s}
.intro-art .f3{right:4%;top:24%;background:linear-gradient(135deg,#f59e0b,#c2410c);animation-delay:-3s}
.intro-art .f4{left:22%;bottom:4%;background:linear-gradient(135deg,#0e7490,#164e63);animation-delay:-4s}
.intro-art .f5{right:22%;bottom:0;background:linear-gradient(135deg,#15803d,#14532d);animation-delay:-2s}
.intro-art .f6{left:56%;top:44%;width:64px;height:64px;border-radius:22px;background:var(--brand);animation-delay:-5s}
.plan-links{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,168px),1fr));gap:10px;margin:24px 0 4px}
.plan-link{position:relative;display:flex;align-items:center;gap:11px;padding:12px 14px;border-radius:18px;background:var(--paper);border:1px solid color-mix(in srgb,var(--c1) 20%,var(--line));box-shadow:0 10px 24px -14px color-mix(in srgb,var(--c1) 70%,transparent);color:var(--ink);text-decoration:none;transition:transform .25s var(--ease),box-shadow .25s}
.plan-link:hover{transform:translateY(-4px);box-shadow:0 18px 34px -14px color-mix(in srgb,var(--c1) 80%,transparent)}
.plan-icon{display:grid;place-items:center;width:42px;height:42px;flex:none;border-radius:14px;color:#fff;background:linear-gradient(135deg,var(--c1),var(--c2));box-shadow:0 6px 14px -6px var(--c1);transition:transform .3s var(--ease)}
.plan-link:hover .plan-icon{transform:rotate(-8deg) scale(1.08)}
.plan-link strong{display:block;font-size:14px;line-height:1.25}
.plan-link small{display:block;font-size:12px;color:var(--muted);font-weight:600}
.explorer{max-width:1370px;margin:0 auto;padding:0 24px}
.explore-toolbar{display:flex;align-items:stretch;gap:12px;margin:18px 0 12px}
.search-field{position:relative;display:flex;align-items:center;gap:10px;flex:1;max-width:560px;padding:12px 20px;border-radius:999px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-2);transition:box-shadow .2s,border-color .2s}
.search-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent),var(--sh-2)}
.search-field>span{display:grid;place-items:center;color:var(--accent)}
.search-field input{background:none;border:0;outline:none;width:100%;min-width:0;font-size:16px;color:var(--ink)}
.search-results{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:15;max-height:340px;overflow:auto;padding:6px;border-radius:18px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-3)}
.search-results button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:11px 12px;border:0;border-radius:12px;background:transparent;text-align:left;color:var(--ink)}
.search-results button:hover{background:var(--soft)}
.search-results small{color:var(--muted);font-size:12px}
.path-field{display:flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;border:1px solid var(--line);background:var(--paper);box-shadow:var(--sh-1)}
.path-field>span{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;font-weight:700}
.path-field>span .icon{color:var(--accent)}
.path-field select{border:0;background:none;color:var(--ink);font-size:14px;font-weight:650;min-width:130px;max-width:200px}
.popular{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 14px;scrollbar-width:none}
.popular::-webkit-scrollbar{display:none}
.popular .chip{flex:none;padding:8px 14px;font-size:14px}
.explorer-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(400px,1fr);gap:18px}
@media (min-width:1700px){.explorer-grid{grid-template-columns:minmax(0,1fr) minmax(560px,1.05fr)}}
.map-frame{position:relative;height:clamp(600px,calc(100vh - 104px),1000px);border-radius:var(--r3);overflow:hidden;isolation:isolate;
  background:radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--globe-ocean) 70%,var(--paper)) 0,var(--globe-ocean) 38%,color-mix(in srgb,var(--accent) 22%,var(--globe-ocean)) 100%);
  border:1px solid var(--line);box-shadow:var(--sh-3)}
.map-frame::before{content:"";position:absolute;inset:0;z-index:-1;background-image:radial-gradient(1.5px 1.5px at 12% 18%,#fff8,transparent),radial-gradient(1.5px 1.5px at 78% 12%,#fff9,transparent),radial-gradient(1px 1px at 88% 66%,#fff8,transparent),radial-gradient(1.5px 1.5px at 22% 82%,#fff8,transparent),radial-gradient(1px 1px at 52% 6%,#fff9,transparent),radial-gradient(1px 1px at 6% 52%,#fff8,transparent);animation:twinkle 5s ease-in-out infinite alternate}
.map-frame::after{content:"";position:absolute;inset:-2px;z-index:2;pointer-events:none;border-radius:inherit;padding:2px;background:conic-gradient(from 200deg,#7c3aed,#db2777,#f97316,#22d3ee,#7c3aed);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.75}
#map{position:absolute;inset:0}
.map-controls{position:absolute;top:14px;left:14px;right:14px;z-index:3;display:flex;align-items:center;justify-content:space-between;pointer-events:none}
.map-controls>span{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;background:var(--glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:var(--sh-1);color:var(--ink-2);font-size:12px;font-weight:650}
.live-dot{position:relative;width:9px;height:9px;border-radius:50%;background:#22c55e;display:inline-block}
.live-dot::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid #22c55e;animation:ping 1.8s var(--ease) infinite}
.map-controls button{pointer-events:auto;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--paper);color:var(--accent);font-size:22px;box-shadow:var(--sh-2);transition:transform .3s var(--ease)}
.map-controls button:hover{transform:rotate(90deg) scale(1.06)}
.map-credit{position:absolute;left:14px;bottom:10px;z-index:3;font-size:11px;color:var(--muted)}
.map-credit a{color:inherit}
.map-error{position:absolute;left:15%;right:15%;top:45%;z-index:3;padding:14px;border-radius:16px;background:var(--paper);color:var(--muted);text-align:center;font-size:14px;box-shadow:var(--sh-2)}
.maplibregl-ctrl-group{border-radius:14px!important;overflow:hidden;box-shadow:var(--sh-2)!important;background:var(--paper)!important}
.maplibregl-ctrl-group button{width:38px!important;height:38px!important}
.country-label{pointer-events:none;font-size:10px;font-weight:650;color:var(--label-ink);letter-spacing:.01em;white-space:nowrap;text-shadow:0 0 3px var(--label-halo),0 0 3px var(--label-halo),0 0 2px var(--label-halo)}
.country-label.covered{color:var(--ink);font-weight:800}
.country-label.selected{padding:2px 8px;border-radius:999px;background:var(--brand);color:#fff;font-size:12px;font-weight:800;text-shadow:none;box-shadow:0 6px 16px -4px rgba(162,28,175,.6)}
.country-panel{height:clamp(600px,calc(100vh - 104px),1000px);overflow:auto;border-radius:var(--r3);background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-3);scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}
.country-head{position:sticky;top:0;z-index:4;padding:18px 20px 0;background:var(--paper);border-bottom:1px solid var(--line)}
.country-topline{display:flex;justify-content:space-between;align-items:center;gap:10px}
.country-head h2{margin:0;font-size:28px;font-weight:850;letter-spacing:-.035em;line-height:1.15}
.country-head h2 span{margin-right:8px}
.country-guide-link{font-size:13px;font-weight:750;text-decoration:none;white-space:nowrap;color:var(--accent-ink)}
.panel-close{border:0;background:none;padding:4px 2px;cursor:pointer}
.country-subline{margin:6px 0 12px;font-size:13px;color:var(--muted);font-weight:600}
.country-view-tabs{display:flex;gap:6px}
.country-view-tabs button{display:inline-flex;align-items:center;gap:7px;border:0;border-bottom:3px solid transparent;background:none;color:var(--muted);padding:10px 8px 11px;font-size:14px;font-weight:750}
.country-view-tabs button.active{color:var(--accent-ink);border-image:var(--brand) 1}
.panel-grab{display:none}
.drawer-bar{display:none}
.route-list,.tax-list{padding:16px;display:grid;gap:14px}
.country-panel .cards{grid-template-columns:1fr;padding:16px;gap:14px}
.country-panel .section-label{grid-column:1/-1;margin:10px 2px 0}
.country-panel .section-pill{justify-self:start}
.country-panel details.short-stays{padding:0}
.country-panel .offers{margin:6px 16px 18px}
.country-panel .options-card{grid-column:auto}
.tax-peek{position:relative;display:flex;align-items:center;gap:10px;width:calc(100% - 32px);margin:16px 16px 0;padding:14px 16px;border:0;border-radius:18px;text-align:left;color:#fff;font-size:13px;background:linear-gradient(120deg,#0f766e,#0e7490 60%,#4338ca);background-size:180% 100%;box-shadow:0 12px 26px -12px rgba(14,116,144,.7);overflow:hidden;transition:background-position .6s var(--ease),transform .2s}
.tax-peek:hover{background-position:100% 0;transform:translateY(-2px)}
.tax-peek>span{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.tax-peek strong{flex:1;font-weight:700;color:#fff}
.tax-peek em{display:inline-flex;align-items:center;gap:4px;font-style:normal;font-weight:800;white-space:nowrap}
.empty-state{display:grid;justify-items:center;gap:8px;padding:48px 24px;text-align:center}
.empty-state h3{margin:6px 0 0;font-size:26px;letter-spacing:-.03em}
.empty-state p{margin:0 0 8px;color:var(--muted)}
.empty-art{width:140px;height:140px;animation:bob 5s ease-in-out infinite;filter:drop-shadow(0 18px 24px rgba(124,58,237,.3))}
.empty-message{padding:28px 20px;color:var(--muted);font-size:14px}
.empty-message h3{color:var(--ink);font-size:21px;margin:0 0 8px}
.skeleton{display:grid;gap:12px;padding:18px}
.sk{display:block;border-radius:16px;background:linear-gradient(90deg,var(--soft) 25%,color-mix(in srgb,var(--accent) 14%,var(--paper)) 37%,var(--soft) 63%);background-size:400% 100%;animation:shimmer 1.3s ease infinite}
.sk-banner{height:80px}.sk-title{height:28px;width:55%}.sk-line{height:14px;width:80%}.sk-card{height:130px}
.explorer-grid.no-globe{grid-template-columns:1fr}
.explorer-grid.no-globe .map-frame{display:none}
.explorer-grid.no-globe .country-panel{height:auto;min-height:0;max-height:none}
.destinations{max-width:1370px;margin:48px auto 0;padding:0 24px}
.directory-head{display:flex;justify-content:space-between;align-items:flex-end;gap:15px;margin-bottom:20px}
.directory-head h2{margin:0;font-size:34px;font-weight:850;letter-spacing:-.04em}
.region-tabs{display:flex;gap:4px;padding:5px;border-radius:999px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-1)}
.region-tabs button{border:0;background:none;color:var(--muted);font-size:13px;font-weight:750;padding:8px 15px;border-radius:999px;transition:background .2s,color .2s}
.region-tabs .active{background:var(--brand);color:#fff}
.text-link{display:inline-flex;align-items:center;gap:6px;margin-top:18px;font-size:14px;font-weight:800;text-decoration:none;color:var(--accent-ink)}
.text-link:hover .icon{transform:translateX(4px)}
.text-link .icon{transition:transform .2s}

/* Country tiles: flag-colour band, flag that lifts on hover. */
.country-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.country-tile{--b1:#6d28d9;--b2:#db2777;position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:64px 16px 16px;border-radius:20px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-1);color:var(--ink);text-decoration:none;overflow:hidden;isolation:isolate;transition:transform .25s var(--ease),box-shadow .25s}
.country-tile::before{content:"";position:absolute;left:0;right:0;top:0;height:50px;z-index:-1;background:linear-gradient(115deg,var(--b1) 0%,var(--b1) 42%,var(--b2) 58%,color-mix(in srgb,var(--b2) 70%,#fff) 100%);background-size:160% 100%;transition:background-position .6s var(--ease),height .3s var(--ease)}
.country-tile::after{content:"";position:absolute;right:-30px;top:-30px;width:110px;height:110px;z-index:-1;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.35),transparent 65%)}
.country-tile:hover{transform:translateY(-5px) rotate(-.4deg);box-shadow:var(--sh-3)}
.country-tile:hover::before{background-position:100% 0;height:56px}
.country-tile .tile-flag{position:absolute;left:14px;top:22px;font-size:40px;line-height:1;filter:drop-shadow(0 6px 10px rgba(0,0,0,.25));transition:transform .35s var(--ease)}
.country-tile:hover .tile-flag{transform:translateY(-4px) rotate(-6deg) scale(1.08)}
.country-tile strong{font-family:var(--display);font-size:17px;font-weight:800;letter-spacing:-.02em}
.country-tile small{font-size:13px;color:var(--muted);font-weight:650}
.country-tile .tile-tax{display:inline-flex;margin-top:4px;padding:3px 9px;border-radius:999px;background:var(--tax-soft);color:color-mix(in srgb,var(--tax) 70%,var(--ink));font-size:12px;font-weight:750;line-height:1.35}

/* ---------- 5. Cards ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;align-items:start}
.cards>*,.tiles>*,.offer-grid>*{min-width:0}
.card{position:relative;display:flex;flex-direction:column;gap:7px;padding:20px 20px 18px;border-radius:var(--r2);isolation:isolate;
  background:linear-gradient(160deg,var(--tint) 0%,var(--paper) 62%);
  border:1px solid color-mix(in srgb,var(--c1) 24%,var(--line));
  box-shadow:0 1px 0 color-mix(in srgb,var(--c1) 18%,transparent),0 16px 34px -18px color-mix(in srgb,var(--c1) 55%,transparent),0 2px 6px rgba(30,16,70,.05);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s}
.card::before{content:"";position:absolute;left:16px;right:16px;top:-1px;height:4px;border-radius:0 0 6px 6px;background:linear-gradient(90deg,var(--c1),var(--glow));z-index:1}
.card:hover{transform:translateY(-5px);border-color:color-mix(in srgb,var(--c1) 45%,var(--line));box-shadow:0 2px 0 color-mix(in srgb,var(--c1) 25%,transparent),0 28px 50px -22px color-mix(in srgb,var(--c1) 70%,transparent),0 4px 10px rgba(30,16,70,.06)}
.card.clickable{cursor:pointer}
.card.muted{opacity:.8}
.card-deco{position:absolute;inset:0;z-index:-1;overflow:hidden;border-radius:inherit;pointer-events:none}
.card-deco .icon{position:absolute;right:-18px;bottom:-22px;color:var(--c1);opacity:.09;transform:rotate(-14deg);transition:transform .6s var(--ease),opacity .3s}
.card:hover .card-deco .icon{transform:rotate(-4deg) scale(1.08);opacity:.14}
.kicker{display:flex;align-items:center;gap:9px;margin:0;font-size:12px;font-weight:850;letter-spacing:.07em;text-transform:uppercase;color:var(--cat-ink)}
.kbadge{display:grid;place-items:center;width:32px;height:32px;flex:none;border-radius:11px;color:#fff;background:linear-gradient(135deg,var(--c1),var(--c2));box-shadow:0 6px 14px -6px var(--c1);transition:transform .35s var(--ease)}
.card:hover .kbadge{transform:rotate(-10deg) scale(1.08)}
.card-name{margin:2px 0 0;font-family:var(--display);font-size:20px;font-weight:750;letter-spacing:-.02em;line-height:1.25;color:var(--ink)}
.card-name a{color:inherit;text-decoration:none}
.card-name.with-badge{display:flex;align-items:flex-start;gap:10px}
.card-name.with-badge .kbadge{width:30px;height:30px;margin-top:-2px}
.card-name.with-badge>:last-child{min-width:0;flex:1}
.opt-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0}
.opt-from{font-family:var(--display);font-size:24px;font-weight:850;letter-spacing:-.03em;line-height:1.2}
.opt-from .usd{display:inline-flex;margin-left:6px;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--c1) 14%,var(--paper));color:var(--cat-ink);font-size:12px;font-weight:800;letter-spacing:0;vertical-align:middle}
.card-name a:hover{color:var(--cat-ink);text-decoration:underline}
.card-figure{margin:6px 0 2px;font-family:var(--display);font-size:30px;font-weight:850;letter-spacing:-.04em;line-height:1.12;color:var(--figure)}
.card-figure .usd{display:inline-flex;align-items:center;margin-left:6px;padding:3px 9px;border-radius:999px;vertical-align:middle;background:color-mix(in srgb,var(--c1) 14%,var(--paper));color:var(--cat-ink);font-size:13px;font-weight:800;letter-spacing:0;line-height:1.3;white-space:nowrap}
.usd{color:var(--cat-ink);font-weight:700;white-space:nowrap}
.figure-text{font-size:19px;letter-spacing:-.02em;line-height:1.3;display:inline-block}
/* Requirement label over a money figure ("INCOME NEEDED" over "¥10M+ a year"): one element, read as "Income needed: …" */
.fig-label{display:block;margin:0 0 3px;font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:11px;font-weight:850;letter-spacing:.08em;line-height:1.3;text-transform:uppercase;color:var(--cat-ink)}
.fig-value{display:block}
.card-figure .per,.sheet-figure .per,.opt-from .per,.opt-figure .per,.tile-value .per{font-size:.6em;font-weight:750;letter-spacing:-.01em}
.sheet-figure .fig-label{color:rgba(255,255,255,.9);font-size:12px;text-shadow:none}
.opt-from .fig-label{font-size:10px;margin-bottom:1px}
.opt-figure .fig-label{font-size:9.5px;letter-spacing:.06em;margin:0;color:var(--muted)}
.stat strong .per{font-size:.7em;font-weight:750}
.pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.pill{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;background:color-mix(in srgb,var(--paper) 80%,transparent);border:1px solid color-mix(in srgb,var(--c1) 26%,var(--line));color:var(--ink-2);font-size:13px;font-weight:650;line-height:1.35}
.pill .icon{color:var(--c1)}
.card-open{display:inline-flex;align-self:flex-start;align-items:center;gap:6px;margin-top:8px;padding:8px 14px;border-radius:999px;border:1px solid color-mix(in srgb,var(--c1) 35%,var(--line));background:var(--paper);color:var(--cat-ink);font:inherit;font-size:14px;font-weight:800;text-decoration:none;cursor:pointer;transition:background .2s,color .2s,gap .2s}
.card-open:hover{background:linear-gradient(120deg,var(--c1),var(--c2));color:#fff;border-color:transparent;gap:10px}
.card details.more{margin-top:4px;padding-top:4px;border-top:0}
.star{position:absolute;top:14px;right:14px;z-index:2;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--paper);color:var(--muted);box-shadow:var(--sh-1);transition:transform .25s var(--ease),color .2s,background .2s}
.star:hover{transform:scale(1.12) rotate(12deg);color:#d97706}
.star[aria-pressed=true]{color:#fff;background:linear-gradient(135deg,#f59e0b,#d97706);border-color:transparent}
.star[aria-pressed=true] .icon,.star-btn[aria-pressed=true] .icon{fill:currentColor}
.star-btn[aria-pressed=true]{background:linear-gradient(135deg,#f59e0b,#b45309)!important;color:#fff!important;border-color:transparent!important}
.pp-badge{display:inline-flex;align-self:flex-start;margin:2px 0;padding:4px 11px;border-radius:999px;font-size:12px;font-weight:800}
.pp-badge.ok{background:#dcfce7;color:#14532d}
.pp-badge.no{background:#fee2e2;color:#7f1d1d}
.card.is-match{outline:3px solid #22c55e;outline-offset:3px}
.card.is-dim{opacity:.45}
.options-card{grid-column:span 2}
.opt-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.opt-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;width:100%;padding:10px 13px;border-radius:14px;border:1px solid color-mix(in srgb,var(--c1) 16%,var(--line));background:color-mix(in srgb,var(--paper) 85%,transparent);font:inherit;text-align:left;color:var(--ink);text-decoration:none;cursor:pointer;transition:transform .2s var(--ease),background .2s,border-color .2s}
.opt-row:hover{transform:translateX(4px);background:var(--paper);border-color:var(--c1)}
.opt-name{font-size:14px;font-weight:650}
.opt-figure{font-size:14px;font-weight:850;white-space:normal;text-align:right}
.opt-figure .usd{font-size:12px;margin-left:4px}
/* Tiers of one scheme (SMART Visa S · 6 months / 1 year / 2 years) as one card with a pill per tier */
.tier-pills{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:0}
.tier-pills li{min-width:0;max-width:100%}
.tier-pill{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;max-width:100%;padding:8px 13px;border-radius:999px;border:1px solid color-mix(in srgb,var(--c1) 30%,var(--line));background:color-mix(in srgb,var(--c1) 8%,var(--paper));color:var(--ink);font:inherit;font-size:14px;font-weight:750;text-decoration:none;cursor:pointer;transition:transform .15s,border-color .15s,background .15s}
.tier-pill:hover,.tier-pill:focus-visible{transform:translateY(-1px);border-color:var(--c1);background:var(--paper)}
.tier-name{overflow-wrap:anywhere}
.tier-figure{font-weight:850;color:var(--cat-ink,var(--ink));overflow-wrap:anywhere}
.tier-figure .usd{font-size:12px;font-weight:700;color:var(--ink-2);margin-left:2px}
@media (prefers-reduced-motion:reduce){.tier-pill{transition:none}.tier-pill:hover{transform:none}}
details.more>summary,details.short-stays>summary{list-style:none;cursor:pointer}
details.more>summary::-webkit-details-marker,details.short-stays>summary::-webkit-details-marker{display:none}
details.more{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
details.more>summary{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:800;color:var(--accent-ink)}
details.more>summary::after{content:"";width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .25s}
details.more[open]>summary::after{transform:rotate(-135deg)}
details.more p,details.more li{font-size:14px;line-height:1.6;color:var(--ink-2)}
details.more h4{font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin:16px 0 6px}
details.more ul{padding-left:18px;margin:0}
details.more li+li{margin-top:4px}
.more-body{padding-top:6px}
.more-body .more-links,.more-links{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px;font-size:14px;font-weight:800}
.more-links a{text-decoration:none}
.key-points{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.key-points li{position:relative;padding-left:22px;font-size:14px;line-height:1.45;color:var(--ink-2)}
.key-points li::before{content:"";position:absolute;left:3px;top:.45em;width:9px;height:9px;border-radius:50%;background:linear-gradient(135deg,var(--c1),var(--glow))}
details.short-stays{grid-column:1/-1;margin-top:12px}
details.short-stays>summary{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-1);font-size:13px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}
details.short-stays>summary::before{content:"+";display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--brand);color:#fff;font-size:14px;line-height:1;transition:transform .25s}
details.short-stays[open]>summary::before{transform:rotate(45deg)}
details.short-stays .cards{margin-top:10px}
.plain-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.plain-list li{padding:11px 14px;border-radius:14px;background:var(--paper);border:1px solid var(--line);font-size:14px;box-shadow:var(--sh-1)}
.plain-list li strong{color:var(--accent-ink)}
.plain-list a{text-decoration:none;font-weight:700}
.plain-list small{display:block;color:var(--muted);font-size:13px}
.thin-note{grid-column:1/-1;margin:6px 2px;font-size:13px;color:var(--muted)}

/* Section headings: icon badge plus bold text; group headings are gradient pills. */
.section-label{display:flex;align-items:center;gap:10px;margin:34px 0 14px;font-family:var(--display);font-size:20px;font-weight:850;letter-spacing:-.02em;color:var(--ink)}
.label-icon{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:12px;color:#fff;background:linear-gradient(135deg,var(--c1),var(--c2));box-shadow:0 8px 16px -8px var(--c1)}
.section-pill{display:inline-flex;align-items:center;gap:9px;width:auto;margin:26px 0 10px;padding:8px 16px 8px 9px;border-radius:999px;font-size:14px;font-weight:850;letter-spacing:.02em;color:#fff;background:linear-gradient(120deg,var(--c1),var(--c2));box-shadow:0 10px 22px -10px var(--c1)}
.section-pill .icon{display:grid;place-items:center;box-sizing:content-box;padding:5px;border-radius:50%;background:rgba(255,255,255,.2);color:#fff}
.section-pill[data-cat=top]{background:linear-gradient(120deg,#b45309,#9a3412 60%,#7c2d12)}
.section-pill[data-cat=top] .icon{animation:spinpop 3.5s var(--ease) infinite}

/* ---------- 6. Partner offers ---------- */
/* Slim partner strips (owner, round 4): one line of about 36-40px on desktop. Coloured icon, brand,
   a short neutral pitch, the Partner label and a small text link. No gradients or big shadows: the
   visa facts stay first. Phones show one strip per block. */
.offers{margin:14px 0 6px}
.offers-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 12px;margin:0 0 4px}
.offers-label{display:flex;align-items:center;gap:5px;margin:0;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.offers-label .icon{color:#db2777;width:12px;height:12px}
.offers-how{font-size:10.5px;font-weight:600;color:var(--muted);text-decoration:none;opacity:.85}
.offers-how:hover{text-decoration:underline;opacity:1}
.offer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:10px}
.offer-card{--oc:#6d28d9;position:relative;display:flex;align-items:center;gap:14px;min-height:76px;padding:14px 16px;border-radius:16px;background:linear-gradient(120deg,color-mix(in srgb,var(--oc) 10%,var(--paper)),var(--paper) 62%);border:1px solid color-mix(in srgb,var(--oc) 30%,var(--line));border-left:5px solid var(--oc);box-shadow:0 1px 2px rgba(15,23,42,.05);transition:border-color .2s,box-shadow .2s,transform .2s}
.offer-card.offer-lead{grid-column:1/-1;gap:18px;min-height:96px;padding:18px 20px;border-radius:18px;background:linear-gradient(120deg,color-mix(in srgb,var(--oc) 16%,var(--paper)),var(--paper) 70%)}
.offer-grid>.offer-card:nth-child(2):last-child{grid-column:1/-1}
.offer-body{flex:1;min-width:0}
.offer-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0 0 3px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:color-mix(in srgb,var(--oc) 72%,var(--ink))}
.offer-title{margin:0;font-size:16px;font-weight:820;line-height:1.25;letter-spacing:-.01em;color:var(--ink)}
.offer-lead .offer-title{font-size:20px}
.offer-pitch{margin:3px 0 0;font-size:13.5px;line-height:1.4;color:var(--muted)}
.offer-lead .offer-pitch{font-size:14.5px}
.offer-quote{margin:6px 0 0;padding-left:10px;border-left:2px solid color-mix(in srgb,var(--oc) 45%,var(--line));font-size:12.5px;line-height:1.4;color:var(--muted)}
.offer-card:hover{border-color:color-mix(in srgb,var(--oc) 60%,var(--line));border-left-color:var(--oc);box-shadow:0 6px 18px color-mix(in srgb,var(--oc) 16%,transparent);transform:translateY(-1px)}
.offer-card:focus-within{outline:3px solid var(--focus);outline-offset:2px}
.offer-icon{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:13px;color:#fff;background:var(--oc)}
.offer-lead .offer-icon{width:58px;height:58px;border-radius:16px}
.offer-text{flex:1;min-width:0;margin:0;font-size:13px;line-height:1.35;color:var(--ink-2,var(--ink))}
.offer-provider{font-weight:800;color:var(--ink)}
.offer-link{color:inherit;text-decoration:none}
.offer-link::after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit}
.offer-link:focus-visible{outline:none}
.partner-tag{flex:none;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;opacity:.85}
.partner-tag::before{content:"·";margin-right:6px}
.offer-need{display:inline-block;padding:0 6px;letter-spacing:0;text-transform:none;border-radius:999px;background:color-mix(in srgb,var(--oc) 12%,var(--paper));color:color-mix(in srgb,var(--oc) 70%,var(--ink));font-size:10px;font-weight:800;line-height:15px;white-space:nowrap}
.offer-cta{flex:none;display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:999px;background:var(--oc);color:#fff;font-size:13.5px;font-weight:800;white-space:nowrap;transition:gap .2s}
.offer-lead .offer-cta{padding:11px 18px;font-size:15px}
.offer-card:hover .offer-cta{gap:9px}
@media (max-width:600px){.offer-card,.offer-card.offer-lead{flex-wrap:wrap;gap:10px 12px;padding:14px}.offer-body{flex:1 1 60%}.offer-cta,.offer-lead .offer-cta{flex:1 1 100%;justify-content:center}.offer-lead .offer-title{font-size:18px}.offer-grid>.offer-card:nth-child(n+3){display:none}}
.need-link{display:inline-flex;align-items:center;gap:5px;margin-left:4px;padding:2px 9px;border-radius:999px;background:var(--soft);border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));font-size:13px;font-weight:750;text-decoration:none;white-space:normal}
.need-link small{font-size:10px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}

/* ---------- 7. Page blocks ---------- */
.guide-page{max-width:1080px;margin:0 auto;padding:22px 24px 48px}
.guide-page h1{margin:12px 0;font-size:clamp(34px,4.8vw,56px);font-weight:850;letter-spacing:-.045em;line-height:1.05}
.guide-page h2{margin:38px 0 14px;font-size:26px;font-weight:850;letter-spacing:-.03em}
.guide-page h2.section-label{font-size:20px;margin:34px 0 14px}
.guide-page h2.section-pill,.guide-page h3.section-pill{font-size:15px;margin:26px 0 10px}
.guide-page h3,.guide-page h4{letter-spacing:-.01em}
.lead,.guide-page .lead{font-size:18px;color:var(--muted);line-height:1.55;max-width:760px}
.eyebrow{display:inline-flex;align-items:center;gap:6px;margin:6px 0 0;padding:5px 12px;border-radius:999px;background:var(--paper);box-shadow:var(--sh-1);font-size:12px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink)}
.page-head{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin:6px 0 4px}
.page-head h1{margin:0}
.page-hero{position:relative;margin:4px 0 22px;padding:34px 30px 30px;border-radius:30px;color:#fff;overflow:hidden;isolation:isolate;
  background:linear-gradient(125deg,var(--c1),var(--c2));box-shadow:0 30px 60px -30px color-mix(in srgb,var(--c1) 90%,transparent)}
.page-hero[data-tone=brand]{background:var(--brand-wide)}
.page-hero[data-tone=brand]::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(40,10,90,.35),transparent 70%)}
.page-hero h1{position:relative;margin:4px 0 8px;color:#fff;font-size:clamp(32px,4.6vw,54px);max-width:780px}
.page-hero .lead{position:relative;margin:0;color:#fff;font-size:18px;max-width:700px}
.hero-kicker{position:relative;display:inline-flex;margin:0;padding:5px 12px;border-radius:999px;background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.3);font-size:12px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.hero-icon{position:relative;display:grid;place-items:center;width:58px;height:58px;margin-bottom:14px;border-radius:20px;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.35);box-shadow:inset 0 1px 0 rgba(255,255,255,.3);animation:bob 6s ease-in-out infinite}
.page-hero .hero-deco,.sheet-hero .hero-deco{position:absolute;right:-20px;bottom:-40px;z-index:-1;color:#fff;opacity:.14;transform:rotate(-12deg);animation:drift 14s ease-in-out infinite alternate}
.hero-orb{position:absolute;z-index:-1;border-radius:50%;filter:blur(8px);opacity:.55}
.hero-orb.one{width:260px;height:260px;right:12%;top:-120px;background:radial-gradient(circle,var(--glow,#f472b6),transparent 70%);animation:drift 12s ease-in-out infinite alternate}
.hero-orb.two{width:200px;height:200px;left:-60px;bottom:-110px;background:radial-gradient(circle,#fde68a,transparent 70%);animation:drift 15s ease-in-out infinite alternate-reverse}
.direct-answer{font-size:17px;line-height:1.55;color:var(--ink);max-width:760px;margin:6px 0 14px}
/* Key facts on route pages: the quotable answer and the figures it rests on. */
.key-facts{margin:14px 0 18px;padding:14px 16px 16px;border-radius:18px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-1)}
.guide-page .key-facts h2.section-label{margin-top:0}
.key-facts .direct-answer{margin:4px 0 12px;font-size:16px}
.kf-rows{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));gap:10px;margin:0}
.kf-rows>div{min-width:0;padding:10px 12px;border-radius:14px;background:var(--paper-2);border:1px solid var(--line)}
.kf-rows dt{font-size:12px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:var(--muted)}
.kf-rows dd{margin:2px 0 0;font-weight:700;overflow-wrap:anywhere}
.figure-source{font-size:13px;color:var(--muted);margin:-6px 0 12px}
.figure-source a{color:inherit}
.official-name{margin:0 0 8px;font-size:13px;font-style:italic;color:var(--muted)}
.rate-note{margin:10px 4px 0;font-size:12px;color:var(--muted)}
.source-line{margin:18px 0 4px;font-size:12px;line-height:1.6;color:var(--muted)}
.source-line a{color:var(--muted);text-decoration:underline;text-underline-offset:2px}
.source-line span{white-space:nowrap}
.guide-page>.source-line,.page-article>.source-line{margin-top:28px}
.source-list{padding:0;list-style:none}
.source-list a{font-size:13px;overflow-wrap:anywhere}
.source-list li+li{margin-top:5px}
.source-list.numbered{list-style:decimal;padding-left:22px}
.source-list.numbered li{font-size:13px;color:var(--muted)}
.guide-page h2#sources{font-size:19px}
.cite{font-size:10px;line-height:0;margin-left:2px}
.cite a{text-decoration:none;padding:0 1px}
.fine{font-size:12px;color:var(--muted);margin:8px 0 0}
.route-meta{font-size:13px;color:var(--muted);border-top:1px solid var(--line);margin:14px 0 0;padding-top:10px}
.route-caveat{font-size:13px;line-height:1.6;color:#7c4a03;margin:12px 0 0;padding:10px 12px;background:#fff7e6;border-radius:12px}
.facts{margin:0;padding-left:20px;font-size:15px;color:var(--ink-2);line-height:1.65}
.facts li+li{margin-top:6px}
.country-banner{--b1:#4c1d95;--b2:#db2777;position:relative;height:128px;margin:0 0 18px;border-radius:28px;overflow:hidden;isolation:isolate;
  background:radial-gradient(70% 140% at 85% 0%,rgba(255,255,255,.22),transparent 60%),linear-gradient(112deg,color-mix(in srgb,var(--b1) 80%,#000) 0%,var(--b1) 30%,var(--b1) 44%,var(--b2) 60%,color-mix(in srgb,var(--b2) 82%,#000) 100%);background-size:100% 100%,100% 100%;
  box-shadow:0 24px 50px -26px color-mix(in srgb,var(--b1) 90%,transparent);}
.country-banner .banner-art{position:absolute;inset:0;width:100%;height:100%}
.banner-glow{position:absolute;inset:-40%;z-index:0;background:conic-gradient(from 0deg at 70% 50%,transparent 0deg,rgba(255,255,255,.18) 40deg,transparent 90deg,transparent 200deg,rgba(255,255,255,.12) 250deg,transparent 300deg);animation:spin 30s linear infinite}
.banner-shape{position:absolute;right:120px;top:12px;height:calc(100% - 24px);width:auto;max-width:40%;fill:#fff;fill-opacity:.3;stroke:#fff;stroke-opacity:.85;stroke-width:.6;filter:drop-shadow(0 6px 12px rgba(0,0,0,.25));animation:rise .8s var(--ease) both}
.country-banner .banner-flag{position:absolute;right:22px;bottom:-4px;font-size:84px;line-height:1;filter:drop-shadow(0 10px 18px rgba(0,0,0,.35));animation:float 4.5s ease-in-out infinite}
.country-banner .banner-text{position:absolute;left:20px;bottom:16px;color:#fff}
.country-banner .banner-text strong{font-size:24px}
.country-panel .country-banner{height:84px;margin:-18px -20px 12px;border-radius:0}
.country-panel .country-banner .banner-flag{font-size:60px}
.country-panel .banner-shape{right:90px}
.mini-quiz{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin:18px 0 6px;padding:18px 20px;border-radius:24px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-2);position:relative;overflow:hidden}
.mini-quiz::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--brand)}
.mini-quiz strong{display:flex;align-items:center;gap:8px;width:100%;font-family:var(--display);font-size:17px}
.mini-quiz strong .icon{color:#f59e0b}
.mini-quiz label{display:grid;gap:4px;font-size:12px;font-weight:750;color:var(--muted)}
.mini-quiz select,.mini-quiz input{padding:10px 13px;border-radius:14px;border:1px solid var(--line-2);font-size:15px;min-width:130px;max-width:100%;background:var(--paper-2);color:var(--ink)}
.mini-quiz output{width:100%;font-size:14px;font-weight:750;color:var(--accent-ink)}
/* Country page groups: small groups share a row and grow to fill it, big ones take the full row. */
.group-grid{display:flex;flex-wrap:wrap;align-items:flex-start;gap:0 20px}
.group-grid .group-block{flex:1 1 300px;min-width:0}
.group-grid .group-block.wide{flex-basis:100%}
.group-grid .group-block .cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr))}
.group-grid .options-card{grid-column:1/-1}
@media (min-width:900px){.group-grid .options-card .opt-list{grid-template-columns:1fr 1fr;column-gap:10px}}
.no-nomad{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:18px 0;padding:16px 20px;border-radius:20px;background:linear-gradient(120deg,color-mix(in srgb,#0e7490 14%,var(--paper)),var(--paper));border:1px solid color-mix(in srgb,#0e7490 30%,var(--line));font-size:15px;line-height:1.5;box-shadow:var(--sh-1)}
.no-nomad .icon{color:#0e7490}
.no-nomad a{font-weight:750}
.quick-answers{margin-top:8px}
.quick-answers h3{position:relative;margin:20px 0 6px;padding-left:38px;font-size:17px;font-weight:750;letter-spacing:-.01em;line-height:1.35}
.quick-answers h3::before{content:"?";position:absolute;left:0;top:-2px;display:grid;place-items:center;width:28px;height:28px;border-radius:10px;background:var(--brand);color:#fff;font-size:15px;font-weight:900}
.quick-answers p{margin:0;padding-left:38px;font-size:15px;color:var(--muted);line-height:1.6}
.quick-answers a{font-weight:700}
.link-list{list-style:none;padding:0;margin:0}
.link-list li{padding:10px 0;border-bottom:1px solid var(--line)}
.ask-box{margin:24px 0;padding:16px 18px;border-radius:20px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-1)}
.ask-box>summary{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:800;color:var(--accent-ink);cursor:pointer;list-style:none}
.ask-box>summary::-webkit-details-marker{display:none}
.ask-box>summary::before{content:"";width:30px;height:30px;flex:none;border-radius:10px;background:var(--brand) center/18px no-repeat;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16v11H9l-5 4z'/%3E%3Cpath d='M8 9h8M8 12h5'/%3E%3C/svg%3E"),var(--brand)}
.ask-box p{font-size:13px;color:var(--muted);line-height:1.6}
.ai-badge{display:inline-flex;align-items:center;margin-left:4px;padding:1px 8px;border-radius:999px;background:var(--brand);color:#fff;font-size:11px;font-weight:850;letter-spacing:.06em;vertical-align:middle}
.ask-box textarea{width:100%;min-height:80px;resize:vertical;border:1px solid var(--line-2);border-radius:14px;padding:10px 12px;background:var(--paper-2);color:var(--ink);font-size:14px}
.ask-box .button{margin-top:10px}
.country-panel .ask-box{margin:0 16px 16px}
.ai-answer{white-space:pre-wrap;font-size:14px;color:var(--ink-2);margin-top:10px}
.ai-sources a{display:block;font-size:12px;margin-top:5px}
.ad-slot{margin:16px;padding:10px;min-height:110px;background:var(--paper);border:1px solid var(--line);border-radius:14px}
.ad-label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.guide-nav{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}
.hub-cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));align-items:stretch;grid-auto-rows:1fr}
.hub-card{text-decoration:none;color:inherit;min-height:220px;height:100%}
.hub-card .card-name{font-size:23px}
.hub-icon{display:grid;place-items:center;width:56px;height:56px;margin-bottom:6px;border-radius:18px;color:#fff;background:linear-gradient(135deg,var(--c1),var(--c2));box-shadow:0 12px 22px -10px var(--c1);transition:transform .35s var(--ease)}
.hub-card:hover .hub-icon{transform:rotate(-8deg) scale(1.08)}
.hub-card .card-open{margin-top:auto}
.fi-card{text-decoration:none;color:inherit}
.fi-line{margin:4px 0 0;font-size:14px;color:var(--ink-2);line-height:1.5}

/* ---------- 8. Route sheet (dialog and inline on route pages) ---------- */
.sheet{position:fixed;inset:0 0 0 auto;margin:0;width:min(580px,100vw);max-width:100vw;height:100dvh;max-height:100dvh;padding:0;border:0;border-radius:30px 0 0 30px;background:var(--bg);color:var(--ink);box-shadow:-30px 0 80px rgba(20,8,60,.35);transform:translateX(104%);opacity:.6;transition:transform .32s var(--ease),opacity .2s ease;overflow:hidden}
.sheet.is-open{transform:none;opacity:1}
.sheet.no-slide{transition:none}
.sheet::backdrop{background:rgba(23,10,60,.42);backdrop-filter:blur(5px)}
.sheet.sheet-wide{width:min(920px,100vw)}
.sheet-scroll{height:100%;overflow-y:auto;padding:28px 24px 0;overscroll-behavior:contain}
.sheet-close{position:absolute;top:14px;right:14px;z-index:5;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.5);background:rgba(255,255,255,.9);color:#170f30;font-size:22px;line-height:1;box-shadow:var(--sh-2);transition:transform .25s var(--ease)}
.sheet-close:hover{transform:rotate(90deg)}
.sheet-grab{display:none}
.sheet-body{--c1:var(--accent);--c2:#4c1d95}
.sheet-body:has(.sheet-hero[data-cat=nomad]){--c1:#0e7490;--c2:#164e63;--glow:#22d3ee}
.sheet-body:has(.sheet-hero[data-cat=holiday]){--c1:#15803d;--c2:#14532d;--glow:#4ade80}
.sheet-body:has(.sheet-hero[data-cat=invest]){--c1:#c2410c;--c2:#7c2d12;--glow:#fb923c}
.sheet-body:has(.sheet-hero[data-cat=pay]){--c1:#be185d;--c2:#831843;--glow:#f472b6}
.sheet-body:has(.sheet-hero[data-cat=business]){--c1:#be123c;--c2:#881337;--glow:#fb7185}
.sheet-body:has(.sheet-hero[data-cat=work]){--c1:#1d4ed8;--c2:#1e3a8a;--glow:#60a5fa}
.sheet-body:has(.sheet-hero[data-cat=student]){--c1:#b45309;--c2:#78350f;--glow:#fbbf24}
.sheet-body:has(.sheet-hero[data-cat=special]){--c1:#7c3aed;--c2:#4c1d95;--glow:#c084fc}
.sheet-body:has(.sheet-hero[data-cat=spouse]){--c1:#a21caf;--c2:#701a75;--glow:#f0abfc}
.sheet-body:has(.sheet-hero[data-cat=nationality]){--c1:#4338ca;--c2:#312e81;--glow:#a5b4fc}
.sheet-hero{position:relative;margin:-28px -24px 16px;padding:32px 24px 24px;border-radius:0 0 30px 30px;color:#fff;overflow:hidden;isolation:isolate;
  background:radial-gradient(90% 120% at 100% 0%,color-mix(in srgb,var(--glow,#c084fc) 55%,transparent),transparent 60%),linear-gradient(135deg,var(--c1),var(--c2));
  box-shadow:0 20px 40px -24px var(--c1)}
.sheet-hero .kicker{display:flex;align-items:center;gap:8px;color:#fff;font-size:12px}
.sheet-hero .kicker .icon{display:grid;box-sizing:content-box;padding:6px;border-radius:10px;background:rgba(255,255,255,.2)}
.sheet-title{margin:8px 44px 6px 0;font-size:30px;font-weight:850;letter-spacing:-.035em;line-height:1.12;color:#fff}
.sheet-figure{margin:6px 0 4px;font-family:var(--display);font-size:42px;font-weight:900;letter-spacing:-.045em;line-height:1.1;color:#fff;text-shadow:0 4px 18px rgba(0,0,0,.18)}
.sheet-figure .usd{display:inline-flex;align-items:center;margin-left:10px;padding:4px 11px;border-radius:999px;background:rgba(255,255,255,.95);color:var(--c2);font-size:15px;font-weight:850;letter-spacing:0;vertical-align:middle;text-shadow:none}
.sheet-hero .official-name{color:#fff;opacity:.92}
.sheet-hero .pill{background:rgba(255,255,255,.2);color:#fff;border-color:rgba(255,255,255,.4)}
.sheet-inline{max-width:none}
.sheet-inline .sheet-hero{margin:0 0 16px;border-radius:30px;padding:34px 30px 28px}
.sheet-inline .sheet-actions{position:static;background:none}
.sheet-inline .tiles{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0 8px}
.tile{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:18px;border-radius:20px;text-align:left;font:inherit;color:var(--ink);cursor:pointer;
  background:linear-gradient(160deg,var(--tint),var(--paper) 70%);border:1px solid color-mix(in srgb,var(--c1) 22%,var(--line));box-shadow:0 14px 28px -20px var(--c1);transition:transform .25s var(--ease),box-shadow .25s}
.tile:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 22px 34px -20px var(--c1)}
.tile:active:not(:disabled){transform:scale(.98)}
.tile:disabled{cursor:default;opacity:1}
.tile-icon{display:grid;place-items:center;width:40px;height:40px;margin-bottom:4px;border-radius:13px;color:#fff;background:linear-gradient(135deg,var(--c1),var(--c2));box-shadow:0 8px 16px -8px var(--c1)}
.tile-icon .icon{width:22px;height:22px}
.tile-label{font-size:12px;font-weight:850;letter-spacing:.07em;text-transform:uppercase;color:var(--cat-ink)}
.tile-value{font-family:var(--display);font-size:20px;font-weight:800;line-height:1.25;letter-spacing:-.01em}
.tile-value .usd{display:block;font-size:13px}
.tile:not(:disabled)::after{content:"+";position:absolute;top:14px;right:14px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:color-mix(in srgb,var(--c1) 14%,var(--paper));color:var(--cat-ink);font-weight:900;transition:transform .25s}
.tile[aria-expanded=true]::after{transform:rotate(45deg)}
.tile-more{display:block;max-height:0;overflow:hidden;opacity:0;font-size:14px;line-height:1.55;color:var(--ink-2);white-space:pre-line;transition:max-height .3s ease,opacity .25s ease}
.tile[aria-expanded=true]{grid-column:1/-1}
.tile[aria-expanded=true] .tile-more{max-height:900px;opacity:1;margin-top:6px}
.tile.tax{--c1:#0f766e;--c2:#134e4a;color:#fff;border:0;background:radial-gradient(90% 120% at 100% 0%,rgba(45,212,191,.45),transparent 60%),linear-gradient(140deg,#0f766e,#134e4a)}
.tile.tax .tile-icon{background:rgba(255,255,255,.2)}
.tile.tax .tile-label,.tile.tax .tile-value,.tile.tax .tile-more{color:#fff}
.tile.tax::after{background:rgba(255,255,255,.25);color:#fff}
.steps{display:flex;gap:12px;overflow-x:auto;list-style:none;padding:4px 2px 12px;margin:0;counter-reset:step;scroll-snap-type:x mandatory}
.steps li{position:relative;flex:0 0 240px;scroll-snap-align:start;padding:44px 16px 16px;border-radius:18px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-1);font-size:14px;line-height:1.45;counter-increment:step;transition:transform .25s var(--ease),box-shadow .25s}
.steps li:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}
.steps li::before{content:counter(step);position:absolute;top:12px;left:14px;display:grid;place-items:center;width:26px;height:26px;border-radius:9px;background:linear-gradient(135deg,var(--c1,var(--accent)),var(--c2,#4c1d95));color:#fff;font-size:13px;font-weight:900;box-shadow:0 6px 12px -6px var(--c1,var(--accent))}
.guide-steps li{flex-basis:240px}
/* Requirements checklist (issue 25): grouped, iconed, nothing cut. */
.checklist{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:12px;margin:6px 0 10px;align-items:start}
.check-group{min-width:0;padding:14px 16px 12px;border-radius:20px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-1);--c1:#6d28d9;--c2:#4c1d95}
.check-group[data-type=who]{--c1:#4338ca;--c2:#312e81}
.check-group[data-type=money]{--c1:#c2410c;--c2:#7c2d12}
.check-group[data-type=documents]{--c1:#0e7490;--c2:#164e63}
.check-group[data-type=steps]{--c1:#7c3aed;--c2:#4c1d95}
.check-group[data-type=after]{--c1:#15803d;--c2:#14532d}
.check-group[data-type=other]{grid-column:1/-1}
.check-head{display:flex;align-items:center;gap:10px;margin:0 0 8px;font-family:var(--display);font-size:16px;font-weight:850;letter-spacing:-.01em;color:var(--ink)}
.check-head .label-icon{width:30px;height:30px;border-radius:10px}
.check-count{margin-left:auto;padding:2px 9px;border-radius:999px;background:color-mix(in srgb,var(--c1) 14%,var(--paper));color:var(--cat-ink);font-family:system-ui,sans-serif;font-size:12px;font-weight:800}
.check-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.check-list li{display:flex;gap:10px;align-items:flex-start;padding:7px 2px;border-top:1px solid var(--line);font-size:14px;line-height:1.5;color:var(--ink-2)}
.check-list li:first-child{border-top:0}
.check-list li>span:last-child{min-width:0;flex:1;overflow-wrap:anywhere}
.check-mark{display:grid;place-items:center;width:22px;height:22px;flex:none;margin-top:1px;border-radius:50%;color:#fff;background:linear-gradient(135deg,var(--c1),var(--c2))}
.check-list strong{color:var(--ink)}
.steps-list{counter-reset:cstep}
.steps-list li{counter-increment:cstep;overflow-wrap:anywhere}
.steps-list li::before{content:counter(cstep);display:grid;place-items:center;width:22px;height:22px;flex:none;border-radius:8px;color:#fff;font-size:12px;font-weight:900;background:linear-gradient(135deg,var(--c1),var(--c2))}
.sheet .checklist{grid-template-columns:1fr}
@media (min-width:1000px){.sheet-inline .check-group[data-type=other] .check-list{grid-template-columns:1fr 1fr;column-gap:22px}.sheet-inline .check-group[data-type=other] .check-list li:nth-child(2){border-top:0}}
.group-intro{grid-column:1/-1;margin:-4px 2px 10px;font-size:14px;color:var(--muted)}
.country-panel .group-intro{margin:-2px 2px 0;font-size:13px}
.sheet-actions{position:sticky;bottom:0;display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;padding:14px 0 18px;background:linear-gradient(transparent,var(--bg) 30%)}
.sheet-actions .button{flex:1 1 calc(50% - 8px);white-space:nowrap;padding-inline:12px}
/* Phones: the sticky action bar is one row, so it covers as little of the sheet as possible. */
@media (max-width:600px){.sheet-actions{flex-wrap:nowrap;gap:6px;padding:10px 0 12px}.sheet-actions .button{flex:1 1 auto;min-width:0;padding:9px 6px;font-size:13px;gap:4px}}
.sheet-more{margin:6px 0 28px;font-size:15px;font-weight:800}
.sheet-more a{text-decoration:none}
.sheet .offers{margin-top:18px}
.sheet .offer-grid{grid-template-columns:1fr}
.points-slot{display:grid;gap:16px;margin:24px 0}

/* ---------- 9. Tables ---------- */
.table-wrap{overflow-x:auto;margin:18px 0;border-radius:22px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-2)}
.index-table{border-collapse:collapse;width:100%;font-size:14px}
.index-table th,.index-table td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top;white-space:nowrap}
.index-table td:nth-child(2){white-space:normal;min-width:180px}
.index-table td:last-child{white-space:normal;min-width:140px}
.index-table thead th{font-size:12px;font-weight:850;letter-spacing:.07em;text-transform:uppercase;color:#fff;background:var(--brand)}
.index-table tbody tr{transition:background .2s}
.index-table tbody tr:hover{background:var(--soft)}
.index-table td small{display:block;color:var(--muted)}
.index-table a{text-decoration:none;font-weight:700}
.index-table tr.current td{background:var(--soft);font-weight:750}
.index-table .usd-cell{font-weight:850;color:var(--accent-ink)}
.compare-table{table-layout:fixed;width:100%}
.compare-table th,.compare-table td{white-space:normal;min-width:0;font-size:13px;overflow-wrap:anywhere;padding:10px 8px}
.compare-table thead th{text-transform:none;letter-spacing:0;font-size:13px}
.compare-table thead th:first-child,.compare-table tbody th{width:22%;font-size:12px}
.shortlist-cards{grid-template-columns:1fr}
.shortlist-cards .facts-grid{display:grid;gap:6px;margin:8px 0 0}
.shortlist-cards .facts-grid div{display:flex;justify-content:space-between;gap:10px;font-size:14px;padding:6px 0;border-bottom:1px solid var(--line)}
.shortlist-cards dt{color:var(--muted)}
.shortlist-cards dd{margin:0;font-weight:700;text-align:right}
.linklike{border:0;background:none;padding:0;color:var(--accent-ink);font:inherit;font-weight:800;cursor:pointer}

/* ---------- 10. Tax cards and calculators ---------- */
.card.tax{--c1:#0f766e;--c2:#134e4a;--glow:#2dd4bf;color:#fff;border:0;
  background:radial-gradient(90% 110% at 100% 0%,color-mix(in srgb,var(--glow) 50%,transparent),transparent 58%),linear-gradient(150deg,var(--c1),var(--c2));
  box-shadow:0 22px 40px -22px var(--c1),0 2px 6px rgba(20,10,50,.08)}
.card.tax[data-regime]{--c1:inherit}
.card.tax::before{background:linear-gradient(90deg,#fff,var(--glow));opacity:.8}
.card.tax .card-deco .icon{color:#fff;opacity:.12}
.card.tax .kicker,.card.tax .card-name,.card.tax .card-name a,.card.tax .card-figure,.card.tax details.more>summary,.card.tax .more-body p,.card.tax .more-body li,.card.tax .more-body h4,.card.tax .card-open,.card.tax .key-points li{color:#fff}
.card.tax .kbadge{background:rgba(255,255,255,.22);box-shadow:none}
.card.tax .card-figure{font-size:42px}
.card.tax .pill{background:rgba(255,255,255,.18);color:#fff;border-color:rgba(255,255,255,.4)}
.card.tax .pill .icon{color:#fff}
.card.tax a{color:#fff}
.card.tax details.more{border-color:rgba(255,255,255,.3)}
.card.tax .card-open{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.45)}
.card.tax .card-open:hover{background:#fff;color:var(--c2)}
.card.tax .key-points li::before{background:#fff}
.card.tax .usd{color:#fff}
.card.tax-plain{--c1:#475569;--c2:#1e293b;--glow:#94a3b8}
.card.tax-plain .card-figure{font-size:22px}
.fi-card .card-figure{font-size:23px;color:var(--cat-ink)}
.fi-card[data-regime]{--c1:var(--c1)}
.tax-calc-slot{grid-column:1/-1}
.cards>.tax-calc{grid-column:1/-1;margin:0}
.calc-card{position:relative;padding:24px;border-radius:26px;background:linear-gradient(160deg,color-mix(in srgb,#10b981 14%,var(--paper)),var(--paper) 60%);border:1px solid color-mix(in srgb,#10b981 35%,var(--line));box-shadow:0 22px 44px -26px #047857;overflow:hidden}
.calc-card::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,#059669,#22d3ee,#6d28d9)}
.calc-card .kicker{--c1:#047857;--glow:#34d399}
.calc-card h3{margin:4px 0 14px;font-size:23px}
.calc-form{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px}
.calc-form label{display:grid;gap:4px;font-size:12px;font-weight:800;color:var(--muted)}
.calc-form input,.calc-form select{padding:11px 13px;border-radius:14px;border:1px solid var(--line-2);font-size:16px;background:var(--paper);color:var(--ink);min-width:120px;max-width:100%}
.calc-hero{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin:4px 0 12px}
.calc-hero span{width:100%;font-size:12px;font-weight:850;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.calc-hero strong{font-family:var(--display);font-size:44px;letter-spacing:-.04em;color:#047857}
.calc-hero.good strong{color:#15803d}
.calc-hero.bad strong{color:#b91c1c}
.calc-hero small{font-size:.5em;color:var(--muted)}
.calc-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0 0 14px}
.calc-stats>*{min-width:0}
.calc-stats div{padding:13px;border-radius:16px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-1)}
.calc-stats span{display:block;font-size:12px;color:var(--muted)}
.calc-stats strong{font-size:19px}
.calc-stats .good strong{color:#15803d}
.calc-table{width:100%;border-collapse:collapse;font-size:14px}
.calc-table td{padding:8px 4px;border-bottom:1px solid var(--line)}
.calc-table td:last-child{text-align:right;font-weight:700}
.calc-flags{margin:12px 0 0;padding-left:18px;font-size:14px;line-height:1.5}
.calc-flags .bad{color:#b91c1c}
.calc-note{font-size:14px;color:var(--muted);margin:12px 0 0}
/* "Your situation": one control per input the calculator declares (INPUT_META in tax/engine.mjs). */
.calc-situation{flex:1 1 100%;min-width:0;margin:0;padding:10px 14px 14px;border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--paper) 70%,transparent)}
.calc-situation legend{padding:0 6px;font-size:12px;font-weight:850;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.calc-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,136px),1fr));gap:10px 12px;align-items:end}
.calc-fields label{min-width:0}
.calc-fields label.calc-wide{grid-column:1/-1}
@media (min-width:721px){.calc-fields{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.calc-fields label.calc-wide,.calc-form .calc-fields label.calc-check{grid-column:span 2}.calc-form .calc-fields label.calc-long{grid-column:span 3}}
.calc-fields input[type=number],.calc-fields select{width:100%;min-width:0}
.calc-form label.calc-check{grid-column:1/-1;display:flex;align-items:center;gap:10px;min-height:44px;font-size:14px;font-weight:650;line-height:1.35;color:var(--ink);cursor:pointer}
.calc-form .calc-check input{flex:none;width:22px;height:22px;min-width:0;padding:0;margin:0;accent-color:#047857}
.calc-check span{min-width:0}
.calc-unit{font-weight:650;opacity:.8}
.calc-help{display:block;font-size:12px;font-weight:500;color:var(--muted)}
.calc-more{margin-top:10px}
.calc-more summary{display:inline-flex;align-items:center;min-height:44px;font-size:13px;font-weight:750;color:var(--muted);cursor:pointer}
.calc-more .calc-fields{margin-top:4px}
.calc-stop{padding:14px 16px;border-radius:16px;background:color-mix(in srgb,#f59e0b 12%,var(--paper));border:1px solid color-mix(in srgb,#f59e0b 45%,var(--line))}
.calc-stop>strong{display:block;font-size:17px;line-height:1.4}
.calc-stop .calc-flags{margin-top:4px}
.calc-check-title{margin:12px 0 0;font-size:12px;font-weight:850;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.calc-why{margin:0 0 12px;padding:11px 14px;border-radius:14px;background:var(--paper);border:1px solid var(--line);font-size:15px;font-weight:650;line-height:1.45}
.calc-assume{margin:12px 0 0;font-size:13px;line-height:1.5;color:var(--muted)}
.calc-assume strong{margin-right:4px;font-size:12px;letter-spacing:.07em;text-transform:uppercase}
.calc-situation,.calc-stop,.calc-why,.calc-assume,.calc-check span{overflow-wrap:anywhere}
.tax-calc{margin:12px 0 18px;padding:18px;border-radius:22px;background:var(--tax-soft);border:1px solid color-mix(in srgb,var(--tax) 30%,var(--line))}
.tax-calc output{display:grid;gap:4px}
.tax-calc output .warn{color:#8c6829}
.pts-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:10px 14px}
.pts-check{display:flex!important;gap:8px;align-items:flex-start;font-weight:500}
.pts-check input{margin-top:3px;flex-shrink:0;accent-color:var(--accent)}
.pts-multi{grid-column:1/-1;padding:8px 12px;border:1px solid var(--line);border-radius:14px}
.pts-multi legend{font-size:13px;font-weight:700}
.pts-form [hidden]{display:none!important}
.pts-mark{display:block;font-weight:700;margin-top:2px}
.pts-label{font-weight:800;margin:12px 0 4px}
.pts-wins{margin:0;padding-left:18px}
.pts-wins strong{color:#15803d}

/* ---------- 11. Guides ---------- */
.guide-lead{font-size:19px;line-height:1.65;max-width:780px;color:var(--ink-2)}
/* The answer first (country, tax and hub pages): plain sentences with the figures, quotable on their own. */
.answer-lead{font-size:17px;line-height:1.6;max-width:780px;color:var(--ink);margin:6px 0 14px}
.answer-lead a{font-weight:600}
.answer-lead .usd{font-size:.85em}
.suits{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 24px}
.suit{padding:8px 15px;border-radius:999px;color:#fff;font-size:14px;font-weight:750;background:linear-gradient(120deg,#7c3aed,#db2777);box-shadow:0 8px 18px -10px #db2777}
.suit:nth-child(3n+2){background:linear-gradient(120deg,#0e7490,#4338ca)}
.suit:nth-child(3n){background:linear-gradient(120deg,#c2410c,#be185d)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin:12px 0 30px}
.stat{position:relative;display:grid;gap:4px;padding:18px;border-radius:22px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-2);overflow:hidden}
.stat::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--brand-wide)}
.stat-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;color:#fff;background:var(--brand);box-shadow:0 8px 16px -8px #a21caf}
.stat:nth-child(2) .stat-icon{background:linear-gradient(135deg,#0e7490,#164e63)}
.stat:nth-child(3) .stat-icon{background:linear-gradient(135deg,#c2410c,#7c2d12)}
.stat:nth-child(4) .stat-icon{background:linear-gradient(135deg,#be185d,#831843)}
.stat:nth-child(5) .stat-icon{background:linear-gradient(135deg,#0f766e,#134e4a)}
.stat-label{font-size:12px;font-weight:850;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.stat strong{font-family:var(--display);font-size:24px;letter-spacing:-.03em}
.stat small{color:var(--muted);font-size:13px}
.guide-note{color:var(--muted);font-size:15px}
.guide-routes{display:grid;gap:16px}
.guide-route{position:relative;padding:20px 22px;border-radius:24px;background:linear-gradient(150deg,var(--tint),var(--paper) 65%);border:1px solid color-mix(in srgb,var(--c1) 24%,var(--line));box-shadow:0 18px 36px -24px var(--c1);overflow:hidden}
.guide-route::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(180deg,var(--c1),var(--glow))}
.guide-route h3{margin:4px 0 6px;font-size:23px}
.guide-route h3 a{color:inherit;text-decoration:none}
.guide-route h3 a:hover{color:var(--cat-ink);text-decoration:underline}
.guide-route .kicker .icon{display:grid;box-sizing:content-box;padding:6px;border-radius:10px;color:#fff;background:linear-gradient(135deg,var(--c1),var(--c2))}
.guide-figure{margin:2px 0 8px;font-family:var(--display);font-size:28px;font-weight:900;letter-spacing:-.035em}
.guide-figure .usd{font-size:15px;margin-left:6px}
.guide-route p{line-height:1.6}
.guide-route .pill{background:var(--paper)}
.guide-tax{list-style:none;padding:0;display:grid;gap:12px}
.guide-tax li{display:grid;gap:6px;padding:16px 18px;border-radius:20px;color:var(--ink);background:linear-gradient(150deg,var(--tax-soft),var(--paper) 70%);border:1px solid color-mix(in srgb,var(--tax) 30%,var(--line));box-shadow:var(--sh-1)}
.guide-tax .pill{--c1:#0f766e}

/* ---------- 12. Finder dialog ---------- */
.profile-dialog{width:min(640px,calc(100vw - 24px));max-height:90vh;overflow:auto;padding:0;border:0;border-radius:28px;background:var(--paper);color:var(--ink);box-shadow:0 40px 120px rgba(20,8,60,.45)}
.profile-dialog::backdrop{background:rgba(23,10,60,.5);backdrop-filter:blur(5px)}
body:has(dialog[open]){overflow:hidden}
.dialog-head{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:16px 22px;color:#fff;background:var(--brand-wide);background-size:200% 100%;animation:slide 10s linear infinite}
.dialog-head strong{font-size:14px;letter-spacing:.02em}
.dialog-head button{width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.5);background:rgba(255,255,255,.18);color:#fff;font-size:22px}
.profile-body{padding:22px}
.profile-body h2{margin:0 0 10px;font-size:27px;font-weight:850;letter-spacing:-.03em}
.profile-body>p{color:var(--muted);font-size:14px}
.step-line{height:7px;margin-bottom:20px;border-radius:99px;background:var(--soft);overflow:hidden}
.step-line span{display:block;height:100%;border-radius:99px;background:var(--brand-wide);transition:width .4s var(--ease)}
.profile-label{display:block;margin:15px 0 6px;font-size:13px;font-weight:800;color:var(--muted)}
.profile-input{width:100%;min-width:0;padding:12px 13px;border-radius:14px;border:1px solid var(--line-2);background:var(--paper-2);color:var(--ink)}
.profile-choice{display:flex;gap:10px;align-items:flex-start;margin-top:8px;padding:12px 14px;border-radius:16px;border:1px solid var(--line);background:var(--paper);font-size:14px;cursor:pointer;transition:border-color .2s,background .2s,transform .2s}
.profile-choice:hover{transform:translateX(3px);border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}
.profile-choice:has(input:checked){border-color:var(--accent);background:var(--soft);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}
.profile-choice input{accent-color:var(--accent);margin-top:4px}
.profile-choice small{color:var(--muted);margin-left:4px}
.band-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px}
.band-row .profile-choice{margin-top:0}
.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.profile-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:22px}
.profile-hint{font-size:12px;color:var(--muted)}
.profile-dialog .cards{grid-template-columns:1fr}
.finder-reasons{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:5px}
.finder-reasons li{font-size:13px;border-radius:10px;padding:6px 10px;background:var(--soft);color:var(--ink-2)}
.finder-reasons li.pass{background:#dcfce7;color:#14532d}
.finder-reasons li.fail{background:#fee2e2;color:#7f1d1d}
.finder-reasons li.unknown{background:#fef3c7;color:#78350f}
.finder-reasons li.tax{background:#ccfbf1;color:#134e4a}
.finder-card .more-links{display:flex;gap:14px;margin-top:10px;font-size:14px;font-weight:800}
.finder-group{margin:18px 0 8px;font-size:15px}
/* "Where could I even go?" quiz (quiz.js): inline on /where-can-i-go/ and inside the finder dialog. */
.profile-dialog:has(.qz-results){width:min(980px,calc(100vw - 24px))}
.qz{padding:22px;min-width:0}
.qz-host{scroll-margin-top:96px}
.qz-host:not(dialog *){margin:0 0 26px;border-radius:28px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-3);position:relative;overflow:hidden}
.qz-host:not(dialog *)::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:var(--brand-wide);background-size:200% 100%;animation:slide 10s linear infinite}
.qz-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.qz-step-icon{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:14px;color:#fff;background:var(--brand);box-shadow:0 10px 22px -10px rgba(162,28,175,.7);animation:bob 4s var(--ease) infinite}
.qz-count{margin:0;font-size:13px;font-weight:800;letter-spacing:.04em;color:var(--muted)}
.qz-dots{display:flex;gap:6px;margin:0 0 0 auto;padding:0;list-style:none}
.qz-dots li{width:26px;height:8px;border-radius:99px;background:var(--soft);transition:background .3s,width .3s var(--ease)}
.qz-dots li.done{background:color-mix(in srgb,var(--accent) 55%,var(--soft))}
.qz-dots li.now{width:40px;background:var(--brand-wide)}
.qz .qz-title{margin:0 0 4px;font-family:var(--display);font-size:clamp(24px,4vw,30px);font-weight:850;letter-spacing:-.03em;line-height:1.15;outline:none}
.qz-hint{margin:0 0 6px;color:var(--muted);font-size:14px}
.qz-form{display:grid;gap:4px}
.qz-field{min-width:0;margin-top:12px}
.qz-label{display:block;margin:0 0 7px;font-size:13px;font-weight:850;color:var(--ink-2)}
.qz-sub{margin:-3px 0 7px;font-size:12.5px;color:var(--muted)}
.qz-num{display:flex;align-items:center;gap:8px;min-width:0}
.qz-num input,.qz-combo-box input,.qz-select{width:100%;min-width:0;min-height:46px;padding:11px 14px;border-radius:14px;border:1px solid var(--line-2);background:var(--paper-2);color:var(--ink);font:inherit;font-size:16px}
.qz-num input{max-width:240px}
.qz-num input:focus,.qz-combo-box input:focus,.qz-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent);outline:none}
.qz-suffix{font-size:13px;font-weight:800;color:var(--muted);white-space:nowrap}
.qz-ccy .qz-select{max-width:200px}
.qz-money-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:4px 14px}
.qz-money-grid .qz-num input{max-width:none}
.qz-usd{margin:8px 0 0;font-size:13px;font-weight:700;color:var(--accent-ink)}
.qz-usd:empty{display:none}
.qz-choices{display:flex;flex-wrap:wrap;gap:8px}
.qz-choice{position:relative;display:inline-flex;align-items:center;min-height:42px;padding:0;border-radius:999px;cursor:pointer}
.qz-choice input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.qz-choice span{display:inline-flex;align-items:center;gap:6px;padding:9px 15px;border-radius:999px;border:1px solid var(--line-2);background:var(--paper);font-size:14px;font-weight:700;color:var(--ink-2);transition:background .2s,border-color .2s,color .2s,transform .2s var(--ease)}
.qz-choice:hover span{border-color:var(--accent);transform:translateY(-1px)}
.qz-choice input:checked+span{color:#fff;border-color:transparent;background:var(--brand);box-shadow:0 8px 18px -10px rgba(162,28,175,.8)}
.qz-choice[data-cat] input:checked+span{background:linear-gradient(120deg,var(--c1),var(--c2))}
.qz-choice input:checked+span::before{content:"✓";font-weight:900}
.qz-choice input:focus-visible+span{outline:3px solid var(--focus);outline-offset:2px}
.qz-combo{position:relative}
.qz-combo-box{position:relative;display:flex;align-items:center}
.qz-combo-icon{position:absolute;left:13px;color:var(--muted);pointer-events:none;display:grid}
.qz-combo-box input{padding-left:40px}
.qz-options{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:5;max-height:280px;overflow:auto;margin:0;padding:6px;list-style:none;border-radius:16px;border:1px solid var(--line-2);background:var(--paper);box-shadow:var(--sh-3)}
.qz-options li{display:flex;align-items:baseline;gap:9px;padding:10px 12px;border-radius:11px;font-size:15px;cursor:pointer;overflow-wrap:anywhere}
.qz-options li small{color:var(--muted);font-size:12.5px}
.qz-options li[aria-selected=true],.qz-options li:hover{background:var(--soft);color:var(--accent-ink)}
.qz-options li.qz-opt-special{border-top:1px solid var(--line);margin-top:4px;font-weight:750;color:var(--accent-ink)}
.qz-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.qz-chip{display:inline-flex;align-items:center;gap:7px;max-width:100%;padding:6px 6px 6px 13px;border-radius:999px;background:var(--soft);color:var(--accent-ink);font-size:14px;font-weight:750;overflow-wrap:anywhere}
.qz-chip button{display:grid;place-items:center;width:28px;height:28px;flex:none;border:0;border-radius:50%;background:var(--paper);color:var(--ink-2);font-size:17px;line-height:1;cursor:pointer}
.qz-chip button:hover{background:var(--accent);color:#fff}
.qz-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px 16px;margin-top:22px}
.qz-actions .button.secondary:first-child{margin-right:auto}
.qz-actions .button .icon{flex:none}
.qz-skip{color:var(--muted)}
.qz-foot{margin:14px 0 0;font-size:12.5px;color:var(--muted)}
.qz-foot .linklike{font-size:13px}
/* Results */
.qz-res-head{position:relative;margin:-22px -22px 6px;padding:22px 22px 16px;border-radius:0 0 26px 26px;background:radial-gradient(500px 160px at 90% 0%,color-mix(in srgb,#db2777 16%,transparent),transparent 70%),linear-gradient(160deg,var(--soft),var(--paper) 75%)}
.qz-res-sum{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 6px}
.qz-stat{display:inline-flex;align-items:center;gap:6px;padding:6px 13px;border-radius:999px;font-size:14px;font-weight:850}
.qz-stat.match{background:#dcfce7;color:#14532d}
.qz-stat.possible{background:#fef3c7;color:#78350f}
.qz-answers{font-size:13px;font-weight:650;color:var(--muted);overflow-wrap:anywhere}
.qz-note{display:flex;gap:8px;align-items:flex-start;margin:4px 0 8px;font-size:13px;line-height:1.5;color:var(--muted)}
.qz-note .icon{flex:none;margin-top:2px;color:var(--accent)}
.qz-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin:6px 0 4px}
.qz-toggle{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:750;cursor:pointer}
.qz-toggle input{width:18px;height:18px;accent-color:var(--accent)}
.qz-jumps{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.qz-jump{text-align:left;display:inline-flex;align-items:center;gap:8px;padding:5px 12px 5px 5px;border-radius:999px;border:1px solid color-mix(in srgb,var(--c1) 30%,var(--line));background:var(--paper);color:var(--ink);font:inherit;font-size:13.5px;font-weight:750;cursor:pointer;box-shadow:var(--sh-1);transition:transform .2s var(--ease),box-shadow .2s}
.qz-jump:hover{transform:translateY(-2px);box-shadow:var(--sh-2)}
.qz-jump .kbadge{width:26px;height:26px;border-radius:50%}
.qz-jump b{padding:1px 8px;border-radius:999px;background:color-mix(in srgb,var(--c1) 14%,var(--paper));color:var(--cat-ink);font-size:12px}
.qz-group{margin-top:8px;scroll-margin-top:70px}
.qz-group .section-pill{margin:22px 0 8px}
.qz-group .section-pill:focus{outline:none}
.qz-featured{margin:14px -8px 6px;padding:2px 8px 14px;border-radius:24px;background:radial-gradient(420px 140px at 0% 0%,color-mix(in srgb,#c084fc 26%,transparent),transparent 70%),linear-gradient(160deg,color-mix(in srgb,#7c3aed 9%,var(--paper)),transparent 80%);border:1px solid color-mix(in srgb,#7c3aed 22%,var(--line))}
.qz-featured .section-pill{background:linear-gradient(120deg,#7c3aed,#c026d3 55%,#db2777);box-shadow:0 10px 24px -12px #7c3aed}
.qz-featured .section-pill .icon{animation:spinpop 3.5s var(--ease) infinite}
.profile-dialog .qz-cards,.qz-cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,262px),1fr));gap:14px}
.qz-cards>.card:only-child{max-width:520px}
.qz-card{padding:18px 18px 16px;gap:6px}
.qz-card .kicker{letter-spacing:.05em}
.qz-flag{font-size:16px;letter-spacing:0}
.qz-card .card-name{font-size:18px}
.qz-card .card-figure{font-size:24px;margin:2px 0}
.qz-status{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:2px 0 0}
.qz-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;font-size:12.5px;font-weight:850}
.qz-badge.match{background:#dcfce7;color:#14532d}
.qz-badge.possible{background:#fef3c7;color:#78350f}
.qz-path{font-size:13px;font-weight:700;color:var(--cat-ink);overflow-wrap:anywhere}
.qz-why{list-style:none;margin:2px 0 0;padding:0;display:grid;gap:3px}
.qz-why li{display:flex;gap:6px;align-items:flex-start;font-size:13.5px;color:var(--ink-2);overflow-wrap:anywhere}
.qz-why .icon{flex:none;margin-top:3px;color:#16a34a}
.qz-open{margin-top:4px;padding:8px 11px;border-radius:13px;background:color-mix(in srgb,#f59e0b 11%,var(--paper));border:1px dashed color-mix(in srgb,#f59e0b 45%,var(--line))}
.qz-open p{margin:0 0 3px;font-size:11.5px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;color:#92400e}
.qz-open ul{margin:0;padding-left:17px;display:grid;gap:2px}
.qz-open li{font-size:13px;line-height:1.45;color:var(--ink-2);overflow-wrap:anywhere}
.qz-hh{margin-top:4px;padding:8px 11px;border-radius:13px;background:color-mix(in srgb,#db2777 7%,var(--paper));border:1px solid color-mix(in srgb,#db2777 22%,var(--line))}
.qz-hh>p{display:flex;align-items:center;gap:5px;margin:0 0 4px;font-size:11.5px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;color:#9d174d}
.qz-hh ul{list-style:none;margin:0;padding:0;display:grid;gap:3px}
.qz-hh li{display:flex;gap:6px;align-items:flex-start;font-size:13px;line-height:1.45;color:var(--ink-2);overflow-wrap:anywhere}
.qz-hh li .icon{flex:none;margin-top:2px;color:var(--muted)}
.qz-hh li[data-tone=ok] .icon{color:#16a34a}
.qz-hh li[data-tone=no] .icon{color:#dc2626}
.qz-hh li[data-tone=check] .icon{color:#d97706}
.qz-hh li[data-tone=info] .icon{color:#7c3aed}
.qz-hh a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.qz-kids{border:0;margin:14px 0 0;padding:0;min-width:0}
.qz-card .card-open{margin-top:6px}
.qz-more{margin-top:12px}
.qz-possible{margin:14px 0 4px;border-radius:var(--r2,18px);background:var(--paper);border:1px dashed color-mix(in srgb,var(--c1,#64748b) 40%,var(--line))}
.qz-possible>summary{display:flex;align-items:center;gap:9px;min-height:46px;padding:10px 16px;cursor:pointer;list-style:none;font-size:14px;font-weight:800;color:var(--ink-2)}
.qz-possible>summary::-webkit-details-marker{display:none}
.qz-possible>summary .icon{flex:none;color:var(--c1,var(--accent))}
.qz-possible>summary span{flex:1;min-width:0}
.qz-possible>summary::after{content:"+";display:grid;place-items:center;flex:none;width:22px;height:22px;border-radius:50%;background:linear-gradient(120deg,var(--c1,#64748b),var(--c2,#334155));color:#fff;font-size:15px;line-height:1;transition:transform .25s}
.qz-possible[open]>summary::after{transform:rotate(45deg)}
.qz-possible>summary:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:inherit}
.qz-possible>.qz-cards{padding:2px 14px 14px}
.qz-possible>.qz-more{margin:0 14px 14px}
.qz-none{margin:2px 2px 0;font-size:14px;color:var(--muted)}
.qz-rest{margin-top:26px}
.qz-rest>.section-label{display:flex;align-items:center;gap:8px;margin:0 0 6px}
.qz-rest .qz-possible{margin-top:8px}
.qz-empty{display:flex;gap:12px;align-items:center;margin-top:18px;padding:16px;border-radius:18px;background:var(--soft)}
.qz-empty p{margin:0;font-weight:650}
.qz-end{justify-content:flex-start}
.qz-end .button.secondary:first-child{margin-right:0}
.qz-results .offers{margin:18px 0 6px}
.qz-schemes{margin-top:16px;padding:14px 14px 6px;border:1px solid color-mix(in srgb,#7c3aed 24%,var(--line));border-radius:18px;background:linear-gradient(160deg,color-mix(in srgb,#7c3aed 8%,var(--paper)),var(--paper) 70%)}
.qz-schemes legend{padding:0 6px;margin-left:-6px}
.qz-scheme{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;padding:8px 0;border-top:1px solid var(--line)}
.qz-scheme:first-of-type{border-top:0}
.qz-scheme-name{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin:0;font-weight:800;font-size:14.5px;min-width:0}
.qz-scheme-name small{font-weight:650;color:var(--muted);font-size:12.5px;overflow-wrap:anywhere}
.qz-scheme-name .qz-rule{flex-basis:100%}
.qz-scheme .qz-choices{gap:6px}
.qz-scheme .qz-choice span{padding:6px 12px;font-size:13px}
.qz-scheme .qz-choice{min-height:36px}
.quiz-intro{display:grid;gap:10px;padding:22px}
.quiz-intro ol{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.quiz-intro li{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:var(--soft);font-weight:750;font-size:14px}
.quiz-intro li .icon{color:var(--accent)}
.quiz-order{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 4px;padding:0;list-style:none}
.quiz-order a{display:inline-flex;align-items:center;gap:8px;padding:6px 14px 6px 6px;border-radius:999px;border:1px solid color-mix(in srgb,var(--c1) 30%,var(--line));background:var(--paper);color:var(--ink);font-weight:750;font-size:14px;text-decoration:none;box-shadow:var(--sh-1)}
.quiz-order a .kbadge{width:28px;height:28px;border-radius:50%}
.quiz-order a:hover{border-color:var(--c1);color:var(--cat-ink)}
@media (prefers-color-scheme:dark){
  :root:not([data-mode=light]) .qz-stat.match,:root:not([data-mode=light]) .qz-badge.match{background:#14532d;color:#dcfce7}
  :root:not([data-mode=light]) .qz-stat.possible,:root:not([data-mode=light]) .qz-badge.possible{background:#78350f;color:#fef3c7}
  :root:not([data-mode=light]) .qz-open p{color:#fcd34d}
  :root:not([data-mode=light]) .qz-hh>p{color:#f9a8d4}
}
@media (max-width:600px){
  .qz{padding:18px 16px}
  .qz-res-head{margin:-18px -16px 6px;padding:18px 16px 14px}
  .qz-dots{display:none}
  .qz-featured{margin-inline:-6px;padding-inline:6px}
  .qz-actions{gap:10px}
  .qz-actions .button.primary{flex:1 1 auto}
  .qz-jumps{flex-wrap:nowrap;overflow-x:auto;margin-inline:-16px;padding:2px 16px 8px;scrollbar-width:none}
  .qz-jump{flex:none;white-space:nowrap}
}
.toast{position:fixed;left:50%;bottom:22px;z-index:60;max-width:calc(100vw - 24px);padding:12px 18px;border-radius:999px;background:var(--brand);color:#fff;font-size:14px;font-weight:700;box-shadow:0 16px 40px -10px rgba(124,58,237,.6);transform:translate(-50%,20px) scale(.96);opacity:0;pointer-events:none;transition:opacity .2s,transform .3s var(--ease)}
.toast.visible{opacity:1;transform:translate(-50%,0) scale(1)}

/* ---------- 13. Footer ---------- */
footer{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;margin-top:56px;padding:32px max(24px,calc((100vw - 1322px)/2));color:#ede9fe;background:radial-gradient(600px 200px at 85% 0%,rgba(219,39,119,.35),transparent 70%),linear-gradient(120deg,#1e1048,#2e1065 55%,#4a044e);overflow:hidden}
footer::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--brand-wide)}
footer .brand{color:#fff;font-size:18px}
footer>div,.footer-links{display:flex;flex-wrap:wrap;gap:8px 20px}
.legal-facts{display:grid;gap:0;margin:18px 0;max-width:640px;border-radius:18px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-1);overflow:hidden}
.legal-facts div{display:grid;grid-template-columns:minmax(0,200px) minmax(0,1fr);gap:12px;padding:12px 16px;border-top:1px solid var(--line)}
.legal-facts div:first-child{border-top:0}
.legal-facts dt{font-weight:750;color:var(--muted)}
.legal-facts dd{margin:0;font-weight:650;overflow-wrap:anywhere}
@media (max-width:720px){.legal-facts div{grid-template-columns:1fr;gap:2px}}
footer a{color:#ede9fe;font-size:14px;font-weight:600;text-decoration:none}
footer a:hover{color:#fff;text-decoration:underline}

/* Dark mode: status colours that sit on dark surfaces. */
@media (prefers-color-scheme:dark){
  :root:not([data-mode=light]) .calc-hero strong,:root:not([data-mode=light]) .calc-stats .good strong,:root:not([data-mode=light]) .pts-wins strong{color:#4ade80}
  :root:not([data-mode=light]) .calc-hero.bad strong,:root:not([data-mode=light]) .calc-flags .bad{color:#fca5a5}
  :root:not([data-mode=light]) .tax-calc output .warn{color:#fcd34d}
  :root:not([data-mode=light]) .calc-card .kicker{--cat-ink:#6ee7b7}
}

/* ---------- 14. Motion ---------- */
@keyframes slide{from{background-position:0% 50%}to{background-position:200% 50%}}
@keyframes aurora{0%{background-position:0% 30%}100%{background-position:100% 70%}}
@keyframes bannerdrift{0%{background-position:0 0,0% 0}100%{background-position:0 0,100% 0}}
@keyframes sheen{0%,60%{background-position:160% 0}100%{background-position:-60% 0}}
@keyframes orbit{to{transform:rotate(360deg)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes float{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-7px) rotate(2deg)}}
@keyframes drift{0%{transform:translate(0,0) rotate(-12deg)}100%{transform:translate(-24px,12px) rotate(-4deg)}}
@keyframes wiggle{0%,100%{transform:rotate(0)}30%{transform:rotate(-12deg)}60%{transform:rotate(8deg)}}
@keyframes spinpop{0%,70%,100%{transform:rotate(0) scale(1)}80%{transform:rotate(-20deg) scale(1.2)}90%{transform:rotate(15deg) scale(1.1)}}
@keyframes ping{0%{transform:scale(.6);opacity:.9}100%{transform:scale(1.9);opacity:0}}
@keyframes twinkle{from{opacity:.35}to{opacity:1}}
@keyframes rise{from{transform:translateY(14px) scale(.98);opacity:.2}to{transform:none;opacity:1}}
@keyframes pop{0%{transform:scale(.9)}60%{transform:scale(1.05)}100%{transform:none}}
@keyframes shimmer{0%{background-position:100% 50%}100%{background-position:0 50%}}
@keyframes sheetup{from{transform:translateY(40%);opacity:.4}to{transform:none;opacity:1}}
.pop{display:inline-block;animation:pop .5s var(--ease)}
/* Scroll reveal (page.js adds .js-motion only when motion is allowed). */
.js-motion [data-reveal].pre:not(.in){opacity:0;transform:translateY(26px) scale(.97)}
.js-motion [data-reveal].pre.in{animation:revealin .7s var(--ease) backwards;animation-delay:calc(var(--d,0) * 70ms)}
@keyframes revealin{from{opacity:0;transform:translateY(26px) scale(.97)}to{opacity:1;transform:none}}

/* Explorer panel density (issue 23): more routes on screen, same colour and icons. */
.country-panel .country-banner{height:64px;margin:-14px -18px 10px}
.country-panel .country-banner .banner-flag{font-size:46px;right:16px;bottom:-2px}
.country-panel .banner-shape{right:72px;top:6px;height:calc(100% - 12px)}
.country-panel .country-head{padding:14px 18px 0}
.country-panel .country-head h2{font-size:22px}
.country-panel .country-subline{margin:2px 0 6px;font-size:12px}
.country-panel .country-view-tabs button{padding:7px 6px 8px;font-size:13px}
.country-panel .tax-peek{margin:12px 14px 0;width:calc(100% - 28px);padding:10px 14px;border-radius:14px;font-size:13px;line-height:1.35}
.country-panel .cards{padding:12px 14px;gap:10px;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr))}
.country-panel .section-label{margin:8px 0 0;font-size:13px}
.country-panel .section-pill{padding:5px 12px 5px 6px;font-size:13px;box-shadow:0 6px 14px -8px var(--c1)}
.country-panel .section-pill .icon{padding:4px;width:14px;height:14px}
.country-panel .card{gap:4px;padding:13px 14px 12px;border-radius:16px}
.country-panel .card::before{left:12px;right:12px;height:3px}
.country-panel .card .kicker{font-size:11px;gap:7px}
.country-panel .card .kbadge{width:26px;height:26px;border-radius:9px}
.country-panel .card .kbadge .icon{width:14px;height:14px}
.country-panel .card-name{font-size:15px;line-height:1.3;padding-right:34px}
.country-panel .card-figure{font-size:21px;margin:2px 0 0}
.country-panel .card-figure .usd{font-size:12px;padding:2px 7px}
.country-panel .pills{gap:4px;margin-top:4px}
.country-panel .pill{padding:3px 8px;font-size:12px;gap:4px}
.country-panel .pill .icon{width:12px;height:12px}
.country-panel .card-open{margin-top:4px;padding:5px 11px;font-size:13px}
.country-panel .star{top:10px;right:10px;width:30px;height:30px}
.country-panel .star .icon{width:15px;height:15px}
.country-panel .card-deco .icon{width:84px;height:84px;right:-12px;bottom:-16px}
.country-panel .options-card{grid-column:1/-1}
.country-panel .opt-from{font-size:19px}
.country-panel .opt-list{gap:4px;margin-top:6px}
.country-panel .opt-row{padding:6px 10px;border-radius:11px}
.country-panel .opt-name,.country-panel .opt-figure{font-size:13px}
.country-panel .pp-badge{font-size:11px;padding:2px 8px}
.country-panel .rate-note{grid-column:1/-1}
.country-panel details.short-stays>summary{padding:7px 13px;font-size:12px}
.country-panel .offers{margin:4px 14px 14px}
.country-panel .offer-grid{grid-template-columns:1fr;gap:6px}
.country-panel .offer-card,.sheet .offer-card{flex-wrap:wrap;gap:10px 12px;padding:14px}
.country-panel .offer-body,.sheet .offer-body{flex:1 1 60%}
.country-panel .offer-cta,.sheet .offer-cta{flex:1 1 100%;justify-content:center}
.country-panel .offer-lead .offer-title,.sheet .offer-lead .offer-title{font-size:17px}
@media (min-width:1400px){.country-panel .opt-list{grid-template-columns:1fr 1fr;column-gap:8px}}

/* ---------- 15. Responsive ---------- */
@media (max-width:1250px){.topbar nav a .icon{display:none}.topbar nav a{padding:9px 9px}.intro-art{opacity:.55}}
@media (max-width:1100px){.topbar nav a[href="/nomad-visa-income-requirements/"]{display:none}}
@media (max-width:1050px){.explorer-grid{grid-template-columns:minmax(0,1fr) minmax(340px,1fr)}.country-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.path-field>span{display:none}}
@media (max-width:1000px){
  .index-table:not(.compare-table) thead{display:none}
  .index-table:not(.compare-table),.index-table:not(.compare-table) tbody,.index-table:not(.compare-table) tr,.index-table:not(.compare-table) td{display:block;width:auto}
  .index-table:not(.compare-table) tr{padding:14px 16px;border-bottom:1px solid var(--line)}
  .index-table:not(.compare-table) td{border:0;padding:2px 0;white-space:normal;min-width:0}
  .index-table:not(.compare-table) td:first-child{font-weight:800;font-size:16px}
  .index-table:not(.compare-table) td:nth-child(2){min-width:0}
  .index-table:not(.compare-table) td[data-label]::before{content:attr(data-label) ": ";font-size:11px;font-weight:850;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
  .index-table:not(.compare-table) td:first-child::before{display:none}
  .index-table:not(.compare-table) td.empty-cell{display:none}
  .index-table:not(.compare-table) td.usd-cell{font-size:22px;font-weight:900;padding:4px 0}
  .index-table:not(.compare-table) td.source-cell{font-size:12px}
  .index-table:not(.compare-table) td.source-cell a{font-weight:500;color:var(--muted)}
  .index-table:not(.compare-table) td.source-cell small{display:inline;margin-left:4px}
}
@media (max-width:900px){.topbar nav a[href="/visas/"]{display:none}.intro-art{display:none}}
@media (min-width:721px){.steps{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));overflow:visible;scroll-snap-type:none}}
@media (max-width:720px){
  .topbar{top:8px;height:60px;margin:8px;padding:0 8px 0 12px;gap:10px;border-radius:18px}
  .topbar nav{display:none}
  .brand{font-size:18px}.brand-mark{width:30px;height:30px}
  .topbar .button{margin-left:auto;font-size:13px;padding:9px 13px;min-height:40px}
  .intro{padding:22px 16px 8px}
  .intro h1{font-size:44px}
  .promise{font-size:16px}
  .plan-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .plan-link{padding:10px}
  .plan-icon{width:36px;height:36px;border-radius:12px}
  .explorer{padding:0 12px}
  .explore-toolbar{flex-wrap:wrap;gap:8px}
  .search-field{max-width:none;flex-basis:100%;min-height:50px}
  .path-field{flex:1;min-height:44px}
  .path-field select{width:100%;min-width:0;font-size:13px}
  .explorer-grid{display:flex;flex-direction:column;gap:12px}
  .map-frame{height:calc(100svh - 240px);min-height:380px;border-radius:22px}
  .country-panel{height:auto;max-height:none;min-height:0;overflow:visible;border-radius:22px}
  .country-panel.has-country{position:fixed;left:0;right:0;bottom:0;z-index:30;height:56svh;max-height:none;min-height:0;margin:0;border-radius:26px 26px 0 0;box-shadow:0 -16px 50px rgba(20,8,60,.35);overflow:auto;background:var(--paper);transition:height .3s var(--ease);animation:sheetup .35s var(--ease)}
  .country-panel.has-country.expanded{height:92svh}
  /* Drawer bar: a zero-height sticky strip over the banner, so the grab handle and the close button stay
     in reach however far the drawer is scrolled. */
  .country-panel.has-country .drawer-bar{display:block;position:sticky;top:0;z-index:6;height:0}
  .country-panel.has-country .panel-grab{display:block;position:absolute;left:64px;right:64px;top:0;height:40px;border:0;background:transparent;cursor:grab;touch-action:none}
  .country-panel.has-country .panel-grab::before{content:"";display:block;width:46px;height:5px;margin:10px auto;border-radius:9px;background:rgba(255,255,255,.95);box-shadow:0 0 0 1px rgba(20,8,60,.22),0 1px 5px rgba(0,0,0,.35)}
  .country-panel.has-country .drawer-close{position:absolute;top:10px;right:10px;display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--ink);box-shadow:0 6px 18px rgba(20,8,60,.28);cursor:pointer}
  .country-panel.has-country .panel-close{display:none}
  .country-panel.has-country .country-banner .banner-flag{right:66px}
  .country-panel.has-country .banner-shape{right:126px}
  .country-head{position:relative;padding:17px 16px 0}
  .country-head h2{font-size:25px}
  .country-panel .country-banner{margin:-14px -14px 10px}
  .country-panel .country-head{padding:14px 14px 0}
  .route-list,.tax-list{padding:12px}
  .country-panel .cards{padding:12px}
  .destinations{padding:0 14px;margin-top:34px}
  .directory-head{flex-direction:column;align-items:flex-start;gap:12px}
  .directory-head h2{font-size:28px}
  .country-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .country-tile{padding:58px 12px 13px}
  .country-tile .tile-flag{font-size:34px;top:20px}
  .country-tile strong{font-size:15px}
  .cards{grid-template-columns:1fr}
  .options-card{grid-column:auto}
  .card-figure{font-size:27px}
  .guide-page{padding:16px 14px 36px}
  .guide-page h2{font-size:23px}
  .lead,.guide-page .lead{font-size:16px}
  .page-hero{padding:26px 20px 22px;border-radius:24px}
  .page-hero .lead{font-size:16px}
  .hero-icon{width:50px;height:50px}
  .country-banner{height:104px;border-radius:22px}
  .country-banner .banner-flag{font-size:66px}
  .banner-shape{right:96px}
  .sheet{inset:auto 0 0 0;width:100vw;height:92dvh;border-radius:28px 28px 0 0;transform:translateY(104%)}
  .sheet.is-open{transform:none}
  .sheet-grab{display:block;position:absolute;top:8px;left:50%;z-index:6;width:46px;height:5px;margin-left:-23px;border-radius:9px;background:rgba(255,255,255,.8)}
  .sheet-scroll{padding:30px 16px 0}
  .sheet-hero{margin:-30px -16px 14px;padding:34px 16px 22px}
  .sheet-inline .sheet-hero{padding:26px 18px 22px}
  .sheet-title{font-size:25px}
  .sheet-figure{font-size:34px}
  .sheet-figure .usd{display:inline-flex;margin:6px 0 0}
  .tile{padding:15px}
  .tile-value{font-size:18px}
  .quick-answers h3{font-size:16px}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat strong{font-size:20px}
  .profile-body{padding:18px}
  .profile-body h2{font-size:23px}
  .profile-grid{grid-template-columns:1fr}
  .fi-card .fi-line{display:none}
  footer{padding:26px 16px;margin-top:40px}
}
@media (max-width:480px){.topbar .shortlist-chip{padding:6px 10px}.intro h1{font-size:40px}.stats{grid-template-columns:1fr}.plan-link small{font-size:11px}}

/* Phones: compact two-column fact tiles (route pages and the route sheet). Icon and label share the
   first row, the value wraps beneath; nothing is clipped, an opened tile spans both columns. */
@media (max-width:600px){
  .tiles,.sheet-inline .tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0 6px}
  .tile{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:8px;row-gap:3px;padding:10px 11px 11px;border-radius:16px}
  .tile-icon{width:28px;height:28px;margin:0;border-radius:9px}
  .tile-icon .icon{width:16px;height:16px}
  .tile-label{font-size:11px;letter-spacing:.05em;line-height:1.25}
  .tile:not(:disabled) .tile-label{padding-right:20px}
  .tile-value{grid-column:1/-1;font-size:16px;line-height:1.25}
  .tile-value .usd{font-size:12px}
  .tile-more{grid-column:1/-1}
  .tile:not(:disabled)::after{top:9px;right:9px;width:18px;height:18px;font-size:13px}
}

/* ---------- Illustrations: decorative accents (site/dist/illustrations) ----------
   Every frame has a fixed size or aspect ratio, so nothing shifts while an image loads. */
/* Page heroes: framed art at the right; on phones wide art is a band across the top of the hero and
   square group art takes the place of the hero icon. */
.hero-art{position:absolute;z-index:0;right:26px;top:50%;transform:translateY(-50%);overflow:hidden;border-radius:22px;border:1px solid rgba(255,255,255,.35);background:rgba(20,8,48,.35);box-shadow:0 22px 44px -22px rgba(20,6,50,.8)}
.hero-art img{display:block;width:100%;height:100%;object-fit:cover}
.hero-art:not(.wide){width:clamp(150px,19vw,232px);aspect-ratio:1}
.hero-art.wide{width:clamp(240px,32vw,400px);aspect-ratio:16/10}
.page-hero.has-art{padding-right:calc(clamp(150px,19vw,232px) + 56px);min-height:calc(clamp(150px,19vw,232px) + 52px)}
.page-hero.has-art.art-wide{padding-right:calc(clamp(240px,32vw,400px) + 56px);min-height:calc(clamp(240px,32vw,400px) * .625 + 52px)}
@media (max-width:720px){
  .page-hero.has-art,.page-hero.has-art.art-wide{padding-right:20px;min-height:0}
  .page-hero.has-art .hero-icon{display:none}
  .hero-art{position:relative;right:auto;top:auto;transform:none;display:block}
  .hero-art:not(.wide){width:76px;margin-bottom:14px;border-radius:20px}
  .hero-art.wide{width:calc(100% + 40px);margin:-26px -20px 18px;aspect-ratio:16/7;border:0;border-radius:0;box-shadow:none}
}
/* Visa-type hub cards: the group's art as a banner across the top of the card. */
.hub-card.has-art{padding-top:0;overflow:hidden}
.hub-art{display:block;flex:none;height:150px;margin:0 -20px 0;overflow:hidden;background:color-mix(in srgb,var(--c1) 35%,#1a0f3a)}
.hub-art img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 45%;transition:transform .7s var(--ease)}
.hub-card:hover .hub-art img{transform:scale(1.04)}
.hub-card.has-art .hub-icon{position:relative;margin-top:-34px;box-shadow:0 0 0 4px var(--paper),0 12px 22px -10px var(--c1)}
/* Home plan links: a small thumbnail in the badge. */
.plan-icon.plan-art{overflow:hidden;padding:0}
.plan-art img{display:block;width:100%;height:100%;object-fit:cover}
/* Route-group headings: a round thumbnail where the icon sits. */
.section-pill.has-thumb{padding-left:5px}
.pill-thumb{display:block;flex:none;width:30px;height:30px;overflow:hidden;border-radius:50%;background:rgba(255,255,255,.2);box-shadow:0 0 0 2px rgba(255,255,255,.55)}
.pill-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.country-panel .section-pill.has-thumb{padding-left:4px}
.country-panel .pill-thumb{width:24px;height:24px}
/* Country without a photo: the flag banner carries the art of its most typical route group. */
.banner-illu{position:absolute;z-index:1;left:14px;top:14px;bottom:14px;aspect-ratio:1;overflow:hidden;border-radius:18px;border:2px solid rgba(255,255,255,.45);box-shadow:0 10px 22px -10px rgba(0,0,0,.5)}
.banner-illu img{display:block;width:100%;height:100%;object-fit:cover}
@media (max-width:480px){.country-banner.has-illu .banner-shape{display:none}}
/* Empty states: quiz without matches, empty shortlist, explorer filter without routes. */
.empty-illu{display:block;flex:none;width:120px;height:120px;object-fit:cover;border-radius:24px;box-shadow:var(--sh-1)}
.empty-message.has-illu{grid-column:1/-1;display:grid;justify-items:center;gap:10px;text-align:center}
.empty-message.has-illu h3,.empty-message.has-illu p{margin:0}
.qz-empty .empty-illu{width:84px;height:84px;border-radius:18px}
.cmp-empty .empty-illu{width:140px;height:140px}
@media (max-width:720px){.hub-art{height:124px}.cmp-empty .empty-illu{width:112px;height:112px}}
@media (prefers-reduced-motion:reduce){.hub-card:hover .hub-art img{transform:none}}

/* Reduced motion: no ambient or decorative animation; content never waits on motion. */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js-motion [data-reveal].pre:not(.in){opacity:1;transform:none}
  .card:hover,.offer-card:hover,.country-tile:hover,.plan-link:hover,.chip:hover,.button:hover,.tile:hover,.steps li:hover{transform:none}
}

/* ---------- 16. Invariants and print ---------- */
/* Affiliate Hub's script (docs/hub-script.md): partner cards drawn into marked slots, in the script's own
   markup (shadow DOM), themed through its --hub-* properties. A slot on a static page keeps one card's
   height until the script has decided (page.js sets data-hub-filled); an empty one folds away. */
.hub-slot,.hub-link,.hub-widget{--hub-accent:var(--accent);--hub-link:var(--accent-ink);--hub-card-bg:var(--paper);--hub-card-border:var(--line-2);--hub-card-radius:var(--r1);--hub-button-radius:999px}
.hub-slot{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));column-gap:14px;margin:14px 0 6px}
.guide-page .hub-slot:not(.hub-audience):not([data-hub-filled]){min-height:9.5rem}
.hub-slot[data-hub-filled="0"]{display:none}
.country-panel .hub-slot{margin:6px 16px 18px}
/* The booking search widget's marked place (data-hub-widget), a full-width block after the page's grids.
   It reserves the booking widget's height as the hub's Install gives it (two tabs: 456px narrow, 384px
   from 768px wide) until the script decides; an empty one folds away. */
.hub-widget{display:block;margin:18px 0 8px}
.guide-page .hub-widget:not([data-hub-filled]){min-height:456px}
@media (min-width:768px){.guide-page .hub-widget:not([data-hub-filled]){min-height:384px}}
.hub-widget[data-hub-filled="0"]{display:none}
.hub-link:empty{display:none}
/* Overflow invariant: long words, slash-joined terms and big numbers wrap instead of running off-screen. */
.tile-more,.tile-value,.calc-card,.calc-hero strong,.calc-table td,.card-name,.card-figure,.fi-line,.offer-title,.sheet-title,.sheet-figure,.page-hero h1,.guide-figure,.stat strong,.opt-name{overflow-wrap:anywhere}
.calc-card,.tax-calc-slot{min-width:0}
@media print{
  body{background:#fff!important;color:#000}
  .topbar,footer,.offers,.plan-actions,.sheet-actions,.ask-box,.intro-art{display:none!important}
  .js-motion [data-reveal].pre:not(.in){opacity:1;transform:none}
  .card,.page-hero,.sheet-hero{box-shadow:none}
}

/* Readability: a card with its details open, or alone in its grid, takes the full row instead of one narrow
   column (a lone tax card used to grow very tall next to empty space). Open details get calmer, larger text. */
.cards>.card:only-child,.cards>.card:has(details.more[open]){grid-column:1/-1;max-width:860px}
.card details.more[open]{columns:2 340px;column-gap:36px}
.card details.more[open]>summary{column-span:all;margin-bottom:6px}
details.more[open] p,details.more[open] li{font-size:15.5px;line-height:1.7;color:var(--ink);break-inside:avoid}
details.more[open] h4{color:var(--ink-2);font-size:12.5px;break-after:avoid}
details.more[open] ul,details.more[open] p{margin-bottom:10px}
@media (max-width:700px){.card details.more[open]{columns:1}}

/* Change log: dated lists grouped by country. */
.change-section{margin-top:26px}
.change-section .section-label{scroll-margin-top:96px}
.change-intro{margin:4px 0 10px;color:var(--muted);font-size:14px}
.change-date{margin:18px 0 8px;font-family:var(--display);font-size:17px;font-weight:800;letter-spacing:-.01em}
.change-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.change-list>li{padding:12px 14px;border-radius:16px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-1);font-size:14px;line-height:1.5}
.change-country{display:inline-flex;align-items:center;gap:6px;font-weight:800;color:var(--ink);text-decoration:none}
.change-list ul{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:6px}
.change-list ul li{overflow-wrap:anywhere}
.change-list ul a{font-weight:700;text-decoration:none}
.change-list small{display:block;color:var(--muted);font-size:13px}
.change-list small.change-meta{margin-top:2px;font-weight:650;color:var(--ink-2)}
.change-list small.change-meta a{font-weight:700;text-decoration:underline;text-underline-offset:2px}
.change-anchor{display:block;scroll-margin-top:96px}
.change-first{display:flex;gap:10px;align-items:flex-start;margin:8px 0 6px;padding:12px 14px;border-radius:16px;background:color-mix(in srgb,#0f766e 9%,var(--paper));border:1px solid color-mix(in srgb,#0f766e 28%,var(--line));font-size:14px;line-height:1.5}
.change-first .icon{flex:none;margin-top:2px;color:#0f766e}
/* Watch: local follow button (watch.js) and the /changes/ list of watched pages. */
.watch-row{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.watch-btn{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:4px 12px;border-radius:999px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font:inherit;font-size:13px;font-weight:750;cursor:pointer;box-shadow:var(--sh-1)}
.watch-btn[aria-pressed=true]{background:var(--soft);border-color:color-mix(in srgb,var(--accent) 45%,var(--line));color:var(--accent-ink)}
.watch-btn:hover{border-color:var(--accent)}
.watch-badge{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 8px;padding:3px 10px;border-radius:999px;background:color-mix(in srgb,#f97316 16%,var(--paper));color:var(--ink);font-size:12.5px;font-weight:750;overflow-wrap:anywhere}
.watch-badge a{color:inherit}
.page-head .watch-row{margin-top:8px}
.watch-panel{margin-top:22px}
.watch-items{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.watch-items li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:10px 14px;border-radius:16px;background:var(--paper);border:1px solid var(--line);font-size:14px;overflow-wrap:anywhere}
.watch-items li.changed{border-color:color-mix(in srgb,#f97316 45%,var(--line))}
.watch-items li>a{font-weight:750;text-decoration:none}
.watch-items small{color:var(--muted)}
/* Quiz: opt-in share link. */
.qz-share{margin:6px 0 8px;padding:12px 14px;border-radius:16px;background:var(--paper);border:1px solid var(--line)}
.qz-share p{display:flex;gap:8px;align-items:flex-start;margin:0 0 8px;font-size:13px;line-height:1.5;color:var(--muted)}
.qz-share p .icon{flex:none;margin-top:2px;color:var(--accent)}
.qz-share-row{display:flex;flex-wrap:wrap;gap:8px}
.qz-share-row input{flex:1 1 220px;min-width:0;padding:8px 10px;border-radius:12px;border:1px solid var(--line);background:var(--bg,var(--paper));color:var(--ink);font:inherit;font-size:13px}
/* Head-to-head pages. */
.h2h-diffs{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:8px}
.h2h-diffs li{display:grid;gap:2px;padding:12px 14px;border-radius:16px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-1);font-size:14.5px;line-height:1.5;overflow-wrap:anywhere}
.h2h-diffs strong{font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--accent-ink)}
.h2h-links{margin-top:18px}
.cmp-fees{margin:6px 0 0;padding-left:18px;font-size:13px;overflow-wrap:anywhere}
.cmp-fees li{min-width:0}
.cmp-fees li>p{margin:2px 0 0;color:var(--muted)}
.cmp-note{margin:4px 0 0;font-size:12.5px;color:var(--muted)}

/* ---------- 17. Passport rights and photos ---------- */
[data-cat=passport]{--c1:#0369a1;--c2:#0c4a6e;--glow:#38bdf8}
/* With your passport (country pages, explorer panel) */
.with-passport{grid-column:1/-1;margin:16px 0 4px}
.with-passport .cards{margin:0}
.country-panel .with-passport{margin:0;padding:0}
.country-panel .with-passport .cards{padding:0}
.pp-picker{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px;max-width:100%;padding:8px 14px;border-radius:999px;border:1px solid color-mix(in srgb,#0369a1 30%,var(--line));background:var(--paper);box-shadow:var(--sh-1);font-size:14px;font-weight:750;color:var(--ink-2)}
.pp-picker .icon{color:#0369a1}
.pp-picker select{flex:1 1 140px;min-width:0;max-width:100%;border:0;background:none;color:var(--ink);font:inherit;font-weight:650}
.wp-out:empty{display:none}
.pp-card .pp-figure{font-size:26px}
.pp-detail{margin:0;font-size:14px;color:var(--ink-2)}
.pp-work{display:flex;align-items:flex-start;gap:7px;margin:2px 0 0;font-size:14px;font-weight:650;color:var(--ink-2)}
.pp-work .icon{flex:none;margin-top:3px;color:var(--cat-ink)}
.pp-sub{margin:18px 2px 8px;font-family:var(--display);font-size:16px;font-weight:800;color:var(--ink)}
.pp-notes{margin:0;padding:14px 18px 14px 34px;border-radius:var(--r2);background:var(--paper);border:1px solid color-mix(in srgb,#0369a1 22%,var(--line));box-shadow:var(--sh-1);font-size:14px;line-height:1.55}
.pp-notes li+li{margin-top:8px}
.pp-fact{display:inline-block;margin-left:4px;padding:1px 9px;border-radius:999px;background:color-mix(in srgb,#0369a1 12%,var(--paper));font-size:12.5px;font-weight:750;color:var(--ink-2)}
.country-panel .pp-notes,.country-panel .pp-sub{margin-left:0;margin-right:0}
/* Static list of a country's passport routes */
.pp-block .pp-routes{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:10px}
.pp-block .pp-routes li{padding:14px 16px;border-radius:var(--r1);background:var(--paper);border:1px solid var(--line)}
.pp-route,.pp-open{margin:0}
.pp-open{margin-top:6px;font-size:13px;color:var(--muted)}
.pp-block .pp-work{font-size:13px}
.country-panel .pp-block{padding:0}
/* Quiz: one box per treaty bloc */
.pp-blocs{display:grid;gap:10px}
.pp-bloc{border-radius:var(--r2);background:var(--paper);border:1px solid color-mix(in srgb,#0369a1 26%,var(--line));box-shadow:var(--sh-1)}
.pp-bloc>summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;padding:14px 18px;cursor:pointer;list-style:none;font-weight:800}
.pp-bloc>summary::-webkit-details-marker{display:none}
.pp-bloc>summary::after{content:"+";display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:linear-gradient(120deg,#0369a1,#0c4a6e);color:#fff;font-size:15px;line-height:1;transition:transform .25s}
.pp-bloc[open]>summary::after{transform:rotate(45deg)}
.pp-bloc-name{flex:1 1 200px;min-width:0;font-family:var(--display);font-size:17px;color:var(--ink)}
.pp-count{font-size:13px;font-weight:750;color:var(--muted)}
.pp-countries{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0 18px 16px;list-style:none}
.pp-countries a{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--paper-2);font-size:14px;font-weight:700;color:var(--ink);text-decoration:none}
.pp-countries a:hover{border-color:#0369a1;color:#0369a1}
/* Passport pages and hub */
.pp-dest{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:8px;margin:0;padding:0;list-style:none}
.pp-dest li{display:flex;flex-direction:column;padding:10px 14px;border-radius:var(--r1);background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-1)}
.pp-dest a{font-weight:750;text-decoration:none}
.pp-dest small{color:var(--muted);font-size:12.5px}
.pp-table td small{display:block;margin-top:2px;font-size:12.5px;color:var(--muted);font-weight:500}
.pp-hub{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:10px;margin:0;padding:0;list-style:none}
.pp-hub a{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:10px;align-items:center;padding:12px 14px;border-radius:var(--r1);background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-1);color:var(--ink);text-decoration:none;transition:transform .2s var(--ease),box-shadow .2s}
.pp-hub a:hover{transform:translateY(-2px);box-shadow:var(--sh-2)}
.pp-hub .pp-flag{grid-row:1/3;font-size:28px;line-height:1}
.pp-hub strong{font-size:15px}
.pp-hub small{font-size:12.5px;color:var(--muted)}
/* Country page hero photo and strip */
.country-hero{position:relative;margin:0 0 18px}
.country-hero img{display:block;width:100%;height:clamp(200px,34vw,420px);object-fit:cover;border-radius:28px;background:var(--soft);box-shadow:var(--sh-2)}
.country-hero .hero-flag{position:absolute;right:20px;top:calc(clamp(200px,34vw,420px) - 46px);font-size:64px;line-height:1;filter:drop-shadow(0 8px 16px rgba(0,0,0,.4))}
.country-hero figcaption,.photo-strip figcaption{display:flex;flex-wrap:wrap;gap:2px 10px;margin:8px 4px 0;font-size:13px;color:var(--muted)}
.photo-caption{color:var(--ink-2);font-weight:650}
.photo-credit{font-size:12px;color:var(--muted)}
.photo-credit a{color:inherit}
.photo-strip{margin-top:8px}
.strip-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.strip-grid figure{margin:0;min-width:0}
.strip-img{display:block;border-radius:18px;overflow:hidden;box-shadow:var(--sh-1)}
.strip-grid img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;transition:transform .4s var(--ease)}
.strip-img:hover img{transform:scale(1.04)}
.strip-grid figcaption{flex-direction:column;margin:6px 2px 0;font-size:12.5px}
.photo-more{margin:10px 2px 0;font-size:13px}
/* Photo credits page */
.credits-country h2{display:flex;align-items:center;gap:8px;margin:28px 0 8px;font-size:20px}
.credits-list{margin:0;padding-left:22px;font-size:14px}
.credits-list li{margin:6px 0}
.credits-list .photo-credit{display:block}
/* Explorer: the globe crossfades into the selected country's photos */
.gallery{position:absolute;inset:0;z-index:4;background:#0b0816;opacity:0;transition:opacity .45s var(--ease)}
.gallery.on{opacity:1}
.gallery-track{position:absolute;inset:0;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.gallery-track::-webkit-scrollbar{display:none}
.gallery-track:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}
.gallery-slide{flex:0 0 100%;margin:0;scroll-snap-align:start;scroll-snap-stop:always}
.gallery-slide img{display:block;width:100%;height:100%;object-fit:cover}
.gallery-top{position:absolute;top:14px;left:14px;right:14px;display:flex;align-items:center;justify-content:space-between;gap:10px;pointer-events:none}
.gallery-back{pointer-events:auto;display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:8px 16px;border-radius:999px;border:0;background:var(--glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:var(--sh-2);color:var(--ink);font-size:14px;font-weight:800;cursor:pointer}
.gallery-back .icon{color:var(--accent)}
.gallery-count{padding:6px 12px;border-radius:999px;background:rgba(0,0,0,.45);color:#fff;font-size:12px;font-weight:800}
.gallery-nav{position:absolute;top:50%;display:grid;place-items:center;width:46px;height:46px;margin-top:-23px;border:0;border-radius:50%;background:var(--glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:var(--sh-2);color:var(--ink);cursor:pointer;transition:transform .2s var(--ease)}
.gallery-nav:hover{transform:scale(1.08)}
.gallery-nav.prev{left:14px}
.gallery-nav.prev .icon{transform:scaleX(-1)}
.gallery-nav.next{right:14px}
.gallery-bar{position:absolute;left:0;right:0;bottom:0;padding:48px 20px 16px;background:linear-gradient(180deg,transparent,rgba(8,5,20,.82));color:#fff;pointer-events:none}
.gallery-caption{margin:0;font-family:var(--display);font-size:18px;font-weight:800;line-height:1.3;text-shadow:0 1px 6px rgba(0,0,0,.5)}
.gallery-credit{margin:4px 0 0;font-size:12px;line-height:1.45;color:rgba(255,255,255,.88)}
.gallery-credit a{pointer-events:auto;color:#fff}
.gallery-dots{display:flex;gap:7px;margin-top:10px;pointer-events:auto}
.gallery-dots button{width:9px;height:9px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.5);cursor:pointer;transition:width .25s var(--ease),background .25s}
.gallery-dots button[aria-current=true]{width:26px;border-radius:9px;background:#fff}
.map-frame.gallery-on .map-controls,.map-frame.gallery-on .map-credit,.map-frame.gallery-on .maplibregl-ctrl-bottom-right{visibility:hidden}
@media (max-width:720px){
  .gallery-top{top:10px;left:10px;right:10px}
  .gallery-back{min-height:38px;padding:7px 13px;font-size:13px}
  .gallery-nav{width:40px;height:40px;margin-top:-20px}
  .gallery-nav.prev{left:8px}.gallery-nav.next{right:8px}
  /* The country sheet covers the lower half on phones: caption and credit sit at the top. */
  .gallery-bar{top:58px;bottom:auto;padding:6px 14px 34px;background:linear-gradient(180deg,rgba(8,5,20,.78),transparent)}
  .gallery-nav{top:min(50%,170px)}
  .gallery-caption{font-size:15px}
  .country-hero img{border-radius:22px}
  .country-hero .hero-flag{right:14px;font-size:46px;top:calc(clamp(200px,34vw,420px) - 36px)}
  .strip-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .pp-notes{padding:12px 14px 12px 28px}
}
@media (prefers-color-scheme:dark){:root:not([data-mode=light]) .pp-fact{background:color-mix(in srgb,#38bdf8 18%,var(--paper))}}

/* Long-term path, "Why this route may not fit" and route comparison (issue 44). */
.path-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:6px 0 8px;align-items:start}
.sheet-inline .path-tiles{grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr))}
.ptile{position:relative;min-width:0;border-radius:20px;background:linear-gradient(160deg,var(--tint),var(--paper) 70%);border:1px solid color-mix(in srgb,var(--c1) 22%,var(--line));box-shadow:0 14px 28px -20px var(--c1);transition:transform .25s var(--ease),box-shadow .25s}
.ptile>summary,.ptile-head{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:18px;border-radius:20px;list-style:none;cursor:pointer}
.ptile-head{cursor:default}
.ptile>summary::-webkit-details-marker{display:none}
.ptile>summary::after{content:"+";position:absolute;top:14px;right:14px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:color-mix(in srgb,var(--c1) 14%,var(--paper));color:var(--cat-ink);font-weight:900;transition:transform .25s}
.ptile[open]{grid-column:1/-1}
.ptile[open]>summary::after{transform:rotate(45deg)}
.ptile:has(>summary):hover{transform:translateY(-2px);box-shadow:0 22px 34px -20px var(--c1)}
.ptile .tile-value{overflow-wrap:anywhere}
.ptile-body{padding:0 18px 16px;font-size:14px;line-height:1.55;color:var(--ink-2)}
.ptile-body p{margin:0 0 8px}
.path-sources{display:flex;flex-wrap:wrap;gap:6px;margin:0}
.path-src{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:3px 10px;border-radius:999px;background:var(--paper);border:1px solid var(--line-2);font-size:12.5px;font-weight:700;line-height:1.4;color:var(--accent-ink);text-decoration:none;overflow-wrap:anywhere}
.path-src .icon{flex:none}
.path-src:hover{border-color:var(--accent)}
.fit-panel{--c1:#b45309;--c2:#7c2d12;--glow:#fbbf24;margin:10px 0 8px;padding:2px 18px 16px;border-radius:22px;background:linear-gradient(150deg,color-mix(in srgb,#f59e0b 12%,var(--paper)),var(--paper) 78%);border:1px solid color-mix(in srgb,#f59e0b 35%,var(--line));box-shadow:var(--sh-1)}
.fit-panel>.section-label.with-icon{margin:14px 0 2px}
.fit-lead{margin:0 0 10px 44px;font-size:14px;color:var(--muted)}
.fit-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:8px;margin:0;padding:0;list-style:none}
.fit-list li{display:flex;align-items:flex-start;gap:10px;min-width:0;padding:10px 12px;border-radius:14px;background:var(--paper);border:1px solid color-mix(in srgb,#f59e0b 22%,var(--line));font-size:14px;font-weight:650;line-height:1.4;color:var(--ink);overflow-wrap:anywhere}
.fit-icon{display:grid;place-items:center;flex:none;width:26px;height:26px;border-radius:9px;background:color-mix(in srgb,#f59e0b 18%,var(--paper));color:#92400e}
.card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}
.card-actions .card-open{margin-top:0}
.compare-toggle{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;border:1px dashed color-mix(in srgb,var(--c1) 45%,var(--line-2));background:transparent;color:var(--ink-2);font:inherit;font-size:13.5px;font-weight:750;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.compare-toggle:hover{border-style:solid;color:var(--cat-ink)}
.compare-toggle[aria-pressed=true]{background:linear-gradient(120deg,#0f766e,#0e7490)!important;color:#fff!important;border:1px solid transparent!important}
.compare-toggle[aria-pressed=true]::after{content:"✓";font-weight:900}
.compare-full{animation:wiggle .45s var(--ease)}
.compare-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 4px}
.compare-go{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:linear-gradient(120deg,#0f766e,#0e7490);color:#fff;font-size:14px;font-weight:800;text-decoration:none;box-shadow:0 10px 22px -12px #0e7490}
.compare-go b{display:grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#fff;color:#0f766e;font-size:13px}
.compare-tray{position:fixed;left:max(14px,env(safe-area-inset-left));bottom:max(14px,env(safe-area-inset-bottom));z-index:55;display:flex;align-items:center;gap:2px;padding:5px;border-radius:999px;background:var(--glass);backdrop-filter:blur(14px) saturate(1.5);-webkit-backdrop-filter:blur(14px) saturate(1.5);border:1px solid var(--line);box-shadow:var(--sh-3);animation:pop .35s var(--ease)}
.compare-tray-link{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;background:linear-gradient(120deg,#0f766e,#0e7490);color:#fff;font-size:14px;font-weight:800;text-decoration:none;box-shadow:0 10px 22px -10px #0e7490}
.compare-tray-link b{display:grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#fff;color:#0f766e;font-size:13px}
.compare-tray-clear{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:20px;line-height:1;cursor:pointer}
.compare-tray-clear:hover{background:var(--soft);color:var(--ink)}
.cmp-root{margin:22px 0 10px}
.cmp{margin:0 -10px}
.cmp-table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:10px 8px}
.cmp-table td.cmp-corner{width:172px;padding:0;background:none;border:0}
.cmp-table thead th{height:1px;padding:0;text-align:left;vertical-align:top;font-weight:inherit}
.cmp-head{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;box-sizing:border-box;height:100%;padding:16px 44px 14px 16px;border-radius:20px;color:#fff;overflow:hidden;background:radial-gradient(90% 120% at 100% 0%,color-mix(in srgb,var(--glow) 50%,transparent),transparent 60%),linear-gradient(135deg,var(--c1),var(--c2));box-shadow:0 16px 30px -20px var(--c1)}
.cmp-head .kicker{display:flex;align-items:center;gap:6px;margin:0;color:#fff;font-size:12px;opacity:.95}
.cmp-name{font-family:var(--display);font-size:19px;font-weight:850;line-height:1.2;letter-spacing:-.015em;color:#fff;text-decoration:none;overflow-wrap:anywhere}
.cmp-name:hover{text-decoration:underline}
.cmp-num{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.25);font-size:13px;font-weight:900}
.cmp-remove{margin-top:6px;padding:4px 11px;border-radius:999px;border:1px solid rgba(255,255,255,.55);background:transparent;color:#fff;font:inherit;font-size:12.5px;font-weight:750;cursor:pointer}
.cmp-remove:hover{background:rgba(255,255,255,.18)}
.cmp-table tbody th{padding:12px 4px;text-align:left;vertical-align:top;font-size:12.5px;font-weight:850;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2)}
.cmp-label{display:flex;align-items:center;gap:8px}
.cmp-label .icon{flex:none;color:var(--accent)}
.cmp-table td{padding:12px 14px;vertical-align:top;border-radius:16px;background:linear-gradient(160deg,var(--tint),var(--paper) 70%);border:1px solid color-mix(in srgb,var(--c1) 18%,var(--line));font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.cmp-val strong{font-family:var(--display);font-size:16px;font-weight:800}
.cmp-val .usd{display:inline-block;font-size:12.5px}
.cmp-more{margin-top:6px}
.cmp-more>summary{cursor:pointer;font-size:12.5px;font-weight:800;color:var(--cat-ink)}
.cmp-more p{margin:6px 0 0;font-size:13px;color:var(--ink-2)}
.cmp-fit{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.cmp-fit li{display:flex;align-items:flex-start;gap:7px;font-size:13px;font-weight:650}
.cmp-fit .icon{flex:none;margin-top:2px;color:#b45309}
.cmp-link{display:inline-flex;align-items:center;gap:5px;font-weight:750}
.cmp-link .icon{flex:none}
.cmp-none{color:var(--muted)}
.cmp-who{display:none}
.cmp-actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 8px}
.cmp-empty{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:22px;border-radius:24px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-2);font-size:15px}
.cmp-empty p{margin:0}
.cmp-empty-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:var(--brand);color:#fff}
.cmp-empty-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px!important}
@media (max-width:760px){
  .fit-lead{margin-left:0}
  .cmp{margin:0}
  .cmp-table,.cmp-table thead,.cmp-table tbody,.cmp-table tr,.cmp-table th,.cmp-table td{display:block;width:auto}
  .cmp-table{border-spacing:0}
  .cmp-table thead tr{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:8px}
  .cmp-corner{display:none}
  .cmp-table thead th{height:auto}
  .cmp-head{height:100%;padding:14px 38px 12px 14px}
  .cmp-name{font-size:17px}
  .cmp-table tbody tr{margin:12px 0 0;padding:12px;border-radius:18px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-1)}
  .cmp-table tbody th{padding:0 0 6px}
  .cmp-table td{margin:0;padding:9px 0 8px;border:0;border-top:1px solid var(--line);border-radius:0;background:none}
  .cmp-who{display:flex;align-items:center;gap:7px;margin:0 0 3px;font-size:12px;font-weight:800;color:var(--cat-ink)}
  .cmp-who i{display:grid;place-items:center;flex:none;width:20px;height:20px;border-radius:50%;background:linear-gradient(135deg,var(--c1),var(--c2));color:#fff;font-size:11px;font-style:normal}
}
@media (max-width:520px){.cmp-table thead tr{grid-template-columns:minmax(0,1fr)}}
@media (prefers-color-scheme:dark){:root:not([data-mode=light]) .fit-icon{color:#fcd34d}:root:not([data-mode=light]) .cmp-fit .icon{color:#fbbf24}:root:not([data-mode=light]) .path-src{color:#c4b5fd}}
/* Verified-on line: small and calm, under the route hero and at the end of tax sections. */
.checked-line{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:6px 0 10px;font-size:13px;line-height:1.45;color:var(--muted)}
.checked-line>span:nth-child(2){min-width:0;overflow-wrap:anywhere}
.checked-icon{display:grid;place-items:center;flex:none;width:20px;height:20px;border-radius:50%;background:color-mix(in srgb,#0f766e 16%,var(--paper));color:#0f766e}
.checked-links{display:inline-flex;flex-wrap:wrap;gap:4px 12px}
.checked-links a{color:var(--muted);font-weight:650;text-decoration:underline;text-underline-offset:2px}
.checked-links a:hover{color:var(--ink)}
.more-body .checked-line,.tax-checked{margin:10px 0 4px}
/* "What happens at day 180": the country's tax-residence tests and foreign-source income treatment. */
.d180-panel{--c1:#0f766e;--c2:#134e4a;--glow:#2dd4bf;margin:14px 0 8px;padding:2px 18px 14px;border-radius:22px;background:linear-gradient(150deg,color-mix(in srgb,#14b8a6 12%,var(--paper)),var(--paper) 78%);border:1px solid color-mix(in srgb,#14b8a6 35%,var(--line));box-shadow:var(--sh-1)}
.d180-panel>.section-label.with-icon{margin:14px 0 2px}
.d180-lead{margin:0 0 10px 44px;font-size:14px;color:var(--muted)}
.d180-rows{display:grid;gap:8px;margin:0}
.d180-rows>div{display:grid;grid-template-columns:minmax(150px,190px) minmax(0,1fr);gap:4px 14px;min-width:0;padding:10px 12px;border-radius:14px;background:var(--paper);border:1px solid color-mix(in srgb,#14b8a6 22%,var(--line))}
.d180-rows dt{display:flex;align-items:center;gap:8px;min-width:0;font-size:13px;font-weight:850;color:var(--cat-ink)}
.d180-icon{display:grid;place-items:center;flex:none;width:24px;height:24px;border-radius:8px;background:color-mix(in srgb,#14b8a6 18%,var(--paper));color:#0f766e}
.d180-rows dd{margin:0;min-width:0;font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.d180-rows dd p{margin:0 0 4px}
.d180-rows dd p:last-child{margin-bottom:0}
.d180-tests{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.d180-tests small{display:block;margin-top:2px;font-size:12.5px;color:var(--muted)}
.d180-more{margin:10px 0 0;font-size:14px;font-weight:750}
.d180-more a{display:inline-flex;align-items:center;gap:6px}
.d180-panel .checked-line{margin:8px 0 0}
@media (max-width:760px){.d180-lead{margin-left:0}.d180-rows>div{grid-template-columns:minmax(0,1fr)}}
@media (prefers-color-scheme:dark){:root:not([data-mode=light]) .checked-icon,:root:not([data-mode=light]) .d180-icon{color:#5eead4}}
.d180-more{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px}
.d180-date{font-size:13px;font-weight:500;color:var(--muted)}
/* The fixed shortlist tray: room below the footer so it never covers the last lines of a page. */
body.has-tray{padding-bottom:calc(84px + env(safe-area-inset-bottom))}
/* Shortlist on /compare/: saved routes, a tick to compare, export and import. */
.sl{margin:30px 0 10px}
.sl-lead{margin:0 0 12px;font-size:14px;color:var(--muted)}
.sl-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:10px;margin:0 0 14px;padding:0;list-style:none}
.sl-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;padding:10px 10px 10px 12px;border-radius:18px;background:linear-gradient(150deg,var(--tint),var(--paper) 70%);border:1px solid color-mix(in srgb,var(--c1) 22%,var(--line));box-shadow:var(--sh-1)}
.sl-pick{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;font-weight:800;color:var(--cat-ink);cursor:pointer}
.sl-pick input{width:20px;height:20px;margin:0;accent-color:#0f766e;cursor:pointer}
.sl-pick input:disabled+span{opacity:.5}
.sl-main{display:grid;gap:2px;min-width:0}
.sl-name{font-family:var(--display);font-size:16px;font-weight:850;line-height:1.25;color:var(--ink);text-decoration:none;overflow-wrap:anywhere}
.sl-name:hover{text-decoration:underline}
.sl-main small{font-size:12.5px;line-height:1.4;color:var(--muted);overflow-wrap:anywhere}
.sl-main small .usd{font-size:inherit}
.sl-remove{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--muted);font-size:19px;line-height:1;cursor:pointer}
.sl-remove:hover{color:var(--ink);background:var(--soft)}
.sl-actions{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px}
.sl-actions .button{display:inline-flex;align-items:center;gap:8px}
.sl-import{flex:1 1 100%}
.sl-import>summary{display:inline-flex;align-items:center;gap:8px;list-style:none;cursor:pointer}
.sl-import>summary::-webkit-details-marker{display:none}
.sl-import-body{display:grid;gap:8px;max-width:560px;margin-top:10px;padding:14px;border-radius:18px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-1)}
.sl-file{display:inline-flex;align-items:center;gap:8px;font-weight:750;font-size:14px;cursor:pointer}
.sl-file input{max-width:100%;font:inherit;font-size:13px}
.sl-paste-label{font-size:13px;font-weight:750;color:var(--ink-2)}
.sl-import-body textarea,.sl-export-box{width:100%;box-sizing:border-box;padding:10px 12px;border-radius:12px;border:1px solid var(--line-2,var(--line));background:var(--paper);color:var(--ink);font:13px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;resize:vertical}
.sl-import-body .button{justify-self:start}
.sl-export-box{max-width:560px;margin-top:10px}
.sl-status{min-height:1.4em;margin:10px 0 0;font-size:14px;font-weight:650;color:var(--cat-ink)}
@media (max-width:480px){.sl-actions .button{flex:1 1 auto;justify-content:center}}
/* Change log anchors: a route page's "Last change" link lands on its entry. */
.change-list [id]{scroll-margin-top:96px}
.change-list :target{border-radius:6px;background:color-mix(in srgb,#fde047 45%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,#fde047 45%,transparent)}
.sl-import,.sl-import-body,.sl-file{min-width:0}
.sl-import-body{grid-template-columns:minmax(0,1fr)}
.sl-file{flex-wrap:wrap}
.sl-file input{width:100%;min-width:0}
/* Cost and timeline (route sheet): fees, money shown or held, decision time and renewal, from the record only. */
.cost-time{margin:10px 0 8px;padding:2px 18px 16px;border-radius:22px;background:linear-gradient(150deg,color-mix(in srgb,#0ea5e9 9%,var(--paper)),var(--paper) 78%);border:1px solid color-mix(in srgb,#0ea5e9 28%,var(--line));box-shadow:var(--sh-1);min-width:0}
.cost-time>.section-label.with-icon{margin:14px 0 10px}
.cost-path .ct-rows+.path-tiles{margin-top:12px}
.ct-sum{margin:0 0 10px;font-size:14px;font-weight:650;line-height:1.45;color:var(--ink)}
.arrange{margin:14px 0 6px}
.arrange-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.arrange-list li{display:flex;gap:12px;min-width:0;padding:12px 14px;border-radius:14px;background:var(--paper);border:1px solid var(--line)}
.arrange-icon{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--soft);color:var(--accent)}
.arrange-body{flex:1;min-width:0}
.arrange-body strong{display:block;font-size:14.5px}
.arrange-body p{margin:2px 0 6px;font-size:13.5px;line-height:1.45;color:var(--muted);overflow-wrap:anywhere}
.arrange-body .need-link{margin-left:0}
.arrange-note{margin:8px 0 0;font-size:12px;color:var(--muted)}
.cost-path .path-tiles{margin-bottom:0}
.ct-rows{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
.ct-row{min-width:0;border-radius:14px;background:var(--paper);border:1px solid color-mix(in srgb,#0ea5e9 18%,var(--line))}
.ct-row>summary,.ct-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;padding:10px 12px;list-style:none}
.ct-row>summary{cursor:pointer;border-radius:14px}
.ct-row>summary::-webkit-details-marker{display:none}
.ct-row>summary::after{content:"+";display:grid;place-items:center;flex:none;width:22px;height:22px;border-radius:50%;background:color-mix(in srgb,#0ea5e9 14%,var(--paper));color:#075985;font-weight:900;transition:transform .25s var(--ease)}
.ct-row[open]>summary::after{transform:rotate(45deg)}
.ct-label{display:inline-flex;align-items:center;gap:9px;min-width:0;font-size:14px;font-weight:750;color:var(--ink)}
.ct-icon{display:grid;place-items:center;flex:none;width:26px;height:26px;border-radius:9px;background:color-mix(in srgb,#0ea5e9 16%,var(--paper));color:#0369a1}
.ct-value{flex:1 1 auto;min-width:0;text-align:right;font-size:15px;font-weight:800;color:var(--ink);overflow-wrap:anywhere}
.ct-value .usd{font-weight:650;color:var(--muted)}
.ct-list{display:grid;gap:8px;margin:0;padding:0 12px 12px 47px;list-style:none;font-size:14px;line-height:1.45;color:var(--ink-2)}
.ct-list li{min-width:0;overflow-wrap:anywhere}
.ct-cond{display:block;font-size:13px;color:var(--muted)}
.ct-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));gap:8px;margin:10px 0 0;padding:0;list-style:none}
.ct-steps li{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:10px;align-items:center;min-width:0;padding:10px 12px;border-radius:14px;background:var(--paper);border:1px solid color-mix(in srgb,#0ea5e9 18%,var(--line))}
.ct-steps li .ct-icon{grid-row:1/3}
.ct-step-label{font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.ct-steps strong{min-width:0;font-size:15px;color:var(--ink);overflow-wrap:anywhere}
@media (max-width:480px){.cost-time{padding:2px 12px 12px}.ct-value{text-align:left}.ct-list{padding-left:12px}}
@media (prefers-color-scheme:dark){:root:not([data-mode=light]) .ct-icon{color:#7dd3fc}:root:not([data-mode=light]) .ct-row>summary::after{color:#bae6fd}}
/* Answer-first home, passport answer pages, "Moving to X" country pages and the phone menu (issue #49 items 2, 3, 9). */
.nav-menu{display:none;position:relative}
.nav-menu>summary{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;border:1px solid var(--line);background:var(--paper);box-shadow:var(--sh-1);cursor:pointer;list-style:none}
.nav-menu>summary::-webkit-details-marker{display:none}
.nm-bars,.nm-bars::before,.nm-bars::after{display:block;width:18px;height:2px;border-radius:2px;background:var(--ink);transition:transform .25s var(--ease),opacity .2s}
.nm-bars{position:relative}
.nm-bars::before,.nm-bars::after{content:"";position:absolute;left:0}
.nm-bars::before{top:-6px}.nm-bars::after{top:6px}
.nav-menu[open] .nm-bars{background:transparent}
.nav-menu[open] .nm-bars::before{transform:translateY(6px) rotate(45deg)}
.nav-menu[open] .nm-bars::after{transform:translateY(-6px) rotate(-45deg)}
.topbar .nav-menu .nav-menu-list{position:absolute;right:0;top:calc(100% + 10px);z-index:60;display:grid;gap:2px;width:min(280px,calc(100vw - 24px));margin:0;padding:8px;border-radius:20px;border:1px solid var(--line);background:var(--paper);box-shadow:var(--sh-3)}
.topbar .nav-menu .nav-menu-list a[href]{display:flex;align-items:center;gap:10px;padding:12px 12px;border-radius:12px;color:var(--ink);font-size:15px;font-weight:700;text-decoration:none}
.topbar .nav-menu .nav-menu-list a[href] .icon{display:inline-block;color:var(--accent)}
.topbar .nav-menu .nav-menu-list a[href]:hover{background:var(--soft)}
/* Below 960px the header links move into the menu: translated labels and the language switcher need the room. */
@media (max-width:960px){.topbar nav{display:none}.nav-menu{display:block}.topbar .button.quiz-cta{margin-left:auto}}
@media (max-width:420px){.topbar .quiz-cta{font-size:12.5px;padding:8px 11px}}
/* Phones: the site name stays; the finder button moves into the menu (and the home page has its own). */
@media (max-width:560px){.topbar .quiz-cta{display:none}.topbar .brand{margin-right:auto;font-size:18px}}
/* Language switcher (docs/i18n.md): a small menu beside the quiz button; links go to the same page in each language. */
.lang-menu{position:relative;flex-shrink:0}
.lang-menu>summary{display:inline-flex;align-items:center;gap:5px;height:42px;padding:0 10px;border-radius:14px;border:1px solid var(--line);background:var(--paper);box-shadow:var(--sh-1);cursor:pointer;list-style:none;font-size:13px;font-weight:750;color:var(--ink-2)}
.lang-menu>summary::-webkit-details-marker{display:none}
.lang-menu>summary .icon{color:var(--accent)}
.topbar .lang-menu .lang-list{position:absolute;right:0;top:calc(100% + 10px);z-index:61;display:grid;gap:2px;min-width:160px;margin:0;padding:8px;border-radius:16px;border:1px solid var(--line);background:var(--paper);box-shadow:var(--sh-3)}
.topbar .lang-menu .lang-list a{display:block;padding:10px 12px;border-radius:10px;color:var(--ink);font-size:15px;font-weight:650;text-decoration:none;white-space:nowrap}
.topbar .lang-menu .lang-list a[aria-current]{background:var(--soft);color:var(--accent-ink)}
.topbar .lang-menu .lang-list a:hover{background:var(--soft);transform:none}
@media (max-width:720px){.lang-menu>summary{height:40px;padding:0 8px}}
@media (max-width:420px){.lang-menu>summary .icon{display:none}}

.intro h1{font-size:clamp(38px,5.2vw,70px)}
.answer-form{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:10px;max-width:880px;margin:20px 0 0;padding:12px;border-radius:26px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-3)}
.af-field{display:grid;gap:4px;min-width:0;padding:8px 14px;border-radius:18px;background:var(--paper-2);border:1px solid var(--line)}
.af-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
.af-label{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.af-label .icon{width:16px;height:16px;color:var(--accent)}
.af-field select{width:100%;min-width:0;min-height:32px;border:0;background:none;color:var(--ink);font:inherit;font-size:16px;font-weight:700}
.af-go{min-height:58px;padding-inline:22px;font-size:15px}
.home-find{display:grid;gap:10px;max-width:880px;margin:14px 0 0}
.home-find .search-field{max-width:none}
.home-find .popular{padding-bottom:6px;flex-wrap:wrap;overflow:visible}
.plan-browse{margin:0 0 30px}
.plan-browse .plan-links{margin-top:6px}
.map-frame.globe-deferred{height:clamp(200px,54vw,300px);min-height:0}
.map-frame.globe-deferred .map-controls,.map-frame.globe-deferred .map-credit{display:none}
.globe-open{position:absolute;left:50%;top:50%;z-index:3;display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:12px 22px;border:0;border-radius:999px;background:var(--glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:var(--sh-3);color:var(--ink);font-size:16px;font-weight:800;transform:translate(-50%,-50%);cursor:pointer}
.globe-open .icon{color:var(--accent)}
@media (max-width:720px){
  .intro h1{font-size:36px}
  .intro .promise{margin-top:8px}
  .answer-form{grid-template-columns:minmax(0,1fr);gap:8px;margin-top:14px;padding:10px;border-radius:22px}
  .af-field{padding:6px 12px}
  .af-go{width:100%;min-height:50px}
  .home-find{margin-top:10px;gap:8px}
}

.pp-goals{margin:16px 0 0}
.pp-goals .chip{gap:6px;padding:7px 12px;font-size:13.5px}
.pp-goals .chip .icon{color:var(--accent)}
.pp-count{display:inline-grid;place-items:center;min-width:22px;height:20px;padding:0 6px;border-radius:999px;background:var(--soft);color:var(--accent-ink);font-size:12px;font-weight:850}
.pp-goal{margin:26px 0 8px;scroll-margin-top:96px}
.pp-goal>.section-label{scroll-margin-top:96px}
.pp-goal .group-intro{max-width:760px}
.pp-more-head{margin:14px 0 4px;font-size:14px;font-weight:750;color:var(--muted)}
.pp-more{margin-top:4px}
.pp-more .chip{padding:7px 12px;font-size:13.5px}
.page-hero .pp-filter{max-width:440px;margin:16px 0 0;color:var(--ink)}
.pp-none{font-weight:700;color:var(--muted)}

.country-hero img{height:clamp(150px,19vw,250px)}
.country-hero .hero-flag{top:calc(clamp(150px,19vw,250px) - 46px)}
.country-stats{margin:14px 0 18px}
.guide-tax-note{max-width:780px;color:var(--ink-2)}
.arrival{margin:26px 0 8px}
@media (max-width:720px){.country-hero img{height:clamp(140px,40vw,200px)}.country-hero .hero-flag{top:calc(clamp(140px,40vw,200px) - 36px)}.guide-lead{font-size:17px}}
@media (max-width:720px){
  .pp-goals{gap:6px}
  .pp-goals .chip{padding:6px 10px;font-size:12.5px;gap:5px}
  .pp-goals .chip .icon{display:none}
  .pp-count{min-width:20px;height:18px;font-size:11.5px}
  .pp-table td[data-label]:empty{display:none}
  .country-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .country-stats .stat{padding:12px}
  .country-stats .stat strong{font-size:18px}
  .country-stats .stat-icon{width:34px;height:34px;border-radius:12px}
  .suits{gap:6px;margin:10px 0 14px}
  .suits .suit{padding:6px 12px;font-size:13px}
}

/* ---------- 18. Data story (/reports/…): findings, stat tiles, small bar charts ----------
   Bars are inline SVG beside text labels and values; colours validated for CVD in light and dark. */
.story{--seg-a:#0891b2;--seg-b:#1d4ed8;--seg-c:#b45309;--seg-d:#7c3aed;--marker:var(--ink-2)}
.story-chart{--bar:var(--c1)}
.story-byline{display:flex;align-items:flex-start;gap:8px;margin:0 0 14px;color:var(--muted);font-size:14px}
.story-byline .icon{flex:none;margin-top:3px;color:var(--accent)}
.story-findings{display:grid;gap:10px;margin:0 0 8px;padding:0;list-style:none}
.story-findings li{position:relative;padding:14px 16px 14px 44px;border-radius:var(--r1);background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-1);color:var(--ink-2);font-size:16px;line-height:1.5}
.story-findings li::before{content:"";position:absolute;left:16px;top:20px;width:12px;height:12px;border-radius:4px;background:var(--brand)}
.story-section{margin-top:8px}
.story-section>p{max-width:760px;color:var(--ink-2);font-size:16px;line-height:1.65}
.story-h3{margin:22px 0 8px;font-size:18px;font-weight:800}
.story-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:10px;margin:14px 0}
.story-stat{padding:14px 16px;border-radius:var(--r1);background:color-mix(in srgb,var(--c1) 9%,var(--paper));border:1px solid color-mix(in srgb,var(--c1) 22%,var(--line))}
.story-stat strong{display:block;font-family:var(--display);font-size:28px;font-weight:850;letter-spacing:-.03em;color:var(--ink);line-height:1.15}
.story-stat span{display:block;margin-top:2px;color:var(--muted);font-size:13.5px;font-weight:650}
.story-chart{margin:16px 0;padding:16px 18px;border-radius:var(--r2);background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-1)}
.story-chart figcaption{margin:0 0 12px;color:var(--ink-2);font-size:14px;font-weight:700;line-height:1.45}
.story-rows{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.story-rows li{display:grid;grid-template-columns:minmax(0,11rem) minmax(0,1fr) auto;align-items:center;column-gap:12px;row-gap:2px}
.story-label{font-size:14px;font-weight:700;color:var(--ink)}
.story-label a,.story-sub a{color:inherit}
.story-value{font-size:14px;font-weight:800;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums}
.story-sub{grid-column:2/-1;color:var(--muted);font-size:12.5px;line-height:1.4}
.story-bar{display:block;width:100%;height:16px;overflow:visible}
.story-bar .story-track{fill:color-mix(in srgb,var(--line) 60%,transparent)}
.story-bar rect:not([class]),.story-bar rect[class=""]{fill:var(--bar)}
.story-marker{stroke:var(--marker);stroke-width:2;stroke-dasharray:3 3}
.story-seg-a{fill:var(--seg-a)}.story-seg-b{fill:var(--seg-b)}.story-seg-c{fill:var(--seg-c)}.story-seg-d{fill:var(--seg-d)}
.story-split .story-bar{height:26px}
.story-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0 0 10px;padding:0;list-style:none;color:var(--ink-2);font-size:13.5px}
.story-legend li{display:inline-flex;align-items:center;gap:7px}
.story-legend svg{flex:none}
.story-foot,.story-note{color:var(--muted);font-size:14px}
.story-links{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:14px;font-weight:700}
.story-timeline{display:grid;gap:8px;margin:8px 0 12px;padding:0;list-style:none}
.story-timeline li{display:grid;grid-template-columns:9.5rem minmax(0,1fr);column-gap:14px;row-gap:2px;padding:12px 14px;border-radius:var(--r1);background:var(--paper);border:1px solid var(--line)}
.story-when{grid-row:span 2;color:var(--accent-ink);font-size:13.5px;font-weight:800}
.story-what{color:var(--ink-2);font-size:14.5px;line-height:1.5}
.story-what>a{font-weight:800;margin-right:4px}
.story-timeline small{grid-column:2;color:var(--muted);font-size:13px}
.story-tag{display:inline-block;margin:0 6px 0 2px;padding:1px 8px;border-radius:999px;background:color-mix(in srgb,#be123c 14%,var(--paper));color:var(--ink);font-size:12px;font-weight:800;vertical-align:1px}
.story-method{margin-top:28px;padding-top:6px;border-top:1px solid var(--line)}
@media (prefers-color-scheme:dark){
  :root:not([data-mode=light]) .story{--seg-a:#0891b2;--seg-b:#6366f1;--seg-c:#d97706;--seg-d:#a855f7}
  :root:not([data-mode=light]) .story-chart{--bar:color-mix(in srgb,var(--c1) 55%,var(--glow))}
}
@media (max-width:720px){
  .story-rows li{grid-template-columns:minmax(0,1fr) auto}
  .story-rows .story-bar{grid-column:1/-1;grid-row:2}
  .story-sub{grid-column:1/-1}
  .story-timeline li{grid-template-columns:minmax(0,1fr)}
  .story-when{grid-row:auto}
  .story-timeline small{grid-column:1}
  .story-stat strong{font-size:24px}
}
@media (forced-colors:active){.story-bar rect{fill:CanvasText}.story-bar .story-track{fill:Canvas}}
/* Region tabs on the home page: five tabs scroll sideways on narrow screens instead of wrapping. */
.region-tabs{max-width:100%;overflow-x:auto;scrollbar-width:none}
.region-tabs::-webkit-scrollbar{display:none}
.region-tabs button{white-space:nowrap;flex:0 0 auto}
/* Route pages: household figures, figures seen elsewhere, and how the page was checked. */
.household,.elsewhere{margin:18px 0}
.household .table-wrap{margin:8px 0}
.elsewhere-item{min-width:0;padding:12px 14px;border-radius:14px;background:var(--paper-2);border:1px solid var(--line);margin:8px 0}
.elsewhere-item p{margin:4px 0;overflow-wrap:anywhere}
.checked-box{margin:24px 0 10px;padding:14px 16px 16px;border-radius:18px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-1);min-width:0}
.guide-page .checked-box h2.section-label{margin-top:0}
.checked-sources{margin:8px 0;padding-left:20px;font-size:14px;line-height:1.6}
.checked-sources a,.checked-more a{overflow-wrap:anywhere}
.checked-more{font-size:13px;color:var(--muted)}
/* Home: most-checked routes. Reports: evidence lines and figure lists. */
.top-routes .chips{flex-wrap:wrap}
.evidence-row td{padding-top:0;color:var(--muted)}
.figure-list{margin:0;padding-left:18px}
.report-case{margin:12px 0}
.data-download{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:10px 0 18px;font-size:14px;line-height:1.45;color:var(--muted)}
.data-download .button{flex:none}

/* Korean breaks lines between words, not inside them. */
:lang(ko){word-break:keep-all;overflow-wrap:anywhere}
/* German compounds (Sonderverwaltungsregion, Beschäftigungsgenehmigung) hyphenate instead of running off narrow screens. */
:lang(de){hyphens:auto;overflow-wrap:break-word}
/* Stat tiles: a single long word (German compounds) wraps inside its tile instead of spilling out. */
.stat>*{min-width:0;overflow-wrap:anywhere}
/* Phones: every region tab visible, wrapping onto a second line instead of scrolling out of view. */
@media (max-width:560px){.region-tabs{flex-wrap:wrap;overflow-x:visible;border-radius:20px}}
