:root{
  --c-brand:#010BAD;
  --c-brand-logo:#0051D5;
  --c-ink:#0B0D31;
  --c-ink-strong:#232627;
  --c-body:#3F444C;
  --c-muted:#666666;
  --c-eyebrow:#5F6567;
  --c-lav-1:#B2C7E7;
  --c-lav-2:#E4E3EF;
  --c-dark:#232627;
  --c-black:#000000;
  --c-ink-deep:#0B0D31;
  --c-border:#E6E7EB;
  --c-bg-soft:#F4F4F5;
  --c-dot:#DFE0FF;
  --maxw:1200px;
  --gutter:24px;
  font-family:'Plus Jakarta Sans',system-ui,sans-serif;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{color:var(--c-body);background:#fff;-webkit-font-smoothing:antialiased;}
a{text-decoration:none;color:inherit;}
img{max-width:100%;display:block;}
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter);}
.eyebrow{display:inline-block;white-space:nowrap;background:#EEEEEF;color:var(--c-eyebrow);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:6px 12px;border-radius:6px;}
.eyebrow.on-dark{background:rgba(255,255,255,.08);color:#C9CCD6;}
.btn{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:15px;border-radius:6px;padding:13px 26px;cursor:pointer;border:none;transition:background .15s,transform .15s,box-shadow .15s;line-height:1;}
.btn-primary{background:var(--c-brand);color:#fff;}
.btn-primary:hover{background:#000BAE;transform:translateY(-1px);}
.btn-ghost{background:#EEF1FA;color:var(--c-ink);}
.btn-ghost:hover{background:#E2E7F6;}
.arrow{display:inline-block;}

/* ---------- Ticker ---------- */
.ticker{background:var(--c-dark);color:#fff;font-size:13px;font-weight:600;height:48px;overflow:hidden;display:flex;align-items:center;}
.ticker-track{display:flex;gap:64px;white-space:nowrap;animation:ticker 28s linear infinite;}
.ticker:hover .ticker-track{animation-play-state:paused;}
.ticker-item{display:inline-flex;gap:8px;align-items:center;}
.ticker-item .lead{color:#5b9bff;font-style:italic;font-weight:700;}
.ticker-item .now{color:#5b9bff;font-style:italic;}
@keyframes ticker{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ---------- Canada-Wide ribbon (approved design; sits above the sticky header) ---------- */
.topribbon{display:flex;height:48px;color:#fff;font-size:14px;font-weight:600;overflow:hidden;}
.topribbon .tr-flag{background:#0B0D31;display:flex;align-items:center;gap:8px;padding:0 22px;font-weight:800;font-size:12px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;}
.topribbon .tr-flag .mp{font-size:15px;line-height:1;}
.topribbon .tr-body{flex:1;background:#0F0F0F;display:flex;align-items:center;justify-content:center;gap:14px;padding:0 16px;text-align:center;}
.topribbon .tr-body a{color:#fff;font-weight:800;text-decoration:underline;text-underline-offset:3px;white-space:nowrap;}
.topribbon .tr-body a:hover{opacity:.85;}
@media(max-width:640px){.topribbon{flex-direction:column;height:auto;}.topribbon .tr-flag{justify-content:center;padding:7px 0;}.topribbon .tr-body{padding:8px 14px;font-size:13px;gap:8px;}}

/* ---------- Header ---------- */
header.site{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--c-border);}
.nav{display:flex;align-items:center;gap:32px;height:92px;}
.logo{line-height:1;}
.logo .name{font-size:26px;font-weight:800;color:var(--c-brand-logo);letter-spacing:-.01em;white-space:nowrap;}
.logo .sub{font-size:12.5px;font-weight:700;color:var(--c-ink);margin-top:2px;white-space:nowrap;}
.vrule{width:1px;height:46px;background:var(--c-border);}
.mainnav{display:flex;gap:30px;align-items:center;}
.mainnav a{font-size:16px;font-weight:500;color:var(--c-ink-strong);}
.mainnav a.active{color:var(--c-brand);}
.mainnav a:hover{color:var(--c-brand);}
.caret{font-size:11px;opacity:.6;margin-left:3px;}
.header-right{margin-left:auto;display:flex;align-items:center;gap:20px;}
.support-col{display:flex;flex-direction:column;align-items:flex-end;gap:4px;}
.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--c-border);border-radius:16px;padding:5px 13px;font-size:13px;font-weight:500;color:var(--c-ink-strong);}
.phone{font-size:14px;color:var(--c-ink-strong);font-weight:500;}
.header-login{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--c-ink-strong);padding:8px 12px;border-radius:9px;border:1px solid var(--c-border);transition:border-color .15s,color .15s,background .15s;}
.header-login:hover{color:var(--c-brand);border-color:var(--c-brand);background:var(--c-bg-soft);}
.header-login svg{width:16px;height:16px;}
/* Owner-approved header-right refinement (desktop cluster, shown >=1120px):
   inline click-to-call phone + hairline divider + quiet-text Broker Login.
   Additive only — the base .header-login/.support-col rules above are untouched
   so the responsive hide rules (<=1119px) still catch the cluster. The
   .support-col markup was removed from the header in trucap.js. */
.header-phone{display:inline-flex;align-items:center;gap:8px;font-size:14.5px;font-weight:600;color:var(--c-ink-strong);white-space:nowrap;}
.header-phone svg{width:16px;height:16px;color:var(--c-brand);flex:0 0 auto;}
.header-phone:hover{color:var(--c-brand);}
.header-div{width:1px;height:22px;background:var(--c-border);flex:0 0 auto;}
.header-login--quiet{border:none;background:none;padding:0;border-radius:0;font-size:14.5px;font-weight:600;color:var(--c-muted);white-space:nowrap;}
.header-login--quiet:hover{color:var(--c-brand);border-color:transparent;background:none;}
/* Keep the header CTA on one line (it wrapped to "Contact / Us" in the tighter
   cluster — and in the delivered layout too). Scoped to .header-right .btn so no
   other button anywhere is affected. */
.header-right .btn{white-space:nowrap;}
.burger{display:none;flex-direction:column;gap:5px;cursor:pointer;}
.burger span{width:24px;height:2px;background:var(--c-ink-strong);}
/* #37 — Header right-side rhythm (>=1120px, where the full desktop cluster is
   shown; <=1119px incl. mobile is unchanged).
   Owner-approved header refinement: the cluster is now [inline phone · divider ·
   quiet Broker Login · Contact Us]. That composition is ~47px wider than the
   original stacked-support-col layout, which would push the Contact Us CTA ~46px
   right and overflow the header's content inset. To keep the CTA (and nav/logo)
   PIXEL-IDENTICAL to the delivered design, the inter-item gap is tightened
   24px -> 8px, restoring the cluster to its original 399px width / right edge.
   The divider supplies the visual separation the wider gap used to. */
@media (min-width:1120px){
  .header-right{gap:8px;}
  .header-right .support-col{margin-right:8px;}
}

/* ---------- Hero ---------- */
.hero{padding:64px 0 56px;}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
.hero h1{font-size:56px;line-height:1.04;letter-spacing:-.02em;font-weight:800;color:var(--c-ink);margin:0 0 22px;text-wrap:balance;}
.hero .lead{font-size:18px;line-height:1.5;color:var(--c-ink-strong);margin:0 0 28px;max-width:30ch;}
.hero-cta{display:flex;gap:14px;}
.ph{position:relative;background:repeating-linear-gradient(45deg,#dfe5ef 0 12px,#e9edf4 12px 24px);border-radius:12px;display:flex;align-items:center;justify-content:center;color:#8a93a3;font:600 13px/1.4 ui-monospace,Menlo,monospace;text-align:center;overflow:hidden;}
.hero .ph{aspect-ratio:16/11;}
.badge-trust{display:inline-flex;align-items:center;gap:10px;margin-top:22px;flex-wrap:wrap;}

/* ---------- What We Do band ---------- */
.band{background:var(--c-dark);color:#fff;}
.band-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:32px;align-items:center;padding:64px var(--gutter) 150px;}
.band h2{font-size:40px;line-height:1.1;font-weight:800;margin:18px 0 0;letter-spacing:-.01em;text-wrap:balance;}
.triangle{position:relative;height:160px;}
.band-copy{align-self:center;}
.band-copy p{font-size:17px;line-height:1.65;color:#c4c8d6;margin:0 0 20px;max-width:42ch;}
.band-trust{display:flex;flex-wrap:wrap;align-items:center;font-size:14px;font-weight:600;color:#e8eaf2;}
.band-trust span{display:inline-flex;align-items:center;white-space:nowrap;}
.band-trust span:not(:last-child)::after{content:"·";margin:0 14px;color:#56608a;}
@media (max-width:560px){
  .band-trust{flex-direction:column;align-items:flex-start;gap:10px;}
  .band-trust span:not(:last-child)::after{display:none;}
}

/* ---------- Features ---------- */
/* ---------- Features (elevated cards overlapping the dark band) ---------- */
.features{padding:0 0 78px;}
.feat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:-108px;position:relative;z-index:3;align-items:stretch;}
.feat{background:#fff;border:1px solid var(--c-border);border-radius:16px;padding:30px 26px;box-shadow:0 14px 36px rgba(11,13,49,.10);display:flex;flex-direction:column;height:100%;transition:box-shadow .22s cubic-bezier(.16,.84,.44,1),transform .22s cubic-bezier(.16,.84,.44,1),border-color .22s;}
.feat:hover{box-shadow:0 26px 54px rgba(11,13,49,.15);transform:translateY(-5px);border-color:rgba(1,14,208,.14);}
.feat-ic{width:52px;height:52px;border-radius:14px;background:linear-gradient(150deg,#EEF2FE,#E1E8FF);display:flex;align-items:center;justify-content:center;margin-bottom:20px;color:var(--c-brand);transition:transform .22s;}
.feat-ic svg{width:26px;height:26px;}
.feat:hover .feat-ic{transform:translateY(-2px) scale(1.04);}
.feat h4{font-size:18px;font-weight:700;color:var(--c-ink-strong);margin:0 0 12px;letter-spacing:-.005em;}
.feat p{font-size:14.5px;line-height:1.6;color:var(--c-muted);margin:0;flex:1;}
.feat-foot{display:flex;justify-content:center;margin-top:40px;}
.feat-foot .arrow{transition:transform .15s;}
.feat-foot .btn:hover .arrow{transform:translateX(3px);}
.feat-link{display:inline-block;margin-top:28px;color:var(--c-brand);font-weight:600;font-size:14px;}

/* ---------- Solutions ---------- */
.solutions{background:linear-gradient(180deg,var(--c-lav-1) 0%,var(--c-lav-2) 100%);padding:64px 0 80px;}
.solutions h2{font-size:42px;font-weight:800;color:var(--c-ink);margin:18px 0 40px;letter-spacing:-.01em;}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.card{background:#fff;color:inherit;border:1px solid rgba(255,255,255,.6);border-radius:10px;display:flex;flex-direction:column;box-shadow:0 1px 2px rgba(11,13,49,.04);transition:box-shadow .18s,transform .18s;overflow:hidden;position:relative;}
.card:hover{box-shadow:0 18px 40px rgba(11,13,49,.16);transform:translateY(-4px);}
.card.featured{box-shadow:0 18px 40px rgba(11,13,49,.16);}
.card-body{padding:28px 26px 22px;flex:1;}
.card .icon{width:52px;height:52px;margin-bottom:22px;}
.card h3{font-size:23px;font-weight:700;color:var(--c-ink-strong);margin:0 0 14px;line-height:1.2;letter-spacing:-.005em;}
.card.featured h3{color:var(--c-brand);}
.card p{font-size:14.5px;line-height:1.55;color:var(--c-body);margin:0;}
.card-foot{border-top:1px solid var(--c-border);padding:18px 26px;}
.learn{color:var(--c-brand);font-weight:600;font-size:14.5px;display:inline-flex;gap:7px;align-items:center;}
.card:hover .learn .arrow{transform:translateX(3px);}
.learn .arrow{transition:transform .15s;}
.ribbon{position:absolute;top:0;right:0;width:120px;height:120px;overflow:hidden;z-index:2;}
.ribbon span{position:absolute;top:24px;right:-34px;transform:rotate(45deg);background:#000;color:#fff;font-size:11px;font-weight:700;letter-spacing:.04em;padding:6px 40px;text-align:center;}
.sol-cta{display:flex;justify-content:center;margin-top:44px;}
/* Services CTA — two buttons (View All Services + Contact us). Additive only:
   overrides apply within .sol-cta via later source order / higher specificity;
   the existing .sol-cta and .btn-outline rules above are not modified. */
.sol-cta{gap:14px;flex-wrap:wrap;}
.sol-cta .btn{padding:14px 30px;}
.sol-cta .btn-outline{background:#EEF1FA;border:none;color:var(--c-ink);}
.sol-cta .btn-outline:hover{background:#EEF1FA;color:var(--c-ink);}

/* ---------- Industries ---------- */
.industries{padding:72px 0;text-align:center;}
.industries h2{font-size:36px;font-weight:800;color:var(--c-ink);margin:18px auto 36px;max-width:18ch;line-height:1.15;letter-spacing:-.01em;}
.pills{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;max-width:780px;margin:0 auto;}
.pill{display:inline-flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--c-border);border-radius:999px;padding:7px 18px 7px 7px;font-size:14px;font-weight:500;color:var(--c-ink-strong);box-shadow:0 1px 3px rgba(11,13,49,.05);}
.pill .thumb{width:34px;height:34px;border-radius:999px;flex:0 0 34px;overflow:hidden;}
.industries .more{display:inline-block;margin-top:28px;color:var(--c-brand);font-weight:600;font-size:14px;}

/* ---------- Testimonial ---------- */
.testi{position:relative;padding:80px 0;overflow:hidden;}
.map-bg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:.5;pointer-events:none;}
.map-bg svg{width:min(1100px,95%);height:auto;}
.testi-inner{position:relative;max-width:680px;margin:0 auto;text-align:center;}
.testi blockquote{font-size:21px;line-height:1.5;color:var(--c-ink);font-weight:500;margin:0 0 26px;}
.testi blockquote .hl{font-weight:700;}
.testi .who{font-size:14px;font-weight:700;color:var(--c-ink-strong);}
.testi .role{font-size:13px;color:var(--c-muted);margin-top:3px;}
.testi-foot{display:flex;align-items:center;justify-content:space-between;max-width:680px;margin:34px auto 0;}
.arrows{display:flex;gap:12px;}
.arrows button{width:44px;height:44px;border-radius:50%;border:1px solid var(--c-border);background:#fff;color:var(--c-ink-strong);cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;}
.arrows button:hover{background:var(--c-bg-soft);}

/* ---------- Contact (homepage split) ---------- */
.contact{padding:80px 0;}
.contact-grid{display:grid;grid-template-columns:1.05fr .95fr;align-items:stretch;border-radius:14px;overflow:hidden;box-shadow:0 24px 60px rgba(11,13,49,.12);}
.contact-left{background:var(--c-ink-deep);color:#fff;padding:52px 48px;}
.contact-left h2{font-size:34px;font-weight:800;line-height:1.12;margin:16px 0 18px;letter-spacing:-.01em;}
.contact-left p.copy{font-size:15px;line-height:1.6;color:#C9CCD6;max-width:36ch;}
.contact-left .callus{font-size:16px;font-weight:700;margin:26px 0 22px;}
.benefits-title{font-size:15px;font-weight:700;margin-bottom:14px;}
.benefits{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px;}
.benefit{display:flex;align-items:center;gap:10px;font-size:14px;color:#E4E6EE;}
.check{width:20px;height:20px;border-radius:50%;background:#1E9E5A;display:flex;align-items:center;justify-content:center;flex:0 0 20px;}
.check svg{width:11px;height:11px;}
.next-title{font-size:15px;font-weight:700;margin:30px 0 16px;}
.steps{display:flex;gap:26px;}
.step{display:flex;gap:12px;align-items:flex-start;max-width:150px;}
.step .num{width:30px;height:30px;border-radius:50%;background:var(--c-brand);color:#fff;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center;flex:0 0 30px;}
.step p{font-size:13px;line-height:1.4;color:#C9CCD6;margin:0;}
.contact-right{background:#fff;padding:40px 38px;}
.form-head{display:flex;align-items:center;gap:10px;justify-content:center;margin-bottom:24px;}
.form-head h3{font-size:20px;font-weight:700;color:var(--c-ink);margin:0;}
.field{margin-bottom:16px;}
.field label{display:block;font-size:13px;font-weight:600;color:var(--c-ink-strong);margin-bottom:6px;}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--c-border);border-radius:7px;padding:11px 13px;font:inherit;font-size:14px;color:var(--c-ink-strong);background:#fff;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--c-brand);box-shadow:0 0 0 3px rgba(1,14,208,.12);}
.field textarea{resize:vertical;min-height:90px;}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px;}

/* ---------- Manufacturers ---------- */
.makers{padding:72px 0;}
.makers-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:48px;align-items:center;}
.makers h2{font-size:34px;font-weight:800;color:var(--c-ink);line-height:1.15;margin:14px 0 16px;letter-spacing:-.01em;}
.makers p{font-size:15px;line-height:1.6;color:var(--c-muted);margin:0;}
.logo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.logo-cell{background:#fff;border:1px solid var(--c-border);border-radius:10px;height:132px;display:flex;align-items:center;justify-content:center;padding:18px;box-shadow:0 2px 12px rgba(11,13,49,.05);}
.logo-cell image-slot{--ph-bg:#fff;}
/* Makers/manufacturer logo cells: once a logo IS uploaded ([data-filled]), drop
   the image-slot's gray frame fill so a transparent PNG/WebP logo blends onto the
   white .logo-cell. The dashed ring already hides when filled, the image is
   fit="contain" (aspect-preserved), and framePad is 0 — so no wrapper padding to
   remove. Empty cells keep their gray/dashed upload placeholder. Scoped to
   .logo-cell only; no other image slots on the site are touched. */
.logo-cell image-slot[data-filled]::part(frame){background:transparent;}
.hero-img{width:100%;height:100%;min-height:340px;border-radius:16px;overflow:hidden;box-shadow:0 30px 70px rgba(11,13,49,.18);transition:transform .35s cubic-bezier(.16,.84,.44,1),box-shadow .35s;}
.hero-img:hover{transform:translateY(-4px);box-shadow:0 40px 84px rgba(11,13,49,.24);}

/* ---------- Inner-page header ---------- */
.page-head{padding:60px 0 52px;text-align:center;}
.page-head h1{font-size:62px;line-height:1.04;font-weight:800;color:var(--c-ink);letter-spacing:-.02em;margin:0 0 16px;text-wrap:balance;}
.page-head p.sub{font-size:17px;line-height:1.6;color:var(--c-muted);max-width:60ch;margin:0 auto;}

/* ---------- Premium inner-page hero (breadcrumb header) ---------- */
.page-hero{position:relative;overflow:hidden;background:linear-gradient(180deg,#f3f5fb 0%,#eef1f9 100%);border-bottom:1px solid var(--c-border);}
.page-hero::before{content:"";position:absolute;inset:0;background:
  radial-gradient(620px 320px at 88% -10%, rgba(1,14,208,.10), transparent 60%),
  radial-gradient(520px 300px at 6% 120%, rgba(1,14,208,.07), transparent 60%);
  pointer-events:none;}
.page-hero .ph-dots{position:absolute;top:-30px;right:-20px;width:240px;height:200px;opacity:.5;pointer-events:none;}
.page-hero .wrap{position:relative;z-index:2;padding:30px 24px 56px;text-align:center;}
.ph-crumbs{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center;font-size:13px;font-weight:600;background:#fff;border:1px solid var(--c-border);border-radius:999px;padding:7px 16px;box-shadow:0 2px 10px rgba(11,13,49,.05);margin-bottom:24px;}
.ph-crumbs a{color:var(--c-muted);transition:color .14s;}
.ph-crumbs a:hover{color:var(--c-brand);}
.ph-crumbs .sep{color:var(--c-border);}
.ph-crumbs .cur{color:var(--c-brand);}
.page-hero .eyebrow{margin-bottom:14px;}
.page-hero h1{font-size:clamp(34px,5vw,58px);line-height:1.04;font-weight:800;color:var(--c-ink);letter-spacing:-.02em;margin:0 auto 16px;max-width:18ch;text-wrap:balance;}
.page-hero p.sub{font-size:clamp(16px,1.9vw,18px);line-height:1.6;color:var(--c-muted);max-width:62ch;margin:0 auto;}
.page-hero .ph-cta{margin-top:28px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.page-hero .ph-stats{display:flex;gap:30px;justify-content:center;flex-wrap:wrap;margin-top:32px;}
.ph-stat{display:flex;flex-direction:column;align-items:center;}
.ph-stat .n{font-size:clamp(24px,3vw,32px);font-weight:800;color:var(--c-brand);letter-spacing:-.01em;line-height:1;}
.ph-stat .l{font-size:12.5px;color:var(--c-muted);font-weight:600;margin-top:6px;text-transform:uppercase;letter-spacing:.04em;}
@media (max-width:560px){
  .page-hero .wrap{padding:24px 22px 44px;}
  .page-hero .ph-stats{gap:22px;}
}

/* Brand (blue gradient) variant — matches FAQ hero */
.page-hero.brand{background:linear-gradient(120deg,#04114f 0%,#0a1fd0 60%,#1b34e6 100%);border-bottom:none;}
.page-hero.brand::before{background:
  radial-gradient(620px 340px at 88% -10%, rgba(255,255,255,.12), transparent 60%),
  radial-gradient(520px 300px at 6% 120%, rgba(255,255,255,.07), transparent 60%);}
.page-hero.brand .wrap{padding:46px 24px 60px;}
.page-hero.brand .ph-dots{opacity:.22;}
.page-hero.brand .ph-crumbs{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.2);box-shadow:none;backdrop-filter:blur(4px);}
.page-hero.brand .ph-crumbs a{color:rgba(255,255,255,.75);}
.page-hero.brand .ph-crumbs a:hover{color:#fff;}
.page-hero.brand .ph-crumbs .sep{color:rgba(255,255,255,.35);}
.page-hero.brand .ph-crumbs .cur{color:#fff;}
.page-hero.brand .eyebrow{background:rgba(255,255,255,.14);color:#dfe5ff;}
.page-hero.brand h1{color:#fff;}
.page-hero.brand p.sub{color:rgba(255,255,255,.86);}
.page-hero.brand .ph-stat .n{color:#fff;}
.page-hero.brand .ph-stat .l{color:rgba(255,255,255,.72);}
.page-hero.brand .btn-outline{border-color:rgba(255,255,255,.4);color:#fff;}
.page-hero.brand .btn-outline:hover{border-color:#fff;background:rgba(255,255,255,.1);}

/* ---------- About: gradient hero ---------- */
.about-hero{background:linear-gradient(105deg,#020a9e 0%,#0a1fd0 58%,#1b34e6 100%);color:#fff;text-align:center;padding:64px 0;}
.about-hero h1{font-size:60px;font-weight:800;letter-spacing:-.02em;margin:0 0 14px;line-height:1.04;text-wrap:balance;}
.about-hero .sub{font-size:16px;line-height:1.6;color:rgba(255,255,255,.82);max-width:96ch;margin:0 auto;}

/* ---------- About: intro (map + acrostic) ---------- */
.about-intro{padding:64px 0;}
.about-intro-grid{display:grid;grid-template-columns:1fr 1.12fr;gap:56px;align-items:start;}
.about-map{position:relative;border-radius:10px;overflow:hidden;min-height:390px;background:#EDEFF2;}
.about-map image-slot{width:100%;height:100%;min-height:390px;--ph-bg:#EDEFF2;}
.about-map-wm{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none;color:rgba(255,255,255,.94);text-shadow:0 2px 16px rgba(0,0,0,.2);}
.about-map-wm .brand-name{font-size:40px;font-weight:800;letter-spacing:-.01em;}
.about-map-wm .brand-sub{font-size:19px;font-weight:700;margin-top:4px;}
.acrostic{display:flex;flex-direction:column;gap:24px;}
.acrostic-item{display:flex;gap:14px;}
.acrostic-item .cap{font-size:30px;font-weight:800;color:var(--c-ink);line-height:1.05;flex:0 0 auto;}
.acrostic-item p{font-size:15px;line-height:1.62;color:var(--c-body);margin:0;}
.acrostic-item p b{color:var(--c-ink-strong);}
.industries-serve{text-align:center;margin-top:48px;}
.industries-serve h3{font-size:21px;font-weight:700;color:var(--c-ink-strong);margin:0 0 16px;}
.industries-serve p{font-size:16px;color:var(--c-body);max-width:62ch;margin:0 auto;line-height:1.9;}

/* ---------- About: approach ---------- */
.approach{padding:48px 0 84px;}
.approach-head{text-align:center;max-width:60ch;margin:0 auto 44px;}
.approach-head h2{font-size:clamp(28px,3.4vw,40px);font-weight:800;color:var(--c-ink);letter-spacing:-.01em;margin:14px 0 0;line-height:1.12;text-wrap:balance;}
.approach-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:none;margin:0;}
.approach-item{background:#fff;border:1px solid var(--c-border);border-radius:16px;padding:34px 30px;box-shadow:0 8px 28px rgba(11,13,49,.06);display:flex;flex-direction:column;height:100%;transition:box-shadow .22s cubic-bezier(.16,.84,.44,1),transform .22s cubic-bezier(.16,.84,.44,1),border-color .22s;}
.approach-item:hover{box-shadow:0 22px 48px rgba(11,13,49,.12);transform:translateY(-5px);border-color:rgba(1,14,208,.14);}
.ac-ic{width:54px;height:54px;border-radius:15px;background:linear-gradient(150deg,#EEF2FE,#E1E8FF);display:flex;align-items:center;justify-content:center;color:var(--c-brand);margin-bottom:22px;transition:transform .22s;}
.ac-ic svg{width:27px;height:27px;}
.approach-item:hover .ac-ic{transform:translateY(-2px) scale(1.04);}
.approach-item h3{font-size:21px;font-weight:800;color:var(--c-ink);margin:0 0 12px;letter-spacing:-.01em;}
.approach-item p{font-size:14.5px;line-height:1.65;color:var(--c-body);margin:0;max-width:none;}

/* ---------- Contact page: help ---------- */
.contact-help{padding:54px 0 84px;text-align:center;}
.help-row{display:inline-flex;align-items:center;gap:44px;}
.help-col .lbl{font-size:16px;color:var(--c-ink-strong);font-weight:500;margin-bottom:8px;}
.help-col .val{font-size:16px;color:var(--c-ink);font-weight:700;}
.help-div{color:#C9CCD2;font-size:30px;font-weight:200;}
.help-cta{margin-top:38px;}

/* ---------- FAQ ---------- */
.faq{padding:6px 0 70px;}
.faq-panel{background:var(--c-bg-soft);border-radius:14px;padding:10px 40px;max-width:1180px;margin:0 auto;}
.faq-item{border-bottom:1px solid #E2E2E4;}
.faq-item:last-child{border-bottom:none;}
.faq-q{display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;padding:30px 2px;font-size:21px;font-weight:700;color:var(--c-ink-strong);list-style:none;}
.faq-q::-webkit-details-marker{display:none;}
.faq-chev{flex:0 0 auto;transition:transform .25s;color:var(--c-ink-strong);display:flex;}
.faq-item[open] .faq-chev{transform:rotate(180deg);}
.faq-a{font-size:15px;line-height:1.65;color:var(--c-body);padding:0 2px 30px;max-width:90ch;margin:0;}

/* ---------- FAQ page (premium, interactive) ---------- */
.faq-hero{background:linear-gradient(120deg,#04114f 0%,#0a1fd0 60%,#1b34e6 100%);color:#fff;position:relative;overflow:hidden;}
.faq-hero .wrap{padding:56px 24px 60px;text-align:center;position:relative;z-index:2;}
.faq-hero .eyebrow{background:rgba(255,255,255,.14);color:#dfe5ff;}
.faq-hero h1{font-size:clamp(32px,4.4vw,52px);font-weight:800;letter-spacing:-.02em;margin:16px 0 14px;line-height:1.05;text-wrap:balance;}
.faq-hero p.sub{font-size:clamp(16px,1.9vw,18px);color:rgba(255,255,255,.86);max-width:58ch;margin:0 auto 30px;line-height:1.6;}
.faq-search{position:relative;max-width:560px;margin:0 auto;}
.faq-search input{width:100%;padding:16px 18px 16px 52px;border-radius:14px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.10);color:#fff;font:inherit;font-size:16px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:border-color .15s,background .15s;}
.faq-search input::placeholder{color:rgba(255,255,255,.62);}
.faq-search input:focus{outline:none;border-color:#fff;background:rgba(255,255,255,.16);}
.faq-search .fs-ic{position:absolute;left:18px;top:50%;transform:translateY(-50%);color:rgba(255,255,255,.72);width:20px;height:20px;display:flex;}
.faq-body{padding:40px 0 20px;}
.faq-chips{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:14px;}
.faq-chip{padding:9px 18px;border-radius:999px;border:1px solid var(--c-border);background:#fff;font:inherit;font-size:14px;font-weight:600;color:var(--c-ink-strong);cursor:pointer;transition:.15s;}
.faq-chip:hover{border-color:var(--c-brand);color:var(--c-brand);}
.faq-chip.active{background:var(--c-brand);border-color:var(--c-brand);color:#fff;}
.faq-cat{max-width:860px;margin:0 auto;}
.faq-cat-head{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--c-brand);margin:34px 6px 14px;}
.faq-cat.hide{display:none;}
.faq-list{display:flex;flex-direction:column;gap:12px;}
.faq-list .qa{background:#fff;border:1px solid var(--c-border);border-radius:14px;transition:box-shadow .2s,border-color .2s;overflow:hidden;}
.faq-list .qa.hide{display:none;}
.faq-list .qa[open]{border-color:rgba(1,14,208,.28);box-shadow:0 14px 34px rgba(11,13,49,.09);}
.faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:18px;cursor:pointer;list-style:none;padding:20px 22px;font-size:16.5px;font-weight:700;color:var(--c-ink-strong);}
.faq-list summary::-webkit-details-marker{display:none;}
.faq-list .qa[open] summary{color:var(--c-brand);}
.faq-list .qicon{flex:0 0 26px;width:26px;height:26px;border-radius:50%;background:#EEF2FE;display:flex;align-items:center;justify-content:center;position:relative;transition:background .2s;}
.faq-list .qicon::before,.faq-list .qicon::after{content:"";position:absolute;background:var(--c-brand);border-radius:2px;transition:transform .25s,opacity .25s,background .2s;}
.faq-list .qicon::before{width:11px;height:2px;}
.faq-list .qicon::after{width:2px;height:11px;}
.faq-list .qa[open] .qicon{background:var(--c-brand);}
.faq-list .qa[open] .qicon::before,.faq-list .qa[open] .qicon::after{background:#fff;}
.faq-list .qa[open] .qicon::after{transform:rotate(90deg);opacity:0;}
.faq-list .ans{padding:0 22px 22px;font-size:15px;line-height:1.72;color:var(--c-body);max-width:74ch;margin:0;}
.faq-noresult{max-width:860px;margin:30px auto;text-align:center;color:var(--c-muted);font-size:16px;display:none;}
.faq-noresult.show{display:block;}
@media (max-width:560px){
  .faq-list summary{font-size:15px;padding:17px 18px;gap:12px;}
  .faq-chips{gap:8px;}
  .faq-chip{padding:8px 14px;font-size:13px;}
}

/* ---------- Scroll reveal (opacity always 1; subtle slide only, never hides) ---------- */
.reveal{}
@keyframes tcReveal{from{transform:translateY(16px);}to{transform:translateY(0);}}
@media (prefers-reduced-motion:no-preference){
  .reveal.in{animation:tcReveal .6s cubic-bezier(.16,.84,.44,1) both;}
}

/* ---------- Footer ---------- */
footer.site{background:#000;color:#fff;position:relative;overflow:hidden;}
/* Delivered .fcol grid footer — extended to 6 tracks (brand + Services · Service Areas ·
   Company · Explore · Resources). */
.footer-dots{position:absolute;top:0;left:0;width:34%;height:78%;z-index:1;opacity:.28;pointer-events:none;}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1.1fr .8fr .8fr .8fr;gap:36px 40px;max-width:1400px;margin:0 auto;padding:52px var(--gutter);position:relative;z-index:2;align-items:start;}
.fcol-head{font-size:14px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#fff;margin:0 0 16px;}
.fcol .footer-links + .fcol-head{margin-top:26px;}
.footer-links{display:flex;flex-direction:column;gap:9px;}
.footer-links-2{display:grid;grid-template-columns:1fr 1fr;gap:9px 22px;}
.footer-links a{font-size:14px;color:#9BA0A6;line-height:1.3;}
.footer-links a:hover{color:#fff;}
.footer-allareas{display:inline-block;margin-top:16px;font-size:13px;font-weight:600;color:#8f95ff;}
.footer-allareas:hover{color:#fff;}
.news{margin-top:22px;width:100%;text-align:left;}
.news input{width:100%;background:transparent;border:1px solid #333;border-radius:7px;padding:13px 15px;color:#fff;font:inherit;font-size:14px;}
.news input::placeholder{color:#7a7f86;}
.consent{display:flex;gap:10px;align-items:flex-start;margin:14px 0 18px;}
.consent input{margin-top:3px;}
.consent label{font-size:12px;line-height:1.45;color:#7a7f86;}
.news .btn{margin-top:2px;}
.footer-brand{position:relative;}
.footer-brand-inner{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;}
.footer-brand-inner::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:340px;height:220px;z-index:-1;pointer-events:none;background-image:radial-gradient(#DFE0FF 1.6px,transparent 1.7px);background-size:18px 18px;opacity:.18;-webkit-mask-image:radial-gradient(ellipse 55% 55% at 50% 50%,#000 30%,transparent 72%);mask-image:radial-gradient(ellipse 55% 55% at 50% 50%,#000 30%,transparent 72%);}
.footer-brand .brand-name{font-size:38px;font-weight:800;letter-spacing:-.015em;line-height:1;}
.footer-brand .brand-sub{font-size:15px;font-weight:700;margin-top:5px;color:#e8eaf2;}
.footer-brand .brand-tag{font-size:13.5px;line-height:1.55;color:#9aa0b5;max-width:30ch;margin:12px 0 20px;}
.footer-brand .btn{margin-top:0;box-shadow:0 12px 30px rgba(1,14,208,.4);}

.bottom{background:#fff;color:var(--c-ink-strong);border-top:1px solid var(--c-border);}
.bottom-row{display:flex;align-items:center;justify-content:center;gap:16px 30px;padding:26px var(--gutter);flex-wrap:wrap;}
@media (min-width:1025px){.bottom-row{justify-content:space-between;}}
.bsep{width:1px;height:34px;background:var(--c-border);}
.reviews{display:flex;align-items:center;gap:10px;}
.reviews .g{width:34px;height:34px;}
.reviews .score{font-weight:700;font-size:14px;}
.stars{color:#F5A623;font-size:13px;letter-spacing:1px;}
.reviews .lbl{font-size:11px;font-weight:600;letter-spacing:.06em;color:var(--c-muted);text-transform:uppercase;}
.binfo{font-size:13px;color:var(--c-ink-strong);line-height:1.5;}
.socials{display:flex;align-items:center;gap:26px;}
.social{display:flex;flex-direction:column;align-items:center;gap:5px;font-size:12px;color:var(--c-ink-strong);font-weight:500;transition:color .15s,transform .15s;}
.social .sicon{display:flex;color:var(--c-ink);transition:color .15s;}
.social .sicon svg{width:20px;height:20px;}
.social:hover{color:var(--c-brand);transform:translateY(-2px);}
.social:hover .sicon{color:var(--c-brand);}
.copyright{text-align:center;font-size:13px;color:var(--c-muted);padding:0 0 26px;display:flex;gap:24px;justify-content:center;flex-wrap:wrap;}
.copyright a:hover{color:var(--c-ink);}

/* ---------- TruCapital AI chatbot ---------- */
.tcbot-rail{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:90;display:flex;flex-direction:column;gap:8px;align-items:flex-end;}
.tcbot-fab{position:relative;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:7px;width:44px;padding:20px 0;border:none;border-radius:12px 0 0 12px;background:linear-gradient(160deg,#0a1fd0,#020a9e);color:#fff;font:inherit;font-size:12.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;writing-mode:vertical-rl;cursor:pointer;box-shadow:-6px 0 20px rgba(1,14,208,.34);transition:width .2s,box-shadow .2s;}
.tcbot-fab:hover{width:50px;box-shadow:-8px 0 26px rgba(1,14,208,.46);}
.tcbot-call{position:relative;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:7px;width:44px;padding:20px 0;border-radius:12px 0 0 12px;background:var(--c-ink-strong);color:#fff;font-size:12.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;writing-mode:vertical-rl;text-decoration:none;box-shadow:-6px 0 20px rgba(11,13,49,.3);transition:width .2s,box-shadow .2s;}
.tcbot-call:hover{width:50px;color:#fff;box-shadow:-8px 0 26px rgba(11,13,49,.42);}
.tcbot-call-ic{display:flex;width:17px;height:17px;writing-mode:horizontal-tb;}
.tcbot-call-ic svg{width:17px;height:17px;}
.tcbot-fab-ic{display:flex;width:18px;height:18px;color:#fff;writing-mode:horizontal-tb;animation:tcbotPulse 2.6s ease-in-out infinite;}
.tcbot-fab-ic svg{width:18px;height:18px;}
@keyframes tcbotPulse{0%,100%{transform:scale(1);}50%{transform:scale(1.12);}}
.tcbot-dot{position:absolute;top:9px;left:50%;transform:translateX(-50%);width:8px;height:8px;border-radius:50%;background:#3fd07a;box-shadow:0 0 0 3px rgba(63,208,122,.3);}
.tcbot-tip{position:absolute;right:calc(100% + 10px);top:50%;transform:translateY(-50%) translateX(6px);writing-mode:horizontal-tb;white-space:nowrap;background:var(--c-ink);color:#fff;font-size:12.5px;font-weight:600;letter-spacing:0;text-transform:none;padding:8px 13px;border-radius:8px;opacity:0;visibility:hidden;transition:opacity .18s,transform .18s;pointer-events:none;}
.tcbot-tip::after{content:"";position:absolute;left:100%;top:50%;transform:translateY(-50%);border:6px solid transparent;border-left-color:var(--c-ink);}
.tcbot-fab:hover .tcbot-tip{opacity:1;visibility:visible;transform:translateY(-50%) translateX(0);}
.tcbot-fab.open .tcbot-tip{display:none;}

.tcbot-scrim{position:fixed;inset:0;z-index:95;background:rgba(8,10,30,.45);}
.tcbot-panel{position:fixed;left:22px;bottom:22px;z-index:96;width:392px;max-width:calc(100vw - 44px);height:600px;max-height:calc(100vh - 44px);background:#fff;border:1px solid var(--c-border);border-radius:20px;box-shadow:0 30px 80px rgba(11,13,49,.32);display:flex;flex-direction:column;overflow:hidden;animation:tcbotIn .26s cubic-bezier(.16,.84,.44,1) both;}
.tcbot-panel[hidden],.tcbot-scrim[hidden]{display:none !important;}
@keyframes tcbotIn{from{opacity:0;transform:translateY(16px) scale(.98);}to{opacity:1;transform:none;}}
.tcbot-head{background:linear-gradient(135deg,#04114f,#0a1fd0);color:#fff;padding:18px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;}
.tcbot-head-id{display:flex;align-items:center;gap:12px;}
.tcbot-avatar{width:42px;height:42px;flex:0 0 42px;border-radius:12px;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;color:#fff;}
.tcbot-avatar svg{width:24px;height:24px;}
.tcbot-title{font-size:15px;font-weight:800;letter-spacing:-.01em;}
.tcbot-status{font-size:12px;color:rgba(255,255,255,.82);display:flex;align-items:center;gap:6px;margin-top:2px;}
.tcbot-live{width:7px;height:7px;border-radius:50%;background:#3fd07a;box-shadow:0 0 0 3px rgba(63,208,122,.28);}
.tcbot-close{width:34px;height:34px;border:none;background:rgba(255,255,255,.12);color:#fff;border-radius:9px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;}
.tcbot-close:hover{background:rgba(255,255,255,.24);}
.tcbot-close svg{width:18px;height:18px;}
.tcbot-body{flex:1;overflow-y:auto;padding:20px 18px;display:flex;flex-direction:column;gap:12px;background:#f7f8fc;}
.tcbot-msg{display:flex;}
.tcbot-msg.bot{justify-content:flex-start;}
.tcbot-msg.user{justify-content:flex-end;}
.tcbot-msg p{margin:0;font-size:14px;line-height:1.55;padding:12px 15px;border-radius:14px;max-width:84%;}
.tcbot-msg.bot p{background:#fff;color:var(--c-ink-strong);border:1px solid var(--c-border);border-bottom-left-radius:5px;}
.tcbot-msg.user p{background:var(--c-brand);color:#fff;border-bottom-right-radius:5px;}
.tcbot-typing{display:inline-flex;gap:4px;align-items:center;padding:2px 0;}
.tcbot-typing i{width:7px;height:7px;border-radius:50%;background:#b7bed6;animation:tcbotBlink 1.2s infinite;}
.tcbot-typing i:nth-child(2){animation-delay:.2s;}
.tcbot-typing i:nth-child(3){animation-delay:.4s;}
@keyframes tcbotBlink{0%,60%,100%{opacity:.3;}30%{opacity:1;}}
.tcbot-quick{display:flex;flex-wrap:wrap;gap:8px;padding:2px 0 4px;}
.tcbot-quick.pulse{animation:tcbotShake .5s;}
@keyframes tcbotShake{0%,100%{transform:translateX(0);}25%{transform:translateX(-4px);}75%{transform:translateX(4px);}}
.tcbot-chip{background:#fff;border:1px solid var(--c-brand);color:var(--c-brand);font:inherit;font-size:13px;font-weight:600;padding:9px 14px;border-radius:999px;cursor:pointer;transition:.14s;}
.tcbot-chip:hover{background:var(--c-brand);color:#fff;}
.tcbot-form{display:flex;flex-direction:column;gap:9px;margin-top:2px;}
.tcbot-form input{padding:12px 14px;border:1px solid var(--c-border);border-radius:10px;font:inherit;font-size:14px;}
.tcbot-form input:focus{outline:none;border-color:var(--c-brand);box-shadow:0 0 0 3px rgba(1,14,208,.12);}
.tcbot-form.invalid input:invalid,.tcbot-form.invalid input:placeholder-shown{border-color:#E23B3B;}
.tcbot-form .btn{justify-content:center;}
.tcbot-final{background:#fff;border:1px solid var(--c-border);border-radius:14px;padding:16px;margin-top:4px;}
.tcbot-final .tcbot-disc{margin-bottom:12px;}
.tcbot-final .tcbot-cta-row{display:flex;flex-direction:column;gap:9px;}
.tcbot-final .btn{justify-content:center;width:100%;}
.tcbot-foot{border-top:1px solid var(--c-border);padding:14px 16px;background:#fff;}
.tcbot-disc{font-size:11.5px;line-height:1.5;color:var(--c-muted);margin-bottom:12px;}
.tcbot-cta-row{display:flex;gap:9px;}
.tcbot-cta-row .btn{flex:1;justify-content:center;padding:11px;font-size:13.5px;}
@media (max-width:760px){
  .tcbot-rail{right:0;left:0;top:auto;bottom:0;transform:none;flex-direction:row;gap:0;align-items:stretch;box-shadow:0 -6px 22px rgba(11,13,49,.24);}
  .tcbot-fab,.tcbot-call{flex:1;width:auto;flex-direction:row;padding:0;height:58px;border-radius:0;writing-mode:horizontal-tb;font-size:15px;font-weight:700;letter-spacing:0;text-transform:none;box-shadow:none;gap:9px;}
  .tcbot-fab:hover,.tcbot-call:hover{width:auto;box-shadow:none;}
  .tcbot-fab-ic,.tcbot-fab-ic svg,.tcbot-call-ic,.tcbot-call-ic svg{width:20px;height:20px;}
  .tcbot-dot{top:12px;left:auto;right:14px;transform:none;}
  .tcbot-tip{display:none;}
  .tcbot-panel{bottom:58px;max-height:calc(100vh - 80px);}
}
@media (max-width:620px){
  .tcbot-panel{left:0;right:0;bottom:58px;width:100%;max-width:100%;height:calc(88vh - 58px);max-height:calc(88vh - 58px);border-radius:20px 20px 0 0;animation:tcbotUp .28s cubic-bezier(.16,.84,.44,1) both;}
  @keyframes tcbotUp{from{transform:translateY(100%);}to{transform:none;}}
}

/* ---------- Legal pages (Privacy / Terms) ---------- */
.legal-body{padding:46px 0 76px;}
.legal-wrap{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:236px 1fr;gap:48px;align-items:start;}
.legal-toc{position:sticky;top:110px;border:1px solid var(--c-border);border-radius:14px;padding:20px 18px;background:#fff;box-shadow:0 6px 22px rgba(11,13,49,.05);}
.legal-toc h4{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--c-muted);margin:0 0 12px;}
.legal-toc ol{list-style:none;counter-reset:toc;margin:0;padding:0;display:flex;flex-direction:column;}
.legal-toc li{counter-increment:toc;}
.legal-toc a{display:flex;gap:9px;padding:7px 8px;border-radius:8px;font-size:13.5px;color:var(--c-ink-strong);font-weight:500;transition:background .14s,color .14s;}
.legal-toc a::before{content:counter(toc);color:var(--c-brand);font-weight:700;flex:0 0 16px;}
.legal-toc a:hover{background:var(--c-bg-soft);color:var(--c-brand);}
.legal-content{min-width:0;}
.legal-note{display:flex;gap:12px;align-items:flex-start;background:#FFF8E8;border:1px solid #F2E2B8;border-radius:12px;padding:16px 18px;margin-bottom:30px;font-size:13.5px;line-height:1.55;color:#8a6d1e;}
.legal-note b{color:#6e560f;}
.legal-updated{font-size:13.5px;color:var(--c-muted);margin-bottom:30px;}
.legal-sec{margin-bottom:34px;scroll-margin-top:100px;}
.legal-sec h2{font-size:22px;font-weight:800;color:var(--c-ink);letter-spacing:-.01em;margin:0 0 14px;display:flex;gap:12px;align-items:baseline;}
.legal-sec h2 .ls-num{font-size:14px;font-weight:800;color:var(--c-brand);flex:0 0 auto;}
.legal-sec h3{font-size:16px;font-weight:700;color:var(--c-ink-strong);margin:22px 0 8px;}
.legal-sec p{font-size:15px;line-height:1.72;color:var(--c-body);margin:0 0 14px;}
.legal-sec ul{margin:0 0 16px;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px;}
.legal-sec ul li{display:flex;gap:11px;font-size:15px;line-height:1.6;color:var(--c-body);}
.legal-sec ul li::before{content:"";flex:0 0 7px;width:7px;height:7px;border-radius:50%;background:var(--c-brand);margin-top:9px;}
.legal-sec a{color:var(--c-brand);font-weight:600;}
@media (max-width:880px){
  .legal-wrap{grid-template-columns:1fr;gap:24px;}
  .legal-toc{position:static;}
}

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .mainnav,.support-col,.vrule,.header-login,.header-phone,.header-div{display:none;}
  .burger{display:flex;}
  .hero-grid{grid-template-columns:1fr;gap:34px;}
  .hero h1{font-size:40px;}
  .band-grid{grid-template-columns:1fr;padding:48px var(--gutter) 52px;}
  .band .triangle{margin-right:auto;}
  .band-copy p{font-size:16px;}
  .feat-grid{grid-template-columns:1fr 1fr;gap:18px;margin-top:26px;}
  .cards{grid-template-columns:repeat(2,1fr);}
  .contact-grid{grid-template-columns:1fr;}
  .makers-grid{grid-template-columns:1fr;}
  .steps{flex-direction:column;gap:16px;}
  .page-head h1{font-size:42px;}
  .about-hero h1{font-size:38px;}
  .about-intro-grid{grid-template-columns:1fr;gap:34px;}
  .approach-grid{grid-template-columns:1fr;gap:20px;}
  .help-row{flex-direction:column;gap:18px;}
  .help-div{display:none;}
  .faq-panel{padding:6px 22px;}
  .faq-q{font-size:18px;}
}
@media (max-width:560px){
  .hero h1{font-size:32px;}
  .hero .lead{font-size:16.5px;max-width:none;}
  .hero-cta{flex-direction:column;align-items:stretch;}
  .hero-cta .btn{width:100%;justify-content:center;padding:15px;}
  .hero-img{min-height:240px;border-radius:14px;}
  .feat-grid{grid-template-columns:1fr;}
  .feat{padding:26px 22px;}
  .logo-grid{grid-template-columns:repeat(2,1fr);}
  .bottom-row{gap:16px;}
  .page-head h1{font-size:34px;}
  .about-hero h1{font-size:31px;}
}

/* ============================================================
   ADDED: dropdown, mobile menu, service/careers/blog/case pages,
   404, premium polish, fluid responsiveness
   ============================================================ */

/* Fluid type for big headings */
.hero h1{font-size:clamp(34px,4.4vw,56px);}
.page-head h1{font-size:clamp(34px,5vw,62px);}
.about-hero h1{font-size:clamp(30px,4.6vw,60px);}
.solutions h2{font-size:clamp(30px,3.6vw,42px);}
.band h2{font-size:clamp(28px,3.2vw,40px);}

/* ---------- Resources dropdown ---------- */
.navdrop{position:relative;}
.navdrop-btn{display:inline-flex;align-items:center;gap:5px;background:none;border:none;font:inherit;font-size:16px;font-weight:500;color:var(--c-ink-strong);cursor:pointer;padding:0;}
.navdrop-btn svg{transition:transform .2s;}
.navdrop:hover .navdrop-btn,.navdrop.active .navdrop-btn{color:var(--c-brand);}
.navdrop:hover .navdrop-btn svg,.navdrop.open .navdrop-btn svg{transform:rotate(180deg);}
.navdrop-menu{position:absolute;top:calc(100% + 16px);left:50%;transform:translateX(-50%) translateY(8px);min-width:212px;background:#fff;border:1px solid var(--c-border);border-radius:12px;box-shadow:0 18px 50px rgba(11,13,49,.16);padding:8px;opacity:0;visibility:hidden;transition:opacity .2s,transform .2s;z-index:60;}
.navdrop-menu::before{content:"";position:absolute;top:-7px;left:50%;transform:translateX(-50%) rotate(45deg);width:12px;height:12px;background:#fff;border-left:1px solid var(--c-border);border-top:1px solid var(--c-border);}
.navdrop:hover .navdrop-menu,.navdrop.open .navdrop-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.navdrop-menu a{display:block;padding:11px 14px;border-radius:8px;font-size:15px;font-weight:500;color:var(--c-ink-strong);transition:background .14s,color .14s;}
.navdrop-menu a:hover{background:var(--c-bg-soft);color:var(--c-brand);}
.navdrop-menu a.nd-allrow{border-top:1px solid var(--c-border);margin-top:4px;padding-top:12px;color:var(--c-brand);font-weight:700;}

/* ---------- Services mega menu (compact) ---------- */
.navmega{position:relative;display:flex;align-items:center;}
.navmega-btn{display:inline-flex;align-items:center;gap:5px;font-size:16px;font-weight:500;color:var(--c-ink-strong);}
.navmega.active .navmega-btn,.navmega:hover .navmega-btn{color:var(--c-brand);}
.navmega-btn svg{transition:transform .2s;}
.navmega:hover .navmega-btn svg{transform:rotate(180deg);}
.navmega::after{content:"";position:absolute;top:100%;left:0;width:160px;height:20px;}
.navmega-panel{position:absolute;top:calc(100% + 16px);left:0;width:min(460px,calc(100vw - 32px));background:#fff;border:1px solid var(--c-border);border-radius:14px;box-shadow:0 20px 50px rgba(11,13,49,.16);padding:10px;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .18s,transform .18s;z-index:60;}
.navmega:hover .navmega-panel{opacity:1;visibility:visible;transform:none;}
.navmega-list{display:grid;grid-template-columns:1fr 1fr;gap:0 8px;}
.navmega-list a{display:block;padding:9px 12px;border-radius:8px;font-size:13.5px;font-weight:500;color:var(--c-ink-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .14s,color .14s;}
.navmega-list a:hover{background:var(--c-bg-soft);color:var(--c-brand);}
/* Dropdown hover reliability + keyboard access (additive; transparent → no pixels).
   .navdrop lacked the gap-bridge that .navmega::after provides, so the cursor lost
   :hover crossing the 16px gap to the menu. Bridge it the same way, and open on
   :focus-within so the dropdowns are keyboard-accessible. Consistent for Company,
   Resources (.navdrop) and Services (.navmega). */
.navdrop::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);width:212px;height:18px;}
.navdrop:focus-within .navdrop-btn{color:var(--c-brand);}
.navdrop:focus-within .navdrop-btn svg{transform:rotate(180deg);}
.navdrop:focus-within .navdrop-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.navmega:focus-within .navmega-btn{color:var(--c-brand);}
.navmega:focus-within .navmega-btn svg{transform:rotate(180deg);}
.navmega:focus-within .navmega-panel{opacity:1;visibility:visible;transform:none;}
.nm-allrow{display:flex;align-items:center;gap:6px;margin-top:6px;padding:11px 12px 5px;border-top:1px solid var(--c-border);font-size:13px;font-weight:700;color:var(--c-brand);}
.nm-allrow svg{width:14px;height:14px;}
.mm-sub-svc .mm-viewall{color:var(--c-brand);font-weight:700;}
/* Fix: respect the hidden attribute (author display:flex was overriding UA [hidden]) */
.mobile-menu[hidden],.mm-scrim[hidden]{display:none !important;}
@media (min-width:1200px){.mobile-menu,.mm-scrim,.burger{display:none !important;}}

/* ---------- Burger / mobile menu ---------- */
.burger{width:30px;height:30px;border:none;background:none;flex-direction:column;justify-content:center;gap:6px;cursor:pointer;padding:0;}
.burger span{display:block;width:24px;height:2px;background:var(--c-ink-strong);transition:transform .25s,opacity .2s;margin:0 auto;}
.burger.is-open span:nth-child(1){transform:translateY(8px) rotate(45deg);}
.burger.is-open span:nth-child(2){opacity:0;}
.burger.is-open span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}
.mm-scrim{position:fixed;left:0;right:0;top:140px;bottom:0;background:rgba(8,10,30,.42);z-index:44;animation:scrimIn .2s ease both;}
@keyframes scrimIn{from{opacity:0;}to{opacity:1;}}
.mobile-menu{position:fixed;left:0;right:0;top:140px;background:#fff;z-index:46;padding:14px 24px 26px;display:flex;flex-direction:column;gap:2px;max-height:calc(100vh - 140px);overflow-y:auto;border-radius:0 0 18px 18px;box-shadow:0 24px 50px rgba(11,13,49,.22);animation:mmIn .24s cubic-bezier(.16,.84,.44,1) both;}
@keyframes mmIn{from{opacity:0;transform:translateY(-12px);}to{opacity:1;transform:none;}}
.mobile-menu{gap:0;padding:18px 22px 30px;}
.mm-label{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--c-muted);margin:8px 8px 4px;}
.mm-nav{display:flex;flex-direction:column;margin-bottom:8px;}
.mm-link,.mm-acc{display:flex;align-items:center;justify-content:space-between;width:100%;padding:14px;font-size:16.5px;font-weight:600;color:var(--c-ink);background:none;border:none;text-align:left;font-family:inherit;cursor:pointer;border-radius:12px;transition:background .15s,color .15s;}
.mm-link:hover,.mm-link.active,.mm-acc:hover{background:var(--c-bg-soft);color:var(--c-brand);}
.mm-acc svg{transition:transform .2s;color:var(--c-muted);}
.mm-group.open .mm-acc{color:var(--c-brand);}
.mm-group.open .mm-acc svg{transform:rotate(180deg);color:var(--c-brand);}
.mm-sub{display:grid;grid-template-rows:0fr;transition:grid-template-rows .26s ease;overflow:hidden;}
.mm-group.open .mm-sub{grid-template-rows:1fr;}
.mm-sub-inner{overflow:hidden;display:flex;flex-direction:column;padding:2px 0 8px;}
.mm-sub a{display:block;padding:10px 16px 10px 26px;font-size:14.5px;color:var(--c-body);border-radius:10px;transition:background .14s,color .14s;}
.mm-sub a:hover{background:var(--c-bg-soft);color:var(--c-brand);}
.mm-sub-svc .mm-viewall{color:var(--c-brand);font-weight:700;}
.mm-actions{display:flex;flex-direction:column;gap:10px;margin:14px 0 6px;}
.mm-act{width:100%;justify-content:center;padding:15px;}
.mm-contact{display:flex;flex-direction:column;gap:9px;margin-bottom:18px;}
.mm-crow{display:flex;align-items:center;gap:13px;padding:11px 13px;border:1px solid var(--c-border);border-radius:12px;transition:border-color .15s,background .15s;}
.mm-crow:hover{border-color:var(--c-brand);background:var(--c-bg-soft);}
.mm-cic{width:38px;height:38px;flex:0 0 38px;border-radius:10px;background:#EEF2FE;display:flex;align-items:center;justify-content:center;color:var(--c-brand);}
.mm-cic svg{width:19px;height:19px;}
.mm-cinfo{display:flex;flex-direction:column;}
.mm-ck{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--c-muted);}
.mm-cv{font-size:15px;font-weight:700;color:var(--c-ink-strong);}
.mm-social{display:flex;gap:10px;padding:0 6px;}
.mm-social a{width:42px;height:42px;border-radius:11px;border:1px solid var(--c-border);display:flex;align-items:center;justify-content:center;color:var(--c-ink-strong);transition:.15s;}
.mm-social a:hover{border-color:var(--c-brand);color:var(--c-brand);background:var(--c-bg-soft);}
.mm-social a svg{width:18px;height:18px;}

/* ---------- Premium polish: cards, buttons ---------- */
.card{transition:box-shadow .22s cubic-bezier(.16,.84,.44,1),transform .22s cubic-bezier(.16,.84,.44,1),border-color .22s;}
.card:hover{border-color:rgba(1,14,208,.14);}
.card .icon{transition:transform .25s;}
.card:hover .icon{transform:translateY(-2px) scale(1.04);}
.btn-primary{box-shadow:0 1px 2px rgba(1,14,208,.18);}
.btn-primary:hover{box-shadow:0 10px 26px rgba(1,14,208,.32);}
.btn-lg{padding:16px 34px;font-size:16px;border-radius:8px;}
.btn-white{background:#fff;color:var(--c-brand);}
.btn-white:hover{background:#EEF1FA;transform:translateY(-1px);}
.btn-outline{background:transparent;border:1.5px solid var(--c-border);color:var(--c-ink);}
.btn-outline:hover{border-color:var(--c-brand);color:var(--c-brand);}
.btn-outline-light{background:transparent;border:1.5px solid rgba(255,255,255,.4);color:#fff;}
.btn-outline-light:hover{border-color:#fff;background:rgba(255,255,255,.1);}

/* ---------- Breadcrumbs ---------- */
.crumbs{font-size:13px;color:var(--c-muted);display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.crumbs a{color:var(--c-muted);}
.crumbs a:hover{color:var(--c-brand);}
.crumbs .sep{opacity:.5;}
.crumbs .cur{color:var(--c-ink-strong);font-weight:600;}

/* ---------- Service page ---------- */
.svc-hero{background:linear-gradient(115deg,#04114f 0%,#020a9e 45%,#0a1fd0 100%);color:#fff;padding:56px 0 64px;position:relative;overflow:hidden;}
.svc-hero .wrap{position:relative;z-index:2;}
.svc-hero .crumbs,.svc-hero .crumbs a{color:rgba(255,255,255,.7);}
.svc-hero .crumbs .cur{color:#fff;}
.svc-hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;margin-top:24px;}
.svc-hero .eyebrow{background:rgba(255,255,255,.12);color:#cdd6ff;}
.svc-hero h1{font-size:clamp(30px,3.8vw,46px);font-weight:800;line-height:1.06;letter-spacing:-.02em;margin:16px 0 16px;text-wrap:balance;}
.svc-hero p.lead{font-size:17px;line-height:1.6;color:rgba(255,255,255,.86);max-width:46ch;margin:0 0 26px;}
.svc-hero-cta{display:flex;gap:14px;flex-wrap:wrap;}
.svc-hero-img{width:100%;min-height:330px;height:100%;border-radius:14px;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.3);}
.svc-hero-img image-slot{width:100%;height:100%;min-height:330px;}

.svc-body{padding:64px 0;}
.svc-layout{display:grid;grid-template-columns:1fr 320px;gap:56px;align-items:start;}
.svc-main{min-width:0;}
.svc-section{margin-bottom:48px;}
.svc-section:last-child{margin-bottom:0;}
.svc-section h2{font-size:clamp(24px,2.6vw,32px);font-weight:800;color:var(--c-ink);letter-spacing:-.01em;margin:0 0 18px;}
.svc-section h3{font-size:19px;font-weight:700;color:var(--c-ink-strong);margin:26px 0 10px;}
.svc-section p{font-size:16px;line-height:1.7;color:var(--c-body);margin:0 0 14px;max-width:72ch;}
.svc-list{display:flex;flex-direction:column;gap:14px;margin:18px 0 0;}
.svc-list-item{display:flex;gap:14px;align-items:flex-start;font-size:15.5px;line-height:1.55;color:var(--c-body);}
.svc-list-item .ck{flex:0 0 22px;width:22px;height:22px;border-radius:50%;background:#E7EDFB;color:var(--c-brand);display:flex;align-items:center;justify-content:center;margin-top:1px;}
.svc-list-item .ck svg{width:12px;height:12px;}
.svc-list-item .ck svg path{stroke:var(--c-brand);}
.svc-list-item b{color:var(--c-ink-strong);}
.steps-num{display:grid;gap:18px;margin-top:20px;}
.step-row{display:flex;gap:18px;align-items:flex-start;}
.step-row .sn{flex:0 0 38px;width:38px;height:38px;border-radius:50%;background:var(--c-brand);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:16px;}
.step-row .st h3{margin:2px 0 6px;}
.step-row .st p{margin:0;}
.doc-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px;}
.doc-card{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--c-border);border-radius:10px;padding:16px 18px;font-size:15px;font-weight:500;color:var(--c-ink-strong);}
.doc-card .di{flex:0 0 24px;width:24px;height:24px;}
.scenario{background:var(--c-bg-soft);border-radius:12px;padding:22px 24px;margin-top:16px;border-left:3px solid var(--c-brand);}
.scenario p{margin:0;font-size:15.5px;line-height:1.65;}
.scenario .lbl{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--c-brand);margin-bottom:8px;}

/* Service sidebar */
.svc-side{position:sticky;top:120px;display:flex;flex-direction:column;gap:22px;}
.side-card{background:#fff;border:1px solid var(--c-border);border-radius:14px;padding:26px 24px;box-shadow:0 6px 24px rgba(11,13,49,.06);}
.side-card.brand{background:linear-gradient(150deg,#020a9e,#0a1fd0);color:#fff;border:none;}
.side-card h4{font-size:18px;font-weight:700;margin:0 0 8px;}
.side-card.brand p{color:rgba(255,255,255,.85);font-size:14px;line-height:1.6;margin:0 0 18px;}
.side-card .btn{width:100%;justify-content:center;}
.side-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;}
.side-list li{border-bottom:1px solid var(--c-border);}
.side-list li:last-child{border-bottom:none;}
.side-list a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 2px;font-size:14.5px;color:var(--c-ink-strong);font-weight:500;}
.side-list a:hover{color:var(--c-brand);}
.side-list a svg{opacity:0;transform:translateX(-4px);transition:.16s;}
.side-list a:hover svg{opacity:1;transform:none;}

.svc-faq .faq-panel{margin:0;}

/* Related services */
.related{padding:8px 0 72px;}
.related h2{font-size:clamp(24px,2.6vw,30px);font-weight:800;color:var(--c-ink);margin:0 0 26px;letter-spacing:-.01em;}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.related-card{background:#fff;border:1px solid var(--c-border);border-radius:14px;padding:0;overflow:hidden;transition:box-shadow .22s,transform .22s,border-color .22s;color:inherit;display:flex;flex-direction:column;}
.related-card:hover{box-shadow:0 18px 40px rgba(11,13,49,.13);transform:translateY(-4px);border-color:rgba(1,14,208,.14);}
.rc-media{height:148px;flex:0 0 148px;}
.rc-media.rc-ph{background:linear-gradient(140deg,#eef1fb,#dde4f3);display:flex;align-items:center;justify-content:center;color:#9aa4be;}
.rc-media.rc-ph svg{width:36px;height:36px;opacity:.62;}
.rc-photo{width:100%;height:148px;object-fit:cover;display:block;}
.rc-media .mg-icon svg{width:70px;opacity:.95;}
.related-card .rc-body{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1;}
.related-card h3{font-size:17px;font-weight:700;color:var(--c-ink-strong);margin:0 0 8px;letter-spacing:-.005em;}
.related-card p{font-size:14px;line-height:1.5;color:var(--c-muted);margin:0 0 16px;flex:1;}
.related-card .learn{font-size:14px;margin-top:auto;}
.related-card:hover .mg-icon svg{transform:translateY(-2px);}
.rc-media .mg-icon svg{transition:transform .25s;}

/* ---------- CTA band ---------- */
.cta-band{background:linear-gradient(120deg,#04114f,#0a1fd0);color:#fff;text-align:center;padding:64px 0;position:relative;overflow:hidden;}
.cta-band .eyebrow{background:rgba(255,255,255,.12);color:#cdd6ff;}
.cta-band h2{font-size:clamp(28px,3.4vw,40px);font-weight:800;letter-spacing:-.01em;margin:16px auto 14px;max-width:20ch;line-height:1.1;text-wrap:balance;}
.cta-band p{font-size:17px;color:rgba(255,255,255,.84);max-width:52ch;margin:0 auto 30px;line-height:1.6;}
.cta-band .cta-row{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}

/* ---------- Careers ---------- */
.careers-img{margin:14px 0 64px;border-radius:14px;overflow:hidden;height:clamp(240px,38vw,460px);}
.careers-img image-slot{width:100%;height:100%;}
.careers-split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;padding:8px var(--gutter) 72px;}
.careers-split h2{font-size:clamp(30px,3.6vw,44px);font-weight:800;color:var(--c-ink);line-height:1.08;letter-spacing:-.02em;margin:0 0 20px;text-wrap:balance;}
.careers-split p{font-size:15px;line-height:1.7;color:var(--c-body);margin:0 0 26px;max-width:42ch;}
.careers-img-r{border-radius:14px;overflow:hidden;height:clamp(300px,32vw,440px);}
.careers-img-r image-slot{width:100%;height:100%;}
.people-first{text-align:center;padding:8px 0 8px;}
.people-first .quote{font-size:clamp(17px,2vw,21px);line-height:1.55;color:var(--c-ink);max-width:64ch;margin:18px auto 0;font-weight:500;}

/* ---------- Blog / Case studies listing ---------- */
.list-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;padding:8px var(--gutter) 72px;}
.post-card,.cs-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--c-border);border-radius:14px;overflow:hidden;transition:box-shadow .22s,transform .22s,border-color .22s;color:inherit;}
.post-card:hover,.cs-card:hover{box-shadow:0 20px 44px rgba(11,13,49,.13);transform:translateY(-4px);border-color:rgba(1,14,208,.12);}
.post-thumb{height:194px;background:var(--c-bg-soft);position:relative;overflow:hidden;}
.post-thumb image-slot{width:100%;height:100%;}
.post-cat{position:absolute;top:14px;left:14px;white-space:nowrap;background:#fff;color:var(--c-brand);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:6px 12px;border-radius:999px;box-shadow:0 2px 8px rgba(11,13,49,.12);z-index:2;}
.post-info{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1;}
.post-meta{font-size:12.5px;color:var(--c-muted);font-weight:500;margin-bottom:10px;display:flex;gap:10px;align-items:center;}
.post-info h3{font-size:19px;font-weight:700;color:var(--c-ink-strong);line-height:1.28;margin:0 0 10px;letter-spacing:-.005em;}
.post-info p{font-size:14px;line-height:1.55;color:var(--c-body);margin:0 0 18px;flex:1;}
.post-info .learn{font-size:14px;margin-top:auto;}
.cs-stat-row{display:flex;gap:22px;margin-top:6px;}
.cs-stat{display:flex;flex-direction:column;}
.cs-stat .num{font-size:22px;font-weight:800;color:var(--c-brand);line-height:1;}
.cs-stat .cap{font-size:11.5px;color:var(--c-muted);margin-top:3px;}

/* ---------- Article ---------- */
.article-head{padding:52px 0 30px;}
.article-head .crumbs{margin-bottom:20px;}
.article-head h1{font-size:clamp(30px,3.8vw,48px);font-weight:800;color:var(--c-ink);letter-spacing:-.02em;line-height:1.08;margin:14px 0 18px;max-width:20ch;text-wrap:balance;}
.article-meta{display:flex;gap:14px;align-items:center;font-size:14px;color:var(--c-muted);}
.article-meta .avatar{width:38px;height:38px;border-radius:50%;background:var(--c-lav-1);}
.article-hero-img{height:clamp(260px,40vw,500px);border-radius:16px;overflow:hidden;margin:8px 0 12px;}
.article-hero-img image-slot{width:100%;height:100%;}
.article-body{padding:34px 0 72px;}
.article-wrap{max-width:760px;margin:0 auto;}
.article-wrap h2{font-size:28px;font-weight:800;color:var(--c-ink);letter-spacing:-.01em;margin:38px 0 14px;}
.article-wrap h3{font-size:20px;font-weight:700;color:var(--c-ink-strong);margin:28px 0 10px;}
.article-wrap p{font-size:17px;line-height:1.75;color:var(--c-body);margin:0 0 20px;}
.article-wrap ul{margin:0 0 20px;padding-left:4px;list-style:none;display:flex;flex-direction:column;gap:12px;}
.article-wrap ul li{display:flex;gap:12px;font-size:17px;line-height:1.65;color:var(--c-body);}
.article-wrap ul li::before{content:"";flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:var(--c-brand);margin-top:11px;}
.article-wrap blockquote{margin:30px 0;padding:6px 0 6px 26px;border-left:4px solid var(--c-brand);font-size:21px;line-height:1.5;color:var(--c-ink);font-weight:500;font-style:italic;}
.article-pull{background:var(--c-bg-soft);border-radius:14px;padding:26px 28px;margin:30px 0;}
.article-pull .lbl{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--c-brand);margin-bottom:8px;}

/* ---------- 404 ---------- */
.nf{min-height:60vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:80px 0;}
.nf-inner{max-width:560px;}
.nf .code{font-size:clamp(96px,18vw,200px);font-weight:800;line-height:.9;letter-spacing:-.04em;background:linear-gradient(120deg,#020a9e,#3a52ff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.nf h1{font-size:clamp(26px,3.4vw,38px);font-weight:800;color:var(--c-ink);margin:8px 0 14px;letter-spacing:-.01em;}
.nf p{font-size:17px;color:var(--c-muted);line-height:1.6;margin:0 0 28px;}
.nf .cta-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}

/* ---------- Services index: more grid ---------- */
.svc-more{padding:8px 0 80px;}
.svc-more h2{font-size:clamp(26px,3vw,36px);font-weight:800;color:var(--c-ink);letter-spacing:-.01em;margin:0 0 8px;}
.svc-more .sub{font-size:16px;color:var(--c-muted);margin:0 0 32px;max-width:60ch;}
.svc-more-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.svc-more-grid a{display:flex;gap:14px;align-items:flex-start;background:#fff;border:1px solid var(--c-border);border-radius:12px;padding:20px;color:inherit;transition:box-shadow .2s,transform .2s,border-color .2s;}
.svc-more-grid a:hover{box-shadow:0 14px 32px rgba(11,13,49,.1);transform:translateY(-3px);border-color:rgba(1,14,208,.14);}
.svc-more-grid .icon{width:38px;height:38px;flex:0 0 38px;}
.svc-more-grid h3{font-size:16px;font-weight:700;color:var(--c-ink-strong);margin:0 0 5px;}

/* ---------- Media graphic (premium branded image panels) ---------- */
.media-graphic,.svc-hero-media{position:relative;overflow:hidden;border-radius:14px;background:linear-gradient(135deg,#04114f 0%,#0a1fd0 100%);}
.svc-hero-media{min-height:330px;height:100%;border:1px solid rgba(255,255,255,.24);box-shadow:0 24px 60px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.18);background:linear-gradient(135deg,#0a1fd0,#3a52ff);}
.media-graphic.tone-1{background:linear-gradient(135deg,#0a1fd0,#3a52ff);}
.media-graphic.tone-2{background:linear-gradient(135deg,#071780,#2238cf);}
.media-graphic.tone-3{background:linear-gradient(140deg,#15205f,#5566cf);}
.mg-tex{position:absolute;inset:0;width:100%;height:100%;}
.mg-glow{position:absolute;width:62%;height:62%;right:-12%;top:-16%;background:radial-gradient(circle,rgba(255,255,255,.16),transparent 70%);pointer-events:none;}
.mg-icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;}
.mg-icon svg{width:44%;max-width:200px;opacity:.94;filter:drop-shadow(0 10px 26px rgba(0,0,0,.28));}
.mg-badge{position:absolute;left:18px;bottom:16px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:rgba(255,255,255,.16);backdrop-filter:blur(4px);padding:6px 13px;border-radius:999px;}

/* ---------- Service hero IMAGE placeholder (replace with real <img>) ---------- */
.service-hero-image-placeholder{position:relative;width:100%;aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:linear-gradient(140deg,#eef1fb 0%,#dde4f3 100%);border:1px solid rgba(255,255,255,.55);box-shadow:0 24px 60px rgba(0,0,0,.28);display:flex;align-items:center;justify-content:center;}
.service-hero-image-placeholder::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(1,14,208,.018) 0 14px,transparent 14px 28px);pointer-events:none;}
.service-hero-image-placeholder .ph-inner{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;padding:24px;color:#8590ad;}
.service-hero-image-placeholder .ph-inner svg{width:50px;height:50px;opacity:.6;}
.service-hero-image-placeholder .ph-inner .ph-t{font-size:14px;font-weight:700;color:#5f6b88;letter-spacing:.01em;}
.service-hero-image-placeholder .ph-inner .ph-s{font-size:12.5px;color:#97a0ba;max-width:24ch;line-height:1.4;}
/* When a real image is dropped in, it fills the box cleanly */
.service-hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;border-radius:14px;}

/* ---------- Reviews carousel (homepage) ---------- */
.reviews-sec{padding:72px 0;background:linear-gradient(180deg,#fff 0%,#F6F7FB 100%);}
.reviews-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:34px;flex-wrap:wrap;}
.reviews-head h2{font-size:clamp(26px,3vw,38px);font-weight:800;color:var(--c-ink);letter-spacing:-.01em;margin:14px 0 0;max-width:18ch;line-height:1.12;}
.reviews-rate{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--c-border);border-radius:14px;padding:14px 20px;box-shadow:0 6px 20px rgba(11,13,49,.06);}
.reviews-rate .rr-g{width:30px;height:30px;display:block;}
.rr-score{font-size:18px;font-weight:800;color:var(--c-ink);}
.rr-score .stars{color:#F5A623;font-size:14px;letter-spacing:1px;}
.rr-lbl{font-size:12px;color:var(--c-muted);margin-top:2px;}
.reviews-rail{display:flex;justify-content:flex-end;gap:8px;margin-bottom:12px;}
.reviews-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 2px 16px;scrollbar-width:none;cursor:grab;}
.reviews-track::-webkit-scrollbar{display:none;}
.reviews-track.drag{cursor:grabbing;scroll-snap-type:none;}
.r-card{scroll-snap-align:start;flex:0 0 360px;max-width:360px;background:#fff;border:1px solid var(--c-border);border-radius:16px;padding:26px 26px 28px;box-shadow:0 2px 10px rgba(11,13,49,.04);transition:box-shadow .22s,transform .22s,border-color .22s;user-select:none;}
.r-card:hover{box-shadow:0 18px 40px rgba(11,13,49,.13);transform:translateY(-4px);border-color:rgba(1,14,208,.12);}
.r-top{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.r-ava{width:44px;height:44px;flex:0 0 44px;border-radius:50%;background:linear-gradient(140deg,#0a1fd0,#3a52ff);color:#fff;font-weight:700;font-size:18px;display:flex;align-items:center;justify-content:center;}
.r-id{flex:1;min-width:0;}
.r-name{font-size:15px;font-weight:700;color:var(--c-ink-strong);}
.r-role{font-size:12.5px;color:var(--c-muted);margin-top:1px;}
.r-g{width:22px;height:22px;flex:0 0 22px;display:block;}
.r-stars{color:#F5A623;font-size:15px;letter-spacing:2px;display:block;margin-bottom:10px;}
.r-txt{font-size:14.5px;line-height:1.62;color:var(--c-body);margin:0;}
.rev-arrow{position:static;width:46px;height:46px;border-radius:50%;border:1px solid var(--c-border);background:#fff;color:var(--c-ink-strong);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(11,13,49,.12);z-index:3;transition:background .15s,color .15s,transform .15s;}
.rev-arrow:hover{background:var(--c-brand);color:#fff;border-color:var(--c-brand);}

/* ---------- Referral / Refer & Earn ---------- */
.ref-hero{background:linear-gradient(120deg,#04114f 0%,#0a1fd0 55%,#1b34e6 100%);color:#fff;position:relative;overflow:hidden;}
.ref-hero .wrap{position:relative;z-index:2;padding:64px 24px 70px;text-align:center;}
.ref-hero .eyebrow{background:rgba(255,255,255,.14);color:#dfe5ff;}
.ref-hero h1{font-size:clamp(32px,5vw,58px);font-weight:800;letter-spacing:-.02em;line-height:1.04;margin:18px auto 16px;max-width:18ch;text-wrap:balance;}
.ref-hero p.sub{font-size:clamp(16px,2vw,19px);color:rgba(255,255,255,.86);max-width:60ch;margin:0 auto 30px;line-height:1.6;}
.ref-amounts{display:flex;gap:20px;justify-content:center;flex-wrap:wrap;margin:34px 0 6px;}
.ref-amt{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(6px);border-radius:18px;padding:26px 38px;min-width:220px;}
.ref-amt .who{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#cdd6ff;margin-bottom:6px;}
.ref-amt .amt{font-size:clamp(40px,6vw,64px);font-weight:800;letter-spacing:-.02em;line-height:1;}
.ref-amt .amt small{font-size:.4em;font-weight:700;vertical-align:super;}
.ref-plus{display:flex;align-items:center;font-size:34px;font-weight:300;color:rgba(255,255,255,.6);}
.ref-section{padding:64px 0;}
.ref-section.alt{background:var(--c-bg-soft);}
.ref-head{text-align:center;max-width:60ch;margin:0 auto 44px;}
.ref-head h2{font-size:clamp(28px,3.4vw,40px);font-weight:800;color:var(--c-ink);letter-spacing:-.01em;margin:14px 0 12px;}
.ref-head p{font-size:16px;color:var(--c-muted);line-height:1.6;margin:0;}
.ref-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.ref-step{background:#fff;border:1px solid var(--c-border);border-radius:16px;padding:32px 28px;text-align:center;position:relative;transition:box-shadow .2s,transform .2s;}
.ref-step:hover{box-shadow:0 18px 40px rgba(11,13,49,.1);transform:translateY(-4px);}
.ref-step .rs-num{width:52px;height:52px;margin:0 auto 18px;border-radius:50%;background:linear-gradient(140deg,#0a1fd0,#3a52ff);color:#fff;font-size:22px;font-weight:800;display:flex;align-items:center;justify-content:center;}
.ref-step h3{font-size:19px;font-weight:700;color:var(--c-ink-strong);margin:0 0 10px;}
.ref-step p{font-size:14.5px;line-height:1.6;color:var(--c-body);margin:0;}
.ref-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;max-width:1000px;margin:0 auto;}
.ref-form-card{background:#fff;border:1px solid var(--c-border);border-radius:16px;padding:36px 34px;box-shadow:0 10px 36px rgba(11,13,49,.08);}
.ref-form-card h3{font-size:22px;font-weight:800;color:var(--c-ink);margin:0 0 6px;letter-spacing:-.01em;}
.ref-form-card .fc-sub{font-size:14px;color:var(--c-muted);margin:0 0 22px;}
.ref-benefits{display:flex;flex-direction:column;gap:18px;}
.ref-benefit{display:flex;gap:14px;align-items:flex-start;}
.ref-benefit .rb-ic{flex:0 0 44px;width:44px;height:44px;border-radius:12px;background:#E7EDFB;display:flex;align-items:center;justify-content:center;}
.ref-benefit .rb-ic svg{width:22px;height:22px;}
.ref-benefit h4{font-size:16px;font-weight:700;color:var(--c-ink-strong);margin:0 0 4px;}
.ref-benefit p{font-size:14px;line-height:1.55;color:var(--c-body);margin:0;}

/* ============================================================
   CONTACT (Schedule Consultation) + APPLY pages
   ============================================================ */
.lead-hero{background:linear-gradient(120deg,#04114f 0%,#0a1fd0 56%,#1b34e6 100%);color:#fff;position:relative;overflow:hidden;}
.lead-hero .wrap{position:relative;z-index:2;padding:60px 24px 64px;}
.lead-hero .crumbs,.lead-hero .crumbs a{color:rgba(255,255,255,.72);}
.lead-hero .crumbs .cur{color:#fff;}
.lead-hero .eyebrow{background:rgba(255,255,255,.14);color:#dfe5ff;}
.lead-hero h1{font-size:clamp(32px,4.6vw,52px);font-weight:800;letter-spacing:-.02em;line-height:1.05;margin:16px 0 16px;max-width:18ch;text-wrap:balance;}
.lead-hero p.sub{font-size:clamp(16px,1.9vw,18px);color:rgba(255,255,255,.86);max-width:62ch;line-height:1.6;margin:0 0 26px;}
.lead-trust{display:flex;gap:14px;flex-wrap:wrap;align-items:center;}
.lead-trust .lt-chip{display:inline-flex;align-items:center;gap:9px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:9px 16px;font-size:13.5px;font-weight:600;}
.lead-trust .lt-chip .lt-g{width:20px;height:20px;display:block;}
.lead-trust .lt-chip .stars{color:#FFC53D;letter-spacing:1px;}

.lead-body{padding:0;margin-top:-40px;position:relative;z-index:3;}
.lead-body .wrap{padding-bottom:72px;}
.lead-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:30px;align-items:start;}
.form-card{background:#fff;border:1px solid var(--c-border);border-radius:18px;padding:38px 36px;box-shadow:0 24px 60px rgba(11,13,49,.12);}
.form-card h2{font-size:clamp(22px,2.4vw,28px);font-weight:800;color:var(--c-ink);letter-spacing:-.01em;margin:0 0 6px;}
.form-card .fc-sub{font-size:14.5px;color:var(--c-muted);margin:0 0 26px;line-height:1.55;}
.form-section{margin-bottom:26px;}
.form-section + .form-section{padding-top:24px;border-top:1px solid var(--c-border);}
.form-legend{display:flex;align-items:center;gap:11px;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--c-brand);margin:0 0 18px;}
.form-legend .fl-num{width:26px;height:26px;border-radius:50%;background:#E7EDFB;color:var(--c-brand);font-size:13px;display:flex;align-items:center;justify-content:center;font-weight:800;}
.field label .req,.consent .req{color:var(--c-brand);margin-left:2px;}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:#E23B3B;box-shadow:0 0 0 3px rgba(226,59,59,.12);}
.field-err{display:none;font-size:12px;color:#E23B3B;font-weight:600;margin-top:6px;}
.field.invalid .field-err{display:block;}
.consent{display:flex;gap:11px;align-items:flex-start;margin:6px 0 22px;}
.consent input{margin-top:3px;flex:0 0 auto;width:18px;height:18px;accent-color:var(--c-brand);}
.consent label{font-size:13px;line-height:1.5;color:var(--c-muted);}
.consent.invalid label{color:#E23B3B;}
.consent.invalid input{outline:2px solid #E23B3B;outline-offset:2px;}
.radio-row{display:flex;gap:10px;flex-wrap:wrap;}
.radio-chip{position:relative;}
.radio-chip input{position:absolute;opacity:0;inset:0;cursor:pointer;}
.radio-chip span{display:inline-flex;align-items:center;justify-content:center;padding:11px 18px;border:1px solid var(--c-border);border-radius:10px;font-size:14px;font-weight:600;color:var(--c-ink-strong);cursor:pointer;transition:.15s;}
.radio-chip input:checked + span{border-color:var(--c-brand);background:#EEF2FE;color:var(--c-brand);}
.radio-chip input:focus-visible + span{box-shadow:0 0 0 3px rgba(1,14,208,.18);}
.btn-block{width:100%;justify-content:center;padding:16px;font-size:16px;}
.svc-fields{margin-top:4px;}
.svc-fields .sf-note{font-size:13px;color:var(--c-muted);margin:0 0 16px;display:flex;gap:8px;align-items:center;}
.svc-fields .sf-note b{color:var(--c-ink-strong);}
.apply-fieldgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.apply-fieldgrid .field.full{grid-column:1/-1;}
@media (max-width:560px){.apply-fieldgrid{grid-template-columns:1fr;}}

/* Success state */
.form-success{text-align:center;padding:36px 24px;}
.form-success .fs-ic{width:72px;height:72px;margin:0 auto 20px;border-radius:50%;background:#E7F6EE;display:flex;align-items:center;justify-content:center;}
.form-success .fs-ic svg{width:34px;height:34px;}
.form-success h3{font-size:26px;font-weight:800;color:var(--c-ink);letter-spacing:-.01em;margin:0 0 12px;}
.form-success p{font-size:16px;color:var(--c-body);line-height:1.6;margin:0 auto 24px;max-width:46ch;}
.form-success .fs-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}

/* Sidebar cards */
.lead-side{display:flex;flex-direction:column;gap:20px;position:sticky;top:110px;}
.info-card{background:#fff;border:1px solid var(--c-border);border-radius:18px;padding:28px 26px;box-shadow:0 6px 24px rgba(11,13,49,.06);}
.info-card.brand{background:linear-gradient(150deg,#020a9e,#0a1fd0);color:#fff;border:none;}
.info-card h3{font-size:18px;font-weight:700;margin:0 0 18px;color:var(--c-ink);}
.info-card.brand h3{color:#fff;}
.info-row{display:flex;gap:14px;align-items:flex-start;margin-bottom:18px;}
.info-row:last-child{margin-bottom:0;}
.info-row .ir-ic{flex:0 0 42px;width:42px;height:42px;border-radius:12px;background:#E7EDFB;display:flex;align-items:center;justify-content:center;}
.info-row .ir-ic svg{width:20px;height:20px;}
.info-row .ir-lbl{font-size:12px;color:var(--c-muted);font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px;}
.info-row .ir-val{font-size:15.5px;font-weight:700;color:var(--c-ink-strong);}
.info-row .ir-val a{color:var(--c-brand);}
.info-card.brand .ir-ic{background:rgba(255,255,255,.14);}
.info-card.brand .ir-lbl{color:rgba(255,255,255,.7);}
.info-card.brand .ir-val,.info-card.brand .ir-val a{color:#fff;}
.rate-card{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--c-border);border-radius:18px;padding:20px 24px;box-shadow:0 6px 24px rgba(11,13,49,.06);}
.rate-card .rc-g{width:34px;height:34px;flex:0 0 34px;}
.rate-card .rc-score{font-size:22px;font-weight:800;color:var(--c-ink);line-height:1;}
.rate-card .rc-score .stars{color:#F5A623;font-size:15px;letter-spacing:1px;}
.rate-card .rc-lbl{font-size:12.5px;color:var(--c-muted);margin-top:3px;}
.trust-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:14px;}
.trust-list li{display:flex;gap:12px;align-items:flex-start;font-size:14.5px;line-height:1.5;color:var(--c-body);}
.info-card.brand .trust-list li{color:#eaf0ff;}
.trust-list li .tl-ck svg path{stroke:#fff;}
.trust-list li .tl-ck{flex:0 0 22px;width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;}
.trust-list li .tl-ck svg{width:12px;height:12px;}

/* Apply step chips */
.apply-steps{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px;}
.apply-steps .as-chip{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:8px 15px;font-size:13px;font-weight:600;color:rgba(255,255,255,.92);}
.apply-steps .as-chip .as-n{width:20px;height:20px;border-radius:50%;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;}

@media (max-width:920px){
  .lead-grid{grid-template-columns:1fr;}
  .lead-side{position:static;}
}
@media (max-width:560px){
  .form-card{padding:28px 20px;}
  .lead-body{margin-top:-28px;}
}

/* ============================================================
   FOOTER — full responsive
   ============================================================ */
/* Delivered footer responsive: brand banner on top ≤1024, 2 link cols ≤700 (+dots off),
   left-aligned ≤460, tighter ≤360. */
@media (max-width:1024px){
  .footer-grid{grid-template-columns:repeat(4,1fr);gap:40px 32px;padding:48px var(--gutter);}
  .footer-grid > .footer-brand{grid-column:1/-1;}
  .footer-brand .brand-tag{max-width:44ch;}
  .news{max-width:520px;margin-left:auto;margin-right:auto;text-align:center;}
}
@media (max-width:700px){
  .footer-grid{grid-template-columns:repeat(2,1fr);gap:34px 30px;padding:44px var(--gutter);}
  .footer-links-2{grid-template-columns:1fr;gap:9px;}
  .footer-dots{display:none;}
}
@media (max-width:980px){
  .bottom-row{gap:16px 28px;}
  .bottom-row .bsep{display:none;}
}
@media (max-width:680px){
  .bottom-row{flex-direction:column;align-items:center;gap:18px;padding:24px var(--gutter);}
  .bottom-row .bsep{display:none;}
  .binfo{text-align:center;}
  .socials{gap:22px;}
  .copyright{flex-direction:column;gap:8px;padding-bottom:24px;}
}
@media (max-width:460px){
  .footer-grid{grid-template-columns:repeat(2,1fr);gap:30px 20px;padding:36px var(--gutter);text-align:left;}
  .footer-grid .footer-links,.footer-grid .footer-links-2{align-items:start;}
  .footer-links-2{grid-template-columns:1fr;}
  .footer-allareas{margin-top:14px;}
}
@media (max-width:360px){
  .footer-grid{gap:26px 14px;}
  .footer-links a{font-size:13.5px;}
}
@media (max-width:380px){
  .socials{gap:14px;}
  .social{font-size:11px;}
  .reviews-rate{padding:12px 16px;}
}
.svc-more-grid p{font-size:13px;line-height:1.45;color:var(--c-muted);margin:0;}

/* ============ RESPONSIVE BREAKPOINTS ============ */
@media (max-width:1080px){
  .svc-layout{grid-template-columns:1fr 280px;gap:38px;}
}
@media (max-width:960px){
  .svc-layout{grid-template-columns:1fr;gap:40px;}
  .svc-side{position:static;flex-direction:row;flex-wrap:wrap;align-items:flex-start;}
  .svc-side .side-card{flex:1 1 280px;}
  .related-grid{grid-template-columns:repeat(2,1fr);}
  .list-grid{grid-template-columns:repeat(2,1fr);}
  .svc-more-grid{grid-template-columns:repeat(2,1fr);}
  .careers-split{grid-template-columns:1fr;gap:30px;}
  .careers-img-r{order:-1;}
  .ref-steps{grid-template-columns:1fr;}
  .ref-form-grid{grid-template-columns:1fr;gap:30px;}
  .rev-prev{left:-8px;}
  .rev-next{right:-8px;}
}
@media (max-width:760px){
  .cards{grid-template-columns:1fr;}
  .doc-grid{grid-template-columns:1fr;}
  .related-grid{grid-template-columns:1fr;}
  .list-grid{grid-template-columns:1fr;}
  .svc-more-grid{grid-template-columns:1fr;}
  .bottom-row{justify-content:center;text-align:center;}
  .bottom-row .bsep{display:none;}
  .socials{flex-wrap:wrap;justify-content:center;}
  .contact-left{padding:38px 26px;}
  .contact-right{padding:30px 24px;}
  .benefits{grid-template-columns:1fr;}
  .rev-arrow{display:none;}
  .r-card{flex-basis:300px;max-width:300px;}
  .reviews-head{flex-direction:column;align-items:flex-start;}
}
@media (max-width:560px){
  .svc-hero-cta{flex-direction:column;}
  .svc-hero-cta .btn{width:100%;justify-content:center;}
  .cta-band .cta-row{flex-direction:column;}
  .cta-band .cta-row .btn{width:100%;justify-content:center;}
  .two-col{grid-template-columns:1fr;}
  .svc-side{flex-direction:column;}
  .article-wrap blockquote{font-size:18px;}
  .ref-amounts{gap:12px;}
  .ref-amt{min-width:0;width:100%;padding:22px 26px;}
  .ref-plus{transform:rotate(90deg);}
  .r-card{flex-basis:84vw;max-width:84vw;}
}
@media (max-width:380px){
  .wrap{padding-left:18px;padding-right:18px;}
  .logo .name{font-size:22px;}
  .btn{padding:12px 18px;font-size:14px;}
  .header-right{gap:12px;}
}


/* ============================================================
   CINEMATIC HERO  (markup: homepage; reusable as /includes/hero.php
   + /assets/css/hero.css + /assets/js/hero.js — see hero-cinematic.html)
   ============================================================ */
.tc-hero{position:relative;height:100svh;min-height:560px;max-height:900px;overflow:hidden;display:flex;align-items:center;isolation:isolate;}
.tc-hero__media{position:absolute;inset:-2%;z-index:1;transform:scale(1.04);will-change:transform;}
.tc-hero__media img,.tc-hero__media video,.tc-hero__media image-slot{width:100%;height:100%;object-fit:cover;display:block;}
.tc-hero__veil{position:absolute;inset:0;z-index:2;background:linear-gradient(92deg, rgba(4,8,28,.92) 0%, rgba(5,11,46,.74) 38%, rgba(7,16,72,.30) 72%, rgba(7,16,72,.12) 100%);}
.tc-hero__veil::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(4,8,28,.55),transparent 42%);}
.tc-hero__inner{position:relative;z-index:3;width:100%;max-width:1240px;margin:0 auto;padding:0 clamp(22px,5vw,64px);color:#fff;}
.tc-hero__eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#bcc7ff;}
.tc-hero__eyebrow .pip{width:7px;height:7px;border-radius:50%;background:#3fd07a;box-shadow:0 0 0 4px rgba(63,208,122,.22);}
.tc-hero h1{font-size:clamp(34px,5.6vw,66px);line-height:1.0;letter-spacing:-.03em;font-weight:800;margin:20px 0 0;max-width:16ch;text-wrap:balance;color:#fff;}
.tc-hero__sub{font-size:clamp(16px,1.5vw,19px);line-height:1.55;color:rgba(255,255,255,.84);margin:22px 0 0;max-width:46ch;}
.tc-hero__cta{display:flex;align-items:center;gap:16px;margin:34px 0 0;flex-wrap:wrap;}
.tc-hero .tc-btn{display:inline-flex;align-items:center;gap:9px;font:inherit;font-weight:700;font-size:16px;border-radius:11px;padding:16px 30px;text-decoration:none;cursor:pointer;border:none;transition:transform .15s,box-shadow .15s,background .15s;}
.tc-hero .tc-btn--primary{background:#fff;color:#010ED0;box-shadow:0 14px 34px rgba(0,0,0,.28);}
.tc-hero .tc-btn--primary:hover{transform:translateY(-2px);}
.tc-hero .tc-btn--ghost{background:rgba(255,255,255,.08);color:#fff;border:1.5px solid rgba(255,255,255,.4);}
.tc-hero .tc-btn--ghost:hover{background:rgba(255,255,255,.16);}
.tc-hero__trust{display:inline-flex;align-items:center;gap:9px;margin:30px 0 0;font-size:14px;color:rgba(255,255,255,.78);}
.tc-hero__trust .g{width:20px;height:20px;display:inline-flex;}
.tc-hero__trust .g svg{width:20px;height:20px;}
.tc-hero__trust b{color:#fff;font-weight:700;}
.tc-hero__trust .stars{color:#FFC53D;letter-spacing:1px;}
.tc-hero__chips{display:flex;gap:9px;margin:30px 0 0;flex-wrap:wrap;}
.tc-hero__chips span{font-size:12.5px;font-weight:600;color:#eaeeff;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:8px 14px;}
.tc-hero__cue{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);z-index:3;color:rgba(255,255,255,.6);font-size:11px;letter-spacing:.18em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:8px;}
.tc-hero__cue i{width:1px;height:28px;background:linear-gradient(rgba(255,255,255,.7),transparent);animation:tccue 1.8s ease-in-out infinite;}
@keyframes tccue{0%,100%{opacity:.3;transform:scaleY(.6);}50%{opacity:1;transform:scaleY(1);}}
.tc-hero .fu{opacity:1;transform:none;}
.tc-hero.is-ready .fu{opacity:0;transform:translateY(20px);animation:tcfu .9s cubic-bezier(.16,.84,.44,1) forwards;}
.tc-hero.is-ready .fu-1{animation-delay:.05s;}.tc-hero.is-ready .fu-2{animation-delay:.16s;}.tc-hero.is-ready .fu-3{animation-delay:.28s;}.tc-hero.is-ready .fu-4{animation-delay:.40s;}.tc-hero.is-ready .fu-5{animation-delay:.52s;}
@keyframes tcfu{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion: reduce){.tc-hero.is-ready .fu{animation:none;opacity:1;transform:none;}.tc-hero__cue{display:none;}}
@media (max-width:760px){
  .tc-hero{height:auto;min-height:0;padding:96px 0 52px;}
  .tc-hero__media{position:absolute;inset:0;transform:none !important;}
  .tc-hero__cue{display:none;}
  .tc-hero h1{font-size:clamp(30px,9vw,40px);}
  .tc-hero__cta{gap:12px;width:100%;}
  .tc-hero .tc-btn{flex:1 1 auto;justify-content:center;}
}


/* ============================================================
   HERO B — Image First (text block first, then media) · photo-led + metrics
   ============================================================ */
.hero{padding:0;}
/* Handoff §1 — NO min-height: the hero height comes from its content. A fixed floor
   (was clamp(540px,64vh,680px) / clamp(600px,66vh,760px) at ≥1280) rendered as empty
   bands with the centred media panel floating in the middle — the white space the
   client rejected. */
.tc-heroB{display:grid;grid-template-columns:1fr 1.34fr;min-height:0;}
.tc-heroB__left{display:flex;flex-direction:column;justify-content:center;padding:72px clamp(40px,5vw,80px) 72px max(24px,calc((100vw - 1240px)/2));}
.tc-heroB__eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--c-brand);}
.tc-heroB__eyebrow .pip{width:7px;height:7px;border-radius:50%;background:#1E9E5A;box-shadow:0 0 0 4px rgba(30,158,90,.18);}
.tc-heroB h1{font-size:clamp(38px,4.6vw,68px);line-height:1.0;letter-spacing:-.03em;font-weight:800;color:var(--c-ink);margin:22px 0 0;max-width:14ch;text-wrap:balance;}
.tc-heroB__sub{font-size:clamp(17px,1.4vw,21px);line-height:1.55;color:var(--c-body);margin:24px 0 0;max-width:46ch;}
.tc-heroB__cta{display:flex;align-items:center;gap:18px;margin:30px 0 0;flex-wrap:wrap;}
.tc-heroB__metrics{display:flex;gap:clamp(22px,3vw,40px);margin:34px 0 0;flex-wrap:wrap;}
.tc-heroB__metrics .it{display:flex;flex-direction:column;}
.tc-heroB__metrics .n{font-size:clamp(24px,2.2vw,34px);font-weight:800;color:var(--c-ink);letter-spacing:-.01em;line-height:1;}
.tc-heroB__metrics .l{font-size:13px;color:var(--c-muted);font-weight:600;margin-top:6px;}
.tc-heroB__trust{display:flex;align-items:center;gap:9px;margin:26px 0 0;font-size:14px;color:var(--c-muted);}
.tc-heroB__trust .g{display:inline-flex;width:20px;height:20px;}
.tc-heroB__trust .g svg{width:20px;height:20px;}
.tc-heroB__trust b{color:var(--c-ink-strong);font-weight:700;}
.tc-heroB__trust .stars{color:#F5A623;letter-spacing:1px;}
/* Small "Canada-wide" chip in the trust row — carries the coverage signal in the hero
   now that the still suppresses the overlaid ribbon (see .tc-heroB__media.is-still). */
.tc-heroB__trust .tc-heroB__cw{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border:1px solid var(--c-border);border-radius:999px;font-size:12.5px;font-weight:600;color:var(--c-ink-strong);}
/* media panel (video drop-in) — Handoff §1 geometry: a 16:9 box whose HEIGHT derives
   from its grid-column WIDTH via aspect-ratio (never a min-height — a fixed height
   alongside aspect-ratio makes a stretched grid item compute its width from that
   height and overflow its cell). overflow:hidden keeps the object-fit:cover video
   inside the panel. The @min-width:861px rule below sets align-self:center + height:auto
   so the panel sits at its aspect height instead of stretching to the grid row. */
.tc-heroB__media{position:relative;overflow:hidden;background:#fff;aspect-ratio:3/2;min-height:0;}
/* Hero loading placeholder (Handoff §1) — light brand tint + a brand-blue shimmer.
   The panel background is now white, so the old 9%-white shimmer was invisible and a
   slow video load showed an empty white rectangle. The tint + blue sheen give the
   loading state visible weight until the video (or poster) paints. */
.tc-heroB__media .tc-heroH__ph{position:absolute;inset:0;z-index:1;background:var(--c-tint,#EEF1FA);transition:opacity .4s ease;}
.tc-heroB__media .tc-heroH__ph::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 34%,rgba(1,11,173,.10) 50%,transparent 66%);background-size:260% 100%;animation:tchShimmer 4s linear infinite;}
@keyframes tchShimmer{to{background-position:-260% 0;}}
.tc-heroB__ribbon{position:absolute;top:22px;left:22px;z-index:3;display:inline-flex;align-items:center;gap:8px;background:rgba(8,12,40,.5);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.2);color:#fff;font-size:12.5px;font-weight:600;padding:9px 15px;border-radius:999px;}
.tc-heroB__media .tc-heroH__badge{position:absolute;top:22px;right:22px;white-space:nowrap;display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.16);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.25);color:#fff;font-size:12px;font-weight:700;padding:8px 14px;border-radius:999px;}
.tc-heroB__media .tc-heroH__play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:68px;height:68px;border-radius:50%;background:rgba(255,255,255,.94);display:flex;align-items:center;justify-content:center;box-shadow:0 16px 38px rgba(0,0,0,.34);}
.tc-heroB__media .tc-heroH__play::after{content:"";border-left:19px solid var(--c-brand);border-top:12px solid transparent;border-bottom:12px solid transparent;margin-left:5px;}
.tc-heroB__media .tc-heroH__path{position:absolute;left:0;right:0;bottom:18px;text-align:center;font-family:ui-monospace,Menlo,monospace;font-size:11px;color:rgba(255,255,255,.5);padding:0 16px;}
/* Dormant video variant (reinstatable — see home.php). object-fit MUST be contain,
   not cover: the panel is 16:9 and a non-16:9 encode would lose ~60% under cover. */
.tc-heroB__media .tc-heroH__video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;z-index:2;opacity:0;transition:opacity .5s ease;}
.tc-heroB__media .tc-heroH__video.is-ready{opacity:1;}
.tc-heroB__media.video-ready .tc-heroH__ph{opacity:0;pointer-events:none;}
/* Handoff §3 — hero STILL image (the active variant). The panel goes transparent so the
   diagonal montage's alpha gaps show the page white (not the placeholder tint). The
   width:calc(100% - 44px) is LOAD-BEARING: the panel is flush against the viewport's
   right edge where .tcbot-rail is fixed (z-index:90); without the 44px reserve the
   rightmost strip (the OPPORTUNITY panel + label) renders under the opaque rail. The
   reserve drops at ≤760px where the rail becomes a bottom dock. The autoplay-loop badge
   is hidden on the still (the image carries its own EQUIPMENT/CAPITAL/OPPORTUNITY labels). */
.tc-heroB__media.is-still{background:transparent;}
/* Handoff §2 — the STILL variant takes its height from the image (normal flow), not a
   fixed 3:2 ratio: the image reserves 44px for the floating rail so it is narrower than
   its panel, and against a fixed-ratio panel that mismatch reappears as vertical
   letterboxing. Letting the panel height follow the image means the two can't disagree.
   width:calc(100% - 44px) stays load-bearing (rail clearance). The video variant keeps
   absolute layout. */
@media (min-width:861px){
  .tc-heroB__media.is-still{aspect-ratio:auto;height:auto;}
  .tc-heroB__media.is-still .tc-heroH__still{position:static;width:calc(100% - 44px);height:auto;}
}
.tc-heroB__media .tc-heroH__still{position:absolute;top:0;left:0;width:calc(100% - 44px);height:100%;object-fit:contain;object-position:center;z-index:2;display:block;}
.tc-heroB__media.is-still .tc-heroH__badge{display:none;}
/* Still hero: the montage art bakes its own EQUIPMENT / CAPITAL / OPPORTUNITY headers,
   so the overlaid "Serving all of Canada" ribbon can only ever land on top of one of
   them (it sits top-left, over the EQUIPMENT card). Suppress it for the still — the
   Canada-wide message still reads in the top-strip flag tab (.topribbon .tr-flag) and
   the hero trust-row chip. The video variant has NO baked labels, so it keeps the
   ribbon (rule above is unscoped → only .is-still hides it). */
.tc-heroB__media.is-still .tc-heroB__ribbon{display:none;}
@media (max-width:760px){.tc-heroB__media .tc-heroH__still{width:100%;}}
/* ≥861px: the panel sits at its 16:9 aspect height instead of stretching to the grid
   row (a stretched grid item would derive width from the row height and overflow its
   cell — the horizontal-scroll bug). align-self:center centres it in the row. */
@media (min-width:861px){
  .tc-heroB__media{align-self:center;width:100%;aspect-ratio:3/2;height:auto;}
  /* Handoff §4 — proportionally smaller hero type for the 861–1279 range (the ≥1280
     block resizes it up again for the constant 560px column). */
  .tc-heroB h1{font-size:clamp(30px,3.4vw,46px);line-height:1.05;}
  .tc-heroB__sub{font-size:16.5px;line-height:1.58;}
}
/* Handoff §3 — mid-desktop/tablet-landscape (861–1279, where iPad Pro/Surface/Nest Hub
   land). Give the copy a fairer share (1fr 1.34fr → 1fr 1.12fr; was 382px of text at
   1024) and size type to it. align-items:center + tighter vertical rhythm compress the
   text column toward the 3:2 panel's height instead of the image floating in dead space. */
@media (min-width:861px) and (max-width:1279px){
  .tc-heroB{grid-template-columns:1fr 1.12fr;align-items:center;}
  .tc-heroB__left{padding-left:max(24px,calc((100vw - 1180px)/2));padding-right:clamp(22px,2.4vw,34px);padding-top:clamp(24px,2.6vw,34px);padding-bottom:clamp(24px,2.6vw,34px);}
  .tc-heroB h1{font-size:clamp(32px,3.9vw,46px);line-height:1.05;margin-top:14px;}
  .tc-heroB__sub{font-size:17px;line-height:1.55;max-width:42ch;margin-top:14px;}
  .tc-heroB__cta{margin-top:20px;gap:12px;}
  .tc-heroB__metrics{margin-top:22px;}
  .tc-heroB__metrics .n{font-size:26px;}
  .tc-heroB__metrics .l{font-size:12.5px;}
  .tc-heroB__trust{margin-top:18px;}
}
/* Handoff §5 — 861–1120: three metrics on one row (not 2+1), and the CTA pair needs
   ~392px against a 326–383px column so it can't sit inline — stack full-width like ≤860. */
@media (min-width:861px) and (max-width:1120px){
  .tc-heroB__metrics{gap:20px;}
  .tc-heroB__metrics .n{font-size:25px;}
  .tc-heroB__metrics .l{font-size:12px;}
  .tc-heroB__cta{width:100%;}
  .tc-heroB__cta .btn{flex:1 1 100%;justify-content:center;}
  .tc-heroB h1{font-size:clamp(30px,3.6vw,40px);}
  .tc-heroB__sub{font-size:16.5px;}
}
/* Handoff §5 — 861–920: the 20px metrics gap above is 2–18px short at the bottom of its
   range, so the "one row" fix only engaged ~60px above the band floor. Tighten it. */
@media (min-width:861px) and (max-width:920px){
  .tc-heroB__metrics{gap:14px;}
  .tc-heroB__metrics .n{font-size:22px;}
}
@media (min-width:1280px){
  /* Text column = left gutter + a CONSTANT 560px of content, so the text never
     shrinks as the viewport grows. .tc-heroB__left's padding-left is
     max(24px,(100vw-1240px)/2) (aligns text to a centred 1240px container); that
     gutter grows unbounded on ultrawide monitors (≈615px at 2470px), so a fractional
     ratio like 1fr 1.34fr starved the content (≈396px at 2470). The column is
     left-gutter + 560px content + the right padding clamp(40px,5vw,80px) (the gap to
     the video panel) — including that right padding is what makes the *content* land
     at 560px, not the column. Measured 560px at 1440/1600/1920/2470/2560 (556px at
     1280); the video takes the 1fr remainder and still bleeds to the right edge. */
  /* §1 — NO min-height here either; the hero takes its height from content. */
  .tc-heroB{grid-template-columns:max(640px, calc((100vw - 1240px)/2 + 640px + clamp(40px, 5vw, 80px))) 1fr;}
  /* Handoff §4 — left-column type scale, tuned to the constant 560px column so the
     eyebrow / h1 / sub / metrics / trust tiers read as a coherent set. The 45px headline
     is the CLAMP CEILING (never inline: inline beats every media query and would freeze
     it at 45px on phones). */
  .tc-heroB__eyebrow{font-size:12.5px;letter-spacing:.15em;}
  .tc-heroB h1{font-size:clamp(42px,3.4vw,64px);line-height:1.05;margin-top:20px;max-width:14ch;}
  .tc-heroB__sub{font-size:17.5px;line-height:1.6;margin-top:20px;max-width:40ch;}
  .tc-heroB__metrics .n{font-size:27px;}
  .tc-heroB__metrics .l{font-size:12.5px;}
  .tc-heroB__trust{font-size:13.5px;margin-top:24px;}
  .tc-heroB__left{padding-top:clamp(34px,3.6vw,52px);padding-bottom:clamp(34px,3.6vw,52px);}
  .tc-heroB__cta{margin-top:30px;}
  .tc-heroB__metrics{gap:44px;margin-top:34px;}
}
/* Handoff §2 — still-hero cap for very wide displays: keep the panel ≤1120px (tightened
   from 1400 for the 3:2 image, which grows tall fast — uncapped at ~2470px it drives a
   ~830px hero), flush right. The .tc-heroH__still width:calc(100% - 44px) rail reserve
   must keep applying — do NOT override it here, or the image re-occludes under .tcbot-rail. */
@media (min-width:1700px){
  /* Ultrawide gap tightening: the copy's true content is ~474px (the sub line), but the
     ≥1280 track reserves 640px — leaving ~166px of dead space between the text and the
     image that reads as a middle canyon on a wide monitor. Reserve 500px here instead
     (still clears the 474px sub with room, so NO copy element reflows or shrinks — the
     h1/sub/metrics are all ≤474px) so the image column starts ~140px closer to the copy.
     Copy stays aligned to the centred 1240 container (its padding-left gutter is
     unchanged), so it still lines up with the nav + the sections below. */
  .tc-heroB{grid-template-columns:max(640px, calc((100vw - 1240px)/2 + 500px + clamp(40px, 5vw, 80px))) 1fr;}
  /* Cap raised 1180→1340 so at ≤2560 the panel still fills its column and the image
     keeps bleeding to the right edge (~44px rail margin) as delivered — the narrower
     copy track already closed the middle canyon, so we no longer need the tight cap
     that left a right-edge void. Beyond ~2600px the cap binds again to bound hero
     height. */
  .tc-heroB__media{max-width:1340px;margin-left:0;margin-right:auto;}
}
@media (max-width:860px){
  .tc-heroB{grid-template-columns:1fr;min-height:0;}
  .tc-heroB__media{order:2;aspect-ratio:3/2;min-height:0;}
  .tc-heroB__left{padding:44px 24px 36px;}
  .tc-heroB h1{font-size:clamp(32px,8.5vw,42px);max-width:18ch;}
  .tc-heroB__cta{width:100%;}
  .tc-heroB__cta .btn{flex:1 1 auto;justify-content:center;}
  .tc-heroB__play{width:58px;height:58px;}
}
@media (max-width:420px){
  .tc-heroB__left{padding:34px 20px 30px;}
  .tc-heroB__cta{flex-direction:column;align-items:stretch;gap:12px;}
}

/* Handoff §A/§3 (approved, additive) — Solutions .card .icon gets the same soft
   lavender rounded badge as the Features .feat-ic. Later in the cascade than the
   base .card .icon rule, so it adds the badge + sizes the glyph; no markup/JS change. */
.card .icon{
  width:52px;height:52px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#EEF2FE 0%,#E3E9FC 100%);
  margin-bottom:16px;
}
.card .icon svg{width:30px;height:30px;}

/* Handoff §G (approved, additive) — the desktop header now carries a 5th top-level
   item (Inventory). Keep top-level nav labels on one line so the extra item never
   wraps "Join us" onto two lines. Targets only the top-level links/buttons; the
   dropdown menus (which intentionally stack) are unaffected. */
.mainnav > a, .mainnav .navmega-btn, .mainnav .navdrop-btn{white-space:nowrap;}
/* Handoff §G — the 5-item desktop nav needs ≥1120px; collapse it to the burger
   menu in the 981–1119px band (small laptops/tablet-landscape) so it never
   overflows. Only the header nav controls toggle here — the ≤980px block keeps
   all other responsive layout. Pairs with the min-width:1120px hide above. */
@media (min-width:981px) and (max-width:1199px){
  .mainnav,.support-col,.vrule,.header-login,.header-phone,.header-div{display:none;}
  .burger{display:flex;}
}

/* Final top-ribbon colours (approved, additive) — supersedes the earlier ribbon
   palette (#0B0D31 flag / #0F0F0F body, and the #010ED0 era). Selectors match the
   base rules at lines 47/49; later in the cascade with equal specificity, so these
   win with no markup/JS change. Only the ribbon strip band (y=0..47) is affected. */
.topribbon .tr-flag{background:#010BAD;}
.topribbon .tr-body{background:#232627;}

/* ---------- Service hero: angled diagonal split (concept A) ---------- */
.svc-hero{padding:0;background:#020a9e;}
.svc-hero>.wrap{max-width:none;width:100%;padding:0;}
.svc-hero .crumbs{display:none;}
.svc-hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:0;margin:0;align-items:stretch;min-height:440px;position:relative;}
.svc-hero .svc-hero-text{padding:64px clamp(24px,4vw,64px) 64px max(24px,calc((100vw - 1200px)/2));align-self:center;position:relative;z-index:3;}
.svc-hero h1{margin:14px 0 16px;}
.svc-hero .lead{max-width:480px;}
.svc-hero .svc-hero-cta{margin-top:26px;}
.svc-hero .service-hero-image-placeholder{position:absolute;inset:0 0 0 50%;width:auto;aspect-ratio:auto;border-radius:0;border:none;z-index:1;}
.svc-hero-grid::after{content:"";position:absolute;top:0;bottom:0;left:calc(51% - 95px);width:200px;background:#020a9e;clip-path:polygon(0 0,100% 0,42% 100%,0 100%);z-index:2;}
@media (max-width:900px){
.svc-hero-grid{grid-template-columns:1fr;min-height:0;}
.svc-hero-grid::after{display:none;}
.svc-hero .svc-hero-text{padding:44px 24px 40px;}
.svc-hero .service-hero-image-placeholder{position:relative;inset:auto;width:100%;height:250px;}
}

/* ---------- Header overflow fix (shared, root cause) ----------
   The desktop header content (~1348px: logo + 6-item nav + phone + Broker Login +
   Contact Us) exceeded the 1200px .wrap and spilled ~148px past the viewport,
   causing horizontal document scroll on every page from ~1120px up to ~1496px
   (the burger only engaged <=1119px). Fix: tighten header spacing, hide the
   redundant inline phone on mid widths (the widest optional element), and raise
   the desktop-nav threshold to 1200px (see the burger media queries) so the full
   nav only shows once it fits. No per-page markup changes. */
.nav{gap:24px;}
.mainnav{gap:22px;}
.header-right{gap:14px;}
/* Inline phone + its divider only appear once there's room for the full cluster. */
@media (max-width:1439px){ .header-phone, .header-div{display:none;} }

/* ---------- Solutions cards: concept 01 interaction ---------- */
.solutions .card{position:relative;overflow:hidden;}
.solutions .card::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--c-brand);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.2,.8,.2,1);z-index:3;}
.solutions .card:hover::before,.solutions .card:focus-visible::before{transform:scaleX(1);}
.solutions .card:hover{transform:translateY(-6px);box-shadow:0 26px 50px -30px rgba(11,13,49,.5);}
.solutions .card .learn{transition:gap .25s;}
.solutions .card:hover .learn{gap:11px;}
@media (prefers-reduced-motion:reduce){.solutions .card,.solutions .card::before{transition:none;}.solutions .card:hover{transform:none;}}

/* ---------- Approval assessment modal (first-visit lead capture) ---------- */
.tcm-scrim{position:fixed;inset:0;z-index:9000;background:rgba(11,13,49,.55);backdrop-filter:blur(2px);opacity:0;transition:opacity .28s ease;}
.tcm-scrim.in{opacity:1;}
.tcm{position:fixed;z-index:9001;background:#fff;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 30px 70px -28px rgba(11,13,49,.7);left:50%;top:50%;transform:translate(-50%,-46%) scale(.97);opacity:0;width:min(420px,calc(100% - 32px));max-height:92vh;border-radius:16px;transition:opacity .3s cubic-bezier(.2,.8,.2,1),transform .3s cubic-bezier(.2,.8,.2,1);}
.tcm.in{opacity:1;transform:translate(-50%,-50%) scale(1);}
.tcm-grab{display:none;padding:9px 0 2px;flex:none;}
.tcm-grab i{display:block;width:38px;height:4px;border-radius:3px;background:#d6dae8;margin:0 auto;}
.tcm-x{position:absolute;right:10px;top:10px;z-index:5;width:28px;height:28px;border-radius:50%;border:none;background:rgba(11,13,49,.07);color:var(--c-ink-strong);font-size:15px;line-height:1;cursor:pointer;font-family:inherit;}
.tcm-x:hover{background:rgba(11,13,49,.14);}
.tcm-x:focus-visible{outline:2px solid var(--c-brand);outline-offset:2px;}
.tcm-scroll{overflow:auto;flex:1;min-height:0;-webkit-overflow-scrolling:touch;}
.tcm-body{padding:20px 22px 18px;}
.tcm-kick{font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--c-brand);margin:0 0 8px;}
.tcm h2{margin:0 0 7px;font-size:20px;line-height:1.18;letter-spacing:-.02em;color:var(--c-ink-strong);font-weight:800;}
.tcm-sub{margin:0 0 15px;font-size:13.5px;line-height:1.5;color:var(--c-muted);}
.tcm-f{margin:0 0 10px;}
.tcm-f label{display:block;font-size:10.5px;font-weight:700;color:var(--c-ink);margin:0 0 4px;}
.tcm-f input,.tcm-f select{width:100%;font-family:inherit;font-size:14.5px;padding:11px;border:1px solid #dfe2ee;border-radius:9px;background:#fff;color:var(--c-ink-strong);}
.tcm-f input:focus,.tcm-f select:focus{outline:none;border-color:var(--c-brand);box-shadow:0 0 0 3px rgba(1,11,173,.12);}
.tcm-f.bad input,.tcm-f.bad select{border-color:#b3261e;background:#fff7f6;}
.tcm-f .tcm-msg{display:none;font-size:10.5px;color:#b3261e;margin-top:3px;font-weight:600;}
.tcm-f.bad .tcm-msg{display:block;}
.tcm-row{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
.tcm-foot{flex:none;padding:13px 22px 18px;border-top:1px solid var(--c-border);background:#fff;}
.tcm-foot .btn{width:100%;justify-content:center;}
.tcm-mini{display:block;text-align:center;font-size:10.5px;color:var(--c-muted);margin-top:9px;line-height:1.45;}
.tcm-tr{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:10.5px;color:var(--c-muted);margin-top:13px;padding-top:12px;border-top:1px solid var(--c-border);}
.tcm-tr b{color:var(--c-brand);font-size:12.5px;}
.tcm-ok{display:none;padding:30px 22px;text-align:center;}
.tcm.done .tcm-live{display:none;}
.tcm.done .tcm-ok{display:block;}
.tcm-ok .tcm-tick{width:46px;height:46px;border-radius:50%;background:#e8f6ec;color:#0a7d33;display:flex;align-items:center;justify-content:center;font-size:22px;margin:0 auto 12px;}
.tcm-ok h2{margin:0 0 7px;}
.tcm-ok p{margin:0;font-size:13.5px;line-height:1.55;color:var(--c-muted);}
.tcm>.tcm-live{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;}
@media (max-width:640px){
  .tcm{left:0;right:0;bottom:0;top:auto;width:auto;transform:translateY(100%);border-radius:20px 20px 0 0;max-height:94vh;}
  .tcm.in{transform:translateY(0);}
  .tcm-grab{display:block;}
  .tcm-row{grid-template-columns:1fr;}
  .tcm-body{padding:14px 18px 16px;}
  .tcm-foot{padding:12px 18px 20px;}
  .tcm h2{font-size:19px;}
  .tcm-x{width:44px;height:44px;right:8px;top:8px;font-size:17px;}
}
@media (prefers-reduced-motion:reduce){.tcm,.tcm-scrim{transition:none;}}

/* hero metric figures in brand blue */
.tc-heroB__metrics .it .n{color:var(--c-brand);}

/* ---------- Floating rail safe area (batch) ----------
   The fixed right-edge rail no longer paints over content or intercepts clicks on
   links like "Learn more →": the rail container ignores pointer events while its
   pills keep them. Between 761–1300px — the band where centred .wrap content comes
   within ~44px of the viewport edge — a 52px symmetric gutter clears the rail.
   Below 761px the rail is a bottom dock, so no gutter is needed.
   Specificity note: the hero badge override is written .tc-heroB__media
   .tc-heroH__badge on purpose — a single-class selector loses to the base rule
   and silently no-ops. It shifts into the same 52px safe area. */
.tcbot-rail{pointer-events:none;}
.tcbot-rail > *{pointer-events:auto;}
@media (min-width:761px) and (max-width:1300px){
  .wrap{padding-left:52px;padding-right:52px;}
}
/* Hero badge clears the floating rail at ALL widths ≥761px, not just the 761–1300
   band the .wrap gutter uses: the hero media panel reaches the viewport edge (unlike
   centred .wrap content), so above 1300px the badge at right:22px collides with the
   edge-fixed rail. right:60px (Handoff spec) sits it just inside the rail. Below
   761px the rail is a bottom dock, so the base right:22px is fine. */
@media (min-width:761px){
  .tc-heroB__media .tc-heroH__badge{right:60px;}
}
