/* ---------- Kontakt — „Znajdź placówkę” (com_catalog, widok jednostki; kontakt.js) ----------
   Nagłówek z liczbami, panel wyszukiwania i filtrów przyklejony przy przewijaniu, karty placówek w grupach województw,
   Biuro Zakładu na granatowym tle. Kolory, kroje i promienie — tokeny szablonu zdz (także tryb ciemny i palety „Wygląd”). */

.kn-glowa{ margin-bottom:24px; }
.kn-liczby{ display:flex; flex-wrap:wrap; gap:14px 32px; margin:20px 0 0; }
.kn-liczby div{ display:flex; flex-direction:column-reverse; }
.kn-liczby dd{ margin:0; font-family:var(--font-head); font-size:30px; line-height:1; font-weight:var(--fw-head-mocny, 700); color:var(--ink); font-variant-numeric:tabular-nums; letter-spacing:-.02em; }
.kn-liczby dt{ margin-top:4px; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }

/* Panel wyszukiwania — przykleja się pod menu (na komputerze menu też jest przyklejone) */
.kn-panel{
  position:sticky; top:12px; z-index:20; margin:0 0 22px; padding:16px;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow);
}
@media (min-width:1101px){ .kn-panel{ top:84px; } }
/* WCAG 2.4.11: element z fokusem (Tab) nie chowa się pod przyklejonym menu i panelem — przewijanie zostawia na nie miejsce */
html:has(.kn-panel){ scroll-padding-top:200px; }
@media (min-width:1101px){ html:has(.kn-panel){ scroll-padding-top:270px; } }
@media (max-width:640px){ html:has(.kn-panel){ scroll-padding-top:16px; } }
.kn-szukaj{ position:relative; display:flex; align-items:center; gap:8px; }
.kn-szukaj > svg{ position:absolute; left:15px; top:50%; transform:translateY(-50%); fill:none; stroke:var(--muted); stroke-width:2; stroke-linecap:round; pointer-events:none; }
.kn-szukaj__pole{
  flex:1 1 auto; min-width:0; height:50px; padding:0 46px 0 44px; background:var(--surface-2);
  border:1px solid var(--line-pole, var(--line-strong)); border-radius:12px; color:var(--ink); font:inherit; font-size:16px;
}
.kn-szukaj__pole::placeholder{ color:var(--muted); }
.kn-szukaj__pole:focus{ outline:none; border-color:var(--accent); background:var(--surface); box-shadow:0 0 0 3px var(--accent-soft); }
.kn-szukaj__pole::-webkit-search-cancel-button{ display:none; }
.kn-szukaj__wyczysc{
  position:absolute; right:8px; top:50%; transform:translateY(-50%); display:grid; place-items:center; width:36px; height:36px;
  padding:0; border:0; border-radius:50%; background:none; color:var(--muted); font-size:20px; line-height:1; cursor:pointer;
}
.kn-szukaj__wyczysc[hidden]{ display:none; }
.kn-szukaj__wyczysc:hover{ background:var(--surface-2); color:var(--ink); }
.kn-szukaj__przycisk{ height:50px; padding:0 20px; border:0; border-radius:12px; background:var(--grad-cta); color:var(--on-cta); font:inherit; font-weight:700; cursor:pointer; }
.kn--js .kn-szukaj__przycisk{ display:none; }   /* z JavaScriptem wyniki zmieniają się podczas pisania */
.kn:not(.kn--js) .kn-szukaj__wyczysc{ display:none; }   /* „×” działa tylko ze skryptem */

.kn-filtry{ display:flex; flex-wrap:wrap; gap:12px 24px; margin-top:14px; }
.kn-filtr{ display:flex; flex-wrap:wrap; align-items:center; gap:7px; }
.kn-filtr__nazwa{ margin-right:2px; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.kn .chip{ display:inline-flex; align-items:center; min-height:36px; text-decoration:none; }
.kn .chip[aria-current="true"]{ background:var(--accent-fill); border-color:var(--accent-fill); color:#fff; }

/* Wynik i pusta lista */
.kn-wynik{ margin:0 0 16px; font-size:14px; color:var(--muted); font-variant-numeric:tabular-nums; }
.kn-wynik strong{ color:var(--ink); }
.kn-wynik a{ color:var(--accent-dark); font-weight:600; }
.kn-pusto{ margin:0 0 28px; padding:44px 24px; text-align:center; background:var(--surface); border:1px dashed var(--line-strong); border-radius:var(--radius); color:var(--muted); }
.kn-pusto[hidden]{ display:none; }
.kn-pusto p{ margin:0; }
.kn-pusto__tytul{ margin-bottom:6px !important; font-size:17px; font-weight:700; color:var(--ink); }
.kn-pusto a{ color:var(--accent-dark); font-weight:600; }

/* Grupy województw */
.kn-region{ margin:0 0 32px; }
.kn-region[hidden]{ display:none; }
.kn-region__glowa{ display:flex; align-items:baseline; gap:10px; margin:0 0 14px; padding-bottom:10px; border-bottom:1px solid var(--line); }
.zdz-k .kn-region__nazwa{ margin:0; font-family:var(--font-body); font-size:13px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--ink); }
.kn-region__liczba{ font-size:12.5px; color:var(--muted); font-variant-numeric:tabular-nums; }
/* Najwyżej trzy karty w wierszu; na tablecie dwie, na telefonie jedna */
.kn-siatka{ display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:18px; margin:0; padding:0; list-style:none; }
@media (max-width:1000px){ .kn-siatka{ grid-template-columns:repeat(2, minmax(0, 1fr)); } }

/* Karta placówki */
.kn-karta{
  display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; transition:box-shadow .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease);
}
.kn-karta[hidden]{ display:none; }
.kn-karta:hover{ border-color:var(--line-strong); box-shadow:var(--shadow-lg); transform:translateY(-2px); }
.kn-karta:target{ border-color:var(--accent); box-shadow:0 0 0 2px var(--accent); }
.kn-karta__gora{ padding:18px 20px 14px; border-bottom:1px solid var(--line); }
.zdz-k .kn-karta__miasto{ margin:0 0 2px; font-family:var(--font-head); font-size:21px; line-height:1.2; font-weight:var(--fw-head-mocny, 700); color:var(--ink); text-wrap:balance; }
.kn-karta__jednostka{ margin:0; font-size:13.5px; line-height:1.4; color:var(--muted); }
.kn-karta__tagi{ display:flex; flex-wrap:wrap; gap:5px; margin:10px 0 0; }
.kn-tag{ padding:3px 9px; border-radius:6px; background:var(--accent-soft); color:var(--accent-dark); font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
:root:not([data-theme="dark"]) .kn-tag{ color:color-mix(in srgb, var(--accent-dark) 82%, #000); }   /* kontrast 4,5:1 na jasnym tle */

.kn-karta__tresc{ display:flex; flex-direction:column; gap:12px; flex:1 1 auto; padding:16px 20px; }
.kn-pole{ display:grid; grid-template-columns:18px minmax(0,1fr); gap:10px; align-items:start; margin:0; font-size:14.5px; line-height:1.5; color:var(--text); }
.kn-pole > svg{ margin-top:3px; fill:none; stroke:var(--accent); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.kn-pole b{ display:block; font-weight:600; color:var(--ink); }
.kn-pole a{ color:var(--ink); text-decoration:none; overflow-wrap:anywhere; }
.kn-pole a:hover{ color:var(--accent-dark); text-decoration:underline; text-underline-offset:3px; }
.kn-pole--typy{ font-size:13.5px; color:var(--muted); }
.kn-telefony{ display:grid; gap:5px; margin:0; padding:0; list-style:none; }
.kn-telefony li{ display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 8px; }
.kn-telefon__rodzaj{ min-width:78px; font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); }
.kn-pole a.kn-telefon__numer{ font-weight:600; font-variant-numeric:tabular-nums; letter-spacing:.01em; }

.kn-karta__akcje{ display:flex; flex-wrap:wrap; gap:8px; padding:0 20px 18px; }
.kn-karta__akcje .btn-sm{ min-height:40px; }
.kn-karta__akcje .btn-sm svg{ fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.kn-karta__akcje .is-skopiowano{ border-color:var(--success); color:var(--success); }

/* Biuro Zakładu */
.kn-biuro{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:22px; margin:36px 0 8px; padding:26px 28px;
  border-radius:calc(var(--radius) + 4px); background:var(--grad-navy); color:#fff;
}
.kn-biuro__marka{ grid-column:1 / -1; }
.kn-biuro__etykieta{ margin:0 0 4px; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--accent-on-dark); }
.zdz-k .kn-biuro__nazwa{ margin:0; font-family:var(--font-head); font-size:clamp(20px, 2.4vw, 25px); line-height:1.2; font-weight:var(--fw-head-mocny, 700); color:#fff; }
.kn-biuro__pole{ margin:0; font-size:15px; line-height:1.6; color:rgba(255,255,255,.88); }
.kn-biuro__pole b{ display:block; margin-bottom:3px; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.7); }
.kn-biuro__pole a{ color:#fff; text-decoration:none; border-bottom:1px solid rgba(255,255,255,.4); }
.kn-biuro__pole a:hover{ border-bottom-color:#fff; }
.kn-biuro a:focus-visible{ outline:3px solid #fff; outline-offset:2px; }

@media (max-width:640px){
  .kn-panel{ position:static; padding:14px; }
  .kn-siatka{ grid-template-columns:1fr; }
  .kn-karta__gora, .kn-karta__tresc{ padding-left:16px; padding-right:16px; }
  .kn-karta__akcje{ padding:0 16px 16px; }
  .kn-biuro{ padding:22px 20px; }
}
@media (prefers-reduced-motion:reduce){
  .kn-karta{ transition:none; }
  .kn-karta:hover{ transform:none; }
}
