:root {
  --ink: #050b13;
  --navy: #012b5b;
  --label: #595d5f;
  --emphasis: #d66a32;
  --ice: #eef5fb;
  --text: #263c52;
  --muted: #4e667d;
  --line: #cad8e4;
  --max: 1120px;
  --body: "Inter Variable", Arial, sans-serif;
  --display: Oswald, sans-serif;
}

html { scroll-behavior: smooth; }
body { font-family: var(--body); font-size: 18px; line-height: 1.75; background: #fff; color: var(--text); }

.site-nav {
  position: absolute;
  inset: 0 0 auto;
  z-index: 100;
  background: transparent;
  border-bottom: 1px solid rgba(255, 255, 255, .14);
  backdrop-filter: none;
}
.nav-inner { min-height: 76px; }
.brand img { width: 205px; }
.nav-links a { font-family: var(--display); font-size: 13px; letter-spacing: .13em; color: #fff; }
.nav-links .nav-cta {
  padding: 10px 18px;
  border: 1px solid rgba(255, 255, 255, .52);
  background: transparent;
  color: #fff;
}

.hero {
  min-height: 100vh;
  display: flex;
  align-items: center;
  background: #050d17;
}
.hero-media { inset: 0; width: 100%; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: center; opacity: 1; }
.hero::before {
  z-index: -1;
  background: linear-gradient(90deg, rgba(3, 10, 18, .9) 0%, rgba(3, 10, 18, .68) 48%, rgba(3, 10, 18, .24) 100%);
}
.hero-inner { padding: 132px 0 72px; }
.hero-copy { max-width: 820px; }
.hero h1 {
  max-width: 18ch;
  margin-bottom: 24px;
  font-size: clamp(42px, 5.2vw, 68px);
  line-height: 1.02;
  letter-spacing: .01em;
}
.hero p { max-width: 620px; color: #f3f7fb; font-family: var(--body); font-size: 20px; font-weight: 400; line-height: 1.6; }
.hero-actions { gap: 12px; }
.button {
  width: fit-content;
  max-width: 100%;
  min-height: 45px;
  padding: 0 18px;
  border: 1px solid rgba(255, 255, 255, .52);
  border-radius: 0;
  background: transparent;
  color: #fff;
  font-family: var(--display);
  font-size: 13px;
  letter-spacing: .14em;
}
.button.primary, .button.secondary { background: transparent; color: #fff; }
.button:hover, .nav-links .nav-cta:hover { background: rgba(255, 255, 255, .12); border-color: #fff; }

.breadcrumb { background: #0b2945; }
.breadcrumb-inner { padding: 13px 0; }
.breadcrumb a, .breadcrumb span { font-family: var(--display); font-size: 12px; letter-spacing: .15em; }
.breadcrumb .current { color: #fff; }

.section { padding: 92px 0; }
.section.soft { background: var(--ice); border-color: var(--line); }
.content { width: min(var(--max), calc(100% - 48px)); }
.section-label { display: flex; align-items: center; gap: 12px; margin-bottom: 15px; color: var(--label); font-family: var(--display); font-size: 13px; letter-spacing: .25em; }
.section-label::before { content: ""; width: 28px; height: 2px; flex: 0 0 auto; background: currentColor; }
.section h2 { max-width: none; margin: 0 0 30px; padding: 0; border: 0; color: var(--navy); font-size: clamp(32px, 3.4vw, 46px); line-height: 1.08; }
.section h2 .emphasis { color: var(--emphasis); }
.section p { max-width: 900px; margin: 0 0 22px; color: var(--muted); font-family: var(--body); font-size: 18px; font-weight: 400; line-height: 1.78; }
.section p:last-child { margin-bottom: 0; }
.section-heading-row { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr); align-items: end; gap: clamp(40px, 7vw, 100px); margin-bottom: 42px; }
.section-heading-row h2 { margin-bottom: 0; }
.section-heading-row .section-summary { max-width: 520px; margin: 0 0 4px; font-size: 20px; line-height: 1.65; }

.service-split {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(340px, .82fr);
  align-items: center;
  gap: clamp(44px, 6vw, 88px);
}
.service-copy { min-width: 0; }
.service-split h2 { font-size: clamp(32px, 3.25vw, 44px); }
.service-split .service-copy p { max-width: 680px; }
.service-media { min-width: 0; margin: 0; overflow: hidden; background: #07192c; aspect-ratio: 4 / 3; }
.service-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.service-media:hover img { transform: scale(1.025); }
.service-split.reverse { grid-template-columns: minmax(340px, .82fr) minmax(0, 1.18fr); }
.service-split.reverse .service-media { order: -1; }

.service-band { position: relative; min-height: 68vh; display: flex; align-items: center; isolation: isolate; overflow: hidden; background: #07192c; }
.service-band > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.service-band-overlay { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(2, 17, 35, .92) 0%, rgba(2, 17, 35, .66) 50%, rgba(2, 17, 35, .22) 100%); }
.service-band-copy { width: min(var(--max), calc(100% - 48px)); margin: 0 auto; }
.service-band .section-label { color: #d7d9da; }
.service-band h2 { max-width: none; margin: 0 0 24px; color: #fff; font-family: var(--display); font-size: clamp(36px, 4vw, 56px); line-height: 1.06; text-transform: uppercase; }
.service-band p { max-width: 720px; margin: 0; color: rgba(255,255,255,.88); font-size: 19px; line-height: 1.65; }

/* Shared service-page editorial splits. Each page supplies its own images. */
section.section:first-of-type .content,
section.section:nth-of-type(3) .content {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(340px, .88fr);
  align-items: center;
  column-gap: clamp(44px, 6vw, 88px);
}
section.section:first-of-type .content::after,
section.section:nth-of-type(3) .content::before {
  content: "";
  display: block;
  min-height: 430px;
  align-self: stretch;
  background-position: center;
  background-size: cover;
}
section.section:first-of-type .content::after {
  grid-column: 2;
  grid-row: 1 / 4;
  background-image: var(--service-image);
}
section.section:nth-of-type(3) .content {
  grid-template-columns: minmax(340px, .88fr) minmax(0, 1.12fr);
}
section.section:nth-of-type(3) .content::before {
  grid-column: 1;
  grid-row: 1 / 4;
  background-image: var(--service-image-alt);
}
section.section:nth-of-type(3) .content > * { grid-column: 2; }
section.section:first-of-type h2,
section.section:nth-of-type(3) h2 { font-size: clamp(32px, 3.15vw, 44px); }
section.section:first-of-type p,
section.section:nth-of-type(3) p { max-width: 680px; }

.section.cta { position: relative; isolation: isolate; min-height: 360px; display: flex; align-items: center; background: var(--navy); text-align: left; overflow: hidden; }
.section.cta::before { content: ""; position: absolute; inset: 0; z-index: -2; background: var(--service-image) center/cover no-repeat; opacity: .52; }
.section.cta::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(3, 12, 22, .94), rgba(3, 12, 22, .38)); }
.cta .content { margin: auto; }
.cta h2 { max-width: none; color: #fff; font-size: clamp(36px, 4.4vw, 56px); }
.cta p { max-width: 620px; margin: 0 0 26px; color: #fff; font-size: 18px; }
.cta .hero-actions { justify-content: flex-start !important; }
footer { padding: 30px 0; background: #040b13; }
.footer-inner { width: min(var(--max), calc(100% - 48px)); }
.footer-meta { font-family: var(--body); font-size: 12px; letter-spacing: .05em; }

@media (max-width: 760px) {
  body { font-size: 17px; }
  .nav-inner { width: calc(100% - 28px); min-height: 70px; }
  .brand img { width: 174px; }
  .nav-links a:not(.nav-cta) { display: none; }
  .nav-links .nav-cta { padding: 9px 13px; }
  .hero { min-height: 100vh; align-items: flex-end; }
  .hero::before { background: linear-gradient(0deg, rgba(3, 10, 18, .96) 0%, rgba(3, 10, 18, .7) 68%, rgba(3, 10, 18, .2) 100%); }
  .hero-inner { width: calc(100% - 32px); padding: 108px 0 46px; }
  .hero h1 { max-width: 16ch; font-size: clamp(36px, 10.5vw, 50px); line-height: 1.04; }
  .hero p { font-size: 18px; }
  .button { width: fit-content; padding: 0 14px; }
  .breadcrumb-inner { width: calc(100% - 32px); }
  .section { padding: 68px 0; }
  .content { width: calc(100% - 32px); }
  .section h2 { font-size: clamp(31px, 8.5vw, 40px); line-height: 1.1; }
  .section p { font-size: 17px; line-height: 1.72; }
  .section-heading-row { grid-template-columns: 1fr; align-items: start; gap: 22px; margin-bottom: 34px; }
  .section-heading-row .section-summary { font-size: 18px; }
  .service-split, .service-split.reverse { grid-template-columns: 1fr; gap: 32px; }
  .service-split.reverse .service-media { order: 0; }
  .service-media { aspect-ratio: 16 / 11; }
  .service-band { min-height: 72vh; }
  .service-band-copy { width: calc(100% - 32px); }
  .service-band h2 { font-size: clamp(32px, 9vw, 42px); }
  .service-band p { font-size: 17px; }
  section.section:first-of-type .content,
  section.section:nth-of-type(3) .content { grid-template-columns: 1fr; gap: 28px; }
  section.section:first-of-type .content::after,
  section.section:nth-of-type(3) .content::before {
    grid-column: 1;
    grid-row: auto;
    min-height: 300px;
    order: 4;
  }
  section.section:nth-of-type(3) .content > * { grid-column: 1; }
  .section.cta { min-height: 400px; }
  .cta h2 { font-size: 44px; }
  .footer-inner { width: calc(100% - 32px); flex-direction: column; align-items: flex-start; }
}
