.nw-map {
  width: 100%;
  height: 100%;
  min-height: inherit;
  background: #d8ddd3;
  font-family: var(--font-sans, Arial, sans-serif);
}

.map-visual .nw-map { min-height: 720px; }
.route-map .nw-map { height: 650px; }
.archive-map-view .nw-map { height: 680px; }
.archive-map-view {
  min-height: 680px;
  overflow: hidden;
  border: 1px solid rgba(28, 48, 39, .14);
  background: #d8ddd3;
}
.archive-map-view[hidden] { display: none; }
[data-tour-grid][hidden], [data-list-only][hidden] { display: none !important; }

.nw-map .leaflet-tile-pane { filter: saturate(.58) contrast(.91) sepia(.08); }
.nw-map .leaflet-control-attribution {
  padding: 3px 6px;
  color: #34483f;
  background: rgba(250, 248, 240, .9);
  font-size: 10px;
}
.nw-map .leaflet-control-attribution a { color: #1c3027; }
.nw-map .leaflet-bar { border: 0; box-shadow: 0 7px 24px rgba(20, 38, 30, .2); }
.nw-map .leaflet-bar a,
.nw-map .leaflet-bar a:hover {
  width: 44px;
  height: 44px;
  border-color: rgba(28, 48, 39, .13);
  color: #1c3027;
  background: #faf8f0;
  font-size: 22px;
  line-height: 44px;
}

.nw-map-marker-wrap { background: none; border: 0; }
.nw-map-marker {
  position: relative;
  display: block;
  width: 30px;
  height: 30px;
  border: 4px solid #faf8f0;
  border-radius: 50% 50% 50% 0;
  background: #1c3027;
  box-shadow: 0 5px 16px rgba(18, 35, 28, .35);
  transform: rotate(-45deg);
  transition: transform .2s ease, background .2s ease;
}
.nw-map-marker::after {
  position: absolute;
  inset: 7px;
  border-radius: 50%;
  background: #d1aa70;
  content: '';
}
.nw-map-marker-wrap:hover .nw-map-marker,
.leaflet-marker-icon:focus .nw-map-marker { background: #a75336; transform: rotate(-45deg) scale(1.1); }
.nw-map-waypoint-wrap { background: none; border: 0; }
.nw-map-waypoint {
  display: block;
  width: 20px;
  height: 20px;
  border: 4px solid #faf8f0;
  border-radius: 50%;
  background: #d1aa70;
  box-shadow: 0 4px 12px rgba(18, 35, 28, .32);
}
.nw-gpx-route { filter: drop-shadow(0 2px 2px rgba(28, 48, 39, .28)); }
.nw-waypoint-label { display: block; padding: 3px 2px; color: #1c3027; font-size: 13px; }

.nw-map-popup .leaflet-popup-content-wrapper {
  border-radius: 0;
  background: #faf8f0;
  box-shadow: 0 16px 42px rgba(18, 35, 28, .28);
}
.nw-map-popup .leaflet-popup-content { margin: 0; }
.nw-map-popup .leaflet-popup-tip { background: #faf8f0; }
.nw-map-popup__content { padding: 22px 24px 20px; }
.nw-map-popup__content p {
  margin: 0 0 8px;
  color: #7c684e;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.nw-map-popup__content h3 {
  margin: 0 0 15px;
  color: #1c3027;
  font-family: var(--font-serif, Georgia, serif);
  font-size: 24px;
  font-weight: 400;
  line-height: 1.05;
}
.nw-map-popup__content div { display: flex; gap: 16px; margin-bottom: 16px; color: #526259; font-size: 12px; }
.nw-map-popup__content a { color: #1c3027; font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.nw-map.is-map-empty::after {
  display: grid;
  min-height: inherit;
  place-items: center;
  padding: 30px;
  color: #1c3027;
  content: 'Für diese Auswahl sind noch keine Koordinaten hinterlegt.';
  text-align: center;
}
.route-map .map-float { z-index: 500; }

@media (max-width: 900px) {
  .map-visual .nw-map { min-height: 600px; }
  .route-map .nw-map { height: 560px; }
  .archive-map-view, .archive-map-view .nw-map { min-height: 560px; height: 560px; }
}

@media (max-width: 600px) {
  .map-visual .nw-map { min-height: 480px; }
  .route-map .nw-map { height: 500px; }
  .archive-map-view, .archive-map-view .nw-map { min-height: 480px; height: 480px; }
  .nw-map-popup__content { padding: 18px; }
  .nw-map-popup__content h3 { font-size: 21px; }
}

@media (prefers-reduced-motion: reduce) {
  .nw-map-marker { transition: none; }
}
