/* =========================================================
   inter-plus WCAG 2.1 AA — style dostępności
   (spec: docs/superpowers/specs/2026-07-13-wcag-aa-inter-plus-design.md)
   Zero zmian dla użytkownika myszki.
   ========================================================= */

/* --- T3 hotfix: "Strefa klienta".
   Custom CSS motywu (.sf-menu-right) był pisany pod goły <a> w <ul> +
   ikonę <i> o wysokości 30px, która nadawała boxowi wysokość; po
   poprawieniu HTML (a w li, ikona usunięta na życzenie klienta) reguły
   parenta li>a psuły font/kolor, a boxowi brakowało wysokości ikony.
   Box zostaje we flow (float/width/tło/padding z custom CSS działają,
   sąsiednie menu omija go jak dotąd); li odtwarza 30px po ikonie
   i centruje tekst. --- */
#header-secondary-outer nav > ul.sf-menu-right {
	padding: 14px 20px !important; /* życzenie klienta 2026-07-14; custom CSS motywu daje 20/10/10/20 */
}
#header-secondary-outer nav > ul.sf-menu-right > li {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 30px; /* tyle zajmowała ikona <i> — wysokość boxa jak w oryginale */
	float: none;
	margin: 0;
	padding: 0;
	border: 0 !important; /* parent: border-right na li:last-child */
	background: transparent;
}
body #header-secondary-outer nav > ul.sf-menu-right > li > a {
	display: block;
	height: auto; /* custom CSS daje a height:100px/width:200px — na gołym inline <a> było ignorowane */
	width: auto;
	color: #aa5700; /* E1.1: było #fba82a (1.72:1 na #f0f0f0) → 4.52:1 */
	font-size: 13px;
	line-height: 1.2;
	padding: 0;
	border: 0;
}

/* --- Fundament: klasa czytnikowa (labele CF7 itd. — WCAG 1.3.1/4.1.2) --- */
.sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* --- B1: spójny, widoczny fokus tylko dla klawiatury (WCAG 2.4.7, 1.4.11).
   Użytkownik myszki nie widzi żadnej różnicy (:focus-visible). --- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[role="button"]:focus-visible,
[tabindex="0"]:focus-visible {
	outline: 2px solid #1a56db !important;
	outline-offset: 2px;
	box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.85) !important;
	border-radius: 2px;
}
/* ciemne konteksty (menu mobilne, stopka, transparent header) — ring musi mieć ≥3:1 z tłem */
#slide-out-widget-area a:focus-visible,
#footer-outer a:focus-visible,
#header-outer.transparent a:focus-visible {
	outline-color: #8ab4ff !important;
	box-shadow: 0 0 0 4px rgba(0, 0, 0, 0.6) !important;
}
/* hamburger: link ma nietypowy box (ikona z belek, transform na wrapperze) —
   ring rysujemy na całym kontenerze toggle'a, nie da się go przeoczyć */
.slide-out-widget-area-toggle:focus-within {
	outline: 2px solid #1a56db;
	outline-offset: 3px;
	border-radius: 4px;
}
/* CTA slidera: RevSlider daje inline outline:none/box-shadow:none na warstwie —
   ring na warstwie z !important + zapasowo na wrapperze przez :focus-within */
html body rs-module rs-layer[data-ip-a11y-cta]:focus-visible {
	outline: 3px solid #1a56db !important;
	outline-offset: 3px !important;
	box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.9) !important;
}
html body rs-module .rs-parallax-wrap:focus-within {
	outline: 3px solid #1a56db;
	outline-offset: 3px;
	border-radius: 30px;
}

/* --- B2: fallback — submenu widoczne, gdy fokus jest w środku pozycji
   (superfish 1.7.4 parenta ma focusin/focusout; to siatka bezpieczeństwa,
   WCAG 2.1.1) --- */
header#top nav .sf-menu > li:focus-within > ul.sub-menu,
#header-secondary-outer .sf-menu > li:focus-within > ul.sub-menu {
	display: block !important;
	opacity: 1 !important;
	visibility: visible !important;
}

/* --- B3b: menu mobilne — podmenu na stałe rozwinięte (decyzja klienta;
   dlmenu parenta nie działa ze starym markupem) + przewijalność --- */
#slide-out-widget-area .off-canvas-menu-container li .sub-menu {
	display: block !important; /* wygrywa z .menuwrapper li .sub-menu{display:none} parenta */
	position: static !important;
	max-height: none !important; /* skin material chowa akordeonem: li ul{max-height:0;overflow:hidden} */
	overflow: visible !important;
	opacity: 1 !important;
	visibility: visible !important;
	margin: 0 !important;
}
#slide-out-widget-area .off-canvas-menu-container li.back {
	display: none !important; /* pozycje "Wstecz" doklejane przez dlmenu */
}
#slide-out-widget-area .off-canvas-menu-container .sub-menu > li > a {
	font-size: 0.85em; /* wcięcie daje parent: li ul{padding-left:20px} */
}
#slide-out-widget-area {
	overflow-y: auto !important; /* nic nie zjeżdża pod ekran */
	-webkit-overflow-scrolling: touch;
}
#slide-out-widget-area .inner {
	padding-bottom: 40px;
}

/* --- B4: przycisk pauzy slidera (WCAG 2.2.2) — dyskretny, prawy dolny róg --- */
.ip-slider-pause {
	position: absolute;
	right: 12px;
	bottom: 12px;
	z-index: 50;
	min-width: 44px;
	min-height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.45);
	color: #ffffff;
	font-size: 14px;
	line-height: 1;
	cursor: pointer;
}
.ip-slider-pause:hover,
.ip-slider-pause:focus-visible {
	background: rgba(0, 0, 0, 0.75);
}

/* --- C2: kontrast placeholderów ≥4.5:1 na białym (WCAG 1.4.3).
   Motyw nie definiuje ::placeholder — domyślne przeglądarek bywają za blade
   (Firefox: kolor tekstu × opacity .54). #757575 = 4.6:1. --- */
.wpcf7-form input::placeholder,
.wpcf7-form textarea::placeholder,
#mobile-menu input::placeholder,
#search input::placeholder {
	color: #757575 !important;
	opacity: 1 !important;
}

/* --- D1: siatka logotypów kanałów w popupach (gotowce z deliverables/popupy) --- */
.ip-channel-list {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
	justify-content: center;
	list-style: none;
	margin: 0;
	padding: 0;
}
.ip-channel-list li {
	margin: 0;
	padding: 0;
}
.ip-channel-list img {
	max-height: 44px;
	width: auto;
	display: block;
}

/* --- D2: klasa zastępcza dla cen pisanych jako <h1> w cennikach.
   Po zamianie w treści <h1>…</h1> → <p class="ip-price">…</p> wygląd
   zostaje 1:1 (metryka h1 motywu: Montserrat 44/50, fw 800, +RWD). --- */
.ip-price {
	font-family: Montserrat, sans-serif;
	font-size: 44px;
	line-height: 50px;
	font-weight: 800;
	letter-spacing: 0.5px;
	color: #0c0c0c;
	margin-bottom: 7px;
}
@media only screen and (max-width: 1300px) and (min-width: 1000px) {
	.ip-price { font-size: 33px; line-height: 37.5px; }
}
@media only screen and (max-width: 999px) and (min-width: 690px) {
	.ip-price { font-size: 30.8px; line-height: 35px; }
}
@media only screen and (max-width: 690px) {
	.ip-price { font-size: 28.6px; line-height: 32.5px; }
}

/* --- E1: korekty kontrastu (WCAG 1.4.3/1.4.11) — zaakceptowane przez klienta.
   Pomiary i uzasadnienia: docs/superpowers/deliverables/kontrasty.md --- */

/* E1.5 (rewizja): stopka jest CIEMNA (tło nadane poza opcjami motywu — opcje deklarują jasną,
   stąd pierwotny zły pomiar). Linki widgetów na białym, jak tekst kolumny adresowej (≈16:1). */
html #footer-outer #footer-widgets a:not(.nectar-button) {
	color: #ffffff !important;
}

/* E1.2 (rewizja — zawężone WYŁĄCZNIE do menu na białym tle headera):
   pomarańcz akcentu #fba82a (1.96:1) jako tekst → #b36000 (4.58:1).
   span.accent-color i akcenty cenników wróciły do oryginału — występują też na
   pomarańczowych/zdjęciowych tłach, gdzie ciemny pomarańcz pogarszał czytelność. */
/* #header-outer#header-outer = celowe podwojenie id (podbicie specificity ponad
   reguły dynamic CSS parenta z :not() i atrybutami — a:hover przegrywał) */
html body #header-outer#header-outer header#top nav > ul > li:hover > a,
html body #header-outer#header-outer header#top nav > ul > li > a:hover,
html body #header-outer#header-outer header#top nav > ul > li.sfHover > a,
/* parent ma :not(#social-in-menu) = 3 ID w selektorze — kontrujemy 4. ID */
html body #header-outer#header-outer header#top nav .sf-menu > li.sfHover:not(#social-in-menu) > a,
html body #header-outer#header-outer header#top nav .sf-menu li.current-menu-item > a,
html body #header-outer#header-outer header#top nav .sf-menu li.current-menu-ancestor > a,
html body #header-outer#header-outer header#top nav .sf-menu li.current_page_item > a,
html body #header-outer#header-outer header#top nav .sf-menu li.current_page_ancestor > a,
html body #header-outer#header-outer header#top nav .sf-menu .sub-menu li a:hover,
html body #header-outer#header-outer header#top nav .sf-menu .sub-menu li a:focus,
html body #header-outer#header-outer header#top nav .sf-menu .sub-menu li:hover > a,
html body #header-outer#header-outer header#top nav .sf-menu .sub-menu li.sfHover > a,
html body #header-outer#header-outer header#top nav .sf-menu .sub-menu li.open-submenu > a,
html body #header-secondary-outer#header-secondary-outer nav > ul > li > a:hover,
html body #header-secondary-outer#header-secondary-outer nav ul li:hover > a,
html body #header-secondary-outer#header-secondary-outer nav ul li a:hover,
html body #header-secondary-outer#header-secondary-outer nav > ul > .current-menu-item > a,
html body #header-secondary-outer#header-secondary-outer nav > ul > .current-menu-ancestor > a,
/* tekst pozycji siedzi w spanie, któremu JS motywu nadaje kolor inline —
   arkuszowe !important na spanie wygrywa z inline */
html body #header-secondary-outer#header-secondary-outer nav ul li a:hover .menu-title-text,
html body #header-secondary-outer#header-secondary-outer nav ul li:hover > a .menu-title-text,
html body #header-secondary-outer#header-secondary-outer nav ul .current-menu-item > a .menu-title-text {
	color: #b36000 !important;
}
/* życzenie klienta: odstęp pod pozycjami belki */
html body #header-secondary-outer#header-secondary-outer nav > ul > li > a {
	padding-bottom: 4px;
}

/* E1.7: /dokumenty/ — przyciski PDF mają w treści błędny hover (tło #fff + tekst #fff
   = znikający napis; stan zastany). Tło hovera przejmuje kolor przycisku. */
html body .nectar-button.see-through-2[data-hover-color-override="#ffffff"][data-hover-text-color-override="#ffffff"]:hover {
	background-color: #1b8bd6 !important;
	border-color: #1b8bd6 !important;
}

/* E1.4: podtytuły slajdów RevSlider #e89b27 (2.14:1) → #ca7d09 (3:1, tekst duży 32px);
   nadpisuje kolor inline warstwy (data-color zaczyna się od #e89b27) */
html body rs-layer[data-color^="#e89b27"] {
	color: #ca7d09 !important;
}

/* E1.3: gradienty extra-color-gradient-1 — jasny koniec #f2c05c (biały tekst 1.68:1)
   → #d97706 (3.19:1). Selektory i kąty 1:1 z arkusza motywu, tylko kolor końca. */
html .nectar-bg-extra-color-gradient-1,
html #ajax-content-wrap .nectar-bg-pseudo-extra-color-gradient-1:before,
html .divider-small-border[data-color="extra-color-gradient-1"],
html .divider-border[data-color="extra-color-gradient-1"],
html .nectar-progress-bar .extra-color-gradient-1,
html .wpb_row .nectar-post-grid-filters[data-active-color="extra-color-gradient-1"] a:after,
html .nectar-recent-posts-single_featured.multiple_featured .controls[data-color="extra-color-gradient-1"] li:after,
html .nectar-fancy-box[data-style="default"][data-color="extra-color-gradient-1"]:after {
	background: #f36c21;
	background: linear-gradient(to right, #f36c21, #d97706);
}
html .icon-normal.extra-color-gradient-1,
html body [class^="icon-"].icon-3x.alt-style.extra-color-gradient-1,
html .nectar-button.extra-color-gradient-1:after,
html .nectar-cta[data-color="extra-color-gradient-1"]:not([data-style="material"]) .link_wrap,
html .nectar-button.see-through-extra-color-gradient-1:after,
html .nectar-fancy-box[data-style="color_box_hover"][data-color="extra-color-gradient-1"] .box-bg:after,
html .nectar-post-grid-wrap[data-load-more-color="extra-color-gradient-1"] .load-more:before {
	background: #f36c21;
	background: linear-gradient(to bottom right, #f36c21, #d97706);
}
html body.material .nectar-button.regular.m-extra-color-gradient-1,
html body.material .nectar-button.see-through.m-extra-color-gradient-1:before,
html .swiper-slide .button.solid_color .extra-color-gradient-1,
html .swiper-slide .button.transparent_2 .extra-color-gradient-1:before {
	background: #f36c21;
	background: linear-gradient(125deg, #f36c21, #d97706);
}
/* wariant tekstowy (gradient jako kolor liter przycisków see-through) */
html .nectar-button.extra-color-gradient-1 .hover,
html .nectar-button.see-through-extra-color-gradient-1 .start {
	background: #f36c21;
	background: linear-gradient(to bottom right, #f36c21, #d97706);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

/* --- E1.6: ceny w pomarańczowych promo-boxach (klasa promoBox-slider) —
   pogrubienie + obwódka liter 2px (życzenie klienta; czytelność na gradiencie).
   paint-order trzyma obwódkę POD wypełnieniem litery (nie pocienia cyfr). --- */
html body .pricing-table.promoBox-slider .pricing-column.accent-color .pricing-column-content h4 {
	font-weight: 800;
	paint-order: stroke fill;
	-webkit-text-stroke: 2px #7a2e00;
}

/* --- E1.8: RevSlider — dekoracyjne warstwy parallaxowe (obrazki ruszające się
   za myszką) zasłaniały elementy pod sobą i kradły kliknięcia (inline
   pointer-events:auto). Przepuszczamy zdarzenia; :not(:has(...)) zostawia
   klikalność warstwom z akcją. --- */
html body rs-module .rs-parallax-wrap.tp-parallax-container:not(:has(.rs-wclickaction)) {
	pointer-events: none !important;
}

/* --- E1.9: belka secondary (strona główna/o nas/…/Strefa klienta) nachodzi
   przezroczystym boxem na logo i blokowała jego klik. Kontener przepuszcza
   zdarzenia, interaktywne dzieci klikalne normalnie. Wygląd bez zmian. --- */
html body #header-secondary-outer,
html body #header-secondary-outer .container,
html body #header-secondary-outer nav,
html body #header-secondary-outer nav ul {
	pointer-events: none;
}
html body #header-secondary-outer nav li,
html body #header-secondary-outer nav a,
html body #header-secondary-outer #social a,
html body #header-secondary-outer .nectar-center-text a {
	pointer-events: auto;
}

/* --- E1.10: poprawki z audytu Lighthouse (home 88/100) --- */
/* podtytuł #cfccd1 na jasnym tle: 1.6:1 → 4.6:1 */
html body .vc_custom_heading[style*="#cfccd1"] {
	color: #757575 !important;
}
/* pasek copyright (#111): tekst © 4.4:1 → 6:1; linki (tan/akcent 2.4:1) → jaśniejszy akcent 8:1 */
html body #footer-outer #copyright p {
	color: #9a9a9a !important;
}
html body #footer-outer #copyright a:not(.nectar-button) {
	color: #ffbf66 !important;
}
/* link "ediso" w bloku tekstu — odróżnialny nie tylko kolorem */
html body #footer-outer .menu-relizacja a {
	text-decoration: underline !important;
}

/* --- E1.11: Lighthouse /kontakt/ — breadcrumby Yoast, select formularza,
   label RODO. Scope .container-wrap = tylko formularze NA stronach
   (popup z formularzem renderuje się poza nim i ma własne, białe kolory). --- */
html body #breadcrumbs a {
	color: #b36000 !important; /* życzenie klienta: ciemny pomarańcz zamiast szarości */
}
html body .container-wrap .wpcf7-form select {
	color: #333333 !important;
}
html body .container-wrap .wpcf7-form .wpcf7-list-item-label {
	color: #595959 !important;
}
/* …ale na pomarańczowej kolumnie (#f36c21) 4.5:1 daje dopiero czerń (6.97:1);
   link do polityki dodatkowo podkreślony (odróżnialność nie tylko kolorem) */
html body .container-wrap .wpb_column[data-bg-color="#f36c21"] .wpcf7-list-item-label,
html body .container-wrap .wpb_column[data-bg-color="#f36c21"] .wpcf7-list-item-label a {
	color: #000000 !important;
}
html body .container-wrap .wpb_column[data-bg-color="#f36c21"] .wpcf7-list-item-label a {
	text-decoration: underline !important;
}

/* --- E1.12: jasnopomarańczowe CTA i linki → #b36000 (życzenie klienta; 4.58:1 na białym).
   Obejmuje: "Zobacz listę kanałów", "Zamów", linki w treściach. Wyjątki: konteksty
   pomarańczowe (kolumny #f36c21, promo-boxy) — tam biel/czerń. --- */
html body .container-wrap .nectar-cta .link_text {
	color: #b36000 !important;
}
html body .container-wrap .wpb_text_column a:not(.nectar-button):not(.link_text),
html body .container-wrap p > a:not(.nectar-button):not(.link_text),
html body .container-wrap .iwt-text a:not(.nectar-button),
html body .container-wrap .nectar-icon-list-item a:not(.nectar-button),
html body .container-wrap .nectar-fancy-ul a:not(.nectar-button) {
	color: #b36000 !important;
}
/* wyjątki na pomarańczu */
html body .container-wrap .wpb_column[data-bg-color="#f36c21"] .nectar-cta .link_text,
html body .container-wrap .pricing-table.promoBox-slider .nectar-cta .link_text {
	color: #ffffff !important;
}
html body .container-wrap .wpb_column[data-bg-color="#f36c21"] .wpb_text_column a:not(.nectar-button):not(.link_text),
html body .container-wrap .wpb_column[data-bg-color="#f36c21"] p > a:not(.nectar-button):not(.link_text) {
	color: #000000 !important;
	text-decoration: underline;
}

/* --- E1.13: komunikaty walidacji CF7 — dziedziczyły biel z kolorowych sekcji
   i ginęły na jasnym tle (zgłoszenie klienta). --- */
html body .wpcf7-form .wpcf7-not-valid-tip {
	color: #b32d2e !important; /* czerwień błędu, 5.9:1 na białym */
}
html body .wpcf7-form .wpcf7-response-output {
	color: #1f1f1f !important; /* komunikat zbiorczy pod formularzem */
}
/* na pomarańczowej kolumnie czerwień nie łapie 4.5:1 — czerń + pogrubienie */
html body .wpb_column[data-bg-color="#f36c21"] .wpcf7-not-valid-tip,
html body .wpb_column[data-bg-color="#f36c21"] .wpcf7-response-output {
	color: #000000 !important;
	font-weight: 600;
}

/* --- E1.14: boxy ofertowe (promo-offer-box / fancy-box) — jasne pomarańcze
   #fba82a/#f36c21/#f46b25 na białym (1.9–3:1) → #b36000. Hover nietknięty
   (box wypełnia się kolorem, tekst bieleje — wzorzec motywu). Podwojona
   klasa = specificity ponad custom CSS z opcji motywu. --- */
html body .box-inner-wrap.box-inner-wrap h1,
html body .box-inner-wrap.box-inner-wrap h1 span,
html body .box-inner-wrap.box-inner-wrap h5,
html body .box-inner-wrap.box-inner-wrap h6 {
	color: #b36000 !important;
}
/* hover: box wypełnia się kolorem — tekst na biało (wzorzec motywu, jawnie) */
html body .nectar-fancy-box[data-style="color_box_hover"]:hover .box-inner-wrap h1,
html body .nectar-fancy-box[data-style="color_box_hover"]:hover .box-inner-wrap h1 span,
html body .nectar-fancy-box[data-style="color_box_hover"]:hover .box-inner-wrap h5,
html body .nectar-fancy-box[data-style="color_box_hover"]:hover .box-inner-wrap h6 {
	color: #ffffff !important;
}

/* --- E1.15: nagłówki pakietów pisane <b> + wklejki Zimbry (ZmSearchResult) —
   jasny pomarańcz #fba82a na białym (1.96:1) → #b36000 --- */
html body .container-wrap h3 b,
html body .container-wrap h4 b,
html body .container-wrap .ZmSearchResult {
	color: #b36000 !important;
}

/* --- B5: systemowa redukcja ruchu — wygaszenie animacji motywu/buildera
   (WCAG 2.3.3; autoplay slidera pauzuje a11y.js) --- */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
	.wpb_animate_when_almost_visible {
		opacity: 1 !important;
		transform: none !important;
	}
}
