/* Profesyst website. Plain CSS, no external requests.
   Layout concept: a blueprint-led industrial identity. Navy ground, white working surfaces, one cyan highlight on dark, one red accent taken from the logo chevrons.
   Contrast (WCAG 2.2 AA): --ink on white 15:1, --muted on white 6.5:1, --blue (logo blue #124885) on white 9.6:1, white on --blue 9.6:1, --cyan on --navy 10:1. */
:root{
  --navy:#062642; --navy-2:#0B3A63; --navy-3:#0F4C7D;
  --blue:#124885; --blue-hover:#0D3668; --brand:#124885; --cyan:#38D6FF; --red:#E5322D;
  --ink:#0D2238; --muted:#44586C; --line:#D5E0EA; --tint:#EEF4F9; --white:#fff;
  --on-dark:#D4E3F0; --on-dark-2:#B7CCDD;
  --font:"Segoe UI","Helvetica Neue",Helvetica,Arial,"Noto Sans",system-ui,-apple-system,Roboto,sans-serif;
  --radius:10px; --wrap:1200px; --gutter:clamp(18px,4vw,32px);
  --shadow:0 1px 2px rgba(6,38,66,.06),0 10px 30px rgba(6,38,66,.07);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;font-family:var(--font);font-size:1.0625rem;line-height:1.65;color:var(--ink);background:var(--white);text-rendering:optimizeLegibility}
img,svg{max-width:100%;height:auto}
h1,h2,h3{font-weight:800;line-height:1.12;letter-spacing:-.025em;margin:0 0 .6em;text-wrap:balance;color:var(--navy)}
h1{font-size:clamp(2.4rem,5.4vw,4.4rem);letter-spacing:-.04em;line-height:1.03}
h2{font-size:clamp(1.8rem,3.4vw,2.7rem)}
h3{font-size:1.2rem;letter-spacing:-.01em;line-height:1.25}
p{margin:0 0 1.1em;color:var(--muted)}
ul,ol{margin:0;padding:0;list-style:none}
a{color:var(--blue);text-underline-offset:.2em}
a:hover{color:var(--blue-hover)}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:3px}
.dark :focus-visible,.hero :focus-visible,.impact :focus-visible,.cta-band :focus-visible,.site-footer :focus-visible,.panel :focus-visible,.page-hero :focus-visible{outline-color:var(--cyan)}
.wrap,.wrap-wide{width:min(var(--wrap),100%);margin-inline:auto;padding-inline:max(var(--gutter),env(safe-area-inset-left,0px)) max(var(--gutter),env(safe-area-inset-right,0px))}
.wrap-wide{--wrap:1380px;padding-inline:max(clamp(16px,2.6vw,36px),env(safe-area-inset-left,0px)) max(clamp(16px,2.6vw,36px),env(safe-area-inset-right,0px))}
.sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--white);color:var(--navy);padding:12px 18px;border-radius:8px;font-weight:700;box-shadow:var(--shadow)}
.skip:focus{top:12px}

/* top bar + header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);transition:box-shadow .3s}
.site-header.scrolled{box-shadow:0 10px 30px rgba(6,38,66,.13)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:86px;transition:min-height .3s}
.scrolled .bar{min-height:68px}
.brand{display:block;flex:none}
.brand img{display:block;width:190px;height:auto;transition:width .3s}
.scrolled .brand img{width:166px}
.site-nav{display:flex;align-items:center;gap:18px}
.site-nav>ul{display:flex;align-items:center;gap:2px}
.site-nav li{position:relative}
.has-sub{display:flex;align-items:center}
.site-nav a.top{position:relative;display:block;padding:12px 13px;color:var(--ink);font-weight:650;font-size:.95rem;text-decoration:none;white-space:nowrap;transition:color .2s}
.has-sub>a.top{padding-right:4px}
.site-nav a.top::after{content:"";position:absolute;left:13px;right:13px;bottom:5px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--red),var(--blue));transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.has-sub>a.top::after{right:4px}
.site-nav a.top:hover,.site-nav a.top[aria-current="page"]{color:var(--blue)}
.site-nav a.top:hover::after,.site-nav a.top[aria-current="page"]::after{transform:scaleX(1)}
.sub-toggle{display:inline-flex;align-items:center;justify-content:center;width:26px;height:34px;margin-right:4px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--ink);cursor:pointer}
.sub-toggle:hover{color:var(--blue);background:var(--tint)}
.sub-toggle svg{transition:transform .25s}
.has-sub.open>.sub-toggle svg{transform:rotate(180deg)}
.sub{position:absolute;left:-14px;top:calc(100% + 8px);z-index:60;width:352px;display:none;gap:2px;padding:10px;background:#fff;border:1px solid var(--line);border-top:4px solid var(--blue);border-radius:6px 6px 14px 14px;box-shadow:0 26px 60px rgba(6,38,66,.22)}
.sub::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.has-sub.open>.sub{display:grid;animation:pop .22s ease}
@media(hover:hover) and (min-width:1181px){.has-sub:hover>.sub{display:grid;animation:pop .22s ease}.has-sub:hover>.sub-toggle svg{transform:rotate(180deg)}}
html:not(.js) .has-sub:focus-within>.sub{display:grid}
html:not(.js) .sub-toggle{display:none}
.sub a{display:flex;gap:14px;align-items:flex-start;padding:11px 12px;border-radius:10px;color:var(--ink);text-decoration:none;transition:background .2s,transform .2s}
.sub a:hover{background:var(--tint);transform:translateX(3px)}
.sub .ico{flex:none;box-sizing:content-box;width:22px;height:22px;padding:9px;border-radius:10px;background:var(--tint);color:var(--blue);transition:background .2s,color .2s}
.sub a:hover .ico{background:var(--blue);color:#fff}
.sub strong{display:block;font-size:.97rem;line-height:1.25;color:var(--navy)}
.sub small{display:block;margin-top:2px;font-size:.84rem;line-height:1.35;color:var(--muted)}
.site-nav .btn .ico-sm{transition:transform .2s}.site-nav .btn:hover .ico-sm{transform:translateX(3px)}
.menu-btn{display:none;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid var(--line);border-radius:12px;background:var(--white);color:var(--navy);cursor:pointer}
.burger{position:relative;display:block;width:22px;height:16px}
.burger i{position:absolute;left:0;right:0;height:2.5px;border-radius:2px;background:currentColor;transition:transform .3s,opacity .2s,top .3s}
.burger i:nth-child(1){top:0}.burger i:nth-child(2){top:6.75px}.burger i:nth-child(3){top:13.5px}
.menu-btn[aria-expanded="true"] .burger i:nth-child(1){top:6.75px;transform:rotate(45deg)}
.menu-btn[aria-expanded="true"] .burger i:nth-child(2){opacity:0}
.menu-btn[aria-expanded="true"] .burger i:nth-child(3){top:6.75px;transform:rotate(-45deg)}
@keyframes pop{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 24px;border-radius:999px;background:var(--blue);color:#fff;border:2px solid var(--blue);font:inherit;font-weight:700;font-size:1rem;line-height:1.2;text-decoration:none;cursor:pointer;transition:background .15s,transform .15s}
.btn:hover{background:var(--blue-hover);border-color:var(--blue-hover);color:#fff;transform:translateY(-1px)}
.btn-sm{min-height:44px;padding:9px 18px;font-size:.92rem;white-space:nowrap}
.btn-ghost{background:transparent;border-color:rgba(255,255,255,.7);color:#fff}
.btn-ghost:hover{background:rgba(255,255,255,.12);border-color:#fff}
.btn-light{background:#fff;border-color:#fff;color:var(--navy)}
.btn-light:hover{background:var(--tint);border-color:var(--tint);color:var(--navy)}
.btn-outline{background:transparent;color:var(--blue)}
.btn-outline:hover{background:var(--tint);color:var(--blue-hover)}
.ico{flex:none}.ico-sm{flex:none}

/* sections */
.section{padding-block:clamp(56px,8vw,104px)}
.section.tint{background:var(--tint)}
.section.dark{background:linear-gradient(135deg,var(--navy),var(--navy-2));color:#fff}
.section.dark h2,.section.dark h3{color:#fff}.section.dark p{color:var(--on-dark)}
.sec-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(20px,5vw,64px);align-items:end;margin-bottom:clamp(28px,4vw,48px)}
.sec-head h2{margin:0}.sec-head>p{margin:0;font-size:1.1rem}
.eyebrow{margin:0 0 14px;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
.eyebrow.on-dark{color:var(--cyan)}
.h-sm{font-size:clamp(1.5rem,2.6vw,2.1rem)}.h-md{font-size:clamp(2rem,4vw,3rem)}.h-sub{margin:clamp(36px,5vw,56px) 0 18px;font-size:1.35rem}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,6vw,80px);align-items:center}
.split>*{min-width:0}
.grid{display:grid;gap:20px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.stack{display:grid;gap:16px}
.more-row{margin:28px 0 0}
.more{display:inline-flex;align-items:center;gap:8px;font-weight:700;text-decoration:none}
.more:hover{gap:12px}
.fine{font-size:.88rem;color:var(--muted);margin-top:18px}
.fine.on-dark{color:var(--on-dark-2)}
.lead{font-size:clamp(1.1rem,1.5vw,1.28rem);line-height:1.65;max-width:46rem}
.lead.dark{color:var(--muted)}

/* hero */
.hero{position:relative;overflow:hidden;color:#fff;background:radial-gradient(ellipse at 78% 40%,var(--navy-3) 0,var(--navy-2) 34%,var(--navy) 70%)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(20px,4vw,56px);align-items:center;padding-block:clamp(52px,8vw,100px)}
.hero h1{color:#fff;margin-bottom:.45em}.hero h1 span{color:var(--cyan)}
.hero .lead{color:var(--on-dark)}
.actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
.trust{display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:34px;color:var(--on-dark-2);font-size:.95rem}
.trust li::before{content:"";display:inline-block;width:8px;height:8px;margin-right:10px;border-radius:50%;background:var(--red)}
.hero-art{width:100%;max-width:560px;justify-self:end;display:block}
.a-grid{stroke:rgba(56,214,255,.09)}.a-ring{stroke:rgba(56,214,255,.35)}.a-dash{stroke:rgba(56,214,255,.14);stroke-dasharray:6 11}
.a-gear{stroke:var(--cyan)}.a-red{stroke:var(--red)}.a-redfill{fill:var(--red)}.a-dim{stroke:rgba(212,227,240,.6)}.a-label{fill:var(--on-dark-2);font-family:var(--font)}
.a-chev{stroke:#fff}
@media(prefers-reduced-motion:no-preference){.a-dash{animation:spin 90s linear infinite;transform-origin:300px 270px}}
@keyframes spin{to{transform:rotate(360deg)}}

/* impact */
.impact{position:relative;overflow:hidden;color:#fff;background:linear-gradient(135deg,#041B30,var(--navy) 55%,#0B3A63);padding-block:clamp(48px,6vw,80px);border-top:1px solid rgba(255,255,255,.08)}
.impact-bg{position:absolute;inset:-25%;background:radial-gradient(circle at 18% 30%,rgba(56,214,255,.16),transparent 38%),radial-gradient(circle at 82% 72%,rgba(229,50,45,.14),transparent 36%);pointer-events:none}
.impact .wrap{position:relative}
.impact-head{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(20px,4vw,56px);align-items:end;margin-bottom:clamp(26px,3.5vw,40px)}
.impact-head p{margin:0;color:var(--on-dark);font-size:1.08rem}
.impact h2{font-size:clamp(1.7rem,3.2vw,2.6rem);color:#fff;margin:0}
.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.stat{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:24px 20px 22px;border:1px solid rgba(255,255,255,.18);border-radius:var(--radius);background:linear-gradient(180deg,rgba(255,255,255,.1),rgba(255,255,255,.025));transition:transform .3s,border-color .3s,background .3s,box-shadow .3s}
.stat:hover{transform:translateY(-6px);border-color:var(--cyan);background:rgba(56,214,255,.1);box-shadow:0 18px 40px rgba(0,0,0,.28)}
.s-ico{position:relative;align-self:flex-start;display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;margin-bottom:6px;border-radius:12px;background:rgba(56,214,255,.15);color:var(--cyan)}
.s-ico svg{width:24px;height:24px}
.stat .num{display:flex;align-items:center;justify-content:center;min-height:1.1em;font-size:clamp(2rem,3vw,2.6rem);font-weight:800;line-height:1.05;letter-spacing:-.03em;color:#fff;font-variant-numeric:tabular-nums}
.stat .inf{color:#fff}
.s-label{font-size:.95rem;line-height:1.35;color:var(--on-dark)}
.meter{position:relative;display:block;align-self:stretch;height:4px;margin-top:auto;border-radius:3px;background:rgba(255,255,255,.16);overflow:hidden}
.meter::after{content:"";position:absolute;inset:0;border-radius:3px;background:linear-gradient(90deg,var(--cyan),var(--red));transform-origin:left}
.stat .s-label{margin-bottom:10px}

/* cards */
.cards>li,.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px}
.tint .cards>li,.tint .card{background:#fff}
.card h3{margin-bottom:.45em}.card p:last-child{margin-bottom:0}
.card.svc{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:0;padding:30px 24px 24px;border-top:4px solid var(--blue);background:linear-gradient(180deg,#fff,#F6F9FC);transition:box-shadow .3s,transform .3s,border-color .3s}
.card.svc::before{content:"";position:absolute;left:0;top:-4px;height:4px;width:34%;background:var(--red);transition:width .5s ease}
.card.svc::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(100deg,transparent,rgba(56,214,255,.22),transparent);transform:skewX(-18deg);pointer-events:none}
.card.svc .idx{position:absolute;right:16px;top:12px;font-size:2.7rem;font-weight:800;line-height:1;letter-spacing:-.04em;color:rgba(18,72,133,.09);transition:color .3s,transform .3s}
.card.svc .chip{position:relative;transition:background .3s,color .3s,transform .3s,box-shadow .3s}
.card.svc:hover,.card.svc:focus-within{transform:translateY(-8px);border-color:var(--blue);box-shadow:0 22px 46px rgba(6,38,66,.18),0 0 0 1px var(--blue)}
.card.svc:hover::before,.card.svc:focus-within::before{width:100%}
.card.svc:hover::after{left:130%;transition:left .9s ease}
.card.svc:hover .idx{color:rgba(229,50,45,.2);transform:scale(1.08)}
.card.svc:hover .chip,.card.svc:focus-within .chip{background:var(--blue);color:#fff;transform:rotate(-6deg) scale(1.08);box-shadow:0 10px 22px rgba(18,72,133,.35)}
.card.svc .more svg{transition:transform .25s}.card.svc:hover .more svg{transform:translateX(4px)}
.card.ind:hover,.card.cap:hover{box-shadow:var(--shadow);transform:translateY(-3px)}
.card.ind,.card.cap{transition:box-shadow .2s,transform .2s}
.card.svc p{flex:1}
.card .more{margin-top:4px}
.card.mini{padding:22px}.card.mini h3{font-size:1.08rem}.card .meta{margin-top:14px;font-size:.95rem}
.chip{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:12px;background:var(--tint);color:var(--blue);margin-bottom:18px}
.chip svg{width:26px;height:26px}
.chip-dark{background:rgba(56,214,255,.12);color:var(--cyan)}
.feats>li{padding:26px;border:1px solid rgba(255,255,255,.16);border-radius:var(--radius);background:rgba(255,255,255,.04)}
.feats h3{margin-bottom:.4em}.feats p{margin:0;font-size:.98rem}
.models{margin-bottom:20px}
.vm{padding:26px 28px;border-radius:var(--radius);color:#fff}
.vm h3{color:#fff;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.6em}
.vm p{margin:0;font-size:1.15rem;line-height:1.5;color:#fff}
.vm-a{background:var(--navy)}.vm-b{background:var(--blue)}.vm-b h3{color:#fff}.vm-c{background:var(--navy-2)}
.vm-a h3,.vm-c h3{color:var(--cyan)}
.plain li{padding:3px 0;color:#fff;font-size:1.1rem}
.checks li{position:relative;padding:7px 0 7px 32px;color:var(--ink)}
.checks li::before{content:"";position:absolute;left:2px;top:.95em;width:14px;height:8px;border-left:3px solid var(--blue);border-bottom:3px solid var(--blue);transform:rotate(-45deg) translateY(-50%)}
.checks.on-dark li{color:#fff}.checks.on-dark li::before{border-color:var(--cyan)}
.panel{padding:clamp(24px,3vw,36px);border-radius:var(--radius);color:#fff}
.panel h3{color:#fff;font-size:1.4rem;margin-bottom:.7em}.panel p{color:var(--on-dark)}
.panel-navy{background:var(--navy)}.panel-navy2{background:var(--navy-3);border:1px solid rgba(255,255,255,.14)}.panel-blue{background:var(--blue)}.panel-blue p{color:#fff}
.panel-blue .checks.on-dark li::before{border-color:#fff}
.strive{display:flex;gap:18px;align-items:flex-start}
.strive-word{color:var(--red)}
.strive{transition:transform .25s,box-shadow .25s,border-color .25s}.strive:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--red)}
.strive .letter{flex:none;font-size:3.4rem;font-weight:800;line-height:.9;color:var(--red);width:48px}
.inds{gap:12px}
.inds li{display:flex;align-items:center;gap:14px;padding:16px 18px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);font-weight:700;color:var(--navy)}
.inds svg{color:var(--blue);width:26px;height:26px}
.card.ind{display:block}
.clients{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:26px}
.cl{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;min-height:100px;padding:18px 16px;border-radius:4px;background:var(--cb,var(--navy));box-shadow:inset 0 -6px 0 rgba(0,0,0,.26),0 1px 2px rgba(6,38,66,.12);color:#fff;font-weight:800;font-size:1.05rem;letter-spacing:.07em;text-align:center;text-transform:uppercase;transition:transform .25s,box-shadow .25s}
.cl span{position:relative;z-index:1}
.cl::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.28),transparent);transform:skewX(-18deg)}
.cl:hover{transform:translateY(-4px);box-shadow:inset 0 -6px 0 rgba(0,0,0,.26),0 14px 28px rgba(6,38,66,.25)}
.cl:hover::after{left:130%;transition:left .8s ease}
.cl-forbes{--cb:#12316B}.cl-khd{--cb:#00569D}.cl-tenneco{--cb:#0066B3}.cl-emerson{--cb:#124885}
.cl-greaves{--cb:#1459A5}.cl-premium{--cb:#C41A20}.cl-cooper{--cb:#006B5B}.cl-atlas{--cb:#0072B0}
.cl-triveni{--cb:#C0431A}.cl-kirloskar{--cb:#1B7F3B}.cl-naw{--cb:#3B4650}.cl-thermax{--cb:#0A3D91}

/* stages / process / org */
.stages{display:grid;gap:14px}
.stages>li{display:grid;grid-template-columns:minmax(0,270px) minmax(0,1fr);border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.stage.s1{--sa:#124885;--sb:#0B3A63;--sar:18,72,133}.stage.s2{--sa:#16609F;--sb:#124885;--sar:22,96,159}
.stage.s3{--sa:#0A7399;--sb:#0E5F93;--sar:10,115,153}.stage.s4{--sa:#0B7A66;--sb:#0A6B7F;--sar:11,122,102}
.stage-h{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:3px;padding:22px 22px 22px 28px;color:#fff;background:linear-gradient(135deg,var(--sb),var(--sa))}
.stage-h::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--red)}
.stage-h .sn{position:absolute;right:10px;top:-8px;font-size:5rem;font-weight:800;line-height:1;letter-spacing:-.05em;color:rgba(255,255,255,.13)}
.stage-h .sl{position:relative;font-size:.75rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#fff;opacity:.92}
.stage-h strong{position:relative;font-size:1.15rem;line-height:1.25;max-width:14em}
.tags{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:14px 18px}
.tags li{padding:6px 14px;border-radius:999px;background:var(--tint);color:var(--navy);font-weight:600;font-size:.93rem}
.tags-light{padding:0}.tags-light li{background:rgba(255,255,255,.16);color:#fff}
.process{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.process>li{padding:22px;border:1px solid var(--line);border-top:4px solid var(--blue);border-radius:0 0 var(--radius) var(--radius)}
.process h3{margin:10px 0 .4em}.process p{margin:0;font-size:.98rem}
.step-n{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;border-radius:50%;background:var(--navy);color:#fff;font-weight:800;font-size:.9rem}
.cul{position:relative;transition:transform .25s,box-shadow .25s,border-color .25s}
.cul:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:var(--blue)}
.cul:hover .chip{background:var(--blue);color:#fff}
.chip{transition:background .25s,color .25s}
.learn{gap:16px}
.voice{display:flex;flex-direction:column;gap:12px;border-left:4px solid var(--red)}
.voice .q{color:var(--blue)}
.voice>p:not(.who){margin:0;color:var(--ink);font-size:1.05rem;line-height:1.55}
.voice .who{display:flex;flex-direction:column;margin:auto 0 0;padding-top:6px}
.voice .who strong{color:var(--navy)}.voice .who span{color:var(--muted);font-size:.92rem}
.roles-h{margin:34px 0 18px;font-size:1.3rem}
.roles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.role{display:flex;flex-direction:column;gap:10px;padding:26px 26px 24px;border:1px solid rgba(255,255,255,.18);border-radius:var(--radius);background:linear-gradient(180deg,rgba(255,255,255,.09),rgba(255,255,255,.03))}
.role-dept{margin:0;font-size:.76rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan)}
.role h3{margin:0;font-size:1.3rem;line-height:1.25}
.role dl{margin:6px 0 12px}.role dl>div{display:grid;grid-template-columns:112px minmax(0,1fr);gap:6px 14px;padding:11px 0;border-top:1px solid rgba(255,255,255,.16)}
.role dt{font-size:.76rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);padding-top:3px}
.role dd{margin:0;color:#fff}
.role .btn{margin-top:auto;align-self:flex-start}
.roles-foot{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;justify-content:space-between;margin-top:28px;padding-top:24px;border-top:1px solid rgba(255,255,255,.18)}
.roles-foot p{margin:0;max-width:62ch}
.openings h3{margin-bottom:.9em}
.openings dl{margin:0}
.openings dl>div{display:grid;grid-template-columns:128px minmax(0,1fr);gap:6px 16px;padding:13px 0;border-top:1px solid rgba(255,255,255,.18)}
.openings dt{font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);padding-top:3px}
.openings dd{margin:0;color:#fff}
.openings dd a{color:#fff;font-weight:700}
.eng{position:relative;overflow:hidden;display:flex;flex-direction:column;padding:34px 28px 26px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;transition:transform .3s,box-shadow .3s,border-color .3s}
.engage{gap:22px}
.eng::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:var(--ac)}
.e-off{--ac:var(--blue);--at:var(--blue)}.e-on{--ac:#0A8FB8;--at:#065F7B}.e-hy{--ac:var(--red);--at:#B3261E}
.eng-ico{display:grid;place-items:center;width:64px;height:64px;margin-bottom:18px;border-radius:16px;background:var(--ac);color:#fff;transition:transform .3s,box-shadow .3s}
.eng-tag{margin:0 0 6px;font-size:.76rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--at)}
.eng h3{font-size:1.75rem;margin-bottom:.4em}
.eng .checks{margin:6px 0 20px}
.eng .checks li::before{border-color:var(--ac)}
.best{margin:auto 0 0;padding-top:16px;border-top:1px dashed #9DB1C4;font-size:.96rem;color:var(--ink)}
.eng:hover{transform:translateY(-8px);border-color:var(--ac);box-shadow:0 22px 46px rgba(6,38,66,.16)}
.eng:hover .eng-ico{transform:rotate(-8deg) scale(1.08);box-shadow:0 12px 24px rgba(6,38,66,.25)}
.jump{padding-top:22px}
.jump ul{display:flex;flex-wrap:wrap;gap:10px}
.jump a{display:inline-block;padding:9px 18px;border:1px solid var(--line);border-radius:999px;font-weight:700;text-decoration:none;color:var(--navy);background:#fff}
.jump a:hover{background:var(--tint)}

/* page hero + cta */
.page-hero{position:relative;overflow:hidden;color:#fff;background:radial-gradient(circle at var(--gx,86%) var(--gy,30%),var(--g1,var(--navy-3)) 0,var(--navy-2) 32%,var(--navy) 70%);padding-block:clamp(48px,7vw,88px)}
.b-about{--gx:80%;--gy:50%}.b-services{--gx:82%;--gy:46%;--g1:#0F5A92}.b-industries{--gx:75%;--gy:70%}.b-capabilities{--gx:78%;--gy:50%;--g1:#15508A}
.b-case-studies{--gx:82%;--gy:40%}.b-insights{--gx:76%;--gy:60%}.b-contact{--gx:78%;--gy:50%;--g1:#0E5A78}.b-privacy{--gx:80%;--gy:50%}
.b-cookie-policy{--gx:80%;--gy:50%;--g1:#17508A}.b-accessibility{--gx:80%;--gy:50%}.b-404{--gx:72%;--gy:50%;--g1:#4A2A45}
.banner{position:absolute;top:0;bottom:0;right:0;width:min(60%,900px);display:flex;justify-content:flex-end;pointer-events:none}
.banner-art{display:block;width:100%;height:100%;stroke-width:2;stroke-linecap:round}
.page-hero .wrap{position:relative;z-index:1}
.page-hero h1{color:#fff;font-size:clamp(2.2rem,4.6vw,3.8rem);max-width:19ch}
.page-hero .lead{color:var(--on-dark);margin:0;max-width:37rem}
.page-hero.slim{padding-block:clamp(36px,5vw,60px)}.page-hero.slim h1{font-size:clamp(2rem,4vw,3rem);max-width:none;margin-bottom:.3em}
.crumbs{margin-bottom:26px;font-size:.9rem}
.crumbs ol{display:flex;flex-wrap:wrap;gap:8px;color:var(--on-dark-2)}
.crumbs li+li::before{content:"/";margin-right:8px;opacity:.6}
.crumbs a{color:var(--on-dark);text-decoration:none}.crumbs a:hover{text-decoration:underline;color:#fff}
.cta-band{background:linear-gradient(100deg,var(--blue),#1B63AE);color:#fff;padding-block:clamp(40px,5vw,60px)}
.cta-row{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap}
.cta-band h2{color:#fff;font-size:clamp(1.6rem,3vw,2.3rem);margin-bottom:.35em}.cta-band p{color:#fff;margin:0;max-width:44rem}
.cta-band .btn-light:hover{color:var(--navy)}

/* contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,4vw,48px);align-items:start}
.contact-aside{position:sticky;top:100px}
.contact-aside h2{font-size:1.6rem;color:#fff}
.contact-aside a{color:#fff}.contact-aside a:hover{color:var(--cyan)}
.cd{display:flex;gap:12px;align-items:flex-start;color:#fff;margin:0 0 14px}.cd svg{margin-top:4px;color:var(--cyan)}
.cd>span{min-width:0;overflow-wrap:anywhere}
.offices-c{display:grid;gap:22px;margin:26px 0;padding-top:24px;border-top:1px solid rgba(255,255,255,.2)}
.office{font-style:normal}.office h3{font-size:1.05rem;margin-bottom:.4em}.office p{margin:0 0 6px;color:var(--on-dark)}
.form-card{padding:clamp(22px,3vw,38px);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.form-card h2{font-size:1.7rem}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field.full{grid-column:1/-1}
.field label{font-weight:700;font-size:.95rem;color:var(--navy)}
.field input,.field select,.field textarea{width:100%;min-height:48px;padding:11px 14px;border:1.5px solid #5F7A93;border-radius:8px;font:inherit;color:var(--ink);background:#fff}
.field textarea{min-height:150px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid rgba(18,72,133,.35);outline-offset:0;border-color:var(--blue)}
.field [aria-invalid="true"]{border-color:#B3261E;border-width:2px}
.field .err{color:#B3261E;font-size:.9rem;font-weight:600}
.field .opt{font-weight:400;color:var(--muted)}.field .hint{font-size:.88rem;color:var(--muted)}
.field input.file{min-height:0;padding:10px 12px;background:#F7FAFC}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.consent{display:flex;gap:12px;align-items:flex-start;margin:22px 0}
.consent input{flex:none;width:22px;height:22px;margin-top:3px;accent-color:var(--blue)}
.consent label{font-size:.95rem;color:var(--muted)}
.form-status{margin:16px 0 0;padding:0;font-weight:600;color:var(--navy)}
.form-status:not(:empty){padding:14px 16px;background:var(--tint);border-radius:8px}

/* insights */
.art h3{font-size:1.4rem}
details{border-top:1px solid var(--line);padding-top:14px;margin-top:18px}
summary{cursor:pointer;font-weight:700;color:var(--blue);list-style:none;display:flex;align-items:center;gap:10px;min-height:44px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-size:1.4rem;line-height:1}details[open] summary::after{content:"\2212"}
details p{margin-top:12px}

/* legal */
.narrow{max-width:820px}
.legal h2{font-size:1.5rem;margin-top:2em}.legal li{margin:8px 0;color:var(--muted);padding-left:22px;position:relative}.legal li::before{content:"";position:absolute;left:4px;top:.8em;width:6px;height:6px;border-radius:50%;background:var(--blue)}
.notice{padding:16px 20px;background:#FFF6DD;border:1px solid #E7C873;border-radius:8px;color:#4A3A0A}
.legal .notice{margin-bottom:1.6em}

/* footer */
.site-footer{background:#041B30;color:var(--on-dark);padding-block:clamp(44px,6vw,72px) 28px}
.foot-grid{display:grid;grid-template-columns:1.3fr .7fr .7fr 2fr;gap:clamp(24px,4vw,48px)}
.foot-brand img{display:block;width:180px;margin-bottom:18px}
.foot-brand p{max-width:30rem}
.site-footer p{color:var(--on-dark)}.site-footer a{color:#fff;text-decoration:none}.site-footer a:hover{text-decoration:underline;color:var(--cyan)}
.site-footer h2{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);margin-bottom:16px}
.site-footer li a{display:inline-block;padding:5px 0}
.offices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.site-footer address{font-style:normal;font-size:.95rem;line-height:1.6;color:var(--on-dark)}
.foot-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 28px;margin-top:44px;padding-top:22px;border-top:1px solid rgba(255,255,255,.16);font-size:.9rem;color:var(--on-dark-2)}
.foot-base ul{display:flex;flex-wrap:wrap;gap:4px 22px}

/* responsive */
@media(max-width:1320px){.site-nav a.top{padding-inline:10px;font-size:.92rem}.site-nav a.top::after{left:10px;right:10px}.has-sub>a.top{padding-right:3px}.site-nav{gap:12px}}
@media(max-width:1180px){
  .js .menu-btn{display:inline-flex}
  .js .site-nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:16px;padding:8px max(clamp(16px,2.6vw,36px),env(safe-area-inset-left,0px)) 24px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 20px 40px rgba(6,38,66,.14);max-height:calc(100vh - 84px);overflow:auto}
  .js .site-nav.open{display:flex;animation:pop .25s ease}
  .js .site-nav>ul{flex-direction:column;align-items:stretch;gap:0}
  .js .site-nav>ul>li{border-bottom:1px solid var(--line)}
  .js .site-nav a.top{padding:15px 6px;font-size:1.05rem}
  .js .site-nav a.top::after{display:none}
  .js .has-sub{flex-wrap:wrap}.js .has-sub>a.top{flex:1;padding-right:6px}
  .js .sub-toggle{width:48px;height:48px;margin:0}
  .js .sub{position:static;width:100%;box-shadow:none;border:0;border-left:4px solid var(--red);border-radius:0 12px 12px 0;margin:0 0 12px;padding:6px;background:var(--tint)}
  .js .sub::before{display:none}
  .js .site-nav .btn{align-self:flex-start}
  html:not(.js) .bar{flex-wrap:wrap;padding-block:12px}html:not(.js) .site-nav{flex-wrap:wrap}html:not(.js) .site-nav ul{flex-wrap:wrap}
}
@media(max-width:1120px){
  .g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .impact-head{grid-template-columns:1fr}
  .process{grid-template-columns:repeat(3,minmax(0,1fr))}
  .foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:960px){
  .hero-grid{grid-template-columns:1fr}.hero-art{max-width:420px;justify-self:center;order:-1;opacity:.95}
  .split,.sec-head,.contact-grid{grid-template-columns:1fr}
  .sec-head{align-items:start}
  .g3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .engage{grid-template-columns:1fr}
  .clients{grid-template-columns:repeat(3,minmax(0,1fr))}
  .contact-aside{position:static}
  .stages>li{grid-template-columns:1fr}
  .banner{width:100%;opacity:.3}
}
@media(max-width:640px){
  body{font-size:1rem}
  
  .brand img,.scrolled .brand img{width:150px}
  .bar,.scrolled .bar{min-height:70px}
  .g2,.g3,.g4,.process,.form-grid,.offices{grid-template-columns:1fr}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.stat{padding:18px 14px}
  .clients{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cl{min-height:84px;font-size:.92rem}
  .openings dl>div,.role dl>div{grid-template-columns:1fr}.roles{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  .actions .btn{width:100%}
  .cta-row .btn{width:100%}
  .hero-art{max-width:300px}
}
@media(max-width:420px){.stats{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media(forced-colors:active){.btn{border:2px solid ButtonText}.chip{border:1px solid CanvasText}}
@media print{.site-header,.cta-band,.menu-btn,.skip,.hero-art{display:none!important}body{font-size:11pt;color:#000}.section{padding-block:18px}a{color:#000}.panel,.vm,.hero,.page-hero{background:none!important;color:#000!important;border:1px solid #999}.panel *,.vm *,.hero *,.page-hero *{color:#000!important}}

/* banner artwork colours (decorative) */
.b-grid{stroke:rgba(56,214,255,.07);stroke-width:1}
.b-wh,.b-cy,.b-red,.b-chev,.b-dash,.b-dim,.b-faint{fill:none}
.b-faint{stroke:rgba(56,214,255,.24);stroke-width:1.2}
.b-dash{stroke:rgba(56,214,255,.55);stroke-width:1.6}
.b-dash:not([stroke-dasharray]),.flow:not([stroke-dasharray]){stroke-dasharray:6 8}
.b-dim{stroke:rgba(212,227,240,.6);stroke-width:1.3}
.b-cy{stroke:var(--cyan);stroke-opacity:.85}
.b-wh{stroke:#fff;stroke-opacity:.9}
.b-red{stroke:var(--red)}
.b-chev{stroke:#fff}
.b-fillc{fill:rgba(56,214,255,.09)}.b-fillw{fill:rgba(255,255,255,.07)}.b-fillw2{fill:rgba(255,255,255,.13)}.b-fillw3{fill:rgba(255,255,255,.04)}
.b-redfill{fill:var(--red);stroke:none}
.b-txt{fill:var(--on-dark-2);font:600 11px var(--font);letter-spacing:.16em;stroke:none}
.b-num{fill:#fff;font:700 14px var(--font);stroke:none}
.b-big{fill:var(--cyan);font:800 16px var(--font);stroke:none}
.b-ghost{fill:none;stroke:rgba(56,214,255,.5);stroke-width:2;font:800 150px var(--font);letter-spacing:-.04em}
.m0,.m1,.m2,.m3,.m4{stroke:rgba(4,27,48,.55);stroke-width:.8}
.m0{fill:#1E5FA8}.m1{fill:#2B8AD0}.m2{fill:#38D6FF}.m3{fill:#F5B53B}.m4{fill:#E5322D}
.half-l{transform:translate(-10px,5px) rotate(-4deg)}.half-r{transform:translate(8px,-3px) rotate(3deg)}
.banner-art *{transform-box:fill-box;transform-origin:center}
.bar{transform-origin:50% 100%}
.inf-run{opacity:0;stroke:var(--cyan)}
.reveal{}
.legal .wrap,.page-hero.slim .banner{}
.page-hero.slim .banner{opacity:.85}

/* motion: only when the visitor has not asked for less */
@media(prefers-reduced-motion:no-preference){
  .banner-art .spin{animation:spin 22s linear infinite}.banner-art .spin-r{animation:spinr 28s linear infinite}
  .banner-art .spin-s{animation:spin 140s linear infinite}.banner-art .spin-xs{animation:spin 90s linear infinite}
  .flow{animation:flow 1.8s linear infinite}
  .pulse{animation:pulse 3.4s ease-in-out infinite}
  .node{animation:pulse 3s ease-in-out infinite}
  .n2{animation-delay:-.4s}.n3{animation-delay:-.8s}.n4{animation-delay:-1.2s}.n5{animation-delay:-1.6s}.n6{animation-delay:-2s}.n7{animation-delay:-2.4s}
  .ring{animation:ripple 2.6s ease-out infinite}
  .float{animation:float 5s ease-in-out infinite}.f2{animation-delay:-1.2s}.f3{animation-delay:-2.4s}.f4{animation-delay:-3.6s}
  .bar{animation:rise 1.3s cubic-bezier(.2,.8,.2,1) both}
  .bb2{animation-delay:.1s}.bb3{animation-delay:.2s}.bb4{animation-delay:.3s}.bb5{animation-delay:.4s}.bb6{animation-delay:.5s}.bb7{animation-delay:.6s}
  .drawline{stroke-dasharray:900;stroke-dashoffset:900;animation:draw 2.4s .6s ease forwards}
  .glow,.lock{animation:pulse 3s ease-in-out infinite}
  .puff{animation:puff 5s ease-out infinite;opacity:0}.p1{animation-delay:-1s}.p2{animation-delay:-2s}.p3{animation-delay:-3s}.p4{animation-delay:-4s}
  .pin{animation:hop 2.4s ease-in-out infinite}.pin.p2{animation-delay:-1.2s}
  .half-l{animation:wobL 6s ease-in-out infinite}.half-r{animation:wobR 6s ease-in-out infinite}
  .flicker{animation:flick 2.6s steps(1) infinite}
  .crumb{animation:float 4s ease-in-out infinite}
  .impact-bg{animation:drift 20s ease-in-out infinite alternate}
  .inf-base{opacity:.35}.inf-run{opacity:1;stroke-dasharray:22 78;animation:infrun 2.6s linear infinite}
  /* scroll reveals: content is only hidden once the script has confirmed it can reveal it */
  .rv .reveal{opacity:0}
  .rv .reveal.in{opacity:1;animation:revealUp .75s cubic-bezier(.2,.7,.2,1) backwards}
  .rv .reveal.in:nth-child(4n+2){animation-delay:.09s}.rv .reveal.in:nth-child(4n+3){animation-delay:.18s}.rv .reveal.in:nth-child(4n+4){animation-delay:.27s}
  .rv .stat .meter::after{transform:scaleX(0)}
  .rv .stat.in .meter::after{transform:scaleX(1);transition:transform 1.8s cubic-bezier(.2,.7,.2,1) .35s}
  .rv .stat .s-ico :is(path,circle,rect){stroke-dasharray:400;stroke-dashoffset:400}
  .rv .stat.in .s-ico :is(path,circle,rect){animation:draw 1.5s ease .25s forwards}
  .rv .stat.in .s-ico{animation:icoPop .9s cubic-bezier(.2,1.5,.4,1) backwards}
  .stat .s-ico::after{content:"";position:absolute;inset:0;border-radius:12px;border:2px solid var(--cyan);opacity:0;animation:ringOut 3.2s ease-out infinite}
  .site-header{animation:dropIn .6s ease both}
}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes spinr{to{transform:rotate(-360deg)}}
@keyframes flow{to{stroke-dashoffset:-28}}
@keyframes pulse{0%,100%{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.04)}}
@keyframes ripple{0%{transform:scale(.7);opacity:.8}100%{transform:scale(1.9);opacity:0}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes rise{from{transform:scaleY(.1)}to{transform:scaleY(1)}}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes puff{0%{transform:translateY(0) scale(.6);opacity:0}25%{opacity:.8}100%{transform:translateY(-70px) scale(1.5);opacity:0}}
@keyframes hop{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes wobL{0%,100%{transform:translate(-10px,5px) rotate(-4deg)}50%{transform:translate(-18px,9px) rotate(-7deg)}}
@keyframes wobR{0%,100%{transform:translate(8px,-3px) rotate(3deg)}50%{transform:translate(14px,-7px) rotate(6deg)}}
@keyframes flick{0%,60%,100%{opacity:1}30%,45%{opacity:.35}}
@keyframes drift{from{transform:translate(-3%,-2%) scale(1)}to{transform:translate(3%,2%) scale(1.08)}}
@keyframes infrun{to{stroke-dashoffset:-100}}
@keyframes revealUp{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes icoPop{from{transform:scale(.4) rotate(-20deg);opacity:0}to{transform:none;opacity:1}}
@keyframes dropIn{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
@keyframes ringOut{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.5);opacity:0}}

/* delivery stages: right-hand flow */
.sflow{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;align-items:stretch;padding:22px 22px;background:linear-gradient(180deg,#fff,var(--tint))}
.sflow::before{content:"";position:absolute;left:40px;right:40px;top:50%;height:2px;margin-top:-1px;background:repeating-linear-gradient(90deg,#B4C9DC 0 8px,transparent 8px 14px)}
.sflow li{position:relative;z-index:1;display:flex;align-items:center;gap:8px;padding:12px 8px 12px 10px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--sa);border-radius:10px;font-weight:650;line-height:1.3;color:var(--navy);box-shadow:0 1px 2px rgba(6,38,66,.06);transition:transform .25s,box-shadow .25s,background .25s,color .25s}
.sflow .dot{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--sa);color:#fff;font-size:.82rem;font-weight:800;transition:background .25s,color .25s}
.sflow li:hover{transform:translateY(-5px);background:var(--sa);color:#fff;box-shadow:0 14px 28px rgba(var(--sar),.35)}
.sflow li:hover .dot{background:#fff;color:var(--sa)}
.tm-grid{display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:auto auto;gap:20px}
.tm{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:12px;padding:30px 28px;border-top:4px solid var(--blue);transition:transform .3s,box-shadow .3s}
.tm::after{content:"";position:absolute;right:-40px;top:-40px;width:140px;height:140px;border-radius:50%;background:radial-gradient(circle,rgba(18,72,133,.1),transparent 70%)}
.tm:hover{transform:translateY(-5px);box-shadow:0 20px 40px rgba(6,38,66,.15)}
.tm-grid .tm-lead{grid-row:1/3;justify-content:center;background:linear-gradient(135deg,#0B3A63,#124885);border-color:#0B3A63;border-top-color:var(--red)}
.tm-q{color:var(--blue)}
.tm-tag{margin:0;font-size:.76rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#0B5C8A}
.tm blockquote{margin:0}.tm blockquote p{margin:0;font-size:1.15rem;line-height:1.55;color:var(--ink);font-weight:600}
.tm-lead .tm-q{color:var(--cyan)}.tm-lead .tm-tag{color:#9FE9FF}
.tm-lead blockquote p{color:#fff;font-size:1.5rem;line-height:1.45}
.tm .who{display:flex;align-items:center;gap:14px;margin:auto 0 0;padding-top:10px}
.tm .who>span:last-child{display:flex;flex-direction:column;color:var(--muted);font-size:.92rem}
.tm .who strong{color:var(--navy);font-size:1rem}
.tm .av{flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--blue);color:#fff;font-weight:800}
.tm-lead .who>span:last-child,.tm-lead .who strong{color:#fff}.tm-lead .who>span:last-child{color:var(--on-dark)}
.tm-lead .av{background:var(--red)}
.tm-lead::after{background:radial-gradient(circle,rgba(56,214,255,.22),transparent 70%)}
.link-btn{padding:5px 0;border:0;background:none;color:#fff;font:inherit;cursor:pointer;text-decoration:none}
.link-btn:hover{text-decoration:underline;color:var(--cyan)}
.btn-text{background:transparent;border-color:transparent;color:#fff;text-decoration:underline;text-underline-offset:.25em}
.btn-text:hover{background:rgba(255,255,255,.12);border-color:transparent;color:#fff}
.table-wrap{overflow-x:auto;margin:0 0 1.4em}
.ck{width:100%;border-collapse:collapse;font-size:.97rem}
.ck th,.ck td{padding:12px 14px;text-align:left;border:1px solid var(--line);vertical-align:top;color:var(--ink)}
.ck th{background:var(--tint);color:var(--navy)}
.ck code{font-size:.92em;background:var(--tint);padding:2px 6px;border-radius:4px}

/* cookie banner: wide, light, horizontal */
.cc{position:fixed;left:50%;bottom:clamp(12px,2vw,24px);z-index:80;width:min(1080px,calc(100vw - 32px));max-height:calc(100vh - 24px);overflow:auto;padding:20px 26px;border-radius:16px;color:var(--ink);background:#fff;border:1px solid #CBD8E4;border-top:4px solid var(--red);box-shadow:0 24px 64px rgba(6,38,66,.28),0 2px 8px rgba(6,38,66,.1);transform:translate(-50%,24px);opacity:0;transition:transform .45s cubic-bezier(.2,.8,.2,1),opacity .35s}
.cc.show{transform:translate(-50%,0);opacity:1}
.cc:focus-visible,.cc :focus-visible{outline:3px solid rgba(18,72,133,.55);outline-offset:3px}
.cc-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:20px 24px}
.cc-ico{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:var(--tint);color:var(--blue)}
.cc h2{margin:0 0 4px;font-size:1.15rem;color:var(--navy);letter-spacing:-.01em}
.cc p{margin:0;color:var(--muted);font-size:.93rem;line-height:1.55}
.cc a{color:var(--blue);font-weight:700;text-decoration:underline;text-underline-offset:.2em}.cc a:hover{color:var(--blue-hover)}
.cc-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:flex-end}
.cc .btn{min-height:44px}
.cc .btn-ghost{background:#fff;border-color:var(--blue);color:var(--blue)}.cc .btn-ghost:hover{background:var(--tint);color:var(--blue-hover)}
.cc .btn-text{background:transparent;border-color:transparent;color:var(--blue);text-decoration:underline;text-underline-offset:.25em}.cc .btn-text:hover{background:var(--tint);color:var(--blue-hover)}
.cc-panel{margin:18px 0 0;padding:16px 0 0;border-top:1px solid var(--line)}
.cc-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.cc-list li{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#F7FAFC}
.cc-list strong{display:block;color:var(--navy)}.cc-list span{display:block;font-size:.86rem;color:var(--muted);line-height:1.4}
.cc-save{margin-top:14px}
.sw{position:relative;flex:none;display:inline-block;width:52px;height:30px}
.sw input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:2}
.sw-ui{position:absolute;inset:0;border-radius:999px;background:#6C8399;transition:background .25s}
.sw-ui::after{content:"";position:absolute;left:3px;top:3px;width:24px;height:24px;border-radius:50%;background:#fff;transition:transform .25s}
.sw input:checked+.sw-ui{background:#1A7F52}.sw input:checked+.sw-ui::after{transform:translateX(22px)}
.sw input:disabled{cursor:not-allowed}.sw input:disabled+.sw-ui{opacity:.7}
.sw input:focus-visible+.sw-ui{outline:3px solid rgba(18,72,133,.55);outline-offset:3px}
@media(prefers-reduced-motion:no-preference){
  .rv .stage .sflow li{opacity:0}
  .rv .stage.in .sflow li{opacity:1;animation:chipIn .6s cubic-bezier(.2,.8,.2,1) backwards}
  .rv .stage.in .sflow li:nth-child(1){animation-delay:.15s}.rv .stage.in .sflow li:nth-child(2){animation-delay:.3s}.rv .stage.in .sflow li:nth-child(3){animation-delay:.45s}.rv .stage.in .sflow li:nth-child(4){animation-delay:.6s}.rv .stage.in .sflow li:nth-child(5){animation-delay:.75s}
  .sflow::after{content:"";position:absolute;left:40px;top:50%;width:110px;height:4px;margin-top:-2px;border-radius:4px;background:linear-gradient(90deg,transparent,var(--sa));animation:comet 4s linear infinite}
  .sflow .dot{animation:dotWave 5s ease-in-out infinite}
  .sflow li:nth-child(2) .dot{animation-delay:.6s}.sflow li:nth-child(3) .dot{animation-delay:1.2s}.sflow li:nth-child(4) .dot{animation-delay:1.8s}.sflow li:nth-child(5) .dot{animation-delay:2.4s}
  .stage.s2 .sflow::after,.stage.s2 .dot{animation-delay:.4s}.stage.s3 .sflow::after{animation-delay:.8s}.stage.s4 .sflow::after{animation-delay:1.2s}
  .tm-q svg{animation:float 4s ease-in-out infinite}
  .cc-ico svg{animation:wiggle 4s ease-in-out 1s infinite}
}
@keyframes chipIn{from{opacity:0;transform:translateX(-18px) scale(.96)}to{opacity:1;transform:none}}
@keyframes comet{0%{left:40px;opacity:0}10%{opacity:1}90%{opacity:1}100%{left:calc(100% - 150px);opacity:0}}
@keyframes dotWave{0%,16%,100%{box-shadow:0 0 0 0 rgba(var(--sar),0)}6%{box-shadow:0 0 0 8px rgba(var(--sar),.28)}}
@keyframes wiggle{0%,90%,100%{transform:rotate(0)}93%{transform:rotate(-12deg)}96%{transform:rotate(10deg)}}
@media(max-width:960px){
  .stages>li{grid-template-columns:1fr}
  .sflow::before,.sflow::after{display:none}
  .tm-grid{grid-template-columns:1fr}.tm-lead{grid-row:auto}
}
@media(max-width:640px){
  .sflow{grid-template-columns:1fr}
  .cc{width:calc(100vw - 16px);bottom:8px;padding:18px}
  .cc-actions .btn{flex:1 1 100%}
  .ck thead{display:none}.ck,.ck tbody,.ck tr,.ck td{display:block;width:100%}.ck td{border:0;border-bottom:1px solid var(--line)}.ck td::before{content:attr(data-label)": ";font-weight:800;color:var(--navy)}
}
@media print{.cc{display:none!important}}
.sflow .txt{min-width:0;overflow-wrap:break-word;font-size:.92rem}
.tm-lead blockquote{flex:1;display:flex;align-items:center}

/* specialist depth */
.depth{margin:0 0 clamp(30px,4vw,48px)}
.depth-head{margin-bottom:18px}.h-sub0{margin:0;font-size:clamp(1.4rem,2.4vw,1.9rem)}
.depth-grid{gap:16px}
.dp{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:6px;padding:26px 24px 28px;border-radius:var(--radius);color:#fff;background:linear-gradient(150deg,#06243F,#0F4C7D);border:1px solid rgba(255,255,255,.12);transition:transform .3s,box-shadow .3s}
.dp::after{content:"";position:absolute;left:0;bottom:0;height:4px;width:30%;background:linear-gradient(90deg,var(--red),var(--cyan));transition:width .5s ease}
.dp:hover{transform:translateY(-6px);box-shadow:0 22px 44px rgba(6,38,66,.3)}.dp:hover::after{width:100%}
.dp-ico{display:grid;place-items:center;width:52px;height:52px;margin-bottom:10px;border-radius:12px;background:rgba(56,214,255,.15);color:var(--cyan);transition:transform .3s}
.dp:hover .dp-ico{transform:rotate(-6deg) scale(1.08)}
.dp-tag{margin:0;font-size:.76rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#9FE9FF}
.dp h4{margin:0;font-size:1.3rem;color:#fff;line-height:1.2}
.dp p:last-child{margin:4px 0 0;color:var(--on-dark);font-size:.97rem}
.depth+.sec-head{margin-top:0}
/* capability detail accordion */
.acc{display:grid;gap:12px}
.acc-i{margin:0;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#fff;transition:border-color .25s,box-shadow .25s}
.acc-i:hover{border-color:#8FB0CF}
.acc-i[open]{border-color:var(--blue);box-shadow:0 14px 34px rgba(6,38,66,.1)}
.acc-i summary{display:flex;align-items:center;gap:16px;min-height:76px;padding:14px 20px;color:var(--navy);transition:background .2s}
.acc-i summary:hover{background:var(--tint)}
.acc-i[open] summary{background:linear-gradient(90deg,var(--tint),#fff);border-bottom:1px solid var(--line)}
.acc-i summary::after{margin-left:auto;display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:50%;background:var(--tint);color:var(--blue);font-size:1.4rem;transition:background .25s,color .25s,transform .25s}
.acc-i[open] summary::after{background:var(--blue);color:#fff;transform:rotate(180deg)}
.acc-ico{display:grid;place-items:center;flex:none;width:48px;height:48px;border-radius:12px;background:var(--blue);color:#fff}
.acc-t{display:flex;flex-direction:column;min-width:0}
.acc-t strong{font-size:1.15rem;line-height:1.25}
.acc-t small{font-size:.92rem;font-weight:500;color:var(--muted)}
.acc-body{padding:10px 22px 22px;animation:accIn .4s ease}
.acc-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0 32px}
.acc-col h4{margin:16px 0 4px;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}
.acc-col:only-child .checks{columns:2 260px;column-gap:32px}
.acc-col .checks li{break-inside:avoid;padding-block:6px}
.acc-meta{margin:16px 0 0;padding:12px 16px;border-left:4px solid var(--red);border-radius:6px;background:var(--tint);font-size:.96rem;color:var(--ink)}
@keyframes accIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.dl-row{display:flex;align-items:center;justify-content:space-between;gap:24px 40px;flex-wrap:wrap}
.dl-row p{margin:0;max-width:40rem}
.b-disclaimer{--gx:78%;--gy:50%}

/* company profile download window */
.ld{border:0;padding:0;background:transparent;max-width:min(520px,calc(100vw - 24px));width:100%;max-height:calc(100vh - 24px);overflow:visible;margin:auto;color:var(--ink)}
.ld::backdrop{background:rgba(6,38,66,.72);backdrop-filter:blur(3px)}
.ld-card{position:relative;background:#fff;border-radius:16px;padding:32px 32px 28px;max-height:calc(100vh - 24px);overflow:auto;box-shadow:0 30px 80px rgba(6,38,66,.45);border-top:5px solid var(--red)}
.ld h2{margin:0 0 10px;font-size:1.6rem;color:var(--navy);letter-spacing:-.01em}
.ld p{margin:0;color:var(--muted)}.ld #ld-desc{margin-bottom:18px}.ld #ld-done p{margin-bottom:14px}
.ld .eyebrow{margin-bottom:8px}
.ld form{display:grid;gap:14px}.ld .field{gap:5px}
.ld .consent{margin:2px 0 0;flex-wrap:wrap}.ld .consent label{flex:1 1 0;min-width:0}.ld .consent .err{flex-basis:100%;margin:0}
.ld .hint{font-size:.88rem;color:var(--muted)}
.ld-status{min-height:1.4em;font-weight:600;color:var(--blue)}
.ld-x{position:absolute;top:12px;right:12px;width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--tint);color:var(--navy);cursor:pointer}
.ld-x:hover{background:#dfe9f3}.ld-x:focus-visible{outline:3px solid rgba(18,72,133,.45);outline-offset:2px}
.ld-x svg{stroke:currentColor}
#ld-done{text-align:center;display:grid;justify-items:center;gap:6px;padding:10px 0 4px}
#ld-done[hidden],#ld-ask[hidden]{display:none}
.ld-tick{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:var(--blue);color:#fff;margin-bottom:8px}.ld-tick svg{stroke:#fff}
.btn-quiet{background:transparent;border-color:transparent;color:var(--blue);text-decoration:underline;text-underline-offset:.25em}
.btn-quiet:hover{background:var(--tint);color:var(--blue-hover)}
html.ld-open{overflow:hidden}
@media (max-width:480px){.ld-card{padding:26px 20px 22px}.ld h2{font-size:1.4rem;padding-right:40px}}
@media (prefers-reduced-motion:no-preference){.ld[open] .ld-card{animation:ldIn .35s cubic-bezier(.2,.8,.2,1)}@keyframes ldIn{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}}
.ld .err{color:#B3261E;font-size:.9rem;font-weight:600}

/* OTP step */
#ld-otp[hidden]{display:none}
#ld-otp form{display:grid;gap:14px}
.ld-code{font-size:1.9rem!important;letter-spacing:.5em;text-align:center;font-variant-numeric:tabular-nums;padding-left:.5em!important;font-weight:700;color:var(--navy)!important}
.ld-links{display:flex;flex-wrap:wrap;gap:4px 14px;justify-content:center;margin-top:2px}
.ld-links .btn{min-height:44px;padding:8px 10px;font-size:.92rem}
.ld .btn[disabled]{opacity:.6;cursor:not-allowed}
.ld-links .btn[disabled]{color:var(--muted)}
#ld-otp-d{margin-bottom:16px}
.field:has(.ld-code[aria-invalid="true"])+.ld-status{color:#B3261E}

/* vision, mission, values */
.who-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(28px,6vw,80px);align-items:start}
.who-grid h2{margin:0}.who-grid .prose p:first-child{margin-top:0}.who-grid .prose p:last-child{margin-bottom:0}
.purpose{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.pp{position:relative;overflow:hidden;isolation:isolate;border-radius:20px;padding:clamp(28px,4vw,48px);min-height:360px;color:#fff;display:flex;flex-direction:column;box-shadow:0 18px 40px -22px rgba(6,38,66,.55);transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s}
.pp:hover{transform:translateY(-5px);box-shadow:0 26px 50px -22px rgba(6,38,66,.6)}
.pp-v{background:linear-gradient(150deg,#062642 0%,#0B3A63 100%)}
.pp-m{background:linear-gradient(150deg,#124885 0%,#0E3F78 100%)}
.pp::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(520px 260px at 100% 100%,rgba(56,214,255,.16),transparent 70%)}
.pp-n{position:absolute;right:26px;top:10px;font-size:6rem;font-weight:800;line-height:1;letter-spacing:-.05em;color:rgba(255,255,255,.07);z-index:-1;user-select:none}
.pp-label{margin:0;display:flex;align-items:center;gap:12px;font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan)}
.pp-label::before{content:"";width:34px;height:3px;border-radius:2px;background:var(--red)}
.pp-text{margin:20px 0 0;max-width:27ch;font-size:clamp(1.45rem,2.4vw,2rem);line-height:1.3;font-weight:650;letter-spacing:-.015em;color:#fff}
.pp-text em{font-style:normal;color:#fff;background:linear-gradient(transparent 84%,var(--red) 84%);padding-bottom:1px}
.pp-art{position:absolute;right:-6px;bottom:-4px;width:min(58%,300px);height:auto;pointer-events:none;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.pp:hover .pp-art{transform:translate(-6px,-6px)}
.pp-art .a1{stroke:rgba(56,214,255,.85)}.pp-art .a2{stroke:rgba(255,255,255,.32)}.pp-art .a3{stroke:var(--red)}.pp-art .a3f{fill:var(--red)}
.pp-compact{grid-template-columns:1fr;gap:14px}
.pp-compact .pp{min-height:0;padding:24px 26px 26px;border-radius:16px}
.pp-compact .pp-text{font-size:1.25rem;max-width:none;margin-top:14px;padding-right:15%}
.pp-compact .pp-n{font-size:4rem;top:6px;right:18px}.pp-compact .pp-art{width:34%;max-width:150px;opacity:.7}

.strive-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none}
.sv{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 18px 24px;transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s,border-color .3s}
.sv::before{content:"";position:absolute;left:0;top:0;width:100%;height:4px;background:var(--red);transform:scaleX(.16);transform-origin:left;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.sv:hover,.sv:focus-within{transform:translateY(-6px);box-shadow:var(--shadow);border-color:#EFB8B5}
.sv:hover::before,.sv:focus-within::before{transform:scaleX(1)}
.sv-n{display:block;font-size:.76rem;font-weight:700;letter-spacing:.14em;color:var(--muted)}
.sv-l{display:block;margin:8px 0 10px;font-size:5.4rem;line-height:1;font-weight:800;color:transparent;-webkit-text-stroke:2px var(--red);transition:color .35s}
.sv:hover .sv-l,.sv:focus-within .sv-l{color:var(--red)}
.sv h3{margin:0 0 8px;font-size:1.2rem;color:var(--navy)}
.sv p{margin:0;font-size:.95rem;line-height:1.55;color:var(--muted)}
@media(max-width:1180px){.strive-row{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.who-grid{grid-template-columns:1fr}.purpose{grid-template-columns:1fr}.pp{min-height:300px}}
@media(max-width:640px){
  .strive-row{grid-template-columns:1fr;gap:12px}
  .sv{display:grid;grid-template-columns:62px 1fr;column-gap:16px;padding:18px}
  .sv-n{display:none}.sv-l{grid-row:1/span 2;margin:0;font-size:3.8rem;-webkit-text-stroke-width:1.6px}
  .pp{min-height:280px}.pp-art{width:62%}.pp-compact .pp-text{padding-right:0}.pp-compact .pp-art{display:none}
}
@media (prefers-reduced-motion:no-preference){
  .rv .pp .draw{stroke-dasharray:1;stroke-dashoffset:1}
  .rv .pp.in .draw{animation:draw 1.9s cubic-bezier(.3,.6,.2,1) .35s forwards}
  .rv .pp.in .pp-text{animation:revealUp .9s cubic-bezier(.2,.7,.2,1) .15s backwards}
  .rv .strive-row .sv.in:nth-child(1){animation-delay:0s}.rv .strive-row .sv.in:nth-child(2){animation-delay:.08s}.rv .strive-row .sv.in:nth-child(3){animation-delay:.16s}
  .rv .strive-row .sv.in:nth-child(4){animation-delay:.24s}.rv .strive-row .sv.in:nth-child(5){animation-delay:.32s}.rv .strive-row .sv.in:nth-child(6){animation-delay:.4s}
}
/* full-size panels (About page): keep the art clear of the statement text */
.purpose:not(.pp-compact) .pp{min-height:420px}
.purpose:not(.pp-compact) .pp-art{width:min(44%,230px);right:14px;bottom:10px}
.purpose:not(.pp-compact) .pp-text{padding-bottom:110px}
@media(max-width:900px){.purpose:not(.pp-compact) .pp{min-height:340px}.purpose:not(.pp-compact) .pp-text{padding-bottom:90px}}
@media(max-width:640px){.purpose:not(.pp-compact) .pp{min-height:300px}.purpose:not(.pp-compact) .pp-art{width:46%}.purpose:not(.pp-compact) .pp-text{padding-bottom:80px}}

/* Home: About text on the left, Vision and Mission on the right. Both columns share the same top and bottom edge,
   and the two panels are always the same height. */
.split-fill{align-items:stretch}
.split-fill .stack{display:flex;flex-direction:column;gap:22px;min-width:0}
.split-fill .purpose{flex:1;display:grid;grid-template-columns:1fr;grid-auto-rows:1fr;gap:16px}
.split-fill .checks{margin:0}
.pp-compact .pp{justify-content:center;min-height:170px}
.pp-compact .pp-text{margin-top:12px}
@media(max-width:900px){.split-fill .purpose{grid-auto-rows:auto}.pp-compact .pp{min-height:0}}

@media(max-width:1000px){.cc-row{grid-template-columns:auto minmax(0,1fr)}.cc-actions{grid-column:1/-1;justify-content:flex-start}.cc-list{grid-template-columns:1fr}}
@media(max-width:640px){.cc-row{grid-template-columns:1fr}.cc-ico{display:none}}

.ld-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:480px){.ld-pair{grid-template-columns:1fr}}

/* header: keep the longer menu names on one line on laptop widths */
.cta-short{display:none}
@media(max-width:1480px) and (min-width:1181px){
  .site-nav{gap:12px}
  .site-nav a.top{padding:12px 9px;font-size:.92rem}
  .site-nav a.top::after{left:9px;right:9px}
  .cta-long{display:none}.cta-short{display:inline}
}
@media(max-width:1260px) and (min-width:1181px){
  .site-nav{gap:8px}
  .site-nav a.top{padding:12px 6px;font-size:.9rem}
  .site-nav a.top::after{left:6px;right:6px}
  .sub-toggle{width:22px;margin-right:0}
  .site-header .bar{gap:14px}
}
