.map{
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  background: rgba(255,255,255,0.5);
  border: 1px solid rgba(0,0,0,0.08);
  box-shadow: 0 10px 30px rgba(0,0,0,0.08);
}

.mapPreviewBtn{
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  position: relative;
}

.mapPreviewBtn img{
  width: 100%;
  height: 400px;
  object-fit: cover;
  display: block;
  filter: saturate(1.05) contrast(1.02);
}

.mapPreviewBtn::after{
  content: "Karte anzeigen";
  position: absolute;
  left: 50%;
  transform: translate(-50%, -50%);
  padding: 10px 14px;
  border-radius: 999px;
  font-weight: 800;
  background: rgba(255,255,255,0.86);
  border: 1px solid rgba(0,0,0,0.10);
  backdrop-filter: blur(6px);
}


.mapOverlay{
  position: absolute;
  inset: 0;
  display: none;                 
  place-items: center;
  padding: 18px;
  background: linear-gradient(to bottom, rgba(255,255,255,0.15), rgba(255,255,255,0.65));
  text-align: center;
}


.mapOverlay.is-open{
  display: grid;
}


.mapOverlay[hidden]{
  display: none !important;
}

.mapCard{
  max-width: 520px;
  width: 100%;
  border-radius: 18px;
  padding: 18px;
  background: rgba(255,255,255,0.80);
  border: 1px solid rgba(0,0,0,0.08);
  backdrop-filter: blur(8px);
  box-shadow: 0 12px 32px rgba(0,0,0,0.10);
}

.mapCard h3{
  margin: 0 0 8px;
  font-size: 20px;
  font-weight: 800;
}

.mapCard p{
  margin: 0 0 12px;
  opacity: 0.85;
  line-height: 1.4;
}

.mapActions{
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: center;
}

.mapBtn{
  appearance: none;
  border: 0;
  cursor: pointer;
  border-radius: 999px;
  padding: 10px 14px;
  font-weight: 800;
  transition: transform .08s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  user-select: none;
}

.mapBtn:active{ transform: scale(0.98); }

.mapBtnPrimary{
  background: linear-gradient(90deg, #d96aa7, #64c6d6);
  color: #111;
}

.mapBtnGhost{
  background: rgba(255,255,255,0.85);
  border: 1px solid rgba(0,0,0,0.12);
  color: #111;
}

.mapFineprint{
  margin-top: 10px;
  font-size: 12px;
  opacity: 0.7;
}

.mapFrame{
  width: 100%;
  height: 400px;
  border: 0;
  display: block;
}