/* Wizytówki Firm — styl katalogu. Neutralny wobec motywu, zakres .wiz-*.
   Fonty i kolor tekstu dziedziczone z motywu; własna jest tylko warstwa
   komponentów (hero, karty, chipy, tabele, mapa, paginacja). */
:root {
	--wiz-akcent: #1d4ed8;
	--wiz-akcent-cien: rgba(29, 78, 216, 0.10);
	--wiz-tekst-2: #5b6472;
	--wiz-tlo: #f7f8fa;
	--wiz-tlo-2: #eef1f5;
	--wiz-ramka: #e4e7ec;
	--wiz-radius: 14px;
	--wiz-radius-m: 10px;
	--wiz-ok: #047857;
	--wiz-ok-tlo: #ecfdf5;
	--wiz-uwaga: #b45309;
	--wiz-uwaga-tlo: #fffbeb;
}

/* ---------- drobiazgi wspólne ---------- */
.wiz-ikona {
	width: 1em;
	height: 1em;
	vertical-align: -0.12em;
	flex: none;
}
.wiz-awatar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 12px;
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	flex: none;
	user-select: none;
}
.wiz-badge {
	display: inline-block;
	font-size: 0.72rem;
	font-weight: 600;
	color: var(--wiz-tekst-2);
	background: var(--wiz-tlo-2);
	border-radius: 999px;
	padding: 0.2rem 0.65rem;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* ---------- breadcrumbs ---------- */
.wiz-okruszki {
	font-size: 0.82rem;
	color: var(--wiz-tekst-2);
	margin: 0 0 1rem;
	line-height: 1.8;
}
.wiz-okruszki a {
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid transparent;
}
.wiz-okruszki a:hover { color: var(--wiz-akcent); border-bottom-color: currentColor; }
.wiz-okruszki .wiz-sep { margin: 0 0.5em; opacity: 0.5; }
.wiz-okruszki [aria-current] { color: inherit; font-weight: 600; }

/* ---------- hero listingu ---------- */
.wiz-main .wiz-listing { padding-block: 0.4rem 2.4rem; }

.wiz-hero {
	background: linear-gradient(135deg, var(--wiz-tlo) 0%, #fff 55%, var(--wiz-tlo) 100%);
	border: 1px solid var(--wiz-ramka);
	border-radius: var(--wiz-radius);
	padding: 1.6rem 1.8rem 1.5rem;
	margin: 0 0 1.4rem;
	position: relative;
	overflow: hidden;
}
.wiz-hero::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 3px;
	background: linear-gradient(90deg, var(--wiz-akcent), transparent 70%);
}
.wiz-hero .wiz-okruszki { margin-bottom: 1.1rem; }
.wiz-hero-nadtytul {
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.09em;
	color: var(--wiz-akcent);
	margin: 0 0 0.25rem;
}
.wiz-hero-h1 {
	font-size: clamp(1.5rem, 3.2vw, 2.1rem);
	line-height: 1.2;
	margin: 0 0 0.6rem;
}
.wiz-intro {
	color: var(--wiz-tekst-2);
	line-height: 1.65;
	max-width: 64ch;
	margin: 0;
}
.wiz-staty {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.6rem;
	margin-top: 1.1rem;
	padding-top: 1rem;
	border-top: 1px dashed var(--wiz-ramka);
	font-size: 0.9rem;
	color: var(--wiz-tekst-2);
}
.wiz-stat strong {
	color: inherit;
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--wiz-akcent);
	margin-right: 0.25rem;
}

/* ---------- podregiony ---------- */
.wiz-podregiony {
	background: #fff;
	border: 1px solid var(--wiz-ramka);
	border-radius: var(--wiz-radius);
	padding: 1.1rem 1.4rem 1.2rem;
	margin: 0 0 1.6rem;
}
.wiz-podregiony h2 {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	font-size: 0.85rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--wiz-tekst-2);
	margin: 0 0 0.8rem;
}
.wiz-podregiony h2 .wiz-ikona { color: var(--wiz-akcent); }
.wiz-podregiony ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	max-height: 17rem;
	overflow-y: auto;
}
.wiz-podregiony li { margin: 0; }
.wiz-podregiony a {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	background: var(--wiz-tlo);
	border: 1px solid var(--wiz-ramka);
	border-radius: 999px;
	padding: 0.32rem 0.5rem 0.32rem 0.85rem;
	font-size: 0.88rem;
	font-weight: 500;
	text-decoration: none;
	color: inherit;
	transition: border-color 0.15s, background 0.15s, color 0.15s;
}
.wiz-podregiony a:hover {
	border-color: var(--wiz-akcent);
	color: var(--wiz-akcent);
	background: #fff;
}
.wiz-licznik {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.5rem;
	height: 1.5rem;
	padding: 0 0.35rem;
	border-radius: 999px;
	background: #fff;
	border: 1px solid var(--wiz-ramka);
	font-size: 0.72rem;
	font-weight: 700;
	color: var(--wiz-tekst-2);
}
.wiz-podregiony a:hover .wiz-licznik { color: var(--wiz-akcent); border-color: currentColor; }

/* ---------- siatka firm ---------- */
.wiz-firmy-siatka {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
	gap: 1rem;
}
.wiz-firma-karta {
	display: flex;
	flex-direction: column;
	gap: 0.7rem;
	background: #fff;
	border: 1px solid var(--wiz-ramka);
	border-radius: var(--wiz-radius);
	padding: 1.1rem 1.2rem 0.9rem;
	transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
}
.wiz-firma-karta:hover {
	border-color: var(--wiz-akcent);
	box-shadow: 0 10px 26px -12px var(--wiz-akcent-cien), 0 4px 14px -8px rgba(15, 23, 42, 0.12);
	transform: translateY(-2px);
}
.wiz-firma-glowa {
	display: flex;
	gap: 0.85rem;
	align-items: flex-start;
}
.wiz-firma-glowa-tekst { min-width: 0; }
.wiz-firma-karta h3 {
	font-size: 1.02rem;
	font-weight: 600;
	margin: 0 0 0.3rem;
	line-height: 1.35;
}
.wiz-firma-karta h3 a { text-decoration: none; color: inherit; }
.wiz-firma-karta h3 a:hover { color: var(--wiz-akcent); }
/* cały box klikalny w sensie wizualnym — realny link w tytule */
.wiz-firma-karta h3 a::after { content: ""; position: absolute; inset: 0; }
.wiz-firma-karta { position: relative; }
.wiz-firma-meta {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	font-size: 0.83rem;
	color: var(--wiz-tekst-2);
	margin: 0;
}
.wiz-firma-meta .wiz-ikona { color: var(--wiz-akcent); opacity: 0.75; }
.wiz-firma-pkd {
	font-size: 0.88rem;
	line-height: 1.55;
	margin: 0;
	color: inherit;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.wiz-firma-stopka {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.6rem;
	margin-top: auto;
	padding-top: 0.75rem;
	border-top: 1px solid var(--wiz-tlo-2);
}
.wiz-firma-dalej {
	display: inline-flex;
	color: var(--wiz-akcent);
	opacity: 0;
	transform: translateX(-4px);
	transition: opacity 0.15s, transform 0.15s;
}
.wiz-firma-karta:hover .wiz-firma-dalej { opacity: 1; transform: none; }

/* ---------- paginacja ---------- */
.wiz-paginacja {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	justify-content: center;
	margin: 1.8rem 0 0;
}
.wiz-str {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.4rem;
	height: 2.4rem;
	padding: 0 0.7rem;
	border: 1px solid var(--wiz-ramka);
	border-radius: 999px;
	text-decoration: none;
	color: inherit;
	background: #fff;
	font-size: 0.9rem;
	font-weight: 500;
	transition: border-color 0.15s, color 0.15s;
}
a.wiz-str:hover { border-color: var(--wiz-akcent); color: var(--wiz-akcent); }
.wiz-akt {
	background: var(--wiz-akcent);
	border-color: var(--wiz-akcent);
	color: #fff;
	font-weight: 700;
}
.wiz-kropki { align-self: center; color: var(--wiz-tekst-2); }
.wiz-pusto { color: var(--wiz-tekst-2); }

/* ---------- karta firmy (single) ---------- */
.wiz-wstep { font-size: 1.02rem; line-height: 1.7; }
.wiz-wstep a { color: var(--wiz-akcent); }

.wiz-siatka {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.1rem;
	margin: 0 0 1.1rem;
}
.wiz-siatka .wiz-karta { margin: 0; }
@media (max-width: 760px) {
	.wiz-siatka { grid-template-columns: 1fr; }
}

.wiz-karta {
	background: #fff;
	border: 1px solid var(--wiz-ramka);
	border-radius: var(--wiz-radius);
	padding: 1.2rem 1.35rem;
	margin: 0 0 1.1rem;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03);
}
.wiz-karta h2 {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.85rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--wiz-tekst-2);
	margin: 0 0 0.85rem;
	padding-bottom: 0.6rem;
	border-bottom: 1px solid var(--wiz-tlo-2);
}
.wiz-karta h2 .wiz-ikona { color: var(--wiz-akcent); font-size: 1.05rem; }

.wiz-tabela { width: 100%; border-collapse: collapse; font-size: 0.94rem; }
/* !important: motywy zaplecz kolorują th (tło+biały tekst) mocniejszymi selektorami */
.wiz-tabela th {
	text-align: left;
	padding: 0.45rem 1rem 0.45rem 0;
	background: transparent !important;
	color: var(--wiz-tekst-2) !important;
	font-weight: 600;
	font-size: 0.86rem;
	white-space: nowrap;
	vertical-align: top;
	width: 1%;
	border: 0;
}
.wiz-tabela td { padding: 0.45rem 0; background: transparent !important; border: 0; font-variant-numeric: tabular-nums; }
.wiz-tabela tr + tr { border-top: 1px solid var(--wiz-tlo-2); }

.wiz-status {
	display: inline-block;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	border-radius: 999px;
	padding: 0.16rem 0.6rem;
}
.wiz-status-ok { color: var(--wiz-ok); background: var(--wiz-ok-tlo); }
.wiz-status-uwaga { color: var(--wiz-uwaga); background: var(--wiz-uwaga-tlo); }

.wiz-adres { line-height: 1.75; margin: 0 0 0.85rem; }
#wiz-mapa {
	height: 300px;
	border-radius: var(--wiz-radius-m);
	border: 1px solid var(--wiz-ramka);
	z-index: 0;
}
.wiz-nota { font-size: 0.78rem; color: var(--wiz-tekst-2); margin: 0.45rem 0 0; }

.wiz-pkd { list-style: none; margin: 0; padding: 0; }
.wiz-pkd li {
	display: flex;
	align-items: baseline;
	gap: 0.55rem;
	padding: 0.42rem 0;
	border-bottom: 1px dashed var(--wiz-tlo-2);
	line-height: 1.5;
}
.wiz-pkd li:last-child { border-bottom: 0; }
.wiz-pkd code {
	background: var(--wiz-tlo);
	border: 1px solid var(--wiz-ramka);
	border-radius: 6px;
	padding: 0.06rem 0.45rem;
	font-size: 0.8em;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
.wiz-pkd-glowny { font-weight: 600; }
.wiz-znacznik {
	font-size: 0.68rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--wiz-akcent);
	background: var(--wiz-akcent-cien);
	border-radius: 999px;
	padding: 0.12rem 0.55rem;
	white-space: nowrap;
}

.wiz-kontakt { line-height: 1.9; }
.wiz-kontakt .wiz-etykieta {
	display: inline-block;
	min-width: 5.5em;
	color: var(--wiz-tekst-2);
	font-weight: 600;
	font-size: 0.88rem;
}
.wiz-kontakt a { color: var(--wiz-akcent); }

.wiz-podobne {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: 0.6rem;
}
.wiz-podobna {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	padding: 0.55rem 0.7rem;
	border: 1px solid var(--wiz-tlo-2);
	border-radius: var(--wiz-radius-m);
	text-decoration: none;
	color: inherit;
	transition: border-color 0.15s, background 0.15s;
}
.wiz-podobna:hover { border-color: var(--wiz-akcent); background: var(--wiz-tlo); }
.wiz-podobna .wiz-awatar { width: 34px; height: 34px; border-radius: 9px; font-size: 0.78rem; }
.wiz-podobna-nazwa {
	font-size: 0.88rem;
	font-weight: 600;
	line-height: 1.35;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.wiz-wiecej-wrap { margin: 0.9rem 0 0; }
.wiz-wiecej {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-weight: 600;
	font-size: 0.92rem;
	color: var(--wiz-akcent);
	text-decoration: none;
}
.wiz-wiecej:hover { text-decoration: underline; }

.wiz-zrodlo {
	font-size: 0.8rem;
	color: var(--wiz-tekst-2);
	border-top: 1px solid var(--wiz-ramka);
	padding-top: 0.85rem;
	margin-top: 1.5rem;
}
