.warehouse-presence-grid {
  display: grid;
  gap: 2.5rem;
}

.warehouse-city-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
}

.warehouse-city-button {
  min-height: 3.15rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  border-radius: 999px;
  background: var(--navy);
  color: var(--navy-foreground);
  border: 1px solid rgba(255, 255, 255, .12);
  box-shadow: 0 14px 26px rgba(9, 27, 49, .12);
  font-size: .94rem;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease;
}

.warehouse-city-button svg {
  color: var(--solar);
  flex: 0 0 auto;
}

.warehouse-city-button:hover {
  transform: translateY(-2px);
  background: var(--solar);
  color: var(--navy);
  box-shadow: var(--shadow-glow);
}

.warehouse-city-button:hover svg {
  color: currentColor;
}

.india-map-card {
  position: relative;
  width: 100%;
  max-width: 455px;
  margin-inline: auto;
  border-radius: 1.5rem;
  overflow: hidden;
  background:
    radial-gradient(circle at 74% 23%, rgba(249, 189, 1, .18), transparent 15%),
    radial-gradient(circle at 55% 82%, rgba(249, 189, 1, .16), transparent 14%),
    linear-gradient(135deg, rgba(0, 160, 91, .12), rgba(0, 160, 91, .06));
  border: 1px solid rgba(0, 160, 91, .14);
  box-shadow: var(--shadow-soft);
}

.india-map-card::after {
  content: "";
  position: absolute;
  inset: 1.15rem;
  border-radius: 1.5rem;
  border: 1px solid rgba(255, 255, 255, .72);
  pointer-events: none;
}

.india-map-card-image {
  max-width: 520px;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.india-map-card-image::after {
  display: none;
}

.india-map-image {
  display: block;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 22px 18px rgba(9, 27, 49, .16));
}

.india-map-svg {
  width: 100%;
  height: auto;
  display: block;
}

.india-map-bg {
  fill: rgba(235, 249, 241, .72);
}

.india-map-land {
  fill: url(#indiaMapFill);
  stroke: var(--solar);
  stroke-width: 2.7;
  stroke-linejoin: round;
}

.india-map-region-line {
  fill: none;
  stroke: rgba(9, 27, 49, .14);
  stroke-width: 1.2;
  stroke-dasharray: 5 7;
}

.india-map-islands circle {
  fill: #d9ecff;
  stroke: var(--solar);
  stroke-width: 1.4;
}

.warehouse-pin {
  cursor: pointer;
  outline: none;
}

.warehouse-pin-pulse {
  fill: var(--solar);
  opacity: .28;
  animation: warehouse-map-pulse 2.6s ease-out infinite;
}

.warehouse-pin-dot {
  fill: var(--solar);
  stroke: #ffffff;
  stroke-width: 2.2;
  filter: drop-shadow(0 7px 8px rgba(9, 27, 49, .22));
}

.warehouse-pin-core {
  fill: var(--navy);
}

.warehouse-pin-label {
  font: 700 12px "Inter", ui-sans-serif, system-ui, sans-serif;
  fill: var(--navy);
  paint-order: stroke;
  stroke: rgba(255, 255, 255, .92);
  stroke-width: 4px;
  stroke-linejoin: round;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity .18s ease, transform .18s ease;
  pointer-events: none;
}

.warehouse-pin:hover .warehouse-pin-label,
.warehouse-pin:focus .warehouse-pin-label {
  opacity: 1;
  transform: translateY(0);
}

@keyframes warehouse-map-pulse {
  0% { transform: scale(.72); opacity: .45; }
  80%, 100% { transform: scale(1.85); opacity: 0; }
}

@media (max-width: 640px) {
  .warehouse-city-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .warehouse-city-button {
    min-height: 2.85rem;
    font-size: .84rem;
    padding-inline: .7rem;
  }

  .india-map-card {
    border-radius: 1.25rem;
  }

  .warehouse-pin-label {
    display: none;
  }
}

@media (min-width: 1024px) {
  .warehouse-presence-grid {
    grid-template-columns: minmax(0, 1.45fr) minmax(320px, .85fr);
  }
}
