: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;gap:13px;text-decoration:none;font-weight:700;letter-spacing:.035em}.brand img{width:50px;height:auto}.nav{display:flex;gap:24px;color:var(--muted);font-size:.95rem}.nav a{text-decoration:none}.nav a:hover{color:#fff}
.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:16px 0}.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{width:44px}}


/* 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/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/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 - two-column bullet panel */
.platform-panel.bullet-panel {
  padding: 22px 24px;
  border: 1px solid rgba(6, 22, 43, 0.22);
  border-radius: 22px;
  background:
    linear-gradient(145deg, rgba(6, 22, 43, 0.94), rgba(9, 43, 76, 0.88));
  box-shadow: 0 26px 58px rgba(0, 0, 0, 0.22);
  backdrop-filter: blur(8px);
}

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

.platform-bullets ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.platform-bullets li {
  position: relative;
  margin: 0 0 13px;
  padding-left: 18px;
}

.platform-bullets li:last-child {
  margin-bottom: 0;
}

.platform-bullets li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: #41b7e8;
  box-shadow: 0 0 0 4px rgba(65, 183, 232, 0.15);
}

.platform-bullets strong {
  display: block;
  color: #ffffff;
  font-size: 0.96rem;
  line-height: 1.18;
  margin-bottom: 2px;
}

.platform-bullets span {
  display: block;
  color: rgba(255, 255, 255, 0.76);
  font-size: 0.86rem;
  line-height: 1.32;
}

@media (max-width: 620px) {
  .platform-bullets {
    grid-template-columns: 1fr;
  }
}


/* Hero rebuild - systems stack concept */
.hero {
  position: relative;
  min-height: 690px;
  display: flex;
  align-items: center;
  overflow: hidden;
  color: var(--white);
  background:
    radial-gradient(circle at 78% 28%, rgba(35, 170, 225, 0.26), transparent 30%),
    radial-gradient(circle at 18% 78%, rgba(45, 125, 185, 0.22), transparent 28%),
    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::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-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 {
  max-width: 720px;
}

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

.hero-copy .lead {
  max-width: 650px;
  color: rgba(255,255,255,.78);
  font-size: 1.18rem;
  line-height: 1.65;
}

.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: block;
  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: 8px;
}

.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}.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 real fix: contact section uses .contact-split, not .contact-grid */
@media (min-width: 861px) {
  .contact-split {
    align-items: stretch !important;
  }

  .contact-split > .contact-card,
  .contact-split > .contact-map {
    align-self: stretch !important;
  }

  .contact-split > .contact-map {
    display: flex !important;
    flex-direction: column !important;
  }

  .contact-split > .contact-map iframe {
    flex: 1 1 auto !important;
    height: auto !important;
    min-height: 0 !important;
  }

  .contact-split > .contact-map > a {
    flex: 0 0 auto !important;
  }
}

@media (max-width: 860px) {
  .contact-split > .contact-map iframe {
    height: 330px !important;
  }
}
