/* Blok „ApartFlow: Mapa apartamentów”. Stonowane tło (jasna warstwa nad kafelkami), żeby pinezki w kolorze akcentu były
   od razu widoczne. Warstwa jest w panelu kafelków: filter/opacity kafelków albo osobny panel nad nimi dają jasne szwy. */
.af-map-block { --af-map-accent: #c65d3b; --af-map-height: 420px; }
.af-map { position: relative; z-index: 0; isolation: isolate; height: var(--af-map-height); overflow: hidden; background: #f7f7f4; border-radius: 14px; font: inherit; }
.af-map.leaflet-container { background: #f7f7f4; }
.af-map .leaflet-tile-pane::after { content: ""; position: absolute; z-index: 1; top: -100000px; left: -100000px; width: 200000px; height: 200000px; background: rgba(255, 255, 255, .45); pointer-events: none; }
.af-map .leaflet-control-attribution { font-size: 10px; }
.af-map-marker { background: none; border: 0; }
.af-map-pin { display: grid; place-items: center; box-sizing: border-box; width: 100%; height: 100%; color: #fff; background: var(--af-map-accent); border: 3px solid #fff; border-radius: 50%; box-shadow: 0 2px 8px rgba(17, 24, 39, .35); font: 700 13px/1 system-ui, -apple-system, "Segoe UI", sans-serif; transition: transform .15s; }
.af-map-marker:hover .af-map-pin,
.af-map-marker:focus .af-map-pin { transform: scale(1.15); }
/* Okienko pinezki: motyw (np. kolumna stopki z białym tekstem i własnym kolorem linków) nie może zmieniać jego wyglądu,
   stąd !important przy kolorach, marginesach i rozmiarach. */
.af-map-popup .leaflet-popup-content-wrapper { padding: 0; overflow: hidden; border-radius: 12px; }
.af-map-block .af-map-popup .leaflet-popup-content { margin: 0 !important; font: 13px/1.35 system-ui, -apple-system, "Segoe UI", sans-serif; }
.af-map-block .af-map-popup .leaflet-popup-content :is(p, ul, li, a, strong, span, small) { margin: 0 !important; padding: 0; color: #1f2937 !important; font-family: inherit !important; line-height: 1.35 !important; letter-spacing: normal !important; text-align: left !important; text-transform: none !important; text-decoration: none !important; }
.af-map-block .af-map-popup .af-map-card { display: flex; flex-direction: column; gap: 4px; padding: 0 0 14px; }
.af-map-block .af-map-popup .af-map-card-image { display: block; width: 100%; height: 130px; margin: 0 0 8px; object-fit: cover; }
.af-map-block .af-map-popup .af-map-card > :not(img) { margin: 0 14px !important; }
.af-map-block .af-map-popup .af-map-card-name { font-size: 14px !important; font-weight: 700 !important; }
.af-map-block .af-map-popup .leaflet-popup-content :is(.af-map-place, .af-map-meta) { color: #6b7280 !important; font-size: 12px !important; }
.af-map-block .af-map-popup a.af-map-open { margin-top: 8px !important; padding: 9px 12px; color: #fff !important; background: var(--af-map-accent); border-radius: 8px; text-align: center !important; font-size: 13px !important; font-weight: 700 !important; }
.af-map-block .af-map-popup .af-map-group-head { padding: 12px 30px 8px 14px; font-size: 13px !important; font-weight: 700 !important; }
.af-map-block .af-map-popup .af-map-group-head span { color: #6b7280 !important; font-weight: 400 !important; }
.af-map-block .af-map-popup .af-map-group ul { max-height: 260px; padding: 0 6px 8px; overflow-y: auto; list-style: none; }
.af-map-block .af-map-popup .af-map-group li { list-style: none; }
.af-map-block .af-map-popup .af-map-group li a { display: flex; align-items: center; gap: 10px; padding: 6px 8px; border-radius: 8px; }
.af-map-block .af-map-popup .af-map-group li a:hover,
.af-map-block .af-map-popup .af-map-group li a:focus { background: #f3f4f6; }
/* „Dostępne od …”: szare zdjęcie, bez podświetlenia i bez przycisku. */
.af-map-block .af-map-popup :is(.af-map-card.is-upcoming, li.is-upcoming) img { filter: grayscale(1); opacity: .6; }
.af-map-block .af-map-popup li.is-upcoming a { cursor: not-allowed; }
.af-map-block .af-map-popup li.is-upcoming a:hover { background: transparent; }
.af-map-block .af-map-popup .af-map-open.is-upcoming { margin-top: 8px !important; padding: 9px 12px; color: #4b5563 !important; background: #e5e7eb; border-radius: 8px; text-align: center !important; font-size: 13px !important; font-weight: 700 !important; }
.af-map-block .af-map-popup .af-map-thumb { flex: 0 0 auto; width: 56px; height: 42px; object-fit: cover; border-radius: 6px; }
.af-map-block .af-map-popup .af-map-group :is(strong, small) { display: block; }
.af-map-block .af-map-popup .af-map-group strong { font-size: 13px !important; font-weight: 700 !important; }
.af-map-block .af-map-popup .af-map-group small { color: #6b7280 !important; font-size: 11px !important; }
.af-map-empty { padding: 12px; color: #6b7280; border: 1px dashed #d1d5db; border-radius: 8px; }
@media (max-width: 640px) {
    .af-map { height: min(var(--af-map-height), 340px); }
}
