/* =============================================================================
   TELEFON — pływający przycisk „zadzwoń" i słuchawka przy numerze w stopce

   Prośba klienta 2026-08-07. Arkusz jedzie GLOBALNIE (jak topbar.css), bo
   przycisk stoi na całej witrynie: landing, polityka prywatności, wersja EN.

   ⚠ CO TU CELOWO NIE STOI: numer telefonu. Ani w `content`, ani w żadnym
   pseudoelemencie. Na numerze pracuje skrypt Google do podmiany numeru (DNI) —
   podmienia węzły tekstowe w DOM-ie, a tekstu wstawionego CSS-em nie widzi ani
   nie potrafi podmienić. Numer wpisany tutaj zostałby więc na stronie w starej
   postaci przy odwiedzinach z kampanii. Numer żyje wyłącznie w PHP, w stałych
   DK_TELEFON_HREF / DK_TELEFON_TEKST.

   ⚠ WARSTWY. z-index 45 jest niższy niż belka (50) i dużo niższy niż baner zgód
   CookieYes. To zamierzone: dopóki modal zgód wymusza decyzję, przycisk ma być
   pod przyciemnieniem i niedostępny dla kliknięcia — inaczej dałoby się ominąć
   wymuszenie, klikając w słuchawkę.
   ========================================================================== */

/* -----------------------------------------------------------------------------
   Pływający przycisk
   -------------------------------------------------------------------------- */

.dk-call-fab {
	align-items: center;
	background: var(--dk-ink, #000);
	border-radius: 50%;
	/* Cień, a nie obramowanie: przycisk leży na treści o nieprzewidywalnym tle
	   (zdjęcia w portfolio, jasna stopka, ciemny pas), więc musi się odcinać
	   od każdego z nich. */
	box-shadow: 0 6px 20px rgba(0, 0, 0, .28);
	color: #fff;
	display: flex;
	height: 56px;
	justify-content: center;
	position: fixed;
	right: clamp(16px, 2vw, 28px);
	transition: background-color .2s ease, transform .2s ease;
	width: 56px;
	z-index: 45;

	/* `env(safe-area-inset-bottom)` odsuwa przycisk od paska gestów iPhone'a.
	   Bez `max()` na telefonach bez wcięcia zostałby zbyt wysoko — `env()` zwraca
	   tam 0, więc `max()` wybiera zwykłą wartość. */
	bottom: max(clamp(16px, 2vw, 28px), env(safe-area-inset-bottom, 0px) + 12px);
}

.dk-call-fab__ikona {
	height: 26px;
	width: 26px;
}

.dk-call-fab:hover,
.dk-call-fab:focus-visible {
	background: var(--dk-accent-warm, #4a453e);
	color: #fff;
	transform: translateY(-2px);
}

/* Widoczny pierścień fokusa. Divi zeruje `outline` na odnośnikach, a przycisk
   jest sterowalny klawiaturą — bez tego użytkownik klawiatury nie wie, gdzie
   stoi. Pierścień na zewnątrz, żeby nie zjadał ikony. */
.dk-call-fab:focus-visible {
	outline: 2px solid var(--dk-ink, #000);
	outline-offset: 3px;
}

/* Ciemny pas i zdjęcia potrafią być pod przyciskiem — na małym ekranie cel
   dotykowy rośnie do 60px (minimum WCAG to 44px, ale kciuk trafia pewniej
   w większy). */
@media (max-width: 767px) {
	.dk-call-fab {
		height: 60px;
		width: 60px;
	}

	.dk-call-fab__ikona {
		height: 28px;
		width: 28px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.dk-call-fab {
		transition: background-color .2s ease;
	}

	.dk-call-fab:hover,
	.dk-call-fab:focus-visible {
		transform: none;
	}
}

/* Przy drukowaniu przycisk jest bezużyteczny — zostawiłby czarne kółko na
   kartce. Numer w stopce drukuje się normalnie. */
@media print {
	.dk-call-fab {
		display: none;
	}
}

/* -----------------------------------------------------------------------------
   Słuchawka przy numerze w stopce
   -------------------------------------------------------------------------- */

/* `inline-flex` trzyma ikonę i numer w jednym wierszu i pozwala wyrównać je
   do linii pisma. Odstęp w `em`, żeby skalował się razem z płynnym stopniem
   pisma stopki (`--dk-fluid-lead`). */
.dk-footer__tel {
	align-items: center;
	display: inline-flex;
	gap: .45em;
	/* Kontakt w stopce jest wyrównany do prawej, a `<span>` w kolumnie flex
	   rozciąga się na całą szerokość — bez tego ikona z numerem wylądowałyby
	   przy lewej krawędzi, w rozjeździe z adresem i mailem nad nimi. */
	justify-content: flex-end;
}

.dk-footer__tel-ikona {
	/* `flex: none` — bez tego ikona kurczy się przy wąskiej kolumnie i słuchawka
	   robi się owalna. */
	flex: none;
	height: 1.05em;
	width: 1.05em;
}

/* Te same przełamania, co w sections.css: od 980px stopka wyrównuje kontakt
   do lewej. Wyrównanie zawartości musi pójść za nim, inaczej ikona z numerem
   zostają przyklejone do prawej krawędzi kolumny. */
@media (max-width: 980px) {
	.dk-footer__tel {
		justify-content: flex-start;
	}
}
