/* ==========================================================================
   Widget filtrow produktow w kolumnie col-md-3 (src/kategorie/kategoria.njk,
   src/strony/produkty.njk, markup: src/kategorie/filtry-sidebar.njk, logika:
   public/filtry.js). Nowy, samodzielny plik (dozwolony przez GRANICE zadania:
   "public/css/ (dopisy/nowy filtry.css)") - linkowany wprost z body obu
   szablonow (layout.njk ma tylko jeden slot extraCss, wiec nie mozna dodac
   trzeciego <link> w <head> bez ruszania layout.njk, ktore jest poza GRANICE;
   <link> w <body> jest poprawnym HTML5 i dziala identycznie).

   UWAGA (diagnostyka, dla przyszlych zmian w tym pliku): reguly te probowalem
   najpierw dopisac na koniec public/css/strony.css (@import-owanego tez przez
   kategorie.css) - w narzedziu podgladu przegladarki uzywanym w tej sesji
   regula @media(min-width:768px) z .col-md-3/.col-md-9 byla tam pomijana przy
   renderowaniu (getComputedStyle dawal width:1140px zamiast 285px=25%, mimo
   ze fetch() z cache:'no-store' pokazywal poprawna, kompletna tresc pliku).
   Po przeniesieniu do osobnego pliku problem sie POWTORZYL, dopoki ta sama
   regula siedziala zaraz po duzym bloku komentarza /* ... */ na poczatku
   pliku - dopiero przesuniecie jej NA KONIEC pliku (ponizej) naprawilo
   renderowanie (zweryfikowane getComputedStyle: 285px/855px, plus zrzut
   ekranu). Przyczyna nieznana (mozliwy blad/limit samego narzedzia podgladu
   przy pierwszej regule @media po dlugim komentarzu w pliku laczonym przez
   <link> w poczatkowym HTML) - nie CSS, bo ta sama regula podana dynamicznie
   (inline <style> lub <link> dodany przez JS PO zaladowaniu
   strony) dzialala od razu w kazdej pozycji. Jesli kiedys ten plik bedzie
   refaktoryzowany - NIE przenosic ponownie tej reguly na sam poczatek pliku
   bez ponownej weryfikacji w przegladarce.

   Kolory/odstepy/typografia sekcji filtrow (checkboxy, radio, swatch,
   tekst opcji, licznik, suwak ceny, przycisk "Wyczysc") sa 1:1 przepisane z
   PRODUKCYJNEGO arkusza (zrodla/css/a2ecf5e77c6e948e4a9efad2c7d5bebe.css,
   selektory .wpc-filter-title/.wpc-filters-main-wrap/.wpc-term-*/
   .wpc-filters-range-*), ktory jest nadpisaniem motywu na baze wtyczki WPC
   Filters (WP Product Filter). Sama BAZOWA wtyczkowa czesc arkusza (pozycja
   szuflady mobilnej, animacje, spinner) NIE zostala nigdzie w zrodla/css
   zlapana (crawler pobral tylko nadpisania motywu, nie CSS samej wtyczki) -
   ta czesc (drawer/overlay ponizej) jest wiec wlasna, rozsadna implementacja,
   NIE kopia produkcji - patrz raport D:\...\scratchpad\filtry.md.

   Siatka .col-md-3/.col-md-9: brakowalo im reguly szerokosci od >=768px w
   calym repo (public/styles.css ma tylko .col-lg-*), bo col-md-3 byl dotad
   pustym divem i nikt tego nie zauwazyl. Dopisane tu (nie w public/styles.css,
   ktore jest poza GRANICE tego zadania) - klasy col-md-3/col-md-9 nie sa
   uzywane NIGDZIE indziej w repo (sprawdzone grepem), wiec zero ryzyka
   efektow ubocznych na innych stronach.
   ========================================================================== */
.w-filtry-col{margin-bottom:30px}

/* --- otwieranie widgetu (przycisk "Filtry", widoczny tylko na mobile) --- */
.wpc-filters-open-button-container{display:none;margin:0 0 20px}
@media (max-width:767.98px){
  .wpc-filters-open-button-container{display:block!important;margin:0 0 20px;position:static}
}
.wpc-filters-open-widget{display:inline-flex;align-items:center;gap:10px;cursor:pointer;text-decoration:none;padding:9px 16px;border:1px solid #d8e0ec;border-radius:21px}
.wpc-button-inner{display:inline-flex;align-items:center;gap:10px}
.wpc-filters-button-text{font-size:14px;line-height:18px;white-space:nowrap;color:#1a8fe3;font-weight:700}
.wpc-icon-html-wrapper{display:inline-flex;flex-direction:column;gap:3px;width:16px}
.wpc-icon-html-wrapper span{display:block;height:2px;width:100%;background-color:#1a8fe3;border-radius:2px}
.js-filtry-open[aria-expanded="true"] .wpc-icon-line-1{transform:translateY(5px) rotate(45deg)}
.js-filtry-open[aria-expanded="true"] .wpc-icon-line-2{opacity:0}
.js-filtry-open[aria-expanded="true"] .wpc-icon-line-3{transform:translateY(-5px) rotate(-45deg)}
.wpc-widget-close-container{display:none}
.wpc-widget-close-icon{cursor:pointer;display:inline-flex}
.wpc-widget-popup-title{font-size:16px;font-weight:700;color:#021431}

/* --- panel filtrow: statyczny na desktop, wysuwana szuflada na mobile --- */
.widget_wpc_filters_widget{color:#202020;font-size:15px;font-weight:400}
.wpc-filters-overlay{display:none}
@media (max-width:767.98px){
  .wpc-filters-widget-content{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1001;background:#fff;overflow-y:auto;padding:20px;transform:translateX(-100%);transition:transform .25s ease-out}
  .js-filtry-widget.is-filtry-open .wpc-filters-widget-content{transform:translateX(0)}
  .wpc-widget-close-container{display:flex;align-items:center;gap:14px;margin-bottom:20px}
  .wpc-filters-overlay{display:block;position:fixed;inset:0;z-index:1000;background:rgba(2,20,49,.5);opacity:0;pointer-events:none;transition:opacity .25s ease-out}
  .js-filtry-widget.is-filtry-open .wpc-filters-overlay{opacity:1;pointer-events:auto}
  body.has-filtry-open{overflow:hidden}
}

/* --- sekcje filtrow (Cena/Kolor/Opcje wody/Dostepnosc/Przeznaczenia/Funkcje) --- */
.wpc-filters-section{margin-bottom:30px;padding-bottom:30px;border-bottom:1px solid #d8e0ec}
.wpc-filters-section:last-child{border:none;margin-bottom:0;padding-bottom:0}
.wpc-filter-title{color:#021431;font-size:16px;font-style:normal;font-weight:700;line-height:normal;margin-bottom:15px}
.wpc-filters-ul-list{margin:0;padding:0;list-style:none}
.wpc-filters-ul-list li.wpc-term-item{margin-bottom:14px}
.wpc-filters-ul-list li.wpc-term-item:last-child{margin-bottom:0}
.wpc-term-item-content-wrapper{display:flex;align-items:center}
.wpc-term-item-content-wrapper label{display:flex;align-items:center;padding-left:9px;cursor:pointer;color:#606060;font-size:14px;line-height:18px}
.wpc-term-name{color:#606060;font-size:14px;line-height:18px}
.wpc-term-count{color:#606060;font-size:14px;line-height:18px;margin-left:4px}

/* checkbox/radio - wyglad 1:1 z produkcyjnych regul .wpc-filters-main-wrap
   input[type=checkbox|radio] (SVG data-URI ptaszka/kropki identyczne jak w
   zrodla/css) */
.js-filtry-input[type="checkbox"]{all:unset;display:inline-block;flex-shrink:0;width:15px;height:15px;-webkit-appearance:none;outline:0;background-repeat:no-repeat;background-position:center center;background-size:contain;background-color:transparent;border:1px solid #313131;border-radius:4px;cursor:pointer}
.js-filtry-input[type="checkbox"]:checked{background-color:#1a8fe3;border-color:#1a8fe3;background-position:center;background-size:9px;background-image:url("data:image/svg+xml,%3Csvg width='10' height='10' viewBox='0 0 10 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_556_854)'%3E%3Cpath d='M8.67531 1.26953L3.58017 5.99632L1.4254 3.69682L0 5.0325L3.48114 8.74748L10 2.70546L8.67531 1.26953Z' fill='white'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_556_854'%3E%3Crect width='10' height='10' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E")}
.js-filtry-input[type="radio"]{all:unset;display:inline-block;flex-shrink:0;width:15px;height:15px;-webkit-appearance:none;outline:0;background-repeat:no-repeat;border-radius:99px;background-position:center;background-size:contain;background-color:transparent;border:1px solid #000;cursor:pointer}
.js-filtry-input[type="radio"]:checked{background-position:center;border-color:#1a8fe3;background-size:7px;background-image:url("data:image/svg+xml,%3Csvg width='7' height='7' viewBox='0 0 7 7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='3.5' cy='3.5' r='3.5' fill='%231A8FE3'/%3E%3C/svg%3E")}
.js-filtry-input:focus-visible{outline:2px solid #1a8fe3;outline-offset:2px}

.wpc-term-swatch-wrapper{display:inline-flex;border-radius:100%;margin-right:9px;margin-left:9px;height:27px;width:27px;border:1px solid #d8e0ec;flex-shrink:0}
.wpc-term-swatch{height:100%;width:100%;border-radius:100%}

/* --- suwak ceny --- */
.wpc-filters-range-wrapper{width:100%;display:flex;gap:20px}
@media (min-width:1200px){.wpc-filters-range-wrapper{gap:38px}}
.wpc-filters-range-column{flex:1 1 0;min-width:0}
.wpc-filters-range-min,.wpc-filters-range-max{width:100%;padding:12px 16px;border:1px solid #d8e0ec;border-radius:21px;color:#0e1a23;font-size:15px;font-style:normal;font-weight:400;line-height:normal;-moz-appearance:textfield}
.wpc-filters-range-min::-webkit-outer-spin-button,.wpc-filters-range-min::-webkit-inner-spin-button,.wpc-filters-range-max::-webkit-outer-spin-button,.wpc-filters-range-max::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.wpc-filters-range-min:focus,.wpc-filters-range-max:focus{outline:none;border-color:#1a8fe3}

.wpc-filters-range-slider-wrapper{margin-top:20px;position:relative;height:20px}
.w-filtry-slider-track{position:absolute;top:50%;left:3px;right:3px;height:1px;background:#b2cad2;transform:translateY(-50%)}
.w-filtry-slider-track-fill{position:absolute;top:0;bottom:0;background-color:#1a8fe3}
.w-filtry-range{position:absolute;left:0;right:0;top:0;width:100%;margin:0;height:20px;background:transparent;pointer-events:none;-webkit-appearance:none;appearance:none}
.w-filtry-range::-webkit-slider-runnable-track{-webkit-appearance:none;background:transparent;height:20px}
.w-filtry-range::-moz-range-track{background:transparent;height:20px;border:none}
.w-filtry-range::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;width:13px;height:13px;margin-top:3.5px;border-radius:99px;background-color:#1a8fe3;border:1px solid #fff;box-shadow:none;cursor:pointer}
.w-filtry-range::-moz-range-thumb{pointer-events:auto;width:13px;height:13px;border-radius:99px;background-color:#1a8fe3;border:1px solid #fff;box-shadow:none;cursor:pointer}
.w-filtry-range:focus-visible::-webkit-slider-thumb{outline:2px solid #1a8fe3;outline-offset:2px}
.w-filtry-range:focus-visible::-moz-range-thumb{outline:2px solid #1a8fe3;outline-offset:2px}

/* --- przycisk wyczysc / stan pusty --- */
.wpc-filters-widget-controls-container{margin-top:20px}
.wpc-filters-reset-button{display:block;width:100%;padding:14px 10px;text-align:center;border:1px solid #d8e0ec;border-radius:21px;color:#021431;font-weight:700;font-size:15px;text-decoration:none;cursor:pointer}
.wpc-filters-reset-button:hover,.wpc-filters-reset-button:focus-visible{border-color:#1a8fe3;color:#1a8fe3}
/* Fokus klawiaturowy: ten sam token co .js-filtry-input powyzej. */
.wpc-filters-reset-button:focus-visible{outline:2px solid #1a8fe3;outline-offset:2px}
.w-filtry-empty{color:#021431;font-size:14px;line-height:20px;margin:0 0 20px;padding:12px 16px;background:#f4f8fc;border-radius:12px}

@media (min-width:768px){
  .w-archive-product .row > .col-md-3{width:25%}
  .w-archive-product .row > .col-md-9{width:75%}
}

