/* Nabtech contact map · v6. Scoped to Contact only.
   Dark and light surfaces deliberately match .contact-section.
   Uses CSS 3D motion, no heavy rendering libraries or image assets. */
body.page-contact .location-shell {
  --loc-text: #f1f9ff;
  --loc-muted: #b7cedf;
  --loc-label: #94f0d0;
  --loc-border: rgba(158,210,224,.29);
  --loc-surface: #14253b;
  --loc-lower: #101f33;
  position: relative;
  max-width: 1330px;
  padding-top: clamp(60px,7vw,104px);
  margin-top: clamp(64px,7vw,120px);
  isolation: isolate;
  scroll-margin-top: 120px;
  border-top: 1px solid rgba(159,204,229,.16);
  color: var(--loc-text);
}
body.page-contact .location-shell *,
body.page-contact .location-shell *::before,
body.page-contact .location-shell *::after {box-sizing:border-box}
body.page-contact .location-intro {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(200px,305px);
  align-items:center;
  gap:clamp(24px,5vw,90px);
  max-width:1100px;
  margin:0 auto 28px;
}
body.page-contact .location-intro-copy {position:relative;z-index:1;min-width:0}
body.page-contact .location-eyebrow {color:var(--loc-label);letter-spacing:.17em}
body.page-contact .location-intro h2 {
  font-size:clamp(43px,5.4vw,77px);
  line-height:1.13;
  letter-spacing:-.062em;
  font-weight:800;
  margin:23px 0 24px;
  color:var(--loc-text);
  overflow-wrap:normal;
}
body.page-contact .location-intro h2 em {
  font-style:normal;
  color:#9cebc9;
  background:linear-gradient(120deg,#a9ffd0,#7adad9 63%,#bdcafb);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
}
body.page-contact .location-intro p {
  color:var(--loc-muted);
  font-size:clamp(14px,1.2vw,17px);
  line-height:1.85;
  max-width:660px;
  margin:0;
}
body.page-contact .location-city-line {
  display:flex;align-items:center;flex-wrap:wrap;gap:10px;
  color:var(--loc-label);
  font-weight:800;letter-spacing:.16em;font-size:10px;
  margin-top:29px;
}
body.page-contact .location-city-line>span:not(.location-presence-dot){opacity:.42}
body.page-contact .location-presence-dot {
  display:inline-block;width:9px;height:9px;flex:none;border-radius:50%;
  background:#93f4bf;box-shadow:0 0 0 5px rgba(126,240,196,.11),0 0 15px rgba(126,240,196,.65);
  animation:nb-loc-beacon 3.5s ease-in-out infinite;
}
/* Real-time CSS 3D rings + pointer tilt: presentation only, never over the map. */
body.page-contact .location-orb {
  position:relative;width:min(100%,280px);aspect-ratio:1;
  margin-inline:auto;perspective:950px;
  transform:perspective(950px) rotateX(0deg) rotateY(0deg);
  transform-style:preserve-3d;will-change:transform;
  transition:transform .35s ease;
  display:grid;place-items:center;
  filter:drop-shadow(0 18px 40px rgba(29,136,158,.12));
}
body.page-contact .location-orb-grid {
  position:absolute;inset:2%;border-radius:50%;
  background:radial-gradient(circle at 50% 50%,rgba(73,190,184,.18),transparent 64%),
             repeating-radial-gradient(circle,transparent 0 31px,rgba(165,228,238,.08) 32px 33px);
  border:1px dashed rgba(125,202,222,.19);
}
body.page-contact .location-orbit-ring {
  position:absolute;inset:13%;border-radius:50%;
  border:1px solid rgba(135,233,228,.72);
  transform-style:preserve-3d;
  box-shadow:0 0 18px rgba(84,197,222,.17),inset 0 0 12px rgba(84,197,222,.13);
  animation:nb-loc-ring 17s linear infinite;
}
body.page-contact .location-orbit-ring--two {
  inset:2%;border-color:rgba(154,187,255,.56);
  animation:nb-loc-ring-back 24s linear infinite;
}
body.page-contact .location-orbit-ring--three {
  inset:26%;border-color:rgba(166,255,216,.65);
  animation:nb-loc-ring 11s linear reverse infinite;
}
body.page-contact .location-orb-core {
  position:relative;width:103px;height:103px;z-index:2;
  display:grid;place-items:center;
  border-radius:30px;
  transform:translateZ(44px) rotate(-8deg);
  background:linear-gradient(145deg,rgba(148,252,213,.36),rgba(17,103,141,.86) 65%,#102a47);
  color:#dcfff7;
  font-size:38px;
  border:1px solid rgba(197,252,243,.74);
  box-shadow:0 19px 54px rgba(3,19,37,.36),0 0 50px rgba(72,210,198,.2),inset 0 0 27px rgba(161,255,248,.26);
  animation:nb-loc-float 6s ease-in-out infinite;
}
body.page-contact .location-orb-caption {
  position:absolute;bottom:7%;left:50%;transform:translateX(-50%) translateZ(15px);
  white-space:nowrap;color:var(--loc-label);font-size:10px;font-weight:730;letter-spacing:.17em;
}
body.page-contact .location-orb-caption b{font-size:10px;color:var(--loc-text)}
body.page-contact .location-map-frame {
  position:relative;
  z-index:1;
  width:min(100%,1100px);
  margin:0 auto;
  border-radius:28px;
  overflow:hidden;
  padding:7px;
  border:1px solid var(--loc-border);
  background:linear-gradient(138deg,rgba(123,219,217,.25),rgba(61,117,181,.18) 38%,rgba(22,42,70,.22) 70%,rgba(128,236,186,.27));
  box-shadow:0 35px 100px rgba(1,13,29,.30),0 0 48px rgba(76,204,208,.06);
  transition:box-shadow .35s,border-color .35s;
}
body.page-contact .location-map-frame::before {
  content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;
  background:linear-gradient(105deg,transparent 17%,rgba(195,247,250,.06) 36%,transparent 53%);
  background-size:210% 100%;animation:nb-loc-glimmer 10s linear infinite;
}
body.page-contact .location-map-frame:hover {
  border-color:rgba(148,238,212,.62);
  box-shadow:0 40px 110px rgba(1,13,29,.32),0 0 50px rgba(89,226,214,.14);
}
body.page-contact .location-map-topline {
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:15px clamp(14px,2.3vw,26px) 17px;
  background:#0c1e32;
  border-radius:21px 21px 0 0;
  color:#c8e7ed;
}
body.page-contact .location-map-live,
body.page-contact .location-map-topline-right {
  display:inline-flex;align-items:center;gap:13px;
  color:#b5ebd5;font-size:10px;font-weight:800;letter-spacing:.17em;
}
body.page-contact .location-map-topline-right{color:#92b5ce;font-size:9px}
body.page-contact .location-map-topline-right>span{color:#a7f4d4}
body.page-contact .location-map-window {width:100%;overflow:hidden;background:#dce9f0;line-height:0}
body.page-contact .location-map-window iframe {
  display:block!important;
  border:0!important;
  width:100%!important;
  max-width:none!important;
  min-width:100%!important;
  height:550px!important;
  min-height:550px!important;
  border-radius:0!important;
  filter:saturate(.95) contrast(1.03);
}
body.page-contact .location-map-infobar {
  display:flex;align-items:center;gap:19px;
  min-height:120px;
  padding:22px clamp(16px,2.7vw,33px);
  background:linear-gradient(116deg,#12263e,#0e2034);
  border-radius:0 0 21px 21px;
  border-top:1px solid rgba(155,216,225,.16);
}
body.page-contact .location-map-pin {
  display:grid;place-items:center;flex:none;width:51px;height:51px;
  border:1px solid rgba(139,242,204,.36);
  border-radius:16px;background:rgba(129,230,199,.09);
  color:#9dffdb;font-size:19px;
}
body.page-contact .location-map-address {flex:1;min-width:0;display:grid;gap:5px}
body.page-contact .location-map-address span {
  font-size:10px;font-weight:850;letter-spacing:.13em;color:#a4f1d5;
}
body.page-contact .location-map-address strong {
  font-size:clamp(14px,1.5vw,18px);line-height:1.35;
  color:#f1fbff;overflow-wrap:break-word;
}
body.page-contact .location-map-address small {
  font-size:12px;line-height:1.5;color:#b1cadd;
}
body.page-contact .location-directions {
  display:inline-flex;align-items:center;gap:12px;
  flex:none;align-self:center;
  color:#afffe2;font-size:12px;font-weight:750;
  border-bottom:1px solid rgba(163,252,221,.55);padding:8px 0 10px;
  transition:gap .2s,color .2s;
}
body.page-contact .location-directions:hover{gap:17px;color:white}
body.page-contact .location-bottom-note {
  width:min(100%,1100px);
  margin:25px auto 0;
  display:grid;grid-template-columns:1fr 1fr;gap:16px;
}
body.page-contact .location-bottom-note p {
  display:flex;gap:12px;align-items:flex-start;
  margin:0;padding:16px 19px;border:1px solid var(--loc-border);
  border-radius:13px;
  background:rgba(148,212,225,.055);
  color:var(--loc-muted);
  font-size:12px;line-height:1.7;
}
body.page-contact .location-bottom-note i{color:var(--loc-label);margin-top:2px;flex:none}
body.page-contact .location-bottom-note strong{color:var(--loc-text);font-weight:800}
/* Same pale canvas as the contact form, not a separate navy section. */
:root[data-theme="light"] body.page-contact .location-shell {
  --loc-text:#17334c;
  --loc-muted:#4e6579;
  --loc-label:#13746c;
  --loc-border:rgba(47,102,123,.23);
  --loc-surface:#eaf3f9;
  --loc-lower:#f0f7fa;
  border-top-color:#c7dae6;
}
:root[data-theme="light"] body.page-contact .location-intro h2 {color:#162f49}
:root[data-theme="light"] body.page-contact .location-intro h2 em {
  background:linear-gradient(112deg,#0c7773,#146a97 71%,#405ea7);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
:root[data-theme="light"] body.page-contact .location-map-frame {
  background:linear-gradient(145deg,rgba(124,194,201,.28),rgba(132,170,214,.19),rgba(134,211,190,.3));
  box-shadow:0 30px 84px rgba(38,75,103,.13),0 0 40px rgba(60,150,150,.04);
}
:root[data-theme="light"] body.page-contact .location-map-frame:hover {box-shadow:0 30px 84px rgba(38,75,103,.19)}
:root[data-theme="light"] body.page-contact .location-map-topline {
  background:#ebf4fa;
  color:#244e68;
  border:1px solid #cfdee8;
  border-bottom:0;
}
:root[data-theme="light"] body.page-contact .location-map-live{color:#1b6669}
:root[data-theme="light"] body.page-contact .location-map-topline-right{color:#527089}
:root[data-theme="light"] body.page-contact .location-map-topline-right>span{color:#168577}
:root[data-theme="light"] body.page-contact .location-map-infobar {
  background:linear-gradient(120deg,#f5fbff,#eaf5fa);
  border:1px solid #cfdee8;border-top:0;
}
:root[data-theme="light"] body.page-contact .location-map-pin {color:#147770;background:#dff6ef;border-color:#b6dfd1}
:root[data-theme="light"] body.page-contact .location-map-address span {color:#136e65}
:root[data-theme="light"] body.page-contact .location-map-address strong {color:#1b3850}
:root[data-theme="light"] body.page-contact .location-map-address small {color:#516c82}
:root[data-theme="light"] body.page-contact .location-directions {color:#156a74;border-color:#80bbb8}
:root[data-theme="light"] body.page-contact .location-directions:hover{color:#063e56}
:root[data-theme="light"] body.page-contact .location-bottom-note p {background:rgba(255,255,255,.56)}
:root[data-theme="light"] body.page-contact .location-orb {filter:drop-shadow(0 18px 25px rgba(25,119,140,.12))}
:root[data-theme="light"] body.page-contact .location-orb-grid {border-color:rgba(28,119,141,.3)}
:root[data-theme="light"] body.page-contact .location-orbit-ring {border-color:rgba(12,133,149,.6)}
:root[data-theme="light"] body.page-contact .location-orbit-ring--two {border-color:rgba(78,95,173,.46)}
:root[data-theme="light"] body.page-contact .location-orb-caption b {color:#17415b}
@keyframes nb-loc-beacon {0%,100%{box-shadow:0 0 0 4px rgba(126,240,196,.10),0 0 13px rgba(126,240,196,.45)}50%{box-shadow:0 0 0 9px rgba(126,240,196,0),0 0 22px rgba(126,240,196,.8)}}
@keyframes nb-loc-ring {from{transform:rotateX(65deg) rotateZ(0deg)}to{transform:rotateX(65deg) rotateZ(360deg)}}
@keyframes nb-loc-ring-back {from{transform:rotateY(67deg) rotateZ(360deg)}to{transform:rotateY(67deg) rotateZ(0deg)}}
@keyframes nb-loc-float {0%,100%{transform:translateZ(44px) translateY(0) rotate(-8deg)}50%{transform:translateZ(44px) translateY(-9px) rotate(-4deg)}}
@keyframes nb-loc-glimmer {from{background-position:200% 0}to{background-position:-100% 0}}
@media(max-width:900px) {
  body.page-contact .location-intro{grid-template-columns:minmax(0,1fr) 210px;gap:22px}
  body.page-contact .location-orb{max-width:210px}
  body.page-contact .location-map-window iframe{height:480px!important;min-height:480px!important}
}
@media(max-width:640px) {
  body.page-contact .location-shell{padding-top:53px;margin-top:70px}
  body.page-contact .location-intro{grid-template-columns:1fr;gap:5px;margin-bottom:24px}
  body.page-contact .location-intro h2{font-size:clamp(36px,9.6vw,54px);line-height:1.18;margin:18px 0}
  body.page-contact .location-intro p{font-size:13px}
  body.page-contact .location-city-line{font-size:8px;gap:7px;margin-top:21px}
  body.page-contact .location-orb{width:155px;height:155px;margin:0 0 0 auto}
  body.page-contact .location-orb-core{width:64px;height:64px;border-radius:21px;font-size:24px}
  body.page-contact .location-orb-caption{font-size:8px}
  body.page-contact .location-map-frame{border-radius:20px;padding:5px}
  body.page-contact .location-map-topline{gap:8px;padding:13px;border-radius:15px 15px 0 0}
  body.page-contact .location-map-live{gap:8px;font-size:8px;letter-spacing:.1em}
  body.page-contact .location-map-topline-right{font-size:7px;letter-spacing:.04em}
  body.page-contact .location-map-window iframe{height:375px!important;min-height:375px!important}
  body.page-contact .location-map-infobar{align-items:flex-start;flex-wrap:wrap;gap:11px;padding:19px 14px;border-radius:0 0 15px 15px}
  body.page-contact .location-map-pin{width:42px;height:42px;border-radius:13px;font-size:16px}
  body.page-contact .location-map-address{flex:1 1 calc(100% - 60px)}
  body.page-contact .location-map-address strong{font-size:14px}
  body.page-contact .location-directions{margin-left:53px;font-size:12px}
  body.page-contact .location-bottom-note{grid-template-columns:1fr;gap:8px}
  body.page-contact .location-bottom-note p{padding:13px 14px}
}
@media(prefers-reduced-motion:reduce) {
  body.page-contact .location-shell *,body.page-contact .location-shell *::before,body.page-contact .location-shell *::after{animation:none!important;transition:none!important}
  body.page-contact .location-orb{will-change:auto}
}

/* Preserve the form's pale background across desktop breakpoints in light mode. */
:root[data-theme="light"] body.page-contact section.contact-section{
  background:#ebf3f9!important;
  color:#1b334b;
}

/* The map pictograms work even without the external icon font. */
body.page-contact .location-orb-core svg {width:52px;height:52px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 10px rgba(204,255,246,.35))}
body.page-contact .location-map-pin svg {width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:640px) {body.page-contact .location-orb-core svg{width:31px;height:31px}}
