/*
 * Reset i układ strony (makieta: _base.scss). Tylko to, czego theme.json nie
 * wyraża: wygładzanie pisma, łamanie długich słów, obrys fokusu, ukrycie dla
 * czytnika, wyłączenie ruchu i ustawienia panelu ułatwień dostępu. Wygląd
 * bloków mieszka w ich arkuszach (`assets/css/bloki/`, `blocks/*`).
 */

/* Wymiary z obramowaniem i wcięciem, jak w całym CSS makiety (kafle, przyciski
   telefonów). */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	-webkit-font-smoothing: antialiased;

	/* Słowo dłuższe niż wiersz łamie się zamiast wystawać (WCAG 1.4.10 przy
	   320 px). */
	overflow-wrap: break-word;
}

/* Słowo z miękkim dywizem przechodzi do następnego wiersza w całości (filtr
   nagłówka w functions.php). */
.word-split {
	display: inline-block;
}

/* Numer telefonu nie łamie się w środku. */
a[href^="tel:"] {
	white-space: nowrap;
}

address {
	font-style: normal;
}

:focus-visible {
	outline: 3px solid var(--wp--preset--color--primary-hover);
	outline-offset: 2px;
}

.skip-link.screen-reader-text:focus {
	inset-inline-start: 0.5rem;
	inset-block-start: 0.5rem;
	z-index: 100000;
	clip-path: none;
	width: auto;
	height: auto;
	padding: 0.75em 1.25em;
	border-radius: var(--wp--preset--border-radius--r-3);
	background: var(--wp--preset--color--primary-deep);
	color: var(--wp--preset--color--surface);
	font-size: var(--wp--preset--font-size--t-5);
	font-weight: 600;
	line-height: 1.6;
	text-decoration: none;
}

.screen-reader-text:not(:focus),
.spzoz-tylko-czytnik {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

/*
 * Wyjątek od zakazu !important (makieta, decyzja Jonasza 2026-09-24):
 * wyłączenie ruchu ma wygrać z każdą animacją i przejściem w każdym bloku.
 */
@media (prefers-reduced-motion: reduce) {

	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		transition: none !important;
		animation: none !important;
	}
}

/* Panel ułatwień dostępu: atrybuty na <html> ustawia skrypt w <head> przed
   pierwszym renderem. */
:root[data-motion="off"] {
	scroll-behavior: auto;
}

:root[data-motion="off"] *,
:root[data-motion="off"] *::before,
:root[data-motion="off"] *::after {
	transition: none !important;
	animation: none !important;
}

:root[data-underline="on"] a[href] {
	text-decoration: underline;
	text-decoration-thickness: 0.1em;
	text-underline-offset: 0.18em;
}

/* Wyjątek dla ciemnych kontekstów: jaśniejszy obrys fokusu dla kontrastu. */
.has-dark-background-color :focus-visible {
	outline-color: var(--wp--preset--color--dark-line);
}

/* Ikony SVG makiety w treści bloków motywu (`ikona()`): pudełko znaku
   w linii. */
.icon {
	flex: none;
	vertical-align: -0.188em;
}

/* Strażnik przyklejonego paska (inc/glowa.php). */
.spzoz-straznik-naglowka {
	position: absolute;
	top: 0;
	left: 0;
	width: 0.0625rem;
	height: 15.625rem;
	pointer-events: none;
}

/*
 * Części szablonu i sekcje stykają się bez przerwy: rdzeń daje rodzeństwu
 * w `.wp-site-blocks` odstęp przepływu (gotchas 2026-08-25, wariant 2), a rytm
 * pionowy w makiecie niosą same sekcje (padding).
 */
.wp-site-blocks > * {
	margin-block-start: 0;
}
