/* =========================
   BASE
========================= */
body {
  margin: 0;
  font-family: Arial, sans-serif;
  color: #222;
}

.welcome-map-section {
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 20px;
  box-shadow: none;
}

.map-wrapper {
  position: relative;
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  border-radius: 16px;
  overflow: visible;
  background: transparent;
}

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

#markersLayer {
  position: absolute;
  inset: 0;
}


/* =========================
   HEADINGS
========================= */
.welcome-map-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;

  position: absolute;
  left: 58%;
  top: 90%;
  transform: translateX(-50%);
  z-index: 15;
  pointer-events: none;
  width: calc(100% - 40px);
}

.welcome-map-title {
  margin: 0;
}

.welcome-map-title.main {
  font-family: 'Caveat', cursive;
  font-size: 25px;
  color: #111;
  font-weight: 600;
  letter-spacing: 0.5px;
  opacity: 0.65;
}

.welcome-map-title.sub {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 14px;
  color: #777;
  opacity: 0.85;
  transform: translateY(10%);
}


/* =========================
   MARKERS
========================= */
.map-marker {
  position: absolute;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #118228;
  cursor: pointer;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 0 4px rgba(6, 110, 29, 0.2);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.map-marker:hover {
  transform: translate(-50%, -50%) scale(1.15);
  box-shadow: 0 0 0 6px rgba(4, 178, 57, 0.35);
}


/* =========================
   POPUP (Mini Preview Cards)
========================= */
.map-popup {
  position: absolute;
  width: 230px;
  max-width: calc(100vw - 32px);
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 12px 28px rgba(0,0,0,0.18);
  padding: 12px;
  z-index: 20;
}

.hidden {
  display: none;
}

.popup-close {
  position: absolute;
  top: 8px;
  right: 8px;
  border: none;
  background: transparent;
  font-size: 20px;
  cursor: pointer;
}


/* SLIDER */
.popup-slider {
  position: relative;
  margin-bottom: 10px;
}

.popup-image {
  width: 100%;
  height: 140px;
  object-fit: cover;
  border-radius: 10px;
  display: block;
}

.popup-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 22px;
  height: 22px;
  border: none;
  border-radius: 50%;
  background: rgba(219, 219, 219, 0.685);
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  cursor: pointer;
  font-size: 18px;
  line-height: 1;
  z-index: 2;
}

.popup-prev { left: 7px; }
.popup-next { right: 7px; }


/* DOTS */
.popup-dots {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin-bottom: 10px;
}

.popup-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #d0d0d0;
}

.popup-dot.active {
  background: #333;
}


/* TEXT */
.popup-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 6px;
  padding-right: 8px;
}

#popupTitle {
  margin: 0;
  font-size: 18px;
}

.popup-icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  object-fit: contain;
}

.popup-location {
  margin: 0 0 8px;
  font-size: 14px;
  color: #666;
}

.popup-text {
  margin: 0;
  font-size: 14px;
  line-height: 1.4;
}


/* =========================
   MINI PULSE MARKERS
========================= */
.map-pulse-markers {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 4;
}

.map-mini-marker {
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #118228;
  transform: translate(-50%, -50%) scale(0.8);
  opacity: 0;
  box-shadow: 0 0 0 3px rgba(17, 130, 40, 0.18);
  animation: miniMarkerSequence ease-in-out infinite;
}

.marker-1 { left: 22%; top: 40%; animation-duration: 9.5s; animation-delay: 0s; }
.marker-2 { left: 34%; top: 71%; animation-duration: 10.2s; animation-delay: 1.7s; }
.marker-3 { left: 51%; top: 30%; animation-duration: 8.8s; animation-delay: 3.9s; }
.marker-4 { left: 68%; top: 59%; animation-duration: 10.7s; animation-delay: 6.1s; }
.marker-5 { left: 82%; top: 75%; animation-duration: 9.9s; animation-delay: 7.8s; }
.marker-6 { left: 51%; top: 72%; animation-duration: 9.9s; animation-delay: 7.8s; }

@keyframes miniMarkerSequence {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.8);
  }

  10% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }

  40% { /* <-- deutlich länger sichtbar */
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }

  55% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.8);
  }

  100% {
    opacity: 0;
  }
}


/* =========================
   RESPONSIVE
========================= */

/* <= 1000px */
@media (max-width:1000px) {
  .welcome-map-title.main { font-size:18px; }
  .welcome-map-title.sub { font-size:13px; }

  .map-popup { width:230px; }
  .popup-image { height:125px; }
  #popupTitle { font-size:16px; }
}


/* <= 768px */
@media (max-width:768px) {
  .welcome-map-title.main { font-size:13px; }
  .welcome-map-title.sub { font-size:9px; }

  .map-popup {
    width:200px;
    padding:10px;
  }

  .popup-image { height:110px; }

  #popupTitle { font-size:15px; }

  .popup-location,
  .popup-text {
    font-size:12px;
    line-height:1.35;
  }

  .popup-icon { width:15px; height:15px; }
}


/* <= 576px */
@media (max-width:576px) {
  .welcome-map-title.main { font-size:11px; }
  .welcome-map-title.sub { font-size:6px; }

  .map-popup {
    width:170px;
    padding:8px;
  }

  .popup-image { height:90px; }

  #popupTitle { font-size:13px; }

  .popup-location,
  .popup-text { font-size:11px; }

  .popup-nav {
    width:18px;
    height:18px;
    font-size:14px;
  }
}


/* <= 400px */
@media (max-width:400px) {
  .map-popup {
    width:150px;
    padding:7px;
  }

  .popup-image { height:78px; }

  #popupTitle { font-size:12px; }

  .popup-location,
  .popup-text { font-size:10px; }

  .popup-dot {
    width:6px;
    height:6px;
  }
}