:root {
  --blue: #0b65d8;
  --blue-deep: #073b82;
  --ink: #10233f;
  --muted: #58708e;
  --line: #dce7f2;
  --tint: #f3f8fd;
  --green: #28a772;
  --orange: #e98a37;
  --white: #fff;
  --dark: #09264f;
  --radius: 18px;
  color-scheme: light;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--white); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 16px; line-height: 1.55; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
.container { width: min(1160px, calc(100% - 48px)); margin: 0 auto; }
.section-space { padding: 104px 0; }
.skip-link { position: absolute; left: 16px; top: -50px; z-index: 5; padding: 10px 14px; color: #fff; background: var(--blue-deep); border-radius: 8px; }
.skip-link:focus { top: 16px; }

.site-header { position: sticky; top: 0; z-index: 4; background: rgba(255,255,255,.94); border-bottom: 1px solid rgba(220,231,242,.78); backdrop-filter: blur(14px); }
.nav-wrap, nav, .brand { display: flex; align-items: center; }
.nav-wrap { min-height: 78px; justify-content: space-between; gap: 32px; }
.brand { gap: 10px; color: var(--blue-deep); font-size: 16px; letter-spacing: -.02em; }
.brand strong { font-weight: 800; }
nav { gap: 29px; font-size: 13px; font-weight: 650; color: #42607f; }
nav a:hover, nav a:focus-visible, .text-link:hover { color: var(--blue); }
.nav-cta { padding: 10px 15px; color: var(--blue); border: 1px solid #b9d1ec; border-radius: 999px; }
.nav-cta span { margin-left: 6px; }

.hero { overflow: hidden; padding-top: 82px; padding-bottom: 112px; }
.hero-grid { display: grid; grid-template-columns: 1.04fr .96fr; align-items: center; gap: 64px; }
.eyebrow { display: flex; align-items: center; gap: 9px; margin: 0 0 22px; color: #53708e; font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.eyebrow-dot { display: inline-block; width: 8px; height: 8px; background: var(--green); border-radius: 50%; box-shadow: 0 0 0 5px #e5f7ef; }
.eyebrow.blue { color: var(--blue); }.eyebrow.light { color: #8bb5e4; }
h1, h2, h3, p { margin-top: 0; }
h1 { max-width: 650px; margin-bottom: 25px; color: var(--blue-deep); font-size: clamp(48px, 6vw, 77px); line-height: .98; letter-spacing: -.065em; font-weight: 760; }
h1 em, h2 em { color: var(--blue); font-style: normal; }
.hero-lede { max-width: 560px; margin-bottom: 31px; color: var(--muted); font-size: 18px; line-height: 1.65; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 23px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 17px; min-height: 52px; padding: 13px 20px; border: 1px solid transparent; border-radius: 999px; font-size: 14px; font-weight: 750; transition: transform .2s ease, background .2s ease, box-shadow .2s ease; cursor: pointer; }
.button:hover, .button:focus-visible { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(11,101,216,.16); }.button-primary { color: #fff; background: var(--blue); }.button-primary:hover, .button-primary:focus-visible { background: var(--blue-deep); }.button-dark { color: #fff; background: var(--dark); }
.text-link { color: var(--blue-deep); font-size: 14px; font-weight: 750; border-bottom: 1px solid #aac6e5; padding-bottom: 3px; }.text-link span { margin-left: 8px; color: var(--blue); }
.hero-note { display: flex; align-items: center; gap: 9px; margin-top: 38px; color: #7389a3; font-size: 12px; }.note-mark { color: var(--orange); font-size: 17px; }

.hero-visual { position: relative; min-height: 470px; display: grid; place-items: center; }.visual-glow { position: absolute; width: 390px; height: 390px; background: #e9f4ff; border-radius: 50%; filter: blur(2px); }.orbit { position: absolute; width: 438px; height: 284px; border: 1px solid #c7dcf3; border-radius: 50%; transform: rotate(-28deg); }.orbit-two { width: 330px; height: 440px; transform: rotate(29deg); border-color: #d8e9f8; }
.building-card { position: relative; width: min(100%, 350px); min-height: 314px; padding: 20px; color: #fff; background: linear-gradient(145deg, #0b4b99, #09264f); border-radius: 17px; box-shadow: 0 26px 45px rgba(5,44,94,.22); transform: rotate(2deg); }.card-topline, .card-footer { display: flex; align-items: center; gap: 8px; font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }.card-topline { padding-bottom: 17px; color: #9dc4ec; border-bottom: 1px solid rgba(255,255,255,.2); }.live-dot { margin-left: auto; color: #7de3b6; font-size: 9px; }.signal { display: flex; align-items: end; gap: 2px; }.signal i { display: block; width: 3px; background: #7ec7ff; border-radius: 2px; }.signal i:nth-child(1) { height: 5px; }.signal i:nth-child(2) { height: 8px; }.signal i:nth-child(3) { height: 11px; }.building-grid { display: flex; align-items: end; justify-content: center; gap: 9px; height: 205px; padding: 18px 19px 0; }.building-block { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; width: 76px; height: 144px; padding: 13px 9px; background: #1f65ae; border-top: 6px solid #438cd2; }.building-block.tall { height: 177px; background: #15549e; }.building-block.short { height: 107px; background: #0c4388; }.building-block span { height: 17px; background: rgba(172,226,255,.72); border-radius: 2px; }.card-footer { gap: 9px; padding-top: 13px; color: #83a9d2; border-top: 1px solid rgba(255,255,255,.2); }.card-footer b { color: #eaf5ff; font-size: 12px; }.footer-line { flex: 1; height: 1px; background: rgba(255,255,255,.17); }.card-footer .green-number { color: #7de3b6; }.float-tag { position: absolute; display: flex; align-items: center; gap: 8px; padding: 11px 13px; color: var(--blue-deep); background: #fff; border: 1px solid #d7e8f6; border-radius: 10px; box-shadow: 0 10px 24px rgba(12,71,129,.12); font-size: 11px; font-weight: 800; }.tag-icon { display: grid; place-items: center; width: 23px; height: 23px; color: var(--blue); background: #e8f3ff; border-radius: 7px; font-size: 15px; }.tag-icon.green { color: var(--green); background: #e8f8f0; }.tag-icon.orange { color: var(--orange); background: #fff2e8; }.tag-camera { top: 94px; left: 2%; }.tag-access { right: 0; top: 214px; }.tag-network { bottom: 61px; left: 4%; }

.section-tint { background: var(--tint); }.two-col { display: grid; grid-template-columns: .9fr 1.1fr; gap: 90px; }.two-col h2, .section-intro h2, .process h2, .consultation h2 { margin: 0; color: var(--blue-deep); font-size: clamp(36px, 4.4vw, 57px); line-height: 1.04; letter-spacing: -.055em; }.body-copy { max-width: 565px; color: var(--muted); font-size: 17px; }.body-copy p + p { margin-top: 22px; }
.outcomes { background: var(--tint); border-top: 1px solid #e4eef8; }.outcome-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }.outcome-grid article { padding: 25px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); }.outcome-label { color: var(--blue); font-size: 10px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }.outcome-grid h3 { margin: 27px 0 9px; color: var(--blue-deep); font-size: 18px; line-height: 1.15; }.outcome-grid p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.services { background: #fff; }.section-intro { display: flex; justify-content: space-between; align-items: end; gap: 40px; margin-bottom: 55px; }.section-intro > p, .section-intro > div > p { max-width: 342px; margin-bottom: 4px; color: var(--muted); font-size: 15px; }.section-cta { display: inline-block; margin-top: 18px; color: var(--blue); font-size: 12px; font-weight: 800; border-bottom: 1px solid #aac6e5; padding-bottom: 3px; }.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }.service-card { position: relative; min-height: 286px; padding: 24px; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }.service-card:hover { border-color: #a8c8e8; box-shadow: 0 11px 30px rgba(19,75,129,.07); }.card-blue { color: #fff; background: var(--blue); border-color: var(--blue); }.service-number { color: #8ca6c1; font-size: 10px; font-weight: 800; letter-spacing: .1em; }.card-blue .service-number { color: #a3d0ff; }.service-icon { display: grid; place-items: center; width: 43px; height: 43px; margin: 39px 0 17px; color: var(--blue); background: #e8f3ff; border-radius: 12px; font-size: 23px; }.green-icon { color: var(--green); background: #e9f8f1; }.orange-icon { color: var(--orange); background: #fff1e7; }.card-blue .service-icon { color: var(--blue); background: #fff; }.service-card h3 { margin-bottom: 8px; font-size: 19px; letter-spacing: -.03em; }.service-card p { min-height: 65px; margin-bottom: 16px; color: var(--muted); font-size: 13px; line-height: 1.5; }.card-blue p { color: #d6e9ff; }.service-card a { color: var(--blue); font-size: 12px; font-weight: 800; }.card-blue a { color: #fff; }.service-wide { grid-column: span 2; display: grid; grid-template-columns: auto 1fr; column-gap: 22px; min-height: 205px; }.service-wide .service-icon { margin-top: 39px; }.service-wide h3 { margin-top: 47px; }

.section-dark { color: #fff; background: var(--dark); }.process-heading { display: flex; justify-content: space-between; align-items: end; gap: 40px; }.process h2 { color: #fff; }.process-heading > p { max-width: 335px; margin: 0 0 7px; color: #a8c5e4; font-size: 15px; }.process-list { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; margin: 67px 0 0; padding: 0; list-style: none; }.process-list li { display: grid; grid-template-columns: 42px 1fr; gap: 17px; padding-top: 22px; border-top: 1px solid #37618e; }.process-list li > span { color: #6f9ac8; font-size: 11px; font-weight: 800; }.process-list h3 { margin-bottom: 9px; font-size: 18px; }.process-list p { margin: 0; color: #a8c5e4; font-size: 14px; line-height: 1.6; }.process-cta { margin-top: 48px; }

.consultation { padding-bottom: 50px; }.consultation-box { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 70px; padding: 55px 0; border-bottom: 1px solid var(--line); }.consultation-copy { max-width: 440px; }.consultation-copy p { color: var(--muted); font-size: 17px; }.form-shell { padding-top: 43px; }.form-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 30px; }.form-heading h3 { margin: 0; color: var(--blue-deep); font-size: 20px; }.form-heading p { max-width: 430px; margin: 0; color: #7186a0; font-size: 12px; }.form-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 27px 0 20px; }label { display: grid; gap: 8px; color: #45627f; font-size: 12px; font-weight: 750; }input, textarea { width: 100%; padding: 13px 14px; color: var(--ink); background: #f7fbff; border: 1px solid #d4e3f1; border-radius: 9px; font: inherit; font-size: 14px; }input:focus, textarea:focus, button:focus-visible, a:focus-visible { outline: 3px solid #8fc6ff; outline-offset: 3px; }.field-wide { grid-column: 1 / -1; }.site-footer { padding: 24px 0; color: #6f849d; border-top: 1px solid var(--line); font-size: 11px; }.footer-wrap { display: flex; align-items: center; gap: 30px; }.footer-wrap .brand { margin-right: auto; font-size: 14px; }

@media (max-width: 900px) { .hero-grid { gap: 25px; }.hero-visual { transform: scale(.88); transform-origin: center right; }.service-grid, .outcome-grid { grid-template-columns: repeat(2, 1fr); }.service-wide { grid-column: span 2; } }
@media (max-width: 700px) { .container { width: min(100% - 34px, 560px); }.section-space { padding: 72px 0; }.site-header { position: static; }.nav-wrap { min-height: 70px; } nav a:not(.nav-cta) { display: none; }.nav-cta { padding: 8px 11px; font-size: 11px; }.hero { padding-top: 60px; }.hero-grid, .two-col, .consultation-box { grid-template-columns: 1fr; gap: 45px; }.hero-visual { min-height: 395px; transform: scale(.84); transform-origin: top center; margin-bottom: -45px; }.hero-actions { align-items: flex-start; flex-direction: column; gap: 18px; }.section-intro, .process-heading, .form-heading { display: block; }.section-intro > p, .section-intro > div > p, .process-heading > p, .form-heading p { margin-top: 22px; }.service-grid, .outcome-grid { grid-template-columns: 1fr; }.service-card, .service-wide { grid-column: auto; }.service-wide { display: block; min-height: 270px; }.service-wide .service-icon { margin-top: 39px; }.service-wide h3 { margin-top: 0; }.process-list { grid-template-columns: 1fr; gap: 29px; margin-top: 47px; }.process-cta { margin-top: 38px; }.consultation-box { padding-top: 0; }.form-fields { grid-template-columns: 1fr; }.field-wide { grid-column: auto; }.footer-wrap { align-items: flex-start; flex-direction: column; gap: 12px; }.footer-wrap .brand { margin-right: 0; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; }.button { transition: none; } }
