.villeMapWrap{ 
  --ville-map-h:420px; 
}

/* ====== KARTA MAPY ====== */
.villeCard{
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,.08);
  background: #fff;
  box-shadow: 0 10px 30px rgba(0,0,0,.06);
}

/* ====== FILTRY ====== */
.villeFilters{
  padding: 14px 14px 10px;
  background: linear-gradient(
    to bottom,
    rgba(255,255,255,.96),
    rgba(255,255,255,.78)
  );
  backdrop-filter: blur(10px);
}
.villeFiltersTitle{
  font-weight: 700;
  font-size: 14px;
  margin: 0 0 10px;
}
.villeFiltersGrid{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.villeChip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 999px;
  padding: 8px 12px;
  cursor:pointer;
  user-select:none;
  background:#fff;
}
.villeChip input{ accent-color: #1f4b3a; }

/* ====== MAPA ====== */
.villeMap{
  height: var(--ville-map-h);
  filter: contrast(1.02); /* delikatne wyostrzenie */
}

/* WYRAŹNA, CLEAN MAPA (JEDEN FILTER – KLUCZOWE) */
.villeMap .leaflet-tile{
  filter:
    saturate(1.18)
    contrast(1.10)
    brightness(0.98);
}

/* NIE FILTRUJ MARKERÓW */
.villeMap .leaflet-marker-icon,
.villeMap .leaflet-marker-shadow{
  filter: none !important;
}

/* ====== ROUTE BUTTON ====== */
.villeRoute{
  padding: 12px 14px;
  display:flex;
  justify-content:flex-end;
  background:#fff;
}
.villeRouteBtn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  text-decoration:none;
  border-radius: 12px;
  padding: 10px 16px;
  border: 1px solid rgba(0,0,0,.14);
  font-weight: 700;
  color:#1f4b3a;
  transition: all .25s ease;
}
.villeRouteBtn:hover{
  background: linear-gradient(135deg, #2f6b4f, #1f4b3a);
  border-color: #2f6b4f;
  color:#fff;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(47,107,79,.35);
}

/* ====== POI ====== */
.villePoiPin{
  border-radius: 999px;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(0,0,0,.12);
  box-shadow:
    0 10px 25px rgba(0,0,0,.22),
    0 0 0 6px rgba(255,255,255,.75);
  display:flex;
  align-items:center;
  justify-content:center;
}
.villePoiPin img{
  width:18px;
  height:18px;
  display:block;
}

/* ====== TOOLTIP ====== */
.villeTooltip{
  background: transparent;
  border: 0;
  box-shadow: none;
}
.villeTip{
  min-width: 160px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(17,17,17,.92);
  color: #fff;
  border: 1px solid rgba(255,255,255,.10);
}
.villeTipTitle{
  font-weight: 800;
  font-size: 13px;
  line-height:1.2;
}
.villeTipTime{
  opacity:.85;
  margin-top:4px;
  font-size:12px;
}
.villeTipLink{
  display:inline-block;
  margin-top:8px;
  color:#fff;
  font-weight:800;
  text-decoration: underline;
}

/* ====== MISC ====== */
.leaflet-control-attribution{ opacity:.55; }
.villeIcon{ width: 22px; height: 22px; vertical-align: -4px; }
