/* Custom marker styling */

/* Company markers */
.company-marker {
  cursor: pointer;
}

.company-marker:hover {
  transform: scale(1.1);
  z-index: 1000;
}

/* POI clusters */
.poi-cluster {
  cursor: pointer;
  transform-origin: center;
  transition: transform 0.2s ease-in-out !important;
}

.poi-cluster:hover {
  transform: scale(1.1);
  z-index: 1000 !important;
}

/* Address clusters */
.address-cluster {
  cursor: pointer;
  transform-origin: center;
  transition: transform 0.2s ease-in-out !important;
}

.address-cluster:hover {
  transform: scale(1.1);
  z-index: 1000 !important;
}

/* Company separate clusters */
.company-cluster-separate {
  cursor: pointer;
  transform-origin: center;
  transition: transform 0.2s ease-in-out !important;
}

.company-cluster-separate:hover {
  transform: scale(1.1);
  z-index: 1000 !important;
}

.company-cluster-separate.marker-cluster-small {
  background-color: rgba(255, 140, 0, 0.8) !important; /* Orange for separate companies */
  border: 3px solid white !important;
  border-radius: 50% !important;
  width: 40px !important;
  height: 40px !important;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3) !important;
}

.company-cluster-separate.marker-cluster-medium {
  background-color: rgba(255, 140, 0, 0.8) !important; /* Orange for separate companies */
  border: 3px solid white !important;
  border-radius: 50% !important;
  width: 50px !important;
  height: 50px !important;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3) !important;
}

.company-cluster-separate.marker-cluster-large {
  background-color: rgba(255, 140, 0, 0.8) !important; /* Orange for separate companies */
  border: 3px solid white !important;
  border-radius: 50% !important;
  width: 60px !important;
  height: 60px !important;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3) !important;
}

.company-cluster-separate div {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
  color: white !important;
  font-weight: bold !important;
  font-size: 14px !important;
}

/* Spiderfy lines styling */
.marker-cluster-spiderfy-line {
  stroke: rgba(37, 99, 235, 0.6);
  stroke-width: 2;
  stroke-opacity: 0.8;
}

/* Custom cluster animations */
@keyframes cluster-bounce-in {
  0% {
    transform: scale(0.8);
    opacity: 0;
  }
  50% {
    transform: scale(1.1);
    opacity: 0.8;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}

.marker-cluster {
  animation: cluster-bounce-in 0.3s ease-out;
}

/* Override default cluster styles for better visibility */
.marker-cluster div {
  font-family: 'Helvetica Neue', Arial, sans-serif !important;
  text-shadow: 1px 1px 2px rgba(0,0,0,0.5) !important;
  font-weight: 700 !important;
  letter-spacing: 0.5px !important;
}

/* Responsive cluster sizing */
@media (max-width: 768px) {
  .marker-cluster div {
    font-size: 12px !important;
  }
}

/* High contrast mode support */
@media (prefers-contrast: high) {
  .marker-cluster {
    border: 3px solid #000 !important;
  }
  
  .marker-cluster div {
    color: #000 !important;
    text-shadow: none !important;
    font-weight: 900 !important;
  }
}