/*
Theme Name: IFD — Drill-Tech
Theme URI: https://ideafordesign.pl/
Template: Divi
Author: IdeaForDesign
Author URI: https://ideafordesign.pl/
Description: Sklep internetowy z narzędziami i akcesoriami (elektronarzędzia, przecinarki, otwornice) — Drill-Tech. Sklonowane z mastera fabryki stron IFD (SEG-13) 2026-07-23.
Version: 1.0.15
*/

/* Miejsce na globalny CSS klienta (uzupełniane per wdrożenie, patrz Narzedzia\WP-Fabryka\CLAUDE.md) */

/* Domyślne jasne tło strony (decyzja Kamila 2026-07-22): #F9F9F9 jako baza pod całą
   stroną (~80% powierzchni), kolor Sand (#EEF2F2) z palety zostaje TYLKO w tle menu/
   nagłówka i tle stopki + ewentualnie pojedyncze moduły z rozmysłem. To tylko fallback
   pod sekcjami — sekcje z jawnym tłem (Sand, białe, Accent...) nadpisują to bez zmian. */
body {
	background-color: #F9F9F9;
}

/* ============================================================================
   Nagłówek globalny (Theme Builder) ZAWSZE nad treścią strony — fix warstw.
   Problem: Divi nadaje wrapperowi nagłówka 'header .et_builder_inner_content
   { z-index: 2 }' (krytyczny CSS, inline) — to tworzy stacking context, który
   WIĘZI position:fixed elementy nagłówka na poziomie 2, więc żaden z-index
   wewnątrz (nawet maksymalny z !important) nie wygra z treścią strony.
   Reguła naprawcza Divi ({ z-index: auto }) siedzi w ODROCZONYM pliku CSS
   (system Critical CSS) i przegrywa. Fix: podnosimy CAŁY wrapper układu
   nagłówka — klatka razem z zawartością ląduje nad treścią strony.
   Diagnoza i szczegóły: WP-Fabryka/SPIS-KONFIGURACJI.md sekcja 19.
   ========================================================================= */
#et-boc .et-l.et-l--header {
	position: relative !important;
	z-index: 99998 !important; /* pod paskiem admina WP (99999), nad wszystkim innym */
}

/* Pasek admina WP (#wpadminbar) ma z-index:99999 i position:fixed;top:0 — dokładnie tam,
   gdzie też siedzi nasz banner/nagłówek. Bez tego przy zalogowaniu nagłówek zasłaniałby
   pasek (albo na odwrót). Standardowy wzorzec WP: gdy widoczny pasek admina (klasa
   'admin-bar' na <html>), przesuwamy CAŁY nasz fixed header o jego wysokość w dół
   (32px desktop, 46px na wąskich ekranach — stałe wartości WP, nie zmieniają się od lat). */
html.admin-bar .ifd-top-banner {
	top: 32px !important;
}
html.admin-bar .ifd-header {
	top: calc(32px + var(--banner-height)) !important;
}
html.admin-bar .ifd-dropdown,
html.admin-bar .ifd-mobile-menu {
	top: calc(32px + var(--banner-height) + var(--header-height)) !important;
}
@media (max-width: 782px) {
	html.admin-bar .ifd-top-banner {
		top: 46px !important;
	}
	html.admin-bar .ifd-header {
		top: calc(46px + var(--banner-height)) !important;
	}
	html.admin-bar .ifd-dropdown,
	html.admin-bar .ifd-mobile-menu {
		top: calc(46px + var(--banner-height) + var(--header-height)) !important;
	}
}

/* Hover na drugie zdjęcie produktu w liście sklepu (wymaga funkcji
   ifd_product_hover_image w functions.php - generuje znacznik .ifd-hover-image) */
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
	position: relative;
	display: block;
}
.ifd-hover-image {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	transition: opacity 0.3s ease;
	z-index: 2;
}
.ifd-hover-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 10px;
}
.woocommerce ul.products li.product:hover .ifd-hover-image {
	opacity: 1;
}

/* ============================================================================
   PRZYCISK GLOBALNY FABRYKI — JEDEN styl wszędzie na stronie (decyzja Kamila
   2026-07-22, po zgłoszeniu że przyciski są niespójne). Wzorzec = przycisk
   "Sklep" w hero na stronie Home (customowy w module Code) — jedyny przycisk,
   który Kamil uznał za bliski ideałowi. Wartości: tło Accent, tekst Sand,
   Poppins 700 uppercase 12px, promień 10px (ten sam co realny "Dodaj do
   koszyka" natywnego modułu WooCommerce), BEZ ikony, hover = tylko zmiana
   tła na Dark/Ink (bez przesunięcia/transform, bez zmiany obramowania).

   Każdy przycisk na stronie jest stylowany w innym miejscu i w inny sposób
   (moduł divi/button z własnymi atrybutami per instancja, natywne moduły
   WooCommerce, customowe klasy PHP) — więc zamiast poprawiać dziesiątki
   osobnych miejsc, wymuszamy TEN SAM wygląd jednym globalnym blokiem
   z !important, który nadpisuje wszystko po drodze. Selektor celowo szeroki:
   obejmuje natywne przyciski Divi (.et_pb_button), WooCommerce (koszyk/
   checkout/dodaj do koszyka) i customowy .ifd-wide-addtocart-btn.
   ========================================================================= */
/* ⚠️ GOTCHA znaleziony 2026-07-22 (czwarta poprawka) — dlaczego nawet podbita
   specyficzność klasowa (trzecia poprawka) NIC nie zmieniała dla przycisku "Dodaj do
   koszyka" na karcie produktu: Divi INLINE'UJE dodatkowy blok
   "<style id="et-critical-inline-css">" bezpośrednio w <head> (nie w zewnętrznym pliku
   CSS), a jego selektory maja prefiks Z ID: ".et-db #et-boc .et-l
   .et_pb_wc_add_to_cart_0_tb_body .button{padding:0.3em 1em!important}". Selektor z ID
   ZAWSZE bije dowolną liczbę klas (specyficzność porównuje się (ID, klasa, element) w
   TEJ kolejności) — żadna ilość powtórzonych klas tego nie pokona. Fix: własny
   selektor też dostaje prefiks "#et-boc" (stały, sitewide div-wrapper Theme Buildera —
   zweryfikowany w DOM: <div id="et-boc" class="et-boc">), więc ID-tier się zrównuje,
   a wtedy o wygranej decyduje class-tier, gdzie moje powtórzone klasy już wygrywają. */
/* ⚠️ GOTCHA (siódma poprawka) — poprzednia wersja wykluczała stan "disabled" z
   KOMPLETU właściwości (rozmiar+kolor razem), więc przycisk bez wybranego
   wariantu wrócił do ciasnego 0.3em/1em Divi. Błąd: "disabled" powinien być
   wykluczony TYLKO z KOLORU (żeby zostać przygaszony, legalny sygnał "nie
   klikaj"), ale rozmiar/kształt/font MAJĄ się zgadzać zawsze, niezależnie od
   stanu. Rozdzielone na dwa bloki: SIZING (bez wykluczenia disabled — działa
   zawsze) i KOLOR (z wykluczeniem disabled — WooCommerce sam przygasza). */
body #et-boc .et_pb_button.et_pb_button.et_pb_button.et_pb_button,
body #et-boc .et_pb_module.et_pb_button.et_pb_button.et_pb_button,
body #et-boc .woocommerce a.button.button.button,
body #et-boc .woocommerce button.button.button.button,
body #et-boc .woocommerce input.button.button.button,
body #et-boc .woocommerce #respond input#submit,
body #et-boc .woocommerce a.add_to_cart_button.add_to_cart_button.add_to_cart_button,
body #et-boc .woocommerce a.single_add_to_cart_button.single_add_to_cart_button,
body #et-boc .et_pb_contact_submit.et_pb_contact_submit.et_pb_contact_submit.et_pb_contact_submit,
body #et-boc .ifd-wide-addtocart-btn.ifd-wide-addtocart-btn.ifd-wide-addtocart-btn,
.et-db #et-boc .et-l .et_pb_wc_add_to_cart_0_tb_body .button.button {
	display: inline-block !important;
	border-radius: 10px !important;
	padding: 12px 40px !important;
	font-family: "Poppins", sans-serif !important;
	font-weight: 700 !important;
	font-size: 12px !important;
	text-transform: uppercase !important;
	letter-spacing: 1px !important;
	text-align: center !important;
	box-shadow: none !important;
	transform: none !important;
	transition: background-color 0.3s ease !important;
}
/* ⚠️ GOTCHA (ósma poprawka) — Divi ma TRZECIĄ, oddzielną regułę tylko na hover:
   ".et-db #et-boc .et-l .et_pb_wc_add_to_cart_0_tb_body .button:hover{padding:
   0.3em 1em!important}". Pseudoklasa ":hover" LICZY SIĘ jako klasa w
   specyficzności (zapomniałem o tym) — moja reguła rozmiaru bez ":hover" i ich
   reguła z ":hover" wyszły remisowe, a przy remisie wygrywa kolejność w kodzie
   (ich reguła jest później w dokumencie). Fix: osobna reguła hover z zapasem
   specyficzności (4x powtórzona klasa zamiast 2x). */
.et-db #et-boc .et-l .et_pb_wc_add_to_cart_0_tb_body .button.button.button.button:hover {
	padding: 12px 40px !important;
	border-radius: 10px !important;
}
.et_pb_button:after {
	display: none !important; /* domyslna strzalka Divi - ukryta, wzorzec (przycisk hero) jej nie ma */
}

/* KOLOR — tylko stan aktywny (:not(.disabled):not([disabled])), zeby przycisk
   bez wybranego wariantu / "Zaktualizuj koszyk" przed zmiana ilosci zostal
   naturalnie przygaszony przez WooCommerce, nie na sile aktywny. */
body #et-boc .et_pb_button.et_pb_button.et_pb_button.et_pb_button:not(.disabled):not([disabled]),
body #et-boc .et_pb_module.et_pb_button.et_pb_button.et_pb_button:not(.disabled):not([disabled]),
body #et-boc .woocommerce a.button.button.button:not(.disabled):not([disabled]),
body #et-boc .woocommerce button.button.button.button:not(.disabled):not([disabled]),
body #et-boc .woocommerce input.button.button.button:not(.disabled):not([disabled]),
body #et-boc .woocommerce #respond input#submit:not(.disabled):not([disabled]),
body #et-boc .woocommerce a.add_to_cart_button.add_to_cart_button.add_to_cart_button:not(.disabled):not([disabled]),
body #et-boc .woocommerce a.single_add_to_cart_button.single_add_to_cart_button:not(.disabled):not([disabled]),
body #et-boc .et_pb_contact_submit.et_pb_contact_submit.et_pb_contact_submit.et_pb_contact_submit,
body #et-boc .ifd-wide-addtocart-btn.ifd-wide-addtocart-btn.ifd-wide-addtocart-btn,
.et-db #et-boc .et-l .et_pb_wc_add_to_cart_0_tb_body .button.button:not(.disabled):not([disabled]) {
	background-color: var(--gcid-4c79ba3d-a281-4fb6-9b14-02f9a4c793f2, #AE413F) !important;
	color: var(--gcid-d7cd5a78-aaef-4f36-82a3-4d3706015cba, #EEF2F2) !important;
	border: none !important;
	opacity: 1 !important;
}
body #et-boc .et_pb_button.et_pb_button.et_pb_button.et_pb_button:not(.disabled):not([disabled]):hover,
body #et-boc .et_pb_module.et_pb_button.et_pb_button.et_pb_button:not(.disabled):not([disabled]):hover,
body #et-boc .woocommerce a.button.button.button:not(.disabled):not([disabled]):hover,
body #et-boc .woocommerce button.button.button.button:not(.disabled):not([disabled]):hover,
body #et-boc .woocommerce input.button.button.button:not(.disabled):not([disabled]):hover,
body #et-boc .woocommerce #respond input#submit:not(.disabled):not([disabled]):hover,
body #et-boc .woocommerce a.add_to_cart_button.add_to_cart_button.add_to_cart_button:not(.disabled):not([disabled]):hover,
body #et-boc .woocommerce a.single_add_to_cart_button.single_add_to_cart_button:not(.disabled):not([disabled]):hover,
body #et-boc .et_pb_contact_submit.et_pb_contact_submit.et_pb_contact_submit.et_pb_contact_submit:hover,
body #et-boc .ifd-wide-addtocart-btn.ifd-wide-addtocart-btn.ifd-wide-addtocart-btn:hover,
.et-db #et-boc .et-l .et_pb_wc_add_to_cart_0_tb_body .button.button:not(.disabled):not([disabled]):hover {
	background-color: var(--gcid-2352d280-fe84-43b1-a71e-f400c35a526a, #10191B) !important;
	color: var(--gcid-d7cd5a78-aaef-4f36-82a3-4d3706015cba, #EEF2F2) !important;
	border: none !important;
	box-shadow: none !important;
	opacity: 1 !important;
	transform: none !important; /* przycisk NIE ma sie ruszac/podnosic na hover */
}

/* Dodatkowo: dokladny wzorzec generowany przez Divi dla natywnych modulow
   WooCommerce koszyka/checkoutu (znaleziony na zywo). WAZNE: specyficznosc CSS
   liczy w kolejnosci (ID, klasa/atrybut, element) - wiecej ELEMENTOW w selektorze
   NIC nie daje przeciw regule z wiecej KLASAMI/atrybutami (pierwsza wersja tego
   bloku mialа ten sam blad - wiecej elementow, za malo klas, wiec przegrywala).
   Divi dla kuponu: 2 klasy + 1 atrybut = (0,3,2). Tu: klasa ".button" powtorzona
   4x + atrybut = (0,6,2) - bezpieczny zapas.
   ⚠️ POPRAWKA 2026-07-25 (Kamil): selektor ".select2-container--default
   .select2-selection--single" byl tu BLEDNIE dolaczony do tej samej listy co
   przyciski kuponu/checkout - w efekcie KAZDY dropdown select2 na stronie
   (w tym pole "Kraj / region" na checkout) dostawal czerwone tlo przycisku
   zamiast wygladac jak pozostale szare pola formularza. Usuniete z obu regul
   nizej - przyciski kuponu/update koszyka/checkout zostaja bez zmian (nadal
   maja te same 2 selektory), tylko select2 wraca do natywnego stylu
   WooCommerce/Divi (jasnoszare tlo, patrz reguly w woocommerce.css). */
body #et-boc table.cart button.button.button.button[name="apply_coupon"],
body #et-boc table.cart button.button.button.button[name="update_cart"],
body #et-boc a.checkout-button.checkout-button.checkout-button.checkout-button {
	border-radius: 10px !important;
}
body #et-boc table.cart button.button.button.button[name="apply_coupon"]:not(:disabled):not([disabled]),
body #et-boc table.cart button.button.button.button[name="update_cart"]:not(:disabled):not([disabled]),
body #et-boc a.checkout-button.checkout-button.checkout-button.checkout-button {
	background-color: var(--gcid-4c79ba3d-a281-4fb6-9b14-02f9a4c793f2, #AE413F) !important;
	color: var(--gcid-d7cd5a78-aaef-4f36-82a3-4d3706015cba, #EEF2F2) !important;
	opacity: 1 !important;
}
body #et-boc table.cart button.button.button.button[name="apply_coupon"]:not(:disabled):not([disabled]):hover,
body #et-boc table.cart button.button.button.button[name="update_cart"]:not(:disabled):not([disabled]):hover,
body #et-boc a.checkout-button.checkout-button.checkout-button.checkout-button:hover {
	background-color: var(--gcid-2352d280-fe84-43b1-a71e-f400c35a526a, #10191B) !important;
	color: var(--gcid-d7cd5a78-aaef-4f36-82a3-4d3706015cba, #EEF2F2) !important;
	opacity: 1 !important;
}
/* Stan disabled (np. "Zaktualizuj koszyk" przed zmiana ilosci) - swiadomie
   NIETKNIETY, zostaje natywny przygaszony wyglad WooCommerce (legalny sygnal
   UX "nie klikaj teraz"), Kamil: wymuszanie opacity:1 tu bylo bledem. */

.ifd-wide-addtocart-btn {
	display: block !important;
	width: 100%;
	box-sizing: border-box;
	margin-top: 10px;
}

/* ============================================================================
   WYRÓWNANIE PRZYCISKU "Do koszyka" DO DOŁU WIERSZA — 2026-07-24 (Kamil: przy
   dłuższej nazwie/cenie przycisk "ucieka" niżej niż u sąsiadów w tym samym
   wierszu, brak symetrii). Selektor ".woocommerce ul.products li.product" to
   STANDARDOWA pętla WooCommerce (content-product.php) — dotyczy to WSZYSTKICH
   miejsc na stronie naraz bez osobnych poprawek: Divi "Shop" (Strona Główna),
   natywne archiwum /sklep/, "Powiązane produkty" na karcie produktu.
   Mechanizm: rodzic (ul.products) staje się kontenerem flex z zawijaniem —
   domyślne align-items:stretch wyrównuje WYSOKOŚĆ wszystkich <li> w tym samym
   wierszu do najwyższego. Każdy <li> to z kolei kolumna flex, a przycisk (jako
   BEZPOŚREDNIE dziecko <li>, siostra linku z obrazkiem/tytułem/ceną — patrz
   ifd_wide_addtocart_button() w functions.php) dostaje margin-top:auto, więc
   zawsze ląduje na samym dole — niezależnie od tego, ile miejsca zajęła nazwa
   czy cena nad nim. */
.woocommerce ul.products {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: stretch !important;
}
.woocommerce ul.products li.product {
	display: flex !important;
	flex-direction: column !important;
}
.woocommerce ul.products li.product .ifd-wide-addtocart-btn {
	margin-top: auto !important;
}

/* Przycisk "wróć na górę" (scroll-to-top natywny Divi, et_pb_scroll_top) — restyling
   wzorem CSS-CUSTOM.md #1, kolor zmieniony z twardo wpisanego zielonego Kasi Tobor
   (#344b33) na te same Accent/Dark-Ink co realny przycisk add-to-cart (spójność
   interakcji: tło Accent, po najechaniu Dark/Ink), promień 10px zamiast okrągłego
   żeby pasować do reszty przycisków na stronie. */
.et_pb_scroll_top.et-visible {
	opacity: 1;
	-webkit-animation: fadeInBottom 1s 1 cubic-bezier(.77,0,.175,1);
	-moz-animation: fadeInBottom 1s 1 cubic-bezier(.77,0,.175,1);
	-o-animation: fadeInBottom 1s 1 cubic-bezier(.77,0,.175,1);
	animation: fadeInBottom 1s 1 cubic-bezier(.77,0,.175,1);
}
.et_pb_scroll_top.et-pb-icon {
	font-size: 35px;
	padding: 8px;
	right: 40px;
	bottom: 40px;
	border-radius: 10px;
	background: var(--gcid-4c79ba3d-a281-4fb6-9b14-02f9a4c793f2, #AE413F);
	color: var(--gcid-d7cd5a78-aaef-4f36-82a3-4d3706015cba, #EEF2F2);
}
.et_pb_scroll_top.et-pb-icon:hover {
	color: var(--gcid-d7cd5a78-aaef-4f36-82a3-4d3706015cba, #EEF2F2);
	background: var(--gcid-2352d280-fe84-43b1-a71e-f400c35a526a, #10191B);
}

/* Plakietka "Promocja!" (WooCommerce .onsale) — domyslnie Divi wpisuje na sztywno
   pomaranczowy #ef8f61 przez skrot "background" (nie "background-color") z
   !important w KRYTYCZNYM CSS wstrzykiwanym pozniej niz ten plik - stad selektor
   powtorzony (wyzsza specyficznosc) + ten sam skrot "background", zeby na pewno
   wygrac. Podlaczone pod Accent + zmniejszone (Kamil: "bardziej kompaktowe"). */
body #et-boc .onsale.onsale.onsale,
.onsale.onsale.onsale {
	background: var(--gcid-4c79ba3d-a281-4fb6-9b14-02f9a4c793f2, #AE413F) !important;
	border-radius: 6px !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	padding: 4px 10px !important;
	line-height: 1.4 !important;
	min-height: 0 !important;
	min-width: 0 !important;
}

/* ============================================================================
   CookieYes — domyslny motyw wtyczki jest niebieski (#1863DC/#0056a7), nie ma
   nic wspolnego z globalna paleta marki. Kamil: "wszystko co tam jest niebieskie
   ma byc kolorem glownym marki tym globalnym". CookieYes ustawia te kolory przez
   inline style="" (z panelu wtyczki), ale bez !important - wiec zewnetrzny CSS
   z !important wygrywa. Przy zmianie Accent w palecie te elementy zmienia sie
   automatycznie razem z reszta strony. ========================================= */
.cky-btn-revisit-wrapper {
	background: var(--gcid-4c79ba3d-a281-4fb6-9b14-02f9a4c793f2, #AE413F) !important;
}
.cky-consent-container .cky-btn-accept,
.cky-preference-center .cky-btn-accept {
	background-color: var(--gcid-4c79ba3d-a281-4fb6-9b14-02f9a4c793f2, #AE413F) !important;
	border-color: var(--gcid-4c79ba3d-a281-4fb6-9b14-02f9a4c793f2, #AE413F) !important;
	color: #FFFFFF !important;
}
.cky-consent-container .cky-btn-customize,
.cky-consent-container .cky-btn-reject,
.cky-preference-center .cky-btn-reject,
.cky-preference-center .cky-btn-preferences {
	color: var(--gcid-4c79ba3d-a281-4fb6-9b14-02f9a4c793f2, #AE413F) !important;
	border-color: var(--gcid-4c79ba3d-a281-4fb6-9b14-02f9a4c793f2, #AE413F) !important;
	background-color: transparent !important;
}
.cky-switch input:checked + .cky-slider {
	background-color: var(--gcid-4c79ba3d-a281-4fb6-9b14-02f9a4c793f2, #AE413F) !important;
}
.cky-notice-des a,
.cky-preference-content-wrapper a {
	color: var(--gcid-4c79ba3d-a281-4fb6-9b14-02f9a4c793f2, #AE413F) !important;
}
.et_pb_scroll_top:before {
	content: "2";
}

/* ---- Pasek kategorii [simple_cat_slider] (2026-07-24, brak stylu udokumentowanego w
   CSS-CUSTOM.md przy tym snippecie — dopisany tu, prosty i zgodny z marką) ---- */
.ifd-simple-cat-slider ul {
	list-style: none;
	margin: 0 0 30px;
	padding: 0;
	display: flex;
	align-items: center;
	gap: 10px;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}
.ifd-simple-cat-slider ul::-webkit-scrollbar {
	display: none;
}
.ifd-simple-cat-slider li.ifd-cat {
	flex-shrink: 0;
}
.ifd-simple-cat-slider li.ifd-cat a {
	display: inline-block;
	padding: 9px 18px;
	border: 1.5px solid rgba(18, 20, 28, 0.12);
	border-radius: 30px;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 13px;
	color: var(--ifd-text);
	text-decoration: none;
	white-space: nowrap;
	transition: all 0.25s ease;
}
.ifd-simple-cat-slider li.ifd-cat a:hover {
	background: var(--ifd-main);
	border-color: var(--ifd-main);
	color: #fff;
}
.ifd-simple-cat-slider li.ifd-sep {
	display: none;
}

/* ============================================================================
   PANEL FILTRÓW WOOCOMMERCE — sidebar-1, wspólny dla Sklep/Kategoria produktu/
   Wyniki wyszukiwania (2026-07-24, na życzenie Kamila: "efekt wow"). Widgety
   skonfigurowane w PHP (wc widgets: wyszukiwarka/kategorie/cena/atrybuty x5/
   ocena/aktywne filtry). Struktura .ifd-filter-body wstawiana przez JS
   (js/ifd-filters.js) — owija wszystko PO tytule .widgettitle w jeden div,
   żeby dało się animować max-height. Kolory/fonty z globalnych zmiennych
   nagłówka (--ifd-main/--ifd-bg/--ifd-light/--ifd-text/--ifd-grey), spójne
   z resztą strony.
   ============================================================================ */

.et_pb_widget_area.et_pb_module {
	background: #ffffff;
	border-radius: 16px;
	padding: 4px 0;
	box-shadow: 0 6px 24px rgba(18, 20, 28, 0.07);
	border: 1px solid rgba(18, 20, 28, 0.05);
	position: sticky;
	top: 130px;
}

.et_pb_widget_area .et_pb_widget {
	border-bottom: 1px solid rgba(18, 20, 28, 0.07);
	padding: 0 20px !important;
	/* Divi ma wbudowaną regułę (.et_pb_gutters3.et_pb_row>.et_pb_column_1_4>.et_pb_module
	   .et_pb_widget{margin-bottom:26.347%}) — procentowy odstęp myślany do siatki kart, nie do
	   widgetów w sidebarze. Efekt: ogromne, puste przerwy między sekcjami filtrów. Nadpisane
	   niżej (Kamil, 2026-07-24). */
	margin-bottom: 0 !important;
}
.et_pb_widget_area .et_pb_widget:last-child {
	border-bottom: none;
}

.et_pb_widget_area .widgettitle {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin: 0 !important;
	padding: 16px 0 !important;
	font-family: "Poppins", sans-serif !important;
	font-weight: 700 !important;
	font-size: 13px !important;
	text-transform: uppercase;
	letter-spacing: 0.6px;
	color: var(--ifd-text) !important;
	cursor: pointer;
	-webkit-user-select: none;
	user-select: none;
	transition: color 0.25s ease;
}
.et_pb_widget_area .widgettitle:hover {
	color: var(--ifd-main) !important;
}
.et_pb_widget_area .widgettitle::after {
	content: "";
	width: 8px;
	height: 8px;
	flex-shrink: 0;
	border-right: 2px solid var(--ifd-main);
	border-bottom: 2px solid var(--ifd-main);
	transform: rotate(45deg);
	margin-top: -4px;
	transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), margin-top 0.35s ease;
}
.et_pb_widget_area .et_pb_widget.ifd-filter-collapsed .widgettitle::after {
	transform: rotate(-45deg);
	margin-top: 4px;
}

.ifd-filter-body {
	max-height: 800px;
	overflow: hidden;
	opacity: 1;
	transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease;
	padding-bottom: 18px;
}
.et_pb_widget_area .et_pb_widget.ifd-filter-collapsed .ifd-filter-body {
	max-height: 0;
	opacity: 0;
	padding-bottom: 0;
}

/* ---- Wyszukiwarka produktów ---- */
.widget_product_search .woocommerce-product-search {
	position: relative;
	display: flex;
}
.widget_product_search .search-field {
	width: 100%;
	padding: 11px 42px 11px 14px !important;
	border: 1px solid rgba(18, 20, 28, 0.12) !important;
	border-radius: 8px !important;
	font-family: "Poppins", sans-serif !important;
	font-size: 13px !important;
	outline: none;
	box-shadow: none !important;
	transition: border-color 0.25s ease;
}
.widget_product_search .search-field:focus {
	border-color: var(--ifd-main) !important;
}
.widget_product_search button[type="submit"] {
	position: absolute;
	right: 4px;
	top: 50%;
	transform: translateY(-50%);
	border: none !important;
	background: var(--ifd-main) !important;
	color: #fff !important;
	width: 30px;
	height: 30px;
	border-radius: 6px !important;
	font-size: 0 !important;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
}
.widget_product_search button[type="submit"]::before {
	content: "";
	width: 13px;
	height: 13px;
	border: 2px solid #fff;
	border-radius: 50%;
	box-shadow: 5px 5px 0 -3px #fff;
}

/* ---- Listy: Kategorie / Marka / Średnica / Mocowanie / Chłodzenie / Grubość / Ocena ---- */
.et_pb_widget_area ul.product-categories,
.et_pb_widget_area ul.woocommerce-widget-layered-nav-list,
.et_pb_widget_area ul.wc-layered-nav-rating {
	list-style: none;
	margin: 0 !important;
	padding: 0 !important;
}
.et_pb_widget_area ul.product-categories li,
.et_pb_widget_area ul.woocommerce-widget-layered-nav-list li,
.et_pb_widget_area ul.wc-layered-nav-rating li {
	display: flex;
	align-items: center;
	margin: 0 !important;
}
.et_pb_widget_area ul.product-categories li a,
.et_pb_widget_area ul.woocommerce-widget-layered-nav-list li a,
.et_pb_widget_area ul.wc-layered-nav-rating li a {
	flex: 1;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 7px 8px !important;
	margin: 0 -8px !important;
	border-radius: 8px;
	font-family: "Poppins", sans-serif !important;
	font-size: 13px !important;
	color: var(--ifd-text) !important;
	text-decoration: none !important;
	transition: background-color 0.2s ease, color 0.2s ease, padding-left 0.2s ease;
}
.et_pb_widget_area ul.product-categories li a::before,
.et_pb_widget_area ul.woocommerce-widget-layered-nav-list li a::before {
	content: "";
	width: 15px;
	height: 15px;
	flex-shrink: 0;
	border-radius: 4px;
	border: 1.5px solid rgba(18, 20, 28, 0.2);
	transition: all 0.2s ease;
	box-sizing: border-box;
}
.et_pb_widget_area ul.product-categories li a:hover,
.et_pb_widget_area ul.woocommerce-widget-layered-nav-list li a:hover {
	background: var(--ifd-light);
	color: var(--ifd-main) !important;
	padding-left: 12px !important;
}
.et_pb_widget_area ul.woocommerce-widget-layered-nav-list li.chosen a::before,
.et_pb_widget_area ul.product-categories li.current-cat > a::before {
	background: var(--ifd-main);
	border-color: var(--ifd-main);
	box-shadow: inset 0 0 0 3px #fff;
}
.et_pb_widget_area .count {
	margin-left: auto;
	font-size: 11px;
	font-weight: 600;
	color: var(--ifd-grey);
	background: rgba(18, 20, 28, 0.05);
	padding: 2px 8px;
	border-radius: 20px;
	white-space: nowrap;
}

/* ---- Aktywne filtry (chipy z krzyżykiem) ---- */
.widget_layered_nav_filters ul {
	list-style: none;
	margin: 0 !important;
	padding: 0 !important;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.widget_layered_nav_filters ul li {
	margin: 0 !important;
}
.widget_layered_nav_filters ul li a,
.widget_layered_nav_filters ul li a:visited,
.widget_layered_nav_filters ul li a:link {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 6px 12px !important;
	background: var(--ifd-main) !important;
	color: #fff !important;
	border-radius: 20px;
	font-family: "Poppins", sans-serif !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	transition: background-color 0.2s ease;
}
.widget_layered_nav_filters ul li a:hover,
.widget_layered_nav_filters ul li a:focus {
	background: var(--ifd-text) !important;
	color: #fff !important;
}
/* ⚠️ GOTCHA (ten sam wzorzec #et-boc co wcześniej — SPIS-KONFIGURACJI.md sekcja 19/22):
   krytyczny CSS Divi ma regułę koloru linków w CAŁYM sidebarze
   (".et-db #et-boc .et-l .et_pb_sidebar_0_tb_body.et_pb_widget_area li,...a,...{color:var(--gcid-...Accent)!important}")
   — to samo Accent co tło chipów Aktywnych filtrów, więc tekst był NIEWIDOCZNY (czerwony na
   czerwonym). Zawężone TYLKO do Aktywnych filtrów — gdziekolwiek indziej w panelu (listy
   Kategorie/Marka/Średnica...) mają zostać czerwone linki, to świadomy wygląd, nie błąd. */
.et-db #et-boc .et-l .et_pb_sidebar_0_tb_body.et_pb_widget_area .widget_layered_nav_filters ul li a,
.et-db #et-boc .et-l .et_pb_sidebar_0_tb_body.et_pb_widget_area .widget_layered_nav_filters ul li a:visited {
	color: #fff !important;
}
.widget_layered_nav_filters ul li a::after {
	content: "✕";
	font-size: 10px;
	opacity: 0.85;
}

/* ---- Filtr ceny (jQuery UI slider) ---- */
.price_slider_wrapper .price_slider {
	margin: 10px 4px 22px !important;
	background: none !important;
}
.price_slider .ui-slider {
	height: 5px !important;
	background: rgba(18, 20, 28, 0.08) !important;
	border: none !important;
	border-radius: 4px !important;
}
.price_slider .ui-slider-range {
	background: var(--ifd-main) !important;
	border-radius: 4px !important;
}
.price_slider .ui-slider-handle {
	width: 16px !important;
	height: 16px !important;
	top: -6px !important;
	margin-left: -8px !important;
	background: #fff !important;
	border: 3px solid var(--ifd-main) !important;
	border-radius: 50% !important;
	box-shadow: 0 2px 6px rgba(18, 20, 28, 0.25) !important;
	cursor: grab;
	outline: none !important;
}
.price_slider .ui-slider-handle:active {
	cursor: grabbing;
}
.price_slider_amount {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 6px !important;
}
.price_slider_amount input[type="text"] {
	border: none !important;
	background: transparent !important;
	font-family: "Poppins", sans-serif !important;
	font-weight: 700 !important;
	font-size: 13px !important;
	color: var(--ifd-text) !important;
	width: 68px !important;
	padding: 0 !important;
	box-shadow: none !important;
}
.price_slider_amount .button {
	margin-left: auto !important;
	background: var(--ifd-main) !important;
	color: #fff !important;
	border-radius: 8px !important;
	padding: 9px 16px !important;
	font-family: "Poppins", sans-serif !important;
	font-size: 11px !important;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	font-weight: 700 !important;
	border: none !important;
	box-shadow: none !important;
	transition: background-color 0.25s ease;
}
.price_slider_amount .button:hover {
	background: var(--ifd-text) !important;
}

/* ---- Ocena (gwiazdki) ---- */
.et_pb_widget_area .star-rating {
	color: var(--ifd-main);
}

/* ---- Mobile: master przycisk "Filtry" + zwinięty panel domyślnie ---- */
.ifd-filters-mobile-toggle {
	display: none;
}

@media only screen and (max-width: 980px) {
	.ifd-filters-mobile-toggle {
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 100%;
		background: var(--ifd-main);
		color: #fff;
		border: none;
		border-radius: 12px;
		padding: 15px 20px;
		font-family: "Poppins", sans-serif;
		font-weight: 700;
		font-size: 13px;
		text-transform: uppercase;
		letter-spacing: 0.6px;
		cursor: pointer;
		margin-bottom: 18px;
	}
	.ifd-filters-mobile-toggle svg {
		transition: transform 0.3s ease;
	}
	.ifd-filters-mobile-toggle.active svg {
		transform: rotate(180deg);
	}

	.et_pb_widget_area.et_pb_module {
		position: static;
		max-height: 0;
		overflow: hidden;
		opacity: 0;
		border: none;
		box-shadow: none;
		padding: 0;
		margin: 0 !important;
		transition: max-height 0.4s ease, opacity 0.3s ease;
	}
	.et_pb_widget_area.et_pb_module.ifd-filters-open {
		max-height: 4000px;
		opacity: 1;
		border: 1px solid rgba(18, 20, 28, 0.05);
		box-shadow: 0 6px 24px rgba(18, 20, 28, 0.07);
		padding: 4px 0;
		margin-bottom: 20px !important;
	}

	/* ⚠️ GOTCHA (ten sam wzorzec co przyciski, SPIS-KONFIGURACJI.md sekcja 19):
	   Divi ma WŁASNĄ, wbudowaną regułę odpowiedzialności "ukryj sidebar na
	   telefonie/tablecie" wpisaną w krytyczny inline CSS z prefiksem "#et-boc"
	   (".et-db #et-boc .et-l .et_pb_sidebar_0_tb_body{display:none}" na obu
	   breakpointach ≤767px i 768-980px) — ID w selektorze bije DOWOLNĄ liczbę
	   klas, więc zwykłe ".ifd-filters-open" wyżej nigdy by tego nie pokonało
	   (potwierdzone: max-height/opacity się zmieniały poprawnie, ale display:none
	   i tak wygrywało — element bez wysokości mimo poprawnego max-height).
	   Fix: własna reguła z tym samym prefiksem "#et-boc". */
	.et-db #et-boc .et-l .et_pb_sidebar_0_tb_body.ifd-filters-open {
		display: block !important;
	}
}

/* ============================================================================
   PAGINACJA WOOCOMMERCE (Sklep/Kategoria/Szukaj) — 2026-07-24, styl marki
   ============================================================================ */
.woocommerce-pagination {
	margin: 44px 0 12px !important;
	display: flex;
	justify-content: center;
}
/* ⚠️ WooCommerce uzywa TEJ SAMEJ klasy "page-numbers" na kontenerze <ul> ORAZ na kazdym
   pojedynczym elemencie (<a>/<span> w srodku <li>) — pierwsza wersja tego stylu (2026-07-24)
   selektorem ".woocommerce-pagination .page-numbers" trafiala WIEC W OBIE rzeczy naraz: ramka +
   tlo, ktore mialy byc TYLKO na pojedynczych "kafelkach", objely tez caly kontener <ul>, dajac
   brzydka zewnetrzna ramke + laczace sie linie (zgloszone przez Kamila). Fix: selektory
   dla kontenera i dla elementow rozdzielone jednoznacznie (kontener = "ul.page-numbers" wprost,
   elementy = "li > a"/"li > span" — nigdy sam ".page-numbers" bez kontekstu <li>). */
.woocommerce-pagination ul.page-numbers {
	display: flex !important;
	align-items: center;
	gap: 8px;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	background: none !important;
	border: none !important;
	box-shadow: none !important;
}
.woocommerce-pagination ul.page-numbers li {
	margin: 0 !important;
}
/* Zrodlo pionowych kresek miedzy kafelkami (znalezione przez Kamila wprost w DevTools) —
   rdzen WooCommerce/Divi dodaje ".woocommerce nav.woocommerce-pagination ul li{border-right:
   1px solid #cfc8d8}" - selektor tutaj powtorzony 1:1, zeby miec pewna wygrana. */
.woocommerce nav.woocommerce-pagination ul li,
.woocommerce-pagination ul.page-numbers li {
	border-right: none !important;
}
.woocommerce-pagination ul.page-numbers li > a,
.woocommerce-pagination ul.page-numbers li > span {
	display: flex !important;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 8px !important;
	border-radius: 10px !important;
	background: #fff !important;
	border: 1.5px solid rgba(18, 20, 28, 0.1) !important;
	color: var(--ifd-text) !important;
	font-family: "Poppins", sans-serif !important;
	font-weight: 600 !important;
	font-size: 13px !important;
	text-decoration: none !important;
	transition: all 0.25s ease;
}
.woocommerce-pagination ul.page-numbers li > a:hover {
	background: var(--ifd-light) !important;
	border-color: var(--ifd-main) !important;
	color: var(--ifd-main) !important;
}
.woocommerce-pagination ul.page-numbers li > span.current {
	background: var(--ifd-main) !important;
	border-color: var(--ifd-main) !important;
	color: #fff !important;
	box-shadow: 0 4px 12px rgba(174, 65, 63, 0.3);
}
.woocommerce-pagination ul.page-numbers li > a.next,
.woocommerce-pagination ul.page-numbers li > a.prev {
	font-size: 17px !important;
	font-weight: 700 !important;
}
.woocommerce-pagination ul.page-numbers li > span.dots {
	border: none !important;
	background: none !important;
	height: auto;
}

/* ============================================================================
   Przycisk "Do koszyka" na wąskich telefonach — 2026-07-24 (Kamil: napis
   "DO KOSZYKA" łamał się na 2 linie na wąskich ekranach). Padding bazowy
   (12px 40px, sekcja "PRZYCISK GLOBALNY FABRYKI" wyżej) jest myślany pod
   szerokie karty desktopowe — na 2-kolumnowej siatce mobile karta ma ~150-170px
   szerokości, więc 80px samego paddingu nie zostawia miejsca na tekst.
   Selektor identyczny jak reguła nadrzędna (specificity musi się równać, żeby
   wygrać wewnątrz media query), tylko padding/font-size mniejsze + wymuszone
   jednolinijkowe zawijanie. ============================================================================ */
@media only screen and (max-width: 480px) {
	body #et-boc .ifd-wide-addtocart-btn.ifd-wide-addtocart-btn.ifd-wide-addtocart-btn {
		padding: 12px 8px !important;
		font-size: 11px !important;
		letter-spacing: 0.4px !important;
		white-space: nowrap !important;
	}
}
@media only screen and (max-width: 360px) {
	body #et-boc .ifd-wide-addtocart-btn.ifd-wide-addtocart-btn.ifd-wide-addtocart-btn {
		padding: 10px 4px !important;
		font-size: 10px !important;
		letter-spacing: 0.2px !important;
	}
}

/* ============================================================================
   Szablon produktu (Theme Builder body) — galeria+dane produktu w DWÓCH
   kolumnach na telefonie zamiast w jednej, zdjęcia NIE nad tytułem — 2026-07-25
   (zgłoszenie Kamila). Przyczyna: Divi 5 wygenerował dla tego rzędu wagi kolumn
   tylko dla desktop (2/5 + 3/5, klasy et_flex_column_2_5/_3_5) i tablet, ale
   NIE wygenerował reguły "100% szerokości" dla telefonu mimo klasy-znacznika
   et_flex_column_24_24_phone (24/24 = pełna szerokość) obecnej na OBU
   kolumnach — bez tej reguły kolumny trzymają proporcje desktopowe nawet na
   wąskim ekranie, więc moduł galerii (et_pb_wc_images) dostaje ~35% szerokości
   ekranu zamiast 100%, co ściska miniaturki galerii do 2 w rzędzie zamiast
   jednego rzędu na całą szerokość. Kolejność obraz→tytuł jest już poprawna
   (Divi ustawia order:1 / order:2 na ≤767px), więc samo wymuszenie 100%
   szerokości obu kolumn wystarcza, żeby się złożyły jedna pod drugą, w tej
   kolejności. Selektor przez `:has()` na modułach WooCommerce (a nie przez
   numeryczne ID `_tb_body`, które mogłyby się powtórzyć w innym szablonie
   Theme Buildera) — scoped WYŁĄCZNIE do kolumn zawierających galerię/tytuł
   produktu, czyli tylko strona produktu; desktop/tablet (>767px) nietknięty. */
@media only screen and (max-width: 767px) {
	body #et-boc .et_pb_column:has(> .et_pb_wc_images),
	body #et-boc .et_pb_column:has(> .et_pb_wc_title) {
		width: 100% !important;
		flex-basis: 100% !important;
		max-width: 100% !important;
	}
}

/* =========================================================================
   Przyciski wtyczki odstąpienia (wt-eu-withdrawal-button) - dopasowane do
   globalnego stylu przycisków marki (ten sam kolor/radius/font co "Do koszyka"
   wyżej). Dodane 2026-07-27. Selektor #et-boc + potrójna klasa = ten sam wzorzec
   specyficzności co reszta pliku (patrz gotcha "czwarta poprawka" wyżej).
   ========================================================================= */
body #et-boc .wbte-ewb-btn--withdrawal.wbte-ewb-btn--withdrawal.wbte-ewb-btn--withdrawal {
	display: inline-block !important;
	border-radius: 10px !important;
	padding: 12px 40px !important;
	font-family: "Poppins", sans-serif !important;
	font-weight: 700 !important;
	font-size: 12px !important;
	text-transform: uppercase !important;
	letter-spacing: 1px !important;
	text-align: center !important;
	box-shadow: none !important;
	border: none !important;
	background-color: var(--gcid-4c79ba3d-a281-4fb6-9b14-02f9a4c793f2, #AE413F) !important;
	color: var(--gcid-d7cd5a78-aaef-4f36-82a3-4d3706015cba, #EEF2F2) !important;
	transition: background-color 0.3s ease !important;
}
body #et-boc .wbte-ewb-btn--withdrawal.wbte-ewb-btn--withdrawal.wbte-ewb-btn--withdrawal:hover,
body #et-boc .wbte-ewb-btn--withdrawal.wbte-ewb-btn--withdrawal.wbte-ewb-btn--withdrawal:focus {
	background-color: var(--gcid-2352d280-fe84-43b1-a71e-f400c35a526a, #10191B) !important;
	color: var(--gcid-d7cd5a78-aaef-4f36-82a3-4d3706015cba, #EEF2F2) !important;
}
body #et-boc .wbte-ewb-btn--withdrawal.wbte-ewb-btn--withdrawal.wbte-ewb-btn--withdrawal:disabled,
body #et-boc .wbte-ewb-btn--withdrawal.wbte-ewb-btn--withdrawal.wbte-ewb-btn--withdrawal.disabled {
	opacity: 0.6 !important;
}

/* Przycisk "Anuluj" w modalu potwierdzenia (krok 2) - wariant drugorzędny/ghost,
   celowo mniej wyrazisty niż główne CTA (nie sugerujemy, że anulowanie jest zalecane) */
body #et-boc .wbte-ewb-btn--secondary.wbte-ewb-btn--secondary.wbte-ewb-btn--secondary {
	display: inline-block !important;
	border-radius: 10px !important;
	padding: 12px 40px !important;
	font-family: "Poppins", sans-serif !important;
	font-weight: 700 !important;
	font-size: 12px !important;
	text-transform: uppercase !important;
	letter-spacing: 1px !important;
	text-align: center !important;
	box-shadow: none !important;
	background-color: transparent !important;
	border: 2px solid var(--gcid-4c79ba3d-a281-4fb6-9b14-02f9a4c793f2, #AE413F) !important;
	color: var(--gcid-4c79ba3d-a281-4fb6-9b14-02f9a4c793f2, #AE413F) !important;
	transition: background-color 0.3s ease, color 0.3s ease !important;
}
body #et-boc .wbte-ewb-btn--secondary.wbte-ewb-btn--secondary.wbte-ewb-btn--secondary:hover,
body #et-boc .wbte-ewb-btn--secondary.wbte-ewb-btn--secondary.wbte-ewb-btn--secondary:focus {
	background-color: var(--gcid-4c79ba3d-a281-4fb6-9b14-02f9a4c793f2, #AE413F) !important;
	color: var(--gcid-d7cd5a78-aaef-4f36-82a3-4d3706015cba, #EEF2F2) !important;
}

/* =========================================================================
   Przycisk "Wybierz paczkomat"/"Zmień paczkomat" (klasyczny checkout, wtyczka
   InPost Paczkomaty, renderowany przez woocommerce_after_shipping_rate).
   Dodane 2026-07-27. Ten przycisk NIE łapie globalnej reguły przycisków wyżej,
   bo jego jedyny przodek z klasą ".woocommerce" to <body> (poza #et-boc), nie
   opakowujący <div> wewnątrz #et-boc jak przy natywnych modułach Divi - stąd
   osobna, dedykowana reguła zamiast dopisywania do wspólnego selektora.
   ========================================================================= */
body #et-boc .select-paczkomat-button.select-paczkomat-button.select-paczkomat-button {
	display: inline-block !important;
	border-radius: 10px !important;
	padding: 12px 40px !important;
	font-family: "Poppins", sans-serif !important;
	font-weight: 700 !important;
	font-size: 12px !important;
	text-transform: uppercase !important;
	letter-spacing: 1px !important;
	text-align: center !important;
	box-shadow: none !important;
	border: none !important;
	cursor: pointer !important;
	background-color: var(--gcid-4c79ba3d-a281-4fb6-9b14-02f9a4c793f2, #AE413F) !important;
	color: var(--gcid-d7cd5a78-aaef-4f36-82a3-4d3706015cba, #EEF2F2) !important;
	transition: background-color 0.3s ease !important;
}
body #et-boc .select-paczkomat-button.select-paczkomat-button.select-paczkomat-button:hover {
	background-color: var(--gcid-2352d280-fe84-43b1-a71e-f400c35a526a, #10191B) !important;
	color: var(--gcid-d7cd5a78-aaef-4f36-82a3-4d3706015cba, #EEF2F2) !important;
}

/* Info o wybranym automacie - lekkie dopasowanie typografii pod resztę strony */
body #et-boc #selected-paczkomat {
	font-family: "Poppins", sans-serif !important;
	font-size: 13px !important;
	line-height: 1.6em !important;
	margin-top: 10px !important;
	color: #333 !important;
}

/* ==========================================================================
   Licznik "brakuje X zł do darmowej wysyłki" w koszyku (SEG-13, próg 249 zł,
   funkcja ifd_free_shipping_message w functions.php) — kolory/promień 10px
   zgodne ze stylem strony (var(--ifd-*) z globalnego nagłówka).
   ========================================================================== */
.woocommerce-cart table.shop_table tr.ifd-free-shipping-row th {
	padding: 0 !important;
	border: none !important;
}
.ifd-free-shipping-notice {
	background: var(--ifd-light, rgba(193, 107, 74, 0.08));
	border-radius: 10px;
	padding: 14px 18px;
	margin: 4px 0 16px;
}
.ifd-free-shipping-text {
	font-family: "Poppins", sans-serif;
	font-size: 14px;
	color: var(--ifd-text, #12141C);
	margin-bottom: 8px;
}
.ifd-free-shipping-text strong {
	color: var(--ifd-main, #C16B4A);
}
.ifd-free-shipping-bar {
	width: 100%;
	height: 8px;
	border-radius: 10px;
	background: rgba(0, 0, 0, 0.08);
	overflow: hidden;
}
.ifd-free-shipping-bar-fill {
	height: 100%;
	border-radius: 10px;
	background: var(--ifd-main, #C16B4A);
	transition: width 0.4s ease;
}
