/* 3D delivery-map hero (see hero3d.js). Hidden until the first 3D frame is drawn. */
.hero3d-stage {
  position: absolute;
  inset: 0 2% 0 -10%;
  z-index: 2;
  transform: translateY(-8%);
  opacity: 0;
  transition: opacity 700ms ease;
  pointer-events: none;
}
.hero3d-stage canvas { display: block; width: 100%; height: 100%; }
.hero-media.is-3d .hero3d-stage { opacity: 1; }
.hero-media > .hero-illustration { transition: opacity 500ms ease, transform 500ms ease; }
.hero-media.is-3d > .hero-illustration { opacity: 0; transform: scale(0.96); }
.hero-media.is-3d::before { opacity: 0.45; }

.hero3d-labels { position: absolute; inset: 0; pointer-events: none; }
.hero3d-labels .tag {
  position: absolute;
  left: 0;
  top: 0;
  transform: translate(-50%, -135%);
  padding: 3px 9px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  color: var(--blue-950, #071d49);
  font: 700 0.72rem/1.3 var(--font-body, Inter, sans-serif);
  white-space: nowrap;
  box-shadow: 0 6px 16px rgba(3, 12, 34, 0.3);
}
.hero3d-labels .tag.side-r { transform: translate(10px, -50%); }
.hero3d-labels .tag.side-l { transform: translate(calc(-100% - 10px), -50%); }
.hero3d-labels .tag.side-b { transform: translate(-50%, 45%); }
.hero3d-labels .tag.hq { z-index: 2; background: #f0c85d; font-size: 0.78rem; transform: translate(8px, -50%); }
.hero3d-labels .tag small { display: block; font-weight: 600; font-size: 0.66rem; color: #8a5a00; }
.hero3d-labels .tag.state {
  background: transparent;
  box-shadow: none;
  color: rgba(255, 255, 255, 0.55);
  font: 800 0.74rem var(--font-display, Sora, sans-serif);
  letter-spacing: 0.12em;
  transform: translate(-50%, -50%);
}
@media (max-width: 980px) { .hero3d-stage { display: none; } }
