:root{
  --navy:#032F60; --navy-900:#021c3d; --navy-800:#05274f; --blue:#106EED; --blue-ink:#0A57C0; --blue-lt:#88B7F7;
  --ink:#0C1F33; --muted:#3A4656; --line:#E4EBF2; --bg:#F4F7FA; --white:#ffffff; --sig:#88B7F7; --paper:#EEF3FA; --line-warm:#DCE6F2;
  --maxw:1240px; --e:cubic-bezier(.16,1,.3,1); --e2:cubic-bezier(.22,1,.36,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{font-family:"Plus Jakarta Sans",system-ui,sans-serif;color:var(--ink);background:var(--white);
  font-size:clamp(1rem,.94rem + .3vw,1.15rem);line-height:1.62;overflow-x:hidden}
h1,h2,h3,h4{font-weight:800;line-height:1.02;letter-spacing:-.028em;color:var(--navy)}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,5vw,44px)}
.kick{font-weight:700;font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;color:var(--blue-ink);display:inline-flex;align-items:center;gap:10px}
.kick::before{content:"";width:18px;height:1.5px;background:var(--blue);display:inline-block}
.blue{color:var(--blue)}

/* buttons */
.btn{position:relative;display:inline-flex;align-items:center;gap:.6em;font-weight:600;font-size:.98rem;
  padding:1em 1.6em;border-radius:100px;border:0;cursor:pointer;will-change:transform;
  transition:transform .5s var(--e),box-shadow .5s var(--e),background .3s,color .3s}
.btn-primary{background:var(--blue);color:#fff;box-shadow:0 12px 34px -12px rgba(16,110,237,.65)}
.btn-primary:hover{box-shadow:0 22px 46px -14px rgba(16,110,237,.8)}
.btn-ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.26)}
.btn-ghost:hover{border-color:#fff}
.btn .ar{transition:transform .5s var(--e)}
.btn:hover .ar{transform:translateX(5px)}

/* header */
header.site{position:fixed;top:0;left:0;right:0;z-index:80;background:transparent;transform:translateY(0);
  transition:transform .45s var(--e),background .4s var(--e),box-shadow .4s var(--e),backdrop-filter .4s var(--e)}
header.site.hide{transform:translateY(-106%)}
header.site.s{background:rgba(255,255,255,.82);backdrop-filter:saturate(160%) blur(14px);box-shadow:0 1px 0 rgba(3,47,96,.07),0 14px 32px -28px rgba(3,47,96,.6)}
.nav{position:relative;display:flex;align-items:center;gap:28px;max-width:var(--maxw);margin:0 auto;padding:18px clamp(20px,5vw,44px)!important;transition:padding .4s var(--e)}
header.site.s .nav{padding-top:9px!important;padding-bottom:9px!important}
.brand{display:flex;align-items:center;gap:11px;color:#fff;position:relative}
.brand .mk{height:29px;width:auto;display:block}
.wm-txt{font-weight:800;font-size:1.24rem;letter-spacing:-.025em;color:#fff;transition:color .4s var(--e)}
header.site.s .wm-txt{color:var(--navy)}
header.site.s .nav-links a{color:var(--muted)}
header.site.s .nav-links a:hover,header.site.s .nav-links a.active{color:var(--navy)}
header.site.s .wa{color:var(--navy);border-color:rgba(3,47,96,.18)}
header.site.s .burger span{background:var(--navy)}
.brand .tagline{position:absolute;left:100%;top:50%;transform:translateY(-50%);z-index:5;display:inline-flex;flex-direction:column;justify-content:center;gap:1px;max-width:0;overflow:hidden;white-space:pre;line-height:1.25;color:var(--blue-lt);margin-left:0;padding-left:0;border-left:1px solid transparent;
  transition:max-width .6s var(--e),padding-left .6s var(--e),margin-left .6s var(--e),border-color .6s var(--e)}
.brand:hover .tagline{max-width:240px;margin-left:3px;padding-left:14px;border-left:1px solid rgba(136,183,247,.4)}
.brand .tagline .tl1{display:flex;font-size:.8rem;font-weight:600;letter-spacing:.01em}
.brand .tagline .tl1 span{display:inline-block;opacity:0;transform:translateY(5px);filter:blur(2px);transition:opacity .42s var(--e),transform .42s var(--e),filter .42s var(--e)}
.brand:hover .tagline .tl1 span{opacity:1;transform:none;filter:none;transition-delay:var(--d,0s)}
.brand .tagline .tl2{font-size:.76rem;font-style:italic;font-weight:500;color:rgba(136,183,247,.78);opacity:0;transform:translateY(3px);transition:opacity .5s var(--e),transform .5s var(--e)}
.brand:hover .tagline .tl2{opacity:1;transform:none;transition-delay:1.05s}
@media(max-width:760px){.brand .tagline{display:none}}
.nav-links{display:flex;align-items:center;gap:38px;margin-left:auto}
.nav-links a{font-weight:500;font-size:.96rem;color:rgba(233,242,255,.78);position:relative;padding:5px 0}
.nav-links a::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--blue);transition:width .4s var(--e)}
.nav-links a:hover{color:#fff}.nav-links a:hover::after{width:100%}
.nav-links a.active{color:#fff;font-weight:700}.nav-links a.active::after{width:100%;height:3px;background:var(--blue)}
/* Book-a-call + WhatsApp float in the bottom-right corner (out of the nav, more premium) */
.nav-actions{position:fixed;right:clamp(16px,3.5vw,34px);bottom:clamp(16px,3.5vw,30px);z-index:80;display:flex;align-items:center;gap:12px;opacity:0;transform:translateY(14px);pointer-events:none;transition:opacity .45s var(--e),transform .45s var(--e)}
.nav-actions.show{opacity:1;transform:none;pointer-events:auto}
.wa{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#fff;color:var(--navy);border:1px solid var(--line);box-shadow:0 14px 32px -12px rgba(3,47,96,.5);transition:transform .4s var(--e),box-shadow .4s var(--e)}
.wa:hover{transform:translateY(-3px);box-shadow:0 20px 40px -14px rgba(3,47,96,.55)}
.nav-actions .btn-primary{box-shadow:0 16px 40px -12px rgba(16,110,237,.5)}
.nav-actions .btn-primary:hover{box-shadow:0 22px 48px -14px rgba(16,110,237,.6)}
.wa:hover{background:#25D366;border-color:#25D366;transform:translateY(-2px)}
.burger{display:none;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:none;border:0;cursor:pointer;padding:8px;margin-left:auto;min-width:44px;min-height:44px}
.burger span{width:24px;height:2px;background:#fff;transition:.3s}

/* hero */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;color:#fff;overflow:hidden;isolation:isolate;
  background:radial-gradient(1100px 760px at 82% 8%,rgba(16,110,237,.42),transparent 58%),
   radial-gradient(900px 700px at 0% 100%,rgba(136,183,247,.12),transparent 55%),
   linear-gradient(155deg,#063a73 0%,var(--navy) 46%,var(--navy-900) 100%);
  padding:120px 0 60px}
.hero #sig{position:absolute;inset:0;width:100%;height:100%;z-index:1;opacity:.85;pointer-events:none}
.hero .gmark{position:absolute;right:-160px;top:50%;transform:translateY(-50%);width:min(60vw,760px);z-index:0;opacity:.07;will-change:transform}
.hero .gmark img{width:100%;display:block}
.hero-inner{position:relative;z-index:3;display:grid;grid-template-columns:1.45fr .85fr;gap:50px;align-items:center;width:100%}
.award{display:inline-flex;align-items:center;gap:11px;border:1px solid rgba(136,183,247,.4);border-radius:100px;
  padding:.55em 1.1em;font-size:.74rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--blue-lt);margin-bottom:30px}
.award .st{color:var(--blue-lt)}
.hero h1{color:#fff;font-size:clamp(3rem,2rem + 5.2vw,6.2rem);letter-spacing:-.035em;line-height:.96}
.hero h1 .l{display:block;overflow:hidden}
.hero h1 .l span{display:block;transform:translateY(110%);transition:transform 1s var(--e)}
.hero h1.in .l span{transform:none}
.hero h1 .l:nth-child(2) span{transition-delay:.09s}
.hero h1 .l:nth-child(3) span{transition-delay:.18s}
.hero .lead{font-size:clamp(1.05rem,1rem + .4vw,1.3rem);color:rgba(233,242,255,.8);max-width:42ch;margin:1.5em 0 0;line-height:1.6}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:2.2em}
.hero-side{display:flex;flex-direction:column;gap:18px}
.live-panel{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:22px;backdrop-filter:blur(6px)}
.live-panel .top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.live-panel .top b{font-size:.82rem;font-weight:600;color:rgba(233,242,255,.6);letter-spacing:.04em;text-transform:uppercase}
.live-panel .lv{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;font-weight:600;color:var(--sig)}
.live-panel .lv i{width:8px;height:8px;border-radius:50%;background:var(--sig);box-shadow:0 0 0 0 rgba(136,183,247,.6);animation:pulse 2.4s var(--e) infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(136,183,247,.55)}70%{box-shadow:0 0 0 11px rgba(136,183,247,0)}100%{box-shadow:0 0 0 0 rgba(136,183,247,0)}}
.live-rows{display:flex;flex-direction:column;gap:13px}
.lr{display:flex;align-items:center;gap:12px;font-size:.86rem;color:rgba(233,242,255,.78)}
.lr .ln{flex:1;height:6px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden}
.lr .ln b{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--blue),var(--sig));border-radius:3px;transition:width 1.3s var(--e)}
/* hero tool teaser */
.htool{display:block;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:22px;backdrop-filter:blur(6px);color:#fff;transition:transform .5s var(--e),border-color .5s var(--e),box-shadow .5s var(--e)}
.htool:hover{transform:translateY(-4px);border-color:rgba(136,183,247,.45);box-shadow:0 26px 54px -30px rgba(0,0,0,.65)}
.htool .top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.htool .top b{font-size:.82rem;font-weight:600;color:rgba(233,242,255,.62);letter-spacing:.04em;text-transform:uppercase}
.htool .tt-time{font-size:.7rem;font-weight:700;color:var(--sig);background:rgba(136,183,247,.14);padding:4px 10px;border-radius:100px}
.htool .tt-mid{display:flex;align-items:center;gap:16px;margin-bottom:20px}
.htool .tt-ring{width:60px;height:60px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;position:relative;background:conic-gradient(var(--sig) 66%,rgba(255,255,255,.12) 0)}
.htool .tt-ring::before{content:"";position:absolute;inset:6px;border-radius:50%;background:#0a2347}
.htool .tt-ring b{position:relative;font-size:1.5rem;font-weight:800;color:#fff}
.htool .tt-copy{font-size:.93rem;color:rgba(233,242,255,.82);line-height:1.5}
.htool .tt-go{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--sig);font-size:.96rem}
.htool .tt-go .ar{transition:transform .4s var(--e)}
.htool:hover .tt-go .ar{transform:translateX(5px)}
.htool-sub{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;font-weight:600;font-size:.94rem;color:rgba(233,242,255,.85)}
.htool-sub .ar{color:var(--sig);transition:transform .4s var(--e)}
.htool-sub:hover .ar{transform:translateX(5px)}
.lr .pc{font-variant-numeric:tabular-nums;color:#fff;font-weight:600;width:42px;text-align:right}
/* hero stat strip */
.hstats{position:relative;z-index:3;display:flex;flex-wrap:wrap;gap:0;margin-top:clamp(40px,6vh,72px);border-top:1px solid rgba(255,255,255,.12);padding-top:28px}
.hstat{flex:1;min-width:140px;padding-right:24px}
.hstat .n{font-size:clamp(2rem,1.4rem + 1.8vw,2.9rem);font-weight:800;color:#fff;letter-spacing:-.03em;line-height:1}
.hstat .n .blue{color:var(--blue-lt)}
.hstat .l{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(233,242,255,.72);margin-top:8px;font-weight:600}

/* section base */
section{padding:clamp(80px,11vh,140px) 0;position:relative}
.eyebrowrow{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;flex-wrap:wrap;margin-bottom:54px}
.eyebrowrow h2{font-size:clamp(2rem,1.4rem + 2.6vw,3.4rem);max-width:18ch;margin-top:.5em}
.eyebrowrow p{color:color-mix(in srgb,var(--navy) 58%,#fff);max-width:34ch;font-size:1.08rem;font-weight:500;line-height:1.5}

/* reasons / differentiators — editorial big-number rows */
.reasons{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.reason{display:grid;grid-template-columns:118px 1fr;gap:34px;align-items:start;padding:38px 12px;border-bottom:1px solid var(--line);transition:padding-left .55s var(--e),background .55s var(--e)}
.reason:hover{background:var(--bg);padding-left:26px}
.reason .no{font-size:clamp(2.6rem,2rem + 2vw,3.6rem);font-weight:800;color:var(--blue-lt);line-height:.85;letter-spacing:-.04em;transition:color .45s var(--e)}
.reason:hover .no{color:var(--blue)}
.reason h3{font-size:clamp(1.4rem,1.2rem + .9vw,2rem);margin:0 0 12px;letter-spacing:-.025em}
.reason p{color:var(--muted);font-size:1.05rem;max-width:66ch}
.reason .dia{display:none}
@media(max-width:760px){.reason{grid-template-columns:58px 1fr;gap:18px;padding:28px 6px}.reason .no{font-size:2rem}}

/* big-stats heading — clip slide-up reveal */
.bs-head{margin-bottom:46px}
.bs-head .kick{color:var(--blue-lt)}
.bs-title{font-size:clamp(1.9rem,1.3rem + 2.4vw,3.1rem);color:#fff;letter-spacing:-.025em;margin-top:.34em;line-height:1.04;overflow:hidden}
.bs-title span{display:inline-block;transform:translateY(110%);transition:transform .95s var(--e)}
.bs-head.in .bs-title span{transform:none}
@media(prefers-reduced-motion:reduce){.bs-title span{transform:none}}

/* cursor-reactive color glow on dark blocks */
.glow{position:relative}
.glow>*{position:relative;z-index:1}
.glow::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;transition:opacity .7s var(--e);
  background:radial-gradient(440px circle at var(--mx,50%) var(--my,50%),rgba(136,183,247,.22),rgba(16,110,237,.10) 35%,transparent 60%)}
.glow.lit::before{opacity:1}
/* light-section variant: subtle navy/blue tint visible on white */
.glow.glow-lite::before{background:radial-gradient(460px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--blue) 14%,transparent),color-mix(in srgb,var(--sig) 8%,transparent) 38%,transparent 62%)}
@media(prefers-reduced-motion:reduce){.glow::before{display:none}}

/* big stats band — flex so it adapts to 3 or 5 items without dead gaps */
.bigstats{background:var(--navy);color:#fff;overflow:hidden}
.bigstats .row{display:flex;flex-wrap:wrap;gap:44px 40px}
.bs{position:relative;flex:1 1 180px;min-width:150px}
.bs .n{font-size:clamp(2.8rem,1.6rem + 3.4vw,4.6rem);font-weight:800;letter-spacing:-.05em;line-height:.9;color:#fff}
.bs .n .u{color:var(--blue-lt)}
.bs .l{font-size:.98rem;color:rgba(233,242,255,.7);margin-top:14px;max-width:26ch}
.bs::before{content:"";position:absolute;left:-20px;top:6px;bottom:6px;width:1px;background:rgba(255,255,255,.12)}
.bs:first-child::before{display:none}
.bs-reach{margin-top:52px;padding-top:30px;border-top:1px solid rgba(255,255,255,.1);text-align:center;font-size:.82rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-lt)}
@media(max-width:760px){.bigstats .row{gap:34px 30px}.bs{flex:1 1 130px}.bs::before{display:none}}

/* trusted-by logo wall — real client marks, grayscale lifts to color on hover */
/* trusted-by logo grid */
.logowall{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;margin-top:42px}
.lgi{background:#fff;border:1px solid var(--line);border-radius:14px;height:104px;display:grid;place-items:center;padding:20px;transition:transform .45s var(--e),box-shadow .45s var(--e),border-color .45s var(--e)}
.lgi:hover{border-color:var(--blue);box-shadow:0 16px 34px -20px rgba(3,47,96,.45);transform:translateY(-4px)}
.lgi img{max-width:100%;max-height:58px;object-fit:contain;filter:none;transition:transform .45s var(--e)}
.lgi:hover img{filter:none}
@media(max-width:900px){.logowall{grid-template-columns:repeat(4,1fr)}}
@media(max-width:560px){.logowall{grid-template-columns:repeat(2,1fr);gap:12px}.lgi{height:86px;padding:14px}}

/* office constellation — geographic dots, no map landmass */
.constell{position:relative;aspect-ratio:1/.74;border-radius:20px;border:1px solid rgba(255,255,255,.1);
  background:radial-gradient(120% 100% at 80% 10%,rgba(16,110,237,.16),transparent 60%);overflow:hidden}
.constell svg{position:absolute;inset:0;width:100%;height:100%}
.cdot{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:8px;z-index:2}
.cdot i{width:15px;height:15px;border-radius:50%;background:var(--sig);box-shadow:0 0 0 6px rgba(136,183,247,.16),0 0 18px var(--sig)}
.cdot.hq i{background:var(--blue-lt);box-shadow:0 0 0 7px rgba(136,183,247,.18),0 0 22px var(--blue-lt)}
.cdot b{font-size:.96rem;color:#fff;font-weight:700;letter-spacing:-.01em}
.cdot span{font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(233,242,255,.72)}
.cdot i{animation:cpulse 2.8s var(--e) infinite}
.cdot:nth-child(2) i{animation-delay:.5s}.cdot:nth-child(3) i{animation-delay:1s}
@keyframes cpulse{0%,100%{box-shadow:0 0 0 5px rgba(136,183,247,.18),0 0 16px var(--sig)}50%{box-shadow:0 0 0 11px rgba(136,183,247,.05),0 0 24px var(--sig)}}
/* offices list with warmth */
.office .fl{font-size:1.5rem;line-height:1;flex:0 0 auto}
.office .meta{display:flex;flex-direction:column;min-width:0}
.office .meta .c{font-weight:700;font-size:1.06rem;color:#fff}
.office .meta .ad{font-size:.78rem;color:rgba(233,242,255,.72);margin-top:3px}
@media(prefers-reduced-motion:reduce){.cdot i{animation:none}}

/* sector grid (home) — equal weight, no tiering */
.secgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:18px}
.sec{display:flex;align-items:center;gap:13px;padding:17px 18px;border:1px solid var(--line);border-radius:14px;background:#fff;transition:transform .45s var(--e),box-shadow .45s var(--e),border-color .45s var(--e)}
.sec:hover{border-color:var(--blue);transform:translateY(-3px);box-shadow:0 16px 32px -22px rgba(3,47,96,.4)}
.sec .sd{width:11px;height:11px;background:var(--blue);transform:rotate(45deg);border-radius:2px;flex:0 0 auto;transition:transform .45s var(--e)}
.sec:hover .sd{transform:rotate(45deg) scale(1.25)}
.sec b{font-size:.96rem;font-weight:600;letter-spacing:-.01em;color:var(--navy)}
.secmore{margin-top:18px;color:var(--muted);font-size:.96rem}
.secmore b{color:var(--navy);font-weight:600}
@media(max-width:900px){.secgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:500px){.secgrid{grid-template-columns:1fr}}

/* services card grid (home "what we do") */
/* what we do — featured tile + editorial list */
.wwd{display:grid;grid-template-columns:1.05fr 1fr;gap:24px;margin-top:26px;align-items:stretch}
.wwd-feat{position:relative;overflow:hidden;background:linear-gradient(155deg,var(--navy),var(--navy-900));color:#fff;border-radius:22px;padding:clamp(28px,3vw,42px);display:flex;flex-direction:column;text-decoration:none;transition:transform .5s var(--e),box-shadow .5s var(--e)}
.wwd-feat:hover{transform:translateY(-4px);box-shadow:0 34px 66px -36px rgba(3,47,96,.75)}
.wwd-feat::after{content:"";position:absolute;width:320px;height:320px;right:-90px;top:-90px;border-radius:50%;background:radial-gradient(circle,rgba(136,183,247,.22),transparent 66%);pointer-events:none}
.wwd-feat>*{position:relative;z-index:1}
.wwd-feat .fk{font-size:.76rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--blue-lt)}
.wwd-feat .si{width:56px;height:56px;border-radius:15px;display:grid;place-items:center;background:rgba(255,255,255,.09);color:#fff;margin:18px 0 auto}
.wwd-feat .si svg{width:30px;height:30px}
.wwd-feat h3{font-size:clamp(1.6rem,1.2rem + 1.4vw,2.3rem);letter-spacing:-.025em;margin:26px 0 12px;color:#fff}
.wwd-feat p{color:rgba(233,242,255,.78);line-height:1.62;max-width:44ch;font-size:1.02rem}
.wwd-feat .fchips{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.wwd-feat .fchips span{font-size:.82rem;padding:6px 13px;border-radius:100px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:rgba(233,242,255,.9)}
.wwd-feat .flnk{margin-top:26px;color:var(--sig);font-weight:700;display:inline-flex;align-items:center;gap:9px}
.wwd-feat .flnk .ar{transition:transform .4s var(--e)}.wwd-feat:hover .flnk .ar{transform:translateX(5px)}
.wwd-list{display:flex;flex-direction:column;justify-content:center}
.wwd-item{display:flex;gap:16px;align-items:center;padding:19px 16px;border-radius:14px;text-decoration:none;transition:background .4s var(--e),padding-left .4s var(--e)}
.wwd-item+.wwd-item{border-top:1px solid var(--line)}
.wwd-item:hover{background:var(--bg);padding-left:22px}
.wwd-item .si{width:46px;height:46px;flex:0 0 auto;border-radius:12px;display:grid;place-items:center;color:var(--blue);background:color-mix(in srgb,var(--blue) 11%,transparent);transition:transform .4s var(--e)}
.wwd-item:hover .si{transform:scale(1.06)}
.wwd-item .si svg{width:25px;height:25px}
.wwd-item .tx{flex:1;min-width:0}
.wwd-item .tx b{display:block;font-size:1.08rem;color:var(--navy);letter-spacing:-.01em}
.wwd-item .tx span{font-size:.9rem;color:var(--muted)}
.wwd-item .ar{color:var(--blue);font-size:1.2rem;opacity:0;transform:translateX(-8px);transition:.4s var(--e)}
.wwd-item:hover .ar{opacity:1;transform:none}
@media(max-width:860px){.wwd{grid-template-columns:1fr}}

/* MENA map */
.map-sec{background:linear-gradient(160deg,var(--navy-900),var(--navy));color:#fff;overflow:hidden}
.map-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:50px;align-items:center}
.map-sec h2{color:#fff}
.offices{display:flex;flex-direction:column;gap:14px;margin-top:34px}
.office{display:flex;align-items:center;gap:16px;padding:18px 20px;border:1px solid rgba(255,255,255,.1);border-radius:14px;
  transition:.5s var(--e);cursor:default}
.office:hover{background:rgba(16,110,237,.12);border-color:rgba(16,110,237,.5);transform:translateX(6px)}
.office .dot{width:11px;height:11px;border-radius:50%;background:var(--sig);box-shadow:0 0 12px var(--sig);flex:0 0 auto}
.office .c{font-weight:700;font-size:1.1rem;color:#fff}
.office .r{margin-left:auto;font-size:.82rem;color:rgba(233,242,255,.72)}
.map-viz{position:relative;aspect-ratio:1/.82}
.map-viz svg{width:100%;height:100%;overflow:visible}

/* services list */
.svc{display:grid;grid-template-columns:64px 1fr auto;gap:28px;align-items:baseline;padding:32px 14px;border-bottom:1px solid var(--line);
  transition:background .5s var(--e),padding-left .5s var(--e)}
.svc:first-of-type{border-top:1px solid var(--line)}
.svc:hover{background:var(--bg);padding-left:28px}
.svc .no{font-weight:800;color:var(--blue-lt);font-size:1.05rem}
.svc:hover .no{color:var(--blue)}
.svc h3{font-size:clamp(1.4rem,1.1rem + 1vw,1.9rem);letter-spacing:-.02em}
.svc p{color:var(--muted);font-size:1rem;max-width:64ch;margin-top:8px;opacity:0;max-height:0;overflow:hidden;transition:.5s var(--e)}
.svc:hover p{opacity:1;max-height:80px;margin-top:12px}
.svc .go{color:var(--blue);font-size:1.5rem;opacity:0;transform:translateX(-10px);transition:.5s var(--e);align-self:center}
.svc:hover .go{opacity:1;transform:none}

/* industries */
.inds{background:var(--paper)}
.ind-wrap{display:flex;flex-wrap:wrap;gap:12px}
.ind{padding:.72em 1.3em;border-radius:100px;font-size:.98rem;font-weight:500;transition:.4s var(--e);cursor:default}
.ind.solid{background:var(--navy);color:#fff}
.ind.solid:hover{background:var(--blue);transform:translateY(-3px)}
.ind.out{border:1px solid var(--line);color:var(--ink);background:#fff}
.ind.out:hover{border-color:var(--blue);color:var(--blue);transform:translateY(-3px)}

/* timeline */
.tl{--p:0;position:relative;margin-top:60px;display:grid;grid-template-columns:repeat(8,1fr);gap:14px}
.tl::before{content:"";position:absolute;top:7px;left:3%;right:3%;height:2px;background:var(--line)}
.tl::after{content:"";position:absolute;top:7px;left:3%;height:2px;width:calc((100% - 6%) * var(--p));background:linear-gradient(90deg,var(--blue),var(--sig));z-index:1;border-radius:2px}
.tlx .d.on{background:var(--blue)}
.tlx:last-child .d.on{box-shadow:0 0 0 0 rgba(16,110,237,.5);animation:pulse 2.4s var(--e) infinite}
.tlx{position:relative}
.tlx .d{width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--blue);position:relative;z-index:2}
.tlx .yr{font-weight:800;font-size:1.25rem;color:var(--navy);margin:16px 0 5px;letter-spacing:-.02em}
.tlx p{color:var(--muted);font-size:.86rem;line-height:1.45}
@media(max-width:980px){.tl{grid-template-columns:repeat(4,1fr);gap:24px 18px}}
@media(max-width:560px){.tl{grid-template-columns:1fr 1fr}.tl::before,.tl::after{display:none}}

/* CTA — light whiteboard band, touches of blue (navy stays for the footer only) */
.cta{background:radial-gradient(720px 380px at 86% 120%,rgba(16,110,237,.12),transparent 62%),linear-gradient(180deg,#fff 0%,var(--paper) 100%);color:var(--ink);overflow:hidden;border-top:1px solid var(--line)}
.cta-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:40px;align-items:center}
.cta .kick{margin-bottom:16px}
.cta h2{color:var(--navy);font-size:clamp(2.2rem,1.6rem + 3vw,4rem);letter-spacing:-.03em;max-width:16ch}
.cta p{color:var(--muted);margin:1em 0 2em;max-width:42ch;font-size:1.1rem}
.cta .dia{justify-self:end;width:min(30vw,260px);opacity:.92;filter:drop-shadow(0 34px 60px rgba(3,47,96,.20))}
.cta .dia img{width:100%}
@media(max-width:820px){.cta-grid{grid-template-columns:1fr}.cta .dia{display:none}}

/* footer */
footer.site{background:var(--navy-900);color:rgba(233,242,255,.62);padding:80px 0 36px}
.foot{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:40px}
.foot .lk img{height:62px;margin-bottom:18px}
.foot .lk p{font-size:.92rem;max-width:32ch}
.foot .badge{margin-top:20px;height:42px;opacity:.95}
footer.site h4{color:#fff;font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:18px;font-weight:700}
footer.site ul{list-style:none;display:flex;flex-direction:column;gap:12px}
footer.site a:hover{color:#fff}
.social{display:flex;gap:12px;margin-top:22px}
.social a{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.16);color:rgba(233,242,255,.75);transition:.4s var(--e)}
.social a:hover{background:var(--blue);border-color:var(--blue);color:#fff;transform:translateY(-3px)}
.social svg{width:18px;height:18px}
.fbot{display:flex;justify-content:space-between;align-items:center;margin-top:54px;padding-top:24px;border-top:1px solid rgba(255,255,255,.1);font-size:.84rem;flex-wrap:wrap;gap:14px}
.reg{display:flex;gap:22px}.reg span{display:inline-flex;align-items:center;gap:8px}.reg i{width:6px;height:6px;border-radius:50%;background:var(--sig)}

/* reveal */
.rv{opacity:0;transform:translateY(12px);transition:opacity .55s var(--e),transform .6s var(--e)}
.rv.in{opacity:1;transform:none}
.d2{transition-delay:.05s}.d3{transition-delay:.1s}.d4{transition-delay:.15s}.d5{transition-delay:.2s}.d6{transition-delay:.25s}.d7{transition-delay:.3s}.d8{transition-delay:.35s}

.mnav-cta{display:none}
@media(max-width:980px){
  .hero-inner{grid-template-columns:1fr;gap:40px}.hero .gmark{opacity:.05}
  .map-grid{grid-template-columns:1fr;gap:36px}
  .nav-links{display:none}.nav-actions .btn{display:none}.burger{display:flex}
  .foot{grid-template-columns:1fr 1fr}
  .mnav-cta{display:flex;width:100%;box-sizing:border-box;align-items:center;gap:8px;justify-content:center;margin-top:10px;background:var(--blue);color:#fff!important;font-weight:600;font-size:.95rem;padding:13px 16px;border-radius:100px}
  .mnav-cta::after{display:none}
}
@media(max-width:560px){.foot{grid-template-columns:1fr}.svc{grid-template-columns:44px 1fr}.svc .go{display:none}}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .rv,.hero h1 .l span{opacity:1!important;transform:none!important}
}
/* smooth cross-document page transitions (Chrome/Edge) */
@view-transition{navigation:auto}
@media(prefers-reduced-motion:no-preference){
  ::view-transition-old(root){animation:vtout .32s var(--e) both}
  ::view-transition-new(root){animation:vtin .42s var(--e) both}
}
@keyframes vtout{to{opacity:0;transform:translateY(-8px)}}
@keyframes vtin{from{opacity:0;transform:translateY(12px)}}

/* ---- signature scroll set-piece (home) ---- */
.jx{position:relative;height:185vh;background:linear-gradient(180deg,var(--navy),var(--navy-900));color:#fff}
.jx-sticky{position:sticky;top:0;height:100vh;display:flex;align-items:center;overflow:hidden}
.jx-sticky .gmark{position:absolute;right:-120px;bottom:-120px;width:min(40vw,520px);opacity:.06}
.jx-sticky .gmark img{width:100%;filter:none}
.jx-inner{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;width:100%}
.jx .kick{color:var(--blue-lt)}.jx .kick::before{background:var(--blue-lt)}
.jx-left h2{color:#fff;font-size:clamp(2.2rem,1.6rem + 3vw,4rem);letter-spacing:-.03em;margin:.45em 0 1.1em}
.jx-steps{display:flex;flex-direction:column;gap:6px}
.jx-step{display:grid;grid-template-columns:50px 1fr;gap:18px;padding:18px 20px;border-radius:16px;opacity:.38;transition:opacity .5s var(--e),background .5s var(--e),border-color .5s var(--e);border:1px solid transparent}
.jx-step.on{opacity:1;background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12)}
.jx-step .jn{font-size:1.35rem;font-weight:800;color:var(--blue-lt)}
.jx-step.on .jn{color:var(--sig)}
.jx-step b{font-size:1.15rem;color:#fff;display:block;margin-bottom:4px}
.jx-step p{color:rgba(233,242,255,.72);font-size:.94rem}
.jx-panel{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.1);border-radius:22px;padding:34px;backdrop-filter:blur(6px)}
.jx-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}
.jx-top b{color:rgba(233,242,255,.6);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;font-weight:600}
.jx-stat{font-weight:700;color:var(--sig);font-size:1rem}
.jx-sig{width:100%;height:120px;display:block}
.jx-prog{height:8px;border-radius:4px;background:rgba(255,255,255,.08);overflow:hidden;margin-top:24px}
.jx-bar{height:100%;width:0;background:linear-gradient(90deg,var(--blue),var(--sig));border-radius:4px}
.jx-meta{display:flex;align-items:baseline;justify-content:space-between;margin-top:14px;color:rgba(233,242,255,.6);font-size:.9rem}
.jx-meta #jxPct{font-size:1.7rem;font-weight:800;color:#fff;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.jx-checks{margin-top:26px;display:flex;flex-direction:column;gap:2px;border-top:1px solid rgba(255,255,255,.1);padding-top:18px}
.jx-checks .jc{display:flex;align-items:center;gap:13px;padding:9px 0;color:rgba(233,242,255,.72);font-size:.95rem;transition:color .5s var(--e)}
.jx-checks .jc-dot{width:18px;height:18px;border-radius:50%;border:1.5px solid rgba(255,255,255,.22);flex:0 0 auto;display:grid;place-items:center;transition:.5s var(--e)}
.jx-checks .jc-dot::after{content:"";width:6px;height:6px;border-radius:50%;background:transparent;transition:.5s var(--e)}
.jx-checks .jc.on{color:#fff}
.jx-checks .jc.on .jc-dot{border-color:var(--sig);background:rgba(136,183,247,.14)}
.jx-checks .jc.on .jc-dot::after{background:var(--sig)}
@media(max-width:860px){.jx{height:auto}.jx-sticky{position:static;height:auto;padding:70px 0}.jx-inner{grid-template-columns:1fr;gap:34px}.jx-step{opacity:1}}

/* signal-line canvas reused on page headers + CTA bands */
.phero .sig-cv{position:absolute;inset:0;width:100%;height:100%;z-index:1;opacity:.7;pointer-events:none}
.cta{position:relative}
.cta .wrap{position:relative;z-index:2}
.cta .sig-cv{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.5;pointer-events:none}

/* ===== a11y: visible keyboard focus (WCAG 2.4.7) — blue on light, light-blue on dark ===== */
:where(a,button,.btn,.it,.sx-tab,.jx-step,.indv,.svc6c,.wkc,.tryc,.featc,.seccard,.relc,.bcard,.faq-q summary,.burger,[tabindex]):focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:8px}
.cform input:focus-visible,.cform textarea:focus-visible,.cform select:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
header.site:not(.s) .nav-links a:focus-visible,header.site:not(.s) .brand:focus-visible,.hx a:focus-visible,.idet-hero a:focus-visible,.jx a:focus-visible,footer.site a:focus-visible,.map-sec a:focus-visible,.bigstats a:focus-visible{outline-color:var(--blue-lt)}
/* skip-to-content link (WCAG 2.4.1) */
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--navy);color:#fff;padding:13px 22px;border-radius:0 0 12px 0;font-weight:700;font-size:.95rem}
.skip:focus{left:0}
#main{scroll-margin-top:84px}
/* legal pages + footer legal links */
.article.legal h3{margin-top:1.7em;font-size:1.3rem}
.article.legal h3:first-child{margin-top:0}
.article.legal .legal-upd{margin-top:2.4em;padding-top:1.4em;border-top:1px solid var(--line);color:var(--muted);font-size:.95rem}
.fbot-legal{display:flex;gap:18px}
.fbot-legal a{color:inherit}.fbot-legal a:hover{color:#fff}
