/* ============================================================
   UrgentVisa — app.css  (3 themes · mobile + desktop)
   Search/result components carried over from the aplusz design.
   ============================================================ */

:root {
  --font-sans: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --fs-xs:.75rem; --fs-sm:.875rem; --fs-base:1rem; --fs-lg:1.125rem; --fs-xl:1.375rem; --fs-2xl:1.75rem; --fs-3xl:2.25rem; --fs-hero:3rem;
  --sp-1:.25rem; --sp-2:.5rem; --sp-3:.75rem; --sp-4:1rem; --sp-6:1.5rem; --sp-8:2rem; --sp-12:3rem; --sp-16:4rem;
  --r-xs:6px; --r-sm:10px; --r-md:16px; --r-lg:24px; --r-xl:32px; --r-pill:999px;
  --ease-spring:cubic-bezier(.34,1.56,.64,1); --dur-fast:150ms; --dur-base:250ms; --dur-slow:400ms;
  --glass-blur:20px; --glass-saturate:180%;
}
[data-theme="light"]{
  --bg:#fafafa; --bg-elevated:rgba(255,255,255,.92); --bg-glass:rgba(250,250,250,.72); --surface:#fff; --border:#e5e7eb;
  --text:#1a1a1a; --text-muted:#4b5563; --text-dim:#9ca3af;
  --accent:#0066cc; --accent-hover:#0052a3; --link:#2563eb; --success:#16a34a; --warning:#ea580c; --danger:#dc2626;
  --shadow-sm:0 1px 2px rgba(0,0,0,.06); --shadow-md:0 4px 12px rgba(0,0,0,.08); --shadow-lg:0 12px 32px rgba(0,0,0,.12); --glow:0 0 24px rgba(0,102,204,.15);
  color-scheme:light;
}
[data-theme="dark"]{
  --bg:#0f172a; --bg-elevated:rgba(30,41,59,.8); --bg-glass:rgba(15,23,42,.6); --surface:#1e293b; --border:#334155;
  --text:#e2e8f0; --text-muted:#94a3b8; --text-dim:#64748b;
  --accent:#3b82f6; --accent-hover:#60a5fa; --link:#60a5fa; --success:#4ade80; --warning:#fb923c; --danger:#f87171;
  --shadow-sm:0 1px 2px rgba(0,0,0,.3); --shadow-md:0 4px 12px rgba(0,0,0,.4); --shadow-lg:0 12px 32px rgba(0,0,0,.5); --glow:0 0 24px rgba(59,130,246,.18);
  color-scheme:dark;
}
[data-theme="sepia"]{
  --bg:#f4ecd8; --bg-elevated:rgba(248,241,220,.92); --bg-glass:rgba(244,236,216,.75); --surface:#fbf5e3; --border:#d6c9a8;
  --text:#3a2f1f; --text-muted:#6b5840; --text-dim:#8a7a5e;
  --accent:#8b6f47; --accent-hover:#6f5837; --link:#5a7a8c; --success:#5c7a3f; --warning:#b8702a; --danger:#a83232;
  --shadow-sm:0 1px 2px rgba(90,70,40,.08); --shadow-md:0 4px 12px rgba(90,70,40,.12); --shadow-lg:0 12px 32px rgba(90,70,40,.18); --glow:0 0 24px rgba(139,111,71,.2);
  color-scheme:light;
}

*{box-sizing:border-box; margin:0; padding:0;}
html,body{font-family:var(--font-sans); background:var(--bg); color:var(--text); -webkit-font-smoothing:antialiased; scroll-behavior:smooth;}
body{min-height:100vh; display:flex; flex-direction:column;}
a{color:var(--link);}
img{max-width:100%;}

/* ---------------- TOPBAR ---------------- */
.topbar{position:sticky; top:0; z-index:50; display:flex; align-items:center; justify-content:space-between; gap:var(--sp-3);
  padding:var(--sp-3) var(--sp-4); background:var(--bg-elevated);
  backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate)); -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));
  border-bottom:1px solid var(--border);}
.brand{display:flex; align-items:center; gap:8px; font-weight:800; letter-spacing:-.02em; font-size:var(--fs-lg); color:var(--text); text-decoration:none;}
.brand .brand-mark{width:26px; height:26px; border-radius:8px; background:linear-gradient(135deg,var(--accent),var(--accent-hover)); display:grid; place-items:center; color:#fff; font-size:.85rem;}
.brand .brand-u{color:var(--accent);}
.nav-actions{display:flex; align-items:center; gap:6px;}
.chip{display:inline-flex; align-items:center; gap:5px; background:var(--surface); border:1px solid var(--border); color:var(--text);
  border-radius:var(--r-pill); padding:6px 10px; font-family:inherit; font-size:var(--fs-sm); font-weight:600; cursor:pointer; line-height:1;
  transition:border-color var(--dur-base) var(--ease-spring), background var(--dur-base) var(--ease-spring);}
.chip:hover{border-color:var(--accent);}
.chip .caret{opacity:.5; font-size:.7rem;}
.chip.icon-only{padding:6px 9px; font-size:1rem;}
.chip.install{background:linear-gradient(135deg,var(--accent),var(--accent-hover)); color:#fff; border-color:transparent;}

/* ---------------- DROPDOWN MENUS ---------------- */
.uv-menu{position:fixed; z-index:9998; width:min(320px,calc(100vw - 16px)); max-height:min(440px,70vh); display:flex; flex-direction:column;
  background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); box-shadow:var(--shadow-lg);
  opacity:0; transform:translateY(-6px); pointer-events:none; transition:opacity .15s ease, transform .15s ease; overflow:hidden;}
.uv-menu.open{opacity:1; transform:none; pointer-events:auto;}
.uv-menu-head{padding:10px 12px 4px; font-size:var(--fs-xs); text-transform:uppercase; letter-spacing:.08em; color:var(--text-dim); font-weight:700;}
.uv-menu-search{margin:6px 10px 8px; padding:9px 11px; border:1px solid var(--border); border-radius:var(--r-sm); background:var(--bg); color:var(--text); font-family:inherit; font-size:var(--fs-sm); outline:none;}
.uv-menu-search:focus{border-color:var(--accent);}
.uv-menu-list{overflow-y:auto; padding:4px 6px 8px; display:flex; flex-direction:column; gap:2px;}
.uv-menu-opt{display:flex; align-items:center; gap:10px; width:100%; text-align:left; background:transparent; border:0; border-radius:var(--r-sm);
  padding:9px 10px; cursor:pointer; color:var(--text); font-family:inherit; font-size:var(--fs-sm);}
.uv-menu-opt:hover{background:var(--bg-elevated);}
.uv-opt-code{font-weight:700; font-size:.78rem; letter-spacing:.03em; min-width:40px; color:var(--accent);}
.uv-opt-name{flex:1;}
.uv-opt-sym{color:var(--text-dim); font-weight:600;}
.uv-menu-opt-disabled{cursor:default; opacity:.5;}
.uv-menu-opt-disabled:hover{background:transparent;}
.uv-opt-status{font-size:.72rem; color:var(--text-dim); white-space:nowrap;}

/* ---------------- live on-demand lookup result box ---------------- */
.live-lookup-box{background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); padding:var(--sp-4); margin:var(--sp-4) 0;}
.live-lookup-status{color:var(--text-muted); font-style:italic; margin:0;}

/* ---------------- nationality-answer blocks: always self-labeled, ---------------- */
/* so a static (French) answer and a live-lookup answer for a different    */
/* nationality can never be mistaken for one another, in any order.        */
.nationality-answer{margin:var(--sp-4) 0; padding-top:var(--sp-3); border-top:1px solid var(--border);}

/* ---------------- FAQ section ---------------- */
.faq-heading{font-size:var(--fs-xl); font-weight:800; margin:0 0 var(--sp-3);}
.faq-item{margin-bottom:var(--sp-4); padding-bottom:var(--sp-4); border-bottom:1px solid var(--border);}
.faq-item:last-child{border-bottom:0; margin-bottom:0; padding-bottom:0;}
.faq-q{font-size:var(--fs-base); font-weight:700; margin:0 0 6px; color:var(--text);}
.faq-a{font-size:var(--fs-sm); color:var(--text-muted); line-height:1.6; margin:0;}

/* ---------------- pre-travel checklist ---------------- */
.checklist-heading{font-size:var(--fs-xl); font-weight:800; margin:0 0 var(--sp-3);}
.checklist-list{margin:0; padding-left:1.3em; display:flex; flex-direction:column; gap:10px;}
.checklist-list li{font-size:var(--fs-sm); color:var(--text-muted); line-height:1.55;}

/* ---------------- WhatsApp contact form ---------------- */
.whatsapp-form{margin:var(--sp-4) 0; display:flex; flex-direction:column; gap:var(--sp-3);}
.wa-textarea{width:100%; padding:var(--sp-3); border:1px solid var(--border); border-radius:var(--r-md); background:var(--surface); color:var(--text); font-family:inherit; font-size:var(--fs-base); line-height:1.5; resize:vertical; min-height:120px;}
.wa-textarea:focus{outline:none; border-color:var(--accent);}
.wa-send-btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; background:#25D366; color:#fff; text-decoration:none; padding:14px 24px; border-radius:var(--r-pill); font-weight:700; font-size:var(--fs-base); box-shadow:var(--shadow-md); transition:transform var(--dur-base) var(--ease-spring),box-shadow var(--dur-base) var(--ease-spring); align-self:flex-start;}
.wa-send-btn:hover{transform:translateY(-2px); box-shadow:var(--shadow-lg); color:#fff;}
.nationality-answer:first-of-type{border-top:0; padding-top:0;}
.nationality-answer-label{margin:0 0 var(--sp-2); font-size:var(--fs-sm); font-weight:700; color:var(--text-muted); text-transform:uppercase; letter-spacing:.04em; display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
.nationality-answer-live-tag{background:color-mix(in srgb, var(--accent) 15%, transparent); color:var(--accent); border-radius:var(--r-pill); padding:2px 9px; font-size:.7rem; font-weight:700; text-transform:none; letter-spacing:0;}

/* ---------------- passport-selector banner (on guide pages) ---------------- */
.passport-banner{background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); padding:var(--sp-3) var(--sp-4); font-size:var(--fs-sm); line-height:1.5; margin:var(--sp-4) 0; display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-2);}
.passport-switch-btn{background:transparent; border:1px solid var(--border); border-radius:var(--r-pill); padding:5px 12px; font-family:inherit; font-size:.8rem; font-weight:600; color:var(--accent); cursor:pointer; transition:border-color var(--dur-base) var(--ease-spring),background var(--dur-base) var(--ease-spring);}
.passport-switch-btn:hover{border-color:var(--accent); background:color-mix(in srgb, var(--accent) 8%, transparent);}

/* ---------------- homepage nationality prompt (above search bar) ---------------- */
/* ---------------- homepage search-row: nationality chip + search bar ---------------- */
.search-row{display:flex; align-items:center; gap:var(--sp-2); max-width:620px; margin:0 auto var(--sp-6);}
.nationality-inline-btn{flex:0 0 auto; width:auto; display:inline-flex; align-items:center; gap:6px; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-pill); padding:12px 16px; font-family:inherit; font-size:var(--fs-sm); font-weight:600; color:var(--text); cursor:pointer; white-space:nowrap; transition:border-color var(--dur-base) var(--ease-spring),background var(--dur-base) var(--ease-spring);}
.nationality-inline-btn.hint-pulse{animation:uv-hint-pulse 2.2s ease-in-out 3;}
@keyframes uv-hint-pulse{
  0%,100%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 35%, transparent); border-color:var(--border);}
  50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--accent) 0%, transparent); border-color:var(--accent);}
}
.nationality-inline-btn:hover{border-color:var(--accent); background:color-mix(in srgb, var(--accent) 6%, var(--surface));}
.nationality-inline-btn .caret{font-size:.7rem; opacity:.6;}

/* ---------------- HERO ---------------- */
main{flex:1;}
.hero{position:relative; max-width:560px; margin:0 auto; padding:var(--sp-6) var(--sp-4) var(--sp-2); text-align:center;}
.hero-glow{position:absolute; top:0; left:50%; transform:translateX(-50%); width:80%; height:320px; background:radial-gradient(ellipse at center,var(--accent) 0%,transparent 60%); opacity:.12; filter:blur(60px); pointer-events:none; z-index:0;}
.hero>*:not(.hero-glow){position:relative; z-index:1;}
.hero-title{font-size:clamp(2.5rem,9vw,4rem); font-weight:800; letter-spacing:-.04em; line-height:1.05; margin-bottom:var(--sp-3);}
.hero-title .accent{background:linear-gradient(135deg,var(--accent),var(--accent-hover)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;}
.hero-sub{color:var(--text-muted); font-size:var(--fs-lg); margin-bottom:var(--sp-1); line-height:1.5;}

/* ---------------- SEARCH CARD (mobile stacked) ---------------- */
.search-card{position:relative; background:var(--bg-glass); backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate)); -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));
  border:1px solid var(--border); border-radius:var(--r-xl); padding:var(--sp-4); box-shadow:var(--shadow-lg),var(--glow); display:flex; flex-direction:column; gap:var(--sp-3); text-align:left; max-width:880px; margin:0 auto;}
.field{display:flex; flex-direction:column; gap:var(--sp-1); background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); padding:var(--sp-3) var(--sp-4); transition:border-color var(--dur-base) var(--ease-spring),box-shadow var(--dur-base) var(--ease-spring);}
.field:focus-within{border-color:var(--accent); box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent);}
.field label{font-size:var(--fs-xs); text-transform:uppercase; letter-spacing:.08em; color:var(--text-dim); font-weight:600;}
.field input{background:transparent; border:none; outline:none; color:var(--text); font-size:var(--fs-lg); font-weight:500; padding:0; width:100%; font-family:inherit;}
.field input::placeholder{color:var(--text-dim);}
.swap-btn{position:static; align-self:center; margin:calc(-1 * var(--sp-2) - 4px) 0; width:44px; height:44px; border:0; border-radius:var(--r-pill); background:var(--accent); color:#fff; font-size:1.2rem; font-weight:700; display:grid; place-items:center; box-shadow:var(--shadow-md); transition:transform var(--dur-base) var(--ease-spring); z-index:2; cursor:pointer;}
.swap-btn:hover{transform:rotate(180deg);}
.trip-toggle{display:flex; gap:6px; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-pill); padding:4px;}
.trip-opt{flex:1; padding:8px 12px; border:0; border-radius:var(--r-pill); background:transparent; color:var(--text); font-family:inherit; font-weight:600; font-size:var(--fs-sm); cursor:pointer; transition:background .15s ease,color .15s ease;}
.trip-opt[aria-selected="true"]{background:var(--accent); color:#fff; font-weight:700;}
.primary-btn{border:0; cursor:pointer; background:linear-gradient(135deg,var(--accent),var(--accent-hover)); color:#fff; padding:var(--sp-4); border-radius:var(--r-md); font-family:inherit; font-size:var(--fs-base); font-weight:700; letter-spacing:.01em; box-shadow:var(--shadow-md); transition:transform var(--dur-base) var(--ease-spring),box-shadow var(--dur-base) var(--ease-spring);}
.primary-btn:hover{transform:translateY(-2px); box-shadow:var(--shadow-lg);}
.primary-btn:active{transform:translateY(0);}
.primary-btn:disabled{opacity:.7; cursor:default; transform:none;}
.search-hint{margin-top:8px; font-size:.85rem; color:var(--danger); text-align:center; font-weight:600;}
.uv-disc{margin:var(--sp-6) auto 0; max-width:880px; text-align:center; color:var(--text-dim); font-size:var(--fs-xs); line-height:1.5;}

/* ---------------- RESULT ---------------- */
.result{margin-top:var(--sp-6); max-width:720px; margin-left:auto; margin-right:auto; text-align:left; animation:uvFadeUp var(--dur-slow) var(--ease-spring);}
.result.hidden{display:none;}
@keyframes uvFadeUp{from{opacity:0; transform:translateY(12px);} to{opacity:1; transform:translateY(0);}}
.result-card{background:var(--bg-glass); backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate)); -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate)); border:1px solid var(--border); border-radius:var(--r-xl); padding:var(--sp-6); box-shadow:var(--shadow-lg),var(--glow); display:flex; flex-direction:column; gap:var(--sp-4);}
.route-line{display:flex; align-items:center; justify-content:center; gap:var(--sp-3); font-size:var(--fs-xl); font-weight:700; letter-spacing:-.01em;}
.route-line .city{color:var(--text);}
.route-line .arrow{color:var(--accent); font-weight:400;}
.dates{display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-3);}
.date-block{background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); padding:var(--sp-3) var(--sp-4); display:flex; flex-direction:column; gap:var(--sp-1);}
.date-departure{border-color:var(--success); box-shadow:0 0 0 1px var(--success), 0 0 24px color-mix(in srgb,var(--success) 14%,transparent);}
.date-label{font-size:var(--fs-xs); text-transform:uppercase; letter-spacing:.08em; color:var(--text-dim); font-weight:600;}
.date-departure .date-label{color:var(--success);}
.date-value{font-size:var(--fs-lg); font-weight:700; color:var(--text);}
.date-meta{font-size:var(--fs-xs); color:var(--text-muted);}
.price-row{display:flex; justify-content:space-between; align-items:flex-end; padding-top:var(--sp-3); border-top:1px solid var(--border);}
.price-label{font-size:var(--fs-xs); text-transform:uppercase; letter-spacing:.08em; color:var(--text-dim); font-weight:600; margin-bottom:var(--sp-1);}
.price-value{font-size:var(--fs-3xl); font-weight:800; letter-spacing:-.02em; background:linear-gradient(135deg,var(--accent),var(--accent-hover)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; line-height:1;}
.price-value.price-live{font-size:var(--fs-xl); background:none; -webkit-text-fill-color:var(--accent); color:var(--accent); letter-spacing:-.01em;}
.conf{display:inline-flex; align-items:center; gap:var(--sp-1); padding:var(--sp-1) var(--sp-3); border-radius:var(--r-pill); font-size:var(--fs-xs); font-weight:600; border:1px solid var(--border);}
.conf-dots{letter-spacing:-1px; font-size:.65rem;}
.conf-high{color:var(--success); border-color:var(--success); background:color-mix(in srgb,var(--success) 9%,transparent);}
.conf-medium{color:var(--warning); border-color:var(--warning); background:color-mix(in srgb,var(--warning) 9%,transparent);}
.conf-low{color:var(--danger); border-color:var(--danger); background:color-mix(in srgb,var(--danger) 9%,transparent);}
.alltime-low{display:inline-flex; align-items:center; gap:6px; margin:var(--sp-2) 0 var(--sp-1); padding:5px 12px; border-radius:var(--r-pill); background:color-mix(in srgb,var(--success) 12%,transparent); color:var(--success); border:1px solid color-mix(in srgb,var(--success) 32%,transparent); font-size:var(--fs-xs); font-weight:700; line-height:1.3;}
.cta-book{display:block; background:linear-gradient(135deg,var(--accent),var(--accent-hover)); color:#fff; text-align:center; padding:var(--sp-4); border-radius:var(--r-md); font-size:var(--fs-base); font-weight:700; letter-spacing:.01em; text-decoration:none; box-shadow:var(--shadow-md); transition:transform var(--dur-base) var(--ease-spring),box-shadow var(--dur-base) var(--ease-spring);}
.cta-book:hover{transform:translateY(-2px); box-shadow:var(--shadow-lg); color:#fff;}
.kiwitaxi-cta{margin:var(--sp-2) 0 var(--sp-1); text-align:center;}
.kiwi-transfer-btn{display:inline-block; font-size:.82rem; font-weight:600; color:#b45309; text-decoration:none; padding:7px 14px; border:1px solid rgba(180,83,9,.28); border-radius:10px; background:rgba(245,185,66,.14);}
.kiwi-transfer-btn:hover{background:rgba(245,185,66,.24);}
.affil-row{display:flex; flex-wrap:wrap; gap:6px; margin:var(--sp-2) 0 var(--sp-1); justify-content:center;}
.affil-btn{display:inline-block; font-size:.82rem; font-weight:600; color:var(--text-muted); text-decoration:none; padding:7px 13px; border:1px solid var(--border); border-radius:10px; background:var(--surface); white-space:nowrap; transition:border-color var(--dur-base) var(--ease-spring),background var(--dur-base) var(--ease-spring),color var(--dur-base) var(--ease-spring);}
.affil-btn:hover{color:var(--text); border-color:var(--accent); background:var(--bg-elevated);}
.airhelp-btn{color:#b45309; border-color:rgba(180,83,9,.24);}
.cal-row{display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-2);}
.cal-btn{background:var(--surface); border:1px solid var(--border); color:var(--text); padding:var(--sp-3); border-radius:var(--r-md); font-family:inherit; font-size:var(--fs-sm); font-weight:600; text-align:center; text-decoration:none; cursor:pointer; transition:background var(--dur-base) var(--ease-spring),border-color var(--dur-base) var(--ease-spring);}
.cal-btn:hover{background:var(--bg-elevated); border-color:var(--accent); color:var(--text);}
.result-empty{background:var(--surface); border:1px dashed var(--border); border-radius:var(--r-md); padding:var(--sp-6); text-align:center; color:var(--text-muted); font-size:var(--fs-sm);}
.rt-leg{display:flex; flex-direction:column; gap:var(--sp-3);}
.rt-leg-head{font-size:var(--fs-xs); text-transform:uppercase; letter-spacing:.08em; color:var(--text-dim); font-weight:600; text-align:center;}
.rt-leg .price-value{font-size:var(--fs-xl);}

/* ---------------- AFFILIATE HUB ---------------- */
.section{max-width:1080px; margin:0 auto; padding:var(--sp-12) var(--sp-4) 0;}
#guides{padding-top:var(--sp-4);}
.section-title{font-size:var(--fs-2xl); font-weight:800; letter-spacing:-.02em; text-align:center; margin-bottom:var(--sp-2);}
.section-sub{text-align:center; color:var(--text-muted); font-size:var(--fs-base); margin-bottom:var(--sp-6); line-height:1.5;}
.aff-grid{display:grid; grid-template-columns:1fr; gap:var(--sp-3);}
.aff-card{display:flex; flex-direction:column; gap:6px; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); padding:var(--sp-4); box-shadow:var(--shadow-sm); transition:border-color var(--dur-base) var(--ease-spring),transform var(--dur-base) var(--ease-spring),box-shadow var(--dur-base) var(--ease-spring);}
.aff-card:hover{border-color:var(--accent); transform:translateY(-2px); box-shadow:var(--shadow-md);}
.aff-card.featured{border-color:color-mix(in srgb,var(--accent) 45%,var(--border)); box-shadow:var(--shadow-md),var(--glow);}
.aff-ico{font-size:1.6rem; line-height:1;}
.aff-name{font-weight:700; font-size:var(--fs-lg);}
.aff-sub{color:var(--text-muted); font-size:var(--fs-sm); line-height:1.45; flex:1;}
.aff-cta{margin-top:var(--sp-2); align-self:flex-start; display:inline-block; background:linear-gradient(135deg,var(--accent),var(--accent-hover)); color:#fff; text-decoration:none; padding:9px 16px; border-radius:var(--r-pill); font-weight:700; font-size:var(--fs-sm); box-shadow:var(--shadow-sm); transition:transform var(--dur-base) var(--ease-spring);}
.aff-cta:hover{transform:translateY(-1px); color:#fff;}
.aff-cta.secondary{background:var(--bg-elevated); color:var(--text); border:1px solid var(--border);}
.aff-cta.secondary:hover{border-color:var(--accent); color:var(--text);}

/* ---------------- GUIDES ---------------- */
.guide-search{position:relative; flex:1 1 auto; min-width:0;}
.guide-search input{width:100%; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-pill); padding:14px 44px 14px 20px; font-family:inherit; font-size:var(--fs-base); color:var(--text); outline:none; transition:border-color var(--dur-base) var(--ease-spring),box-shadow var(--dur-base) var(--ease-spring);}
.guide-search input:focus{border-color:var(--accent); box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent);}
.guide-search input::placeholder{color:var(--text-dim);}
.guide-search-ico{position:absolute; right:16px; top:50%; transform:translateY(-50%); opacity:.5; pointer-events:none; font-size:.95rem;}
.guide-empty{max-width:560px; margin:0 auto; text-align:center; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); padding:var(--sp-8) var(--sp-6); box-shadow:var(--shadow-sm);}
.guide-empty.hidden{display:none;}
.guide-empty-ico{font-size:2.2rem; margin-bottom:var(--sp-2);}
.guide-empty-title{font-weight:800; font-size:var(--fs-lg); margin-bottom:var(--sp-2);}
.guide-empty-sub{color:var(--text-muted); font-size:var(--fs-sm); line-height:1.55; margin-bottom:var(--sp-4);}
.guide-empty-actions{display:flex; flex-wrap:wrap; gap:var(--sp-2); justify-content:center;}
.guide-grid{display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-3);}
.guide-grid.is-collapsed{max-height:520px; overflow:hidden; position:relative;}
.guide-grid.is-collapsed::after{content:""; position:absolute; left:0; right:0; bottom:0; height:120px; background:linear-gradient(to bottom, transparent, var(--bg)); pointer-events:none;}
.guide-expand-btn{display:block; margin:var(--sp-4) auto 0; padding:12px 28px; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-pill); color:var(--text); font-family:inherit; font-size:var(--fs-sm); font-weight:700; cursor:pointer; transition:border-color var(--dur-base) var(--ease-spring),background var(--dur-base) var(--ease-spring);}
.guide-expand-btn:hover{border-color:var(--accent); background:color-mix(in srgb, var(--accent) 8%, var(--surface));}
.guide-expand-btn.hidden{display:none;}
.guide-card{display:block; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); padding:var(--sp-4); text-decoration:none; color:var(--text); transition:border-color var(--dur-base) var(--ease-spring),transform var(--dur-base) var(--ease-spring);}
.guide-card:hover{border-color:var(--accent); transform:translateY(-2px);}
.guide-flag{font-size:1.4rem;}
.guide-name{font-weight:700; margin-top:4px;}
.guide-meta{color:var(--text-dim); font-size:var(--fs-xs); margin-top:2px;}

/* ---------------- INSTALL MODAL ---------------- */
.install-modal{position:fixed; inset:0; z-index:9999; display:none; align-items:flex-end; justify-content:center; padding:var(--sp-4); background:rgba(0,0,0,.5); backdrop-filter:blur(3px);}
.install-modal.open{display:flex;}
.install-card{width:100%; max-width:420px; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-xl); padding:var(--sp-6); box-shadow:var(--shadow-lg); text-align:center; animation:uvFadeUp var(--dur-base) var(--ease-spring);}
.install-ico{width:64px; height:64px; margin:0 auto var(--sp-3); border-radius:18px; background:linear-gradient(135deg,var(--accent),var(--accent-hover)); display:grid; place-items:center; font-size:1.8rem; color:#fff;}
.install-title{font-size:var(--fs-xl); font-weight:800; margin-bottom:var(--sp-2);}
.install-body{color:var(--text-muted); font-size:var(--fs-sm); line-height:1.5; margin-bottom:var(--sp-4);}
.install-tip{color:var(--text); font-size:var(--fs-sm); background:var(--bg-elevated); border:1px solid var(--border); border-radius:var(--r-md); padding:var(--sp-3); margin-bottom:var(--sp-4); line-height:1.5;}
.install-actions{display:flex; flex-direction:column; gap:var(--sp-2);}
.install-now{background:linear-gradient(135deg,var(--accent),var(--accent-hover)); color:#fff; border:0; border-radius:var(--r-md); padding:var(--sp-4); font-family:inherit; font-size:var(--fs-base); font-weight:700; cursor:pointer; box-shadow:var(--shadow-md);}
.install-later{background:transparent; color:var(--text-dim); border:0; padding:var(--sp-2); font-family:inherit; font-size:var(--fs-sm); font-weight:600; cursor:pointer;}

/* ---------------- OFFLINE BANNER ---------------- */
.offline-banner{position:fixed; left:50%; bottom:var(--sp-4); transform:translateX(-50%) translateY(160%); z-index:60; background:var(--text); color:var(--bg); padding:10px 18px; border-radius:var(--r-pill); font-size:var(--fs-sm); font-weight:600; box-shadow:var(--shadow-lg); transition:transform var(--dur-base) var(--ease-spring); max-width:calc(100vw - 32px);}
.offline-banner.show{transform:translateX(-50%) translateY(0);}

/* ---------------- FOOTER ---------------- */
.footer{margin-top:var(--sp-16); border-top:1px solid var(--border); padding:var(--sp-8) var(--sp-4); text-align:center; color:var(--text-dim); font-size:var(--fs-sm);}
.footer .foot-tagline{color:var(--text-muted); font-weight:600; margin-bottom:var(--sp-3);}
.footer .foot-links{display:flex; flex-wrap:wrap; gap:var(--sp-4); justify-content:center; margin-bottom:var(--sp-3);}
.footer .foot-links a{color:var(--text-muted); text-decoration:none;}
.footer .foot-links a:hover{color:var(--accent);}
.footer .foot-disc{max-width:640px; margin:0 auto var(--sp-2); line-height:1.5; font-size:var(--fs-xs);}

/* ---------------- AUTOCOMPLETE (body-level) ---------------- */
.uv-ac-menu{position:fixed; z-index:9990; max-height:320px; overflow-y:auto; background:var(--surface); border:1px solid var(--border); border-radius:14px; box-shadow:var(--shadow-lg); padding:6px; opacity:0; transform:translateY(-6px); pointer-events:none; transition:opacity .15s ease, transform .15s ease; font-family:var(--font-sans);}
.uv-ac-menu.open{opacity:1; transform:none; pointer-events:auto;}
.uv-ac-opt{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 12px; border-radius:9px; cursor:pointer;}
.uv-ac-opt:hover,.uv-ac-opt.on{background:var(--bg-elevated);}
.uv-ac-name{color:var(--text); font-size:.95rem; font-weight:500; flex-shrink:0;}
.uv-ac-mid{flex:1; text-align:center;}
.uv-ac-code{color:var(--accent); font-size:.78rem; font-weight:700; letter-spacing:.04em; flex-shrink:0;}

/* ---------------- VISA HERO CTA ---------------- */
.hero-cta{display:inline-block; margin-top:var(--sp-2); background:linear-gradient(135deg,var(--accent),var(--accent-hover)); color:#fff; text-decoration:none; padding:14px 28px; border-radius:var(--r-pill); font-weight:700; font-size:var(--fs-base); box-shadow:var(--shadow-md); transition:transform var(--dur-base) var(--ease-spring),box-shadow var(--dur-base) var(--ease-spring);}
.hero-cta:hover{transform:translateY(-2px); box-shadow:var(--shadow-lg); color:#fff;}

/* ---------------- HOW IT WORKS ---------------- */
.hiw-grid{display:grid; grid-template-columns:1fr; gap:var(--sp-3);}
.hiw-card{background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); padding:var(--sp-4); text-align:left; box-shadow:var(--shadow-sm);}
.hiw-ico{font-size:1.5rem; line-height:1;}
.hiw-card .t{font-weight:700; font-size:var(--fs-lg); margin:8px 0 2px;}
.hiw-card .s{color:var(--text-muted); font-size:var(--fs-sm); line-height:1.45;}

/* ---------------- LOW-KEY FLIGHTS BAND ---------------- */
.flights-lite{max-width:none; background:var(--bg-elevated); border-top:1px solid var(--border); border-bottom:1px solid var(--border); margin-top:var(--sp-16); padding:var(--sp-12) var(--sp-4);}
.flights-lite>*{max-width:760px; margin-left:auto; margin-right:auto;}
.flights-lite .section-title{font-size:var(--fs-xl);}
.flights-lite .section-sub{font-size:var(--fs-sm); margin-bottom:var(--sp-4);}
.flights-lite .search-card{box-shadow:var(--shadow-md); max-width:760px;}
.flights-lite .result,.flights-lite .uv-disc{max-width:760px;}

/* ---------------- RESPONSIVE ---------------- */
@media (max-width:420px){
  .dates{grid-template-columns:1fr;}
  .cal-row{grid-template-columns:1fr;}
  .price-value{font-size:var(--fs-2xl);}
  .brand span.brand-full{display:none;}
  .search-row{flex-wrap:wrap;}
  .nationality-inline-btn{flex:1 1 100%;}
  .guide-search{flex:1 1 100%;}
}
@media (min-width:720px){
  .hero{max-width:1100px; padding:var(--sp-6) var(--sp-6) var(--sp-2);}
  .hero-title{font-size:clamp(3rem,6vw,4.5rem); letter-spacing:-.05em;}
  .hero-sub{font-size:var(--fs-2xl); margin-bottom:var(--sp-2);}
  .hero-glow{height:340px; opacity:.16;}
  .search-card{flex-direction:row; align-items:stretch; gap:var(--sp-2); padding:var(--sp-3); border-radius:var(--r-pill);}
  .search-card .field{flex:1; border-radius:var(--r-pill); padding:var(--sp-3) var(--sp-6);}
  .search-card .trip-toggle{flex-shrink:0; align-self:center;}
  .swap-btn{transform:rotate(90deg); flex-shrink:0; margin:0;}
  .swap-btn:hover{transform:rotate(270deg);}
  .primary-btn{border-radius:var(--r-pill); padding:0 var(--sp-8); white-space:nowrap; flex-shrink:0; font-size:var(--fs-lg);}
  .result-card{padding:var(--sp-8); gap:var(--sp-6);}
  .route-line{font-size:var(--fs-2xl);}
  .price-value{font-size:var(--fs-hero);}
  .price-value.price-live{font-size:var(--fs-2xl);}
  .aff-grid{grid-template-columns:1fr 1fr 1fr;}
  .guide-grid{grid-template-columns:repeat(3,1fr);}
  .hiw-grid{grid-template-columns:repeat(3,1fr);}
}
@media (min-width:1100px){
  .search-card{max-width:960px;}
  .aff-grid{grid-template-columns:repeat(4,1fr);}
}
@media (prefers-reduced-motion:reduce){
  :root{--dur-fast:0ms; --dur-base:0ms; --dur-slow:0ms;}
  .result{animation:none;}
  html{scroll-behavior:auto;}
}

/* ===== Individual country guide pages (visa/*.html) ===== */
.guide-page{max-width:680px; padding-top:var(--sp-8); padding-bottom:var(--sp-12);}
.guide-page h1{font-size:clamp(1.75rem,5vw,2.5rem); font-weight:800; letter-spacing:-.03em; line-height:1.15; margin:var(--sp-4) 0 var(--sp-4);}
.guide-page p{font-size:var(--fs-lg); line-height:1.65; color:var(--text); margin-bottom:var(--sp-4);}
.guide-page .guide-lede{font-size:var(--fs-xl); color:var(--text); font-weight:500;}
.guide-page .guide-meta-line{font-size:var(--fs-sm); color:var(--text-muted);}
.guide-page .guide-disclaimer{font-size:var(--fs-sm); color:var(--text-muted); border-top:1px solid var(--border); padding-top:var(--sp-4); margin-top:var(--sp-6);}
.guide-page a{color:var(--accent); text-decoration:underline; text-decoration-color:transparent; transition:text-decoration-color var(--dur-base) var(--ease-spring);}
.guide-page a:hover{text-decoration-color:var(--accent);}
.verify-banner{background:color-mix(in srgb, var(--accent) 12%, transparent); border:1px solid color-mix(in srgb, var(--accent) 30%, transparent); border-radius:var(--r-md); padding:var(--sp-3) var(--sp-4); font-size:var(--fs-sm); line-height:1.5; margin:var(--sp-4) 0;}
