
/* Layout: Global Immigrate design system (gi-new tokens) — white ground, ruled sections, photo hero with scrim, soft-grey bands. Light-only by brand choice. */
:root{
  --ink:#1E2226; --brand:#01334A; --brand-dark:#00233A; --brand-tint:#E8EEF1;
  --text:#4C5259; --muted:#60666E; --line:#DCDFE3; --line-soft:#ECEEF0; --soft:#F4F5F6; --white:#FFFFFF;
  --amber:#9A6200; --scrim:rgba(14,22,30,.55);
  --serif:"Noto Serif TC","Songti TC",Georgia,serif;
  --sans:"Noto Sans TC","PingFang TC","Microsoft JhengHei",system-ui,sans-serif;
  --display:"Cormorant Garamond",Georgia,serif;
  --gutter:clamp(18px,5vw,96px); --section:clamp(64px,8vw,120px);
  color-scheme:light;
}
html[lang="zh-Hans"]{--serif:"Noto Serif SC","Songti SC",Georgia,serif;--sans:"Noto Sans SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{margin:0;background:var(--white);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}
body.modal-open{overflow:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
[hidden]{display:none!important}
h1,h2,h3,p{margin:0}
h1,h2{text-wrap:balance}
html[lang^="zh"] h1{line-height:1.4}
.nw{white-space:nowrap}
.u{text-decoration:underline;text-underline-offset:3px}
.wrap{max-width:calc(1200px + var(--gutter)*2);margin:0 auto;padding-inline:var(--gutter)}
.section{padding-top:var(--section)}
.h2{font-family:var(--serif);font-size:clamp(26px,3vw,36px);font-weight:600;line-height:1.4}
.lead{color:var(--text);line-height:1.9;max-width:62ch}
.kicker{display:block;font-size:14px;color:var(--muted)}
.stack{display:flex;flex-direction:column;gap:14px}
.text-link{display:inline-block;font-size:15px;font-weight:500;color:var(--brand);border-bottom:1px solid currentColor;padding-bottom:3px}
.text-link:hover{color:var(--brand-dark)}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:36px}

.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 30px;font:500 15px var(--sans);background:var(--brand);color:var(--white);border:1px solid var(--brand);cursor:pointer;border-radius:0;white-space:nowrap}
.btn:hover{background:var(--brand-dark);border-color:var(--brand-dark)}
.btn--light{background:var(--white);color:var(--ink);border-color:var(--white)}
.btn--light:hover{background:var(--soft);border-color:var(--soft)}
.btn--ghost{background:transparent;color:var(--white);border-color:rgba(255,255,255,.7)}
.btn--ghost:hover{background:rgba(255,255,255,.1);border-color:var(--white)}
.btn--line{background:var(--white);color:var(--ink);border-color:#C8CCD1}
.btn--line:hover{background:var(--soft);border-color:#C8CCD1}
.btn--sm{min-height:40px;padding:0 18px;font-size:14px}
.btn:disabled{background:var(--soft);border-color:var(--line);color:var(--muted);cursor:not-allowed}

/* header */
.topbar{border-bottom:1px solid var(--line-soft);font-size:13px;color:var(--muted);background:var(--white)}
.topbar .wrap{height:40px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.topbar nav{display:flex;align-items:center}
.topbar nav>a{padding:0 14px;line-height:1;color:var(--muted);white-space:nowrap}
.topbar nav>a+a{border-left:1px solid var(--line)}
.topbar nav>a:last-child{padding-right:0}
.topbar a:hover{color:var(--ink)}
@media (max-width:900px){.topbar__note,.topbar .tel{display:none}.topbar .wrap{justify-content:flex-end}.topbar nav>a{padding:0 10px}}
.header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--white);border-bottom:1px solid var(--line-soft)}
.header .wrap{height:84px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.logo{display:flex;align-items:center;gap:12px;color:var(--brand);line-height:1.2;flex-shrink:0}
.logo svg{flex-shrink:0}
.logo__text{display:flex;flex-direction:column;gap:3px}
.logo__en{font-family:var(--serif);font-size:20px;font-weight:700;letter-spacing:.5px;white-space:nowrap}
.logo__en i{font-style:normal;font-family:var(--sans);font-weight:600;font-size:14px;letter-spacing:2px;color:var(--muted);margin-left:6px}
.logo__sub{font-size:10.5px;letter-spacing:1.6px;color:var(--muted);text-transform:uppercase;white-space:nowrap}
.nav{display:flex;gap:22px;height:100%}
.nav a{display:flex;align-items:center;height:84px;font-size:14.5px;font-weight:500;color:var(--text);border-bottom:2px solid transparent;white-space:nowrap}
.nav a:hover{color:var(--ink);border-bottom-color:var(--brand)}
.header__actions{display:flex;align-items:center;gap:20px}
.lang{display:flex;align-items:center;font-size:14px}
.lang a{padding:0 10px;line-height:1;color:var(--muted);white-space:nowrap}
.lang a:last-child{padding-right:0}
.lang a:hover{color:var(--ink)}
.lang a[aria-current="true"]{display:none}
.lang a:not([aria-current="true"]) ~ a:not([aria-current="true"]){border-left:1px solid var(--line)}
.lang a:not([aria-current="true"]) ~ a:not([aria-current="true"]):last-child{padding-right:0}

/* hero */
.prog-hero{position:relative;isolation:isolate;min-height:540px;display:flex;flex-direction:column;justify-content:flex-end;padding-block:72px 64px;color:var(--white);background:var(--brand) var(--img) center/cover no-repeat}
.prog-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,35,58,.4) 0%,rgba(0,35,58,.86) 100%);z-index:-1}
.prog-hero>.wrap{width:100%}
.prog-hero__text{max-width:800px;display:flex;flex-direction:column;gap:18px}
.prog-hero .kicker{color:#C8CCD1}
.prog-hero h1{font-family:var(--serif);font-size:clamp(32px,4.6vw,56px);font-weight:600;line-height:1.25}
.prog-hero p.sub{font-size:clamp(16px,1.6vw,19px);line-height:1.75;color:#E4E6E9;max-width:60ch}
.prog-hero .actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px}
.prog-hero .updated{font-size:13px;color:#C8CCD1}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:48px;margin:0}
main>.section:first-child{padding-top:clamp(40px,5vw,72px)}
.stats:has(>div:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr));max-width:640px}
.stats div{padding:32px 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px;min-width:0}
.stats dt{order:2;font-size:14px;color:var(--muted);line-height:1.6}
.stats dd{order:1;margin:0;font-family:var(--serif);font-size:clamp(26px,2.6vw,36px);font-weight:600;line-height:1.25;color:var(--brand)}

/* jobs */
.tabs{border-bottom:1px solid var(--line-soft);display:flex;gap:32px;overflow-x:auto;margin-bottom:8px;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs button{height:56px;background:none;border:0;border-bottom:2px solid transparent;font:500 15px var(--sans);color:var(--text);cursor:pointer;white-space:nowrap;padding:0;flex-shrink:0}
.tabs button[aria-pressed="true"]{color:var(--ink);border-bottom-color:var(--brand)}
.table-scroll{overflow-x:auto}
.compare{width:100%;border-collapse:collapse;font-size:15px;font-variant-numeric:tabular-nums}
.compare th{text-align:left;font-size:13px;font-weight:700;color:var(--muted);padding:20px 16px 14px 0;white-space:nowrap}
.compare td{padding:20px 16px 20px 0;border-top:1px solid var(--line-soft);vertical-align:middle}
.compare tbody tr:last-child td{border-bottom:1px solid var(--line)}
.compare .role b{display:block;font-size:16px;font-weight:500}
.compare .role button{all:unset;cursor:pointer}
.compare .role button:hover b{color:var(--brand);text-decoration:underline;text-underline-offset:3px}
.compare .role button:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
.compare .role small,.compare .pay small{display:block;font-size:13px;color:var(--muted)}
.compare td:last-child{text-align:right;padding-right:0}
.status{display:inline-flex;align-items:center;gap:8px;font-size:14px;white-space:nowrap}
.status::before{content:"";width:8px;height:8px;background:var(--brand)}
.status.limited{color:var(--amber)}
.status.limited::before{background:var(--amber)}
.status.closed{color:var(--muted)}
.status.closed::before{background:var(--line)}
.note-line{margin-top:16px;font-size:13px;color:var(--muted)}

/* band + split */
.band{background:var(--soft);padding-block:88px;margin-top:var(--section)}
.split{display:flex;gap:clamp(40px,7vw,96px);align-items:center}
.split>img,.split>.split-img{width:520px;max-width:44%;aspect-ratio:520/420;object-fit:cover;flex-shrink:0}
.split__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:24px}
.ticks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 40px}
.ticks li{display:flex;gap:12px;min-width:0}
.ticks svg{flex-shrink:0;margin-top:5px;color:var(--brand)}
.ticks b{display:block;font-weight:500}
.ticks span{font-size:15px;color:var(--text);line-height:1.8}

/* steps */
.steps{list-style:none;margin:48px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;counter-reset:step}
.steps li{border-top:2px solid var(--brand);padding-top:24px;display:flex;flex-direction:column;gap:10px;counter-increment:step;min-width:0}
.steps li::before{content:counter(step,decimal-leading-zero);font-family:var(--serif);font-size:30px;font-weight:600;color:var(--brand)}
.steps h3{font-size:18px;font-weight:500}
.steps__time{font-size:13px;color:var(--brand);font-weight:500}
.steps__forms{font-size:12px;color:var(--muted);letter-spacing:.3px}
.steps p{font-size:14px;line-height:1.85;color:var(--text)}
.notice{margin-top:40px;padding:18px 22px;border-left:3px solid var(--brand);background:var(--brand-tint);font-size:15px;line-height:1.85;max-width:900px}

/* fees */
.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px}
.two-col>div{border-top:2px solid var(--brand);padding-top:22px;display:flex;flex-direction:column;gap:12px;min-width:0}
.two-col>div.cand{border-top-color:var(--ink)}
.two-col h3{font-size:18px;font-weight:500}
.two-col .muted{font-size:14px;color:var(--muted)}
.bullets{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:14px;font-size:15px;line-height:1.8;color:var(--text)}
.bullets li{padding-left:20px;position:relative}
.bullets li::before{content:"";position:absolute;left:0;top:.75em;width:6px;height:6px;background:var(--ink)}
.fill{background:var(--brand-tint);color:var(--brand);padding:0 6px;font-weight:500}

/* forms */
.brochure{border:1px solid var(--line);padding:clamp(22px,4vw,48px);display:flex;gap:56px;align-items:flex-start}
.brochure__cover{width:200px;flex-shrink:0;background:var(--brand);color:var(--white);padding:24px 20px;display:flex;flex-direction:column;justify-content:space-between;gap:18px;box-shadow:8px 8px 0 var(--line);min-height:260px}
.brochure__cover small{font-size:10px;color:#C8CCD1;letter-spacing:1.5px;text-transform:uppercase}
.brochure__cover strong{font-family:var(--serif);font-size:24px;font-weight:600;line-height:1.35}
.brochure__cover span{font-family:var(--display);font-size:14px;letter-spacing:2.5px}
.brochure__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:22px}
.brochure__body h2{font-family:var(--serif);font-size:clamp(24px,2.4vw,28px);font-weight:600}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px}
.span-2{grid-column:span 2}
.field{display:flex;flex-direction:column;gap:8px;min-width:0}
.field label{font-size:13px;font-weight:500}
.field input,.field select{height:48px;border:1px solid #C8CCD1;background:var(--white);padding:0 12px;font:15px var(--sans);color:var(--ink);border-radius:0;width:100%;-webkit-appearance:none;appearance:none}
.field select{background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 18px) 21px,calc(100% - 13px) 21px;background-size:5px 5px;background-repeat:no-repeat;padding-right:36px}
.field input:focus,.field select:focus{border-color:var(--brand);outline:none}
fieldset{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;min-width:0}
legend{font-size:13px;font-weight:500;margin-bottom:6px;padding:0}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.7;color:var(--text)}
.consent input{width:18px;height:18px;margin:3px 0 0;flex-shrink:0;accent-color:var(--brand)}
.form-foot{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.form-foot small{font-size:13px;color:var(--muted);max-width:46ch;line-height:1.7}
.result{background:var(--soft);padding:22px 24px;display:flex;flex-direction:column;gap:8px;border-left:3px solid var(--brand);font-size:15px}
.result.warn{border-left-color:var(--amber)}
.result strong{font-family:var(--serif);font-size:19px;font-weight:600}
.result ul{margin:0;padding-left:18px;color:var(--text)}
.form-error{color:#A12C2C;font-size:14px}
.form-error:empty{display:none}

/* commitments */
.guarantees{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px}
.guarantees>div{border-top:2px solid var(--brand);padding-top:22px;display:flex;flex-direction:column;gap:10px;min-width:0}
.guarantees h3{font-size:18px;font-weight:500;color:var(--brand)}
.guarantees p{font-size:15px;line-height:1.85;color:var(--text)}

/* faq */
.faq{border-top:1px solid #C8CCD1}
.faq details{border-bottom:1px solid #C8CCD1}
.faq summary{list-style:none;padding:24px 0;display:flex;justify-content:space-between;gap:24px;font-size:17px;font-weight:500;cursor:pointer}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:22px;line-height:1;color:var(--brand);flex-shrink:0}
.faq details[open] summary::after{content:"−"}
.faq details p{padding:0 48px 26px 0;font-size:15px;line-height:1.9;color:var(--text);max-width:820px}

/* about this page */
.meta-box{border:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr}
.meta-box>div{padding:28px 32px;display:flex;flex-direction:column;gap:12px;min-width:0}
.meta-box>div+div{border-left:1px solid var(--line)}
.meta-box h3{font-size:13px;font-weight:700;color:var(--muted);letter-spacing:.5px;text-transform:uppercase}
.meta-box dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:10px 20px;font-size:15px}
.meta-box dt{color:var(--muted)}
.meta-box dd{margin:0;font-weight:500}
.sources{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:15px}
.sources a{color:var(--brand);text-decoration:underline;text-underline-offset:3px}

/* powered by GI */
.group-note{background:var(--soft);padding:48px 56px;display:grid;grid-template-columns:auto 1fr auto;gap:48px;align-items:center}
.group-note img{width:64px;height:auto}
.group-note>div{display:flex;flex-direction:column;gap:12px;min-width:0}
.group-note .kicker{color:var(--brand);font-weight:500}
.group-note strong{font-family:var(--serif);font-size:26px;font-weight:600;line-height:1.4}
.group-note p{font-size:15px;line-height:1.85;color:var(--text)}
.group-facts{display:flex;flex-wrap:wrap;gap:8px 28px;font-size:14px;color:var(--ink)}
.group-facts span{display:inline-flex;gap:8px;align-items:center}
.group-facts span::before{content:"";width:5px;height:5px;background:var(--brand)}

.cta{margin-top:var(--section);background:var(--brand);color:var(--white)}
.cta .wrap{padding-block:clamp(56px,7vw,88px);display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap}
.cta h2{color:var(--white)}
.cta p{color:#C8CCD1;margin-top:10px}
.site-footer{border-top:1px solid var(--line-soft)}
.footer{padding-block:48px 56px;display:flex;flex-direction:column;gap:28px;font-size:13px;color:var(--muted)}
.footer__top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
.footer h4{margin:0 0 12px;font-size:13px;font-weight:700;color:var(--ink)}
.footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.footer a:hover{color:var(--ink)}
.footer .legal{border-top:1px solid var(--line-soft);padding-top:24px;display:flex;flex-direction:column;gap:10px;line-height:1.75;max-width:920px}
.footer address{font-style:normal;line-height:1.8}
.site-footer{background:#012638;color:#C5D3DB;margin-top:0}
.site-footer .footer{color:#C5D3DB;padding-block:56px 40px}
.site-footer h4{color:#fff}
.site-footer a{color:#fff}.site-footer a:hover{color:#fff;text-decoration:underline}
.site-footer .footer__top{grid-template-columns:1.5fr 1fr 1fr 1.2fr}
.footer__gi{display:flex;align-items:center;gap:14px;text-decoration:none!important}
.footer__gi small{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#9DB4C0}
.footer__gi b{font-family:var(--serif);font-size:20px;color:#fff;font-weight:600}
.footer__mark{display:grid;place-items:center;width:48px;height:48px;background:#fff;flex:none}
.footer__brand p{margin:16px 0 20px;max-width:34em;line-height:1.75}
.footer__visit{display:inline-flex;align-items:center;min-height:44px;padding:0 20px;border:1px solid #fff;font-weight:500;text-decoration:none!important}
.footer__visit:hover{background:#fff;color:var(--brand)!important}
.footer__ch li{line-height:1.6}
.footer__offices{display:grid;grid-template-columns:1fr 1fr;gap:24px;border-top:1px solid rgba(255,255,255,.18);padding-top:24px}
.footer__offices div{display:flex;flex-direction:column;gap:4px;line-height:1.7}
.footer__offices b{color:#fff;font-weight:600}
.site-footer .legal{border-top-color:rgba(255,255,255,.18);color:#9DB4C0;max-width:none}
@media (max-width:1060px){.site-footer .footer__top{grid-template-columns:1fr 1fr}.footer__brand{grid-column:1/-1}}
@media (max-width:600px){.footer__offices{grid-template-columns:1fr}}


/* eligibility popup */
.elig{width:min(720px,calc(100vw - 32px))}
.elig .modal__form{overflow-y:auto;background:var(--white)}
.elig .modal__head .lead{font-size:15px}
/* job modal */
.modal{border:0;padding:0;width:min(880px,calc(100vw - 32px));max-height:calc(100dvh - 48px);background:var(--white);color:var(--ink);box-shadow:0 30px 80px rgba(30,34,38,.3)}
.modal::backdrop{background:var(--scrim)}
.modal[open]{display:flex;flex-direction:column}
.modal__head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:28px 32px 22px;border-bottom:1px solid var(--line-soft)}
.modal__head .stack{gap:8px}
.modal__head h2{font-family:var(--serif);font-size:clamp(22px,2.6vw,30px);font-weight:600;line-height:1.35}
.modal__close{width:44px;height:44px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid var(--line);cursor:pointer;color:var(--ink)}
.modal__close:hover{background:var(--soft)}
.modal__body{overflow-y:auto;display:grid;grid-template-columns:1fr 1fr;min-height:0}
.modal__info{padding:26px 32px 32px;display:flex;flex-direction:column;gap:24px;border-right:1px solid var(--line-soft);min-width:0}
.modal__form{padding:26px 32px 32px;display:flex;flex-direction:column;gap:18px;background:var(--soft);min-width:0}
.modal__form h3{font-family:var(--serif);font-size:20px;font-weight:600}
.modal__form .field input,.modal__form .field select{background-color:var(--white)}
.kv{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;font-variant-numeric:tabular-nums}
.kv div{display:flex;flex-direction:column;gap:2px;min-width:0}
.kv dt{font-size:12px;color:var(--muted)}
.kv dd{margin:0;font-weight:500}
.kv dd small{display:block;font-weight:400;font-size:13px;color:var(--muted)}
.modal h4{margin:0 0 10px;font-size:13px;font-weight:700;color:var(--muted);letter-spacing:.4px}
.modal .bullets{gap:8px;font-size:14px;margin:0}
.sponsor-line{font-size:14px;color:var(--brand);background:var(--brand-tint);padding:12px 14px;line-height:1.7}
.done{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.done .ref{font-family:var(--display);font-size:20px;letter-spacing:2px;color:var(--brand);border:1px solid var(--line);background:var(--white);padding:4px 12px}
.done p{color:var(--text);font-size:15px;line-height:1.85}


/* compare + wait tables */
.vs th:nth-child(2),.vs td:nth-child(2){background:var(--brand-tint)}
.vs th:nth-child(2){color:var(--brand)}
.vs td{vertical-align:top}
.vs td:first-child{font-weight:500;width:40%}
.vs td:not(:first-child){font-size:14px;color:var(--text);padding-left:16px;text-align:left}
.vs th:not(:first-child){padding-left:16px}
.vs .yes{display:flex;gap:8px;color:var(--ink);font-weight:500}
.vs .yes svg{flex-shrink:0;margin-top:5px;color:var(--brand)}
.wait td:nth-child(2),.wait td:nth-child(3){font-family:var(--serif);font-weight:600;color:var(--brand);white-space:nowrap}
.wait tr.hl td{background:var(--brand-tint)}
.wait td:first-child{font-weight:500}
.tip{margin-top:28px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.tip>div{background:var(--soft);padding:22px 24px;display:flex;flex-direction:column;gap:8px}
.tip h3{font-size:16px;font-weight:500}
.tip p{font-size:14px;line-height:1.85;color:var(--text)}
/* support */
.support{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.support>div{display:flex;flex-direction:column;gap:18px;min-width:0}
.channels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.channels a{background:var(--white);padding:18px 16px;display:flex;flex-direction:column;gap:4px;min-width:0}
.channels a:hover{background:var(--soft)}
.channels b{font-size:15px;font-weight:500;color:var(--brand)}
.channels span{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.offices{display:flex;flex-wrap:wrap;gap:8px 28px;font-size:14px}
.offices span{display:inline-flex;gap:8px;align-items:center}
.offices span::before{content:"";width:5px;height:5px;background:var(--brand)}
@media (max-width:760px){
  .tip,.support{grid-template-columns:1fr}
  .channels{grid-template-columns:1fr}
  .vs td{grid-column:1/-1}
  .vs td:nth-child(2){padding:10px 12px!important}
  .vs td:first-child,.wait td:first-child{width:auto}
  .wait td.note{grid-column:1/-1;font-size:13px;color:var(--muted)}
  .wait td:nth-child(2),.wait td:nth-child(3){white-space:normal}
}


/* photos (Global Immigrate pattern: remote photo, local illustration fallback) */
.ph{background-color:var(--line);background-image:var(--img);background-size:cover;background-position:center;background-repeat:no-repeat}
/* hero photo */
.prog-hero.ph{background-color:var(--brand)}
.prog-hero::before{background:linear-gradient(90deg,rgba(10,22,32,.78) 0%,rgba(10,22,32,.5) 55%,rgba(10,22,32,.2) 100%),linear-gradient(0deg,rgba(10,22,32,.55) 0%,rgba(10,22,32,0) 45%)!important}
.prog-hero{min-height:600px}
/* industries */
.inds{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.ind-card{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:14px;min-width:0}
.ind-card img{aspect-ratio:4/3;width:100%;height:auto;object-fit:cover;transition:transform .35s ease;background:var(--line)}
.ind-card .imgwrap{overflow:hidden}
.ind-card:hover img{transform:scale(1.04)}
.brief{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:56px;align-items:start}
.brief__body{display:flex;flex-direction:column;gap:18px}
.brief .bullets b{color:var(--ink)}
.guides{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.guide{display:flex;flex-direction:column;gap:10px;min-width:0}
.guide img{aspect-ratio:16/10;width:100%;height:auto;object-fit:cover;background:var(--line)}
.guide small{font-size:13px;color:var(--muted)}
.guide b{font-family:var(--serif);font-size:19px;font-weight:600;line-height:1.45}
.guide:hover b{color:var(--brand);text-decoration:underline;text-underline-offset:3px}
@media (max-width:1060px){.brief{grid-template-columns:1fr;gap:20px}.guides{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.guides{grid-template-columns:1fr}}
.ind-card:focus-visible{outline:2px solid var(--brand);outline-offset:4px}
.ind-card b{font-family:var(--serif);font-size:20px;font-weight:600;line-height:1.35}
.ind-card span{font-size:14px;color:var(--muted)}
.ind-card em{font-style:normal;font-size:14px;font-weight:500;color:var(--brand)}
.ind-card em::after{content:" →"}
/* modal photo */
.modal__img{height:150px;flex-shrink:0}
/* offices */
.office-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:48px}
html[lang="zh-Hant"] .office-tw{order:-1}
.office{background:var(--white);border-top:2px solid var(--brand);padding:28px 32px;display:flex;flex-direction:column;gap:16px;min-width:0}
.office h3{font-family:var(--serif);font-size:22px;font-weight:600}
.office h3 small{display:block;font-family:var(--sans);font-size:13px;font-weight:400;color:var(--muted);margin-top:4px}
.office dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:10px 18px;font-size:15px}
.office dt{color:var(--muted);white-space:nowrap}
.office dd{margin:0;min-width:0;overflow-wrap:anywhere}
.office dd a{color:var(--brand)}
.office dd a:hover{text-decoration:underline}
.office .lic{font-size:13px;color:var(--muted);border-top:1px solid var(--line-soft);padding-top:12px}
@media (max-width:1060px){.inds{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.office-grid{grid-template-columns:1fr}.office{padding:22px 20px}.prog-hero{min-height:0}.inds{gap:18px}.ind-card b{font-size:17px}.modal__img{height:110px}}


/* nav panels (same pattern as globalimmigrate.com: full-width panel, no animation) */
.nav__dd{display:flex;align-items:stretch}
.nav__btn{display:flex;align-items:center;gap:6px;height:84px;padding:0;border:0;border-bottom:2px solid transparent;background:none;font:inherit;font-size:14.5px;font-weight:500;color:var(--text);cursor:pointer;white-space:nowrap}
.nav__btn svg{transition:transform .2s}
.nav__btn[aria-expanded="true"],.nav__dd:has(a[aria-current]) .nav__btn{color:var(--ink);border-bottom-color:var(--brand)}
.nav__btn[aria-expanded="true"] svg{transform:rotate(180deg)}
.nav__sub{position:absolute;left:0;right:0;top:100%;background:#fff;border-top:1px solid var(--line-soft);box-shadow:0 20px 40px rgba(30,34,38,.16);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;padding:36px max(var(--gutter),calc((100% - 1200px)/2)) 40px;z-index:60}
.nav__sub[hidden]{display:none!important}
.nav .nav__sub a{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:4px;height:auto;padding:12px;margin:-12px;border-bottom:0;font-size:15px;white-space:normal}
.nav .nav__sub a:hover{background:var(--soft);border-bottom:0}
.nav .nav__sub a b{font-weight:500;color:var(--ink)}
.nav .nav__sub a small{font-size:13px;color:var(--muted);line-height:1.6;font-weight:400}
.nav .nav__sub a[aria-current] b{color:var(--brand);font-weight:700}
@media (max-width:1180px){.nav__dd{display:contents}.nav__btn{display:none}.nav__sub,.nav__sub[hidden]{display:contents!important;position:static}.nav .nav__sub a{padding:0;margin:0;display:flex;flex-direction:row;align-items:center}.nav .nav__sub a small{display:none}.nav .nav__sub a b{font-weight:inherit;color:inherit}}
/* floating contact buttons (same as globalimmigrate.com) */
.float-contact{position:fixed;right:24px;bottom:24px;z-index:30;display:flex;gap:8px;align-items:center}
.float-contact .fc{width:52px;height:52px;padding:0;border:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 8px 22px rgba(30,34,38,.18);cursor:pointer;transition:transform .15s;text-decoration:none}
.float-contact .fc:hover{transform:translateY(-2px);color:#fff}
.float-contact .fc svg{width:28px;height:28px}
.float-contact .fc span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.fc--wa{background:#25D366}.fc--line{background:#06C755}.fc--wechat{background:#07C160}
.float-contact .is-primary{height:52px;padding:0 22px;border-radius:26px;display:inline-flex;align-items:center;background:var(--brand);border:1px solid var(--brand);color:#fff;font:inherit;font-size:14px;font-weight:500;box-shadow:0 8px 22px rgba(30,34,38,.18);text-decoration:none}
.float-contact .is-primary:hover{background:#00233A;color:#fff}
body:has(dialog[open]) .float-contact{display:none}
@media (max-width:600px){
  .float-contact{left:0;right:0;bottom:0;width:100%;box-sizing:border-box;padding:8px 10px calc(10px + env(safe-area-inset-bottom,0px));gap:6px;background:#fff;border-top:1px solid var(--line);align-items:stretch}
  .float-contact .fc{width:auto;height:auto;min-height:56px;border-radius:8px;flex:1;min-width:0;flex-direction:column;gap:3px;box-shadow:none}
  .float-contact .fc svg{width:22px;height:22px}
  .float-contact .fc span{position:static;width:auto;height:auto;clip:auto;font-size:11px}
  .float-contact .is-primary{flex:1.4;height:auto;min-height:56px;border-radius:8px;justify-content:center;box-shadow:none;padding:0 8px;font-size:13px}
  body{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
}

@media (max-width:1180px){
  .header .btn{display:inline-flex}
  .header .wrap{flex-wrap:wrap;height:auto!important;row-gap:0;padding-top:10px}
  .header .logo,.header__actions{min-height:54px}
  .nav{order:3;width:100%;height:44px!important;gap:24px;overflow-x:auto;scrollbar-width:none;border-top:1px solid var(--line-soft);margin-inline:calc(var(--gutter)*-1);padding-inline:var(--gutter);width:calc(100% + var(--gutter)*2)}
  .nav::-webkit-scrollbar{display:none}
  .nav a{height:44px!important;font-size:14px;flex-shrink:0}
}
@media (max-width:1060px){
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:40px}
  .split{flex-direction:column;align-items:stretch}
  .split>img,.split>.split-img{width:100%;max-width:100%}
  .guarantees{grid-template-columns:1fr;gap:32px}
  .brochure{flex-direction:column;gap:32px}
  .brochure__cover{width:100%;min-height:0}
  .group-note{grid-template-columns:auto 1fr;padding:36px 32px}
  .group-note .btn{grid-column:1/-1;justify-self:start}
  .footer__top{grid-template-columns:1fr 1fr}
  .footer__top>div:first-child{grid-column:1/-1}
}
@media (max-width:760px){
  .header .wrap{gap:12px}
  .header__actions{gap:12px}
  .header .btn{display:none}
  .logo svg{width:40px;height:30px}
  .logo__en{font-size:17px}
  .logo__en i{font-size:12px}
  .logo__sub{display:none}
  .lang a{padding:0 8px;font-size:13px}
  .prog-hero{min-height:0;padding-block:80px 44px}
  .prog-hero .actions .btn{flex:1 1 100%}
  .stats{grid-template-columns:1fr}
  .stats div{padding:22px 0;flex-direction:row;align-items:baseline;gap:16px}
  .stats dd{flex:0 0 52%;font-size:22px}
  .ticks,.two-col,.grid-2,.steps,.meta-box,.kv{grid-template-columns:1fr}
  .kv{grid-template-columns:1fr 1fr}
  .meta-box>div{padding:22px 20px}
  .meta-box>div+div{border-left:0;border-top:1px solid var(--line)}
  .span-2{grid-column:auto}
  .two-col{gap:36px}
  .band{padding-block:56px}
  .faq details p{padding-right:0}
  .form-foot .btn{width:100%}
  .group-note{grid-template-columns:1fr;gap:20px;padding:28px 22px}
  .group-note .btn{width:100%}
  .footer__top{grid-template-columns:1fr}
  .compare thead{display:none}
  .compare,.compare tbody,.compare tr,.compare td{display:block;width:100%}
  .compare tr{border-top:1px solid var(--line);padding-block:18px;display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}
  .compare tbody tr:last-child{border-bottom:1px solid var(--line)}
  .compare td{border:0!important;padding:0!important;text-align:left!important;min-width:0}
  .compare td.role{grid-column:1/-1}
  .compare td[data-k]::before{content:attr(data-k);display:block;font-size:12px;color:var(--muted)}
  .compare td:last-child{grid-column:1/-1;margin-top:6px}
  .compare td:last-child .btn{width:100%}
  .modal{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0}
  .modal__head{padding:calc(16px + env(safe-area-inset-top,0px)) 18px 16px}
  .modal__body{grid-template-columns:1fr}
  .modal__info{border-right:0;border-bottom:1px solid var(--line-soft);padding:22px 18px}
  .modal__form{padding:22px 18px calc(28px + env(safe-area-inset-bottom,0px))}
  .modal__form .btn{width:100%}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* ---- sub pages (blog, articles, stories) ---- */
.nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--brand)}
.page-head{background:var(--soft);padding-block:56px 48px}
.page-head .wrap{display:flex;flex-direction:column;gap:14px}
.page-head h1,.article h1{font-family:var(--serif);font-size:clamp(30px,4vw,46px);font-weight:600;line-height:1.3;max-width:24ch}
html[lang^="zh"] .page-head h1,html[lang^="zh"] .article h1{line-height:1.45}
.crumbs{font-size:13px;color:var(--muted)}
.crumbs a:hover{color:var(--ink);text-decoration:underline}
.posts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 32px}
.post-card{display:flex;flex-direction:column;gap:12px;min-width:0}
.post-card__img{aspect-ratio:16/10;width:100%;height:auto;object-fit:cover;background:var(--line)}
.post-card small{font-size:13px;color:var(--muted)}
.post-card b{font-family:var(--serif);font-size:21px;font-weight:600;line-height:1.45}
.post-card:hover b{color:var(--brand);text-decoration:underline;text-underline-offset:3px}
.post-card__sum{font-size:15px;line-height:1.8;color:var(--text)}
.post-card em{font-style:normal;font-size:14px;font-weight:500;color:var(--brand)}
.post-card em::after{content:" →"}
.article__head{display:flex;flex-direction:column;gap:14px;padding-block:48px 28px}
.article__meta{font-size:14px;color:var(--muted)}
.article__img{aspect-ratio:21/9;width:100%;height:auto;max-height:460px;object-fit:cover;background:var(--line)}
.article__body{max-width:calc(760px + var(--gutter)*2);padding-block:40px 0}
.article__body>*+*{margin-top:18px}
.article__body h2{font-family:var(--serif);font-size:26px;font-weight:600;line-height:1.4;margin-top:44px}
.article__body p,.article__body li{font-size:17px;line-height:1.95;color:var(--text)}
.article__body b{color:var(--ink)}
.article__body ul{padding-left:20px;display:flex;flex-direction:column;gap:8px}
.article__lead{font-size:19px!important;color:var(--ink)!important;border-left:3px solid var(--brand);padding-left:18px}
.article__body table{width:100%;border-collapse:collapse;font-size:15px;display:block;overflow-x:auto}
.article__body th{text-align:left;font-size:13px;color:var(--muted);padding:10px 14px 10px 0;border-bottom:1px solid var(--line);white-space:nowrap}
.article__body td{padding:12px 14px 12px 0;border-bottom:1px solid var(--line-soft);vertical-align:top}
.article__cta{background:var(--soft);border-top:2px solid var(--brand);padding:26px 28px;margin-top:44px!important;display:flex;flex-direction:column;gap:10px}
.article__cta b{font-family:var(--serif);font-size:21px;font-weight:600}
.article__cta p{font-size:15px!important}
.article__cta .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px}
.more-list{list-style:none;padding:0!important}
.more-list a{color:var(--brand);text-decoration:underline;text-underline-offset:3px}
.about-who{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:48px;align-items:start}
.about-facts{list-style:none;margin:24px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px 28px}
.about-facts li{padding-left:18px;position:relative;color:var(--ink)}
.about-facts li::before{content:"";position:absolute;left:0;top:.7em;width:6px;height:6px;background:var(--brand)}
.about-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.about-card{border-top:2px solid var(--brand);padding-top:20px}.about-card h3{font-size:19px;margin:0 0 10px}.about-card p{margin:0;color:var(--text)}
@media (max-width:900px){.about-who,.about-cards{grid-template-columns:1fr;gap:28px}.about-facts{grid-template-columns:1fr}}
.contact-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:40px;align-items:start}
.office-stack{display:flex;flex-direction:column;gap:20px}
.cform{border:1px solid var(--line);background:var(--white);padding:clamp(22px,3vw,36px);display:flex;flex-direction:column;gap:18px;position:relative}
.cform h2{font-family:var(--serif);font-size:24px;font-weight:600}
.cform textarea{width:100%;border:1px solid var(--line);padding:12px 14px;font:inherit;background:var(--white);color:var(--ink);resize:vertical;min-height:130px}
.req{color:#a12b2b}
.cform__alt{font-size:14px;color:var(--muted);margin:0}
.elig .modal__form{overflow-y:auto;background:var(--white)}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}
.stories{display:flex;flex-direction:column;gap:40px}
.story{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);border:1px solid var(--line);background:var(--white)}
.story__img{width:100%;height:100%;min-height:320px;object-fit:cover;background:var(--line)}
.story__body{padding:32px 36px;display:flex;flex-direction:column;gap:16px;min-width:0}
.story__top{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}
.story__who{font-size:14px;color:var(--muted)}
.story h2{font-family:var(--serif);font-size:24px;font-weight:600;line-height:1.45}
.story dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:10px 20px;font-size:15px;line-height:1.8}
.story dt{color:var(--muted);white-space:nowrap}
.story dd{margin:0;color:var(--text)}
.story dd b{color:var(--ink);font-weight:500}
@media (max-width:1060px){.posts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){
  .posts{grid-template-columns:1fr}
  .page-head{padding-block:40px 32px}
  .story{grid-template-columns:1fr}
  .story__img{min-height:0;height:auto;aspect-ratio:16/10}
  .story__body{padding:22px 20px}
  .story dl{grid-template-columns:1fr;gap:2px}
  .story dd{margin-bottom:10px}
  .article__body p,.article__body li{font-size:16px}
  .article__cta .btn{width:100%}
}
