/*
Theme Name: The Migration Lawyers
Theme URI: https://themigrationlawyers.com.au
Author: Skyline Migration Lawyers
Description: Lead-generation theme for The Migration Lawyers. 2026 palette (Transformative Teal, Cloud Dancer, Amber Haze, Electric Fern), Clash Display and Satoshi, editorial split layout, expressive motion.
Version: 2.3.0
Requires at least: 6.4
Requires PHP: 8.0
License: Proprietary
Text Domain: tml
*/
:root{--ground:#F1EEE7;--surface:#FBFAF6;--ink:#0F2022;--ink-2:#4F6668;--line:rgba(15,32,34,.14);--line-strong:rgba(15,32,34,.3);--teal-deep:#0F464B;--teal-deeper:#0A3438;--teal:#0C8A82;--teal-soft:rgba(12,138,130,.12);--amber:#F2B95E;--amber-ink:#3A2708;--fern:#CDF25A;--on-teal:#F3F6F1;--on-teal-2:rgba(243,246,241,.72);--teal-line:rgba(243,246,241,.18);--good:#2F6B4F;--warn:#B7791F;--crit:#B23A3A;--display:"Clash Display","Avenir Next Condensed","Segoe UI",system-ui,sans-serif;--body:"Satoshi","SF Pro Text","Segoe UI",system-ui,sans-serif;--mono:"Geist Mono","SF Mono",Menlo,monospace;--expo:cubic-bezier(.16,1,.3,1);--out:cubic-bezier(.22,1,.36,1);--container:1360px;--gutter:24px;--measure:66ch}
@media(min-width:768px){:root{--gutter:56px}}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;overflow-x:clip}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:40;opacity:.055;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='180' height='180' filter='url(%23n)'/></svg>");background-size:180px 180px}
img{max-width:100%;height:auto;display:block}
a{color:var(--teal);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:rgba(12,138,130,.35);transition:text-decoration-color 150ms var(--out),color 150ms var(--out)}
a:hover{text-decoration-color:var(--teal)}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;line-height:.98;letter-spacing:-.025em;margin:0 0 .5em;text-wrap:balance;color:var(--ink)}
h1{font-size:clamp(42px,6vw,86px)}h2{font-size:clamp(36px,4.6vw,58px)}h3{font-size:26px;letter-spacing:-.015em;line-height:1.08}h4{font-size:20px;letter-spacing:0;line-height:1.2}
p{margin:0 0 1.2em}
.measure{max-width:var(--measure)}
.eyebrow{font-family:var(--body);font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);margin:0 0 22px;display:inline-flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:22px;height:2px;background:currentColor;border-radius:1px}
.on-teal .eyebrow{color:var(--amber)}
.mark{background:linear-gradient(transparent 60%,var(--amber) 60%);padding:0 .05em}
.on-teal .mark{background:linear-gradient(transparent 62%,rgba(205,242,90,.32) 62%)}
.fern{color:var(--fern)}
.wrap{max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter);position:relative}
.section{padding:72px 0 80px}
.section--tight{padding:48px 0 56px}
.section--hero{padding:88px 0 96px}
@media(min-width:768px){.section{padding:112px 0 120px}.section--tight{padding:72px 0 80px}.section--hero{padding:128px 0 136px}}
.band-surface{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.on-teal{background:var(--teal-deep);color:var(--on-teal);position:relative;overflow:hidden}
.on-teal h1,.on-teal h2,.on-teal h3,.on-teal h4{color:var(--on-teal)}
.on-teal a{color:var(--on-teal);text-decoration-color:rgba(242,185,94,.5)}
.on-teal a:hover{text-decoration-color:var(--amber)}
.on-teal .muted{color:var(--on-teal-2)}
.muted{color:var(--ink-2)}
.lead{font-size:20px;line-height:1.5}
.split{display:grid;gap:44px}
.split>*,.grid-2>*,.grid-3>*,.post-item>*{min-width:0}
@media(min-width:768px){.split{grid-template-columns:7fr 5fr;gap:72px;align-items:start}.hero .split{grid-template-columns:8fr 4fr;gap:56px}.split--rev{grid-template-columns:5fr 7fr}.split--even{grid-template-columns:1fr 1fr}.sticky{position:sticky;top:112px}}
/* aurora (hero ambient, one per viewport) */
.aurora{position:absolute;inset:-20%;pointer-events:none;z-index:0}
.aurora i{position:absolute;border-radius:50%;filter:blur(90px);opacity:.6;will-change:transform}
.aurora .a1{width:56vw;height:56vw;left:-10%;top:-10%;background:var(--teal);animation:drift1 26s linear infinite alternate}
.aurora .a2{width:44vw;height:44vw;right:-8%;top:10%;background:#D99A3C;opacity:.42;animation:drift2 32s linear infinite alternate}
.aurora .a3{width:30vw;height:30vw;left:35%;bottom:-10%;background:#9BC93A;opacity:.28;animation:drift3 38s linear infinite alternate}
@keyframes drift1{to{transform:translate(18vw,14vh) scale(1.15)}}
@keyframes drift2{to{transform:translate(-16vw,22vh) scale(.9)}}
@keyframes drift3{to{transform:translate(-22vw,-18vh) scale(1.25)}}
.on-teal .wrap{z-index:1}
/* hero choreography */
.hero h1{margin-bottom:28px}
.hero .lead{max-width:34em}
.line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.line>span{display:inline-block;transform:translateY(112%);animation:rise .76s var(--expo) forwards;animation-delay:calc(var(--i,0)*80ms)}
@keyframes rise{to{transform:none}}
.enter{opacity:0;transform:translateY(18px);animation:enter .7s var(--expo) forwards;animation-delay:calc(var(--i,0)*80ms)}
@keyframes enter{to{opacity:1;transform:none}}
/* scroll reveal */
html.js [data-reveal]{opacity:0;transform:translateY(28px);filter:blur(6px);transition:opacity .8s var(--expo),transform .8s var(--expo),filter .8s var(--expo);transition-delay:calc(min(var(--i,0),5)*70ms)}
html.js [data-reveal].in{opacity:1;transform:none;filter:none}
.rule{height:1px;background:var(--line-strong);transform:scaleX(0);transform-origin:left;transition:transform .7s var(--expo) .1s;margin:0 0 28px}
.on-teal .rule{background:var(--teal-line)}
.in .rule,.rule.in{transform:scaleX(1)}
/* ledger */
.ledger{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.on-teal .ledger{border-color:var(--teal-line)}
.ledger li{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--line)}
.on-teal .ledger li{border-color:var(--teal-line)}
.ledger .k{font-size:15px}
.ledger .k small{display:block;font-size:13px;color:var(--ink-2);margin-top:3px}
.on-teal .ledger .k small{color:var(--on-teal-2)}
.ledger .v{font-family:var(--mono);font-weight:500;font-size:19px;font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}
.ledger .v:has(+ .v),.ledger li:has(.v) .v{max-width:60%}
.ledger .k{min-width:0}
@media(max-width:480px){.ledger .v{white-space:normal;font-size:16px}}
.on-teal .ledger .v{color:var(--fern)}
.ledger-title{font-family:var(--body);font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase;margin:0 0 14px;color:var(--ink-2)}
.on-teal .ledger-title{color:var(--amber)}
.ledger-note{font-size:13px;color:var(--ink-2);margin:14px 0 0;line-height:1.5}
.on-teal .ledger-note{color:var(--on-teal-2)}
/* ticker */
.ticker{background:var(--ink);color:var(--on-teal);overflow:hidden;padding:16px 0;border-top:1px solid var(--teal-line);border-bottom:1px solid var(--teal-line)}
.ticker-track{display:flex;width:max-content;gap:0;animation:marquee 44s linear infinite;will-change:transform}
.ticker span{display:inline-flex;align-items:baseline;gap:12px;padding:0 32px;font-size:14px;white-space:nowrap;border-right:1px solid var(--teal-line)}
.ticker b{font-family:var(--mono);font-weight:500;font-size:16px;color:var(--amber);font-variant-numeric:tabular-nums}
@keyframes marquee{to{transform:translateX(-50%)}}
@media(hover:hover){.ticker:hover .ticker-track{animation-play-state:paused}}
/* buttons */
.btn{--fill:var(--teal-deeper);position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;gap:10px;font-family:var(--body);font-weight:700;font-size:15px;line-height:1;padding:17px 26px;border-radius:6px;border:1px solid transparent;text-decoration:none;cursor:pointer;transform:translate(var(--mx,0),var(--my,0)) scale(var(--s,1));transition:transform 220ms var(--out),color 160ms var(--out),border-color 160ms var(--out)}
.btn::before{content:"";position:absolute;inset:0;background:var(--fill);clip-path:inset(0 100% 0 0);transition:clip-path 180ms var(--out);z-index:-1}
.btn:active{--s:.97}
.btn .ar{display:inline-block;transition:transform 180ms var(--out)}
@media(hover:hover) and (pointer:fine){.btn:hover::before{clip-path:inset(0 0 0 0)}.btn:hover .ar{transform:translateX(4px)}}
.btn:focus-visible,a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
.on-teal :focus-visible{outline-color:var(--amber)}
.btn--primary{background:var(--teal);color:var(--on-teal)}
.btn--ghost{--fill:var(--teal-soft);background:transparent;color:var(--teal);border-color:var(--teal)}
.on-teal .btn--primary{--fill:#F7CB82;background:var(--amber);color:var(--amber-ink)}
.on-teal .btn--ghost{--fill:rgba(243,246,241,.1);color:var(--on-teal);border-color:rgba(243,246,241,.4)}
.btn-row{display:flex;flex-wrap:wrap;gap:14px 18px;align-items:center;margin-top:34px}
.link-arrow{font-weight:700;text-decoration:none;display:inline-flex;align-items:center;gap:8px;position:relative}
.link-arrow::after{content:"\2192";transition:transform 180ms var(--out)}
.link-arrow::before{content:"";position:absolute;left:0;bottom:-3px;height:2px;width:100%;background:var(--fern);transform:scaleX(0);transform-origin:left;transition:transform 220ms var(--expo)}
@media(hover:hover){.link-arrow:hover::after{transform:translateX(4px)}.link-arrow:hover::before{transform:scaleX(1)}}
/* header */
.site-header{position:sticky;top:0;z-index:20;background:rgba(241,238,231,.72);backdrop-filter:saturate(140%) blur(12px);-webkit-backdrop-filter:saturate(140%) blur(12px);border-bottom:1px solid transparent;transition:border-color 220ms var(--out),background-color 220ms var(--out)}
.site-header.scrolled{border-bottom-color:var(--line);background:rgba(241,238,231,.9)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;height:76px}
.brand{font-family:var(--display);font-weight:600;font-size:clamp(17px,4.6vw,21px);min-width:0;letter-spacing:-.01em;color:var(--ink);text-decoration:none;display:inline-flex;align-items:center;gap:10px;white-space:nowrap}
.brand i{width:12px;height:12px;background:var(--teal);border-radius:3px;display:inline-block;transform:rotate(45deg)}
.nav{display:none;align-items:center;gap:28px}
.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:26px}
.nav ul a{font-size:15px;font-weight:500;color:var(--ink);text-decoration:none;padding:6px 0;position:relative}
.nav ul a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--teal);transform:scaleX(0);transform-origin:left;transition:transform 200ms var(--expo)}
.nav ul a:hover::after,.nav .current-menu-item>a::after,.nav .current_page_item>a::after{transform:scaleX(1)}
.nav .btn{padding:12px 18px;font-size:14px}
.nav a.btn--primary{color:var(--on-teal)}
.nav-toggle{display:inline-flex;align-items:center;gap:10px;background:none;border:1px solid var(--line-strong);border-radius:6px;padding:11px 14px;font:inherit;font-weight:700;font-size:14px;color:var(--ink);cursor:pointer;position:relative;z-index:27}
.nav-toggle .bars{position:relative;width:18px;height:12px;display:inline-block}
.nav-toggle .bars::before,.nav-toggle .bars::after{content:"";position:absolute;left:0;width:18px;height:2px;background:currentColor;border-radius:1px;transition:transform 200ms var(--out),top 200ms var(--out)}
.nav-toggle .bars::before{top:1px}.nav-toggle .bars::after{top:9px}
.nav-toggle[aria-expanded="true"]{color:var(--on-teal);border-color:rgba(243,246,241,.4)}
.nav-toggle[aria-expanded="true"] .bars::before{top:5px;transform:rotate(45deg)}
.nav-toggle[aria-expanded="true"] .bars::after{top:5px;transform:rotate(-45deg)}
@media(min-width:960px){.nav{display:flex}.nav-toggle{display:none}}
.nav-overlay{position:fixed;inset:0;z-index:18;background:var(--teal-deep);color:var(--on-teal);opacity:0;visibility:hidden;transition:opacity 170ms var(--out),visibility 0s 170ms;padding:110px var(--gutter) 40px;overflow:auto}
.nav-overlay.open{opacity:1;visibility:visible;transition:opacity 240ms var(--out)}
.nav-overlay ul{list-style:none;margin:0;padding:0}
.nav-overlay li{overflow:hidden;border-bottom:1px solid var(--teal-line)}
.nav-overlay li a{display:block;padding:18px 0;font-family:var(--display);font-weight:600;font-size:34px;letter-spacing:-.02em;color:var(--on-teal);text-decoration:none;transform:translateY(105%);transition:transform 520ms var(--expo);transition-delay:calc(var(--i,0)*60ms)}
.nav-overlay.open li a{transform:none}
.nav-overlay .btn-row{margin-top:32px}
html.nav-open{overflow:hidden}html.nav-open .site-header{background:transparent;border-bottom-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}html.nav-open .brand{color:var(--on-teal)}html.nav-open .brand i{background:var(--fern)}
@media(min-width:960px){.nav-overlay{display:none}}
/* ruled rows */
.rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.row{display:grid;gap:8px 32px;padding:30px 0;border-bottom:1px solid var(--line);position:relative}
.row::after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:var(--teal);transform:scaleX(0);transform-origin:left;transition:transform 320ms var(--expo)}
@media(hover:hover){.row:hover::after{transform:scaleX(1)}.row:hover .n{transform:translateX(6px)}.row:hover h3{color:var(--teal)}}
@media(min-width:768px){.row{grid-template-columns:88px 1fr auto;align-items:start}.row--2{grid-template-columns:88px 1fr}}
.row .n{font-family:var(--mono);font-size:13px;letter-spacing:.12em;color:var(--teal);padding-top:7px;transition:transform 220ms var(--out)}
.row h3{margin:0 0 8px;transition:color 180ms var(--out)}
.row p{margin:0;max-width:60ch}
.row .link-arrow{padding-top:6px}
/* steps */
.steps{counter-reset:s;list-style:none;margin:0;padding:0}
.steps li{position:relative;padding:0 0 30px 72px;counter-increment:s}
.steps li::before{content:counter(s,decimal-leading-zero);position:absolute;left:0;top:4px;font-family:var(--mono);font-size:13px;letter-spacing:.12em;color:var(--teal)}
.steps li::after{content:"";position:absolute;left:0;bottom:0;right:0;border-bottom:1px solid var(--line)}
.steps li:last-child::after{display:none}
.steps li+li{padding-top:30px}
.steps h3{margin-bottom:6px}
.steps p{margin:0;max-width:56ch}
/* image planes */
.plane{position:relative;overflow:hidden;border-radius:10px;aspect-ratio:16/10;box-shadow:0 30px 60px -30px rgba(15,70,75,.35)}
.plane img{width:100%;height:100%;object-fit:cover;clip-path:inset(0 0 100% 0);transition:clip-path .9s var(--expo)}
.plane.in img{clip-path:inset(0 0 0 0)}
@supports(animation-timeline:view()){.plane img{animation:parallax linear both;animation-timeline:view();animation-range:entry 0% exit 100%;transform:scale(1.12)}}
@keyframes parallax{from{transform:translateY(-7%) scale(1.12)}to{transform:translateY(7%) scale(1.12)}}
.plane figcaption{position:absolute;left:16px;bottom:14px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--on-teal);background:rgba(15,32,34,.55);padding:6px 10px;border-radius:4px}
.plane--tilt{transform:rotate(-1.5deg)}
@media(max-width:767px){.plane--tilt{transform:none}}
/* FAQ */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:22px 44px 22px 0;font-family:var(--display);font-weight:600;font-size:22px;letter-spacing:-.01em;position:relative;transition:color 160ms var(--out)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:16px;font-family:var(--mono);font-size:26px;color:var(--teal);transition:transform 200ms var(--expo)}
@media(hover:hover){.faq summary:hover{color:var(--teal)}}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details>div{padding:0 0 26px;max-width:64ch;animation:faq 200ms var(--out)}
.faq details>div p:last-child{margin-bottom:0}
@keyframes faq{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
/* tables */
.tablewrap{overflow-x:auto;min-width:0;border-top:1px solid var(--line)}
table.fees{width:100%;border-collapse:collapse;font-size:15px}
table.fees th,table.fees td{text-align:left;padding:15px 12px 15px 0;border-bottom:1px solid var(--line);vertical-align:top}
table.fees th{font-family:var(--body);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);font-weight:700}
table.fees td.num,table.fees th.num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--teal-deep);font-weight:500}
table.fees tbody tr{transition:background-color 160ms var(--out)}
@media(hover:hover){table.fees tbody tr:hover{background:var(--teal-soft)}}
/* CTA band */
.cta-band{background:var(--teal-deep);color:var(--on-teal);position:relative;overflow:hidden}
.cta-band h2{max-width:16ch;color:var(--on-teal)}
.cta-band .lead{color:var(--on-teal-2)}
.cta-band .aurora i{opacity:.35}
/* footer */
.site-footer{background:var(--ink);color:rgba(243,246,241,.78);padding:80px 0 32px}
.site-footer a{color:var(--on-teal);text-decoration:none}
.site-footer a:hover{text-decoration:underline;text-decoration-color:var(--amber)}
.foot-grid{display:grid;gap:40px 32px}
@media(min-width:768px){.foot-grid{grid-template-columns:2fr 1fr 1fr 1.4fr}}
.site-footer .brand{color:var(--on-teal)}
.site-footer .brand i{background:var(--fern)}
.foot-title{font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--amber);margin:0 0 16px}
.foot-list{list-style:none;margin:0;padding:0}
.foot-list li{margin:0 0 10px}
.foot-bottom{margin-top:56px;padding-top:24px;border-top:1px solid var(--teal-line);font-size:13px;color:rgba(243,246,241,.6);display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between}
.foot-bottom p{margin:0;max-width:70ch}
/* forms */
.form{max-width:560px}
.field{display:grid;gap:8px;margin-bottom:22px}
.field label{font-weight:700;font-size:15px}
.field .help{font-size:13px;color:var(--ink-2);min-height:1em}
.field input,.field textarea,.field select{font:inherit;font-size:16px;padding:14px 14px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);color:var(--ink);width:100%;transition:border-color 160ms var(--out),box-shadow 160ms var(--out)}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--teal);box-shadow:0 0 0 4px var(--teal-soft);outline:none}
.field textarea{min-height:140px;resize:vertical}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.notice{padding:16px 18px;border:1px solid var(--line-strong);border-radius:6px;margin-bottom:24px;background:var(--surface);animation:enter .5s var(--expo)}
.notice--good{border-color:var(--good);color:var(--good)}
.notice--bad{border-color:var(--crit);color:var(--crit)}
/* blog */
.post-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.post-item{display:grid;gap:18px 44px;padding:34px 0;border-bottom:1px solid var(--line);position:relative}
.post-item::after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:var(--teal);transform:scaleX(0);transform-origin:left;transition:transform 320ms var(--expo)}
@media(hover:hover){.post-item:hover::after{transform:scaleX(1)}.post-item:hover .thumb img{transform:scale(1.04)}}
@media(min-width:768px){.post-item{grid-template-columns:1fr 300px;align-items:start}}
.post-item .thumb{aspect-ratio:16/10;overflow:hidden;border-radius:8px;background:var(--surface);order:-1}
@media(min-width:768px){.post-item .thumb{order:2}}
.post-item .thumb img{width:100%;height:100%;object-fit:cover;transition:transform 600ms var(--expo)}
.post-item h3{margin:6px 0 10px;font-size:27px}
.post-item h3 a{color:var(--ink);text-decoration:none;transition:color 160ms var(--out)}
.post-item h3 a:hover{color:var(--teal)}
.meta{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.meta a{color:inherit;text-decoration:none}
.post-item p{margin:0 0 12px;max-width:60ch}
.pagination{display:flex;gap:8px;flex-wrap:wrap;margin-top:40px}
.pagination .page-numbers{padding:10px 14px;border:1px solid var(--line-strong);border-radius:6px;text-decoration:none;font-weight:700;font-size:14px}
.pagination .page-numbers.current{background:var(--teal);color:var(--on-teal);border-color:var(--teal)}
.empty{padding:48px 0;color:var(--ink-2)}
.progress{position:fixed;top:0;left:0;height:3px;width:100%;background:var(--teal);transform-origin:left;transform:scaleX(0);z-index:30;pointer-events:none}
@supports(animation-timeline:scroll()){.progress{animation:grow linear both;animation-timeline:scroll(root)}}
@keyframes grow{to{transform:scaleX(1)}}
.article-hero{padding:64px 0 40px}
.article-hero h1{font-size:clamp(38px,5vw,64px);max-width:22ch}
.article-hero .meta{margin-bottom:20px}
.article-hero .lead{max-width:40em;color:var(--ink-2)}
.article-figure{margin:0 0 56px}
.entry{max-width:var(--measure);font-size:17px;line-height:1.7}
.entry h2{font-size:34px;margin-top:2em}
.entry h3{font-size:26px;margin-top:1.6em}
.entry h4{margin-top:1.4em}
.entry p,.entry ul,.entry ol{margin-bottom:1.3em}
.entry li{margin-bottom:.4em}
.entry img{border-radius:8px}
.entry blockquote{margin:2em 0;padding:0 0 0 24px;border-left:1px solid var(--teal);color:var(--ink-2);font-size:18px}
.entry table{width:100%;border-collapse:collapse;font-size:15px;margin:1.5em 0}
.entry th,.entry td{text-align:left;padding:12px 12px 12px 0;border-bottom:1px solid var(--line);vertical-align:top}
.entry th{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);font-weight:700}
.entry .wp-block-table{overflow-x:auto}
.entry a{word-break:break-word}
.entry hr{border:0;border-top:1px solid var(--line);margin:2.5em 0}
.entry .tml-cta{margin:2.5em 0;padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.entry .tml-cta p{margin:0 0 16px}
.byline{display:flex;align-items:center;gap:14px;margin:48px 0 0;padding-top:24px;border-top:1px solid var(--line)}
.byline .init{width:44px;height:44px;border-radius:50%;background:var(--teal);color:var(--on-teal);display:grid;place-items:center;font-family:var(--display);font-weight:600;font-size:16px}
.byline p{margin:0;font-size:14px;color:var(--ink-2)}
.byline strong{display:block;color:var(--ink);font-size:15px}
.aside{border-top:1px solid var(--line);padding-top:24px}
.aside h3{font-size:20px}
.aside ul{list-style:none;margin:0;padding:0}
.aside li{padding:10px 0;border-bottom:1px solid var(--line)}
.aside li a{text-decoration:none;font-weight:500;color:var(--ink)}
.aside li a:hover{color:var(--teal)}
/* utilities */
.grid-2{display:grid;gap:32px}
@media(min-width:768px){.grid-2{grid-template-columns:1fr 1fr;gap:48px}}
.grid-3{display:grid;gap:32px}
@media(min-width:768px){.grid-3{grid-template-columns:repeat(3,1fr);gap:40px}}
.pill{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:6px 10px;border:1px solid var(--line-strong);border-radius:999px;color:var(--ink-2)}
.on-teal .pill{border-color:var(--teal-line);color:var(--amber)}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:16px;background:var(--surface);padding:10px 14px;z-index:30}
.page-hero{padding:72px 0 60px;border-bottom:1px solid var(--line);position:relative;overflow:hidden}
@media(min-width:768px){.page-hero{padding:104px 0 80px}}
.page-hero h1{font-size:clamp(40px,5.6vw,78px);max-width:18ch}
.page-hero .aurora i{opacity:.22}
.stat{font-family:var(--mono);font-variant-numeric:tabular-nums}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;animation-iteration-count:1!important}.aurora i,.ticker-track{animation:none!important}html.js [data-reveal]{transform:none;filter:none}.plane img{clip-path:none!important}.line>span{transform:none}.enter{opacity:1;transform:none}}

/* v2.1 additions: blog, contact, team, employers, fees */
.chips{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 40px}
.chip{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;letter-spacing:.04em;padding:10px 16px;border-radius:999px;border:1px solid var(--line-strong);color:var(--ink);text-decoration:none;background:transparent;transition:background-color 160ms var(--out),color 160ms var(--out),border-color 160ms var(--out),transform 120ms var(--out)}
.chip:active{transform:scale(.97)}
@media(hover:hover){.chip:hover{border-color:var(--teal);color:var(--teal)}}
.chip.is-current{background:var(--teal);color:var(--on-teal);border-color:var(--teal)}
.chip small{font-family:var(--mono);font-size:11px;opacity:.7}
.feature{display:grid;gap:32px;margin-bottom:56px;padding-bottom:56px;border-bottom:1px solid var(--line)}
@media(min-width:768px){.feature{grid-template-columns:7fr 5fr;gap:56px;align-items:center}}
.feature .plane{aspect-ratio:16/10}
.feature h2{font-size:clamp(30px,3.6vw,46px);margin:12px 0 16px}
.feature h2 a{color:var(--ink);text-decoration:none;transition:color 160ms var(--out)}
.feature h2 a:hover{color:var(--teal)}
.feature p{max-width:52ch}
.plane--portrait{aspect-ratio:4/5;border-radius:12px}
.person{display:grid;gap:28px 56px;padding:56px 0;border-top:1px solid var(--line)}
@media(min-width:768px){.person{grid-template-columns:5fr 7fr;align-items:center}.person--flip .person-media{order:2}}
.person h3{font-size:clamp(28px,3vw,40px);margin:8px 0 6px}
.person .role{font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);margin:0 0 18px;display:block}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
.person p{max-width:58ch}
.people3{display:grid;gap:40px 32px;margin-top:8px}
@media(min-width:768px){.people3{grid-template-columns:repeat(3,1fr)}}
.people3 h3{font-size:24px;margin:20px 0 4px}
.people3 .role{font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);display:block;margin-bottom:12px}
.people3 p{font-size:15px;max-width:34ch;margin:0}
.facts{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.facts li{padding:16px 0;border-bottom:1px solid var(--line);display:flex;gap:14px;align-items:baseline;font-size:15px}
.facts li::before{content:"";width:10px;height:10px;background:var(--fern);border-radius:2px;transform:rotate(45deg);flex:none;position:relative;top:-1px}
.on-teal .facts{border-color:var(--teal-line)}
.on-teal .facts li{border-color:var(--teal-line)}
.quotes{display:grid;gap:36px 48px}
@media(min-width:768px){.quotes{grid-template-columns:1fr 1fr}}
.quote{border-top:1px solid var(--line);padding-top:26px;position:relative}
.quote p{font-family:var(--display);font-weight:500;font-size:22px;line-height:1.35;letter-spacing:-.01em;margin:0 0 18px;text-wrap:pretty}
.quote p::before{content:"\201C";color:var(--teal);font-size:40px;line-height:0;vertical-align:-14px;margin-right:6px;font-family:var(--display)}
.quote .who{font-size:13px;color:var(--ink-2)}
.quote .who strong{display:block;color:var(--ink);font-size:15px;font-weight:700}
.on-teal .quote{border-color:var(--teal-line)}
.on-teal .quote p::before{color:var(--fern)}
.on-teal .quote .who{color:var(--on-teal-2)}
.on-teal .quote .who strong{color:var(--on-teal)}
.faq-group{margin-bottom:56px}
.faq-group h3{font-size:22px;margin:0 0 16px;color:var(--teal)}
.contact-direct .ledger .v a{text-decoration:none}
.map-link{display:inline-flex;align-items:center;gap:8px;margin-top:18px;font-weight:700}
.bigstat{font-family:var(--display);font-weight:600;font-size:clamp(44px,5vw,72px);line-height:1;letter-spacing:-.02em;color:var(--teal-deep);display:block}
.bigstat small{display:block;font-family:var(--body);font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin-top:10px}
.stats{display:grid;gap:28px;margin-top:8px}
@media(min-width:768px){.stats{grid-template-columns:1fr 1fr 1fr}}
.incl{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.incl li{padding:14px 0 14px 30px;border-bottom:1px solid var(--line);position:relative;font-size:15px}
.incl li::before{content:"";position:absolute;left:4px;top:21px;width:10px;height:10px;border-radius:2px;transform:rotate(45deg);background:var(--teal)}
.incl--not li::before{background:transparent;border:1px solid var(--line-strong)}

/* v2.2: interactive blocks (visa pages and articles) */
.tml-checker,.tml-calc{border-top:1px solid var(--line)}
.chk-q{border:0;margin:0;padding:18px 0;border-bottom:1px solid var(--line)}
.chk-q legend{font-weight:700;font-size:15px;padding:0;margin-bottom:10px}
.chk-opt{display:inline-flex;align-items:center;gap:8px;margin:6px 12px 0 0;padding:8px 14px;border:1px solid var(--line-strong);border-radius:999px;font-size:14px;cursor:pointer;transition:border-color 150ms var(--out),background-color 150ms var(--out),transform 120ms var(--out)}
.chk-opt:active{transform:scale(.97)}
.chk-opt input{position:absolute;opacity:0;width:1px;height:1px}
.chk-opt:has(input:checked){background:var(--teal);color:var(--on-teal);border-color:var(--teal)}
.chk-opt:has(input:focus-visible){outline:2px solid var(--teal);outline-offset:3px}
.chk-result{margin-top:20px;padding:20px 0;border-top:1px solid var(--line)}
.chk-result p{margin:0;font-family:var(--display);font-weight:600;font-size:22px;line-height:1.2;letter-spacing:-.01em;transition:opacity 200ms var(--out)}
.chk-result.good p{color:var(--good)}.chk-result.maybe p{color:var(--warn)}.chk-result.bad p{color:var(--crit)}
.calc-line{display:grid;grid-template-columns:1fr 96px;gap:16px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.calc-line label{font-size:15px;font-weight:600}
.calc-line label small{display:block;font-weight:400;color:var(--ink-2);font-size:13px;font-family:var(--mono)}
.calc-line input[type=number]{font:inherit;font-family:var(--mono);font-size:16px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);width:96px;text-align:right}
.calc-line input[type=checkbox]{width:22px;height:22px;justify-self:end;accent-color:var(--teal)}
.calc-total{display:flex;justify-content:space-between;align-items:baseline;padding:22px 0 6px;font-weight:700}
.calc-total strong{font-family:var(--mono);font-size:32px;font-weight:500;color:var(--teal-deep);font-variant-numeric:tabular-nums}
/* article blocks */
.entry .tml-tabs{margin:2em 0;border-top:1px solid var(--line)}
.entry .tml-tabs [role=tablist]{display:flex;flex-wrap:wrap;gap:8px;padding:16px 0}
.entry .tml-tabs [role=tab]{font:inherit;font-weight:700;font-size:14px;padding:10px 16px;border:1px solid var(--line-strong);border-radius:999px;background:transparent;color:var(--ink);cursor:pointer;transition:background-color 160ms var(--out),color 160ms var(--out),transform 120ms var(--out)}
.entry .tml-tabs [role=tab]:active{transform:scale(.97)}
.entry .tml-tabs [role=tab][aria-selected=true]{background:var(--teal);color:var(--on-teal);border-color:var(--teal)}
.entry .tml-tabs [role=tabpanel]{padding:8px 0 20px;animation:faq 200ms var(--out)}
.entry .tml-tabs [role=tabpanel][hidden]{display:none}
.entry .tml-check{list-style:none;margin:2em 0;padding:0;border-top:1px solid var(--line)}
.entry .tml-check li{margin:0;padding:0;border-bottom:1px solid var(--line)}
.entry .tml-check label{display:flex;gap:14px;align-items:flex-start;padding:14px 0;cursor:pointer}
.entry .tml-check input{width:20px;height:20px;margin-top:3px;accent-color:var(--teal);flex:none}
.entry .tml-check input:checked+span{color:var(--ink-2);text-decoration:line-through;text-decoration-color:var(--teal)}
.entry .tml-check-progress{font-family:var(--mono);font-size:13px;color:var(--teal);margin:-1.4em 0 1.5em}
.entry .tml-timeline{list-style:none;margin:2em 0;padding:0 0 0 28px;border-left:2px solid var(--teal-soft);position:relative}
.entry .tml-timeline li{position:relative;margin:0 0 22px;padding:0}
.entry .tml-timeline li::before{content:"";position:absolute;left:-35px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 4px var(--ground)}
.entry .tml-timeline b{display:block;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);margin-bottom:4px}
.entry .tml-calc{margin:2em 0;border-top:1px solid var(--line)}
.entry .tml-answer{margin:0 0 2em;padding:22px 0;border-top:2px solid var(--teal);border-bottom:1px solid var(--line);font-size:18px}
.entry .tml-answer p{margin:0}
.entry .tml-answer b{color:var(--teal-deep)}
.entry .tml-toggle{margin:2em 0;border-top:1px solid var(--line)}
.entry .tml-toggle summary{cursor:pointer;font-weight:700;padding:14px 0;list-style:none;position:relative;padding-right:32px}
.entry .tml-toggle summary::after{content:"+";position:absolute;right:0;top:10px;font-family:var(--mono);font-size:22px;color:var(--teal);transition:transform 200ms var(--expo)}
.entry .tml-toggle[open] summary::after{transform:rotate(45deg)}
.entry .tml-toggle>div{padding:0 0 16px;animation:faq 200ms var(--out)}
.entry .tml-source{font-size:13px;color:var(--ink-2)}
.entry .tml-source a{color:var(--teal)}

.steps li[style*="padding-left:0"]::before,.steps li[style*="padding-left:0"]::after{display:none}.steps li[style*="padding-left:0"]{border-bottom:1px solid var(--line)}

/* v2.3 parent visa tools: pathfinder, cost stack, queue timeline */
.tml-tool{border-top:1px solid var(--line);padding-top:8px}
.pf-prog{height:2px;background:var(--line);margin:18px 0 30px;position:relative}.pf-prog i{position:absolute;left:0;top:0;height:2px;background:var(--amber);transition:width 320ms var(--out)}
.pf-stage{max-width:820px}
.pf-step{font-family:var(--body);font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);margin:0 0 14px}
.pf-stage h3{font-size:clamp(26px,3vw,36px);margin:0 0 10px}
.pf-why{color:var(--ink-2);margin:0 0 26px;max-width:62ch}
.pf-opts{display:grid;gap:10px}
.pf-opt{display:block;width:100%;text-align:left;font:inherit;font-size:16px;font-weight:500;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;padding:16px 18px;cursor:pointer;transition:border-color 150ms var(--out),background-color 150ms var(--out),transform 120ms var(--out)}
.pf-opt:hover{border-color:var(--teal);background:#fff}.pf-opt:active{transform:scale(.985)}
.pf-opt small{display:block;font-weight:400;color:var(--ink-2);font-size:13px;margin-top:3px}
.pf-back{background:none;border:0;font:inherit;font-size:13px;font-weight:700;color:var(--ink-2);cursor:pointer;margin-top:22px;padding:0}.pf-back:hover{color:var(--teal)}
.pf-nums{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px}
.pf-nums label span{display:block;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);margin-bottom:8px}
.pf-nums input,.qt-ctl input{font:inherit;font-family:var(--mono);font-size:18px;padding:12px 14px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);width:100%}
.pf-bof{padding:14px 18px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-size:15px;margin:0 0 22px}.pf-bof b{color:var(--teal-deep)}
.pf-verdicts{list-style:none;margin:26px 0 0;padding:0;border-top:1px solid var(--line)}
.pf-verdicts li{display:grid;grid-template-columns:120px 1fr;gap:18px;padding:18px 0;border-bottom:1px solid var(--line)}
.pf-tag{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;padding-top:4px}
.pf-verdicts li.ok .pf-tag{color:var(--good)}.pf-verdicts li.maybe .pf-tag{color:var(--warn)}.pf-verdicts li.no .pf-tag{color:var(--crit)}
.pf-verdicts h4{font-size:22px;margin:0 0 4px}.pf-verdicts h4 a{text-decoration:none;color:inherit}.pf-verdicts h4 a:hover{color:var(--teal)}
.pf-verdicts p{margin:0;font-size:15px;color:var(--ink-2);max-width:66ch}.pf-verdicts .link-arrow{font-size:14px;margin-left:6px}
.pf-read{margin-top:26px;padding:22px 24px;border-left:3px solid var(--amber);background:var(--surface)}.pf-read p{margin:0}.pf-read .ledger-title{margin-bottom:8px}
.pf-seg{display:flex;flex-wrap:wrap;gap:8px}
.pf-seg button{font:inherit;font-size:13px;font-weight:700;padding:10px 14px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);color:var(--ink);cursor:pointer;transition:background-color 150ms var(--out),color 150ms var(--out),border-color 150ms var(--out),transform 120ms var(--out)}
.pf-seg button:hover{border-color:var(--teal)}.pf-seg button:active{transform:scale(.97)}.pf-seg button.is-current{background:var(--teal);color:var(--on-teal);border-color:var(--teal)}
.cc{display:grid;grid-template-columns:5fr 7fr;gap:48px;align-items:start}
.cc-ctl{display:grid;gap:22px}.cc-ctl [hidden]{display:none}
.cc-ctl input[type=range]{width:100%;accent-color:var(--teal)}
.cc-val{font-family:var(--mono);font-size:22px;font-weight:500;color:var(--teal-deep);margin:6px 0 0}
.cc-bill{border:1px solid var(--line);border-radius:12px;padding:28px 30px;background:var(--surface)}
.cc-total{font-family:var(--mono);font-size:clamp(40px,5vw,56px);font-weight:500;color:var(--teal-deep);letter-spacing:-.02em;line-height:1;margin:0 0 18px}
.cc-bar{display:flex;height:14px;border-radius:4px;overflow:hidden;background:var(--ground);margin:0 0 6px}.cc-bar i{display:block;height:100%;transition:width 240ms var(--out)}
.cc .ledger li{padding:14px 0}.cc .ledger .k{display:flex;gap:10px;align-items:flex-start}.cc .ledger .k small{display:block;color:var(--ink-2);font-size:13px}.cc .sw{width:12px;height:12px;border-radius:3px;flex:none;margin-top:6px}
.cc .ledger li.dim .k,.cc .ledger li.dim .v{color:var(--ink-2)}.cc .ledger .v{color:var(--teal-deep);font-weight:500}
.cc-split{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}
.cc-split b{display:block;font-family:var(--mono);font-size:24px;font-weight:500;color:var(--teal-deep);line-height:1.1;margin-bottom:4px}.cc-split span{font-size:13px;color:var(--ink-2)}
.qt-ctl{display:grid;grid-template-columns:2fr 3fr;gap:32px;align-items:end;max-width:760px}
.qt-ctl label span{display:block;margin-bottom:10px}
.qt-axis{position:relative;height:150px;margin-top:44px}.qt-axis::before{content:"";position:absolute;left:0;right:0;top:44px;height:1px;background:var(--line-strong)}
.qt-tick{position:absolute;top:0;transform:translateX(-50%);font-family:var(--mono);font-size:12px;color:var(--ink-2)}.qt-tick::after{content:"";display:block;width:1px;height:10px;background:var(--line-strong);margin:6px auto 0}
.qt-mark{position:absolute;top:35px;transform:translateX(-50%);text-align:center;transition:left 320ms var(--expo)}
.qt-mark i{display:block;width:18px;height:18px;border-radius:50%;background:var(--amber);border:3px solid var(--ground);margin:0 auto 8px}.qt-mark.now i{background:var(--teal)}
.qt-mark b{display:block;font-family:var(--mono);font-size:26px;font-weight:500;color:var(--teal-deep);line-height:1}
.qt-mark small{display:block;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);margin-top:6px;white-space:nowrap}
.qt-sum{margin-top:32px;padding:22px 24px;border-left:3px solid var(--teal);background:var(--surface);max-width:820px;font-size:16px}.qt-sum b{color:var(--teal-deep)}
@media (max-width:768px){.cc{grid-template-columns:1fr}.cc-bill{padding:22px 20px}.pf-nums{grid-template-columns:1fr}.pf-verdicts li{grid-template-columns:1fr;gap:4px}.qt-ctl{grid-template-columns:1fr}.qt-mark small{display:none}.cc-split{grid-template-columns:1fr}}
