/* ============================================================
   VISA PAGE — port of visa.html <style>
   ============================================================ */
#hero { min-height:65vh; background:var(--ivory); display:flex; align-items:center; justify-content:center; flex-direction:column; text-align:center; padding:160px 80px 80px; position:relative; overflow:hidden; }
#world-map-bg { position:absolute; inset:0; opacity:.3; width:100%; height:100%; }
.hero-inner { position:relative; z-index:2; }
.hero-eyebrow { font-size:10px; text-transform:uppercase; letter-spacing:3px; color:var(--orange); font-weight:600; margin-bottom:20px; display:block; }
.hero-title { font-family:var(--f-display); font-size:clamp(48px,8vw,110px); font-weight:900; line-height:.9; letter-spacing:-3px; color:var(--black); margin-bottom:20px; }
.hero-title em { color:var(--orange); font-style:italic; }
.hero-sub { font-size:16px; color:var(--gray); max-width:520px; margin:0 auto 40px; line-height:1.6; font-weight:300; }
.visa-stats { background:var(--dark-green); padding:48px 80px; display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
.visa-stat { text-align:center; padding:0 20px; border-right:1px solid rgba(255,255,255,.1); }
.visa-stat:last-child { border-right:none; }
.visa-stat-num { font-family:var(--f-display); font-size:clamp(32px,4vw,52px); font-weight:900; color:var(--orange); line-height:1; margin-bottom:6px; display:block; }
.visa-stat-lbl { font-size:10px; letter-spacing:1.5px; text-transform:uppercase; color:rgba(255,255,255,.4); display:block; }
.continent-tabs { display:flex; gap:0; justify-content:center; flex-wrap:wrap; padding:0 80px; background:var(--ivory); border-bottom:1px solid var(--gray-light); position:sticky; top:70px; z-index:100; }
.continent-tab { padding:20px 28px; font-size:12px; font-weight:600; cursor:pointer; letter-spacing:.3px; border-bottom:2px solid transparent; transition:all .2s; color:var(--gray); background:none; border-left:none; border-right:none; border-top:none; }
.continent-tab:hover { color:var(--orange); }
.continent-tab.active { color:var(--orange); border-bottom-color:var(--orange); }
.visa-section { background:var(--ivory); padding:80px; }
.visa-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; max-width:1280px; margin:0 auto; }
.visa-card { position:relative; border-radius:20px; overflow:hidden; background:#fff; box-shadow:0 2px 20px rgba(0,0,0,.06); transition:transform .4s var(--ease-out), box-shadow .4s var(--ease-out); cursor:pointer; display:flex; flex-direction:column; }
.visa-card:hover { transform:translateY(-6px); box-shadow:0 24px 56px rgba(0,0,0,.12); }
.visa-card-top { padding:28px 28px 20px; flex:1; }
.visa-card-region { font-size:9px; color:var(--orange); text-transform:uppercase; letter-spacing:2px; font-weight:700; margin-bottom:8px; display:block; }
.visa-card-country { font-family:var(--f-display); font-size:clamp(22px,2.2vw,28px); font-weight:900; line-height:1.1; color:var(--black); margin-bottom:12px; }
.visa-card-badge { display:inline-flex; align-items:center; gap:5px; padding:4px 12px; border-radius:40px; font-size:10px; font-weight:600; letter-spacing:.3px; margin-bottom:16px; }
.visa-badge-e-visa { background:var(--green); color:#fff; }
.visa-badge-regular { background:var(--orange); color:#fff; }
.visa-badge-eta { background:var(--dark-green); color:#fff; }
.visa-badge-special { background:var(--black); color:#fff; }
.visa-card-fee { display:flex; align-items:baseline; gap:6px; margin-bottom:6px; }
.visa-card-fee-label { font-size:10px; color:var(--gray); letter-spacing:.5px; }
.visa-card-fee-amount { font-size:20px; font-weight:700; color:var(--orange); }
.visa-card-fee-unit { font-size:11px; color:var(--gray); }
.visa-card-processing { font-size:12px; color:var(--gray); margin-bottom:16px; }
.visa-card-processing strong { color:var(--black); }
.visa-card-docs-label { font-size:9px; text-transform:uppercase; letter-spacing:1.5px; color:var(--gray); font-weight:600; margin-bottom:8px; display:block; }
.visa-card-docs-list { list-style:none; padding:0; margin:0 0 16px; }
.visa-card-docs-list li { font-size:12px; color:var(--black-soft); line-height:1.5; padding:3px 0 3px 14px; position:relative; }
.visa-card-docs-list li::before { content:''; position:absolute; left:0; top:50%; width:5px; height:5px; background:var(--orange); border-radius:50%; transform:translateY(-50%) translateY(-1px); }
.visa-card-footer { padding:16px 28px; border-top:1px solid var(--gray-light); display:flex; align-items:center; justify-content:space-between; }
.visa-card-note { font-size:10px; color:var(--gray); font-style:italic; }
.visa-card-btn { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700; color:var(--orange); cursor:pointer; transition:gap .2s; }
.visa-card:hover .visa-card-btn { gap:10px; }

/* MODAL */
.visa-modal-overlay { position:fixed; inset:0; z-index:1000; background:rgba(26,26,26,.7); backdrop-filter:blur(8px); display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .3s; padding:20px; }
.visa-modal-overlay.open { opacity:1; pointer-events:all; }
.visa-modal { background:var(--ivory); border-radius:24px; width:100%; max-width:720px; max-height:90vh; overflow-y:auto; position:relative; transform:translateY(20px) scale(.97); transition:transform .35s var(--ease-out); }
.visa-modal-overlay.open .visa-modal { transform:translateY(0) scale(1); }
.visa-modal::-webkit-scrollbar { width:6px; }
.visa-modal::-webkit-scrollbar-thumb { background:var(--gray-light); border-radius:3px; }
.visa-modal-header { padding:32px 36px 24px; border-bottom:1px solid var(--gray-light); position:sticky; top:0; background:var(--ivory); z-index:10; }
.visa-modal-close { position:absolute; top:24px; right:24px; width:36px; height:36px; border-radius:50%; background:var(--ivory-2); border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:18px; color:var(--gray); transition:background .2s; }
.visa-modal-close:hover { background:var(--orange-pale); }
.visa-modal-region { font-size:9px; color:var(--orange); text-transform:uppercase; letter-spacing:2px; font-weight:700; margin-bottom:6px; display:block; }
.visa-modal-country { font-family:var(--f-display); font-size:clamp(28px,4vw,40px); font-weight:900; line-height:1; color:var(--black); margin-bottom:12px; }
.visa-modal-meta { display:flex; gap:20px; flex-wrap:wrap; }
.visa-modal-meta-item { display:flex; flex-direction:column; gap:2px; }
.visa-modal-meta-label { font-size:9px; text-transform:uppercase; letter-spacing:1.5px; color:var(--gray); font-weight:600; }
.visa-modal-meta-value { font-size:14px; font-weight:700; color:var(--black); }
.visa-modal-meta-value.highlight { color:var(--orange); }
.visa-modal-body { padding:28px 36px 36px; }
.occ-tabs { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:24px; }
.occ-tab { padding:8px 18px; border-radius:40px; font-size:11px; font-weight:600; border:1.5px solid var(--gray-light); cursor:pointer; letter-spacing:.3px; transition:all .2s; background:#fff; color:var(--black); }
.occ-tab:hover { border-color:var(--orange); color:var(--orange); }
.occ-tab.active { background:var(--orange); color:#fff; border-color:var(--orange); }
.visa-checklist { display:none; }
.visa-checklist.active { display:block; }
.visa-checklist h4 { font-size:12px; text-transform:uppercase; letter-spacing:1.5px; color:var(--orange); font-weight:600; margin-bottom:16px; }
.visa-checklist ul { list-style:none; padding:0; margin:0 0 20px; }
.visa-checklist ul li { font-size:13px; color:var(--black-soft); line-height:1.6; padding:6px 0 6px 18px; position:relative; border-bottom:1px solid var(--ivory-2); }
.visa-checklist ul li:last-child { border-bottom:none; }
.visa-checklist ul li::before { content:''; position:absolute; left:0; top:14px; width:6px; height:6px; background:var(--orange); border-radius:50%; }
.visa-notes { background:var(--orange-pale); border-radius:12px; padding:16px 20px; margin-top:20px; }
.visa-notes h4 { font-size:11px; text-transform:uppercase; letter-spacing:1.5px; color:var(--orange); font-weight:700; margin-bottom:10px; }
.visa-notes ul { list-style:none; padding:0; margin:0; }
.visa-notes ul li { font-size:12px; color:var(--black-soft); line-height:1.6; padding:3px 0 3px 14px; position:relative; }
.visa-notes ul li::before { content:'—'; position:absolute; left:0; color:var(--orange); }
.visa-modal-cta { margin-top:28px; display:flex; gap:12px; flex-wrap:wrap; }
.visa-modal-cta .btn-primary { flex:1; justify-content:center; min-width:160px; }
.visa-modal-footer-note { margin-top:16px; font-size:11px; color:var(--gray); font-style:italic; text-align:center; }
.why-visa { background:var(--ivory-2); padding:80px; }
.why-visa-inner { max-width:1080px; margin:0 auto; }
.why-visa-header { text-align:center; margin-bottom:48px; }
.why-visa-heading { font-family:var(--f-display); font-size:clamp(28px,4vw,48px); font-weight:900; line-height:1.1; letter-spacing:-1px; color:var(--black); margin-bottom:12px; }
.why-visa-heading em { color:var(--orange); font-style:italic; }
.why-visa-sub { font-size:15px; color:var(--gray); font-weight:300; }
.why-visa-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
.why-visa-item { background:#fff; border-radius:20px; padding:36px; text-align:center; transition:transform .3s, box-shadow .3s; }
.why-visa-item:hover { transform:translateY(-4px); box-shadow:0 12px 40px rgba(0,0,0,.08); }
.why-visa-icon { width:60px; height:60px; background:var(--orange-pale); border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 20px; }
.why-visa-title { font-family:var(--f-display); font-size:20px; font-weight:700; color:var(--black); margin-bottom:10px; }
.why-visa-desc { font-size:13px; color:var(--gray); line-height:1.65; }
@media (max-width:1100px) { .visa-grid { grid-template-columns:repeat(2,1fr); } .visa-stats { grid-template-columns:repeat(2,1fr); gap:32px; } }
@media (max-width:768px) { #hero { padding:120px 24px 60px; } .visa-stats { padding:40px 24px; grid-template-columns:repeat(2,1fr); gap:24px; } .continent-tabs { padding:0 24px; overflow-x:auto; flex-wrap:nowrap; justify-content:flex-start; } .continent-tab { padding:16px 18px; white-space:nowrap; } .visa-section { padding:60px 24px; } .visa-grid { grid-template-columns:1fr; gap:20px; } .why-visa { padding:60px 24px; } .why-visa-grid { grid-template-columns:1fr; gap:20px; } }
