:root {
  --blue:#2d91f2;
  --text:#0b1f38;
  --muted:#5d6876;
  font-size:clamp(11px,1.111111vw,16px)
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth
}
body {
  margin:0;
  color:var(--text);
  background:#fff;
  font-family:Arial,Helvetica,sans-serif;
  font-size:1.125rem;
  line-height:1.4
}
h1,h2,h3,p {
  margin:0
}
a {
  color:inherit;
  text-decoration:none
}
button {
  font:inherit
}
img {
  display:block;
  max-width:100%
}
a:focus-visible,button:focus-visible {
  outline:3px solid #16bfdf;
  outline-offset:5px
}
section {
  scroll-margin-top:1rem
}
.container {
  width:86.2%;
  max-width:77.6rem;
  margin-inline:auto
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:3.25rem;
  padding:.8rem 1.95rem;
  border:1px solid transparent;
  border-radius:.45rem;
  font-size:1rem;
  font-weight:600;
  line-height:1.2;
  transition:background .18s
}
.primary-button {
  color:#fff;
  background:linear-gradient(110deg,#238deb,#278be5);
  border-color:#409ff0;
  box-shadow:inset 0 0 5px #ffffff12
}
.primary-button:hover {
  background:#1373c8
}
.secondary-button {
  color:white;
  border-color:#edf5ff;
  background:#04233a66
}
.secondary-button:hover {
  background:#163f60
}
.skip-link {
  position:fixed;
  top:-100px;
  left:1rem;
  z-index:20;
  background:white;
  padding:1rem
}
.skip-link:focus {
  top:1rem
}
.site-header {
  background:linear-gradient(100deg,#032035,#092840);
  color:white
}
.nav-container {
  min-height:5.8rem;
  display:flex;
  align-items:center;
  gap:3rem
}
.logo {
  display:inline-flex;
  gap:1rem;
  align-items:center;
  flex-shrink:0
}
.logo-mark {
  width:3.3rem;
  height:3rem;
  object-fit:contain
}
.logo-type {
  font-size:2.05rem;
  font-weight:700;
  line-height:1.04;
  letter-spacing:-.035rem
}
.logo-type>span {
  display:block;
  font-size:.71rem;
  font-weight:400;
  letter-spacing:.32rem;
  margin-top:.3rem;
  padding-left:.12rem
}
.main-nav {
  display:flex;
  gap:2rem;
  align-items:center;
  margin-left:auto
}
.main-nav a,.footer-nav a {
  font-size:.98rem;
  white-space:nowrap
}
.main-nav a:hover,.footer-nav a:hover {
  color:var(--blue)
}
.nav-button {
  margin-left:2.1rem;
  min-width:10.5rem
}
.menu-toggle {
  display:none
}
.hero {
  position:relative;
  isolation:isolate;
  background:#032035;
  color:white;
  min-height:33.3rem
}
.hero-image {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:-2
}
.hero-content {
  position:relative;
  min-height:33.3rem;
  padding-top:3.3rem;
  padding-left:.8rem;
  padding-bottom:3.5rem
}
.hero h1 {
  font-size:3.2rem;
  font-weight:700;
  line-height:1.08;
  letter-spacing:-.065rem
}
.hero h1 span {
  color:#369ced
}
.hero-description {
  font-size:1.26rem;
  line-height:1.42;
  margin-top:1.15rem;
  max-width:35rem
}
.hero-specialties {
  font-size:1.07rem;
  margin-top:1.7rem;
  white-space:nowrap
}
.hero-specialties span {
  margin:0 .65rem
}
.hero-buttons {
  display:flex;
  gap:1.25rem;
  margin-top:1.6rem
}
.hero-tagline {
  position:absolute;
  right:1.4rem;
  bottom:2.1rem;
  font-size:.72rem;
  letter-spacing:.29rem
}
.hero-tagline span {
  margin:0 .65rem;
  font-size:1rem
}
.eyebrow {
  color:#467bb2;
  font-weight:700;
  font-size:.8rem;
  letter-spacing:.16rem;
  margin-bottom:.6rem
}
h2 {
  font-size:2.4rem;
  line-height:1.07;
  letter-spacing:-.055rem
}
h3 {
  font-size:1.23rem;
  line-height:1.2
}
.services-section {
  padding:2.1rem 0 2.2rem;
  background:linear-gradient(#fff,#fcfdff)
}
.services-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:3rem;
  margin-bottom:1.5rem
}
.services-heading>p {
  font-size:1.08rem;
  color:var(--muted);
  line-height:1.5;
  padding-top:.35rem
}
.services-grid {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:1rem
}
.service-card {
  border:1px solid #e5ecf3;
  border-radius:.45rem;
  box-shadow:0 2px 6px #10284402;
  padding:1.5rem 1.55rem 1.45rem;
  min-height:17.65rem
}
.service-icon {
  display:flex;
  width:4.3rem;
  height:4.3rem;
  background:linear-gradient(120deg,#f0f7ff,#e5f2ff);
  border-radius:50%;
  align-items:center;
  justify-content:center;
  margin-bottom:.75rem
}
.service-icon svg {
  width:2.3rem;
  height:2.3rem;
  stroke:#1484ff;
  stroke-width:1.8;
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round
}
.service-card p {
  font-size:1.06rem;
  line-height:1.32;
  color:var(--muted);
  margin-top:.65rem
}
.process-section {
  padding:2.1rem 0 3rem;
  background:linear-gradient(110deg,#f3f8fc,#f2f7fb)
}
.process-intro {
  margin-top:.65rem;
  color:var(--muted);
  font-size:1.16rem;
  line-height:1.35
}
.process-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:3rem;
  padding:0;
  margin:2.2rem 0 0;
  list-style:none
}
.process-step {
  display:flex;
  gap:1.3rem;
  position:relative
}
.step-number {
  flex-shrink:0;
  display:flex;
  align-items:center;
  justify-content:center;
  width:3rem;
  height:3rem;
  border-radius:50%;
  background:linear-gradient(110deg,#3688e1,#73a9f2);
  color:white;
  font-size:1.5rem
}
.process-step h3 {
  padding-top:.55rem;
  white-space:nowrap
}
.process-step p {
  font-size:1.04rem;
  line-height:1.4;
  color:var(--muted);
  margin-top:.7rem
}
.process-step:not(:last-child)::after {
  content:'→';
  position:absolute;
  right:-1.75rem;
  top:.8rem;
  color:#527fae;
  font-size:1.45rem
}
.about-section {
  padding:2.4rem 0
}
.about-content {
  display:grid;
  grid-template-columns:1fr .98fr;
  gap:4.2rem;
  align-items:center
}
.about-copy>p:not(.eyebrow) {
  font-size:1.18rem;
  line-height:1.35;
  color:var(--muted);
  margin-top:.9rem
}
.about-visual {
  position:relative;
  aspect-ratio:2/1;
  border-radius:.4rem;
  overflow:hidden;
  background:#0b3252
}
.about-visual>img {
  width:100%;
  height:100%;
  object-fit:cover
}
.about-overlay {
  position:absolute;
  left:65.3%;
  top:22%;
  color:white
}
.about-overlay>p:first-child {
  font-size:1.55rem;
  font-weight:500;
  line-height:1.28
}
.accent-line {
  display:block;
  width:2.9rem;
  height:2px;
  background:#42c4ed;
  margin:1.65rem 0 1.9rem
}
.about-overlay .about-motto {
  font-size:.66rem;
  line-height:1.8;
  letter-spacing:.12rem
}
.contact-section {
  padding:2.2rem 0;
  background:linear-gradient(110deg,#03253d,#032239);
  color:white
}
.contact-content {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:0 3rem
}
.contact-section h2 {
  font-size:2.25rem;
  letter-spacing:-.03rem
}
.contact-content>div>p:not(.eyebrow) {
  font-size:1.15rem;
  margin-top:.8rem;
  line-height:1.4
}
.site-footer {
  background:linear-gradient(#fff,#fcfdff);
  padding:1.7rem 0 1.7rem
}
.footer-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
  padding-bottom:1.4rem
}
.site-footer .logo {
  gap:.7rem
}
.site-footer .logo-mark {
  width:2.53rem;
  height:2.3rem
}
.site-footer .logo-type {
  font-size:1.6rem
}
.site-footer .logo-type>span {
  font-size:.52rem;
  letter-spacing:.23rem;
  margin-top:.2rem
}
.footer-nav {
  display:flex;
  gap:2rem
}
.social-links {
  display:flex;
  gap:1.7rem;
  align-items:center
}
.social-links a {
  display:flex;
  padding:.15rem
}
.social-links svg {
  width:1.8rem;
  height:1.8rem
}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:2rem;
  border-top:1px solid #e6edf3;
  padding-top:1.3rem;
  color:#596a7e;
  font-size:.8rem
}
.footer-bottom p:last-child {
  letter-spacing:.02rem;
  font-weight:600;
  font-size:.8rem
}
/* Local contact-form preview. Delivery is intentionally disconnected. */
[hidden] { display:none!important; }
.mobile-contact { display:none; }
.contact-copy { min-width:0; }
.contact-toggle { gap:.85rem; justify-self:end; }
.contact-indicator { font-size:1.25rem; line-height:1; }
.contact-form-panel { grid-column:1 / -1; width:100%; max-width:52rem; margin-top:1.75rem; }
/* Fractional grid rows animate the form's natural height, including on resize. */
.contact-form-panel.is-collapsible {
  display:grid;
  grid-template-rows:0fr;
  margin-top:0;
  visibility:hidden;
  transition:grid-template-rows 300ms ease, margin-top 300ms ease, visibility 0s 300ms;
}
.contact-form-panel.is-collapsible > .contact-form {
  min-height:0;
  overflow:clip;
  overflow-clip-margin:6px;
}
.contact-form-panel.is-collapsible.is-open {
  grid-template-rows:1fr;
  margin-top:1.75rem;
  visibility:visible;
  transition-delay:0s;
}
.contact-form { min-width:0; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.form-field { display:flex; flex-direction:column; gap:.4rem; margin-bottom:1rem; min-width:0; }
.form-field label { font-size:1rem; font-weight:600; }
.form-field label span { color:#c2d2e0; font-size:.85rem; font-weight:400; }
.form-field input,.form-field textarea {
  display:block; width:100%; min-width:0; border:1px solid #71879b;
  border-radius:.4rem; background:#fff; color:var(--text);
  padding:.75rem .9rem; font:inherit; font-size:1rem; line-height:1.4;
}
.form-field input { min-height:3rem; }
.form-field textarea { resize:vertical; min-height:7rem; }
.form-field input:focus-visible,.form-field textarea:focus-visible {
  outline:3px solid #16bfdf; outline-offset:3px;
}
.form-footer { display:flex; flex-wrap:wrap; align-items:center; gap:1rem; }
.form-footer .button:disabled { background:#26577f; border-color:#6587a2; color:#e0e9f2; cursor:not-allowed; box-shadow:none; }
#form-notice { color:#e0e9f2; font-size:.9rem; max-width:22rem; }
.logo-type { white-space:nowrap; }

@media(min-width:1600px) {
  .hero-image {
    object-position:center 55%
  }
}
@media(max-width:900px) {
  :root {
    font-size:16px
  }
  .container {
    width:90%
  }
  .nav-container {
    min-height:78px;
    gap:1.2rem;
    flex-wrap:wrap;
    position:relative;
    padding-block:1rem
  }
  .logo-type {
    font-size:1.6rem
  }
  .logo-mark {
    width:2.75rem;
    height:2.5rem
  }
  .logo-type>span {
    font-size:.55rem;
    letter-spacing:.25rem
  }
  .nav-button {
    margin-left:0;
    min-width:auto;
    font-size:.85rem;
    padding:.7rem 1rem;
    min-height:2.7rem
  }
  .menu-toggle:not([hidden]) {
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:5px;
    border:1px solid #5b7488;
    border-radius:4px;
    background:transparent;
    color:white;
    width:42px;
    height:42px;
    margin-left:auto
  }
  .menu-toggle span {
    display:block;
    width:22px;
    height:2px;
    background:currentColor;
    margin-inline:auto
  }
  .main-nav {
    order:4;
    flex-basis:100%;
    margin:0;
    justify-content:space-between;
    gap:1rem;
    padding:.7rem 0
  }
  .js .main-nav {
    display:none
  }
  .js .main-nav.is-open {
    display:flex
  }
  .hero,.hero-content {
    min-height:540px
  }
  .hero-content {
    padding:3rem 0
  }
  .hero h1 {
    font-size:2.65rem
  }
  .hero-description {
    font-size:1.05rem;
    max-width:29rem
  }
  .hero-specialties {
    font-size:.82rem;
    white-space:normal;
    max-width:29rem
  }
  .hero-specialties span {
    margin:0 .3rem
  }
  .hero-image {
    object-position:62% center
  }
  .hero::after {
    content:'';
    position:absolute;
    inset:0;
    z-index:-1;
    background:linear-gradient(90deg,#032035ee,#03203580 55%,transparent)
  }
  .hero-tagline {
    bottom:1.5rem;
    right:0;
    letter-spacing:.16rem;
    font-size:.6rem
  }
  .services-section,.process-section,.about-section {
    padding:2.6rem 0
  }
  .services-heading {
    gap:1.5rem;
    align-items:flex-start
  }
  .services-heading>p {
    max-width:45%;
    font-size:.95rem
  }
  .desktop-break {
    display:none
  }
  h2 {
    font-size:2rem
  }
  .services-grid {
    grid-template-columns:repeat(3,minmax(0,1fr))
  }
  .service-card {
    padding:1.3rem;
    min-height:0
  }
  .service-card p {
    font-size:.95rem
  }
  h3 {
    font-size:1.05rem
  }
  .process-grid {
    gap:1.5rem
  }
  .process-step {
    gap:.6rem;
    flex-direction:column
  }
  .process-step h3 {
    white-space:normal
  }
  .process-step p {
    font-size:.92rem
  }
  .process-step:not(:last-child)::after {
    right:-.6rem;
    top:.65rem
  }
  .about-content {
    gap:2rem;
    grid-template-columns:1fr 1fr
  }
  .about-copy>p:not(.eyebrow) {
    font-size:1rem
  }
  .about-visual {
    aspect-ratio:1.3
  }
  .about-overlay {
    left:53%;
    top:25%
  }
  .about-overlay>p:first-child {
    font-size:1.15rem
  }
  .about-overlay .about-motto {
    font-size:.52rem
  }
  .contact-content {
    grid-template-columns:1fr;
    gap:0
  }
  .contact-toggle { justify-self:start; margin-top:1.25rem; }
  .contact-form-panel { margin-top:1.25rem; }
  .contact-form-panel.is-collapsible.is-open { margin-top:1.25rem; }
  .contact-section h2 {
    font-size:1.8rem
  }
  .contact-content>div>p:not(.eyebrow) {
    font-size:1rem
  }
  .footer-nav {
    gap:1rem
  }
  .footer-nav a {
    font-size:.8rem
  }
  .footer-top {
    flex-wrap:wrap
  }
  .footer-bottom {
    font-size:.65rem
  }
  .footer-bottom p:last-child {
    font-size:.6rem
  }
}
@media(max-width:600px) {
  .mobile-contact { display:block; }
  .nav-container {
    gap:.7rem
  }
  .nav-button {
    display:none
  }
  .main-nav {
    flex-direction:column;
    align-items:stretch
  }
  .main-nav a {
    padding:.5rem
  }
  .hero,.hero-content {
    min-height:0
  }
  .hero-content {
    padding:2.5rem 0 16rem
  }
  .hero h1 {
    font-size:clamp(1.75rem,6.7vw,2.5rem);
    letter-spacing:-.04rem
  }
  .hero-description {
    line-height:1.5;
    margin-top:1.3rem
  }
  .hero-specialties {
    font-size:.8rem;
    line-height:1.8;
    margin-top:1.2rem
  }
  .hero-buttons {
    gap:.75rem;
    margin-top:1.2rem
  }
  .button {
    font-size:.86rem;
    padding:.8rem 1.2rem;
    min-height:3rem
  }
  .hero-image {
    top:auto;
    bottom:0;
    height:17rem;
    object-fit:cover;
    object-position:right center;
    width:150%;
    max-width:none;
    left:-50%
  }
  .hero::after {
    background:linear-gradient(#032035 0%,#032035 57%,transparent 76%)
  }
  .hero-tagline {
    font-size:.5rem;
    letter-spacing:.12rem;
    bottom:1rem;
    right:.2rem
  }
  .hero-tagline span {
    margin:0 .3rem
  }
  .services-heading {
    display:block
  }
  .services-heading>p {
    max-width:none;
    margin-top:1.2rem
  }
  .services-grid {
    grid-template-columns:1fr
  }
  .service-card {
    padding:1.4rem;
    display:grid;
    grid-template-columns:3.5rem 1fr;
    column-gap:1rem
  }
  .service-icon {
    grid-row:1/3;
    width:3.5rem;
    height:3.5rem;
    margin:0
  }
  .service-card h3 {
    align-self:end
  }
  .service-card p {
    margin-top:.5rem
  }
  .process-intro {
    font-size:1rem
  }
  .process-grid {
    grid-template-columns:1fr;
    gap:2rem
  }
  .process-step {
    flex-direction:row;
    gap:1.2rem
  }
  .process-step p {
    margin-top:.45rem
  }
  .process-step:not(:last-child)::after {
    content:'↓';
    left:1rem;
    top:auto;
    bottom:-1.8rem;
    right:auto
  }
  .about-content {
    grid-template-columns:1fr
  }
  .about-visual {
    aspect-ratio:2
  }
  .about-overlay {
    left:65%;
    top:20%
  }
  .about-overlay>p:first-child {
    font-size:1.05rem
  }
  .accent-line {
    margin:.7rem 0 .8rem;
    width:2rem
  }
  .about-overlay .about-motto {
    font-size:.46rem;
    letter-spacing:.065rem
  }
  .contact-section {
    padding:2.5rem 0
  }
  .contact-content {
    display:grid
  }
  .form-row { grid-template-columns:1fr; gap:0; }
  .contact-section h2 {
    font-size:1.85rem
  }
  .footer-top {
    gap:1.5rem
  }
  .footer-nav {
    order:3;
    flex-basis:100%;
    justify-content:space-between;
    gap:.4rem
  }
  .footer-nav a {
    font-size:.7rem
  }
  .social-links {
    gap:1rem
  }
  .footer-bottom {
    display:block;
    font-size:.7rem
  }
  .footer-bottom p:last-child {
    margin-top:.8rem;
    line-height:1.6
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  * {
    transition:none!important
  }
}
