:root{
  --hspx-navy:#121A41;
  --hspx-blue:#2e5ea3;
  --hspx-red:rgba(153,1,1,.95);
  --hspx-white:#ffffff;
  --hspx-ink:#eff3ff;
  --hspx-muted:rgba(233,239,255,.76);
  --hspx-line:rgba(255,255,255,.12);
  --hspx-shadow:0 24px 70px rgba(3,8,24,.22);
  --hspx-radius:30px;
  --hspx-radius-sm:22px;
  --hspx-shell:min(1320px, calc(100% - 48px));
  --hspx-focus:0 0 0 4px rgba(255,255,255,.14);
}

.hspx-page{
  position:relative;
  overflow:hidden;
  color:var(--hspx-ink);
  background:
    radial-gradient(900px 340px at 8% 0%, rgba(46,94,163,.20), transparent 60%),
    radial-gradient(800px 300px at 92% 10%, rgba(153,1,1,.14), transparent 58%),
    linear-gradient(180deg, #071025 0%, #0a1431 52%, #081022 100%);
}

.hspx-page::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px),
    linear-gradient(180deg, rgba(255,255,255,.03) 1px, transparent 1px);
  background-size:54px 54px;
  opacity:.18;
  pointer-events:none;
}

.hspx-skip-link{
  position:absolute;
  left:-999px;
  top:14px;
  z-index:9999;
  background:var(--hspx-navy);
  color:#fff;
  padding:10px 14px;
  border-radius:12px;
}
.hspx-skip-link:focus{
  left:14px;
  outline:none;
  box-shadow:var(--hspx-focus);
}

.hspx-shell{
  width:var(--hspx-shell);
  margin:0 auto;
  position:relative;
  z-index:2;
}

.hspx-section{
  position:relative;
  padding:44px 0;
}

.hspx-floatEquip{
  position:absolute;
  z-index:1;
  width:clamp(110px, 10vw, 190px);
  object-fit:contain;
  filter:drop-shadow(0 18px 34px rgba(0,0,0,.30));
  opacity:.92;
  animation:hspxFloat 7s ease-in-out infinite;
  pointer-events:none;
}
.hspx-floatEquip--1{ top:5%; right:5%; transform:rotate(-10deg); }
.hspx-floatEquip--2{ top:34%; right:2%; width:clamp(100px, 8vw, 150px); animation-delay:1s; }
.hspx-floatEquip--3{ bottom:18%; left:2%; width:clamp(120px, 11vw, 190px); transform:rotate(8deg); animation-delay:2s; }
.hspx-floatEquip--4{ bottom:8%; right:22%; width:clamp(130px, 11vw, 210px); transform:rotate(-8deg); animation-delay:3s; }

@keyframes hspxFloat{
  0%,100%{ translate:0 0; }
  50%{ translate:0 -12px; }
}

.hspx-kicker{
  margin:0 0 10px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:rgba(255,255,255,.72);
}
.hspx-kicker--soft{ color:#9fc0ff; }

.hspx-branchWrap,
.hspx-galleryWrap{
  display:grid;
  grid-template-columns:1.02fr .98fr;
  gap:24px;
  align-items:stretch;
}

.hspx-branchInfo,
.hspx-mapCard,
.hspx-galleryCard,
.hspx-galleryIntro{
  position:relative;
  overflow:hidden;
  border:1px solid var(--hspx-line);
  background:linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.05));
  box-shadow:var(--hspx-shadow);
  backdrop-filter:blur(16px);
  border-radius:var(--hspx-radius);
}

.hspx-branchInfo::before,
.hspx-mapCard::before,
.hspx-galleryCard::before,
.hspx-galleryIntro::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,0));
  pointer-events:none;
}

.hspx-branchInfo,
.hspx-mapCard,
.hspx-galleryIntro,
.hspx-galleryCard{
  padding:28px;
}

.hspx-branchInfo h1,
.hspx-galleryIntro h2{
  margin:0;
  color:#fff;
  letter-spacing:-.03em;
}

.hspx-branchInfo h1{ font-size:clamp(34px, 3.2vw, 54px); line-height:.98; }
.hspx-galleryIntro h2{ font-size:clamp(30px, 2.8vw, 46px); line-height:1.02; max-width:12ch; }

.hspx-lead,
.hspx-galleryIntro p{
  margin:18px 0 0;
  max-width:60ch;
  font-size:18px;
  line-height:1.75;
  color:var(--hspx-muted);
}

.hspx-contactStack{
  display:grid;
  gap:14px;
  margin-top:22px;
}

.hspx-contactRow{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:56px 1fr;
  gap:14px;
  align-items:start;
  padding:16px;
  border-radius:22px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  text-decoration:none;
}

.hspx-contactIcon{
  width:56px;
  height:56px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:18px;
  color:#fff;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
}
.hspx-contactIcon svg{ width:22px; height:22px; }

.hspx-contactRow strong{
  display:block;
  margin-bottom:6px;
  color:#fff;
  font-size:16px;
}
.hspx-contactRow small{
  margin:0;
  color:var(--hspx-muted);
  line-height:1.65;
}

.hspx-actionRow,
.hspx-mapActions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:22px;
}

.hspx-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:54px;
  padding:14px 20px;
  border-radius:18px;
  border:1px solid transparent;
  text-decoration:none;
  font-weight:800;
  transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease;
}
.hspx-btn:hover{ transform:translateY(-2px); }
.hspx-btn:focus{ outline:none; box-shadow:var(--hspx-focus); }

.hspx-btn--primary{
  color:#fff;
  background:linear-gradient(180deg, #24357b, #121A41 58%, #0c1432);
  box-shadow:0 14px 36px rgba(18,26,65,.34);
}
.hspx-btn--ghost{
  color:#fff;
  border-color:rgba(255,255,255,.16);
  background:rgba(255,255,255,.07);
}

.hspx-mapFrame{
  position:relative;
  overflow:hidden;
  border-radius:22px;
  border:1px solid rgba(255,255,255,.14);
  min-height:520px;
}
.hspx-mapFrame iframe{
  display:block;
  width:100%;
  height:100%;
  min-height:520px;
  border:0;
  filter:saturate(.95) contrast(1.02);
}

.hspx-galleryCard{
  display:grid;
  gap:16px;
}

.hspx-galleryViewport{
  overflow:hidden;
  border-radius:24px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(0,0,0,.18);
}

.hspx-galleryTrack{
  display:flex;
  transition:transform .6s cubic-bezier(.22,.85,.25,1);
}

.hspx-gallerySlide{
  flex:0 0 100%;
  margin:0;
}

.hspx-gallerySlide img{
  display:block;
  width:100%;
  height:min(58vw, 560px);
  min-height:380px;
  object-fit:cover;
}

.hspx-galleryMeta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}

.hspx-galleryMeta span{
  color:var(--hspx-muted);
  font-size:14px;
  font-weight:700;
}

.hspx-galleryDots{
  display:flex;
  align-items:center;
  gap:8px;
}

.hspx-galleryDots button{
  width:10px;
  height:10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.24);
  background:rgba(255,255,255,.16);
  cursor:pointer;
  padding:0;
}

.hspx-galleryDots button.is-active{
  background:#9fc0ff;
  border-color:#9fc0ff;
  transform:scale(1.12);
}

.hspx-reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .6s ease, transform .6s cubic-bezier(.22,.85,.25,1);
}
.hspx-reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}

@media (max-width: 1180px){
  .hspx-branchWrap,
  .hspx-galleryWrap{
    grid-template-columns:1fr;
  }

  .hspx-floatEquip--4{ right:10%; }
}

@media (max-width: 860px){
  .hspx-section{ padding:24px 0; }
  .hspx-floatEquip{
    width:82px;
    opacity:.75;
  }
  .hspx-floatEquip--1{ top:3%; right:-1%; }
  .hspx-floatEquip--2{ top:32%; right:-2%; }
  .hspx-floatEquip--3{ bottom:18%; left:-1%; }
  .hspx-floatEquip--4{ bottom:8%; right:8%; }

  .hspx-branchInfo,
  .hspx-mapCard,
  .hspx-galleryIntro,
  .hspx-galleryCard{
    padding:18px;
    border-radius:24px;
  }

  .hspx-branchInfo h1,
  .hspx-galleryIntro h2{
    font-size:clamp(30px, 9vw, 46px);
  }

  .hspx-lead,
  .hspx-galleryIntro p{
    font-size:16px;
    line-height:1.65;
  }

  .hspx-contactRow{
    grid-template-columns:48px 1fr;
    gap:12px;
    padding:14px;
    border-radius:18px;
  }

  .hspx-contactIcon{
    width:48px;
    height:48px;
    border-radius:16px;
  }

  .hspx-mapFrame,
  .hspx-mapFrame iframe{
    min-height:320px;
  }

  .hspx-gallerySlide img{
    min-height:260px;
    height:58vw;
  }

  .hspx-actionRow .hspx-btn,
  .hspx-mapActions .hspx-btn{
    width:100%;
  }

  .hspx-galleryMeta{
    flex-direction:column;
    align-items:flex-start;
  }
}

@media (max-width: 560px){
  .hspx-shell{ width:min(1320px, calc(100% - 24px)); }

  .hspx-floatEquip{
    width:68px;
    filter:drop-shadow(0 12px 22px rgba(0,0,0,.26));
  }

  .hspx-floatEquip--2,
  .hspx-floatEquip--4{ right:-4%; }

  .hspx-contactRow small,
  .hspx-galleryMeta span{
    font-size:14px;
  }

  .hspx-gallerySlide img{
    height:68vw;
    min-height:220px;
  }
}
