:root{
  --blue:#0037FF;
  --navy:#00114D;
  --dark:#030712;
  --mid:#4B5563;
  --light:#F5F7FF;
  --white:#FFFFFF;
  --ink:#0B0D14;
  --rule:#E4E6EF;
  --rule-i:rgba(255,255,255,.12);
  --font:'Poppins',system-ui,sans-serif;
  --gut:clamp(1.5rem,5vw,5rem);
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:var(--font);background:var(--white);color:var(--ink);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
a{color:inherit;text-decoration:none;}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;}

.wm{display:inline-flex;align-items:baseline;white-space:nowrap;letter-spacing:-.01em;}
.wm .t{font-weight:400;}.wm .b{font-weight:700;}.wm .d{font-weight:700;color:var(--blue);}
.wm.inv .t,.wm.inv .b{color:#fff;}

.btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font);font-size:13.5px;font-weight:500;padding:13px 26px;border:1px solid transparent;transition:background .15s,border-color .15s,color .15s;cursor:pointer;}
.btn-p{background:var(--blue);color:#fff;}
.btn-p:hover{background:#0029C4;}
.btn-w{background:#fff;color:var(--ink);}
.btn-w:hover{background:#E4E6EF;}
.btn-g{border-color:rgba(255,255,255,.32);color:#fff;}
.btn-g:hover{border-color:#fff;background:rgba(255,255,255,.08);}

.grid-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:56px 56px;pointer-events:none;}

/* ── header ───────────────────────────────── */
.hdr{position:absolute;top:0;left:0;right:0;z-index:10;padding:clamp(1.5rem,3vw,2.25rem) var(--gut);display:flex;align-items:center;justify-content:space-between;}

/* ── hero ─────────────────────────────────── */
.hero{background:var(--dark);color:#fff;min-height:100vh;min-height:100svh;display:flex;align-items:center;position:relative;overflow:hidden;padding:clamp(6rem,14vw,9rem) var(--gut) clamp(3rem,7vw,4.5rem);}
.hero-in{position:relative;max-width:900px;}
.hero h1{font-size:clamp(2.3rem,6vw,4.4rem);font-weight:600;line-height:1.08;letter-spacing:-.032em;}
.hero p{font-size:clamp(1rem,1.6vw,1.15rem);font-weight:300;color:rgba(255,255,255,.6);line-height:1.75;max-width:56ch;margin-top:1.75rem;}
.hero .btn{margin-top:2.5rem;}
.hero-corner{position:absolute;bottom:clamp(1.5rem,3vw,2.25rem);right:var(--gut);font-size:10px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.28);}

/* ── what we do: big abutting blocks ──────── */
.blocks{display:grid;grid-template-columns:repeat(3,1fr);}
.block{min-height:clamp(420px,38vw,520px);padding:clamp(15.5rem,27vw,19.5rem) clamp(2rem,3vw,2.75rem) clamp(2rem,3vw,2.75rem);display:flex;flex-direction:column;position:relative;isolation:isolate;overflow:hidden;}
.block:nth-child(1){background:var(--dark);color:#fff;}
.block:nth-child(2){background:var(--blue);color:#fff;}
.block:nth-child(3){background:var(--navy);color:#fff;}
.block-n{font-size:11px;font-weight:600;letter-spacing:.12em;opacity:.5;position:absolute;top:clamp(2rem,3vw,2.75rem);left:clamp(2rem,3vw,2.75rem);z-index:1;}
.block-invert{position:absolute;inset:0;background:#fff;transform:translateY(-100%);transition:transform .55s cubic-bezier(.65,0,.35,1);mix-blend-mode:difference;z-index:5;pointer-events:none;}
.block:hover .block-invert{transform:translateY(0);}
.block h3{position:relative;font-size:clamp(1.3rem,2.2vw,1.7rem);font-weight:600;letter-spacing:-.02em;z-index:1;}
.block p{position:relative;font-size:14px;font-weight:300;line-height:1.8;margin-top:.9rem;opacity:.72;max-width:34ch;z-index:1;}
.block p+p{margin-top:.75rem;}

/* ── clients ──────────────────────────────── */
.clients{background:var(--white);padding:clamp(4rem,8vw,6.5rem) var(--gut);}
.clients-in{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(2.5rem,6vw,5rem);align-items:center;}
.clients h2{font-size:clamp(1.5rem,3vw,2.2rem);font-weight:600;letter-spacing:-.024em;line-height:1.3;max-width:22ch;}
.clients p{font-size:15px;font-weight:300;color:var(--mid);line-height:1.85;max-width:64ch;margin-top:1.1rem;}
.clients p:first-of-type{margin-top:1.5rem;}
.clients-fig{position:relative;}
.clients-fig svg{width:100%;height:auto;display:block;}
.logowall{margin-top:clamp(2.75rem,5.5vw,3.75rem);border-top:1px solid var(--rule);padding-top:clamp(2rem,4vw,2.5rem);}
.logowall-hd{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#8891AC;margin-bottom:1.75rem;}
.logo-row{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(2rem,4vw,3.25rem);}
.logo-row img{max-height:30px;width:auto;object-fit:contain;filter:grayscale(1);opacity:.6;transition:opacity .2s,filter .2s;}
.logo-row img:hover{filter:grayscale(0);opacity:1;}

/* ── cta ──────────────────────────────────── */
.cta{background:var(--blue);color:#fff;padding:clamp(4.5rem,9vw,7rem) var(--gut);text-align:center;position:relative;overflow:hidden;}
.cta-in{position:relative;max-width:640px;margin:0 auto;}
.cta-eyebrow{font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-bottom:1.25rem;}
.cta h2{font-size:clamp(1.7rem,3.4vw,2.5rem);font-weight:600;letter-spacing:-.026em;line-height:1.25;}
.cta .lede{font-size:15px;font-weight:300;color:rgba(255,255,255,.75);line-height:1.75;max-width:52ch;margin:1.25rem auto 0;}
.cta .btn{margin-top:2rem;}
.cta-mail{display:block;margin-top:1.1rem;font-size:13px;color:rgba(255,255,255,.65);}
.cta-mail:hover{color:#fff;}
.cta-mark{position:absolute;top:50%;right:clamp(-4rem,-2vw,-1rem);transform:translateY(-50%);width:clamp(280px,32vw,440px);opacity:.1;pointer-events:none;}

/* ── footer ───────────────────────────────── */
.ftr{background:var(--dark);color:rgba(255,255,255,.55);padding:clamp(2.5rem,5vw,3.5rem) var(--gut);}
.ftr-in{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;flex-wrap:wrap;max-width:1240px;margin:0 auto;}
.ftr-l{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;}
.ftr-l a{font-size:13px;color:rgba(255,255,255,.5);}
.ftr-l a:hover{color:#fff;}
.ftr-r{font-size:12px;color:rgba(255,255,255,.3);}

@media(max-width:900px){
  .cta-mark{display:none;}
  .blocks{grid-template-columns:1fr;}
  .block{min-height:0;padding:clamp(2.5rem,6vw,3rem) clamp(1.75rem,5vw,2.75rem);}
  .block-n{position:static;margin-bottom:1rem;}
  .clients-in{grid-template-columns:1fr;}
  .clients-fig{display:none;}
}
@media(max-width:600px){
  .ftr-in{flex-direction:column;align-items:flex-start;gap:1.25rem;}
}

/* ── interior pages: about / privacy ──────── */
.page-hero{background:var(--dark);color:#fff;padding:clamp(7rem,14vw,10rem) var(--gut) clamp(3.5rem,7vw,5rem);position:relative;overflow:hidden;}
.page-eyebrow{font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.45);margin-bottom:1.5rem;position:relative;display:flex;align-items:center;gap:12px;}
.page-eyebrow::before{content:'';width:22px;height:2px;background:var(--blue);flex-shrink:0;}
.page-hero h1{font-size:clamp(2rem,4.5vw,3.3rem);font-weight:600;line-height:1.16;letter-spacing:-.03em;max-width:19ch;position:relative;}
.page-hero .lede{font-size:clamp(1rem,1.5vw,1.08rem);font-weight:300;color:rgba(255,255,255,.62);line-height:1.75;max-width:56ch;margin-top:1.4rem;position:relative;}

.prose-sec{padding:clamp(4rem,8vw,6rem) var(--gut);background:var(--white);}
.prose-in{max-width:740px;margin:0 auto;}
.prose-in h2{font-size:clamp(1.25rem,2.3vw,1.6rem);font-weight:600;letter-spacing:-.02em;color:var(--ink);margin-top:2.75rem;}
.prose-in h2:first-child{margin-top:0;}
.prose-in p{font-size:15px;font-weight:300;color:var(--mid);line-height:1.9;margin-top:1.1rem;}
.prose-in p:first-of-type{margin-top:1.25rem;}
.prose-in ul{margin-top:1rem;padding-left:1.2rem;}
.prose-in li{font-size:15px;font-weight:300;color:var(--mid);line-height:1.85;margin-top:.6rem;}
.prose-in strong{color:var(--ink);font-weight:600;}
.meta-line{font-size:12.5px;color:#9CA3AF;font-weight:400;margin-bottom:2.25rem;padding-bottom:1.5rem;border-bottom:1px solid var(--rule);}
