.dd-advertisement-map {
  position: relative;
  width: 100%;
}

.dd-map-stage {
  position: relative;
  overflow: hidden;
  min-height: 420px;
  border: 1px solid rgba(196, 146, 255, 0.2);
  border-radius: 24px;
  background:
    radial-gradient(circle at 35% 35%, rgba(152, 84, 255, 0.12), transparent 34%),
    radial-gradient(circle at 70% 70%, rgba(255, 79, 171, 0.08), transparent 30%),
    linear-gradient(180deg, rgba(18, 15, 29, 0.98), rgba(10, 9, 18, 0.98));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.dd-advertisement-map--compact .dd-map-stage {
  min-height: 300px;
  border-radius: 20px;
}

.dd-map-svg {
  display: block;
  width: 100%;
  height: auto;
  min-height: 420px;
  touch-action: manipulation;
}

.dd-advertisement-map--compact .dd-map-svg {
  min-height: 300px;
}

.dd-map-country {
  fill: rgba(43, 35, 63, 0.9);
  stroke: rgba(201, 166, 255, 0.42);
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
  transition: fill 160ms ease, stroke 160ms ease;
}

.dd-map-country[data-country="BE"] {
  fill: rgba(78, 52, 103, 0.9);
}

.dd-map-country[data-country="NL"] {
  fill: rgba(55, 47, 82, 0.88);
}

.dd-map-marker {
  cursor: pointer;
  outline: none;
}

.dd-map-marker-halo {
  fill: rgba(223, 98, 255, 0.15);
  stroke: rgba(226, 153, 255, 0.28);
  stroke-width: 1;
  transform-origin: center;
  animation: dd-map-pulse 2.4s ease-in-out infinite;
}

.dd-map-marker-dot {
  fill: #f3b4ff;
  stroke: #2a1737;
  stroke-width: 4;
  filter: drop-shadow(0 0 9px rgba(224, 101, 255, 0.74));
  transition: transform 150ms ease, fill 150ms ease;
}

.dd-map-marker:hover .dd-map-marker-dot,
.dd-map-marker:focus .dd-map-marker-dot,
.dd-map-marker.is-active .dd-map-marker-dot {
  fill: #ffffff;
  transform: scale(1.18);
}

.dd-map-marker:focus .dd-map-marker-halo,
.dd-map-marker.is-active .dd-map-marker-halo {
  stroke: rgba(255, 255, 255, 0.78);
}

.dd-map-marker-count {
  fill: #25132f;

  font-weight: 900;
  pointer-events: none;
}

.dd-map-popup {
  position: absolute;
  z-index: 8;
  width: min(310px, calc(100% - 28px));
  transform: translate(-50%, calc(-100% - 18px));
  border: 1px solid rgba(229, 183, 255, 0.28);
  border-radius: 18px;
  background: rgba(18, 14, 27, 0.97);
  box-shadow: 0 22px 65px rgba(0, 0, 0, 0.46);
  backdrop-filter: blur(14px);
}

.dd-map-popup[hidden] {
  display: none;
}

.dd-map-popup::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -8px;
  width: 16px;
  height: 16px;
  transform: translateX(-50%) rotate(45deg);
  border-right: 1px solid rgba(229, 183, 255, 0.28);
  border-bottom: 1px solid rgba(229, 183, 255, 0.28);
  background: rgba(18, 14, 27, 0.97);
}

.dd-map-popup-card {
  overflow: hidden;
  border-radius: 17px;
}

.dd-map-popup-cover {
  display: block;
  width: 100%;
  height: 140px;
  object-fit: cover;
  background: rgba(255, 255, 255, 0.04);
}

.dd-map-popup-body {
  display: grid;
  gap: 7px;
  padding: 14px;
}

.dd-map-popup-count,
.dd-map-popup-location {
  color: rgba(239, 226, 249, 0.68);
  font-size: 0.76rem;
}

.dd-map-popup-title {
  color: #fff;
  font-size: 1rem;
  line-height: 1.25;
}

.dd-map-popup-description {
  margin: 0;
  color: rgba(248, 240, 252, 0.8);
  font-size: 0.82rem;
  line-height: 1.45;
}

.dd-map-popup-link,
.dd-map-popup-listing {
  color: #f1c3ff;
  font-weight: 800;
  text-decoration: none;
}

.dd-map-popup-link:hover,
.dd-map-popup-listing:hover {
  text-decoration: underline;
}

.dd-map-popup-list {
  display: grid;
  gap: 5px;
  margin-top: 3px;
}

.dd-map-loading,
.dd-map-empty,
.dd-map-error {
  display: grid;
  place-items: center;
  min-height: 220px;
  padding: 28px;
  border: 1px solid rgba(196, 146, 255, 0.16);
  border-radius: 20px;
  background: rgba(20, 16, 30, 0.62);
  color: rgba(244, 235, 249, 0.72);
  text-align: center;
}

@keyframes dd-map-pulse {
  0%, 100% {
    opacity: 0.48;
    transform: scale(0.9);
  }

  50% {
    opacity: 0.9;
    transform: scale(1.16);
  }
}

@media (max-width: 760px) {
  .dd-map-stage {
    min-height: 330px;
    border-radius: 18px;
  }

  .dd-map-svg,
  .dd-advertisement-map--compact .dd-map-svg {
    min-height: 330px;
  }

  .dd-map-popup {
    width: min(290px, calc(100% - 20px));
  }

  .dd-map-popup-cover {
    height: 122px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .dd-map-marker-halo {
    animation: none;
  }

  .dd-map-marker-dot,
  .dd-map-country {
    transition: none;
  }
}

/* A small location card on advertiser and advertisement pages. */
#listing-map-section,
#public-advertiser-map-section { width:100%;max-width:460px;box-sizing:border-box; }
.dd-advertisement-map--compact .dd-map-stage { min-height:0;border-radius:16px; }
.dd-advertisement-map--compact .dd-map-svg { height:240px;min-height:0; }
.dd-advertisement-map--compact .dd-map-popup { top:12px !important;left:50% !important;transform:translateX(-50%);max-height:calc(100% - 24px);overflow-y:auto; }
.dd-advertisement-map--compact .dd-map-popup-cover { height:80px; }
.dd-advertisement-map--compact .dd-map-popup-list { max-height:140px;overflow-y:auto; }
.dd-map-popup-more { width:100%;padding:8px;border:1px solid #705076;border-radius:8px;background:#35223e;color:#fff;cursor:pointer; }
@media(max-width:600px) { .dd-advertisement-map--compact .dd-map-svg { height:210px; } }

/* Viewport popup: outside clipped map cards, with fixed readable text sizes. */
.dd-map-floating-popup {position:fixed;inset:auto;margin:0;z-index:10000;box-sizing:border-box;width:min(320px,calc(100vw - 24px));padding:12px;border:1px solid #71516f;border-radius:14px;background:rgba(24,17,32,.98);color:#fff;box-shadow:0 12px 36px #0008;font:13px/1.4 Arial,sans-serif;overflow:auto;overscroll-behavior:contain;}
.dd-map-floating-popup[hidden]{display:none!important}
.dd-map-floating-popup::backdrop{background:transparent;pointer-events:none}
.dd-map-mini-heading{display:block;font-size:12px;line-height:20px;padding-right:30px;margin-bottom:8px;color:#d8c8dd;}
.dd-map-mini-close{position:absolute;right:6px;top:5px;width:32px;height:32px;padding:0;display:grid;place-items:center;border:0;border-radius:8px;background:#ffffff0d;color:#fff;font:24px/1 Arial,sans-serif;cursor:pointer;}
.dd-map-mini-list{display:grid;gap:7px;}
.dd-map-floating-popup .dd-map-mini-result{display:flex;gap:10px;align-items:center;padding:8px;border:1px solid #ffffff15;border-radius:10px;color:#fff;text-decoration:none;font-size:13px;line-height:1.4;}
.dd-map-mini-result:hover{background:#ffffff0a;}
.dd-map-mini-thumb{width:46px;height:58px;flex:none;object-fit:cover;border-radius:6px;}
.dd-map-mini-text{display:grid;gap:3px;min-width:0;}
.dd-map-floating-popup .dd-map-mini-title{font-size:13px;line-height:1.35;font-weight:700;overflow-wrap:anywhere;}
.dd-map-mini-location{font-size:11px;line-height:1.35;color:#bcb1c5;}
.dd-map-mini-action{font-size:11px;color:#f2a9d2;}
.dd-map-mini-more{margin-top:8px;width:100%;padding:7px;border:1px solid #705076;border-radius:8px;background:#35223e;color:#fff;font-size:12px;cursor:pointer;}
.dd-map-mini-more[hidden]{display:none;}
.dd-map-floating-popup :focus-visible{outline:2px solid #fa83ce;outline-offset:2px;}

/* Small map points keep their screen size, including their border, at every zoom. */
.dd-map-svg .dd-map-marker-dot {stroke-width:1.5px;vector-effect:non-scaling-stroke;filter:none;transition:fill 150ms ease;}
.dd-map-svg .dd-map-marker:hover .dd-map-marker-dot,.dd-map-svg .dd-map-marker:focus .dd-map-marker-dot,.dd-map-svg .dd-map-marker.is-active .dd-map-marker-dot {transform:none;fill:#fff;stroke:#e651af;}
.dd-map-marker-hit {fill:transparent;stroke:none;pointer-events:all;}
.dd-map-spread-line {stroke:#d2a8df;stroke-width:1px;stroke-dasharray:2 3;opacity:.5;pointer-events:none;vector-effect:non-scaling-stroke;}

.dd-map-svg .dd-map-marker-count {fill:#fff;paint-order:stroke;stroke:#21132d;stroke-width:2px;vector-effect:non-scaling-stroke;}
