/*
 * Lumpeksy Core – style bloków. Kolory i odstępy biorą wartości z motywu (theme.json),
 * a bez motywu Lumpeksy działają na wartościach zapasowych.
 */
:where(.lw-dane, .lw-etykiety, .lw-karty, .lw-karta, .lw-mapa, .lw-dzis, .lw-dzielnice, .lw-typy, .lw-dni, .lw-usp, .lw-okruszki, .lw-naglowek, .lw-szukaj, .lw-okolica) {
	--lw-ink: var(--wp--preset--color--atrament, #16131d);
	--lw-akcent: var(--wp--preset--color--fiolet, #5a2be0);
	--lw-akcent-ciemny: var(--wp--preset--color--fiolet-ciemny, #3b1a9e);
	--lw-akcent-tlo: var(--wp--preset--color--fiolet-mgla, #f0ebff);
	--lw-metka: var(--wp--preset--color--metka, #ffd53d);
	--lw-metka-tlo: var(--wp--preset--color--metka-jasna, #fff4c2);
	--lw-ok: var(--wp--preset--color--mieta, #0e7a54);
	--lw-ok-tlo: var(--wp--preset--color--mieta-jasna, #e3f5ec);
	--lw-stop: var(--wp--preset--color--cegla, #b8322a);
	--lw-tlo: var(--wp--preset--color--papier, #f7f5f1);
	--lw-linia: var(--wp--preset--color--linia, #e6e1ec);
	--lw-szary: var(--wp--preset--color--szary, #615b6d);
	--lw-bialy: var(--wp--preset--color--bialy, #fff);
	--lw-r: 16px;
	--lw-cien: 0 1px 2px rgb(22 19 29 / 6%), 0 8px 24px -12px rgb(22 19 29 / 18%);
}

.lw-ikona { flex: none; vertical-align: -0.2em; }

/* --- Chipy i metki ---------------------------------------------------- */
.lw-chip {
	display: inline-flex; align-items: center; gap: .35em;
	padding: .3em .8em; border-radius: 999px;
	border: 1px solid var(--lw-linia); background: var(--lw-bialy); color: var(--lw-ink);
	font: inherit; font-size: .8125rem; font-weight: 700; line-height: 1.3;
	text-decoration: none; white-space: nowrap; cursor: pointer;
	transition: background-color .15s, border-color .15s, color .15s;
}
a.lw-chip:hover, button.lw-chip:hover { border-color: var(--lw-akcent); color: var(--lw-akcent); }
.lw-chip[aria-pressed="true"] { background: var(--lw-ink); border-color: var(--lw-ink); color: var(--lw-bialy); }
.lw-chip:focus-visible { outline: 3px solid var(--lw-akcent); outline-offset: 2px; }
.lw-chip--na-wage { background: var(--lw-metka-tlo); border-color: transparent; }
.lw-chip--vintage { background: #fbe8ef; border-color: transparent; }
.lw-chip--charytatywny { background: var(--lw-ok-tlo); border-color: transparent; }
.lw-chip--dyskont, .lw-chip--outlet { background: #e7f0fd; border-color: transparent; }
.lw-chip--dzielnica { background: var(--lw-akcent-tlo); border-color: transparent; color: var(--lw-akcent-ciemny); }
.lw-chip--akcja { border-color: var(--lw-ink); }
.lw-chip.is-laduje { opacity: .6; cursor: progress; }

.lw-metka {
	display: inline-flex; align-items: center; gap: .3em;
	padding: .2em .6em; border-radius: 6px;
	font-size: .75rem; font-weight: 800; letter-spacing: .02em; line-height: 1.4;
}
.lw-metka[hidden], .lw-metka.is-ukryta { display: none; }
.lw-metka--dostawa { background: var(--lw-metka); color: var(--lw-ink); }
.lw-metka--uwaga { background: var(--lw-tlo); color: var(--lw-szary); border: 1px dashed var(--lw-linia); }
.lw-metka--zamkniety { background: var(--lw-stop); color: #fff; }
.lw-metka--partner { background: var(--lw-ink); color: var(--lw-bialy); text-transform: uppercase; font-size: .6875rem; }

.lw-stan { display: inline-flex; align-items: center; gap: .4em; font-size: .8125rem; font-weight: 700; }
.lw-stan::before { content: ""; width: .5em; height: .5em; border-radius: 50%; background: currentColor; }
.lw-stan--otwarte { color: var(--lw-ok); }
.lw-stan--zamkniete { color: var(--lw-stop); }

.lw-etykiety { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }

/* --- Karty sklepów ----------------------------------------------------- */
.lw-karty { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.lw-karty--przewijane {
	display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 4px;
	padding: 4px 4px 14px; margin: -4px; scrollbar-width: thin;
}
.lw-karty--przewijane > .lw-karta { flex: 0 0 min(280px, 80vw); scroll-snap-align: start; }
.lw-karta {
	position: relative; display: flex; flex-direction: column; gap: .4rem;
	padding: 16px; border-radius: var(--lw-r); background: var(--lw-bialy);
	border: 1px solid var(--lw-linia); box-shadow: var(--lw-cien);
	transition: border-color .15s, transform .15s;
}
.lw-karta:hover, .lw-karta.is-aktywna { border-color: var(--lw-akcent); }
.lw-karta[hidden] { display: none; }
.lw-karta__gora { display: flex; flex-wrap: wrap; gap: 6px; min-height: 1.5rem; }
.lw-karta__gora .lw-chip { font-size: .75rem; padding: .15em .6em; cursor: default; }
.lw-karta__tytul { margin: 0; font-size: 1.0625rem; line-height: 1.3; font-weight: 800; }
.lw-karta__tytul a { color: var(--lw-ink); text-decoration: none; }
.lw-karta__tytul a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.lw-karta__tytul a:focus-visible { outline: none; }
.lw-karta:has(.lw-karta__tytul a:focus-visible) { outline: 3px solid var(--lw-akcent); outline-offset: 2px; }
.lw-karta__adres, .lw-karta__info { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .6rem; font-size: .875rem; color: var(--lw-szary); }
.lw-karta__adres .lw-ikona { color: var(--lw-akcent); }
.lw-karta__dz { color: var(--lw-szary); }
.lw-karta__km { font-weight: 700; color: var(--lw-ink); }
.lw-karta__dostawy { display: inline-flex; align-items: center; gap: .3em; }
.lw-karta-meta .lw-karta__adres { margin-bottom: .35rem; }

/* --- Sekcje ------------------------------------------------------------- */
.lw-sekcja__gora { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem 1rem; margin-bottom: 1rem; }
.lw-sekcja__tytul { margin: 0 0 1rem; font-size: clamp(1.375rem, 1.1rem + 1vw, 1.75rem); font-weight: 900; letter-spacing: -.01em; }
.lw-sekcja__gora .lw-sekcja__tytul { margin: 0; }
.lw-licznik { display: inline-grid; place-items: center; min-width: 1.6em; height: 1.6em; margin-left: .4em; padding: 0 .4em; border-radius: 999px; background: var(--lw-metka); font-size: .75em; vertical-align: .15em; }
.lw-wiecej { display: inline-flex; align-items: center; gap: .3em; font-weight: 800; color: var(--lw-akcent); text-decoration: none; }
.lw-wiecej:hover { text-decoration: underline; }
.lw-pusto { padding: 1rem 1.25rem; border-radius: var(--lw-r); background: var(--lw-tlo); color: var(--lw-szary); }

/* --- Dane sklepu --------------------------------------------------------- */
.lw-dane {
	border-radius: 20px; background: var(--lw-bialy); border: 1px solid var(--lw-linia);
	box-shadow: var(--lw-cien); overflow: hidden;
}
.lw-minimapa { height: 210px; background: var(--lw-tlo); }
.lw-dane__wiersze { padding: 8px 20px; }
.lw-dane__wiersz { display: grid; grid-template-columns: 22px 1fr; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--lw-linia); }
.lw-dane__wiersz:last-child { border-bottom: 0; }
.lw-dane__wiersz > .lw-ikona { color: var(--lw-akcent); margin-top: 2px; }
.lw-dane__etykieta { margin: 0 0 .25rem; font-size: .75rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--lw-szary); }
.lw-dane__wartosc { font-size: .9375rem; line-height: 1.5; }
.lw-dane__wartosc a { color: var(--lw-akcent-ciemny); }
.lw-dane__pod { font-size: .8125rem; color: var(--lw-szary); margin: .3rem 0 0; }
.lw-dane__brak { color: var(--lw-szary); font-style: italic; }
.lw-dane__akcje { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 0 20px 20px; }
.lw-dane__sprawdzono { display: flex; align-items: center; gap: .4em; margin: 0; padding: 12px 20px; background: var(--lw-tlo); font-size: .8125rem; color: var(--lw-szary); }
.lw-dane__sprawdzono .lw-ikona { color: var(--lw-ok); }

.lw-przycisk {
	display: inline-flex; align-items: center; justify-content: center; gap: .4em;
	padding: .7em 1.1em; border-radius: 999px; border: 2px solid var(--lw-akcent);
	background: var(--lw-akcent); color: #fff; font: inherit; font-weight: 800; font-size: .9375rem;
	text-decoration: none; cursor: pointer; transition: background-color .15s, color .15s;
}
.lw-przycisk:hover { background: var(--lw-akcent-ciemny); border-color: var(--lw-akcent-ciemny); color: #fff; }
.lw-przycisk--jasny { background: transparent; color: var(--lw-akcent-ciemny); }
.lw-przycisk--jasny:hover { background: var(--lw-akcent-tlo); color: var(--lw-akcent-ciemny); }

.lw-godziny { width: 100%; margin-top: .5rem; border-collapse: collapse; font-size: .875rem; }
.lw-godziny th, .lw-godziny td { padding: .3rem 0; text-align: left; font-weight: 400; border: 0; }
.lw-godziny td { text-align: right; font-variant-numeric: tabular-nums; }
.lw-godziny tr.is-dzis { font-weight: 800; }
.lw-godziny tr.is-dzis th, .lw-godziny tr.is-dzis td { font-weight: 800; }
.lw-godziny .lw-metka { margin-left: .4em; padding: .05em .4em; font-size: .6875rem; }

.lw-tydzien { list-style: none; display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin: 0; padding: 0; }
.lw-tydzien li { padding: .35rem 0; border-radius: 8px; background: var(--lw-tlo); color: var(--lw-szary); font-size: .75rem; font-weight: 700; text-align: center; }
.lw-tydzien li.is-dostawa { background: var(--lw-metka); color: var(--lw-ink); }
.lw-tydzien li.is-dzis { outline: 2px solid var(--lw-ink); outline-offset: -2px; }

/* --- Mapa ---------------------------------------------------------------- */
.lw-mapa { --lw-wys: 520px; }
.lw-mapa--niska { --lw-wys: 380px; }
.lw-mapa--pelna { --lw-wys: calc(100vh - 140px); --lw-wys: calc(100dvh - 140px); }
.lw-filtry { display: grid; gap: 10px; margin-bottom: 16px; }
.lw-filtry[hidden] { display: none; }
.lw-filtry__rzad { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.lw-filtry__et { font-size: .8125rem; font-weight: 800; color: var(--lw-szary); margin-right: 2px; }
.lw-filtry__szukaj { flex: 1 1 240px; }
.lw-filtry input[type="search"], .lw-filtry select {
	width: 100%; min-height: 42px; padding: .5em 1em; border-radius: 999px;
	border: 1px solid var(--lw-linia); background: var(--lw-bialy); font: inherit; font-size: .9375rem; color: var(--lw-ink);
}
.lw-filtry select { width: auto; padding-right: 2.2em; }
.lw-filtry input:focus-visible, .lw-filtry select:focus-visible { outline: 3px solid var(--lw-akcent); outline-offset: 1px; }

.lw-mapa__uklad { display: grid; gap: 16px; }
.lw-mapa--z-lista .lw-mapa__uklad { grid-template-columns: minmax(300px, 400px) 1fr; }
.lw-mapa__mapa { height: var(--lw-wys); border-radius: 20px; overflow: hidden; background: var(--lw-tlo); z-index: 0; }
.lw-mapa__lista { height: var(--lw-wys); overflow-y: auto; padding: 2px 8px 2px 2px; scrollbar-width: thin; }
.lw-mapa__lista .lw-karty { grid-template-columns: 1fr; }
.lw-mapa__wynik { margin: 0 0 .75rem; font-size: .9375rem; }
.lw-mapa__przelacznik { display: none; }

@media (max-width: 781px) {
	.lw-mapa--z-lista .lw-mapa__uklad { grid-template-columns: 1fr; }
	.lw-mapa__lista { height: auto; max-height: none; overflow: visible; padding: 0; }
	.lw-mapa__mapa { height: min(var(--lw-wys), 70vh); }
	.lw-mapa[data-widok="lista"] .lw-mapa__mapa { display: none; }
	.lw-mapa[data-widok="mapa"] .lw-mapa__lista { display: none; }
	.lw-mapa__przelacznik:not([hidden]) {
		position: sticky; bottom: 16px; z-index: 5; display: flex; width: max-content; margin: 16px auto 0;
		padding: 4px; border-radius: 999px; background: var(--lw-ink); box-shadow: 0 8px 24px rgb(0 0 0 / 25%);
	}
	.lw-mapa__przelacznik button { display: inline-flex; align-items: center; gap: .4em; padding: .6em 1.1em; border: 0; border-radius: 999px; background: transparent; color: #fff; font: inherit; font-weight: 800; }
	.lw-mapa__przelacznik button[aria-pressed="true"] { background: #fff; color: var(--lw-ink); }
	.lw-filtry__rzad[role="group"] { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; scrollbar-width: none; }
}

/* Pinezki i klastry Leaflet */
.lw-pin span {
	display: block; width: 30px; height: 30px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg);
	background: var(--wp--preset--color--fiolet, #5a2be0); border: 3px solid #fff; box-shadow: 0 2px 6px rgb(0 0 0 / 35%);
	transition: background-color .15s, transform .15s;
}
.lw-pin.is-aktywna span { background: var(--wp--preset--color--metka, #ffd53d); transform: rotate(-45deg) scale(1.15); }
.lw-pin.is-aktywna { z-index: 1000 !important; }
.lw-klaster { display: grid; place-items: center; }
.lw-klaster span {
	display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%;
	background: var(--wp--preset--color--atrament, #16131d); color: #fff; font-weight: 900; font-size: .875rem;
	box-shadow: 0 0 0 5px rgb(90 43 224 / 30%);
}
.lw-ja { fill: #1a73e8; fill-opacity: 1; stroke: #fff; stroke-width: 3; }
.lw-popup { display: grid; gap: .25rem; min-width: 180px; font-family: inherit; }
.lw-popup a { color: var(--wp--preset--color--atrament, #16131d); font-size: 1rem; }
.lw-popup > span:not(.lw-stan):not(.lw-metka) { color: var(--wp--preset--color--szary, #615b6d); font-size: .8125rem; }
.lw-popup .lw-metka { justify-self: start; }
.leaflet-container { font-family: inherit; }
.leaflet-popup-content-wrapper { border-radius: 14px; }

/* --- Dzielnice, typy, dni ------------------------------------------------- */
.lw-dzielnice ul, .lw-typy ul, .lw-dni ul, .lw-usp ul { list-style: none; margin: 0; padding: 0; }
.lw-dzielnice--kafelki ul { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); }
.lw-dzielnica {
	display: flex; flex-direction: column; gap: .15rem; padding: 14px 16px; border-radius: var(--lw-r);
	background: var(--lw-bialy); border: 1px solid var(--lw-linia); color: var(--lw-ink); text-decoration: none;
	transition: border-color .15s, background-color .15s;
}
.lw-dzielnica:hover, .lw-dzielnica[aria-current] { border-color: var(--lw-akcent); background: var(--lw-akcent-tlo); }
.lw-dzielnica__nazwa { font-weight: 800; font-size: 1rem; }
.lw-dzielnica__n { font-size: .8125rem; color: var(--lw-szary); }
.lw-dzielnica.is-pusta { opacity: .6; }
.lw-dzielnice--chipy ul { display: flex; flex-wrap: wrap; gap: 8px; }
.lw-dzielnice--chipy .lw-dzielnica { flex-direction: row; align-items: baseline; gap: .4em; padding: .35em .9em; border-radius: 999px; }
.lw-dzielnice--chipy .lw-dzielnica__nazwa { font-size: .875rem; }
.lw-dzielnice--chipy .lw-dzielnica__n { font-size: .75rem; }

.lw-typy ul { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.lw-typ {
	position: relative; display: grid; gap: .3rem; min-height: 132px; padding: 18px; border-radius: 20px;
	background: var(--lw-tlo); color: var(--lw-ink); text-decoration: none; overflow: hidden; align-content: start;
	transition: transform .15s;
}
.lw-typ:hover { transform: translateY(-2px); }
.lw-typ__nazwa { font-size: 1.25rem; font-weight: 900; }
.lw-typ__opis { font-size: .875rem; color: var(--lw-szary); }
.lw-typ__n { margin-top: auto; font-size: .8125rem; font-weight: 800; }
.lw-typ--na-wage { background: var(--lw-metka-tlo); }
.lw-typ--vintage { background: #fbe8ef; }
.lw-typ--charytatywny { background: var(--lw-ok-tlo); }
.lw-typ--dyskont, .lw-typ--outlet { background: #e7f0fd; }
.lw-typ--premium { background: var(--lw-akcent-tlo); }

.lw-dni ul { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.lw-dzien {
	display: grid; justify-items: center; gap: .1rem; padding: 10px 4px; border-radius: 14px;
	background: var(--lw-bialy); border: 1px solid var(--lw-linia); color: var(--lw-ink); text-decoration: none;
}
.lw-dzien:hover, .lw-dzien[aria-current] { border-color: var(--lw-ink); }
.lw-dzien.is-dzis { background: var(--lw-metka); border-color: var(--lw-metka); }
.lw-dzien__nazwa { font-weight: 800; font-size: .875rem; }
.lw-dzien__n { font-size: .75rem; color: var(--lw-szary); }
.lw-dzien.is-dzis .lw-dzien__n { color: var(--lw-ink); }

/* --- Pasek korzyści (jak domodi) ----------------------------------------- */
.lw-usp ul { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.lw-usp a { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 14px; color: var(--lw-ink); text-decoration: none; }
.lw-usp a:hover { background: var(--lw-tlo); }
.lw-usp .lw-ikona { width: 36px; height: 36px; padding: 8px; border-radius: 50%; background: var(--lw-akcent-tlo); color: var(--lw-akcent); }
.lw-usp li:first-child .lw-ikona { background: var(--lw-metka); color: var(--lw-ink); }
.lw-usp span { display: grid; line-height: 1.25; }
.lw-usp strong { font-size: .875rem; font-weight: 800; }
.lw-usp small { font-size: .75rem; color: var(--lw-szary); }
@media (max-width: 781px) {
	.lw-usp ul { display: flex; overflow-x: auto; scrollbar-width: none; }
	.lw-usp li { flex: 0 0 auto; }
}

/* --- Okruszki i nagłówek listy ------------------------------------------- */
.lw-okruszki ol { display: flex; flex-wrap: wrap; gap: .25rem; list-style: none; margin: 0; padding: 0; font-size: .8125rem; color: var(--lw-szary); }
.lw-okruszki li + li::before { content: "/"; margin-right: .25rem; color: var(--lw-linia); }
.lw-okruszki a { color: var(--lw-szary); text-decoration: none; }
.lw-okruszki a:hover { color: var(--lw-akcent); text-decoration: underline; }
.lw-okruszki [aria-current] { color: var(--lw-ink); }

.lw-eyebrow { margin: 0 0 .5rem; font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--lw-akcent); }
.lw-naglowek__h1 { margin: 0; font-size: clamp(2rem, 1.4rem + 2.6vw, 3.25rem); font-weight: 900; line-height: 1.05; letter-spacing: -.02em; }
.lw-naglowek__licznik { margin: .75rem 0 0; font-size: .9375rem; color: var(--lw-szary); }
.lw-naglowek__opis { max-width: 68ch; margin-top: 1rem; font-size: 1.0625rem; }
.lw-naglowek__opis p { margin: 0 0 .75em; }

/* --- Szukaj w artykułach ------------------------------------------------- */
.lw-szukaj { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.lw-szukaj input[type="search"] { flex: 1 1 260px; min-height: 48px; padding: .6em 1.2em; border-radius: 999px; border: 1px solid var(--lw-linia); background: var(--lw-bialy); font: inherit; }
.lw-szukaj input:focus-visible { outline: 3px solid var(--lw-akcent); outline-offset: 1px; }
.lw-szukaj__n { flex-basis: 100%; margin: 0; font-size: .8125rem; color: var(--lw-szary); }

.lw-edytor-pusto { padding: 1rem; border: 1px dashed #ccc; color: #757575; font-size: 13px; }

@media (prefers-reduced-motion: reduce) {
	.lw-karta, .lw-typ, .lw-pin span { transition: none; }
	.lw-typ:hover { transform: none; }
}
