/* Komunikat dla klientów: okienko i zakładka.
   Wszystko pod #id, żeby style motywu (przyciski, nagłówki) nie przebijały wyglądu.
   Zaokrąglenia: okno 16px, wszystko w środku (przyciski, ramki, zakładka) 10px, jak przyciski na stronie.
   Kolorystyka: neutralne szarości strony + jeden kolor marki. Odcienie marki (--kdk-a-*, --kdk-p-*)
   wylicza PHP z ustawienia „Kolor marki”, z zachowaniem kontrastu WCAG AA. */

html.kdk-otwarty {
	overflow: hidden;
}

/* Kolory: jasna kolorystyka */

#kdk-komunikat,
#kdk-zakladka {
	--kdk-tlo: #fcfcfc;
	--kdk-tekst: #0f0f0f;
	--kdk-tekst-2: #3b3b3b;
	--kdk-tekst-3: #6b6b6b;
	--kdk-linia: #e7e7e7;
	--kdk-hover: #f2f2f2;
	--kdk-zaslona: rgba(15, 15, 15, 0.55);
	--kdk-cien: 0 1px 2px rgba(15, 15, 15, 0.06), 0 28px 70px -18px rgba(15, 15, 15, 0.42);
	--kdk-cien-scroll: rgba(15, 15, 15, 0.14);
	--kdk-akcent-ikona: var(--kdk-a, #13a1de);
	--kdk-akcent-tekst: var(--kdk-a-tekst-j, #0e7aa9);
	--kdk-ramka-tlo: var(--kdk-a-tlo-j, #eef7fb);
	--kdk-ramka-linia: var(--kdk-a-linia-j, #c4e4f4);
	--kdk-ramka-karta: var(--kdk-a-karta-j, #fbfeff);
	--kdk-przycisk: var(--kdk-p-j, #0e7aa9);
	--kdk-przycisk-tekst: var(--kdk-p-tekst-j, #fcfcfc);
	--kdk-przycisk-filtr: var(--kdk-p-filtr-j, brightness(1.15));
}

/* Kolory: ciemna kolorystyka (wymuszona albo wg systemu) */

#kdk-komunikat[data-motyw="ciemny"],
#kdk-zakladka[data-motyw="ciemny"] {
	--kdk-tlo: #161616;
	--kdk-tekst: #f2f2f2;
	--kdk-tekst-2: #cdcdcd;
	--kdk-tekst-3: #9d9d9d;
	--kdk-linia: #2c2c2c;
	--kdk-hover: #232323;
	--kdk-zaslona: rgba(5, 5, 5, 0.68);
	--kdk-cien: 0 28px 70px -18px rgba(0, 0, 0, 0.75);
	--kdk-cien-scroll: rgba(0, 0, 0, 0.5);
	--kdk-akcent-ikona: var(--kdk-a-tekst-c, #13a1de);
	--kdk-akcent-tekst: var(--kdk-a-tekst-c, #13a1de);
	--kdk-ramka-tlo: var(--kdk-a-tlo-c, #172a33);
	--kdk-ramka-linia: var(--kdk-a-linia-c, #1a4458);
	--kdk-ramka-karta: var(--kdk-a-karta-c, #183540);
	--kdk-przycisk: var(--kdk-p-c, #13a1de);
	--kdk-przycisk-tekst: var(--kdk-p-tekst-c, #0f0f0f);
	--kdk-przycisk-filtr: var(--kdk-p-filtr-c, brightness(0.92));
}

@media (prefers-color-scheme: dark) {
	#kdk-komunikat[data-motyw="auto"],
	#kdk-zakladka[data-motyw="auto"] {
		--kdk-tlo: #161616;
		--kdk-tekst: #f2f2f2;
		--kdk-tekst-2: #cdcdcd;
		--kdk-tekst-3: #9d9d9d;
		--kdk-linia: #2c2c2c;
		--kdk-hover: #232323;
		--kdk-zaslona: rgba(5, 5, 5, 0.68);
		--kdk-cien: 0 28px 70px -18px rgba(0, 0, 0, 0.75);
		--kdk-cien-scroll: rgba(0, 0, 0, 0.5);
		--kdk-akcent-ikona: var(--kdk-a-tekst-c, #13a1de);
		--kdk-akcent-tekst: var(--kdk-a-tekst-c, #13a1de);
		--kdk-ramka-tlo: var(--kdk-a-tlo-c, #172a33);
		--kdk-ramka-linia: var(--kdk-a-linia-c, #1a4458);
		--kdk-ramka-karta: var(--kdk-a-karta-c, #183540);
		--kdk-przycisk: var(--kdk-p-c, #13a1de);
		--kdk-przycisk-tekst: var(--kdk-p-tekst-c, #0f0f0f);
		--kdk-przycisk-filtr: var(--kdk-p-filtr-c, brightness(0.92));
	}
}

/* Okno. Na telefonie i tablecie przewija się całe, nagłówek i przycisk zostają przyklejone. */

#kdk-komunikat {
	box-sizing: border-box;
	width: calc(100vw - 24px);
	max-width: none;
	max-height: calc(100vh - 24px);
	max-height: calc(100dvh - 24px);
	margin: auto;
	padding: 0;
	border: 1px solid var(--kdk-linia);
	border-radius: 16px;
	background: var(--kdk-tlo);
	color: var(--kdk-tekst-2);
	box-shadow: var(--kdk-cien);
	font-family: inherit;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.6;
	text-align: left;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
}

#kdk-komunikat:not([open]) {
	display: none;
}

#kdk-komunikat[open] {
	display: block;
	animation: kdk-wejscie 0.28s cubic-bezier(0.16, 1, 0.3, 1);
}

#kdk-komunikat::backdrop {
	background: rgba(15, 15, 15, 0.55);
	background: var(--kdk-zaslona, rgba(15, 15, 15, 0.55));
	-webkit-backdrop-filter: blur(3px);
	backdrop-filter: blur(3px);
	animation: kdk-zaslona 0.28s ease-out;
}

#kdk-komunikat *,
#kdk-komunikat *::before,
#kdk-komunikat *::after {
	box-sizing: border-box;
}

#kdk-komunikat svg,
#kdk-zakladka svg {
	display: block;
	flex: none;
	pointer-events: none;
}

/* Nagłówek */

#kdk-komunikat .kdk__naglowek {
	position: sticky;
	top: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 12px 14px 20px;
	border-bottom: 1px solid var(--kdk-linia);
	background: var(--kdk-tlo);
}

#kdk-komunikat .kdk__ikona {
	flex: none;
	color: var(--kdk-akcent-ikona);
}

#kdk-komunikat .kdk__tytul {
	flex: 1;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	color: var(--kdk-akcent-tekst);
	font-family: var(--kdk-font-tytul, inherit);
	font-size: 1.1em;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

#kdk-komunikat .kdk__tytul::before,
#kdk-komunikat .kdk__tytul::after {
	content: none;
}

#kdk-komunikat .kdk__zamknij {
	flex: none;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 10px;
	background: transparent;
	box-shadow: none;
	color: var(--kdk-tekst-3);
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease;
}

#kdk-komunikat .kdk__zamknij:hover,
#kdk-komunikat .kdk__zamknij:focus {
	background: var(--kdk-hover);
	color: var(--kdk-tekst);
}

/* Treść */

#kdk-komunikat .kdk__tresc {
	padding: 20px 20px 4px;
	outline: none;
}

#kdk-komunikat .kdk__tresc p,
#kdk-komunikat .kdk__ramka p {
	margin: 0 0 0.9em;
	padding: 0;
	color: inherit;
	font-size: 1em;
	font-weight: 400;
	line-height: 1.6;
}

#kdk-komunikat .kdk__kolumny > p:first-child {
	color: var(--kdk-tekst);
	font-weight: 600;
}

#kdk-komunikat .kdk__tresc h3 {
	margin: 1.4em 0 0.45em;
	padding: 0;
	border: 0;
	background: none;
	color: var(--kdk-tekst);
	font-family: inherit;
	font-size: 1em;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: normal;
	text-transform: none;
}

#kdk-komunikat .kdk__tresc h3:first-child {
	margin-top: 0;
}

#kdk-komunikat .kdk__tresc ul,
#kdk-komunikat .kdk__tresc ol {
	margin: 0 0 0.9em;
	padding: 0 0 0 1.25em;
}

#kdk-komunikat .kdk__tresc ul {
	list-style: disc;
}

#kdk-komunikat .kdk__tresc ol {
	list-style: decimal;
}

#kdk-komunikat .kdk__tresc li {
	margin: 0.25em 0;
	padding: 0;
	font-weight: 400;
	line-height: 1.55;
}

#kdk-komunikat .kdk__tresc li::marker {
	color: var(--kdk-akcent-ikona);
}

#kdk-komunikat .kdk__tresc li::before {
	content: none;
}

#kdk-komunikat a {
	color: inherit;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

#kdk-komunikat strong {
	color: var(--kdk-tekst);
	font-weight: 600;
}

/* Wyróżniony blok w treści (zgodność z wersją 1.0.x) */
#kdk-komunikat .kdk-wazne {
	margin: 0 0 0.9em;
	padding: 14px 16px;
	border: 1px solid var(--kdk-ramka-linia);
	border-radius: 10px;
	background: var(--kdk-ramka-tlo);
}

#kdk-komunikat .kdk-wazne p:last-child {
	margin-bottom: 0;
}

/* Ramka z zaleceniami */

#kdk-komunikat .kdk__ramka {
	margin: 12px 12px 0;
	padding: 18px 18px 18px;
	border: 1px solid var(--kdk-ramka-linia);
	border-radius: 10px;
	background: var(--kdk-ramka-tlo);
	color: var(--kdk-tekst);
}

#kdk-komunikat .kdk__ramka-tytul {
	margin: 0 0 0.6em;
	padding: 0;
	border: 0;
	background: none;
	color: var(--kdk-akcent-tekst);
	font-family: var(--kdk-font-tytul, inherit);
	font-size: 1em;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

#kdk-komunikat .kdk__telefon {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 1.1em 0 0;
	padding: 12px 16px;
	border: 1px solid var(--kdk-ramka-linia);
	border-radius: 10px;
	background: var(--kdk-ramka-karta);
	color: var(--kdk-tekst);
	text-decoration: none;
	transition: border-color 0.15s ease;
}

#kdk-komunikat .kdk__telefon svg {
	color: var(--kdk-akcent-ikona);
}

#kdk-komunikat .kdk__telefon:hover {
	border-color: var(--kdk-akcent-ikona);
}

#kdk-komunikat .kdk__telefon-opis {
	display: block;
	color: var(--kdk-tekst-3);
	font-size: 0.8em;
	line-height: 1.3;
}

#kdk-komunikat .kdk__telefon-numer {
	display: block;
	font-size: 1.45em;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.01em;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

/* Stopka z przyciskiem */

#kdk-komunikat .kdk__stopka {
	position: sticky;
	bottom: 0;
	z-index: 1;
	margin-top: 12px;
	padding: 12px;
	border-top: 1px solid var(--kdk-linia);
	background: var(--kdk-tlo);
}

#kdk-komunikat .kdk__przycisk,
#kdk-zakladka {
	-webkit-appearance: none;
	appearance: none;
	border: 0;
	border-radius: 10px;
	background: var(--kdk-przycisk);
	box-shadow: none;
	color: var(--kdk-przycisk-tekst);
	font-family: var(--kdk-font-przycisk, inherit);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
	transition: filter 0.15s ease, transform 0.15s cubic-bezier(0.16, 1, 0.3, 1);
}

#kdk-komunikat .kdk__przycisk {
	display: block;
	width: 100%;
	min-height: 48px;
	margin: 0;
	padding: 12px 24px;
	font-size: 13px;
	line-height: 1.2;
}

#kdk-komunikat .kdk__przycisk:hover,
#kdk-komunikat .kdk__przycisk:focus,
#kdk-zakladka:hover,
#kdk-zakladka:focus {
	background: var(--kdk-przycisk);
	color: var(--kdk-przycisk-tekst);
	filter: var(--kdk-przycisk-filtr);
}

#kdk-komunikat .kdk__przycisk:active,
#kdk-zakladka:active {
	transform: scale(0.98);
}

#kdk-komunikat .kdk__zamknij:focus-visible,
#kdk-komunikat .kdk__przycisk:focus-visible,
#kdk-komunikat a:focus-visible,
#kdk-zakladka:focus-visible {
	outline: 2px solid var(--kdk-tekst);
	outline-offset: 2px;
}

/* Komputer: treść w kolumnach po lewej, ramka z zaleceniami i przycisk po prawej.
   Całość ma się zmieścić bez przewijania. Jeśli się nie mieści, skrypt dodaje .kdk--jedna
   i treść wraca do jednej kolumny przewijanej w swoim obszarze. */

@media (min-width: 960px) {
	#kdk-komunikat {
		width: min(1320px, calc(100vw - 48px));
		overflow: hidden;
	}

	#kdk-komunikat[open] {
		display: grid;
		grid-template-columns: minmax(0, 1fr) clamp(290px, 24vw, 340px);
		grid-template-rows: auto minmax(0, 1fr) auto;
		grid-template-areas:
			"glowa glowa"
			"tresc ramka"
			"tresc stopka";
	}

	#kdk-komunikat.kdk--bez-ramki[open] {
		width: min(1040px, calc(100vw - 48px));
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas:
			"glowa"
			"tresc"
			"stopka";
	}

	#kdk-komunikat .kdk__naglowek {
		grid-area: glowa;
		position: static;
		gap: 14px;
		padding: 16px 20px 16px 32px;
	}

	#kdk-komunikat .kdk__tytul {
		font-size: 1.25em;
	}

	#kdk-komunikat .kdk__tresc {
		grid-area: tresc;
		min-height: 0;
		overflow-y: auto;
		overscroll-behavior: contain;
		padding: 26px 32px 18px;
		/* Cień u góry i dołu, gdy jest co przewijać */
		background:
			linear-gradient(var(--kdk-tlo) 30%, transparent) top / 100% 28px no-repeat local,
			linear-gradient(transparent, var(--kdk-tlo) 70%) bottom / 100% 28px no-repeat local,
			radial-gradient(farthest-side at 50% 0, var(--kdk-cien-scroll), transparent) top / 100% 12px no-repeat scroll,
			radial-gradient(farthest-side at 50% 100%, var(--kdk-cien-scroll), transparent) bottom / 100% 12px no-repeat scroll;
		background-color: var(--kdk-tlo);
	}

	#kdk-komunikat:not(.kdk--jedna) .kdk__kolumny {
		column-width: 300px;
		column-gap: 48px;
	}

	#kdk-komunikat .kdk__kolumny h3 {
		break-after: avoid;
		break-inside: avoid;
	}

	#kdk-komunikat .kdk__kolumny li,
	#kdk-komunikat .kdk-wazne {
		break-inside: avoid;
	}

	#kdk-komunikat .kdk__kolumny p {
		orphans: 3;
		widows: 3;
	}

	#kdk-komunikat .kdk__ramka {
		grid-area: ramka;
		min-height: 0;
		overflow-y: auto;
		margin: 0;
		padding: 26px 28px 8px;
		border: 0;
		border-radius: 0;
	}

	#kdk-komunikat .kdk__stopka {
		grid-area: stopka;
		position: static;
		margin: 0;
		padding: 16px 28px 28px;
		border: 0;
		background: var(--kdk-ramka-tlo);
	}

	#kdk-komunikat.kdk--bez-ramki .kdk__stopka {
		display: flex;
		justify-content: flex-end;
		padding: 14px 32px 18px;
		border-top: 1px solid var(--kdk-linia);
		background: var(--kdk-tlo);
	}

	#kdk-komunikat.kdk--bez-ramki .kdk__przycisk {
		width: auto;
		min-width: 180px;
	}
}

/* Niskie ekrany laptopów (np. 1366×768): odrobinę mniejszy tekst, żeby nadal obyło się bez przewijania. */

@media (min-width: 960px) and (max-height: 760px) {
	#kdk-komunikat {
		font-size: 15px;
	}

	#kdk-komunikat .kdk__naglowek {
		padding-top: 12px;
		padding-bottom: 12px;
	}

	#kdk-komunikat .kdk__tresc,
	#kdk-komunikat .kdk__ramka {
		padding-top: 20px;
	}

	#kdk-komunikat .kdk__stopka {
		padding-bottom: 22px;
	}
}

/* Zakładka, która ponownie otwiera komunikat */

#kdk-zakladka {
	position: fixed;
	bottom: 16px;
	left: 16px;
	z-index: 99990;
	display: inline-flex;
	align-items: center;
	gap: 9px;
	max-width: calc(100vw - 32px);
	margin: 0;
	padding: 11px 16px 11px 13px;
	box-shadow: 0 10px 30px -8px rgba(15, 15, 15, 0.45);
	font-size: 12px;
	line-height: 1.2;
}

#kdk-zakladka.kdk-zakladka--prawo {
	right: 16px;
	left: auto;
}

#kdk-zakladka[hidden] {
	display: none !important;
}

#kdk-zakladka span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* Telefony */

@media (max-width: 560px) {
	#kdk-komunikat {
		font-size: 15px;
		border-radius: 16px;
	}

	#kdk-komunikat .kdk__naglowek {
		padding: 12px 8px 12px 16px;
	}

	#kdk-komunikat .kdk__tytul {
		font-size: 1em;
	}

	#kdk-komunikat .kdk__tresc {
		padding: 16px 16px 4px;
	}

	#kdk-komunikat .kdk__ramka {
		margin: 8px 8px 0;
		padding: 16px;
	}

	#kdk-komunikat .kdk__stopka {
		padding: 10px 8px;
	}
}

@keyframes kdk-wejscie {
	from {
		opacity: 0;
		transform: translateY(10px) scale(0.985);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

@keyframes kdk-zaslona {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

@media (prefers-reduced-motion: reduce) {
	#kdk-komunikat[open],
	#kdk-komunikat::backdrop {
		animation: none;
	}

	#kdk-komunikat .kdk__przycisk,
	#kdk-zakladka {
		transition: none;
	}

	#kdk-komunikat .kdk__przycisk:active,
	#kdk-zakladka:active {
		transform: none;
	}
}
