
:root {
  --navy:#031B3D;
  --navy-2:#062A61;
  --navy-3:#0B3C85;
  --blue:#1677FF;
  --blue-light:#52A8FF;
  --pale:#F4F8FD;
  --mist:#DCE5F2;
  --white:#FFFFFF;
  --text:#11233E;
  --display: Georgia, "Times New Roman", serif;
  --body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --shell: 1180px;
  --header-h: 88px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  margin:0;
  background:var(--pale);
  color:var(--text);
  font-family:var(--body);
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img { max-width:100%; display:block; }
a { color:inherit; }
button,input,textarea { font:inherit; }
button { cursor:pointer; }
::selection { background:rgba(22,119,255,.22); }
.sr-only {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.skip-link {
  position:absolute; left:16px; top:-60px; z-index:1000;
  background:var(--white); color:var(--navy); padding:10px 14px; text-decoration:none;
}
.skip-link:focus { top:12px; }
.shell {
  width:min(calc(100% - 48px), var(--shell));
  margin-inline:auto;
}

.site-header {
  height:var(--header-h);
  background:rgba(3,27,61,.985);
  color:var(--white);
  border-bottom:1px solid rgba(255,255,255,.08);
  position:sticky; top:0; z-index:100;
  backdrop-filter:blur(16px);
}
.header-inner {
  height:100%;
  display:grid;
  grid-template-columns:280px 1fr auto;
  align-items:center;
  gap:28px;
}
.brand img { width:220px; height:auto; }
.site-nav {
  display:flex; justify-content:center; gap:34px;
}
.site-nav a, .footer-nav a {
  text-decoration:none;
  font-family:var(--display);
  font-size:15px;
  transition:color .2s ease;
}
.site-nav a:hover, .site-nav a:focus-visible,
.footer-nav a:hover, .footer-nav a:focus-visible { color:var(--blue-light); }
.menu-toggle { display:none; }

.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:0 20px;
  border:1px solid transparent;
  text-decoration:none;
  transition:transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease;
  font-family:var(--display);
  font-size:16px;
}
.button:hover { transform:translateY(-1px); }
.button-outline { border-color:var(--blue); color:var(--white); }
.button-outline:hover { background:var(--blue); }
.button-primary { background:var(--blue); color:var(--white); }
.button-primary:hover { background:var(--blue-light); }
.button-dark { border-color:var(--blue); color:var(--white); background:transparent; }
.button-dark:hover { background:rgba(22,119,255,.12); }
.button-light { border-color:rgba(3,27,61,.24); background:var(--white); color:var(--navy); }
.button-light:hover { border-color:var(--blue); }
.button-contact { background:var(--white); color:var(--navy); padding-inline:28px; }
.button-contact:hover { background:#eef5ff; }
.button-row { display:flex; gap:12px; flex-wrap:wrap; margin-top:28px; }

.hero {
  background:
    radial-gradient(circle at 20% 10%, rgba(82,168,255,.12), transparent 35%),
    linear-gradient(120deg, #02162f 0%, #031b3d 58%, #02152d 100%);
  color:var(--white);
  overflow:hidden;
}
.hero-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(520px,.95fr);
  min-height:590px;
}
.hero-copy {
  padding:74px 58px 68px 0;
  align-self:center;
}
.hero-copy h1, h2 {
  font-family:var(--display);
  font-weight:400;
  letter-spacing:-.02em;
}
.hero-copy h1 {
  margin:9px 0 12px;
  font-size:clamp(50px,5.4vw,77px);
  line-height:.98;
}
.hero-copy h1 em, .value-band h2 em {
  color:var(--blue-light);
  font-style:normal;
}
.eyebrow {
  text-transform:uppercase;
  letter-spacing:.17em;
  font-size:11px;
  font-weight:600;
  color:rgba(255,255,255,.65);
}
.dark-eyebrow { color:var(--blue); }
.pale-eyebrow { color:rgba(255,255,255,.82); }
.accent-rule {
  width:48px; height:1px; background:var(--blue);
  margin:22px 0 24px;
}
.hero-lead {
  max-width:630px;
  margin:0 0 20px;
  font-family:var(--display);
  font-size:24px;
  line-height:1.35;
  color:var(--white);
}
.hero-copy > p:not(.hero-lead) {
  max-width:650px;
  color:rgba(255,255,255,.76);
  font-size:14px;
}
.hero-visual {
  min-height:590px;
  position:relative;
  border-left:1px solid rgba(255,255,255,.10);
  overflow:hidden;
}
.growth-graphic {
  position:absolute;
  inset:0 160px 0 0;
  width:calc(100% - 160px);
  height:100%;
  object-fit:cover;
  opacity:.98;
}
.hero-proof {
  position:absolute;
  inset:0 0 0 auto;
  width:238px;
  padding:70px 20px 40px 32px;
  background:linear-gradient(90deg, rgba(3,27,61,.15), rgba(3,27,61,.98) 30%);
}
.quote-mark {
  color:var(--blue-light);
  font-family:var(--display);
  font-size:46px;
  height:36px;
}
.hero-quote {
  font-family:var(--display);
  font-size:22px;
  line-height:1.25;
  margin:8px 0 16px;
}
.hero-quote strong { color:var(--blue-light); font-weight:400; }
.proof-rule { width:45px; height:1px; background:rgba(255,255,255,.35); margin:22px 0; }
.proof-item {
  display:grid;
  grid-template-columns:48px 1fr;
  gap:12px;
  align-items:center;
  margin:18px 0;
  text-transform:uppercase;
  letter-spacing:.13em;
  font-size:9px;
  color:rgba(255,255,255,.82);
}
.proof-icon, .proof-symbol {
  width:42px; height:42px; border:1px solid var(--blue);
  border-radius:50%;
  display:grid; place-items:center;
  color:var(--blue-light);
  font-size:14px; letter-spacing:0;
}
.proof-symbol { font-size:22px; }

.capability-strip {
  background:linear-gradient(180deg,#f7fbff 0%, #edf4fb 100%);
  border-bottom:1px solid rgba(3,27,61,.07);
}
.capability-row {
  min-height:62px;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:19px;
  flex-wrap:wrap;
  text-transform:uppercase;
  letter-spacing:.15em;
  font-size:10px;
  color:#223b62;
}
.capability-row i {
  width:4px; height:4px; background:var(--blue); border-radius:50%;
}

.section { padding:82px 0; }
.light { background:linear-gradient(180deg,#f7fbff 0%, #eef4fb 100%); }
.section-heading h2 {
  font-size:46px; margin:4px 0 0; color:var(--navy);
}
.centred { text-align:center; }
.centred-rule { margin-inline:auto; }

.service-grid {
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:18px;
  margin-top:42px;
}
.service-card {
  min-height:290px;
  padding:30px 24px 28px;
  background:rgba(255,255,255,.84);
  border:1px solid rgba(3,27,61,.08);
  box-shadow:0 14px 36px rgba(3,27,61,.06);
  display:flex; flex-direction:column; align-items:center;
  text-align:center;
}
.service-card img { width:58px; height:58px; margin-bottom:14px; }
.service-card h3 {
  font-family:var(--display);
  font-weight:400;
  font-size:22px;
  line-height:1.15;
  margin:0;
  color:var(--navy);
}
.mini-rule {
  width:38px; height:1px; background:var(--blue);
  margin:16px 0 18px;
}
.service-card p { margin:0; font-size:13px; color:#2e4260; }

.value-band {
  background:
    linear-gradient(90deg, rgba(255,255,255,.015), transparent),
    linear-gradient(120deg,#02152d 0%, #031b3d 60%, #041528 100%);
  color:var(--white);
  overflow:hidden;
  position:relative;
}
.value-band::after {
  content:"";
  position:absolute;
  right:-70px; bottom:-180px;
  width:470px; height:470px;
  border:1px solid rgba(22,119,255,.14);
  border-radius:50%;
  box-shadow:
    0 0 0 48px rgba(22,119,255,.04),
    0 0 0 96px rgba(22,119,255,.03),
    0 0 0 144px rgba(22,119,255,.02);
}
.value-grid {
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:70px;
  align-items:center;
  padding-block:52px;
  position:relative; z-index:2;
}
.value-grid h2 {
  margin:0;
  font-size:39px;
  line-height:1.22;
  max-width:650px;
}
.value-copy {
  border-left:1px solid var(--blue);
  padding-left:55px;
  color:rgba(255,255,255,.82);
  font-size:15px;
}
.value-copy p { margin:0 0 8px; }

.founder-section {
  background:linear-gradient(180deg,#f7fbff 0%, #eef4fb 100%);
}
.founder-grid {
  display:grid;
  grid-template-columns:minmax(330px, .78fr) 1.22fr;
  gap:58px;
  align-items:center;
}
.portrait-wrap { position:relative; }
.portrait-wrap picture img {
  width:100%;
  max-height:500px;
  object-fit:cover;
  object-position:center 24%;
  box-shadow:0 14px 36px rgba(3,27,61,.13);
}
.portrait-caption {
  position:absolute; left:16px; bottom:16px;
  background:rgba(3,27,61,.9); color:var(--white);
  padding:8px 11px;
  text-transform:uppercase; letter-spacing:.13em; font-size:9px;
}
.founder-copy h2 { font-size:42px; line-height:1.05; margin:6px 0 0; color:var(--navy); }
.founder-copy h3 {
  font-family:var(--display); color:var(--blue);
  font-size:21px; font-weight:400; margin:0 0 12px;
}
.founder-copy p { color:#314764; max-width:720px; font-size:14px; }
.founder-links {
  display:flex; gap:18px; align-items:center; flex-wrap:wrap; margin-top:24px;
}
.linkedin-mark {
  width:22px; height:22px; background:var(--navy); color:#fff;
  display:grid; place-items:center; font:700 13px Arial,sans-serif; margin-right:9px;
}
.text-link {
  color:var(--navy2);
  text-underline-offset:4px;
  font-size:13px;
}

.options-band {
  background:linear-gradient(120deg,#02152d 0%, #031b3d 70%, #041528 100%);
  color:var(--white);
  padding:58px 0;
  position:relative;
  overflow:hidden;
}
.contours {
  position:absolute; right:-12%; bottom:-45%;
  width:60%; opacity:.92;
  pointer-events:none;
}
.options-grid {
  position:relative; z-index:2;
  display:grid;
  grid-template-columns:210px 1fr;
  gap:52px;
  align-items:center;
}
.options-icon {
  min-height:150px;
  display:grid; place-items:center;
  border-right:1px solid var(--blue);
}
.options-icon img { width:116px; }
.options-copy h2 {
  font-size:36px; margin:5px 0 0;
}
.options-copy p:not(.eyebrow) {
  max-width:780px; color:rgba(255,255,255,.78); margin:7px 0; font-size:14px;
}

.contact-band {
  background:
    radial-gradient(circle at 10% 20%, rgba(255,255,255,.10), transparent 26%),
    linear-gradient(125deg,#0b3c85 0%,#1677ff 54%,#0a4eb0 100%);
  color:var(--white);
  padding:70px 0;
}
.contact-grid {
  display:grid; grid-template-columns:.9fr 1.1fr; gap:80px; align-items:start;
}
.contact-grid h2 {
  font-size:45px; line-height:1.05; margin:6px 0 17px;
}
.contact-grid > div > p:last-child { max-width:500px; color:rgba(255,255,255,.88); }
.contact-form {
  padding:27px;
  background:rgba(3,27,61,.20);
  border:1px solid rgba(255,255,255,.22);
}
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.contact-form label { display:block; margin-bottom:14px; }
.contact-form label span {
  display:block; font-size:10px; text-transform:uppercase; letter-spacing:.15em;
  margin-bottom:7px; color:rgba(255,255,255,.82);
}
.contact-form input, .contact-form textarea {
  width:100%; border:1px solid rgba(255,255,255,.34);
  background:rgba(3,27,61,.25);
  color:var(--white);
  padding:11px 12px;
  outline:none;
  border-radius:0;
}
.contact-form input:focus, .contact-form textarea:focus {
  border-color:var(--white);
  box-shadow:0 0 0 2px rgba(255,255,255,.11);
}
.contact-form textarea { resize:vertical; min-height:100px; }
.form-footer { display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.form-status { margin:0; font-size:12px; color:var(--white); max-width:340px; }

.site-footer {
  background:#03162f;
  color:rgba(255,255,255,.76);
  padding:44px 0 24px;
}
.footer-grid {
  display:grid;
  grid-template-columns:260px 1fr auto;
  gap:48px;
  align-items:start;
}
.footer-brand img { width:230px; }
.footer-legal strong { color:var(--white); font-family:var(--display); font-weight:400; font-size:18px; }
.footer-legal p { font-size:11px; line-height:1.6; margin:5px 0; }
.footer-nav { display:flex; gap:18px; flex-wrap:wrap; }
.footer-nav a { font-size:12px; }
.copyright {
  border-top:1px solid rgba(255,255,255,.10);
  margin-top:30px;
  padding-top:18px;
  display:flex; justify-content:space-between;
  font-size:10px;
  text-transform:uppercase; letter-spacing:.1em;
}
.copyright a { text-decoration:none; }

@media (max-width: 1050px) {
  :root { --header-h:78px; }
  .header-inner { grid-template-columns:230px 1fr auto; gap:18px; }
  .brand img { width:195px; }
  .site-nav { gap:20px; }
  .hero-grid { grid-template-columns:1fr 1fr; }
  .hero-copy { padding-right:34px; }
  .hero-proof { width:205px; padding-left:24px; }
  .growth-graphic { right:125px; width:calc(100% - 125px); }
  .service-grid { grid-template-columns:repeat(2,1fr); }
  .contact-grid { gap:45px; }
}

@media (max-width: 820px) {
  .shell { width:min(calc(100% - 32px), var(--shell)); }
  .site-header { height:72px; }
  .header-inner { grid-template-columns:1fr auto; }
  .brand img { width:180px; }
  .header-cta { display:none; }
  .menu-toggle {
    display:flex; flex-direction:column; gap:5px;
    background:none; border:0; padding:10px;
  }
  .menu-toggle span:not(.sr-only) { width:24px; height:1px; background:var(--white); transition:.2s; }
  .site-nav {
    display:none;
    position:absolute;
    top:72px; left:0; right:0;
    padding:24px 24px 30px;
    background:var(--navy);
    border-top:1px solid rgba(255,255,255,.08);
    flex-direction:column;
    align-items:center;
    gap:19px;
  }
  .site-nav.open { display:flex; }
  .hero-grid { display:block; }
  .hero-copy { padding:62px 0 52px; }
  .hero-visual { min-height:430px; border-left:0; border-top:1px solid rgba(255,255,255,.08); }
  .growth-graphic { inset:0 175px 0 0; width:calc(100% - 175px); }
  .capability-row { padding-block:17px; gap:12px; }
  .section { padding:65px 0; }
  .value-grid, .founder-grid, .contact-grid { grid-template-columns:1fr; gap:38px; }
  .value-copy { padding-left:0; border-left:0; border-top:1px solid var(--blue); padding-top:28px; }
  .portrait-wrap { max-width:500px; }
  .options-grid { grid-template-columns:125px 1fr; gap:30px; }
  .footer-grid { grid-template-columns:1fr; gap:25px; }
  .footer-nav { order:2; }
}

@media (max-width: 560px) {
  body { font-size:15px; }
  .hero-copy h1 { font-size:51px; }
  .hero-lead { font-size:21px; }
  .hero-visual { min-height:390px; }
  .growth-graphic { right:145px; width:calc(100% - 145px); }
  .hero-proof { width:172px; padding:42px 12px 24px 20px; }
  .hero-quote { font-size:18px; }
  .proof-item { grid-template-columns:36px 1fr; gap:8px; font-size:8px; }
  .proof-icon, .proof-symbol { width:34px; height:34px; font-size:11px; }
  .service-grid { grid-template-columns:1fr; }
  .service-card { min-height:0; }
  .value-grid h2 { font-size:33px; }
  .founder-copy h2, .contact-grid h2 { font-size:36px; }
  .section-heading h2 { font-size:39px; }
  .options-grid { grid-template-columns:1fr; }
  .options-icon { min-height:110px; border-right:0; border-bottom:1px solid var(--blue); justify-content:start; }
  .options-icon img { width:90px; }
  .field-row { grid-template-columns:1fr; gap:0; }
  .button-row .button { width:100%; }
  .copyright { flex-direction:column; gap:10px; }
}
