/* =============================================================================
   BANER ZGÓD — modal wymuszający decyzję

   Prośba klienta 2026-08-06: „bardzo chciałbym, żeby wymuszały na użytkowniku
   podjęcie decyzję. Brak zgody, ale kliknięcie użytkownika jest dużo lepsze niż
   olanie w całości banera". Wzór: wyśrodkowane okno z przyciemnieniem tła.

   DLACZEGO CSS-EM, A NIE USTAWIENIEM WTYCZKI. CookieYes ma dokładnie ten układ
   pod nazwą „Popup" (Cookie Banner → Layout), ale pozycja jest oznaczona koroną —
   to funkcja płatna, tak samo jak moduł Consent Mode. Tu przestawiamy wygląd
   istniejącego wariantu „Box" na modal, bez ruszania wtyczki.

   Plik jedzie GLOBALNIE, bo baner stoi na całej witrynie — nie tylko na landingu.

   ⚠ ZGODNOŚĆ Z RODO. „Wymuszenie decyzji" oznacza tu wyłącznie tyle, że okna nie
   da się zignorować kliknięciem obok. Odmowa MUSI zostać równie łatwa co zgoda —
   dlatego „Akceptuj" i „Odrzuć" mają identyczny rozmiar, wagę i kontrast, a nie
   ciemny przycisk zgody obok bladego linku odmowy. Ściana blokująca treść bez
   możliwości odmowy byłaby niezgodna z prawem i nie o to tu chodzi.

   ⚠ SPECYFICZNOŚĆ. Wszystkie reguły idą przez `:not(.cky-hide)` albo przez dwie
   klasy. To nie ozdobnik: wtyczka ukrywa baner regułą `.cky-hide{display:none}`
   o wadze (0,1,0), a nasze `display:flex` na samej `.cky-consent-container`
   miałoby tę samą wagę — o wyniku decydowałaby kolejność wczytania arkuszy,
   czyli rzecz krucha. Przy remisie specyficzności baner potrafiłby zostać
   widoczny PO wyrażeniu zgody. Ta sama rodzina błędów co przy hero i logo
   w belce (patrz CLAUDE.md).
   -------------------------------------------------------------------------- */

/* Kontener zamienia się w pełnoekranową warstwę z przyciemnieniem.
   `inset: 0` kasuje przy okazji pozycjonowanie wariantu `.cky-box-bottom-left`. */
.cky-consent-container:not(.cky-hide) {
	align-items: center;
	background: rgba(20, 18, 16, .62);
	display: flex;
	inset: 0;
	justify-content: center;
	max-height: none;
	overflow-y: auto;
	padding: var(--dk-fluid-gutter, 24px);
	position: fixed;
	width: auto;
}

/* Samo okno. `--dk-measure` (457px) to szerokość kolumny tekstu z makiety —
   trochę szersze okno czyta się lepiej przy trzech przyciskach w rzędzie. */
.cky-consent-container:not(.cky-hide) .cky-consent-bar {
	border: 0;
	border-radius: 10px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, .35);
	margin: auto;
	max-width: 560px;
	padding: clamp(24px, 20px + 1vw, 36px);
	width: 100%;
}

/* Krzyżyk znika — to on pozwalał zamknąć baner bez podjęcia decyzji.
   Dwie klasy (0,2,0) biją regułę wtyczki (0,1,0). */
.cky-consent-container .cky-banner-btn-close {
	display: none;
}

/* --- Typografia okna pod krój witryny ------------------------------------- */

.cky-consent-container:not(.cky-hide) .cky-title {
	font-family: var(--dk-font-display, inherit);
	font-size: 1.25rem;
	font-weight: 600;
	letter-spacing: -.01em;
}

.cky-consent-container:not(.cky-hide) .cky-notice-des,
.cky-consent-container:not(.cky-hide) .cky-notice-des p {
	font-family: var(--dk-font-body, inherit);
	line-height: 1.6;
}

/* --- Przyciski: zgoda i odmowa RÓWNORZĘDNE -------------------------------- */

.cky-consent-container:not(.cky-hide) .cky-notice-btn-wrapper {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 20px;
}

/* `flex: 1 1 0` daje obu przyciskom dokładnie tę samą szerokość, a wspólne tło
   i kolor tekstu — tę samą wagę wizualną. To jest techniczna gwarancja
   równorzędności, a nie deklaracja w komentarzu.

   ⚠ Domyślnie wtyczka rysuje „Akceptuj" jako czarny prostokąt, a „Odrzuć" jako
   biały z obramowaniem. Przy równych szerokościach dalej prowadziło to wzrok
   do zgody — czyli dokładnie ten rodzaj nierównowagi, który organy ochrony
   danych opisują jako ciemny wzorzec. Oba przyciski dostają więc identyczny
   wygląd; wybór ma zależeć od treści etykiety, nie od kontrastu. */
/* ⚠ `!important` jest tu KONIECZNE i jest to jedyne miejsce w motywie, gdzie go
   używamy. Nie chodzi o wygodę ani o przegraną w specyficzności: CookieYes
   wypisuje kolory przycisków jako STYL INLINE na elemencie
   (`style="color:#666B73;background-color:transparent;border-color:#666B73"`),
   a stylu inline nie da się przebić żadnym selektorem — reguła inline wygrywa
   z każdą regułą arkusza niezależnie od wagi. `!important` to jedyny mechanizm
   CSS, który ma nad nią pierwszeństwo.

   Alternatywą było przestawienie kolorów w panelu CookieYes, ale ustawienia
   siedzą w bazie, a baza stagingu nie jedzie na produkcję — plik jedzie.
   Ta sama zasada, co przy adresacie formularza i fontach Divi. Przy okazji
   równowagi przycisków nie da się wtedy przypadkiem cofnąć klikając w panelu. */
.cky-consent-container:not(.cky-hide) .cky-notice-btn-wrapper .cky-btn-accept,
.cky-consent-container:not(.cky-hide) .cky-notice-btn-wrapper .cky-btn-reject {
	background: var(--dk-ink, #000) !important;
	border: 1px solid var(--dk-ink, #000) !important;
	color: #fff !important;
	flex: 1 1 0;
	font-weight: 600;
	margin: 0;
	min-width: 140px;
	order: 1;
}

.cky-consent-container:not(.cky-hide) .cky-notice-btn-wrapper .cky-btn-accept:hover,
.cky-consent-container:not(.cky-hide) .cky-notice-btn-wrapper .cky-btn-reject:hover {
	background: var(--dk-accent-warm, #4a453e) !important;
	border-color: var(--dk-accent-warm, #4a453e) !important;
	color: #fff !important;
}

/* „Moje ustawienia" to trzecia ścieżka — nadal przycisk, nie mikroskopijny
   odnośnik, ale POD parą zgoda/odmowa. Wtyczka stawia go domyślnie na górze
   (`order: 2` w jej własnym CSS przy układzie kolumnowym), przez co najbardziej
   wyeksponowaną opcją była ta, której prawie nikt nie potrzebuje. */
.cky-consent-container:not(.cky-hide) .cky-notice-btn-wrapper .cky-btn-customize {
	background: transparent !important;
	border: 1px solid var(--dk-rule, #585862) !important;
	color: var(--dk-ink, #000) !important;
	flex: 1 1 100%;
	margin: 0;
	order: 2;
}

/* --- Telefon -------------------------------------------------------------- */

@media (max-width: 600px) {
	.cky-consent-container:not(.cky-hide) {
		/* Na małym ekranie okno przykleja się do dołu — kciuk sięga tam bez
		   przekładania telefonu, a przyciski nie uciekają pod klawiaturę. */
		align-items: flex-end;
		padding: 0;
	}

	.cky-consent-container:not(.cky-hide) .cky-consent-bar {
		border-radius: 12px 12px 0 0;
		max-width: none;
	}

	.cky-consent-container:not(.cky-hide) .cky-notice-btn-wrapper .cky-btn-accept,
	.cky-consent-container:not(.cky-hide) .cky-notice-btn-wrapper .cky-btn-reject {
		flex: 1 1 100%;
	}
}

/* --- Blokada przewijania tła ---------------------------------------------- */

/* Bez tego strona przewijałaby się pod przyciemnieniem i okno sprawiałoby
   wrażenie, że jednak da się je pominąć.

   Robi to `:has()`, a nie JavaScript. Pierwsza wersja nakładała klasę na <html>
   obserwatorem mutacji ze skryptu w <head> — klasa nie pojawiała się w ogóle,
   a diagnozowanie tego było droższe niż zastąpienie całego mechanizmu jedną
   regułą CSS. `:has()` czyta stan bezpośrednio z klasy, którą i tak przełącza
   wtyczka, więc nie ma czego rozsynchronizować.

   Przeglądarki bez obsługi `:has()` po prostu pozwolą przewijać tło — modal
   nadal blokuje kliknięcia, więc decyzji i tak nie da się pominąć. */
html:has(.cky-consent-container:not(.cky-hide)),
html:has(.cky-consent-container:not(.cky-hide)) body {
	overflow: hidden;
}
