
:root{
  --navy:#0C1830; --navy-2:#12224A; --royal:#1D3FC4; --royal-2:#2E56E0; --head:#1A47B8; --deep:#122470;
  --pale:#F3F7FE; --grey:#F4F5F7; --faq:#DEEAFE; --band:#E3EDFC;
  --white:#FFFFFF; --ink:#1B1B1B; --ink-2:#3E4658; --muted:#646C80;
  --line:#E2E8F5; --line-2:#EEF2FB;
  --sh:0 2px 4px rgba(12,24,48,.04); --sh-2:0 18px 40px -22px rgba(18,36,112,.45);
  color-scheme:light;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--white);color:var(--ink);font-family:"Red Hat Display",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16.5px;line-height:1.72;-webkit-font-smoothing:antialiased;}
h1,h2,h3,h4{margin:0;line-height:1.16;letter-spacing:-.02em;text-wrap:balance;}
h1,h2{font-weight:800;} h3,h4{font-weight:700;}
p{margin:0;} a{color:var(--royal);} img{max-width:100%;}
.shell{max-width:1180px;margin:0 auto;padding:0 26px;}
.narrow{max-width:920px;}

.util{background:var(--navy);color:#C7D3EE;font-size:13.5px;}
.util-in{display:flex;align-items:center;justify-content:space-between;gap:18px;height:42px;flex-wrap:wrap;}
.util a{color:#C7D3EE;text-decoration:none;display:inline-flex;align-items:center;gap:7px;}
.util a:hover{color:#fff;}
.util-l{display:flex;gap:24px;flex-wrap:wrap;} .util-r{display:flex;gap:16px;align-items:center;}
.util svg{width:14px;height:14px;flex:none;}
@media(max-width:760px){.util-in{height:auto;padding:8px 0;}.util-r{display:none;}}

.hdr{position:sticky;top:0;z-index:40;background:#fff;border-bottom:1px solid var(--line);}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:18px;height:76px;}
.mark{display:flex;align-items:center;gap:11px;text-decoration:none;}
.mark-badge{width:38px;height:38px;border-radius:9px;background:var(--royal);color:#fff;display:grid;place-items:center;font-weight:800;font-size:17px;flex:none;}
.mark-txt{display:flex;flex-direction:column;line-height:1.05;}
.mark-txt b{font-size:19px;font-weight:800;color:var(--ink);letter-spacing:-.025em;}
.mark-txt span{font-size:9.5px;font-weight:600;letter-spacing:.17em;color:var(--royal);text-transform:uppercase;}
.menu{display:flex;gap:2px;list-style:none;margin:0;padding:0;}
.menu>li{position:relative;}
.menu a{font-size:14.5px;font-weight:600;color:var(--ink-2);text-decoration:none;padding:9px 12px;border-radius:8px;display:flex;align-items:center;gap:5px;white-space:nowrap;}
.menu a:hover{color:var(--royal);background:var(--pale);}
.menu a[aria-current="page"]{color:var(--royal);background:var(--pale);}
.menu .car{width:9px;height:9px;opacity:.6;}
.drop{position:absolute;top:calc(100% + 6px);left:0;min-width:290px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh-2);padding:10px;display:none;z-index:60;}
.menu>li:hover .drop,.menu>li:focus-within .drop{display:block;}
.drop a{font-size:14px;font-weight:600;padding:9px 12px;border-radius:8px;display:block;}
.drop small{display:block;font-weight:400;font-size:12.5px;color:var(--muted);margin-top:1px;}
.btn{display:inline-flex;align-items:center;gap:9px;font-size:15px;font-weight:700;text-decoration:none;cursor:pointer;padding:13px 26px;border-radius:10px;border:2px solid var(--royal);background:var(--royal);color:#fff;transition:transform .14s ease,background .16s ease;font-family:inherit;white-space:nowrap;}
.btn:hover{background:var(--deep);border-color:var(--deep);transform:translateY(-1px);}
.btn.o{background:transparent;color:var(--royal);} .btn.o:hover{background:var(--pale);color:var(--deep);}
.btn.w{background:#fff;border-color:#fff;color:var(--deep);} .btn.w:hover{background:var(--pale);}
.btn.wo{background:transparent;border-color:rgba(255,255,255,.6);color:#fff;} .btn.wo:hover{background:rgba(255,255,255,.14);border-color:#fff;}
.btn.sm{padding:10px 18px;font-size:14px;}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--royal-2);outline-offset:3px;}
/* buttons inside dropdowns must keep button colours, not menu-link colours */
.menu .btn,.drop .btn,.mega-foot .btn{color:#fff;background:var(--royal);border-color:var(--royal);
  display:inline-flex;align-items:center;justify-content:center;}
.menu .btn:hover,.drop .btn:hover,.mega-foot .btn:hover{color:#fff;background:var(--deep);border-color:var(--deep);}
.menu .btn.o,.drop .btn.o{color:var(--royal);background:transparent;}

.sec{padding:88px 0;} .sec.sm{padding:60px 0;}
.sec.pale{background:var(--pale);} .sec.grey{background:var(--grey);} .sec.faqbg{background:var(--faq);}
.sec.dark{background:var(--navy);color:#DCE4F5;} .sec.dark h2,.sec.dark h3{color:#fff;}
.kick{display:inline-flex;align-items:center;gap:9px;font-size:12.5px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--royal);margin-bottom:14px;}
.kick::before{content:"";width:26px;height:2px;background:var(--royal);display:block;}
.sec.dark .kick{color:#8CA8F5;} .sec.dark .kick::before{background:#8CA8F5;}
.h-sec{font-size:clamp(28px,3.6vw,42px);color:var(--head);margin-bottom:16px;}
.sec.dark .h-sec{color:#fff;}
.sub{color:var(--ink-2);font-size:17.5px;max-width:72ch;} .sec.dark .sub{color:#B9C6E4;}
.head-block{margin-bottom:44px;max-width:78ch;}
.head-center{text-align:center;margin:0 auto 46px;max-width:72ch;}
.head-center .kick{justify-content:center;} .head-center .sub{margin:0 auto;}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.row2.top{align-items:start;} .row2.sidebar{grid-template-columns:1fr 330px;gap:44px;}
@media(max-width:960px){.row2,.row2.sidebar{grid-template-columns:1fr;gap:36px;}}
.actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px;}
.prose{color:var(--ink-2);} .prose p+p{margin-top:15px;} .prose b{color:var(--ink);font-weight:700;}
.prose h3{color:var(--head);font-size:23px;margin:30px 0 12px;}
.prose h4{color:var(--ink);font-size:18.5px;margin:24px 0 8px;}
hr.sp{border:none;border-top:1px solid var(--line);margin:56px 0;}

.hero{position:relative;background:var(--navy);color:#fff;padding:92px 0 96px;overflow:hidden;}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(880px 460px at 78% 18%,rgba(46,86,224,.42),transparent 62%),radial-gradient(620px 420px at 8% 92%,rgba(29,63,196,.28),transparent 66%);}
.hero .shell{position:relative;z-index:1;}
.hero h1{font-size:clamp(36px,5.2vw,62px);color:#fff;}
.hero h1 .l2{display:block;color:#8CA8F5;}
.hero p.big{margin-top:22px;font-size:18.5px;color:#C2CFEC;max-width:52ch;}
.hero-badges{display:flex;flex-wrap:wrap;gap:26px;margin-top:34px;padding-top:26px;border-top:1px solid rgba(255,255,255,.16);}
.hb b{display:block;font-size:22px;font-weight:800;color:#fff;} .hb span{font-size:13px;color:#9FB1DA;}
.phero{background:var(--navy);color:#fff;padding:66px 0;position:relative;overflow:hidden;}
.phero::before{content:"";position:absolute;inset:0;background:radial-gradient(700px 380px at 80% 10%,rgba(46,86,224,.4),transparent 62%);}
.phero .shell{position:relative;z-index:1;}
.phero h1{font-size:clamp(30px,4.2vw,50px);color:#fff;max-width:22ch;}
.phero p{margin-top:16px;color:#C2CFEC;font-size:17.5px;max-width:62ch;}
.crumb{font-size:13.5px;color:#8CA8F5;margin-bottom:14px;}
.crumb a{color:#8CA8F5;text-decoration:none;} .crumb a:hover{color:#fff;}

.grid{display:grid;gap:24px;}
.g2{grid-template-columns:repeat(2,1fr);} .g3{grid-template-columns:repeat(3,1fr);} .g4{grid-template-columns:repeat(4,1fr);}
@media(max-width:1000px){.g4{grid-template-columns:repeat(2,1fr);}.g3{grid-template-columns:repeat(2,1fr);}}
@media(max-width:720px){.g2,.g3,.g4{grid-template-columns:1fr;}}
.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:28px 26px;display:flex;flex-direction:column;gap:11px;position:relative;transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease;text-decoration:none;color:inherit;}
a.card:hover,.card:hover{box-shadow:var(--sh-2);transform:translateY(-3px);border-color:#C9D6F5;}
.card h3{font-size:19.5px;color:var(--ink);} .card p{color:var(--ink-2);font-size:15.5px;}
.card .more{margin-top:auto;padding-top:12px;font-size:14px;font-weight:700;color:var(--royal);}
.ico{width:52px;height:52px;border-radius:11px;background:var(--pale);color:var(--royal);display:grid;place-items:center;flex:none;}
.sec.pale .ico,.sec.grey .ico{background:#E6EEFD;}
.ico svg{width:26px;height:26px;}
.card .n{position:absolute;top:20px;right:24px;font-size:32px;font-weight:800;color:#EDF1FC;}
.chips{display:flex;flex-wrap:wrap;gap:7px;margin:4px 0 0;padding:0;list-style:none;}
.chips li,.chips a{font-size:12.5px;font-weight:600;color:var(--deep);background:var(--pale);border:1px solid var(--line);padding:4px 11px;border-radius:20px;text-decoration:none;display:block;}
.chips a:hover{background:var(--royal);color:#fff;border-color:var(--royal);}
.tick{margin:6px 0 0;padding:0;list-style:none;}
.tick li{position:relative;padding-left:26px;margin-bottom:8px;font-size:15px;color:var(--ink-2);}
.tick li::before{content:"";position:absolute;left:0;top:9px;width:13px;height:8px;border-left:2.4px solid var(--royal);border-bottom:2.4px solid var(--royal);transform:rotate(-45deg);}
.ul{margin:0;padding-left:20px;color:var(--ink-2);font-size:15.5px;} .ul li{margin-bottom:9px;} .ul b{color:var(--ink);font-weight:700;}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14);border-radius:12px;overflow:hidden;}
.stat{background:var(--navy-2);padding:28px 24px;text-align:center;}
.stat b{display:block;font-size:29px;font-weight:800;color:#fff;} .stat span{font-size:13.5px;color:#A9B9DE;}
@media(max-width:820px){.stats{grid-template-columns:1fr 1fr;}}

.strip{background:linear-gradient(120deg,var(--royal),var(--deep));border-radius:14px;padding:42px 44px;display:flex;flex-wrap:wrap;gap:26px;align-items:center;justify-content:space-between;}
.strip h3{font-size:clamp(21px,2.5vw,29px);color:#fff;max-width:28ch;}
.strip p{color:#C9D6F8;margin-top:8px;max-width:50ch;font-size:16px;}
@media(max-width:720px){.strip{padding:32px 24px;}}

.tw{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:#fff;}
table{border-collapse:collapse;width:100%;min-width:600px;font-size:15.5px;}
th,td{text-align:left;padding:14px 20px;border-bottom:1px solid var(--line-2);vertical-align:top;}
thead th{background:var(--royal);color:#fff;font-size:13px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;border-bottom:none;}
tbody tr:last-child td,tbody tr:last-child th{border-bottom:none;}
tbody th{background:var(--pale);font-weight:700;color:var(--ink);width:26%;} td{color:var(--ink-2);}

.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;}
.step{background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px 20px;}
.step .sn{width:42px;height:42px;border-radius:50%;background:var(--royal);color:#fff;display:grid;place-items:center;font-weight:800;font-size:16px;margin-bottom:13px;}
.step h3{font-size:17px;margin-bottom:6px;} .step p{font-size:14.5px;color:var(--ink-2);}
.step .when{margin-top:11px;padding-top:9px;border-top:1px solid var(--line-2);font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--royal);}
@media(max-width:1050px){.steps{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.steps{grid-template-columns:1fr;}}

.pk{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.pkc{background:#fff;border:1px solid var(--line);border-radius:14px;padding:32px 28px;display:flex;flex-direction:column;gap:13px;}
.pkc.hot{border:2px solid var(--royal);box-shadow:var(--sh-2);position:relative;}
.pkc.hot::after{content:"MOST COMMON";position:absolute;top:-12px;left:28px;background:var(--royal);color:#fff;font-size:10.5px;font-weight:800;letter-spacing:.13em;padding:5px 12px;border-radius:20px;}
.pkc h3{font-size:22px;color:var(--head);}
.pk-tag{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--royal);}
.pk-foot{margin-top:auto;padding-top:16px;border-top:1px solid var(--line-2);font-size:13.5px;color:var(--muted);}
@media(max-width:900px){.pk{grid-template-columns:1fr;}}

.fig{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px 24px;box-shadow:var(--sh-2);}
.fig-cap{font-size:13px;color:var(--muted);margin-top:16px;padding-top:13px;border-top:1px solid var(--line);}
.fig-scroll{overflow-x:auto;} .fig-scroll svg{display:block;min-width:460px;width:100%;height:auto;}

.acc{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;}
.acc+.acc{margin-top:13px;}
.acc summary{cursor:pointer;list-style:none;padding:19px 22px;display:flex;gap:15px;align-items:flex-start;font-size:16.5px;font-weight:700;color:var(--ink);}
.acc summary::-webkit-details-marker{display:none;}
.acc summary .qn{color:var(--royal);font-weight:800;flex:none;font-variant-numeric:tabular-nums;}
.acc summary::after{content:"+";margin-left:auto;color:var(--royal);font-weight:700;font-size:23px;line-height:1;}
.acc[open] summary::after{content:"–";} .acc[open] summary{border-bottom:1px solid var(--line-2);}
.acc .ans{padding:17px 22px 22px;color:var(--ink-2);} .acc .ans p+p{margin-top:10px;}
.faq-cat{font-size:12.5px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--royal);margin:38px 0 15px;}
.faq-cat:first-of-type{margin-top:0;}

.callout{background:var(--pale);border-left:4px solid var(--royal);border-radius:0 10px 10px 0;padding:20px 24px;color:var(--ink-2);font-size:16px;}
.callout b{color:var(--ink);}
.quote{border-left:4px solid var(--royal);padding:6px 0 6px 24px;font-size:20px;font-weight:600;color:var(--ink);line-height:1.5;}
.side{background:var(--pale);border:1px solid var(--line);border-radius:14px;padding:26px 24px;position:sticky;top:100px;}
.side h4{font-size:12.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--royal);margin-bottom:14px;}
.side ul{list-style:none;margin:0 0 20px;padding:0;}
.side li{margin-bottom:3px;}
.side li a{display:block;padding:8px 12px;border-radius:8px;font-size:14.5px;font-weight:600;color:var(--ink-2);text-decoration:none;background:#fff;border:1px solid var(--line);}
.side li a:hover{color:var(--royal);border-color:#C9D6F5;}
.side li a.on{background:var(--royal);color:#fff;border-color:var(--royal);}

.post-meta{display:flex;flex-wrap:wrap;gap:14px;font-size:13.5px;color:var(--muted);margin-bottom:6px;}
.tagpill{font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--royal);background:var(--pale);border:1px solid var(--line);padding:3px 10px;border-radius:20px;}
.postcard .tagpill{align-self:flex-start;}


/* ── forms ── */
.formcard{background:#fff;border:1px solid var(--line);border-radius:14px;padding:34px 32px;box-shadow:var(--sh-2);}
.formcard h3{font-size:24px;color:var(--head);margin-bottom:6px;}
.formcard .fsub{color:var(--ink-2);font-size:15.5px;margin-bottom:24px;}
.fgrid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:620px){.fgrid2{grid-template-columns:1fr;}}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;}
.field label{font-size:13px;font-weight:700;color:var(--ink);letter-spacing:.02em;}
.field label .req{color:var(--royal);}
.field .hint{font-size:12.5px;color:var(--muted);font-weight:400;}
.field input,.field select,.field textarea{
  font-family:inherit;font-size:15.5px;color:var(--ink);background:#fff;
  border:1.5px solid var(--line);border-radius:9px;padding:12px 14px;width:100%;
  transition:border-color .15s ease,box-shadow .15s ease;}
.field textarea{min-height:130px;resize:vertical;}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--royal);box-shadow:0 0 0 3px rgba(29,63,196,.12);}
.field input::placeholder,.field textarea::placeholder{color:#9AA3B8;}
.field.err input,.field.err select,.field.err textarea{border-color:#C0392B;}
.field .msg{font-size:12.5px;color:#C0392B;display:none;}
.field.err .msg{display:block;}
.checkrow{display:flex;gap:11px;align-items:flex-start;font-size:14px;color:var(--ink-2);margin:4px 0 22px;}
.checkrow input{width:18px;height:18px;margin-top:2px;flex:none;accent-color:var(--royal);}
.formcard button[type=submit]{width:100%;justify-content:center;font-size:16px;padding:15px 26px;border:none;}
.formnote{font-size:12.5px;color:var(--muted);margin-top:14px;text-align:center;}
.sent{display:none;background:var(--pale);border:1.5px solid var(--royal);border-radius:12px;padding:28px 26px;}
.sent.on{display:block;}
.sent h3{color:var(--head);font-size:21px;margin-bottom:10px;}
.sent p{color:var(--ink-2);font-size:15.5px;} .sent p+p{margin-top:10px;}
.sent pre{background:#fff;border:1px solid var(--line);border-radius:9px;padding:14px 16px;margin-top:14px;
  font-family:ui-monospace,Menlo,monospace;font-size:12.5px;color:var(--ink-2);white-space:pre-wrap;max-height:220px;overflow:auto;}

footer{background:var(--navy);color:#AFBEDF;padding:66px 0 0;}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr 1.1fr;gap:28px;}
.fnews input{width:100%;font-family:inherit;font-size:14.5px;padding:10px 12px;border-radius:9px;border:1.5px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:#fff;margin-bottom:8px;}
.fnews input::placeholder{color:#8492B5;}
.fnews input:focus{outline:none;background:#fff;color:var(--ink);border-color:#fff;}
.fnews.sent input,.fnews.sent .btn,.fnews.sent .news-note{display:none;}
.fnews.sent .news-done{display:block;}
.fnews .news-done{display:none;}
footer h4{font-size:12.5px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:#fff;margin-bottom:15px;}
footer ul{margin:0;padding:0;list-style:none;font-size:14.5px;} footer li{margin-bottom:8px;}
footer a{color:#AFBEDF;text-decoration:none;} footer a:hover{color:#fff;}
.fmark{display:flex;align-items:center;gap:11px;margin-bottom:15px;}
.fmark .mark-txt b{color:#fff;} .fmark .mark-txt span{color:#8CA8F5;}
.socials{display:flex;gap:10px;margin-top:18px;}
.socials a{width:36px;height:36px;border-radius:9px;background:rgba(255,255,255,.09);display:grid;place-items:center;}
.socials a:hover{background:var(--royal);} .socials svg{width:17px;height:17px;}
.fcontact{font-size:14.5px;line-height:2;}
.fbar{margin-top:46px;border-top:1px solid rgba(255,255,255,.13);padding:20px 0 26px;display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;font-size:13.5px;color:#8492B5;}
.fbar .legal{display:flex;flex-wrap:wrap;gap:18px;}
@media(max-width:1000px){.fgrid{grid-template-columns:1fr 1fr 1fr;}}
@media(max-width:700px){.fgrid{grid-template-columns:1fr 1fr;}}
@media(max-width:500px){.fgrid{grid-template-columns:1fr;}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto;}}



/* ── hero background animation ── */
.hero-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0;opacity:.85;pointer-events:none;}
.hero .shell,.phero .shell{position:relative;z-index:2;}
.hero::before{z-index:1;}
@media (prefers-reduced-motion:reduce){.hero-canvas{display:none;}}

/* ── section watermark ── */
.wm-sec{position:relative;overflow:hidden;}
.wm-sec>.shell{position:relative;z-index:1;}
.wm{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:0;pointer-events:none;
  user-select:none;text-align:center;line-height:.86;white-space:nowrap;font-family:"Red Hat Display",sans-serif;
  font-weight:900;letter-spacing:-.045em;font-size:clamp(64px,14vw,196px);
  color:rgba(29,63,196,.055);}
.wm span{display:block;font-size:.52em;letter-spacing:.06em;font-weight:800;color:rgba(29,63,196,.045);}
.sec.dark .wm,.hero .wm{color:rgba(255,255,255,.045);} .sec.dark .wm span{color:rgba(255,255,255,.035);}

/* ── time zones ── */
.tz-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;}
.tz{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 16px;position:relative;overflow:hidden;}
.tz::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--zone);}
.tz.home{border-color:var(--royal);box-shadow:var(--sh-2);}
.tz .zn{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}
.tz .zt{font-family:"Red Hat Display",sans-serif;font-size:27px;font-weight:800;letter-spacing:-.02em;
  color:var(--ink);margin:4px 0 2px;font-variant-numeric:tabular-nums;}
.tz .zl{font-size:13.5px;font-weight:700;color:var(--head);}
.tz .zp{font-size:12.5px;color:var(--muted);margin-top:6px;line-height:1.5;}
.tz .zo{margin-top:9px;padding-top:8px;border-top:1px solid var(--line-2);font-size:12px;color:var(--muted);}
.tz.home .zo{color:var(--royal);font-weight:700;}
@media(max-width:1100px){.tz-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:680px){.tz-grid{grid-template-columns:repeat(2,1fr);}.tz .zt{font-size:23px;}}
@media(max-width:420px){.tz-grid{grid-template-columns:1fr;}}

/* ── provinces tile map ── */
.mapwrap{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px 24px;box-shadow:var(--sh);}
.tilemap{display:grid;grid-template-columns:repeat(8,1fr);gap:8px;max-width:820px;margin:0 auto;}
.tile{border-radius:10px;padding:12px 8px 10px;text-align:center;color:#fff;position:relative;
  display:flex;flex-direction:column;justify-content:center;min-height:74px;text-decoration:none;
  transition:transform .15s ease,box-shadow .15s ease;}
.tile:hover{transform:translateY(-2px);box-shadow:var(--sh-2);}
.tile b{font-family:"Red Hat Display",sans-serif;font-size:19px;font-weight:800;letter-spacing:-.01em;line-height:1;}
.tile span{font-size:10.5px;line-height:1.25;margin-top:5px;opacity:.9;}
.tile.lt{color:var(--ink);} .tile.lt span{opacity:.7;}
.tile.home{outline:2.5px solid var(--royal);outline-offset:2px;}
.tile .pin{position:absolute;top:5px;right:6px;font-size:9px;font-weight:800;letter-spacing:.08em;opacity:.85;}
.maplegend{display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:center;margin-top:22px;padding-top:18px;border-top:1px solid var(--line-2);}
.maplegend span{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink-2);}
.maplegend i{width:13px;height:13px;border-radius:4px;display:block;}
.mapnote{text-align:center;font-size:12.5px;color:var(--muted);margin-top:14px;}
@media(max-width:760px){
  .tilemap{grid-template-columns:repeat(4,1fr);gap:6px;}
  .tile{min-height:62px;padding:9px 5px;} .tile b{font-size:16px;} .tile span{font-size:9.5px;}
  .mapwrap{padding:20px 14px;}
}

/* ── service run-steps ── */
.runsteps{display:flex;flex-direction:column;gap:2px;}
.runstep{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid var(--line);
  padding:18px 20px;}
.runstep:first-child{border-radius:12px 12px 0 0;}
.runstep:last-child{border-radius:0 0 12px 12px;}
.runstep+.runstep{border-top:none;}
.runstep .rn{width:32px;height:32px;border-radius:50%;background:var(--pale);color:var(--royal);
  display:grid;place-items:center;font-family:"Red Hat Display",sans-serif;font-weight:800;font-size:14px;flex:none;}
.runstep b{display:block;font-family:"Red Hat Display",sans-serif;font-size:16.5px;color:var(--ink);margin-bottom:3px;}
.runstep p{font-size:15px;color:var(--ink-2);}
@media(max-width:680px){.runstep{padding:15px 15px;gap:12px;} .runstep b{font-size:15.5px;} .runstep p{font-size:14.5px;}}

/* ── newsletter ── */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.news{background:linear-gradient(120deg,var(--royal),var(--deep));border-radius:14px;padding:34px 36px;
  display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center;}
.news-copy h3{color:#fff;font-size:clamp(20px,2.3vw,26px);}
.news-copy p{color:#C9D6F8;margin-top:8px;font-size:15.5px;}
.news-form{display:grid;grid-template-columns:1fr auto;gap:10px;}
.news-form input{font-family:inherit;font-size:15.5px;padding:13px 15px;border-radius:10px;
  border:1.5px solid rgba(255,255,255,.28);background:rgba(255,255,255,.12);color:#fff;width:100%;}
.news-form input::placeholder{color:#B9C6E4;}
.news-form input:focus{outline:none;background:#fff;color:var(--ink);border-color:#fff;}
.news-form .btn{background:#fff;border-color:#fff;color:var(--deep);}
.news-form .btn:hover{background:var(--pale);}
.news-note{grid-column:1/-1;font-size:12px;color:#B9C6E4;line-height:1.6;margin-top:2px;}
.news-note a{color:#fff;}
.news-done{grid-column:1/-1;display:none;font-size:14.5px;color:#fff;font-weight:700;}
.news-form.sent input,.news-form.sent .btn,.news-form.sent .news-note{display:none;}
.news-form.sent .news-done{display:block;}
.news-form.nerr input{border-color:#FFB4A8;background:rgba(255,120,100,.15);}
@media(max-width:900px){.news{grid-template-columns:1fr;padding:26px 22px;}}
@media(max-width:520px){.news-form{grid-template-columns:1fr;}}

/* ── resource gate ── */
.gate{position:relative;margin-top:34px;}
.gate-lock{background:var(--pale);border:1.5px solid var(--line);border-radius:14px;padding:32px 30px;text-align:center;}
.gate-icon{width:54px;height:54px;border-radius:14px;background:#fff;border:1px solid var(--line);
  color:var(--royal);display:grid;place-items:center;margin:0 auto 14px;}
.gate-icon svg{width:26px;height:26px;}
.gate-lock h3{font-size:21px;color:var(--head);}
.gate-lock>p{color:var(--ink-2);font-size:15.5px;margin:10px auto 20px;max-width:56ch;}
.gate-form{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;max-width:640px;margin:0 auto;}
.gate-form input{font-family:inherit;font-size:15.5px;padding:12px 14px;border-radius:9px;
  border:1.5px solid var(--line);background:#fff;width:100%;}
.gate-form input:focus{outline:none;border-color:var(--royal);box-shadow:0 0 0 3px rgba(29,63,196,.12);}
.gate-form.gerr input[type=email]{border-color:#C0392B;}
.gate-note{font-size:12px;color:var(--muted);max-width:60ch;margin:16px auto 0;line-height:1.6;}
.gate-content{display:none;}
.gate.open .gate-lock{display:none;}
.gate.open .gate-content{display:block;}
@media(max-width:760px){.gate-form{grid-template-columns:1fr;}.gate-lock{padding:24px 18px;}}

/* ── tool stack ── */
.toollist{list-style:none;margin:4px 0 0;padding:0;}
.toollist li{position:relative;padding-left:18px;font-size:14.5px;color:var(--ink-2);margin-bottom:5px;}
.toollist li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:var(--royal);opacity:.5;}
/* ── mega menu ── */
.hdr-in{position:relative;}
.menu>li.mega{position:static;}
.drop.mega{left:0;right:0;width:auto;min-width:0;padding:26px 28px 22px;}
.mega-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px 32px;}
.mega-col{min-width:0;}
.mega-col h5{margin:0 0 10px;font-family:"Red Hat Display",sans-serif;font-size:11px;font-weight:800;
  letter-spacing:.14em;text-transform:uppercase;color:var(--royal);padding-bottom:7px;border-bottom:1px solid var(--line);}
.mega-col a{display:block;padding:5px 8px;margin-left:-8px;border-radius:7px;font-size:14px;font-weight:500;
  color:var(--ink-2);text-decoration:none;line-height:1.4;}
.mega-col a:hover{background:var(--pale);color:var(--royal);}
.mega-col a em{display:block;font-style:normal;font-size:12px;color:var(--muted);margin-top:1px;}
.mega-foot{grid-column:1/-1;margin-top:6px;padding-top:14px;border-top:1px solid var(--line);
  display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;}
.mega-foot span{font-size:13.5px;color:var(--muted);}

/* ── header search ── */
.search{position:relative;order:2;flex:0 1 210px;min-width:150px;}
.search input{width:100%;font-family:inherit;font-size:14px;color:var(--ink);background:var(--pale);
  border:1.5px solid var(--line);border-radius:9px;padding:10px 12px 10px 34px;}
.search input:focus{outline:none;background:#fff;border-color:var(--royal);box-shadow:0 0 0 3px rgba(29,63,196,.12);}
.search input::placeholder{color:#8A93AB;}
.search .sicon{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--muted);pointer-events:none;}
.sresults{position:absolute;top:calc(100% + 8px);right:0;width:min(420px,86vw);background:#fff;
  border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh-2);padding:8px;display:none;
  max-height:440px;overflow-y:auto;z-index:70;}
.sresults.on{display:block;}
.sresults a{display:block;padding:9px 12px;border-radius:8px;text-decoration:none;color:var(--ink);}
.sresults a:hover,.sresults a.sel{background:var(--pale);}
.sresults b{display:block;font-size:14.5px;font-weight:700;line-height:1.35;}
.sresults small{display:block;font-size:12.5px;color:var(--muted);margin-top:2px;}
.sresults .scat{font-size:10.5px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--royal);}
.sempty{padding:16px 12px;font-size:14px;color:var(--muted);}

@media (max-width:1220px){
  .drop.mega{position:static!important;padding:0 0 12px 14px;}
  .mega-grid{grid-template-columns:1fr;gap:14px;}
  .mega-col h5{border-bottom:none;padding-bottom:2px;margin-bottom:4px;}
  .mega-foot{border-top:none;padding-top:6px;}
  .search{order:4;flex:1 1 100%;margin-top:12px;}
  .sresults{width:100%;left:0;right:auto;}
}
@media (max-width:680px){
  .search input{font-size:16px;padding:10px 12px 10px 32px;}
}
/* ════════════ RESPONSIVE SYSTEM ════════════ */
/* No overflow-x on html/body: both `hidden` and `clip` there stop the sticky
   header painting in Chromium. Horizontal overflow is prevented structurally
   instead (min-width:0 on grid children, wrapped tables, fluid media) and the
   few elements that can genuinely overflow clip themselves. */
html,body{max-width:100%;}
.tw,.fig-scroll,.legalbox{max-width:100%;overflow-x:auto;}
.wm-sec,.na-host,.hero,.phero,.hero-wrap,footer{overflow-x:clip;}
.hdr{position:sticky;position:-webkit-sticky;top:0;z-index:60;}
.hdr.stuck{box-shadow:0 10px 24px -18px rgba(12,24,48,.5);}
img,svg,video,canvas{max-width:100%;height:auto;}
.shell{width:100%;}
table{max-width:100%;}
.row2.wide{grid-template-columns:1.2fr .8fr;}

/* burger */
.burger{display:none;flex-direction:column;gap:5px;background:transparent;border:1.5px solid var(--line);
  border-radius:9px;padding:11px 10px;cursor:pointer;order:2;}
.burger span{display:block;width:20px;height:2px;background:var(--ink);border-radius:2px;transition:transform .2s ease,opacity .2s ease;}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ≤1220px — nav becomes a drawer */
@media (max-width:1220px){
  .hdr-in{height:70px;flex-wrap:nowrap;gap:12px;}
  .burger{display:flex;}
  .hdr-cta{order:3;}
  .menu{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);
    box-shadow:0 18px 30px -20px rgba(18,36,112,.4);flex-direction:column;gap:0;padding:12px 26px 22px;
    max-height:calc(100vh - 70px);overflow-y:auto;}
  .hdr{position:sticky;}
  .hdr .shell{position:relative;}
  .menu.open{display:flex;}
  .menu>li{width:100%;border-bottom:1px solid var(--line-2);}
  .menu>li:last-child{border-bottom:none;}
  .menu>li>a{padding:14px 4px;font-size:16px;justify-content:space-between;}
  .menu .car{width:11px;height:11px;}
  .drop{position:static!important;display:none;min-width:0;border:none;box-shadow:none;padding:0 0 12px 14px;background:transparent;border-radius:0;}
  .menu>li.open .drop{display:block;}
  .drop a{padding:9px 6px;font-size:14.5px;border-left:2px solid var(--line);border-radius:0;}
  .drop small{font-size:12px;}
}

/* ≤1080px */
@media (max-width:1080px){
  .sec{padding:70px 0;} .sec.sm{padding:48px 0;}
  .row2,.row2.wide,.row2.sidebar{grid-template-columns:1fr;gap:34px;}
  .side{position:static;}
  .steps{grid-template-columns:repeat(3,1fr);}
  .fgrid{grid-template-columns:1fr 1fr 1fr;}
}

/* ≤900px */
@media (max-width:900px){
  body{font-size:16px;}
  .shell{padding:0 20px;}
  .sec{padding:58px 0;} .sec.sm{padding:42px 0;}
  .hero{padding:64px 0 60px;}
  .phero{padding:52px 0;}
  .h-sec{font-size:clamp(25px,5.4vw,32px);}
  .sub{font-size:16.5px;}
  .head-block,.head-center{margin-bottom:32px;}
  .grid{gap:18px;}
  .g2,.g3,.g4{grid-template-columns:1fr 1fr;}
  .steps{grid-template-columns:1fr 1fr;}
  .strip{padding:30px 24px;gap:20px;}
  .strip h3{max-width:none;}
  .formcard{padding:26px 22px;}
  .svc-main,.svc-side{padding:26px 22px;}
  .fig{padding:22px 18px;}
  .card{padding:24px 20px;}
  .pkc{padding:26px 22px;}
  .fgrid{grid-template-columns:1fr 1fr;gap:26px;}
  .util-in{font-size:12.5px;}
}

/* ≤680px — phones */
@media (max-width:680px){
  .shell{padding:0 16px;}
  .hdr-in{height:62px;}
  .menu{top:100%;max-height:calc(100vh - 62px);padding:10px 16px 18px;}
  .mark-badge{width:34px;height:34px;font-size:15px;border-radius:8px;}
  .mark-txt b{font-size:16.5px;} .mark-txt span{font-size:8.5px;letter-spacing:.14em;}
  .hdr-cta{padding:10px 14px;font-size:13.5px;}
  .burger{padding:9px 8px;}
  .util-in{height:auto;padding:7px 0;gap:6px;justify-content:flex-start;}
  .util-l{gap:14px;font-size:12px;}
  .sec{padding:46px 0;} .sec.sm{padding:34px 0;}
  .hero{padding:48px 0 46px;}
  .hero h1{font-size:clamp(28px,8vw,36px);}
  .hero p.big{font-size:16.5px;margin-top:16px;}
  .hero-badges{gap:16px;margin-top:24px;padding-top:20px;}
  .hb b{font-size:18px;} .hb span{font-size:12px;}
  .phero{padding:40px 0;}
  .phero h1{font-size:clamp(25px,7vw,32px);max-width:none;}
  .phero p{font-size:16px;}
  .crumb{font-size:12.5px;}
  .h-sec{font-size:clamp(23px,6.4vw,28px);}
  .g2,.g3,.g4,.grid-2,.grid-3{grid-template-columns:1fr;}
  .steps{grid-template-columns:1fr;}
  .pk{grid-template-columns:1fr;}
  .stats{grid-template-columns:1fr 1fr;}
  .stat{padding:20px 14px;} .stat b{font-size:22px;} .stat span{font-size:12.5px;}
  .fgrid2{grid-template-columns:1fr;}
  .fgrid{grid-template-columns:1fr;gap:28px;}
  .strip{padding:26px 20px;border-radius:12px;}
  .strip h3{font-size:21px;} .strip p{font-size:15px;}
  .actions{gap:10px;}
  .btn{padding:12px 20px;font-size:14.5px;}
  .actions .btn{flex:1 1 auto;justify-content:center;}
  .formcard{padding:22px 18px;border-radius:12px;}
  .formcard h3{font-size:20px;}
  .field input,.field select,.field textarea{font-size:16px;padding:11px 12px;}
  .acc summary{padding:16px 16px;font-size:15.5px;gap:10px;}
  .acc .ans{padding:14px 16px 20px;}
  .card .n{font-size:26px;top:16px;right:18px;}
  .ico{width:46px;height:46px;border-radius:10px;} .ico svg{width:23px;height:23px;}
  .card h3{font-size:18px;} .card p{font-size:15px;}
  .quote{font-size:17px;padding-left:16px;}
  .callout{padding:16px 18px;font-size:15px;}
  th,td{padding:11px 13px;font-size:14.5px;}
  table{min-width:480px;}
  .fig-scroll svg{min-width:360px;}
  .side{padding:22px 18px;}
  .prose h3{font-size:20px;} .prose h4{font-size:16.5px;}
  .svc-main h3{font-size:21px;}
  .fbar{flex-direction:column;gap:10px;}
  .fbar .legal{gap:12px;row-gap:6px;}
  footer{padding:50px 0 0;}
}

/* ≤420px — small phones */
@media (max-width:420px){
  .shell{padding:0 13px;}
  .mark-txt span{display:none;}
  .hero h1{font-size:26px;}
  .h-sec{font-size:22px;}
  .stats{grid-template-columns:1fr;}
  .chips li,.chips a{font-size:12px;padding:3px 9px;}
  table{min-width:400px;}
  .btn{width:100%;justify-content:center;}
  .hdr-cta{width:auto;}
}

/* landscape phones / short screens */
@media (max-height:520px) and (max-width:1220px){
  .menu{max-height:70vh;}
}

/* large desktops */
@media (min-width:1500px){
  .shell{max-width:1260px;}
}
@media print{
  .hdr,.util,.burger,.strip,footer .socials{display:none!important;}
  .sec{padding:20px 0;} .card,.fig{box-shadow:none;break-inside:avoid;}
}

/* ════════════ ROUND 4 — comment fixes ════════════ */
[hidden]{display:none!important;}

/* watermark sits a little lower so it reads as a backdrop, not a strike-through */
.wm{top:58%;}
@media(max-width:760px){.wm{top:60%;font-size:clamp(48px,17vw,120px);}}

/* hero animation continues into the strip below the hero */
.hero-wrap{position:relative;isolation:isolate;}
.hero-wrap>.hero,.hero-wrap>section{position:relative;z-index:1;background-color:transparent;}
.hero-wrap .hero-canvas{z-index:0;}
.hero-wrap::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--navy);}
.hero-wrap .hero{background:transparent;}
.hero-wrap .hero::before{z-index:0;}

/* ── tool stack ── */
.stackbar{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:0 0 32px;}
.sb{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 18px 16px;text-align:center;}
.sec.pale .sb,.sec.grey .sb{background:#fff;}
.sb b{display:block;font-family:"Red Hat Display",sans-serif;font-size:30px;font-weight:800;
  letter-spacing:-.02em;color:var(--royal);line-height:1;}
.sb span{display:block;font-size:12.5px;color:var(--muted);margin-top:7px;line-height:1.45;}
.tsgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.tscard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 22px 18px;
  box-shadow:var(--sh);position:relative;overflow:hidden;transition:transform .16s ease,box-shadow .16s ease;}
.tscard::after{content:"";position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg,var(--royal),#6E8CF0);}
.tscard:hover{transform:translateY(-3px);box-shadow:var(--sh-2);}
.tshead{display:flex;align-items:flex-start;gap:13px;padding-bottom:14px;margin-bottom:14px;
  border-bottom:1px solid var(--line-2);}
.tsico{flex:0 0 44px;width:44px;height:44px;border-radius:11px;background:var(--pale);color:var(--royal);
  display:grid;place-items:center;}
.tsico svg{width:22px;height:22px;}
.tshead h3{margin:0;font-family:"Red Hat Display",sans-serif;font-size:17px;font-weight:800;
  letter-spacing:-.015em;color:var(--ink);line-height:1.25;}
.tshead em{font-style:normal;display:block;font-size:12px;color:var(--muted);margin-top:3px;
  letter-spacing:.05em;text-transform:uppercase;font-weight:700;}
.tsn{margin-left:auto;font-family:"Red Hat Display",sans-serif;font-size:22px;font-weight:800;
  color:var(--line);letter-spacing:-.02em;line-height:1;}
.tslist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;}
.tslist li{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:var(--ink-2);
  padding:6px 8px;margin-left:-8px;border-radius:8px;}
.tslist li:hover{background:var(--pale);color:var(--royal);}
.tsg{flex:0 0 26px;width:26px;height:26px;border-radius:7px;border:1px solid var(--line);
  background:#fff;color:var(--royal);display:grid;place-items:center;}
.tsg svg{width:14px;height:14px;stroke-width:1.7;}
@media(max-width:980px){.tsgrid{grid-template-columns:repeat(2,1fr);}.stackbar{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.tsgrid{grid-template-columns:1fr;}}

/* ── north america dot map behind the Canada section ── */
.namap{position:absolute;inset:0;z-index:0;pointer-events:none;display:grid;place-items:center;overflow:hidden;
  -webkit-mask-image:radial-gradient(ellipse at 50% 45%,#000 42%,transparent 78%);
  mask-image:radial-gradient(ellipse at 50% 45%,#000 42%,transparent 78%);}
.namap svg{width:min(1320px,132%);height:auto;opacity:.10;transform:translateY(-2%);}
.namap circle{fill:var(--royal);}
@media(max-width:820px){.namap svg{width:150%;opacity:.07;}}
.na-host{position:relative;overflow:hidden;}
.na-host>.shell{position:relative;z-index:1;}
.sec.dark .namap circle{fill:#fff;}

/* ── footer wordmark overlay ── */
.foot-in{position:relative;}
.fwm{position:absolute;right:0;bottom:150px;z-index:0;pointer-events:none;user-select:none;
  text-align:right;line-height:.84;font-family:"Red Hat Display",sans-serif;font-weight:900;
  letter-spacing:-.05em;font-size:clamp(46px,6.4vw,104px);white-space:nowrap;
  background:linear-gradient(180deg,rgba(255,255,255,.11),rgba(255,255,255,.02));
  -webkit-background-clip:text;background-clip:text;color:transparent;}
.fwm span{display:block;font-size:.3em;letter-spacing:.24em;font-weight:800;
  background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.02));
  -webkit-background-clip:text;background-clip:text;color:transparent;margin-top:.1em;}
.foot-in>*:not(.fwm){position:relative;z-index:1;}
@media(max-width:900px){.fwm{right:0;bottom:auto;top:14px;font-size:clamp(34px,11vw,62px);opacity:.75;}}
@media(max-width:560px){.fwm{display:none;}}

/* ── client portal ── */
.portal-lock{min-height:62vh;display:grid;place-items:center;padding:70px 0;}
.lockcard{width:min(460px,92vw);background:#fff;border:1px solid var(--line);border-radius:18px;
  padding:34px 32px 30px;box-shadow:var(--sh-2);text-align:center;}
.lockcard .lg{width:56px;height:56px;border-radius:14px;background:var(--pale);color:var(--royal);
  display:grid;place-items:center;margin:0 auto 16px;}
.lockcard .lg svg{width:26px;height:26px;}
.lockcard h2{margin:0 0 6px;font-family:"Red Hat Display",sans-serif;font-size:24px;font-weight:800;letter-spacing:-.02em;}
.lockcard p{margin:0 0 20px;font-size:14px;color:var(--muted);line-height:1.55;}
.lockcard label{display:block;text-align:left;font-size:12.5px;font-weight:700;color:var(--ink-2);margin:0 0 6px;}
.lockcard input{width:100%;font-family:inherit;font-size:15px;padding:12px 13px;border:1.5px solid var(--line);
  border-radius:10px;margin-bottom:14px;color:var(--ink);background:var(--pale);}
.lockcard input:focus{outline:none;background:#fff;border-color:var(--royal);box-shadow:0 0 0 3px rgba(29,63,196,.12);}
.lockcard .btn{width:100%;justify-content:center;}
.lockcard .lerr{display:none;font-size:13px;color:#B3261E;margin:0 0 12px;font-weight:600;}
.lockcard.bad .lerr{display:block;}
.lockcard .lnote{font-size:11.5px;color:var(--muted);margin:16px 0 0;line-height:1.5;}

.welcome{position:fixed;inset:0;z-index:200;background:var(--navy);display:grid;place-items:center;
  text-align:center;color:#fff;animation:wfade .5s ease both;}
.welcome.out{animation:wout .55s ease both;}
@keyframes wfade{from{opacity:0}to{opacity:1}}
@keyframes wout{to{opacity:0;visibility:hidden}}
.welcome canvas{position:absolute;inset:0;width:100%;height:100%;opacity:.5;}
.welcome .wc{position:relative;z-index:2;padding:0 24px;}
.welcome .wmk{font-family:"Red Hat Display",sans-serif;font-weight:900;letter-spacing:-.04em;
  font-size:clamp(38px,7vw,78px);line-height:1;opacity:0;animation:wup .7s .15s ease both;}
.welcome .wsb{font-size:clamp(15px,2.2vw,19px);color:#B7C6EE;margin-top:14px;opacity:0;animation:wup .7s .4s ease both;}
.welcome .wring{width:74px;height:74px;margin:26px auto 0;border-radius:50%;
  border:3px solid rgba(255,255,255,.16);border-top-color:#8CA8F5;animation:wspin 1s linear infinite;}
@keyframes wup{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes wspin{to{transform:rotate(360deg)}}

.pform{display:grid;gap:22px;}
.pstep{background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px 26px 22px;box-shadow:var(--sh);}
.pstep>h3{margin:0 0 4px;font-family:"Red Hat Display",sans-serif;font-size:19px;font-weight:800;letter-spacing:-.02em;
  display:flex;align-items:center;gap:11px;}
.pstep>h3 i{flex:0 0 30px;width:30px;height:30px;border-radius:9px;background:var(--royal);color:#fff;
  font-style:normal;font-size:14px;display:grid;place-items:center;font-weight:800;}
.pstep>p.ps{margin:0 0 18px;padding-left:41px;font-size:13.5px;color:var(--muted);line-height:1.55;}
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;}
.pgrid.one{grid-template-columns:1fr;}
.fld{display:flex;flex-direction:column;gap:5px;}
.fld.full{grid-column:1/-1;}
.fld label{font-size:12.5px;font-weight:700;color:var(--ink-2);}
.fld label .req{color:#B3261E;}
.fld input,.fld select,.fld textarea{font-family:inherit;font-size:14.5px;color:var(--ink);background:var(--pale);
  border:1.5px solid var(--line);border-radius:9px;padding:11px 12px;width:100%;}
.fld textarea{min-height:88px;resize:vertical;line-height:1.55;}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;background:#fff;border-color:var(--royal);
  box-shadow:0 0 0 3px rgba(29,63,196,.12);}
.fld small{font-size:11.5px;color:var(--muted);line-height:1.45;}
.fld.err input,.fld.err select,.fld.err textarea{border-color:#B3261E;background:#FDF2F1;}
.checks{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 16px;}
.checks label{display:flex;align-items:flex-start;gap:8px;font-size:13.5px;font-weight:500;color:var(--ink-2);line-height:1.4;}
.checks input{width:16px;height:16px;margin-top:2px;flex:0 0 16px;accent-color:var(--royal);}
.consent{display:flex;align-items:flex-start;gap:11px;background:var(--pale);border:1px solid var(--line);
  border-radius:11px;padding:14px 15px;margin-bottom:12px;}
.consent input{width:17px;height:17px;margin-top:2px;flex:0 0 17px;accent-color:var(--royal);}
.consent span{font-size:13px;color:var(--ink-2);line-height:1.6;}
.consent.err{border-color:#B3261E;background:#FDF2F1;}
.legalbox{max-height:230px;overflow-y:auto;border:1px solid var(--line);border-radius:11px;padding:18px 20px;
  background:var(--pale);font-size:13px;line-height:1.65;color:var(--ink-2);margin-bottom:16px;}
.legalbox h4{margin:14px 0 5px;font-size:13px;font-weight:800;color:var(--ink);font-family:"Red Hat Display",sans-serif;}
.legalbox h4:first-child{margin-top:0;}
.legalbox p{margin:0 0 8px;}
.sigwrap{display:grid;grid-template-columns:1fr 220px;gap:18px;align-items:end;}
.sigpad{border:1.5px dashed var(--line);border-radius:11px;background:#fff;touch-action:none;width:100%;height:130px;display:block;}
.pactions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding-top:4px;}
.pactions .btn{flex:0 0 auto;}
.perr{display:none;background:#FDF2F1;border:1px solid #E9B4AF;color:#8C1D18;border-radius:10px;
  padding:12px 14px;font-size:13.5px;font-weight:600;margin-bottom:14px;}
.perr.on{display:block;}
.pok{display:none;background:#EEF6EE;border:1px solid #B8D8B8;color:#1E4620;border-radius:10px;
  padding:12px 14px;font-size:13.5px;font-weight:600;margin-bottom:14px;}
.pok.on{display:block;}
@media(max-width:820px){.pgrid{grid-template-columns:1fr;}.checks{grid-template-columns:repeat(2,1fr);}
  .sigwrap{grid-template-columns:1fr;}}
@media(max-width:520px){.checks{grid-template-columns:1fr;}}

/* print — the onboarding agreement prints as a clean document */
@media print{
  .util,.hdr,footer,.pactions,.burger,.search,.welcome{display:none!important;}
  body{background:#fff;}
  .pstep{box-shadow:none;border:1px solid #ccc;page-break-inside:avoid;}
  .legalbox{max-height:none;overflow:visible;}
}

/* on-this-page table of contents in the sidebar */
.toc{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px;}
.toc a{display:block;padding:7px 10px;margin-left:-10px;border-radius:8px;font-size:13.5px;font-weight:600;
  color:var(--ink-2);text-decoration:none;border-left:2px solid var(--line);}
.toc a:hover{background:#fff;color:var(--royal);border-left-color:var(--royal);}

/* ── performance ──
   content-visibility was tried here and removed: it makes scroll position jump
   as placeholder sizes resolve. Paint cost is kept down by deferring the hero
   animation and by loading fonts off the critical path instead. */
.tscard,.card,.tz,.tile{contain:layout style;}

/* ── header search below the drawer breakpoint ──
   The compact bar has no room for a 150px input, so it becomes the first row
   of the drawer instead of overflowing the page. */
@media (max-width:1220px){
  .hdr-in{flex-wrap:nowrap;}
  .search{display:none;order:4;flex:0 0 100%;width:100%;min-width:0;margin:0;}
  .hdr.navopen .search{display:block;position:absolute;left:0;right:0;top:70px;
    background:#fff;padding:14px 26px 2px;z-index:61;border-bottom:0;}
  .hdr.navopen .search .sicon{left:37px;top:calc(50% + 6px);}
  .hdr.navopen .menu{top:calc(100% + 62px);}
  .sresults{left:26px;right:26px;width:auto;}
}
@media (max-width:520px){
  .hdr.navopen .search{padding:12px 18px 2px;}
  .hdr.navopen .search .sicon{left:29px;}
  .sresults{left:18px;right:18px;}
}
/* grid children must be allowed to shrink or they force the page wider */
.row2>*,.grid>*,.shell>*{min-width:0;}
.row2,.grid{min-width:0;}

/* ── header fit between the drawer breakpoint and a wide desktop ──
   Nav + CTA + search only just fit at 1440; tighten them so nothing overlaps. */
.hdr-in{gap:14px;}
.hdr-cta{flex:0 0 auto;}
@media (min-width:1221px) and (max-width:1560px){
  .menu a{padding:9px 9px;font-size:14px;}
  .menu{gap:0;}
  .hdr-cta .btn{padding:12px 18px;font-size:14px;}
  .search{flex:0 1 176px;min-width:132px;}
  .search input{font-size:13.5px;padding:9px 10px 9px 31px;}
  .mark-txt b{font-size:19px;}
}
@media (min-width:1221px) and (max-width:1340px){
  .menu a{padding:9px 7px;font-size:13.5px;}
  .search{flex:0 1 150px;min-width:120px;}
}

/* ════════════ CLIENT PORTAL — focused mode ════════════
   While the onboarding form is open the site header, utility bar and footer
   are hidden and the portal supplies its own slim chrome, so a client filling
   the form cannot wander off mid-way. */
body.portal-mode .util,
body.portal-mode .hdr,
body.portal-mode > footer{display:none!important;}
body.portal-mode{background:#F4F6FB;}

.pbar{position:sticky;top:0;z-index:70;background:var(--navy);color:#fff;}
.pbar-in{max-width:1140px;margin:0 auto;padding:13px 24px;display:flex;align-items:center;gap:18px;}
.pmark{flex:0 0 34px;width:34px;height:34px;border-radius:9px;background:var(--royal);color:#fff;
  display:grid;place-items:center;font-family:"Red Hat Display",sans-serif;font-weight:900;font-size:17px;}
.pbar-id b{display:block;font-family:"Red Hat Display",sans-serif;font-size:16px;font-weight:800;letter-spacing:-.02em;line-height:1.1;}
.pbar-id span{display:block;font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:#93A6D8;margin-top:2px;}
.pbar-ref{font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:#93A6D8;}
.pbar-ref b{display:block;font-size:13px;letter-spacing:.02em;text-transform:none;color:#fff;font-variant-numeric:tabular-nums;}
.pbar-prog{margin-left:auto;min-width:190px;}
.pbar-track{height:5px;border-radius:4px;background:rgba(255,255,255,.16);overflow:hidden;}
.pbar-track span{display:block;height:100%;width:10%;border-radius:4px;background:#7FA0F6;transition:width .3s ease;}
.pbar-prog em{display:block;font-style:normal;font-size:11.5px;color:#B7C6EE;margin-top:6px;text-align:right;}
.pbar .btn.o{color:#fff;border-color:rgba(255,255,255,.4);background:transparent;}
.pbar .btn.o:hover{background:rgba(255,255,255,.14);border-color:#fff;color:#fff;}

.pnav{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:60px;z-index:69;}
.pnav-in{max-width:1140px;margin:0 auto;padding:0 24px;display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;}
.pnav-in::-webkit-scrollbar{display:none;}
.pdot{flex:0 0 auto;display:flex;align-items:center;gap:8px;background:transparent;border:none;cursor:pointer;
  font-family:inherit;font-size:12.5px;font-weight:600;color:var(--muted);padding:13px 12px;
  border-bottom:2px solid transparent;white-space:nowrap;}
.pdot span{width:21px;height:21px;border-radius:50%;background:var(--line);color:var(--ink-2);
  display:grid;place-items:center;font-size:11px;font-weight:800;}
.pdot:hover{color:var(--royal);}
.pdot.done span{background:#2E7D32;color:#fff;}
.pdot.done::after{content:"";}
.pdot.on{color:var(--royal);border-bottom-color:var(--royal);}
.pdot.on span{background:var(--royal);color:#fff;}

.pbody{max-width:1140px;margin:0 auto;padding:34px 24px 60px;}
.pstep{background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px 30px 26px;box-shadow:var(--sh);}
.pstep-head{display:flex;align-items:flex-start;gap:14px;padding-bottom:18px;margin-bottom:22px;border-bottom:1px solid var(--line-2);}
.pstep-head i{flex:0 0 34px;width:34px;height:34px;border-radius:10px;background:var(--royal);color:#fff;
  font-style:normal;font-size:15px;font-weight:800;display:grid;place-items:center;}
.pstep-head h3{margin:0;font-family:"Red Hat Display",sans-serif;font-size:21px;font-weight:800;letter-spacing:-.02em;line-height:1.2;}
.pstep-head p{margin:5px 0 0;font-size:14px;color:var(--muted);line-height:1.55;}
.pstep-of{margin-left:auto;font-size:12px;font-weight:800;color:var(--line);
  font-family:"Red Hat Display",sans-serif;letter-spacing:.04em;flex:0 0 auto;}
.subhead{font-family:"Red Hat Display",sans-serif;font-size:12px;font-weight:800;letter-spacing:.13em;
  text-transform:uppercase;color:var(--royal);margin:26px 0 12px;padding-top:18px;border-top:1px solid var(--line-2);}
.subhead em{font-style:normal;text-transform:none;letter-spacing:0;color:var(--muted);font-weight:600;font-size:12.5px;}
.svcgrp{margin-bottom:18px;}
.svcgrp .kick{margin-bottom:9px;}

.phone{display:grid;grid-template-columns:190px 1fr;gap:10px;}
.phone select{font-family:inherit;font-size:14.5px;color:var(--ink);background:var(--pale);
  border:1.5px solid var(--line);border-radius:9px;padding:11px 10px;}
@media(max-width:520px){.phone{grid-template-columns:1fr;}}

.pmove{display:flex;align-items:center;gap:12px;margin-top:22px;}
.pmove .btn{min-width:150px;justify-content:center;}
.psave{font-size:12.5px;color:var(--muted);margin-left:auto;}

.review{display:grid;gap:16px;}
.rv{border:1px solid var(--line);border-radius:12px;overflow:hidden;}
.rv h4{margin:0;padding:12px 16px;background:var(--pale);font-family:"Red Hat Display",sans-serif;
  font-size:14px;font-weight:800;color:var(--head);display:flex;align-items:center;gap:12px;}
.rvedit{margin-left:auto;background:transparent;border:1.5px solid var(--line);border-radius:7px;
  padding:5px 12px;font-family:inherit;font-size:12px;font-weight:700;color:var(--royal);cursor:pointer;}
.rvedit:hover{background:#fff;border-color:var(--royal);}
.rv dl{margin:0;padding:6px 16px 14px;display:grid;grid-template-columns:210px 1fr;gap:0;}
.rv dt{font-size:12.5px;font-weight:700;color:var(--muted);padding:8px 12px 8px 0;border-bottom:1px solid var(--line-2);}
.rv dd{margin:0;font-size:13.5px;color:var(--ink);padding:8px 0;border-bottom:1px solid var(--line-2);word-break:break-word;}
.rv dl>*:nth-last-child(-n+2){border-bottom:none;}
@media(max-width:640px){.rv dl{grid-template-columns:1fr;}
  .rv dt{padding-bottom:0;border-bottom:none;}.rv dd{padding-top:2px;}}

.pfoot{background:var(--navy);color:#93A6D8;}
.pfoot-in{max-width:1140px;margin:0 auto;padding:20px 24px;display:flex;flex-wrap:wrap;gap:14px;
  align-items:center;justify-content:space-between;font-size:12.5px;line-height:1.6;}
.pfoot nav{display:flex;flex-wrap:wrap;gap:18px;}
.pfoot a{color:#B7C6EE;text-decoration:none;}
.pfoot a:hover{color:#fff;text-decoration:underline;}

@media(max-width:900px){
  .pbar-in{flex-wrap:wrap;gap:10px 12px;padding:11px 18px;}
  .pbar .btn{width:auto!important;flex:0 0 auto;margin-left:auto;padding:9px 16px;font-size:13px;}
  .pbar-id b{font-size:15px;}
  .pbar-ref{order:3;flex:0 0 auto;}
  .pbar-ref b{display:inline;margin-left:6px;}
  .pbar-prog{order:4;flex:1 1 100%;margin-left:0;min-width:0;}
  .pbar-prog em{text-align:left;}
  .pnav{top:auto;position:static;}
  .pbody{padding:22px 16px 46px;}
  .pstep{padding:22px 18px 20px;border-radius:14px;}
  .pstep-of{display:none;}
  .pmove{flex-wrap:wrap;}
  .pmove .btn{flex:1 1 140px;min-width:0;}
  .psave{flex:1 1 100%;margin-left:0;}
}
@media print{
  body.portal-mode .pbar,body.portal-mode .pnav,body.portal-mode .pmove,
  body.portal-mode .pfoot,body.portal-mode .pactions,body.portal-mode .rvedit{display:none!important;}
  body.portal-mode .pstep{break-inside:avoid;box-shadow:none;border:1px solid #ccc;margin-bottom:14px;}
  body.portal-mode .legalbox{max-height:none;overflow:visible;}
}
