:root{
  --navy:#1e3552;
  --navy-deep:#14243a;
  --sky:#8fbbe8;
  --blue:#2a5d9f;
  --ink:#1b2430;
  --muted:#53606f;
  --paper:#f5f7fa;
  --white:#fff;
  --line:#d3dae4;
  --font:"Barlow","Segoe UI",system-ui,-apple-system,Helvetica,Arial,sans-serif;
  --font-head:"Barlow Semi Condensed","Barlow","Segoe UI",system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font);font-size:1.0625rem;line-height:1.65;color:var(--ink);background:var(--paper)}
img{max-width:100%;height:auto}
a{color:var(--blue);text-underline-offset:.2em}
a:hover{color:var(--navy)}
:focus-visible{outline:3px solid var(--sky);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--white);color:var(--navy);padding:.6rem 1rem;z-index:10}
.skip:focus{left:1rem;top:1rem}
.wrap{width:min(1120px,100% - 2.5rem);margin-inline:auto}

/* header */
.site-header{background:var(--navy-deep);color:var(--white)}
.site-header .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 2rem;padding-block:1rem}
.brand img{display:block;width:210px;height:auto}
.nav{display:flex;gap:.25rem;flex-wrap:wrap;margin:0;padding:0;list-style:none}
.nav a{display:block;padding:.5rem .9rem;color:#dbe6f3;text-decoration:none;font-family:var(--font-head);font-size:1.15rem;font-weight:500;border-bottom:2px solid transparent}
.nav a:hover{color:var(--white);border-color:var(--sky)}
.nav a[aria-current="page"]{color:var(--white);border-color:var(--sky)}

/* hero: faint grid echoes the mark in the logo */
.hero{position:relative;background:var(--navy);color:var(--white);overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;
  background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);
  background-size:44px 44px;
  mask-image:radial-gradient(ellipse 70% 120% at 100% 0%,#000 0%,transparent 70%);
  -webkit-mask-image:radial-gradient(ellipse 70% 120% at 100% 0%,#000 0%,transparent 70%)}
.hero .wrap{position:relative;padding-block:clamp(3.5rem,9vw,7rem)}
.hero h1{font-family:var(--font-head);font-weight:600;font-size:clamp(2.4rem,6vw,4.4rem);line-height:1.05;letter-spacing:-.01em;margin:0 0 1.5rem;max-width:16em}
.hero p{max-width:40rem;font-size:1.2rem;color:#d4e1f1;margin:0 0 2rem}
.hero.small .wrap{padding-block:clamp(2.5rem,6vw,4.5rem)}
.hero.small h1{font-size:clamp(2.2rem,5vw,3.4rem);margin:0}
.actions{display:flex;flex-wrap:wrap;gap:.75rem}
.btn{display:inline-block;padding:.8rem 1.4rem;border-radius:3px;font-weight:600;text-decoration:none;border:2px solid var(--sky)}
.btn.primary{background:var(--sky);color:var(--navy-deep)}
.btn.primary:hover{background:var(--white);border-color:var(--white);color:var(--navy-deep)}
.btn.ghost{color:var(--white)}
.btn.ghost:hover{background:rgba(255,255,255,.1);color:var(--white)}

/* sections */
section{padding-block:clamp(2.75rem,6vw,4.5rem)}
h2{font-family:var(--font-head);font-weight:600;font-size:clamp(1.7rem,3.4vw,2.3rem);line-height:1.15;margin:0 0 1rem;color:var(--navy)}
h3{font-family:var(--font-head);font-weight:600;font-size:1.3rem;margin:0 0 .25rem;color:var(--navy)}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:1.5rem clamp(2rem,6vw,5rem);align-items:start}
.lede{font-size:1.2rem;max-width:42rem}
.rule-top{border-top:1px solid var(--line)}

.clients{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line);background:var(--white)}
.clients li{padding:1rem 1.25rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-weight:500}
.clients small{display:block;color:var(--muted);font-weight:400;font-size:.9rem}

.band{background:var(--navy-deep);color:var(--white)}
.band h2{color:var(--white)}
.band p{color:#d4e1f1;max-width:40rem}
.band a:not(.btn){color:var(--sky)}

/* technology */
.tech-group{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.2fr);gap:1rem clamp(2rem,6vw,5rem);padding-block:2.25rem;border-top:1px solid var(--line)}
.tech-group:first-of-type{border-top:0}
.tech-group h2{margin:0}
.tech-list{margin:0;padding:0;list-style:none;display:grid;gap:1.5rem}
.tech-list p{margin:0;color:var(--muted)}
.tech-list h3{color:var(--ink)}

/* services */
.services{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.services div{background:var(--white);padding:1.75rem 1.5rem}
.services ul{margin:.75rem 0 0;padding:0;list-style:none}
.services li{padding:.45rem 0;border-top:1px solid var(--line)}
.services li:first-child{border-top:0}

footer{background:var(--navy-deep);color:#b9c9dc;font-size:.95rem;padding-block:2rem}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem 2rem}
footer a{color:var(--sky)}
footer p{margin:0}

@media (max-width:760px){
  .split,.tech-group{grid-template-columns:1fr}
  .brand img{width:170px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
