:root {
  --navy: #071d35;
  --navy-2: #0a2540;
  --blue: #0b7cff;
  --cyan: #38b6ff;
  --ink: #0a1d33;
  --muted: #607086;
  --pale: #f4f7fb;
  --line: #dce5ee;
  --white: #fff;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: white; font-family: "Manrope", sans-serif; font-size: 16px; line-height: 1.65; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
.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; }
.contact-strip { background:#071d35; border-top:4px solid #d9e4ee; border-bottom:1px solid #1e4c72; color:#fff; }
.contact-strip-inner { min-height:38px; padding:0 clamp(24px,5vw,80px); display:flex; align-items:center; justify-content:flex-end; gap:17px; font-size:.76rem; font-weight:700; letter-spacing:.02em; }
.contact-strip a { color:inherit; }
.contact-strip a:hover { color:#8ed5ff; }
.contact-strip a span,.contact-pending span { color:#38b6ff; margin-right:6px; }
.contact-pending { color:#c7d5e2; cursor:default; }
.contact-divider { width:1px; height:19px; background:#3f6686; }
.site-header { height:88px; display: flex; align-items: center; justify-content: space-between; padding: 0 clamp(24px, 5vw, 80px); background: rgba(255,255,255,.96); border-bottom: 1px solid rgba(10,37,64,.08); position: sticky; top: 0; z-index: 100; backdrop-filter: blur(14px); }
.brand img { width: 164px; height: 58px; object-fit: contain; }
nav { display: flex; align-items: center; gap: 34px; font-size: .91rem; font-weight: 600; }
nav a:not(.nav-cta) { position: relative; }
nav a:not(.nav-cta)::after { content:""; position:absolute; left:0; right:100%; bottom:-5px; height:2px; background:var(--blue); transition:.25s ease; }
nav a:not(.nav-cta):hover::after { right:0; }
.nav-cta { color: white; background: var(--navy); padding: 12px 20px; border-radius: 3px; transition: .2s; }
.nav-cta:hover { background: var(--blue); }
.menu-button { display:none; border:0; background:none; padding:8px; }
.menu-button > span:not(.sr-only) { display:block; width:24px; height:2px; margin:5px 0; background:var(--navy); }
.hero { min-height: calc(100vh - 88px); background: linear-gradient(135deg,#06172a 0%,#0a2c4c 58%,#063766 100%); color:white; position:relative; overflow:hidden; padding: clamp(80px,11vh,130px) clamp(24px,7vw,110px) 76px; display:grid; grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr); gap:60px; align-items:center; }
.hero-grid { position:absolute; inset:0; opacity:.15; background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px); background-size:72px 72px; mask-image:linear-gradient(to right,black,transparent 75%); }
.hero-glow { position:absolute; width:650px; height:650px; right:-180px; top:-180px; background:radial-gradient(circle,rgba(11,124,255,.45),transparent 66%); }
.hero-copy,.hero-mark { position:relative; z-index:2; }
.eyebrow { margin:0 0 24px; font-size:.76rem; font-weight:700; letter-spacing:.22em; color:#8ed5ff; }
.eyebrow.blue { color:var(--blue); }
h1,h2,h3 { font-family:"Outfit",sans-serif; margin-top:0; line-height:1.06; }
h1 { font-size:clamp(3.4rem,7vw,7rem); letter-spacing:-.045em; margin-bottom:32px; font-weight:600; }
h1 span { color:var(--cyan); }
.hero-lead { max-width:700px; font-size:clamp(1.05rem,1.6vw,1.28rem); color:#c9d7e5; line-height:1.65; margin-bottom:38px; }
.hero-actions { display:flex; align-items:center; gap:25px; flex-wrap:wrap; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:22px; min-height:52px; padding:0 24px; font-weight:700; font-size:.9rem; transition:.22s ease; border:1px solid transparent; }
.button.primary { background:var(--blue); color:white; border-radius:3px; box-shadow:0 12px 32px rgba(11,124,255,.24); }
.button.primary:hover { background:#2291ff; transform:translateY(-2px); }
.button.text-link { color:white; border-bottom:1px solid rgba(255,255,255,.35); padding:0 2px; }
.hero-mark { min-height:480px; }
.peak { position:absolute; transform:rotate(45deg); border-style:solid; border-color:transparent var(--cyan) var(--blue) transparent; opacity:.6; }
.peak-one { width:310px; height:310px; right:40px; top:50px; border-width:32px; }
.peak-two { width:210px; height:210px; right:90px; top:142px; border-width:20px; opacity:.32; }
.impact-card { position:absolute; right:0; bottom:25px; width:280px; padding:26px; background:rgba(5,25,47,.72); border:1px solid rgba(255,255,255,.22); backdrop-filter:blur(14px); }
.impact-card span { display:block; color:#88cfff; font-size:.7rem; letter-spacing:.2em; margin-bottom:8px; }
.impact-card strong { font-family:"Outfit"; font-size:1.45rem; line-height:1.3; }
.trust-strip { position:absolute; z-index:2; left:clamp(24px,7vw,110px); right:clamp(24px,7vw,110px); bottom:25px; display:flex; align-items:center; gap:24px; color:#8fa7bd; font-size:.69rem; letter-spacing:.2em; font-weight:700; }
.trust-strip i { width:32px; height:1px; background:#48627b; }
.section { padding:clamp(78px,10vw,140px) clamp(24px,7vw,110px); }
.problem { display:grid; grid-template-columns:.4fr 1.2fr .55fr; gap:50px; align-items:start; }
.section-label { font-size:.72rem; color:var(--blue); font-weight:700; letter-spacing:.19em; border-top:2px solid var(--blue); padding-top:15px; width:max-content; }
.problem h2,.section-heading h2,.sector h2,.about h2 { font-size:clamp(2.4rem,4vw,4.25rem); letter-spacing:-.035em; margin-bottom:28px; }
.problem h2 span { color:#8794a4; }
.problem-copy > p { color:var(--muted); font-size:1.08rem; max-width:760px; }
.metric-card { background:var(--pale); padding:34px; border-top:3px solid var(--blue); }
.metric-icon { color:var(--blue); font-size:2.2rem; }
.metric-card p { margin:14px 0 0; font-weight:600; line-height:1.55; }
.services { background:var(--pale); }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:60px; margin-bottom:62px; }
.section-heading h2 { margin-bottom:0; }
.section-heading > p { max-width:430px; color:var(--muted); }
.service-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:16px; }
.service-card { background:white; padding:42px; border:1px solid var(--line); position:relative; min-height:570px; }
.service-card { grid-column:span 2; }
.service-card:nth-child(4),.service-card:nth-child(5) { grid-column:span 3; }
.service-card.featured { background:var(--navy); color:white; transform:translateY(-12px); box-shadow:0 25px 55px rgba(10,37,64,.15); border-color:var(--navy); }
.service-number { position:absolute; top:24px; right:28px; color:#aab6c3; font-size:.74rem; letter-spacing:.17em; }
.service-icon { color:var(--blue); font-size:2.5rem; margin-bottom:38px; }
.service-card h3 { font-size:1.75rem; }
.service-card p { color:var(--muted); }
.service-card.featured p { color:#b9cad9; }
.service-card ul { list-style:none; padding:20px 0 0; margin:28px 0 0; border-top:1px solid var(--line); }
.service-card.featured ul { border-color:#264766; }
.service-card li { padding:7px 0 7px 22px; position:relative; font-size:.91rem; }
.service-card li::before { content:""; width:7px; height:7px; border:2px solid var(--blue); position:absolute; left:0; top:15px; transform:rotate(45deg); }
.approach { background:var(--navy); color:white; display:grid; grid-template-columns:.8fr 1.2fr; gap:9vw; }
.approach-intro h2 { font-size:clamp(3rem,5vw,5.5rem); letter-spacing:-.04em; }
.approach-intro h2 span { color:var(--cyan); }
.approach-intro > p:last-child { color:#b5c7d8; max-width:480px; }
.steps { border-top:1px solid #31506b; }
.step { display:grid; grid-template-columns:70px 1fr; gap:20px; padding:34px 0; border-bottom:1px solid #31506b; }
.step > span { color:var(--cyan); font-size:.73rem; letter-spacing:.15em; }
.step h3 { font-size:1.65rem; margin-bottom:8px; }
.step p { color:#b5c7d8; margin:0; max-width:570px; }
.sector { background:linear-gradient(140deg,#f7f9fc 60%,#e7f4ff); }
.sector-card { max-width:1000px; }
.sector-card > p:not(.eyebrow) { color:var(--muted); font-size:1.12rem; max-width:830px; }
.sector-tags { display:flex; flex-wrap:wrap; gap:12px; margin-top:36px; }
.sector-tags span { padding:10px 16px; background:white; border:1px solid #cfe0ef; color:#25445f; font-size:.86rem; font-weight:600; }
.about { display:grid; grid-template-columns:1fr 1fr; gap:8vw; align-items:center; }
.about-panel { min-height:520px; background:var(--pale); padding:58px; display:flex; flex-direction:column; justify-content:space-between; position:relative; overflow:hidden; }
.about-panel::after { content:""; position:absolute; width:330px; height:330px; right:-130px; bottom:-140px; border:35px solid var(--blue); transform:rotate(45deg); opacity:.1; }
.founder-mark { width:82px; height:82px; background:linear-gradient(135deg,var(--navy),var(--blue)); color:white; display:grid; place-items:center; font-family:"Outfit"; font-size:1.5rem; }
.about-copy h3 { font-size:2rem; margin-bottom:2px; }
.role { color:var(--blue); font-weight:700; margin-top:0; }
.about-copy > p:not(.role) { color:var(--muted); }
.credentials { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.credentials span { background:var(--pale); padding:8px 12px; font-size:.78rem; font-weight:700; }
.contact { min-height:620px; color:white; background:linear-gradient(120deg,#071b31,#083e70); padding:clamp(80px,11vw,150px) clamp(24px,7vw,110px); position:relative; overflow:hidden; display:grid; grid-template-columns:minmax(0,1fr) minmax(340px,.78fr); gap:70px; align-items:center; }
.contact-bg { position:absolute; inset:0; background:radial-gradient(circle at 85% 30%,rgba(56,182,255,.35),transparent 28%); }
.contact-copy { position:relative; z-index:2; max-width:850px; }
.contact h2 { font-size:clamp(3rem,5.5vw,5.8rem); letter-spacing:-.04em; margin-bottom:28px; }
.contact-copy > p:not(.eyebrow) { color:#c0d4e5; max-width:670px; font-size:1.1rem; margin-bottom:35px; }
.contact-details { display:flex; flex-wrap:wrap; gap:12px 24px; font-weight:700; }
.contact-details a { color:#fff; border-bottom:1px solid rgba(56,182,255,.7); padding-bottom:4px; }
.contact-details a:hover { color:#8ed5ff; }
.button.light { background:white; color:var(--navy); }
.button.light:hover { background:var(--cyan); }
.contact-form { position:relative; z-index:2; background:#fff; color:var(--ink); padding:30px; box-shadow:0 20px 50px rgba(0,0,0,.16); }
.form-intro { margin:0 0 20px; color:#536b81; font-size:.92rem; line-height:1.55; }
.contact-form label { display:block; margin:13px 0 6px; font-size:.82rem; font-weight:700; }
.contact-form label span { color:var(--blue); }
.contact-form input,.contact-form textarea { width:100%; border:1px solid #b7c6d4; background:#fff; color:var(--ink); font:inherit; font-size:.92rem; padding:11px 12px; border-radius:3px; }
.contact-form textarea { resize:vertical; min-height:94px; }
.contact-form input:focus,.contact-form textarea:focus { outline:2px solid #38b6ff; outline-offset:1px; border-color:#0b7cff; }
.form-submit { width:100%; margin-top:20px; background:var(--blue); color:#fff; border:0; cursor:pointer; border-radius:3px; }
.form-submit:hover { background:#2291ff; }
.form-status { min-height:1.5em; margin:12px 0 0; color:#536b81; font-size:.82rem; }
.contact-lines { position:absolute; width:500px; height:500px; right:-100px; bottom:-210px; transform:rotate(45deg); border:45px solid rgba(255,255,255,.09); }
footer { padding:50px clamp(24px,7vw,110px) 30px; display:grid; grid-template-columns:auto 1fr auto; gap:35px; align-items:center; }
.footer-brand img { width:155px; height:60px; object-fit:contain; }
footer > p { color:var(--muted); }
.footer-links { display:flex; gap:25px; font-size:.86rem; flex-wrap:wrap; }
.footer-links a { color:var(--blue); font-weight:700; }
.legal { grid-column:1/-1; border-top:1px solid var(--line); padding-top:22px; color:#8090a0; font-size:.75rem; }
.reveal { opacity:0; transform:translateY(18px); transition:opacity .7s ease,transform .7s ease; }
.reveal.visible { opacity:1; transform:none; }
@media (max-width: 980px) {
  .hero { grid-template-columns:1fr; padding-top:80px; min-height:auto; }
  .hero-mark { display:none; }
  .trust-strip { position:relative; left:auto; right:auto; bottom:auto; margin-top:60px; flex-wrap:wrap; }
  .problem { grid-template-columns:1fr; }
  .metric-card { max-width:500px; }
  .service-grid { grid-template-columns:1fr; gap:16px; }
  .service-card,.service-card:nth-child(4),.service-card:nth-child(5) { grid-column:auto; }
  .service-card.featured { transform:none; }
  .service-card { min-height:auto; }
  .approach,.about,.contact { grid-template-columns:1fr; }
  .about-panel { min-height:390px; }
  footer { grid-template-columns:1fr 1fr; }
  .footer-links { grid-column:1/-1; }
}
@media (max-width: 720px) {
  .site-header { height:76px; }
  .contact-strip-inner { justify-content:center; gap:10px; padding:0 16px; font-size:.7rem; }
  .contact-divider { height:15px; }
  .brand img { width:138px; height:50px; }
  .menu-button { display:block; }
  nav { display:none; position:absolute; top:76px; left:0; right:0; background:white; padding:24px; border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch; gap:12px; }
  nav.open { display:flex; }
  nav a { padding:10px; }
  .nav-cta { text-align:center; }
  .hero { min-height:calc(100vh - 76px); }
  h1 { font-size:3.4rem; }
  .section-heading { display:block; }
  .section-heading > p { margin-top:24px; }
  .service-card { padding:32px 25px; }
  .about-panel { padding:35px; }
  .contact { min-height:560px; }
  .contact-form { padding:24px; }
  footer { grid-template-columns:1fr; gap:12px; }
  .footer-links { grid-column:auto; flex-direction:column; gap:6px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .reveal { opacity:1; transform:none; transition:none; }
}
