:root{--navy:#0f2a52;--navy-h:#1a4481;--ink:#33445e;--muted:#4d5d75;--label:#6a7a92;--od-muted:#a9b8cf;--od-soft:#c9d6ea;--hero-sub:#e3ebf5;--line:#e3e8ef;--ph:#dbe4ef;--hl:#eef3f9;--pad:clamp(20px,4vw,48px);--sec:clamp(56px,7vw,96px)}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:'Archivo',sans-serif;color:var(--navy);background:#fff;overflow-x:hidden}
img{max-width:100%}
a{color:var(--navy);text-decoration:none}a:hover{color:var(--navy-h)}
*:focus-visible{outline:1px solid var(--navy);outline-offset:3px}
input,select,textarea,button{font-family:inherit}
.wrap{max-width:1280px;margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
.sec{padding-top:var(--sec);padding-bottom:var(--sec)}
.sec-t{padding-top:var(--sec)}.sec-b{padding-bottom:var(--sec)}
.eyebrow{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--label)}
.dark .eyebrow{color:var(--od-muted)}
.h2{margin:16px 0 0;font-size:clamp(28px,3.4vw,44px);line-height:1.1;font-weight:300;letter-spacing:-.01em;text-wrap:balance}
.lead{margin:0;font-size:clamp(20px,2vw,26px);line-height:1.45;font-weight:300;text-wrap:pretty}
.body{display:flex;flex-direction:column;gap:16px;font-size:17px;line-height:1.65;color:var(--ink)}.body p{margin:0}
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:clamp(32px,6vw,96px)}
.dark{background:var(--navy);color:#fff}
.btn{display:inline-block;padding:16px 28px;background:var(--navy);color:#fff;font-size:13px;letter-spacing:.14em;text-transform:uppercase;border:0;cursor:pointer;border-radius:0}
.btn:hover{background:var(--navy-h);color:#fff}
.btn-w{background:#fff;color:var(--navy)}.btn-w:hover{background:var(--hl);color:var(--navy)}
.rule{border-top:1px solid var(--navy)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* header */
.hdr{position:absolute;top:0;left:0;right:0;z-index:20;color:#fff;border-bottom:1px solid rgba(255,255,255,.25)}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:22px;padding-bottom:22px}
.logo{display:block;line-height:0}.logo img{height:20px;width:auto;display:block}
.logo .ln{display:none}
.nav{display:flex;gap:clamp(18px,3vw,36px);font-size:13px;letter-spacing:.14em;text-transform:uppercase;align-items:center}
.nav>a,.svc-btn{color:#fff;padding:8px 0 3px;border-bottom:1px solid transparent}
.nav>a:hover,.svc-btn:hover{opacity:.7;color:#fff}
.nav .on{border-bottom-color:#fff}
.svc-btn{all:unset;cursor:pointer;display:flex;gap:8px;align-items:center;padding:8px 0 3px;border-bottom:1px solid transparent;font-size:13px;letter-spacing:.14em;text-transform:uppercase}
.svc-btn.on{border-bottom-color:#fff}
.caret{font-size:9px}
.burger{all:unset;display:none;cursor:pointer;width:28px;height:20px;position:relative}
.burger span,.burger::before,.burger::after{content:"";position:absolute;left:0;right:0;height:1px;background:currentColor}
.burger::before{top:2px}.burger span{top:10px}.burger::after{top:18px}
.mega{text-transform:none;letter-spacing:normal;display:none;position:absolute;top:100%;left:0;right:0;background:#fff;color:var(--navy);border-bottom:1px solid var(--ph);box-shadow:0 30px 60px rgba(15,42,82,.18)}
.hdr.open .mega{display:block}
.mega-in{display:flex;flex-wrap:wrap;align-items:flex-start;gap:clamp(24px,4vw,56px);padding-top:clamp(28px,3vw,44px);padding-bottom:clamp(28px,3vw,44px)}
.mega-intro{margin:0;flex:1 1 220px;max-width:340px;font-size:15px;line-height:1.6;font-weight:300;color:var(--ink)}
.mega-grid{flex:2 1 440px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(24px,4vw,56px);row-gap:36px}
.mega-h{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;padding-bottom:12px;border-bottom:1px solid var(--navy)}
.mega-subs{margin-top:12px;display:flex;flex-direction:column;gap:9px}
.mega-subs a{font-size:15px;color:var(--ink)}.mega-subs a:hover{color:var(--navy)}

/* hero */
.hero{position:relative;overflow:hidden;background:var(--navy);display:flex;align-items:flex-end;min-height:clamp(400px,58vh,580px)}
.hero.big{min-height:clamp(600px,92vh,920px)}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(15,42,82,.9) 0%,rgba(15,42,82,.5) 45%,rgba(15,42,82,.15) 75%,rgba(15,42,82,.55) 100%)}
.hero-c{position:relative;z-index:1;width:100%;padding-top:150px;padding-bottom:clamp(40px,6vw,88px);color:#fff}
.hero-l{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--od-soft);margin-bottom:16px}
.hero h1{margin:0;font-size:clamp(34px,4.6vw,60px);line-height:1.04;font-weight:300;letter-spacing:-.02em;max-width:900px;text-wrap:balance}
.hero.big h1{font-size:clamp(38px,5.4vw,76px)}
.hero.cs h1{font-size:clamp(28px,3.8vw,50px)}
.hero-ps{margin-top:28px;max-width:620px;display:flex;flex-direction:column;gap:14px;font-size:clamp(16px,1.4vw,18px);line-height:1.6;font-weight:300;color:var(--hero-sub)}.hero-ps p{margin:0}
.hero-ps .em{color:#fff;font-weight:400}
.hero .btn{margin-top:32px}
.hero-sub{margin:20px 0 0;max-width:640px;font-size:18px;line-height:1.55;font-weight:300;color:var(--hero-sub)}
.crumbs{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--od-soft);margin-bottom:16px}.crumbs a{color:var(--od-soft)}

/* home */
.stats{border-bottom:1px solid var(--line)}
.stats-in{padding-top:clamp(32px,4vw,48px);padding-bottom:clamp(32px,4vw,48px);display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:32px}
.stat{border-left:1px solid var(--navy);padding-left:20px}
.stat b{display:block;font-size:clamp(36px,4vw,52px);line-height:1;font-weight:300;letter-spacing:-.02em}
.stat span{display:block;margin-top:12px;font-size:12px;line-height:1.5;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.legacy{margin:0;max-width:820px;font-size:clamp(22px,2.4vw,30px);line-height:1.4;font-weight:300;text-wrap:pretty}
.focus{margin-top:24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));column-gap:clamp(24px,4vw,56px);row-gap:40px}
.focus a{display:flex;flex-direction:column;border-top:1px solid var(--navy);padding-top:22px}
.focus .t{font-size:clamp(26px,2.8vw,34px);line-height:1.1;font-weight:300}
.focus p{margin:12px 0 0;font-size:16px;line-height:1.55;color:var(--ink);flex:1}
.more{margin-top:16px;font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.cards{margin-top:28px;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:32px}
.card{display:flex;flex-direction:column;color:#fff}.card:hover{color:var(--od-soft)}
.card .im{aspect-ratio:3/2;overflow:hidden;background:var(--navy-h)}.card img{display:block;width:100%;height:100%;object-fit:cover}
.card .t{margin-top:20px;font-size:22px}
.card .d{margin-top:12px;font-size:15px;line-height:1.55;color:var(--od-muted);flex:1}
.card .more{margin-top:20px;color:var(--od-muted)}
.clients{border-bottom:1px solid var(--line)}
.marquee{padding-bottom:clamp(48px,6vw,72px);overflow:hidden;-webkit-mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent)}
.track{display:flex;width:max-content;align-items:center;gap:clamp(16px,3vw,40px);padding-right:clamp(16px,3vw,40px);animation:mq 45s linear infinite}
.track:hover{animation-play-state:paused}
.track img{display:block;height:120px;width:120px;object-fit:contain;mix-blend-mode:multiply;filter:grayscale(1) contrast(1.1);opacity:.85;flex:none}
@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.track{animation:none}}
.logo-grid{margin-top:28px;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:clamp(16px,3vw,32px);align-items:center}
.logo-grid img{display:block;width:100%;height:64px;object-fit:contain;mix-blend-mode:multiply;filter:grayscale(1) contrast(1.1);opacity:.75}

/* lists / bands */
.band{margin-top:28px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));column-gap:32px}
.band>div{border-top:1px solid rgba(255,255,255,.25);padding:20px 0;font-size:19px;font-weight:300}
.band.num>div{display:flex;gap:16px;align-items:baseline}.band.num i{font-style:normal;font-size:13px;color:var(--od-muted)}
.pull{margin:28px 0 0;padding-top:20px;border-top:1px solid var(--navy);font-size:20px;line-height:1.45}
.body .first{color:var(--navy);font-size:19px}
.trio{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:clamp(24px,4vw,56px)}
.trio>div{border-top:1px solid var(--navy);padding-top:20px}.trio .t{font-size:24px;line-height:1.15;font-weight:300}.trio p{margin:12px 0 0;font-size:15px;line-height:1.6;color:var(--muted)}
.tabs{display:flex;flex-wrap:wrap;gap:clamp(16px,3vw,40px);border-bottom:1px solid var(--line)}
.tab{all:unset;cursor:pointer;padding:14px 0;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--label);border-bottom:1px solid transparent;margin-bottom:-1px}
.tab[aria-selected=true]{color:var(--navy);border-bottom-color:var(--navy)}
.panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));column-gap:clamp(32px,6vw,96px)}
.panel[hidden]{display:none}
.tc{padding:26px 0;border-bottom:1px solid var(--line)}
.std{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--label);margin-bottom:8px}
.tc h3{margin:0;font-size:19px;font-weight:500;line-height:1.3}.tc p{margin:8px 0 0;font-size:15px;line-height:1.65;color:var(--muted)}
.bt{border-top:1px solid var(--line)}
.exp{margin-top:24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));column-gap:clamp(32px,6vw,96px);border-top:1px solid var(--navy)}
.exp>div{padding:16px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:baseline}
.exp span:first-child{font-size:16px;line-height:1.45}.exp span:last-child{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--label);text-align:right}
.cases{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:clamp(24px,3vw,48px)}
.cases a{display:block;border-top:1px solid var(--navy);padding-top:18px}.cases .t{margin-top:10px;font-size:22px;line-height:1.3;font-weight:300}
.prof{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:clamp(32px,6vw,96px);align-items:start}
.prof.c{align-items:center}
.ph{aspect-ratio:4/5;overflow:hidden;background:var(--ph);max-width:400px}.ph img{display:block;width:100%;height:100%;object-fit:cover}
.prof .main{grid-column:span 2}
.pname{margin:14px 0 0;font-size:clamp(30px,3.4vw,44px);font-weight:300;line-height:1.1}
.prof .body{margin-top:22px;max-width:720px}
.tags{margin-top:6px;border-top:1px solid var(--navy)}.tags div{padding:10px 0;border-bottom:1px solid var(--line);font-size:15px}
.groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));column-gap:clamp(32px,6vw,96px);row-gap:48px}
.gh{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--label);padding-bottom:12px;border-bottom:1px solid var(--navy)}
.gi{padding:18px 0;border-bottom:1px solid var(--line)}.gi h3{margin:0;font-size:18px;font-weight:500}.gi p{margin:6px 0 0;font-size:15px;line-height:1.6;color:var(--muted)}
.also{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));column-gap:clamp(32px,6vw,96px)}.also div{padding:16px 0;border-bottom:1px solid var(--line);font-size:18px}
.img43{aspect-ratio:4/3;overflow:hidden;background:var(--ph)}.img43 img{display:block;width:100%;height:100%;object-fit:cover}
.ncard{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:clamp(20px,3vw,40px);align-items:center;border-top:1px solid var(--navy);border-bottom:1px solid var(--navy);padding:28px 0}
.ncard .pic{width:96px;height:96px;overflow:hidden;background:var(--ph)}.ncard .pic img{display:block;width:100%;height:100%;object-fit:cover}
.ncard .t{font-size:clamp(22px,2.4vw,30px);font-weight:300}.ncard .d{margin-top:8px;font-size:15px;line-height:1.6;color:var(--ink)}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:32px}
.tiles>div{border-top:1px solid var(--navy);padding-top:18px;font-size:20px}
.tiles p{margin:10px 0 0;font-size:15px;line-height:1.6;color:var(--muted)}
.vals{margin-top:28px;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:32px}
.vals>div{border-top:1px solid rgba(255,255,255,.25);padding-top:22px}.vals .t{font-size:24px;font-weight:300}.vals p{margin:12px 0 0;font-size:15px;line-height:1.65;color:var(--od-soft)}

/* faq */
.faq{grid-column:span 2;border-top:1px solid var(--navy)}
.fg{margin:36px 0 0;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--label);padding-bottom:4px}
.fg:first-child{margin-top:20px}
.fq{border-bottom:1px solid var(--line)}
.fq button{all:unset;box-sizing:border-box;width:100%;cursor:pointer;display:flex;justify-content:space-between;gap:16px;padding:22px 0;font-size:19px;line-height:1.35}
.fq button:hover{color:var(--navy-h)}.fq button span:last-child{font-weight:300}
.fq .a{margin:0;padding:0 32px 22px 0;font-size:16px;line-height:1.65;color:var(--muted)}
.fq .a[hidden]{display:none}
.big-t{font-size:clamp(26px,3vw,38px);font-weight:300}

/* case study */
.cs-l{display:flex;flex-direction:column;gap:28px}
.cs-l>div{border-top:1px solid var(--navy);padding-top:16px}
.cs-l p{margin:10px 0 0;font-size:16px;line-height:1.65;color:var(--ink)}.cs-l .ch{font-size:18px;line-height:1.55;font-weight:300;color:var(--navy)}
.cs-r{grid-column:span 2;display:flex;flex-direction:column;gap:48px}
.steps{margin-top:16px;border-top:1px solid var(--navy)}
.steps div{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;padding:16px 0;border-bottom:1px solid var(--line);font-size:16px;line-height:1.6;color:var(--ink)}.steps i{font-style:normal;color:var(--label)}
.res{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:28px}
.res>div{border-top:1px solid var(--navy);padding-top:16px}.res h3{margin:0;font-size:18px;font-weight:500}.res p{margin:8px 0 0;font-size:15px;line-height:1.6;color:var(--muted)}

/* talk + form */
.talk-l{display:flex;flex-direction:column;gap:20px;font-size:16px;line-height:1.6}
.talk-l h2{margin:0;font-size:clamp(34px,4.4vw,56px);line-height:1.04;font-weight:300;letter-spacing:-.02em}
.talk-l .s{font-size:20px}.talk-l p{margin:0;font-size:17px;line-height:1.65;color:var(--ink)}
.talk-l .ad{border-top:1px solid var(--navy);padding-top:14px}.talk-l .ct{border-top:1px solid var(--line);padding-top:14px}
form.cf{display:flex;flex-direction:column;gap:22px}
.cf label{display:flex;flex-direction:column;gap:6px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--label)}
.cf input,.cf select,.cf textarea{font-size:17px;padding:10px 0;border:none;border-bottom:1px solid var(--navy);background:transparent;color:var(--navy);border-radius:0;outline:none;width:100%;letter-spacing:normal;text-transform:none}
.cf input:focus,.cf select:focus,.cf textarea:focus{border-bottom-width:2px;padding-bottom:9px}
.cf textarea{resize:vertical}
.cf .row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:22px}
.cf .btn{align-self:flex-start}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.thanks{font-size:28px;font-weight:300;line-height:1.3;padding-top:12px}
.ferr{margin:0;font-size:15px;color:#9b1c1c}

/* cta */
.cta{border-top:1px solid var(--line);padding-top:clamp(40px,5vw,64px);display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.cta>div{max-width:680px}.cta p{margin:12px 0 0;font-size:17px;line-height:1.6;color:var(--ink)}

/* guides */
.glist{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));column-gap:clamp(32px,6vw,96px);row-gap:40px}
.glist a{display:flex;flex-direction:column;border-top:1px solid var(--navy);padding-top:22px}
.glist .t{font-size:clamp(22px,2.4vw,28px);line-height:1.2;font-weight:300}.glist p{margin:12px 0 0;font-size:16px;line-height:1.55;color:var(--ink)}
.article{max-width:760px;font-size:17px;line-height:1.7;color:var(--ink)}
.article h2{margin:48px 0 0;font-size:clamp(24px,2.6vw,32px);line-height:1.2;font-weight:300;color:var(--navy)}
.article h3{margin:32px 0 0;font-size:19px;font-weight:500;color:var(--navy)}
.article p,.article ul{margin:16px 0 0}.article li{margin:6px 0}
.article strong{color:var(--navy);font-weight:500}
.article a{border-bottom:1px solid var(--ph)}
.article>p:first-child{margin-top:0;font-size:clamp(19px,1.8vw,22px);line-height:1.5;font-weight:300;color:var(--navy)}

/* footer */
.ftr{margin-top:var(--sec)}
.ftr-in{padding-top:56px;padding-bottom:28px}
.fcols{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:32px;font-size:14px;line-height:1.8;color:var(--od-soft)}
.fcols img{height:20px;width:auto;display:block}.fcols p{margin:16px 0 0;max-width:300px;line-height:1.6}
.fh{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--od-muted);margin-bottom:6px}
.fcols a{display:block;color:#fff}.fcols a:hover{color:var(--od-soft)}
.fcols .addr a{display:inline;color:var(--od-soft)}
.legal{margin-top:40px;padding-top:16px;border-top:1px solid rgba(255,255,255,.2);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12px;line-height:1.6;color:var(--od-muted)}

/* mobile */
@media (max-width:860px){
  .burger{display:block}
  .nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;color:var(--navy);flex-direction:column;align-items:stretch;gap:0;padding:8px var(--pad) 24px;box-shadow:0 30px 60px rgba(15,42,82,.18);max-height:calc(100vh - 66px);overflow:auto}
  .hdr.drawer{background:#fff;color:var(--navy)}
  .hdr.drawer .logo .lw,.hdr.open .logo .lw{display:none}
  .hdr.drawer .logo .ln,.hdr.open .logo .ln{display:block}
  .hdr.drawer .nav{display:flex}
  .nav>a,.svc-btn{color:var(--navy);padding:16px 0;border-bottom:1px solid var(--line)}
  .nav>a:hover,.svc-btn:hover{color:var(--navy);opacity:1}
  .nav .on,.svc-btn.on{border-bottom-color:var(--line);font-weight:500}
  .svc-btn{justify-content:space-between}
  .mega{position:static;box-shadow:none;border:0}
  .hdr.open .mega{display:block}
  .mega-in{padding:8px 0 16px}
  .mega-intro{display:none}
  .mega-grid{grid-template-columns:1fr;row-gap:20px}
  .prof .main,.faq,.cs-r{grid-column:auto}
  .ncard{grid-template-columns:72px minmax(0,1fr)}.ncard .pic{width:72px;height:72px}.ncard .btn{grid-column:1/-1;justify-self:start}
}
@media (min-width:861px){.hdr.open{}}
