.mi-map-wrapper {
  margin: 1rem 0;
  overflow: hidden;
  display: inline-block;
}

.mi-map {
  position: relative;
  display: block;
  min-height: 150px;
  overflow: hidden;
  /* CSS variables for global colors */
  --mi-map-base-color: #227093;
  --mi-map-hover-color: #34ace0;
  --mi-map-link-color: #ff9f1a;
  --mi-map-offset-x-target: 0%;
  --mi-map-offset-y-target: 0%;
  --mi-map-offset-x-mobile-target: 0%;
  --mi-map-offset-y-mobile-target: 0%;
  --mi-map-offset-x: var(--mi-map-offset-x-target);
  --mi-map-offset-y: var(--mi-map-offset-y-target);
}

.mi-map svg {
  width: 100%;
  height: auto;
  display: block;
  /* SVG should maintain aspect ratio and fill container */
  object-fit: contain;
}

.mi-map svg #features {
  transform-origin: center;
  transform-box: fill-box;
  transform: translate(var(--mi-map-offset-x, 0%), var(--mi-map-offset-y, 0%)) scale(var(--mi-map-scale, 1));
  transition: transform 0.3s ease;
}

@media (max-width: 768px) {
  .mi-map {
    --mi-map-offset-x: var(--mi-map-offset-x-mobile-target);
    --mi-map-offset-y: var(--mi-map-offset-y-mobile-target);
  }
}

.mi-map svg path,
.mi-map svg polygon,
.mi-map svg g[id] {
  fill: var(--mi-map-base-color);
  transition: fill 0.25s ease;
}

.mi-map svg path:hover,
.mi-map svg polygon:hover,
.mi-map svg g[id]:hover {
  fill: var(--mi-map-hover-color);
}

.mi-map svg [data-has-link="true"],
.mi-map svg [data-has-link="true"] path,
.mi-map svg [data-has-link="true"] polygon,
.mi-map svg [data-has-link="true"] circle,
.mi-map svg [data-has-link="true"] rect,
.mi-map svg [data-has-link="true"] * {
  cursor: pointer !important;
  pointer-events: auto !important;
  fill: var(--mi-map-link-color);
}

.mi-map svg [data-has-link="true"]:hover,
.mi-map svg [data-has-link="true"]:hover path,
.mi-map svg [data-has-link="true"]:hover polygon,
.mi-map svg [data-has-link="true"]:hover circle,
.mi-map svg [data-has-link="true"]:hover rect,
.mi-map svg [data-has-link="true"]:hover * {
  fill: var(--mi-map-hover-color);
}

.mi-map-marker {
  position: absolute;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  text-align: center;
  color: #0b2b40;
  font-size: 0.85rem;
  cursor: pointer;
}

.mi-map-marker__icon {
  width: 22px;
  height: 22px;
  background: #ff793f;
  border-radius: 50% 50% 50% 0;
  position: relative;
  transform: rotate(-45deg);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
}

.mi-map-marker__icon::after {
  content: '';
  position: absolute;
  top: 4px;
  left: 4px;
  width: 14px;
  height: 14px;
  background: #fff;
  border-radius: 50%;
}

.mi-map-marker__label {
  background: rgba(255, 255, 255, 0.9);
  padding: 2px 6px;
  border-radius: 4px;
  border: 1px solid rgba(0, 0, 0, 0.1);
}

.mi-map-tooltip {
  position: absolute;
  background: rgba(0, 0, 0, 0.85);
  color: #fff;
  padding: 6px 12px;
  border-radius: 4px;
  font-size: 0.875rem;
  pointer-events: none;
  z-index: 1000;
  white-space: nowrap;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
  transform: translateY(-100%);
}

.mi-map-tooltip::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 10px;
  border: 5px solid transparent;
  border-top-color: rgba(0, 0, 0, 0.85);
}

@media (max-width: 768px) {
  .mi-map-marker {
    font-size: 0.75rem;
  }
  
  .mi-map-tooltip {
    font-size: 0.75rem;
    padding: 4px 8px;
  }
}

