:root{--deep:#030b16;--navy:#06162b;--soft:#0b2442;--blue:#1398d1;--white:#fff;--muted:#c8d7e6;--muted2:#91a7bc;--border:rgba(255,255,255,.16);--card:rgba(255,255,255,.08);--shadow:0 24px 70px rgba(0,0,0,.38)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--deep);color:var(--white);font-family:Arial,Helvetica,sans-serif;line-height:1.6}a{color:inherit}.wrap{width:min(1160px,92vw);margin:auto}
.site-header{position:sticky;top:0;z-index:20;background:rgba(3,11,22,.84);border-bottom:1px solid var(--border);backdrop-filter:blur(14px)}.header-wrap{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;text-decoration:none}.brand img{height:64px;width:auto;max-width:360px;object-fit:contain;display:block}.nav{display:flex;gap:24px;color:var(--muted);font-size:.95rem}.nav a{text-decoration:none}.nav a:hover,.nav a.active{color:#fff}


/* V6.2 public Services dropdown navigation */
.public-menu {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.public-menu-trigger {
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  padding: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: default;
}
.public-menu-trigger:hover,
.public-menu.active .public-menu-trigger,
.public-menu:focus-within .public-menu-trigger {
  color: #fff;
}
.public-menu-panel {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  min-width: 220px;
  display: none;
  flex-direction: column;
  gap: 0;
  padding: 8px;
  margin-top: 12px;
  border-radius: 14px;
  background: #ffffff;
  color: #06213a;
  border: 1px solid rgba(8, 34, 58, 0.16);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.25);
  z-index: 9999;
}
.public-menu:hover .public-menu-panel,
.public-menu:focus-within .public-menu-panel {
  display: flex;
}
.public-menu-panel::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -12px;
  height: 12px;
}
.public-menu-panel a {
  display: block;
  width: 100%;
  padding: 10px 12px;
  border-radius: 10px;
  color: #06213a;
  line-height: 1.15;
  text-align: left;
  white-space: nowrap;
}
.public-menu-panel a:hover,
.public-menu-panel a:focus,
.public-menu-panel a.active {
  background: #005b95;
  color: #ffffff;
}
@media(max-width:920px){
  .public-menu { align-items: flex-start; }
  .public-menu-panel {
    left: 0;
    right: auto;
    transform: none;
  }
}

.hero{position:relative;min-height:calc(100vh - 78px);overflow:hidden;display:grid;align-items:center;padding:90px 0;background:radial-gradient(circle at 70% 30%,rgba(35,170,225,.34),transparent 34%),radial-gradient(circle at 18% 75%,rgba(45,125,185,.28),transparent 31%),linear-gradient(135deg,#07162a,#0a2849 42%,#0d345c)}
.hero:before{content:"";position:absolute;inset:0;opacity:.34;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:42px 42px;mask-image:radial-gradient(circle at 48% 44%,black 0 48%,transparent 78%)}
.hero:after{content:"";position:absolute;inset:-12%;opacity:.50;background:linear-gradient(110deg,transparent 0 24%,rgba(255,255,255,.08) 24.15%,transparent 24.35% 100%),linear-gradient(110deg,transparent 0 58%,rgba(19,152,209,.22) 58.1%,transparent 58.4% 100%),linear-gradient(110deg,transparent 0 74%,rgba(255,255,255,.06) 74.2%,transparent 74.45% 100%);transform:rotate(-7deg)}
.hero-bg{position:absolute;inset:0;pointer-events:none}.orb{position:absolute;border-radius:999px;filter:blur(22px)}.orb.one{width:360px;height:360px;right:9%;top:21%;background:rgba(35,170,225,.32)}.orb.two{width:260px;height:260px;left:6%;bottom:16%;background:rgba(45,125,185,.26)}.trace{position:absolute;border:1px solid rgba(255,255,255,.13);border-left:none;border-bottom:none;border-radius:50%;transform:rotate(-19deg)}.t1{width:820px;height:260px;right:-180px;top:110px}.t2{width:720px;height:210px;left:-260px;bottom:90px;border-color:rgba(19,152,209,.20)}.t3{width:520px;height:150px;right:18%;bottom:12%;border-color:rgba(255,255,255,.08)}
.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:64px}.eyebrow{margin:0 0 14px;color:#8fd7ff;font-size:.78rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{margin-bottom:24px;font-size:clamp(2.65rem,6.4vw,5.7rem);line-height:.98;letter-spacing:-.06em}h2{margin-bottom:14px;font-size:clamp(2rem,4.2vw,3.4rem);line-height:1.08;letter-spacing:-.045em}.lead{max-width:680px;margin-bottom:34px;color:var(--muted);font-size:clamp(1.08rem,2vw,1.28rem)}
.button-row{display:flex;flex-wrap:wrap;gap:14px}.button{display:inline-block;padding:13px 20px;border:1px solid var(--border);border-radius:999px;font-weight:700;text-decoration:none}.button:hover{transform:translateY(-2px)}.button.primary{background:#fff;color:var(--deep)}.button.secondary{background:rgba(255,255,255,.06)}
.hero-panel{position:relative;min-height:520px;display:grid;place-items:center;border:1px solid var(--border);border-radius:34px;background:linear-gradient(145deg,rgba(255,255,255,.18),rgba(255,255,255,.06)),radial-gradient(circle at 50% 40%,rgba(35,170,225,.26),transparent 48%);box-shadow:var(--shadow);overflow:hidden}.hero-panel:before{content:"";position:absolute;width:560px;height:560px;border-radius:50%;border:1px solid rgba(255,255,255,.10);transform:rotate(-18deg) scaleX(1.28)}.hero-panel:after{content:"";position:absolute;inset:24px;border-radius:28px;border:1px solid rgba(255,255,255,.08)}.hero-logo{position:relative;z-index:2;width:min(72%,430px);height:auto;filter:drop-shadow(0 28px 42px rgba(0,0,0,.38))}
.status-card{position:absolute;left:26px;right:26px;bottom:26px;z-index:3;display:flex;align-items:center;gap:11px;padding:14px 16px;border:1px solid var(--border);border-radius:16px;color:var(--muted);background:rgba(3,11,22,.58);backdrop-filter:blur(12px)}.status-dot{width:10px;height:10px;border-radius:999px;background:#31d5ff;box-shadow:0 0 18px rgba(49,213,255,.95)}
.section{padding:90px 0;background:var(--navy)}.section.alt{background:radial-gradient(circle at 10% 10%,rgba(19,152,209,.12),transparent 34%),var(--soft)}.intro{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:linear-gradient(90deg,rgba(255,255,255,.04),transparent),var(--deep)}.intro-grid,.split,.platform-grid,.contact-card{display:grid;grid-template-columns:.9fr 1.1fr;gap:54px;align-items:start}.intro-grid p,.section-heading>p:not(.eyebrow),.muted,.card p,.steps p,.contact-card p{color:var(--muted)}
.section-heading{max-width:760px;margin-bottom:34px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{min-height:230px;padding:26px;border:1px solid var(--border);border-radius:22px;background:linear-gradient(145deg,rgba(255,255,255,.105),rgba(255,255,255,.045));box-shadow:0 18px 48px rgba(0,0,0,.18)}.card div{display:inline-grid;place-items:center;width:42px;height:42px;margin-bottom:20px;border:1px solid rgba(143,215,255,.45);border-radius:14px;color:#8fd7ff;font-size:.82rem;font-weight:800}
.sticky-copy{position:sticky;top:110px}.steps{display:grid;gap:16px}.steps article{padding:28px;border:1px solid var(--border);border-radius:22px;background:var(--card)}.steps span{display:inline-block;margin-bottom:12px;color:#8fd7ff;font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:.76rem}.tag-cloud{display:flex;flex-wrap:wrap;gap:12px}.tag-cloud span{padding:11px 14px;border:1px solid var(--border);border-radius:999px;color:var(--muted);background:rgba(255,255,255,.07)}
.contact-section{background:radial-gradient(circle at 74% 20%,rgba(19,152,209,.18),transparent 34%),linear-gradient(135deg,var(--deep),var(--navy))}.contact-card{padding:44px;border:1px solid var(--border);border-radius:30px;background:linear-gradient(145deg,rgba(255,255,255,.11),rgba(255,255,255,.045));box-shadow:var(--shadow)}.contact-actions{padding:24px;border:1px solid var(--border);border-radius:22px;background:rgba(3,11,22,.38)}.contact-actions .button{margin-bottom:22px}
.site-footer{padding:28px 0;color:var(--muted2);background:var(--deep);border-top:1px solid var(--border)}.footer-wrap{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}
@media(max-width:920px){.header-wrap{align-items:flex-start;flex-direction:column;padding:14px 0}.brand img{height:58px;max-width:340px}.nav{flex-wrap:wrap;gap:14px 20px}.hero-grid,.intro-grid,.split,.platform-grid,.contact-card{grid-template-columns:1fr}.hero-panel{min-height:380px}.sticky-copy{position:static}.cards{grid-template-columns:1fr}}
@media(max-width:560px){.section{padding:68px 0}.hero{padding:64px 0}.hero-panel{min-height:300px;border-radius:24px}.contact-card{padding:26px}.brand img{height:48px;max-width:280px}}


/* Ghosted technical image background for Core Service Areas */
#capabilities {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(rgba(255, 255, 255, 0.88), rgba(255, 255, 255, 0.92)),
    url("images/assets/core-services-bg.jpg") center center / cover no-repeat,
    #ffffff;
}

#capabilities::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at center, rgba(255,255,255,0.10), rgba(255,255,255,0.38) 68%),
    linear-gradient(90deg, rgba(255,255,255,0.18), rgba(255,255,255,0.08));
  pointer-events: none;
}

#capabilities .wrap {
  position: relative;
  z-index: 1;
}

#capabilities .section-heading h2 {
  color: var(--navy);
}

#capabilities .section-heading p:not(.eyebrow) {
  color: #26394d;
}

#capabilities .eyebrow {
  color: #005b95;
}

#capabilities .card {
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(6, 22, 43, 0.12);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.14);
}

#capabilities .card h3 {
  color: var(--navy);
}

#capabilities .card p {
  color: #3b4d60;
}

#capabilities .card div,
#capabilities .card-icon {
  color: #005b95;
  border-color: rgba(0, 91, 149, 0.28);
}


/* Disable old platform bubble styling if present */
#platforms .tag-cloud {
  display: none;
}

@media (max-width: 760px) {
  .brand-list {
    grid-template-columns: 1fr;
  }
}

/* Core service icon styling - user supplied PNG icons */
#capabilities .card-icon.png-icon {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 68px;
  height: 68px;
  margin-bottom: 18px;
  color: #0b2f73;
}

#capabilities .card-icon.png-icon img {
  display: block;
  width: 64px;
  height: 64px;
  object-fit: contain;
}


/* Platform Experience - right-side condensed panel */
#platforms {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(rgba(255, 255, 255, 0.80), rgba(255, 255, 255, 0.86)),
    url("images/assets/brand-logo-collage-color.png") center center / cover no-repeat,
    #ffffff;
}

#platforms::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at center, rgba(255,255,255,0.12), rgba(255,255,255,0.52) 72%),
    linear-gradient(90deg, rgba(255,255,255,0.30), rgba(255,255,255,0.14));
  pointer-events: none;
}

#platforms .wrap {
  position: relative;
  z-index: 1;
}

.platform-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.86fr) minmax(540px, 1.14fr);
  gap: 42px;
  align-items: center;
}

.platform-copy {
  max-width: 700px;
}

.platform-copy h2 {
  color: var(--navy);
}

.platform-copy .muted {
  color: #26394d;
}

@media (max-width: 980px) {
  .platform-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .platform-panel {
    max-width: none;
  }
}


/* Platform Experience - centered manufacturer panel */
.platform-panel.manufacturer-panel {
  min-height: 315px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 34px 38px;
  border: 1px solid rgba(6, 22, 43, 0.18);
  border-radius: 22px;
  background:
    linear-gradient(145deg, rgba(10, 38, 67, 0.84), rgba(16, 70, 110, 0.74));
  box-shadow: 0 24px 52px rgba(0, 0, 0, 0.18);
  backdrop-filter: blur(8px);
}

.manufacturer-word-list {
  max-width: 760px;
  text-align: center;
  color: rgba(255, 255, 255, 0.92);
  font-size: clamp(1.08rem, 1.6vw, 1.38rem);
  line-height: 2.05;
}

.manufacturer-word-list span {
  display: inline;
  font-weight: 800;
  letter-spacing: 0.01em;
  white-space: nowrap;
}


.manufacturer-word-list span {
  color: rgba(255, 255, 255, 0.96);
}

.manufacturer-word-list span + span::before {
  content: "•";
  display: inline-block;
  margin: 0 0.62em;
  color: #41b7e8;
  font-weight: 900;
  text-shadow: 0 0 14px rgba(65, 183, 232, 0.46);
}

@media (max-width: 620px) {
  .platform-panel.manufacturer-panel {
    min-height: 260px;
    padding: 28px 24px;
  }

  .manufacturer-word-list {
    font-size: 1.02rem;
    line-height: 1.95;
  }
}

/* Hero rebuild - systems stack concept */
.hero {
  position: relative;
  min-height: 690px;
  display: flex;
  align-items: center;
  overflow: hidden;
  color: var(--white);
  background:
    linear-gradient(135deg, #06162a, #082541 46%, #071d36);
}

.hero-bg {
  position: absolute;
  inset: 0;
  opacity: 0.36;
  background-image:
    linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px),
    radial-gradient(circle at 72% 45%, rgba(65,183,232,.18), transparent 34%);
  background-size: 44px 44px, 44px 44px, auto;
}

.hero.has-hero-photo .hero-bg {
  inset: -6%;
  opacity: 1;
  background-image: var(--hero-image);
  background-size: cover;
  background-position: var(--hero-position, center center);
  background-repeat: no-repeat;
  transform: scale(1.06);
  animation: heroKenBurns 24s ease-in-out infinite alternate;
}

.hero.has-hero-photo::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(90deg, rgba(4, 14, 28, 0.88) 0%, rgba(4, 14, 28, 0.70) 42%, rgba(4, 14, 28, 0.48) 100%),
    linear-gradient(180deg, rgba(4, 14, 28, 0.38), rgba(4, 14, 28, 0.72));
  pointer-events: none;
}

@keyframes heroKenBurns {
  from {
    transform: scale(1.06) translate3d(-1.2%, -0.7%, 0);
  }
  to {
    transform: scale(1.13) translate3d(1.2%, 0.7%, 0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero.has-hero-photo .hero-bg {
    animation: none;
    transform: scale(1.08);
  }
}

.hero::after {
  content: "";
  position: absolute;
  inset: -10%;
  background:
    linear-gradient(115deg, transparent 0 46%, rgba(65,183,232,.10) 46.2% 46.6%, transparent 46.8%),
    linear-gradient(35deg, transparent 0 58%, rgba(255,255,255,.08) 58.2% 58.5%, transparent 58.8%);
  pointer-events: none;
}

.hero.has-hero-photo::after {
  opacity: 0.35;
}

.hero-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(420px, 0.95fr);
  gap: 66px;
  align-items: center;
}

.hero-copy {
  position: relative;
  isolation: isolate;
  max-width: 720px;
}

.hero.has-hero-photo .hero-copy::before {
  content: "";
  position: absolute;
  inset: -30px clamp(-220px, -16vw, -140px) -34px -42px;
  z-index: -1;
  border-radius: 32px;
  background: linear-gradient(90deg,
    rgba(4, 14, 28, 0.78) 0%,
    rgba(4, 14, 28, 0.66) 46%,
    rgba(4, 14, 28, 0.34) 74%,
    rgba(4, 14, 28, 0) 100%
  );
  box-shadow: none;
  pointer-events: none;
}

.hero-grid-copy-only {
  grid-template-columns: minmax(0, 1fr);
}

.hero-grid-copy-only .hero-copy {
  max-width: 820px;
  transform: none;
}

.hero.has-hero-photo .hero-grid-copy-only .hero-copy::before {
  inset: -30px clamp(-220px, -16vw, -140px) -34px 0;
}

@media (min-width: 721px) {
  .hero-grid-copy-only .hero-copy > .eyebrow,
  .hero-grid-copy-only .hero-copy > h1,
  .hero-grid-copy-only .hero-copy > .lead,
  .hero-grid-copy-only .hero-copy > .button-row {
    transform: translateX(42px);
  }
}

.hero-copy h1 {
  margin: 0 0 24px;
  font-size: clamp(2.7rem, 5vw, 5.4rem);
  line-height: 0.95;
  letter-spacing: -0.065em;
  text-shadow: 0 4px 24px rgba(0, 0, 0, 0.55);
}

.hero-copy .lead {
  max-width: 650px;
  color: rgba(255,255,255,.90);
  font-size: 1.18rem;
  line-height: 1.65;
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.65);
}
/* Hero mobile-only call CTA */
.mobile-call-cta {
  display: none;
}

@media (max-width: 720px) {
  .mobile-call-cta {
    display: inline-block;
  }
}

.systems-panel {
  position: relative;
  padding: 26px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 28px;
  background:
    linear-gradient(145deg, rgba(255,255,255,.13), rgba(255,255,255,.045)),
    rgba(3, 17, 33, 0.62);
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.32);
  backdrop-filter: blur(12px);
}

.systems-panel::before {
  content: "";
  position: absolute;
  left: 52px;
  top: 95px;
  bottom: 82px;
  width: 1px;
  background: linear-gradient(rgba(65,183,232,.0), rgba(65,183,232,.55), rgba(65,183,232,.0));
}

.panel-topline {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-bottom: 18px;
  margin-bottom: 8px;
  border-bottom: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.84);
  font-size: .83rem;
  text-transform: uppercase;
  letter-spacing: .14em;
}

.status-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: #41b7e8;
  box-shadow: 0 0 0 6px rgba(65,183,232,.14), 0 0 24px rgba(65,183,232,.55);
}

.system-row {
  position: relative;
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 16px;
  padding: 18px 0;
}

.system-icon {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border: 1px solid rgba(65,183,232,.32);
  border-radius: 16px;
  background: rgba(6, 22, 43, .84);
  color: #41b7e8;
  font-weight: 800;
  font-size: .82rem;
}

.system-row strong {
  display: block;
  margin-bottom: 4px;
  color: #fff;
  font-size: 1.05rem;
}

.system-row span {
  display: block;
  color: rgba(255,255,255,.68);
  line-height: 1.45;
}

.panel-footer {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  margin-top: 14px;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.72);
  font-size: .9rem;
}

.hero-panel, .hero-logo, .orb, .trace {
  display: none !important;
}

/* Small perched chameleon mascot */
.site-header {
  position: sticky;
}

.header-chameleon-perch {
  position: absolute;
  right: 14px;
  bottom: -1px;
  height: 28px;
  width: auto;
  opacity: 0.42;
  pointer-events: none;
  z-index: 2;
  transform: translateY(1px);
  filter: drop-shadow(0 0 8px rgba(65, 183, 232, 0.10));
}

@media (max-width: 980px) {
  .hero {
    min-height: auto;
    padding: 120px 0 70px;
  }

  .hero-grid {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  .systems-panel {
    max-width: 640px;
  }

  .header-chameleon-perch {
    height: 22px;
    opacity: 0.32;
  }
}

@media (max-width: 760px) {
  .header-chameleon-perch {
    display: none;
  }
}





/* Contact map insert - fixed layout */
.contact .wrap {
  max-width: 1180px;
}

.contact-split {
  display: grid;
  grid-template-columns: minmax(420px, 0.95fr) minmax(500px, 1.05fr);
  gap: 34px;
  align-items: start;
}

.contact-card {
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 38px;
}

.contact-card h2 {
  max-width: 620px;
  margin-bottom: 20px;
}

.contact-intro {
  max-width: 620px;
  color: rgba(255, 255, 255, 0.74);
  line-height: 1.62;
}

.contact-lines {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px 34px;
  margin: 30px 0;
}

.contact-lines p {
  margin: 0;
  color: rgba(255, 255, 255, 0.76);
  line-height: 1.5;
}

.contact-lines strong {
  color: #ffffff;
}

.contact-lines a {
  color: #dcefff;
  font-weight: 700;
}

.contact-card .button-row {
  margin-top: auto;
  padding-top: 28px;
  justify-content: flex-end;
  align-items: flex-end;
}

.contact-card .contact-button-row .button {
  flex: 0 0 auto;
}

.contact-map {
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 24px;
  background: rgba(3, 11, 22, 0.58);
  box-shadow: 0 24px 58px rgba(0, 0, 0, 0.18);
}

.contact-map iframe {
  display: block;
  width: 100%;
  height: 390px;
  border: 0;
}

.contact-map a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 13px 18px;
  color: #ffffff;
  background: rgba(3, 11, 22, 0.82);
  font-weight: 800;
  text-decoration: none;
}

.contact-map a:hover {
  background: rgba(0, 91, 149, 0.86);
}

@media (max-width: 980px) {
  .contact-split {
    grid-template-columns: 1fr;
  }

  .contact-map iframe {
    height: 330px;
  }
}

@media (max-width: 620px) {
  .contact-card {
    padding: 28px;
  }

  .contact-lines {
    grid-template-columns: 1fr;
  }
}


/* Dynamic photos section */
.photos{background:radial-gradient(circle at 18% 18%,rgba(65,183,232,.08),transparent 28%),linear-gradient(180deg,#fff,#f6f9fc)}
.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.photo-card{overflow:hidden;margin:0;border:1px solid rgba(6,22,43,.12);border-radius:22px;background:#fff;box-shadow:0 18px 42px rgba(6,22,43,.10)}.photo-card img{display:block;width:100%;height:245px;object-fit:cover;object-position:center 50%}.photo-card figcaption{display:grid;gap:4px;padding:16px 18px 18px}.photo-card strong{color:var(--navy)}.photo-card span,.empty-photos p{color:#31465c;line-height:1.45}.empty-photos{padding:26px;border:1px dashed rgba(6,22,43,.18);border-radius:18px;background:rgba(255,255,255,.72)}@media(max-width:920px){.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.photo-grid{grid-template-columns:1fr}.photo-card img{height:220px}}


/* Photo gallery thumbnails + fullscreen lightbox */
.photo-card {
  position: relative;
}

.photo-thumb {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  overflow: hidden;
}

.photo-thumb img {
  transition: transform 220ms ease, filter 220ms ease;
}

.photo-thumb:hover img,
.photo-thumb:focus-visible img {
  transform: scale(1.035);
  filter: brightness(1.04);
}

.photo-thumb:focus-visible {
  outline: 3px solid #41b7e8;
  outline-offset: 4px;
}

body.lightbox-open {
  overflow: hidden;
}

.photo-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 44px 74px;
  background: rgba(2, 8, 20, 0.92);
  backdrop-filter: blur(8px);
}

.photo-lightbox.is-open {
  display: flex;
}

.lightbox-frame {
  position: relative;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  max-width: min(1180px, 92vw);
  max-height: min(820px, 88vh);
  width: 100%;
}

.lightbox-frame img {
  display: block;
  max-width: 100%;
  max-height: calc(88vh - 96px);
  width: auto;
  height: auto;
  justify-self: center;
  align-self: center;
  object-fit: contain;
  border-radius: 18px;
  box-shadow: 0 30px 90px rgba(0,0,0,.42);
  background: #07111f;
}

.lightbox-caption {
  min-height: 56px;
  margin-top: 16px;
  padding: 14px 18px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 16px;
  background: rgba(6,22,43,.74);
  color: #fff;
  text-align: center;
}

.lightbox-caption strong {
  display: block;
  font-size: 1.02rem;
}

.lightbox-caption span {
  display: block;
  margin-top: 4px;
  color: rgba(255,255,255,.74);
  line-height: 1.4;
}

.lightbox-close {
  position: fixed;
  top: 18px;
  right: 22px;
  z-index: 2;
  width: 46px;
  height: 46px;
  border: 1px solid rgba(255,255,255,.20);
  border-radius: 999px;
  background: rgba(6,22,43,.82);
  color: #fff;
  font-size: 2rem;
  line-height: 1;
  cursor: pointer;
}

.lightbox-arrow {
  position: fixed;
  top: 50%;
  z-index: 2;
  transform: translateY(-50%);
  width: 56px;
  height: 74px;
  border: 1px solid rgba(255,255,255,.20);
  border-radius: 18px;
  background: rgba(6,22,43,.72);
  color: #fff;
  font-size: 2.2rem;
  cursor: pointer;
}

.lightbox-prev {
  left: 18px;
}

.lightbox-next {
  right: 18px;
}

.lightbox-close:hover,
.lightbox-arrow:hover {
  background: rgba(0,91,149,.86);
}

@media (max-width: 760px) {
  .photo-lightbox {
    padding: 50px 18px 28px;
  }

  .lightbox-arrow {
    width: 44px;
    height: 58px;
    font-size: 1.7rem;
  }

  .lightbox-prev {
    left: 8px;
  }

  .lightbox-next {
    right: 8px;
  }

  .lightbox-frame img {
    max-height: calc(86vh - 120px);
  }
}


/* Dedicated gallery page */
.gallery-hero {
  position: relative;
  padding: 132px 0 72px;
  color: #ffffff;
  background:
    radial-gradient(circle at 78% 26%, rgba(65, 183, 232, 0.18), transparent 30%),
    linear-gradient(135deg, #06162a, #082541 52%, #071d36);
  overflow: hidden;
}

.gallery-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.26;
  background-image:
    linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px);
  background-size: 44px 44px;
}

.gallery-hero .wrap {
  position: relative;
  z-index: 1;
}

.gallery-hero h1 {
  max-width: 820px;
  margin: 0 0 18px;
  font-size: clamp(2.5rem, 5vw, 4.8rem);
  line-height: 0.96;
  letter-spacing: -0.06em;
}

.gallery-hero p:not(.eyebrow) {
  max-width: 720px;
  color: rgba(255,255,255,.76);
  font-size: 1.12rem;
  line-height: 1.62;
}

.gallery-page {
  padding-top: 70px;
}

/* Gallery lightbox refinement */
.photo-lightbox {
  align-items: center !important;
  justify-content: center !important;
}

.lightbox-frame {
  max-width: min(1920px, 92vw);
  max-height: 90vh;
}

.lightbox-frame a#lightboxImageLink {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
  text-decoration: none;
  cursor: zoom-in;
}

.lightbox-frame img {
  max-width: min(1920px, 92vw);
  max-height: calc(90vh - 112px);
  object-fit: contain;
}

.lightbox-caption em {
  display: block;
  margin-top: 7px;
  color: rgba(255,255,255,.52);
  font-style: normal;
  font-size: .84rem;
}

@media (max-width: 760px) {
  .gallery-hero {
    padding: 112px 0 54px;
  }

  .lightbox-frame {
    max-width: 94vw;
  }

  .lightbox-frame img {
    max-width: 94vw;
    max-height: calc(88vh - 140px);
  }
}


/* Gallery floating overlay - replaces old bottom-of-page lightbox behavior */
html.gallery-overlay-open,
body.gallery-overlay-open {
  overflow: hidden !important;
}

.gallery-overlay {
  position: fixed !important;
  inset: 0 !important;
  z-index: 2147483000 !important;
  display: none !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 52px 82px !important;
  pointer-events: none;
}

.gallery-overlay.is-visible {
  display: flex !important;
  pointer-events: auto;
}

.gallery-overlay-backdrop {
  position: absolute !important;
  inset: 0 !important;
  background: rgba(2, 8, 20, 0.92) !important;
  backdrop-filter: blur(8px);
}

.gallery-overlay-frame {
  position: relative !important;
  z-index: 2 !important;
  display: grid !important;
  grid-template-rows: minmax(0, 1fr) auto !important;
  width: min(1920px, 92vw) !important;
  max-height: 90vh !important;
  align-items: center !important;
  justify-items: center !important;
}

.gallery-overlay-frame a {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  max-width: min(1920px, 92vw) !important;
  max-height: calc(90vh - 118px) !important;
  text-decoration: none !important;
  cursor: zoom-in;
}

.gallery-overlay-frame img {
  display: block !important;
  width: auto !important;
  height: auto !important;
  max-width: min(1920px, 92vw) !important;
  max-height: calc(90vh - 118px) !important;
  object-fit: contain !important;
  border-radius: 18px;
  background: #07111f;
  box-shadow: 0 30px 90px rgba(0, 0, 0, 0.48);
}

.gallery-overlay-caption {
  width: min(920px, 90vw);
  min-height: 58px;
  margin-top: 16px;
  padding: 14px 18px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 16px;
  background: rgba(6,22,43,.78);
  color: #fff;
  text-align: center;
}

.gallery-overlay-caption strong {
  display: block;
  font-size: 1.02rem;
}

.gallery-overlay-caption span {
  display: block;
  margin-top: 4px;
  color: rgba(255,255,255,.74);
  line-height: 1.4;
}

.gallery-overlay-caption em {
  display: block;
  margin-top: 7px;
  color: rgba(255,255,255,.52);
  font-style: normal;
  font-size: .84rem;
}

.gallery-overlay-close {
  position: fixed !important;
  top: 18px !important;
  right: 22px !important;
  z-index: 3 !important;
  width: 46px;
  height: 46px;
  border: 1px solid rgba(255,255,255,.20);
  border-radius: 999px;
  background: rgba(6,22,43,.86);
  color: #fff;
  font-size: 2rem;
  line-height: 1;
  cursor: pointer;
}

.gallery-overlay-arrow {
  position: fixed !important;
  top: 50% !important;
  z-index: 3 !important;
  transform: translateY(-50%);
  width: 56px;
  height: 74px;
  border: 1px solid rgba(255,255,255,.20);
  border-radius: 18px;
  background: rgba(6,22,43,.78);
  color: #fff;
  font-size: 2.2rem;
  cursor: pointer;
}

.gallery-overlay-prev {
  left: 18px !important;
}

.gallery-overlay-next {
  right: 18px !important;
}

.gallery-overlay-close:hover,
.gallery-overlay-arrow:hover {
  background: rgba(0,91,149,.88);
}

@media (max-width: 760px) {
  .gallery-overlay {
    padding: 54px 16px 28px !important;
  }

  .gallery-overlay-arrow {
    width: 42px;
    height: 56px;
    font-size: 1.65rem;
  }

  .gallery-overlay-prev {
    left: 8px !important;
  }

  .gallery-overlay-next {
    right: 8px !important;
  }

  .gallery-overlay-frame,
  .gallery-overlay-frame a,
  .gallery-overlay-frame img {
    max-width: 94vw !important;
  }

  .gallery-overlay-frame a,
  .gallery-overlay-frame img {
    max-height: calc(88vh - 144px) !important;
  }
}


/* V5 patch: Home nav + contact/map equal height */
.contact-grid {
  align-items: stretch;
}

.contact-card,
.map-card {
  height: 100%;
}

.map-card {
  display: flex;
  flex-direction: column;
}

.map-embed {
  flex: 1 1 auto;
  min-height: 0;
}

.map-embed iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 390px;
}

.map-card .map-actions,
.map-card .directions-link {
  flex: 0 0 auto;
}

@media (max-width: 860px) {
  .contact-card,
  .map-card {
    height: auto;
  }

  .map-embed iframe {
    height: 390px;
  }
}


/* V5 structural contact-map fix
   The earlier equal-height attempts depended on wrapper stretch.
   This sets both visible cards to the same desktop height and makes the iframe fill the map card. */
@media (min-width: 861px) {
  #contact .contact-split,
  #contact .contact-grid,
  #contact .contact-layout {
    align-items: stretch !important;
  }

  #contact .contact-card,
  #contact .contact-map,
  #contact .map-card {
    min-height: 520px !important;
    height: 520px !important;
    box-sizing: border-box !important;
  }

  #contact .contact-card {
    display: flex !important;
    flex-direction: column !important;
  }

  #contact .contact-map,
  #contact .map-card {
    display: flex !important;
    flex-direction: column !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  #contact .contact-map-frame,
  #contact .map-embed,
  #contact .map-frame,
  #contact .map-wrap {
    flex: 1 1 auto !important;
    height: 100% !important;
    min-height: 0 !important;
  }

  #contact iframe,
  #contact .contact-map-iframe {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    border: 0 !important;
  }

  #contact .contact-map > a,
  #contact .map-card > a,
  #contact .directions-link,
  #contact .map-actions {
    flex: 0 0 auto !important;
  }
}

@media (max-width: 860px) {
  #contact .contact-card,
  #contact .contact-map,
  #contact .map-card {
    height: auto !important;
    min-height: 0 !important;
  }

  #contact iframe,
  #contact .contact-map-iframe {
    height: 360px !important;
    min-height: 360px !important;
  }
}

/* V6.2 public service pages */
.service-link-card {
  display: block;
  color: inherit;
  text-decoration: none;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.service-link-card:hover {
  transform: translateY(-3px);
  border-color: rgba(19,152,209,.34);
  box-shadow: 0 22px 52px rgba(6,22,43,.18);
}
.service-link-card.is-disabled {
  cursor: default;
}
.service-link-card.is-disabled:hover {
  transform: none;
  border-color: var(--border);
  box-shadow: 0 18px 48px rgba(0,0,0,.18);
}
.service-link-card.is-disabled .card-link-text {
  opacity: .48;
}
.card-link-text {
  display: inline-block;
  margin-top: 14px;
  color: #1398d1;
  font-weight: 800;
  font-size: .9rem;
}
.service-hero {
  position: relative;
  overflow: hidden;
  padding: 96px 0;
  background:
    radial-gradient(circle at 80% 18%, rgba(19,152,209,.06), transparent 34%),
    linear-gradient(135deg, rgba(3,11,22,.72), rgba(6,22,43,.62)),
    var(--service-hero-image, url("images/assets/core-services-bg.jpg")) var(--service-hero-position, center center) / cover no-repeat;
  color: #fff;
}
.service-hero-grid {
  display: grid;
  grid-template-columns: 1.06fr .94fr;
  gap: 52px;
  align-items: center;
}
.service-hero-copy {
  max-width: 760px;
  text-shadow: 0 2px 18px rgba(0,0,0,.38);
}
.service-hero-copy .lead {
  color: var(--muted);
}
.service-snapshot,
.service-cta-card {
  border: 1px solid var(--border);
  border-radius: 30px;
  background: linear-gradient(145deg, rgba(255,255,255,.12), rgba(255,255,255,.045));
  box-shadow: var(--shadow);
  backdrop-filter: blur(14px);
}
.service-snapshot {
  display: grid;
  gap: 14px;
  padding: 28px;
}
.snapshot-row {
  display: grid;
  gap: 5px;
  padding: 18px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 18px;
  background: rgba(3,11,22,.34);
}
.snapshot-row strong {
  color: #fff;
}
.snapshot-row span {
  color: var(--muted);
  line-height: 1.45;
}
.service-cards .card {
  min-height: 210px;
}
.service-cards .card h3 {
  color: var(--navy);
}
.service-cards .card p {
  color: #31465c;
}
.service-cta {
  background: radial-gradient(circle at 18% 20%, rgba(19,152,209,.16), transparent 35%), var(--deep);
}
.service-cta-card {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 32px;
  align-items: center;
  padding: 38px;
  color: #fff;
}
.service-cta-card p:not(.eyebrow) {
  color: var(--muted);
}
@media(max-width:920px){
  .service-hero-grid,
  .service-cta-card {
    grid-template-columns: 1fr;
  }
}

/* Approach - four-card 2x2 layout */
#approach .approach-wrap {
  display: grid;
  grid-template-columns: minmax(280px, 0.82fr) minmax(0, 1.18fr);
  gap: 42px;
  align-items: center;
}

#approach .approach-heading {
  max-width: 620px;
  margin-bottom: 0;
}

.approach-panel {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.approach-panel article {
  min-height: 205px;
  padding: 28px;
  border: 1px solid var(--border);
  border-radius: 22px;
  background:
    radial-gradient(circle at 20% 0%, rgba(143, 215, 255, 0.18), transparent 42%),
    linear-gradient(145deg, rgba(255, 255, 255, 0.095), rgba(255, 255, 255, 0.035)),
    var(--card);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.18);
}

.approach-panel span {
  display: inline-block;
  margin-bottom: 12px;
  color: #8fd7ff;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.76rem;
}

.approach-panel h3 {
  margin-bottom: 10px;
}

.approach-panel p {
  color: var(--muted);
}

@media (max-width: 920px) {
  #approach .approach-wrap {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}

@media (max-width: 480px) {
  .approach-panel {
    grid-template-columns: 1fr;
  }

  .approach-panel article {
    min-height: auto;
  }
}

/* Mobile hero copy test - stronger local text field, image allowed to breathe */
@media (max-width: 720px) {
  .hero {
    min-height: 680px;
    padding: 92px 0 58px;
    align-items: center;
  }

  .hero.has-hero-photo::before {
    background:
      linear-gradient(90deg, rgba(4, 14, 28, 0.82) 0%, rgba(4, 14, 28, 0.58) 56%, rgba(4, 14, 28, 0.26) 100%),
      linear-gradient(180deg, rgba(4, 14, 28, 0.24), rgba(4, 14, 28, 0.58));
  }

  .hero-grid,
  .hero-grid-copy-only {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .hero-copy,
  .hero-grid-copy-only .hero-copy {
    max-width: 100%;
    transform: none;
    padding: 26px 0;
  }

  .hero.has-hero-photo .hero-copy::before {
    inset: -22px -18px -24px -18px;
    border-radius: 24px;
    background: linear-gradient(180deg,
      rgba(4, 14, 28, 0.88) 0%,
      rgba(4, 14, 28, 0.76) 58%,
      rgba(4, 14, 28, 0.56) 100%
    );
  }

  .hero-copy h1 {
    font-size: clamp(3rem, 15vw, 4.9rem);
    line-height: 0.95;
  }

  .hero-copy .lead {
    max-width: 100%;
    font-size: 1rem;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.94);
  }

  .button-row {
    flex-direction: column;
    align-items: stretch;
  }

  .button-row .button {
    width: 100%;
    text-align: center;
  }
}

/* Service card image backgrounds */
#capabilities .service-link-card {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background: rgba(255, 255, 255, 0.98);
}

#capabilities .service-link-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  opacity: 0.18;
  transform: scale(1.02);
  transition: opacity .18s ease, transform .18s ease;
}

#capabilities .service-link-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.96) 0%, rgba(255, 255, 255, 0.88) 56%, rgba(255, 255, 255, 0.78) 100%);
}

#capabilities .service-link-card:hover::before {
  opacity: 0.24;
  transform: scale(1.045);
}

#capabilities .service-link-card[data-service="it"]::before {
  background-image: url("images/services/service-it-network-bg.jpg");
  background-position: center right;
}

#capabilities .service-link-card[data-service="av"]::before {
  background-image: url("images/services/service-audio-video-bg.jpg");
  background-position: center right;
}

#capabilities .service-link-card[data-service="surveillance"]::before {
  background-image: url("images/services/service-surveillance-bg.jpg");
  background-position: 82% center;
}

#capabilities .service-link-card[data-service="access"]::before {
  background-image: url("images/services/service-access-control-bg.jpg");
  background-position: 84% center;
}

#capabilities .service-link-card[data-service="integration"]::before {
  background-image: url("images/services/service-systems-integration-bg.jpg");
  background-position: 82% center;
}

#capabilities .service-link-card[data-service="support"]::before {
  background-image: url("images/services/service-troubleshooting-support-bg.jpg");
  background-position: 78% center;
}

@media (max-width: 760px) {
  #capabilities .service-link-card::before {
    opacity: 0.14;
  }

  #capabilities .service-link-card::after {
    background: rgba(255, 255, 255, 0.9);
  }
}

/* V6.2 service card background visibility pass - 2026-06-25 */
#capabilities .service-link-card {
  min-height: 310px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  color: #fff;
  background: #06162b;
  border-color: rgba(255, 255, 255, 0.13);
  box-shadow: 0 22px 54px rgba(6, 22, 43, 0.18);
}

#capabilities .service-link-card::before {
  opacity: 0.72;
  transform: scale(1.03);
  filter: saturate(1.05) contrast(1.04);
}

#capabilities .service-link-card::after {
  background:
    linear-gradient(180deg, rgba(3, 11, 22, 0.18) 0%, rgba(3, 11, 22, 0.62) 48%, rgba(3, 11, 22, 0.92) 100%),
    linear-gradient(135deg, rgba(19, 152, 209, 0.18), rgba(3, 11, 22, 0.18));
}

#capabilities .service-link-card:hover {
  border-color: rgba(143, 215, 255, 0.42);
  box-shadow: 0 28px 68px rgba(6, 22, 43, 0.28);
}

#capabilities .service-link-card:hover::before {
  opacity: 0.86;
  transform: scale(1.075);
}

#capabilities .service-link-card .card-icon {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  margin-bottom: 18px;
  border: 1px solid rgba(255, 255, 255, 0.24);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.24);
  backdrop-filter: blur(10px);
}

#capabilities .service-link-card .card-icon img {
  max-width: 34px;
  max-height: 34px;
}

#capabilities .service-link-card h3 {
  color: #fff;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.38);
}

#capabilities .service-link-card p {
  color: rgba(255, 255, 255, 0.86);
}

#capabilities .service-link-card .card-link-text {
  color: #8fd7ff;
}

@media (max-width: 760px) {
  #capabilities .service-link-card {
    min-height: 270px;
  }

  #capabilities .service-link-card::before {
    opacity: 0.62;
  }

  #capabilities .service-link-card::after {
    background: linear-gradient(180deg, rgba(3, 11, 22, 0.28) 0%, rgba(3, 11, 22, 0.68) 46%, rgba(3, 11, 22, 0.94) 100%);
  }
}

/* V6.2 service card background visibility pass 2 - clearer photo gradient */
#capabilities .service-link-card {
  min-height: 320px;
  background: #06162b;
}

#capabilities .service-link-card::before {
  opacity: 0.94;
  transform: scale(1.035);
  filter: saturate(1.12) contrast(1.08) brightness(0.98);
}

#capabilities .service-link-card::after {
  background:
    radial-gradient(circle at 82% 18%, rgba(143, 215, 255, 0.16) 0%, rgba(143, 215, 255, 0.05) 28%, transparent 54%),
    linear-gradient(90deg, rgba(3, 11, 22, 0.92) 0%, rgba(3, 11, 22, 0.66) 36%, rgba(3, 11, 22, 0.24) 67%, rgba(3, 11, 22, 0.08) 100%),
    linear-gradient(0deg, rgba(3, 11, 22, 0.92) 0%, rgba(3, 11, 22, 0.58) 34%, rgba(3, 11, 22, 0.12) 72%, rgba(3, 11, 22, 0.02) 100%);
}

#capabilities .service-link-card:hover::before {
  opacity: 1;
  transform: scale(1.08);
  filter: saturate(1.2) contrast(1.1) brightness(1.03);
}

#capabilities .service-link-card p {
  max-width: 92%;
  color: rgba(255, 255, 255, 0.9);
}

#capabilities .service-link-card .card-icon {
  background: rgba(255, 255, 255, 0.74);
}

@media (max-width: 760px) {
  #capabilities .service-link-card::before {
    opacity: 0.9;
  }

  #capabilities .service-link-card::after {
    background:
      linear-gradient(90deg, rgba(3, 11, 22, 0.9) 0%, rgba(3, 11, 22, 0.62) 46%, rgba(3, 11, 22, 0.18) 100%),
      linear-gradient(0deg, rgba(3, 11, 22, 0.92) 0%, rgba(3, 11, 22, 0.55) 46%, rgba(3, 11, 22, 0.12) 100%);
  }
}


/* V6.2 service card background visibility pass 3 - lighter photo gradient */
#capabilities .service-link-card {
  background: #0a1b31;
}

#capabilities .service-link-card::before {
  opacity: 1;
  filter: saturate(1.16) contrast(1.06) brightness(1.08);
}

#capabilities .service-link-card::after {
  background:
    radial-gradient(circle at 82% 18%, rgba(143, 215, 255, 0.10) 0%, rgba(143, 215, 255, 0.03) 30%, transparent 56%),
    linear-gradient(90deg, rgba(3, 11, 22, 0.78) 0%, rgba(3, 11, 22, 0.48) 36%, rgba(3, 11, 22, 0.16) 67%, rgba(3, 11, 22, 0.02) 100%),
    linear-gradient(0deg, rgba(3, 11, 22, 0.76) 0%, rgba(3, 11, 22, 0.42) 34%, rgba(3, 11, 22, 0.08) 72%, rgba(3, 11, 22, 0.00) 100%);
}

#capabilities .service-link-card:hover::before {
  opacity: 1;
  filter: saturate(1.22) contrast(1.08) brightness(1.12);
}

#capabilities .service-link-card p {
  color: rgba(255, 255, 255, 0.92);
}

#capabilities .service-link-card .card-icon {
  background: rgba(255, 255, 255, 0.68);
}

@media (max-width: 760px) {
  #capabilities .service-link-card::before {
    opacity: 1;
  }

  #capabilities .service-link-card::after {
    background:
      linear-gradient(90deg, rgba(3, 11, 22, 0.78) 0%, rgba(3, 11, 22, 0.48) 46%, rgba(3, 11, 22, 0.08) 100%),
      linear-gradient(0deg, rgba(3, 11, 22, 0.78) 0%, rgba(3, 11, 22, 0.42) 46%, rgba(3, 11, 22, 0.06) 100%);
  }
}

/* V6.2 service card icon restore - keep photo-card backgrounds but restore icon size/placement */
#capabilities .service-link-card .card-icon,
#capabilities .service-link-card .card-icon.png-icon {
  width: 76px;
  height: 76px;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  margin-left: 0;
  margin-bottom: 20px;
  padding: 8px;
  border-radius: 20px;
}

#capabilities .service-link-card .card-icon img,
#capabilities .service-link-card .card-icon.png-icon img {
  width: 60px;
  height: 60px;
  max-width: 60px;
  max-height: 60px;
  object-fit: contain;
}

/* V6.2 service card vertical alignment fix - keep content anchored top, CTA anchored bottom */
#capabilities .service-link-card {
  justify-content: flex-start;
  align-items: flex-start;
}

#capabilities .service-link-card .card-link-text {
  margin-top: auto;
  padding-top: 22px;
}

#capabilities .service-link-card p {
  margin-bottom: 0;
}

/* V6.3 contact card correction after textarea line-break support
   Keep contact details and Email button inside the fixed-height contact card. */
#contact .contact-card {
  position: relative;
  overflow: hidden;
}

@media (min-width: 861px) {
  #contact .contact-card {
    padding-bottom: 118px !important;
  }

  #contact .contact-lines {
    margin: auto 0 0 !important;
    padding-right: 185px;
  }

  #contact .contact-card .contact-button-row {
    position: absolute !important;
    right: 38px;
    bottom: 38px;
    margin: 0 !important;
    padding: 0 !important;
    justify-content: flex-end !important;
    align-items: center !important;
  }
}

@media (max-width: 860px) {
  #contact .contact-card {
    overflow: visible;
  }

  #contact .contact-lines {
    padding-right: 0;
  }

  #contact .contact-card .contact-button-row {
    position: static !important;
    margin-top: 24px !important;
    padding-top: 0 !important;
    justify-content: flex-start !important;
  }
}

/* V6.3.1 contact card unclipping fix
   Keep the contact details and Email Us button inside the card without absolute positioning. */
@media (min-width: 861px) {
  #contact .contact-card {
    height: auto !important;
    min-height: 520px !important;
    overflow: visible !important;
    padding-bottom: 38px !important;
  }

  #contact .contact-lines {
    margin: auto 0 0 !important;
    padding-right: 0 !important;
  }

  #contact .contact-card .contact-button-row {
    position: static !important;
    right: auto !important;
    bottom: auto !important;
    margin-top: 22px !important;
    padding: 0 !important;
    justify-content: flex-end !important;
    align-items: center !important;
  }
}

@media (max-width: 1120px) and (min-width: 861px) {
  #contact .contact-lines {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }
}


/* Service pages - concise side-by-side service areas */
.service-areas-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: #06162b;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 1px solid rgba(6, 22, 43, 0.22);
}

.service-areas-section.has-service-area-photo::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image: var(--service-area-bg-image);
  background-size: cover;
  background-position: var(--service-area-bg-position, center center);
  background-repeat: no-repeat;
  opacity: 0.46;
}

.service-areas-section.has-service-area-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(6, 22, 43, 0.88) 0%, rgba(6, 22, 43, 0.74) 42%, rgba(6, 22, 43, 0.58) 100%),
    radial-gradient(circle at 78% 45%, rgba(19, 152, 209, 0.16), transparent 38%);
}

.service-areas-section .eyebrow {
  color: #8fd7ff;
}

.service-areas-section .service-areas-copy h2,
.service-areas-section .service-areas-copy p:not(.eyebrow) {
  color: #ffffff;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.32);
}

.service-areas-split {
  display: grid;
  grid-template-columns: minmax(280px, 0.9fr) minmax(320px, 1.1fr);
  gap: 42px;
  align-items: center;
}

.service-areas-copy {
  max-width: 620px;
  margin-bottom: 0;
}

.service-area-list-card {
  border: 1px solid rgba(143, 215, 255, 0.22);
  border-radius: 24px;
  background: linear-gradient(145deg, rgba(6,22,43,0.86), rgba(8,32,58,0.74));
  box-shadow: 0 20px 46px rgba(0, 0, 0, 0.22);
  padding: 30px 34px;
}

.service-area-list {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 13px 24px;
  margin: 0;
  padding: 0;
}

.service-area-list li {
  position: relative;
  padding-left: 20px;
  color: #f3f8fc;
  font-weight: 750;
  line-height: 1.42;
}

.service-area-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.62em;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: #5cc9ff;
  box-shadow: 0 0 0 4px rgba(92, 201, 255, 0.16);
}

@media (max-width: 920px) {
  .service-areas-split,
  .service-area-list {
    grid-template-columns: 1fr;
  }
}



/* Save Contact / QR contact card */
.contact-save-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 24px;
  padding: 18px;
  border: 1px solid rgba(143, 215, 255, 0.28);
  border-radius: 20px;
  background: rgba(3, 11, 22, 0.28);
}

.contact-save-copy {
  display: grid;
  gap: 6px;
}

.contact-save-copy strong {
  color: #ffffff;
  font-size: 1rem;
}

.contact-save-copy span {
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.45;
}

.contact-qr-link {
  flex: 0 0 auto;
  display: inline-flex;
  padding: 8px;
  border-radius: 16px;
  background: #ffffff;
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.24);
}

.contact-qr-link img {
  display: block;
  width: 112px;
  height: 112px;
}

.save-contact-section {
  min-height: calc(100vh - 78px);
  display: grid;
  align-items: center;
  background:
    radial-gradient(circle at 72% 24%, rgba(65,183,232,.20), transparent 34%),
    linear-gradient(135deg, var(--deep), var(--navy));
}

.save-contact-wrap {
  max-width: 860px;
}

.save-contact-card {
  padding: clamp(30px, 5vw, 54px);
  border: 1px solid var(--border);
  border-radius: 32px;
  background: linear-gradient(145deg, rgba(255,255,255,.13), rgba(255,255,255,.045));
  box-shadow: var(--shadow);
}

.save-contact-card h1 {
  max-width: 720px;
  margin-bottom: 20px;
  font-size: clamp(2.3rem, 5vw, 4.6rem);
}

.save-contact-actions {
  margin: 26px 0 30px;
}

.save-contact-lines {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  padding-top: 24px;
  border-top: 1px solid var(--border);
}

.save-contact-lines p {
  margin: 0;
  color: var(--muted);
}

@media (max-width: 720px) {
  .contact-save-panel {
    align-items: flex-start;
  }

  .contact-qr-link {
    display: none;
  }

  .save-contact-lines {
    grid-template-columns: 1fr;
  }
}

/* Contact card compact QR/save-contact layout */
#contact .contact-card {
  min-height: 0 !important;
  padding: 32px !important;
}

#contact .contact-card h2 {
  margin-bottom: 14px;
}

#contact .contact-intro {
  line-height: 1.5;
}

#contact .contact-lines {
  gap: 14px 24px;
  margin: 22px 0 0 !important;
}

#contact .contact-actions-compact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 24px;
}

#contact .contact-actions-compact .contact-button-row {
  flex: 1 1 auto;
  margin: 0 !important;
  padding: 0 !important;
  justify-content: flex-start !important;
  align-items: center !important;
}

#contact .contact-save-panel {
  display: none !important;
}

#contact .contact-save-chip {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  max-width: 220px;
  padding: 10px 12px;
  border: 1px solid rgba(143, 215, 255, 0.28);
  border-radius: 18px;
  background: rgba(3, 11, 22, 0.28);
  color: #ffffff;
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 800;
  line-height: 1.2;
}

#contact .contact-save-chip:hover {
  border-color: rgba(143, 215, 255, 0.48);
  background: rgba(0, 91, 149, 0.38);
}

#contact .contact-save-chip img {
  display: block;
  width: 62px;
  height: 62px;
  padding: 4px;
  border-radius: 10px;
  background: #ffffff;
}

@media (max-width: 980px) {
  #contact .contact-actions-compact {
    align-items: flex-start;
  }
}

@media (max-width: 720px) {
  #contact .contact-actions-compact {
    display: grid;
    gap: 16px;
  }

  #contact .contact-save-chip {
    display: none;
  }
}

/* Contact section compact contact-card height
   Let the contact information card size to its content instead of matching the full map height. */
@media (min-width: 861px) {
  #contact .contact-split,
  #contact .contact-grid,
  #contact .contact-layout {
    align-items: start !important;
  }

  #contact .contact-card {
    height: auto !important;
    min-height: 0 !important;
    align-self: start !important;
  }
}

/* Contact map compact height after Save Contact card changes
   Keep the map at its normal size instead of stretching to the old equal-height card rule. */
@media (min-width: 861px) {
  #contact .contact-map,
  #contact .map-card {
    height: auto !important;
    min-height: 0 !important;
    align-self: start !important;
  }

  #contact .contact-map-frame,
  #contact .map-embed,
  #contact .map-frame,
  #contact .map-wrap {
    height: auto !important;
    min-height: 0 !important;
    flex: 0 0 auto !important;
  }

  #contact .contact-map iframe,
  #contact .map-card iframe,
  #contact iframe.contact-map-iframe {
    height: 390px !important;
    min-height: 390px !important;
  }
}

/* Contact section balanced compact layout after Save Contact QR chip
   Remove legacy equal-height/flex spacer behavior so the contact card and map each size naturally. */
@media (min-width: 861px) {
  #contact .contact-split,
  #contact .contact-grid,
  #contact .contact-layout {
    align-items: start !important;
  }

  #contact .contact-card {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
    align-self: start !important;
    padding: 32px !important;
  }

  #contact .contact-card h2 {
    margin-bottom: 16px !important;
  }

  #contact .contact-intro {
    margin-bottom: 0 !important;
  }

  #contact .contact-lines {
    margin: 24px 0 0 !important;
    gap: 18px 30px !important;
  }

  #contact .contact-actions-compact {
    margin-top: 26px !important;
    display: flex !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    gap: 20px !important;
  }

  #contact .contact-card .button-row,
  #contact .contact-card .contact-button-row {
    margin-top: 0 !important;
    padding-top: 0 !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
  }

  #contact .contact-map,
  #contact .map-card {
    height: auto !important;
    min-height: 0 !important;
    align-self: start !important;
  }

  #contact .contact-map iframe,
  #contact .map-card iframe,
  #contact iframe.contact-map-iframe {
    height: 350px !important;
    min-height: 350px !important;
  }
}

@media (max-width: 860px) {
  #contact .contact-card {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
  }

  #contact .contact-card .button-row,
  #contact .contact-card .contact-button-row {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  #contact .contact-actions-compact {
    margin-top: 24px !important;
  }
}


/* Contact section cleanup after direct vCard download
   Remove the on-page QR from the web contact card, keep action buttons side-by-side,
   and let the map stretch cleanly to the contact card height. */
@media (min-width: 861px) {
  #contact .contact-split,
  #contact .contact-grid,
  #contact .contact-layout {
    align-items: stretch !important;
  }

  #contact .contact-card {
    display: flex !important;
    flex-direction: column !important;
    height: auto !important;
    min-height: 0 !important;
    align-self: stretch !important;
    padding: 32px !important;
  }

  #contact .contact-actions-compact {
    margin-top: 28px !important;
    display: block !important;
  }

  #contact .contact-actions-compact .contact-button-row,
  #contact .contact-card .button-row,
  #contact .contact-card .contact-button-row {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 14px !important;
    margin: 0 !important;
    padding: 0 !important;
    justify-content: flex-start !important;
    align-items: center !important;
  }

  #contact .contact-card .contact-button-row .button {
    min-width: 138px;
    text-align: center;
    justify-content: center;
  }

  #contact .contact-save-chip {
    display: none !important;
  }

  #contact .contact-map,
  #contact .map-card {
    display: flex !important;
    flex-direction: column !important;
    height: auto !important;
    min-height: 0 !important;
    align-self: stretch !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  #contact .contact-map iframe,
  #contact .map-card iframe,
  #contact iframe.contact-map-iframe {
    flex: 1 1 auto !important;
    height: 100% !important;
    min-height: 0 !important;
  }

  #contact .contact-map > a,
  #contact .map-card > a {
    flex: 0 0 auto !important;
  }
}

@media (max-width: 860px) {
  #contact .contact-save-chip {
    display: none !important;
  }

  #contact .contact-actions-compact .contact-button-row,
  #contact .contact-card .button-row,
  #contact .contact-card .contact-button-row {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
    justify-content: flex-start !important;
    align-items: center !important;
  }
}

/* Contact section final compact balance after direct vCard cleanup
   Keep the map and contact card equal, but cap both at a shorter desktop height. */
@media (min-width: 861px) {
  #contact .contact-split,
  #contact .contact-grid,
  #contact .contact-layout {
    align-items: stretch !important;
  }

  #contact .contact-card,
  #contact .contact-map,
  #contact .map-card {
    height: 430px !important;
    min-height: 0 !important;
    box-sizing: border-box !important;
    align-self: stretch !important;
  }

  #contact .contact-card {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    padding: 30px !important;
    overflow: visible !important;
  }

  #contact .contact-card .eyebrow {
    margin-bottom: 14px !important;
  }

  #contact .contact-card h2 {
    margin-bottom: 16px !important;
    font-size: clamp(2.45rem, 4.1vw, 3.35rem) !important;
    line-height: 1.04 !important;
  }

  #contact .contact-intro {
    margin: 0 !important;
    line-height: 1.48 !important;
  }

  #contact .contact-lines {
    margin: 22px 0 0 !important;
    gap: 16px 30px !important;
  }

  #contact .contact-actions-compact {
    margin-top: 24px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 18px !important;
  }

  #contact .contact-card .button-row,
  #contact .contact-card .contact-button-row {
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    justify-content: flex-start !important;
    align-items: center !important;
    gap: 14px !important;
  }

  #contact .contact-map,
  #contact .map-card {
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    padding: 0 !important;
  }

  #contact .contact-map-frame,
  #contact .map-embed,
  #contact .map-frame,
  #contact .map-wrap {
    flex: 1 1 auto !important;
    height: auto !important;
    min-height: 0 !important;
  }

  #contact .contact-map iframe,
  #contact .map-card iframe,
  #contact iframe.contact-map-iframe {
    flex: 1 1 auto !important;
    height: 100% !important;
    min-height: 0 !important;
  }

  #contact .contact-map > a,
  #contact .map-card > a,
  #contact .directions-link,
  #contact .map-actions {
    flex: 0 0 auto !important;
  }
}

/* Contact section compact override - remove forced short-height overflow and tighten content spacing */
@media (min-width: 861px) {
  #contact.section,
  section#contact {
    padding-top: 64px !important;
    padding-bottom: 64px !important;
  }

  #contact .contact-split,
  #contact .contact-grid,
  #contact .contact-layout {
    align-items: stretch !important;
    gap: 34px !important;
  }

  #contact .contact-card,
  #contact .contact-map,
  #contact .map-card {
    height: auto !important;
    min-height: 0 !important;
    box-sizing: border-box !important;
    align-self: stretch !important;
  }

  #contact .contact-card {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    padding: 28px 30px !important;
    overflow: visible !important;
  }

  #contact .contact-card .eyebrow {
    margin: 0 0 10px !important;
  }

  #contact .contact-card h2 {
    font-size: clamp(2.25rem, 3.5vw, 3.05rem) !important;
    line-height: 1.04 !important;
    margin: 0 0 18px !important;
  }

  #contact .contact-intro {
    margin: 0 0 22px !important;
    max-width: 620px !important;
    line-height: 1.48 !important;
  }

  #contact .contact-lines {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 14px 28px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  #contact .contact-lines p {
    margin: 0 !important;
    line-height: 1.42 !important;
  }

  #contact .contact-actions-compact {
    margin-top: 24px !important;
    padding: 0 !important;
    display: block !important;
  }

  #contact .contact-actions-compact .contact-button-row,
  #contact .contact-card .button-row,
  #contact .contact-card .contact-button-row {
    position: static !important;
    right: auto !important;
    bottom: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 14px !important;
    justify-content: flex-start !important;
    align-items: center !important;
  }

  #contact .contact-card .contact-button-row .button {
    min-width: 138px !important;
    justify-content: center !important;
    text-align: center !important;
  }

  #contact .contact-save-chip {
    display: none !important;
  }

  #contact .contact-map,
  #contact .map-card {
    display: flex !important;
    flex-direction: column !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  #contact .contact-map-frame,
  #contact .map-embed,
  #contact .map-frame,
  #contact .map-wrap {
    flex: 1 1 auto !important;
    height: auto !important;
    min-height: 0 !important;
  }

  #contact .contact-map iframe,
  #contact .map-card iframe,
  #contact iframe.contact-map-iframe {
    display: block !important;
    width: 100% !important;
    flex: 1 1 auto !important;
    height: 100% !important;
    min-height: 300px !important;
    border: 0 !important;
  }

  #contact .contact-map > a,
  #contact .map-card > a,
  #contact .directions-link,
  #contact .map-actions {
    flex: 0 0 auto !important;
  }
}

@media (max-width: 860px) {
  #contact .contact-card,
  #contact .contact-map,
  #contact .map-card {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  #contact .contact-card .button-row,
  #contact .contact-card .contact-button-row {
    position: static !important;
    margin-top: 0 !important;
  }
}

/* Contact section tighter final layout
   Compress the actual content instead of forcing a shorter card height. */
@media (min-width: 861px) {
  #contact.section,
  section#contact {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }

  #contact .contact-split,
  #contact .contact-grid,
  #contact .contact-layout {
    align-items: stretch !important;
    gap: 34px !important;
  }

  #contact .contact-card {
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-auto-rows: auto !important;
    align-content: start !important;
    height: auto !important;
    min-height: 0 !important;
    align-self: stretch !important;
    padding: 26px 30px !important;
    overflow: visible !important;
  }

  #contact .contact-card .eyebrow {
    margin: 0 0 8px !important;
    line-height: 1.1 !important;
  }

  #contact .contact-card h2 {
    font-size: clamp(2rem, 3vw, 2.65rem) !important;
    line-height: 1.03 !important;
    margin: 0 0 14px !important;
    max-width: 620px !important;
  }

  #contact .contact-intro {
    margin: 0 0 18px !important;
    max-width: 620px !important;
    line-height: 1.42 !important;
    font-size: 1rem !important;
  }

  #contact .contact-lines {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px 26px !important;
    margin: 0 0 18px !important;
    padding: 0 !important;
  }

  #contact .contact-lines p {
    margin: 0 !important;
    line-height: 1.35 !important;
  }

  #contact .contact-actions-compact {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  #contact .contact-actions-compact .contact-button-row,
  #contact .contact-card .button-row,
  #contact .contact-card .contact-button-row {
    position: static !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 14px !important;
    margin: 0 !important;
    padding: 0 !important;
    justify-content: flex-start !important;
    align-items: center !important;
  }

  #contact .contact-card .contact-button-row .button {
    min-width: 136px !important;
    justify-content: center !important;
    text-align: center !important;
  }

  #contact .contact-save-chip {
    display: none !important;
  }

  #contact .contact-map,
  #contact .map-card {
    display: flex !important;
    flex-direction: column !important;
    height: auto !important;
    min-height: 0 !important;
    align-self: stretch !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  #contact .contact-map-frame,
  #contact .map-embed,
  #contact .map-frame,
  #contact .map-wrap {
    flex: 1 1 auto !important;
    height: auto !important;
    min-height: 0 !important;
  }

  #contact .contact-map iframe,
  #contact .map-card iframe,
  #contact iframe.contact-map-iframe {
    display: block !important;
    width: 100% !important;
    flex: 1 1 auto !important;
    height: 100% !important;
    min-height: 0 !important;
    border: 0 !important;
  }

  #contact .contact-map > a,
  #contact .map-card > a,
  #contact .directions-link,
  #contact .map-actions {
    flex: 0 0 auto !important;
    min-height: 48px !important;
    padding: 10px 16px !important;
  }
}

/* Contact section true compact override
   Remove inherited grid gaps and let the compact contact content define the shared card height. */
@media (min-width: 861px) {
  #contact.section,
  section#contact {
    padding-top: 42px !important;
    padding-bottom: 42px !important;
  }

  #contact .contact-split,
  #contact .contact-grid,
  #contact .contact-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr) !important;
    gap: 34px !important;
    align-items: stretch !important;
  }

  #contact .contact-card {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    align-content: start !important;
    gap: 0 !important;
    row-gap: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    align-self: stretch !important;
    padding: 30px 32px !important;
    overflow: visible !important;
  }

  #contact .contact-card .eyebrow {
    margin: 0 0 14px !important;
    line-height: 1.1 !important;
  }

  #contact .contact-card h2 {
    font-size: clamp(2.15rem, 3.35vw, 3rem) !important;
    line-height: 1.03 !important;
    margin: 0 0 18px !important;
    max-width: 620px !important;
  }

  #contact .contact-intro {
    margin: 0 0 26px !important;
    max-width: 620px !important;
    line-height: 1.45 !important;
    font-size: 1rem !important;
  }

  #contact .contact-lines {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 12px 34px !important;
    margin: 0 0 28px !important;
    padding: 0 !important;
  }

  #contact .contact-lines p {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.38 !important;
  }

  #contact .contact-actions-compact {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  #contact .contact-actions-compact .contact-button-row,
  #contact .contact-card .button-row,
  #contact .contact-card .contact-button-row {
    position: static !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 14px !important;
    margin: 0 !important;
    padding: 0 !important;
    justify-content: flex-start !important;
    align-items: center !important;
  }

  #contact .contact-card .button-row .button,
  #contact .contact-card .contact-button-row .button {
    min-width: 140px !important;
    justify-content: center !important;
    text-align: center !important;
  }

  #contact .contact-save-chip {
    display: none !important;
  }

  #contact .contact-map,
  #contact .map-card,
  #contact .contact-map-frame {
    display: flex !important;
    flex-direction: column !important;
    height: auto !important;
    min-height: 0 !important;
    align-self: stretch !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  #contact .contact-map-frame,
  #contact .map-embed,
  #contact .map-frame,
  #contact .map-wrap {
    flex: 1 1 auto !important;
    height: auto !important;
    min-height: 0 !important;
  }

  #contact .contact-map iframe,
  #contact .map-card iframe,
  #contact iframe.contact-map-iframe {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    flex: 1 1 auto !important;
    border: 0 !important;
  }

  #contact .contact-map > a,
  #contact .map-card > a,
  #contact .directions-link,
  #contact .map-actions {
    flex: 0 0 auto !important;
    min-height: 46px !important;
    padding: 10px 16px !important;
  }
}

/* Contact action buttons: expand evenly on desktop and stack full-width on handhelds */
#contact .contact-actions-compact .contact-button-row,
#contact .contact-card .button-row,
#contact .contact-card .contact-button-row {
  width: 100% !important;
  display: flex !important;
  gap: 14px !important;
}

#contact .contact-card .button-row .button,
#contact .contact-card .contact-button-row .button,
#contact .contact-actions-compact .contact-button-row .button {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  width: auto !important;
  justify-content: center !important;
  text-align: center !important;
}

@media (max-width: 560px) {
  #contact .contact-actions-compact .contact-button-row,
  #contact .contact-card .button-row,
  #contact .contact-card .contact-button-row {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  #contact .contact-card .button-row .button,
  #contact .contact-card .contact-button-row .button,
  #contact .contact-actions-compact .contact-button-row .button {
    width: 100% !important;
    flex: 0 0 auto !important;
  }
}

/* Contact action buttons: equal full-row desktop buttons, stacked full-width on handhelds */
#contact .contact-actions-compact .contact-button-row,
#contact .contact-card .button-row,
#contact .contact-card .contact-button-row {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  width: 100% !important;
  max-width: none !important;
  gap: 14px !important;
  align-items: stretch !important;
  justify-content: stretch !important;
}

#contact .contact-card .button-row .button,
#contact .contact-card .contact-button-row .button,
#contact .contact-actions-compact .contact-button-row .button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  white-space: nowrap !important;
  text-align: center !important;
  line-height: 1.15 !important;
  padding-left: 16px !important;
  padding-right: 16px !important;
}

@media (max-width: 560px) {
  #contact .contact-actions-compact .contact-button-row,
  #contact .contact-card .button-row,
  #contact .contact-card .contact-button-row {
    grid-template-columns: 1fr !important;
  }

  #contact .contact-card .button-row .button,
  #contact .contact-card .contact-button-row .button,
  #contact .contact-actions-compact .contact-button-row .button {
    width: 100% !important;
  }
}

/* Contact buttons: make the action container span the card, then split evenly */
#contact .contact-actions-compact {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
}

#contact .contact-actions-compact .contact-button-row,
#contact .contact-card .contact-actions-compact .button-row,
#contact .contact-card .contact-actions-compact .contact-button-row {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  width: 100% !important;
  max-width: 100% !important;
  gap: 14px !important;
  align-items: stretch !important;
}

#contact .contact-actions-compact .button,
#contact .contact-actions-compact .contact-button-row .button {
  display: inline-flex !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  justify-content: center !important;
  align-items: center !important;
  white-space: nowrap !important;
}

@media (max-width: 560px) {
  #contact .contact-actions-compact .contact-button-row,
  #contact .contact-card .contact-actions-compact .button-row,
  #contact .contact-card .contact-actions-compact .contact-button-row {
    grid-template-columns: 1fr !important;
  }
}


/* Public video gallery */
.video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.video-card{overflow:hidden;margin:0;border:1px solid rgba(6,22,43,.12);border-radius:22px;background:#fff;box-shadow:0 18px 42px rgba(6,22,43,.10)}.video-card video{display:block;width:100%;aspect-ratio:16/9;background:#06101b}.video-card figcaption{display:grid;gap:4px;padding:16px 18px 18px}.video-card strong{color:var(--navy)}.video-card span{color:#31465c;line-height:1.45}@media(max-width:760px){.video-grid{grid-template-columns:1fr}}

/* Optional reusable service-area video background */
.service-areas-section.has-service-area-video{position:relative;overflow:hidden;color:#fff;background-image:var(--service-area-bg-image);background-size:cover;background-position:var(--service-area-bg-position,center center)}.service-area-bg-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.service-areas-section.has-service-area-video::after{content:"";position:absolute;inset:0;background:rgba(4,18,34,.72);z-index:1;pointer-events:none}.service-areas-section.has-service-area-video>.wrap{position:relative;z-index:2}.service-areas-section.has-service-area-video .service-areas-copy h2,.service-areas-section.has-service-area-video .service-areas-copy p:not(.eyebrow){color:#fff}@media(max-width:768px),(prefers-reduced-motion:reduce){.service-area-bg-video{display:none}}

/* Footer social links */
.footer-social{display:flex;align-items:center;justify-content:center;gap:10px;margin-inline:auto}
.footer-social-link{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:50%;color:var(--text);background:rgba(255,255,255,.04);transition:transform .18s ease,border-color .18s ease,background .18s ease,color .18s ease}
.footer-social-link:hover,.footer-social-link:focus-visible{transform:translateY(-2px);border-color:var(--accent);background:rgba(255,255,255,.09);color:var(--accent)}
.footer-social-link svg{width:19px;height:19px;fill:currentColor;stroke:currentColor;stroke-width:1.8}
.footer-social-link path{stroke:none}
.footer-social-instagram svg rect,.footer-social-instagram svg circle:not(.social-icon-fill){fill:none}
.footer-social-instagram .social-icon-fill{fill:currentColor;stroke:none}
@media (max-width:700px){.footer-wrap{justify-content:center;text-align:center}.footer-wrap>span{flex:1 1 100%}.footer-social{order:2;flex-basis:100%}}
