/* DXB Visa – dxbvisa.online */
:root{
  --paper:#F7F7F5; --surface:#FFFFFF; --ink:#000000; --ink-2:#3A3A3A; --muted:#6B6B6B;
  --line:#D9D9D9; --gold:#E2AC26; --gold-deep:#A87D12; --blue:#0078B6; --red:#E2192A; --green:#007F3D; --sky:#10A2E2;
  --wa:#1FA855; --navy:#004A75; --gold-wash:#F7EFD3; --red-wash:#FBE9EA; --logo-plate:transparent;
  --display:"Bricolage Grotesque", "Arial Rounded MT Bold", "Helvetica Neue", Arial, sans-serif;
  --body:"Instrument Sans", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  color-scheme: light;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#141414; --surface:#1E1E1E; --ink:#F4F4F4; --ink-2:#CFCFCF; --muted:#9A9A9A;
    --line:#333333; --gold:#E2BE4A; --gold-deep:#E2BE4A; --blue:#3DA7E0; --red:#F0545B; --green:#3DB866;
    --gold-wash:#2B2614; --red-wash:#2E1718; --logo-plate:#FFFFFF; --navy:#5FA8D3; color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --paper:#141414; --surface:#1E1E1E; --ink:#F4F4F4; --ink-2:#CFCFCF; --muted:#9A9A9A;
  --line:#333333; --gold:#E2BE4A; --gold-deep:#E2BE4A; --blue:#3DA7E0; --red:#F0545B; --green:#3DB866;
  --gold-wash:#2B2614; --red-wash:#2E1718; --logo-plate:#FFFFFF; --navy:#5FA8D3; color-scheme:dark;
}
*,*::before,*::after{box-sizing:inherit}
html{scroll-behavior:smooth;scroll-padding-top:calc(env(safe-area-inset-top,0px) + 96px)}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.6 var(--body);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--blue)}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:4px}
.wrap{width:min(1140px,100% - 40px);margin-inline:auto}
h1,h2,h3{font-family:var(--display);line-height:1.05;margin:0;font-weight:800;letter-spacing:-.025em}
p{margin:0}

/* header */
.site-head{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:21;background:var(--paper)}
.head-in{display:flex;align-items:center;gap:24px;height:84px}
.brand{display:flex;align-items:center;background:var(--logo-plate);border-radius:8px;padding:2px 6px}
.brand img{height:66px;width:auto}
@media (max-width:600px){.head-in{height:72px}.brand img{height:54px}}
.nav{display:flex;gap:22px;margin-left:auto;font-weight:500;font-size:.95rem}
.nav a{color:var(--ink-2);text-decoration:none}
.nav a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:4px}
.btn{display:inline-flex;align-items:center;gap:10px;font:600 1rem/1 var(--body);text-decoration:none;border-radius:999px;padding:14px 22px;border:2px solid transparent;cursor:pointer}
.btn-wa{background:var(--wa);color:#fff}
.btn-wa:hover{background:#178A45}
.btn-ghost{border-color:var(--ink);color:var(--ink);background:transparent}
.btn-ghost:hover{background:var(--ink);color:var(--paper)}
.btn svg{width:20px;height:20px;flex:none}
.head-in .btn{padding:11px 18px;font-size:.95rem}
@media (max-width:860px){.nav{display:none}.head-in .btn{margin-left:auto}}
@media (max-width:420px){.head-in .btn span{display:none}.head-in .btn{padding:11px}}

/* hero */
.hero{position:relative;isolation:isolate;overflow:hidden;background:#0A1C2E;color:#fff}
.hero-media{position:absolute;inset:0;z-index:-2}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:40% 50%}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    linear-gradient(to left, rgba(6,20,36,.86) 0%, rgba(6,20,36,.68) 36%, rgba(6,20,36,.15) 60%, rgba(6,20,36,0) 70%),
    linear-gradient(to top, rgba(6,20,36,.45) 0%, rgba(6,20,36,0) 35%)}
.hero-in{display:flex;justify-content:flex-end;align-items:center;min-height:clamp(520px,44vw,720px);padding-block:64px}
.hero-copy{max-width:560px}
.hero h1{font-size:clamp(2.6rem,4.2vw,3.9rem);max-width:15ch;color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.hero .sub{margin-top:20px;font-size:clamp(1.05rem,1.4vw,1.2rem);color:rgba(255,255,255,.9);max-width:44ch;text-shadow:0 1px 12px rgba(0,0,0,.4)}
.hero-ctas{margin-top:30px;display:flex;flex-wrap:wrap;gap:12px}
.btn-light{background:#fff;color:#000}
.btn-light:hover{background:var(--gold);color:#000}
.hero .btn:focus-visible{outline-color:#fff}
@media (max-width:900px){
  .hero{background:#0A1C2E}
  .hero-media{position:relative;inset:auto;display:block;height:min(62vw,360px)}
  .hero::before{background:linear-gradient(to top, #0A1C2E 0%, rgba(10,28,46,0) 34%);height:min(62vw,360px);bottom:auto}
  .hero-media img{object-position:30% 50%}
  .hero-in{display:block;min-height:0;padding-block:6px 40px}
  .hero-copy{max-width:none}
  .hero h1{max-width:14ch}
}
.pick-sec{padding:48px 0 0}
.picker{margin-top:0}
.picker h2{font-size:1.4rem;letter-spacing:-.01em;font-weight:700}
.picker-grid{margin-top:18px;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.pick{--bg:var(--blue);--fg:#fff;--ic-bg:rgba(255,255,255,.18);position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:178px;padding:20px 20px 18px;border-radius:18px;text-decoration:none;background:var(--bg);color:var(--fg);transition:transform .18s ease, box-shadow .18s ease}
.pick-wm{position:absolute;right:-14px;bottom:-18px;width:118px;height:118px;opacity:.16;pointer-events:none;transform:rotate(-10deg);transition:transform .25s ease}
.pick-wm svg{width:100%;height:100%;stroke-width:1.5}
.pick:hover .pick-wm{transform:rotate(0deg) scale(1.06)}
.pick:hover{transform:translateY(-3px);box-shadow:0 12px 26px -10px color-mix(in srgb,var(--bg) 70%,#000)}
.pick:focus-visible{outline-color:var(--ink)}
.pick-ic{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--ic-bg);margin-bottom:auto}
.pick-ic svg{width:24px;height:24px}
.pick b{display:block;margin-top:22px;font:700 1.12rem/1.22 var(--display);letter-spacing:-.01em;position:relative;z-index:1}
.pick-visa{margin-top:8px;font-size:.88rem;font-weight:600;position:relative;z-index:1}
.pick-len{font-size:.86rem;opacity:.85;position:relative;z-index:1}
.t-visit{--bg:#0078B6}
.t-job{--bg:#004A75}
.t-biz{--bg:#F6E2AE;--fg:#000;--ic-bg:rgba(168,125,18,.22)}
.t-emp{--bg:#000;--ic-bg:rgba(226,172,38,.25)}
.t-emp .pick-ic,.t-emp .pick-wm{color:#E2AC26}
.t-biz .pick-ic,.t-biz .pick-wm{color:#7A5A0C}
.t-fam{--bg:#E2192A}
.t-green{--bg:#007F3D}
.t-gold{--bg:#E2AC26;--fg:#000;--ic-bg:rgba(255,255,255,.35);grid-column:span 2}
.t-gold .pick-wm{width:170px;height:170px;right:24px;bottom:-34px;opacity:.22}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .t-emp{--bg:#262626}}
:root[data-theme="dark"] .t-emp{--bg:#262626}
@media (max-width:900px){.picker-grid{grid-template-columns:repeat(2,1fr)}.pick{min-height:160px}.pick-wm{width:88px;height:88px;opacity:.12}.t-gold .pick-wm{width:120px;height:120px}}
@media (max-width:360px){.picker-grid{grid-template-columns:1fr}.t-gold{grid-column:auto}}

/* stay length chart */
.stay{padding:56px 0 64px}
.stay-card{background:var(--surface);border-radius:22px;padding:36px clamp(18px,4vw,44px) 30px;border:1px solid var(--line)}
.stay h2{font-size:clamp(1.8rem,3.4vw,2.6rem)}
.stay .sub{margin-top:10px;color:var(--ink-2);max-width:60ch}
.chart{margin-top:34px;display:grid;grid-template-columns:minmax(120px,190px) 1fr;column-gap:20px;row-gap:22px;align-items:center}
.chart a.label{font-weight:600;color:var(--ink);text-decoration:none;font-size:.98rem;line-height:1.2}
.chart a.label:hover{text-decoration:underline;text-underline-offset:3px}
.track{position:relative;height:30px}
.track::before{content:"";position:absolute;inset:14px 0 auto;height:2px;background:var(--line)}
.bar{position:absolute;top:9px;left:0;height:12px;border-radius:0 6px 6px 0;background:var(--c);transform-origin:left;animation:grow .9s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--d,0s)}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.dot{position:absolute;top:6px;width:18px;height:18px;margin-left:-9px;border-radius:50%;background:var(--surface);border:3px solid var(--c)}
.dot em{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);font-style:normal;font-size:.72rem;font-weight:600;color:var(--muted);white-space:nowrap}
.axis{grid-column:2;position:relative;height:30px;border-top:1px solid var(--ink);margin-top:4px}
.axis span{position:absolute;top:8px;transform:translateX(-50%);font-size:.8rem;color:var(--muted);white-space:nowrap}
.axis span:last-child{transform:translateX(-100%)}
.axis b{font-weight:400}.axis i{display:none;font-style:normal}
.axis span::before{content:"";position:absolute;top:-9px;left:50%;width:1px;height:6px;background:var(--ink)}
.axis span:last-child::before{left:100%}
@media (max-width:640px){
  .chart{grid-template-columns:1fr;row-gap:2px}
  .chart a.label{margin-top:14px}
  .axis{grid-column:1}
  .dot em{display:none}
  .axis b{display:none}.axis i{display:inline}
}

/* visa sections */
.visas{padding:8px 0 40px}
.visa{padding:64px 0;border-top:3px solid var(--ink)}
.visa-top{display:grid;grid-template-columns:1.1fr 1fr;gap:28px 56px;align-items:end}
.visa h2{font-size:clamp(2.2rem,5vw,3.6rem);display:flex;align-items:center;gap:16px}
.vicon{display:grid;place-items:center;flex:none;width:clamp(48px,6vw,64px);height:clamp(48px,6vw,64px);border-radius:16px;background:var(--c);color:#fff}
.vicon svg{width:55%;height:55%}
#business .vicon,#golden .vicon{color:#000}
#employment .vicon{color:var(--gold)}
.visa .lede{font-size:1.15rem;color:var(--ink-2);max-width:52ch}
.facts{margin:36px 0 0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.facts div{padding:16px 18px 16px 0}
.facts div+div{padding-left:18px;border-left:1px solid var(--line)}
.facts dt{font-size:.85rem;color:var(--muted)}
.facts dd{margin:4px 0 0;font:700 1.15rem/1.25 var(--display);letter-spacing:-.01em}
.visa-body{margin-top:36px;display:grid;grid-template-columns:1fr 1fr;gap:40px 56px}
.visa h3{font-size:1.3rem;font-weight:700;letter-spacing:-.01em;margin-bottom:14px}
.req ul{list-style:none;margin:0;padding:0}
.req li{position:relative;padding:9px 0 9px 30px;border-bottom:1px solid var(--line)}
.req li::before{content:"";position:absolute;left:2px;top:15px;width:14px;height:8px;border-left:2.5px solid var(--c);border-bottom:2.5px solid var(--c);transform:rotate(-45deg)}
.req li strong{font-weight:600}
table{width:100%;border-collapse:collapse;font-size:1rem}
th,td{text-align:left;padding:11px 0;border-bottom:1px solid var(--line);vertical-align:top}
th{font-weight:500;color:var(--ink-2);padding-right:16px}
td{text-align:right;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}
thead th{font-size:.85rem;color:var(--muted);font-weight:500;border-bottom:1.5px solid var(--ink)}
thead th:not(:first-child){text-align:right}
thead th:last-child{padding-right:0}
td+td{padding-left:16px}
.fee-wrap{overflow-x:auto}
.price-note{margin-top:14px;font-size:.9rem;color:var(--muted)}
.note{margin-top:14px;font-size:.92rem;color:var(--ink-2);background:var(--gold-wash);border-radius:10px;padding:12px 14px}
.note.warn{background:var(--red-wash)}
.note.warn strong{color:var(--red)}
.visa-cta{margin-top:36px;display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.split{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:36px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:26px clamp(18px,3vw,30px)}
.panel h3{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.panel h3 small{font:500 .85rem/1.2 var(--body);color:var(--muted);letter-spacing:0}
.panel .req{margin-top:4px}
.panel .fee-wrap{margin-top:18px}
.tracks{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.tracks.family{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;align-items:start}
.panel.fam h3{margin-bottom:8px}
.panel.fam .who{color:var(--ink-2);font-size:.97rem}
.panel.fam .key{display:block;margin-top:16px;font:800 1.4rem/1.2 var(--display);letter-spacing:-.01em;color:var(--c)}
.panel.fam .alt{font-size:.9rem;color:var(--muted);margin-top:2px}
.panel.fam .req{margin-top:14px}
.panel.fam .note{margin-top:16px}
.tracks.five{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.track-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--c);border-radius:4px 4px 14px 14px;padding:20px 20px 18px}
.track-card h4{margin:0 0 8px;font:700 1.1rem/1.2 var(--display);letter-spacing:-.01em}
.track-card p{font-size:.95rem;color:var(--ink-2)}
.track-card .key{display:block;margin-top:auto;padding-top:14px;font:700 1.25rem/1.2 var(--display);color:var(--ink)}
@media (max-width:900px){
  .visa-top,.visa-body,.split{grid-template-columns:1fr}
  .facts{grid-template-columns:1fr 1fr}
  .facts div:nth-child(3){padding-left:0;border-left:0}
  .facts div:nth-child(n+3){border-top:1px solid var(--line)}
}

/* process */
.process{padding:72px 0;background:var(--ink);color:var(--paper)}
.process h2{font-size:clamp(2rem,4vw,3rem);max-width:18ch}
.steps{margin:40px 0 0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:28px;counter-reset:s}
.steps li{counter-increment:s;border-top:2px solid var(--gold);padding-top:18px}
.steps li::before{content:counter(s);display:block;font:800 2.6rem/1 var(--display);color:var(--gold);margin-bottom:12px}
.steps b{display:block;font:700 1.15rem/1.25 var(--display);margin-bottom:6px}
.steps p{font-size:.97rem;opacity:.82}
@media (max-width:860px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* contact */
.contact{padding:80px 0}
.contact-in{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center}
.contact h2{font-size:clamp(2.2rem,5vw,3.8rem);max-width:14ch}
.contact .sub{margin-top:16px;color:var(--ink-2);max-width:46ch;font-size:1.1rem}
.contact-list{display:grid;gap:12px}
.contact-item{display:flex;align-items:center;gap:16px;background:var(--surface);border:1.5px solid var(--line);border-radius:16px;padding:18px 20px;text-decoration:none;color:var(--ink)}
.contact-item:hover{border-color:var(--ink)}
.contact-item .ic{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;flex:none}
.contact-item .ic svg{width:24px;height:24px}
.contact-item small{display:block;color:var(--muted);font-size:.85rem}
.contact-item b{display:block;font:700 1.15rem/1.3 var(--display);letter-spacing:-.01em;word-break:break-all}
.contact .contact-list{margin-top:28px}
@media (max-width:860px){.contact-in{grid-template-columns:1fr}}

/* enquiry form */
.contact-in{align-items:start}
.enquiry{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:26px clamp(18px,3vw,30px)}
.enquiry h3{font-size:1.5rem}
.enq-sub{margin:8px 0 0;color:var(--ink-2);font-size:.95rem}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;margin-top:20px}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field.wide{grid-column:1/-1}
.field span{font-size:.9rem;font-weight:600;color:var(--ink-2)}
.field input,.field select,.field textarea{width:100%;box-sizing:border-box;font:400 1rem/1.4 var(--body);color:var(--ink);background:var(--paper);border:1.5px solid var(--line);border-radius:10px;padding:11px 12px;min-height:46px}
.field textarea{resize:vertical;min-height:100px}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--muted)}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:2px solid var(--blue);outline-offset:0;border-color:var(--blue);border-radius:10px}
.field [aria-invalid="true"]{border-color:var(--red)}
.enq-error{margin:16px 0 0;padding:10px 14px;border-radius:10px;background:var(--red-wash);color:var(--red);font-weight:600;font-size:.95rem}
.enq-ok{margin:14px 0 0;padding:12px 14px;border-radius:10px;background:var(--surface);border:1.5px solid var(--green);color:var(--green);font-weight:600}
.field-err{color:var(--red);font-size:.85rem;font-weight:600}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.enquiry{position:relative}
.btn-gold{background:var(--gold);color:#000}
.btn-gold:hover{background:#C9961C;color:#000}
.btn:disabled{opacity:.6;cursor:wait}
.enq-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.enq-actions .btn{justify-content:center}
.enq-fine{margin:14px 0 0;font-size:.85rem;color:var(--muted)}
@media (max-width:560px){.fields{grid-template-columns:1fr}.enq-actions .btn{flex:1 1 100%}}

/* footer */
.foot{border-top:1px solid var(--line);padding:36px 0 48px;font-size:.9rem;color:var(--muted)}
.foot-in{display:grid;grid-template-columns:auto 1fr;gap:24px 40px;align-items:start}
.foot .brand img{height:60px}
.foot p+p{margin-top:8px}
@media (max-width:700px){.foot-in{grid-template-columns:1fr}}
