/* Mapa realizacji wlabel — kolory i font z globalnych ustawień Elementora (kit 5) */
.wlm {
  --wlm-red: #E52D1A;
  --wlm-red-dark: #c42412;
  --wlm-navy: #424858;
  --wlm-ink: #292d32;
  --wlm-text: #5A5A5A;
  --wlm-bg: #F5F5F5;
  --wlm-line: #e3e5ea;
  --wlm-radius: 14px;
  /* mapa + filtry + legenda mieszczą się pod nagłówkiem szablonu; stałe zamiast pomiaru w JS, żeby strona nie skakała */
  --wlm-hdr: 144px;
  --wlm-flt: 100px;
  --wlm-foot: 34px;
  font-family: "Montserrat", sans-serif;
  color: var(--wlm-text);
  max-width: 1210px;
  margin: 0 auto;
  padding: 72px 0 96px;
  box-sizing: border-box;
}
.wlm *, .wlm *::before, .wlm *::after { box-sizing: border-box; }
/* Hello Elementor + kit stylują wszystkie <button> (ramka #c36, padding, font 1rem, tło na hover) — zerujemy w obrębie mapy */
.wlm button, .wlm button:hover, .wlm button:focus, .wlm button:active {
  font-family: inherit; text-transform: none; letter-spacing: normal; box-shadow: none; outline-offset: 2px;
  min-height: 0; width: auto; margin: 0; text-decoration: none;
}
.wlm button:focus-visible { outline: 2px solid var(--wlm-red); }

.wlm-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.wlm-eyebrow { color: var(--wlm-red); font-weight: 600; font-size: 14px; letter-spacing: .08em; text-transform: uppercase; margin: 0 0 10px; }
.wlm .wlm-title { color: var(--wlm-navy); font-size: 48px; line-height: 1.2; font-weight: 600; margin: 0; }
.wlm-lead { font-size: 16px; line-height: 1.6; max-width: 520px; min-height: 4.8em; margin: 12px 0 0; }

.wlm-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 20px; }
.wlm-stat { background: var(--wlm-bg); border-radius: var(--wlm-radius); padding: 18px 20px; }
.wlm-stat b { display: block; color: var(--wlm-navy); font-size: 30px; font-weight: 600; line-height: 1.15; font-variant-numeric: tabular-nums; }
.wlm-stat span { font-size: 13px; }

.wlm-filters { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; }
.wlm-topbar { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.wlm-chip-f .s, .wlm-regions .s { display: none; }
.wlm-topbar-r { display: flex; align-items: center; gap: 8px; flex: none; }
.wlm-zoom { width: 68px; height: 34px; }
.wlm-zoom .leaflet-control-zoom { display: flex; margin: 0; border: 0; box-shadow: none; float: none; clear: none; }
.wlm .wlm-zoom .leaflet-control-zoom a { width: 34px; height: 34px; line-height: 32px; font-size: 20px; background: var(--wlm-bg); color: var(--wlm-ink); border: 0; border-radius: 0; text-indent: 0; }
.wlm .wlm-zoom .leaflet-control-zoom a:first-child { border-radius: 8px 0 0 8px; }
.wlm .wlm-zoom .leaflet-control-zoom a:last-child { border-radius: 0 8px 8px 0; margin-left: 1px; }
.wlm .wlm-zoom .leaflet-control-zoom a.leaflet-disabled { opacity: .4; }
@media (pointer: coarse) { .wlm-zoom { display: none; } }
.wlm-attr .leaflet-control-attribution { background: none; padding: 0; margin: 0; float: none; clear: none; font-size: 11px; color: var(--wlm-text); }
.wlm-attr .leaflet-control-attribution a { color: var(--wlm-text); text-decoration: underline; }
.wlm-attr { flex: 1 1 100%; text-align: right; }
.wlm-group { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
/* rodzaje zawsze w jednej linii: przy zawijaniu doładowany Montserrat (szerszy od fontu zastępczego) zrzucał ostatni chip
   do drugiej linii i cała mapa skakała o 41 px; jeśli się nie zmieszczą, przewijają się w poziomie */
.wlm-group[data-f="type"] { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
.wlm-group[data-f="type"]::-webkit-scrollbar { display: none; }
.wlm-group-label { font-size: 13px; font-weight: 600; color: var(--wlm-navy); margin-right: 4px; }
.wlm button.wlm-chip {
  font: inherit; font-size: 13px; font-weight: 500; line-height: 1; cursor: pointer;
  border: 1px solid var(--wlm-line); background: #fff; color: var(--wlm-ink);
  border-radius: 999px; padding: 9px 13px; display: inline-flex; align-items: center; gap: 7px; flex: none; white-space: nowrap;
  transition: background .15s, border-color .15s, color .15s;
}
.wlm button.wlm-chip:hover { border-color: var(--wlm-navy); }
.wlm button.wlm-chip[aria-pressed="true"] { background: var(--wlm-navy); border-color: var(--wlm-navy); color: #fff; }
.wlm-chip i { width: 9px; height: 9px; border-radius: 50%; background: var(--c); flex: none; }
.wlm-chip small { opacity: .65; font-size: 12px; }

.wlm-stage { position: relative; border-radius: var(--wlm-radius); overflow: hidden; background: #e9ecef; box-shadow: 0 10px 30px rgba(66, 72, 88, .12); }
.wlm-map {
  height: 640px;
  height: clamp(var(--wlm-min, 340px), calc(100vh - var(--wlm-hdr) - var(--wlm-flt) - var(--wlm-foot) - 14px), 640px);
  height: clamp(var(--wlm-min, 340px), calc(100svh - var(--wlm-hdr) - var(--wlm-flt) - var(--wlm-foot) - 14px), 640px);
  width: 100%; font-family: inherit; z-index: 0; background: #eef0f3; }
/* filtr na każdym kafelku osobno: ten sam filtr na całej warstwie przy ułamkowym zoomie rysuje białe szwy na łączeniach;
   zakładka o pół piksela zakrywa szczeliny po zaokrągleniu skali */
.wlm-map .wlm-gray img.leaflet-tile { filter: grayscale(1) contrast(.88) brightness(1.06); width: 256.5px !important; height: 256.5px !important; }

.wlm-regions { display: flex; flex: none; background: var(--wlm-bg); border-radius: 8px; padding: 3px; }
.wlm .wlm-regions button { font: inherit; font-size: 13px; font-weight: 500; border: 0; background: none; color: var(--wlm-ink); padding: 7px 12px; border-radius: 6px; cursor: pointer; }
.wlm .wlm-regions button:hover { background: #fff; }

/* podpowiedź przy przewijaniu / jednym palcu — pigułka u dołu, nie zasłania mapy */
.wlm-hint {
  position: absolute; z-index: 800; left: 50%; bottom: 70px; transform: translateX(-50%);
  background: rgba(41, 45, 50, .88); color: #fff; font-size: 13.5px; font-weight: 500; text-align: center;
  padding: 10px 16px; border-radius: 999px; max-width: calc(100% - 32px); box-shadow: 0 4px 14px rgba(0,0,0,.2);
  display: none; pointer-events: none;
}
.wlm-hint.is-on { display: block; }
/* uśpiona mapa: lekko wyszarzona, punkty widać, przewijanie przechodzi przez warstwę (pointer-events: none); tylko przycisk łapie klik */
.wlm-sen { position: absolute; inset: 0; z-index: 600; display: flex; align-items: center; justify-content: center; background: rgba(52, 56, 68, .2); pointer-events: none; opacity: 1; transition: opacity .25s ease, visibility .25s; }
.wlm-stage.is-awake .wlm-sen { opacity: 0; visibility: hidden; }
.wlm button.wlm-sen-btn { pointer-events: auto; display: inline-flex; align-items: center; gap: 9px; min-height: 44px; padding: 10px 18px; border: 0; border-radius: 999px; background: #fff; color: var(--wlm-navy); font: inherit; font-size: 14px; font-weight: 600; white-space: nowrap; box-shadow: 0 4px 18px rgba(0,0,0,.28); cursor: pointer; }
.wlm button.wlm-sen-btn:hover { background: #fff; color: var(--wlm-red); }
.wlm-sen-btn svg { width: 20px; height: 20px; flex: none; }
.wlm-sen-btn .t { display: none; }
@media (pointer: coarse) { .wlm-sen-btn .t { display: inline; } .wlm-sen-btn .d { display: none; } }

/* przycisk powrotu do strony: tylko w trybie przeglądania na urządzeniu dotykowym */
.wlm button.wlm-exit { display: none; position: absolute; z-index: 750; left: 50%; bottom: 14px; transform: translateX(-50%); padding: 11px 18px; min-height: 44px; border-radius: 999px; border: 0; background: var(--wlm-navy); color: #fff; font: inherit; font-size: 14px; font-weight: 600; white-space: nowrap; box-shadow: 0 4px 14px rgba(0,0,0,.3); cursor: pointer; }
.wlm-stage.is-mode button.wlm-exit { display: block; }
.wlm-stage.has-panel button.wlm-exit { display: none; }
/* przy otwartym panelu (na telefonie wysuwa się od dołu) podpowiedź idzie na górę mapy */
.wlm-panel.is-open ~ .wlm-hint, .wlm-stage.has-panel .wlm-hint { bottom: auto; top: 14px; }
/* obudzona mapa (po kliknięciu) — przewijanie przybliża */
.wlm-stage.is-awake { box-shadow: 0 0 0 2px var(--wlm-red), 0 10px 30px rgba(66, 72, 88, .12); }

/* znaczniki: kółko = dom (szare do 2022, kolorowe od 2023), kwadrat z budynkiem = firma. Kształt, nie tylko kolor. */
.wlm-pin { background: none; border: 0; }
.wlm-pin span { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: #fff; border: 2px solid #fff; box-shadow: 0 1px 4px rgba(0,0,0,.35); position: relative; }
.wlm-pin svg { width: 62%; height: 62%; display: block; }
.wlm-pin-g span { border-radius: 50%; background: #9AA0AC; border-width: 1.5px; box-shadow: 0 1px 2px rgba(0,0,0,.25); }
.wlm-pin-k span { border-radius: 50%; background: var(--c); }
.wlm-pin-k.has-photo span { background: #fff; color: var(--c); border: 3px solid var(--c); box-shadow: 0 0 0 2px #fff, 0 2px 7px rgba(0,0,0,.45); }
.wlm-pin-k.has-photo svg { width: 70%; height: 70%; }
.wlm-pin-f span { border-radius: 5px; background: var(--wlm-navy); box-shadow: 0 0 0 2px var(--wlm-red), 0 2px 8px rgba(0,0,0,.4); }
.wlm-pin-f.is-old span { background: #767C8A; box-shadow: 0 1px 4px rgba(0,0,0,.4); }
.wlm-pin-f em { position: absolute; top: -8px; right: -8px; width: 16px; height: 16px; border-radius: 50%; background: var(--wlm-red); border: 1.5px solid #fff; display: flex; align-items: center; justify-content: center; }
.wlm-pin-f em svg { width: 9px; height: 9px; }
.wlm-pin span { transition: transform .15s; }
.wlm-pin:hover, .wlm-pin.is-active { z-index: 1000 !important; }
.wlm-pin:hover span, .wlm-pin.is-active span { transform: scale(1.18); }

/* skupiska */
.wlm-cluster { background: none; }
.wlm-cluster div, .wlm-cluster-f div { position: relative; will-change: auto; }
.wlm-cluster em, .wlm-cluster-f em { position: absolute; display: flex; align-items: center; justify-content: center; width: 18px; height: 18px; border: 1.5px solid #fff; box-shadow: 0 1px 3px rgba(0,0,0,.35); color: #fff; }
.wlm-cluster em svg, .wlm-cluster-f em svg { width: 11px; height: 11px; display: block; }
.wlm-cluster em.z, .wlm-cluster-f em.z { top: -7px; left: -7px; border-radius: 50%; background: #fff; color: var(--wlm-navy); border-color: var(--wlm-navy); }
.wlm-cluster em.f { top: -7px; right: -7px; border-radius: 4px; background: var(--wlm-navy); }
.wlm-cluster div {
  width: 100%; height: 100%; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-direction: column;
  background: #fff; color: var(--wlm-red); border: 3px solid var(--wlm-red);
  box-shadow: 0 3px 10px rgba(0,0,0,.25);
  font-weight: 700; font-size: 13px; line-height: 1;
}
.wlm-cluster.is-l div { background: var(--wlm-red); color: #fff; border-color: #fff; }
.wlm-cluster-f { background: none; }
.wlm-cluster-f div { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; gap: 4px; border-radius: 6px; background: var(--wlm-navy); color: #fff; border: 2px solid #fff; box-shadow: 0 0 0 2px var(--wlm-red), 0 3px 10px rgba(0,0,0,.35); font-weight: 700; font-size: 13px; line-height: 1; }
.wlm-cluster-f svg { width: 15px; height: 15px; }

/* filtr dla firm: osobny, wyraźny, kwadratowa ikona jak na mapie */
.wlm-group[data-f="b2b"] { min-height: 40px; flex-wrap: nowrap; overflow: visible; margin: 0; padding: 0; }
.wlm button.wlm-chip-f { font-size: 14px; font-weight: 600; padding: 5px 14px 5px 7px; border-radius: 8px; border: 2px solid var(--wlm-navy); color: var(--wlm-navy); min-height: 40px; }
.wlm button.wlm-chip-f:hover { border-color: var(--wlm-red); }
.wlm button.wlm-chip-f[aria-pressed="true"] { background: var(--wlm-navy); color: #fff; }
.wlm-chip-ico { width: 26px; height: 26px; border-radius: 5px; background: var(--wlm-navy); color: #fff; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.wlm-chip-f[aria-pressed="true"] .wlm-chip-ico { background: var(--wlm-red); }
.wlm-chip-ico svg { width: 17px; height: 17px; }
.wlm-chip-z .wlm-chip-ico { background: #fff; color: var(--wlm-navy); box-shadow: inset 0 0 0 2px var(--wlm-navy); border-radius: 50%; }
.wlm-chip-z[aria-pressed="true"] .wlm-chip-ico { background: #fff; color: var(--wlm-navy); box-shadow: none; }

/* legenda i przypis pod mapą: nic nie leży na pinezkach */
.wlm-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 2px 16px; min-height: 26px; margin-top: 8px; }
.wlm-legend { display: flex; flex-wrap: nowrap; gap: 12px; font-size: 12px; line-height: 1.2; color: var(--wlm-ink); }
.wlm-legend span { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.wlm-legend i { display: inline-block; flex: none; }
.wlm-legend .g { width: 10px; height: 10px; border-radius: 50%; background: #9AA0AC; }
.wlm-legend .k { width: 12px; height: 12px; border-radius: 50%; background: linear-gradient(135deg, #E52D1A 50%, #2D7FD3 50%); }
.wlm-legend .z { width: 16px; height: 16px; border-radius: 50%; background: #fff; border: 2px solid #E52D1A; color: #E52D1A; }
.wlm-legend .z svg { display: block; width: 10px; height: 10px; margin: 1px; }
.wlm-legend .f { width: 16px; height: 16px; border-radius: 3px; background: var(--wlm-navy); color: #fff; }
.wlm-legend .f svg { display: block; width: 12px; height: 12px; margin: 2px; }
.wlm-legend .s { display: none; }

/* pasek wybranych realizacji pod mapą: stała wysokość, poza wysokością zarezerwowaną na mapę */
.wlm-wybrane { margin-top: 18px; }
.wlm .wlm-wybrane h3 { margin: 0 0 8px; font-size: 15px; font-weight: 600; line-height: 1.3; color: var(--wlm-navy); }
.wlm-wyb-wrap { position: relative; }
.wlm-wyb-tor { display: flex; gap: 10px; overflow-x: auto; scroll-behavior: smooth; scroll-snap-type: x proximity; scrollbar-width: none; -ms-overflow-style: none; }
.wlm-wyb-tor::-webkit-scrollbar { display: none; }
.wlm-wyb-tor > .wlm-wyb { scroll-snap-align: start; }
.wlm button.wlm-wyb-nav { position: absolute; top: 50px; z-index: 2; width: 38px; height: 38px; margin-top: -19px; padding: 0; border: 1px solid var(--wlm-line); border-radius: 50%; background: #fff; color: var(--wlm-navy); box-shadow: 0 2px 10px rgba(41, 45, 50, .18); display: flex; align-items: center; justify-content: center; cursor: pointer; }
.wlm button.wlm-wyb-nav:hover { background: var(--wlm-navy); border-color: var(--wlm-navy); color: #fff; }
.wlm button.wlm-wyb-nav[hidden] { display: none; }
.wlm-wyb-prev { left: -12px; }
.wlm-wyb-next { right: -12px; }
@media (max-width: 767px) { .wlm button.wlm-wyb-nav { width: 34px; height: 34px; margin-top: -17px; } .wlm-wyb-prev { left: 4px; } .wlm-wyb-next { right: 4px; } }
.wlm button.wlm-wyb { flex: none; width: 176px; padding: 0; border: 1px solid var(--wlm-line); border-radius: 10px; background: #fff; overflow: hidden; cursor: pointer; text-align: left; color: var(--wlm-ink); font: inherit; display: block; }
.wlm button.wlm-wyb:hover { border-color: var(--wlm-navy); background: #fff; color: var(--wlm-ink); }
.wlm-wyb img { display: block; width: 100%; height: 100px; object-fit: cover; background: #eef0f3; }
.wlm-wyb b, .wlm-wyb small { display: block; padding: 0 9px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 12px; line-height: 1.4; }
.wlm-wyb b { padding-top: 6px; font-weight: 600; color: var(--wlm-navy); }
.wlm-wyb small { padding-bottom: 7px; color: var(--wlm-text); }

/* dymek szarej realizacji */
.wlm-popup .leaflet-popup-content-wrapper { border-radius: 10px; box-shadow: 0 6px 22px rgba(0,0,0,.22); }
.wlm-popup .leaflet-popup-content { margin: 14px 16px; font-family: "Montserrat", sans-serif; color: var(--wlm-text, #5A5A5A); font-size: 13px; line-height: 1.45; }
.wlm .wlm-popup h4 { margin: 0 22px 8px 0; font-size: 18px; font-weight: 600; color: #424858; line-height: 1.2; }
.wlm-popup dl { margin: 0; }
.wlm-popup dl div { display: flex; justify-content: space-between; gap: 12px; padding: 3px 0; border-top: 1px solid #eef0f3; }
.wlm-popup dt { font-weight: 500; color: #7A7F8C; }
.wlm-popup dd { margin: 0; text-align: right; color: #292d32; font-weight: 500; }
.wlm-badge { display: inline-flex; align-items: center; gap: 6px; background: #424858; color: #fff; font-size: 12px; font-weight: 600; padding: 4px 9px 4px 6px; border-radius: 5px; margin: 0 0 10px; }
.wlm-badge svg { width: 14px; height: 14px; }

.leaflet-tooltip.wlm-tip { font-family: "Montserrat", sans-serif; font-size: 13px; border-radius: 8px; padding: 6px 10px; border: 0; box-shadow: 0 3px 12px rgba(0,0,0,.18); color: var(--wlm-ink); }
.leaflet-tooltip.wlm-tip b { color: var(--wlm-navy); }

/* karta realizacji */
.wlm-panel {
  position: absolute; z-index: 700; top: 12px; left: 12px; bottom: 12px; width: 380px;
  background: #fff; border-radius: 12px; box-shadow: 0 8px 30px rgba(0,0,0,.2);
  display: flex; flex-direction: column; transform: translateX(calc(-100% - 24px)); transition: transform .3s ease;
}
.wlm-panel.is-open { transform: none; }
.wlm-panel-head { padding: 20px 52px 16px 22px; border-bottom: 1px solid var(--wlm-line); position: relative; }
.wlm .wlm-panel-head h3 { margin: 0; color: var(--wlm-navy); font-size: 20px; font-weight: 600; line-height: 1.25; }
.wlm-panel-head p { margin: 8px 0 0; font-size: 13.5px; line-height: 1.55; }
/* padding 0 + flex: motyw daje przyciskom padding .5rem 1rem, który spychał „×” z osi */
.wlm button.wlm-close { position: absolute; top: 14px; right: 14px; width: 32px; height: 32px; padding: 0; display: flex; align-items: center; justify-content: center; border-radius: 50%; border: 0; background: var(--wlm-bg); cursor: pointer; color: var(--wlm-navy); }
.wlm-close svg { display: block; }
.wlm button.wlm-close:hover { background: var(--wlm-line); }
.wlm-list { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 8px 14px 16px; overscroll-behavior: contain; }
.wlm-panel.is-firma .wlm-panel-head { border-top: 4px solid var(--wlm-navy); border-radius: 12px 12px 0 0; }
.wlm-list .wlm-badge { margin: 8px 8px 0; }
.wlm-opis { margin: 10px 8px 0; font-size: 13.5px; line-height: 1.6; color: var(--wlm-ink); overflow-wrap: anywhere; }
.wlm .wlm-gal-h { margin: 16px 8px 8px; font-size: 13px; line-height: 1.3; font-weight: 600; color: var(--wlm-navy); }
.wlm-gal { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; padding: 0 8px; }
.wlm button.wlm-th { padding: 0; border: 0; border-radius: 8px; overflow: hidden; background: #eef0f3; cursor: zoom-in; aspect-ratio: 1; display: block; width: 100%; }
.wlm button.wlm-th:first-child { grid-column: span 3; aspect-ratio: 16 / 10; }
.wlm-th img { display: block; width: 100%; height: 100%; object-fit: cover; }

.wlm-note { font-size: 12px; margin: 0; opacity: .85; }
.wlm-empty { position: absolute; z-index: 550; left: 50%; top: 50%; transform: translate(-50%, -50%); background: #fff; padding: 14px 20px; border-radius: 10px; font-size: 14px; box-shadow: 0 4px 16px rgba(0,0,0,.15); display: none; }
.wlm-empty.is-on { display: block; }

/* granatowy podkład */
.wlm-stage.is-dark .wlm-map { background: #424858; }
.wlm-stage.is-dark .leaflet-control-attribution { background: rgba(66, 72, 88, .85); color: #c9cdd6; }
.wlm-stage.is-dark .leaflet-control-attribution a { color: #fff; }
.wlm-stage.is-dark .wlm-cluster div { box-shadow: 0 3px 10px rgba(0,0,0,.35); }

@media (max-width: 1024px) { .wlm { --wlm-hdr: 76px; } }
@media (max-width: 1240px) { .wlm { padding-left: 16px; padding-right: 16px; } }
@media (max-width: 900px) {
  .wlm .wlm-title { font-size: 36px; }
  .wlm-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .wlm { padding-top: 48px; padding-bottom: 64px; }
  .wlm .wlm-title { font-size: 30px; min-height: 2.4em; }
  .wlm-lead { min-height: 6.4em; }
  .wlm-stat span { display: block; line-height: 1.4; min-height: 2.8em; }
  .wlm-stat { padding: 14px 16px; }
  .wlm-stat b { font-size: 24px; }
  .wlm-group { flex-wrap: nowrap; overflow-x: auto; margin: 0 -16px; padding: 0 16px 4px; scrollbar-width: none; }
  .wlm-group::-webkit-scrollbar { display: none; }
  .wlm-chip { flex: none; }
  .wlm { --wlm-flt: 92px; --wlm-foot: 30px; --wlm-min: 300px; }
  .wlm-filters { flex-direction: column; gap: 6px; margin-bottom: 8px; }
  .wlm .wlm-group[data-f="b2b"] { margin: 0; padding: 0; overflow: visible; min-height: 36px; gap: 6px; }
  .wlm button.wlm-chip-f { min-height: 36px; font-size: 12.5px; padding: 3px 9px 3px 5px; gap: 5px; }
  .wlm-chip-ico { width: 22px; height: 22px; }
  .wlm-chip-f .l, .wlm-regions .l { display: none; }
  .wlm-chip-f .s, .wlm-regions .s { display: inline; }
  .wlm .wlm-regions button { padding: 6px 8px; font-size: 12px; }
  .wlm-foot { margin-top: 6px; }
  .wlm-legend { gap: 9px; font-size: 11px; }
  .wlm-legend .l { display: none; }
  .wlm-legend .s { display: inline; }
  .wlm-attr { text-align: left; }
  .wlm-attr .leaflet-control-attribution { font-size: 10px; }
  .wlm-panel { top: auto; left: 0; right: 0; bottom: 0; width: auto; height: 72%; border-radius: 16px 16px 0 0; transform: translateY(105%); }
  .wlm-legend { font-size: 10.5px; padding: 5px 8px; gap: 4px 10px; left: 8px; bottom: 44px; max-width: calc(100% - 16px); }
}

/* pływające elementy szablonu (czerwone kółko Bingc, cookies, strzałka w górę) na czas karty, galerii i trybu mapy; plik ładuje się tylko na tej stronie */
body.wlm-tryb .bingc-phone-button, body.wlm-tryb #bingc-phone-button, body.wlm-tryb .cky-btn-revisit-wrapper, body.wlm-tryb .elementor-element-c3189bb { visibility: hidden !important; }

/* niskie okno laptopa: mniejszy nagłówek sekcji */
@media (max-height: 760px) and (min-width: 641px) {
  .wlm { padding-top: 32px; }
  .wlm-head { margin-bottom: 16px; }
  .wlm .wlm-title { font-size: 34px; }
  .wlm-stat { padding: 10px 16px; }
  .wlm-stat b { font-size: 22px; }
  .wlm-stats { margin-bottom: 12px; }
}

/* galeria na cały ekran, poza .wlm (doklejona do body), więc własne zerowanie przycisków motywu */
.wlm-lb { position: fixed; inset: 0; z-index: 2147483000; display: none; background: rgba(20, 22, 26, var(--wlm-lb-a, .96)); touch-action: pinch-zoom; overscroll-behavior: contain; user-select: none; -webkit-user-select: none; font-family: "Montserrat", sans-serif; }
.wlm-lb.is-open { display: block; }
.wlm-lb-stage { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 56px 16px; }
.wlm-lb-stage img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; border-radius: 4px; transition: transform .18s ease, opacity .15s; }
.wlm-lb-stage img.is-loading { opacity: .35; }
.wlm-lb-count { position: absolute; top: 18px; left: 20px; color: #fff; font-size: 14px; font-weight: 500; font-variant-numeric: tabular-nums; }
.wlm-lb button, .wlm-lb button:hover, .wlm-lb button:focus { position: absolute; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; min-height: 0; padding: 0; margin: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.14); color: #fff; cursor: pointer; box-shadow: none; }
.wlm-lb button:hover { background: rgba(255,255,255,.26); }
.wlm-lb button:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.wlm-lb .wlm-lb-x { top: 8px; right: 10px; }
.wlm-lb .wlm-lb-prev { top: 50%; left: 14px; margin-top: -22px; }
.wlm-lb .wlm-lb-next { top: 50%; right: 14px; margin-top: -22px; }
.wlm-lb.is-single .wlm-lb-prev, .wlm-lb.is-single .wlm-lb-next, .wlm-lb.is-single .wlm-lb-count { display: none; }
@media (max-width: 640px), (pointer: coarse) { .wlm-lb .wlm-lb-prev, .wlm-lb .wlm-lb-next { display: none; } .wlm-lb-stage { padding: 56px 0; } }
@media (prefers-reduced-motion: reduce) { .wlm-panel, .wlm-pin span, .wlm-lb-stage img, .wlm-sen { transition: none; } }

/* ===== strona zbiorcza /realizacje/, podstrony realizacji, mapy osadzone ===== */
.wlm-hub, .wlm-det, .wlm-osadzona {
  --wlm-red: #E52D1A; --wlm-red-dark: #c42412; --wlm-navy: #424858; --wlm-ink: #292d32; --wlm-text: #5A5A5A;
  --wlm-bg: #F5F5F5; --wlm-line: #e3e5ea; --wlm-radius: 14px;
  font-family: "Montserrat", sans-serif; color: var(--wlm-text);
}
.wlm-hub *, .wlm-det *, .wlm-osadzona * { box-sizing: border-box; }
.wlm-hub .wlm { padding-bottom: 40px; }
.wlm-sekcja { max-width: 1210px; margin: 0 auto; padding: 0 0 72px; }
.wlm-sekcja-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 24px; margin-bottom: 20px; }
.wlm-hub .wlm-sekcja-head h2, .wlm-det .wlm-sekcja-head h2 { color: var(--wlm-navy); font-size: 32px; line-height: 1.25; font-weight: 600; margin: 0; }
.wlm-sekcja-head p { margin: 0; font-size: 15px; line-height: 1.55; max-width: 640px; }
.wlm-zdj-n { display: inline-block; min-width: 2.2em; margin-left: 6px; padding: 1px 8px; border-radius: 99px; background: var(--wlm-bg); color: var(--wlm-navy); font-weight: 600; text-align: center; font-variant-numeric: tabular-nums; }
.wlm-kafle { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.wlm-kafle-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.wlm-kafel { display: flex; flex-direction: column; border: 1px solid var(--wlm-line); border-radius: var(--wlm-radius); overflow: hidden; background: #fff; color: var(--wlm-text); text-decoration: none; transition: border-color .15s, box-shadow .15s, transform .15s; }
.wlm-kafel[hidden] { display: none; }
.wlm-kafel:hover, .wlm-kafel:focus-visible { border-color: var(--wlm-navy); box-shadow: 0 8px 24px rgba(41, 45, 50, .12); transform: translateY(-2px); color: var(--wlm-text); }
.wlm-kafel-img { position: relative; display: block; aspect-ratio: 3 / 2; background: #eef0f3; overflow: hidden; }
.wlm-kafel-img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.wlm-kafel-firma, .wlm-kafel-n { position: absolute; bottom: 8px; padding: 3px 9px; border-radius: 99px; font-size: 11.5px; font-weight: 600; line-height: 1.4; }
.wlm-kafel-firma { left: 8px; background: var(--wlm-navy); color: #fff; }
.wlm-kafel-n { right: 8px; background: rgba(255, 255, 255, .92); color: var(--wlm-ink); }
.wlm-hub .wlm-kafel-h, .wlm-det .wlm-kafel-h { margin: 0; padding: 12px 14px 2px; color: var(--wlm-navy); font-size: 15px; line-height: 1.35; font-weight: 600; }
.wlm-kafel-m { padding: 0 14px 14px; font-size: 13px; }
.wlm-opisane .wlm-kafel-h { padding-bottom: 14px; }
.wlm-zdj-pusto { margin: 0; padding: 24px; border-radius: var(--wlm-radius); background: var(--wlm-bg); text-align: center; }
.wlm-btn, .wlm-btn:visited { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 28px; border-radius: 8px; background: var(--wlm-red); color: #fff; font-weight: 600; font-size: 15px; text-decoration: none; transition: background .15s; }
.wlm-btn:hover, .wlm-btn:focus-visible { background: var(--wlm-red-dark); color: #fff; }
.wlm a.wlm-more { display: inline-flex; margin: 4px 0 14px; padding: 9px 16px; border-radius: 8px; background: var(--wlm-red); color: #fff; font-weight: 600; font-size: 14px; text-decoration: none; }
.wlm a.wlm-more:hover { background: var(--wlm-red-dark); color: #fff; }

/* mapa osadzona (strona główna, kategorie realizacji, usługi) */
.wlm-osadzona .wlm { padding-top: 48px; padding-bottom: 16px; }
.wlm-wszystkie { max-width: 1210px; margin: 8px auto 56px; text-align: center; }
.wlm-bez-firm .wlm-chip-f:not(.wlm-chip-z), .wlm-bez-firm .wlm-legend .f { display: none; }
.wlm-blad .wlm-map::after { content: "Nie udało się wczytać mapy. Odśwież stronę."; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }

/* podstrona realizacji */
.wlm-det { max-width: 1210px; margin: 0 auto; padding: 40px 0 24px; }
.wlm-okruszki { display: flex; flex-wrap: wrap; gap: 6px; font-size: 13px; margin-bottom: 20px; }
.wlm-okruszki a { color: var(--wlm-red); text-decoration: none; }
.wlm-okruszki a:hover { text-decoration: underline; }
.wlm-det-head { margin-bottom: 24px; }
.wlm-det .wlm-det-h1 { color: var(--wlm-navy); font-size: 40px; line-height: 1.2; font-weight: 600; margin: 0; max-width: 900px; }
.wlm-det-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(300px, 1fr); gap: 32px; align-items: start; margin-bottom: 64px; }
.wlm-det-gal { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.wlm-det .wlm-det-th { display: block; padding: 0; margin: 0; border: 0; border-radius: 10px; overflow: hidden; background: #eef0f3; cursor: zoom-in; aspect-ratio: 1; min-height: 0; width: 100%; }
.wlm-det .wlm-det-th:hover, .wlm-det .wlm-det-th:focus { background: #eef0f3; border: 0; }
.wlm-det .wlm-det-th.is-big { grid-column: 1 / -1; aspect-ratio: 3 / 2; border-radius: var(--wlm-radius); }
.wlm-det-gal.is-1 .wlm-det-th.is-big { aspect-ratio: auto; max-height: 640px; }
.wlm-det-th img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .25s; }
.wlm-det-th:hover img { transform: scale(1.03); }
.wlm-det-side { position: sticky; top: 120px; display: flex; flex-direction: column; gap: 16px; }
.wlm-det-tab { width: 100%; border-collapse: collapse; background: var(--wlm-bg); border-radius: var(--wlm-radius); overflow: hidden; font-size: 14px; margin: 0; }
.wlm-det-tab caption { caption-side: top; text-align: left; color: var(--wlm-navy); font-weight: 600; font-size: 18px; padding: 0 0 10px; }
.wlm-det-tab th, .wlm-det-tab td { border: 0; border-bottom: 1px solid var(--wlm-line); padding: 11px 16px; text-align: left; vertical-align: top; background: none; line-height: 1.45; }
.wlm-det-tab tr:last-child th, .wlm-det-tab tr:last-child td { border-bottom: 0; }
.wlm-det-tab th { width: 42%; color: var(--wlm-navy); font-weight: 600; }
.wlm-det-tab td { color: var(--wlm-ink); }
.wlm-det-mapa { height: 220px; border-radius: var(--wlm-radius); overflow: hidden; background: #eef0f3; z-index: 0; }
.wlm-det-mapa-p { margin: -6px 0 0; font-size: 13px; line-height: 1.5; }
.wlm-det-mapa-p a, .wlm-det-wroc a { color: var(--wlm-red); }
.wlm-det-wroc { margin: 0 0 32px; font-size: 15px; }
.wlm-det .wlm-pin { pointer-events: none; }

@media (max-width: 1240px) { .wlm-sekcja, .wlm-det, .wlm-wszystkie { padding-left: 16px; padding-right: 16px; } }
@media (max-width: 1024px) {
  .wlm-kafle { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .wlm-det-grid { grid-template-columns: minmax(0, 1fr); }
  .wlm-det-side { position: static; }
}
@media (max-width: 767px) {
  .wlm-kafle, .wlm-kafle-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .wlm-hub .wlm-kafel-h, .wlm-det .wlm-kafel-h { font-size: 13.5px; padding: 10px 10px 2px; }
  .wlm-kafel-m { padding: 0 10px 10px; font-size: 12px; }
  .wlm-hub .wlm-sekcja-head h2, .wlm-det .wlm-sekcja-head h2 { font-size: 24px; }
  .wlm-det { padding-top: 24px; }
  .wlm-det .wlm-det-h1 { font-size: 27px; }
  .wlm-det-gal { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  .wlm-osadzona .wlm { padding-top: 32px; }
}
@media (prefers-reduced-motion: reduce) { .wlm-kafel, .wlm-det-th img { transition: none; } .wlm-kafel:hover { transform: none; } }
.wlm-hub a.wlm-kafel, .wlm-det a.wlm-kafel, .wlm-hub a.wlm-kafel:hover, .wlm-det a.wlm-kafel:hover { color: var(--wlm-text); }
/* strona główna nadpisuje wysokość obrazków */
.wlm button.wlm-wyb img { width: 100% !important; height: 100px !important; max-width: none; object-fit: cover; }
.wlm-osadzona a.wlm-btn, .wlm-det a.wlm-btn, .wlm-hub a.wlm-btn, .wlm-osadzona a.wlm-btn:hover, .wlm-det a.wlm-btn:hover { color: #fff; }
/* strona główna: szerokość jak dawna sekcja „Zobacz nasze realizacje” (106 px od krawędzi) */
@media (min-width: 1025px) { .home .wlm-osadzona .wlm, .home .wlm-osadzona .wlm-wszystkie { max-width: none; padding-left: 106px; padding-right: 106px; } }
/* motyw na stronach kategorii nadpisuje wysokość obrazków */
.wlm-kafel-img img { width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; }
