/*
Theme Name: Rozstaj
Theme URI: https://www.szablonstrony.pl/project/rozstaj/
Author: Telepartner Sp. z o.o.
Description: Motyw-klucz do oznaczania: rozstaje z ramionami zamiast paska nawigacji, trójstopniowa ocena ryzyka nietrafienia, widełki cenowe i tablice z rycinami. Klasyczny motyw PHP, zero JavaScriptu, fonty hostowane lokalnie. Zbudowany dla serwisów, które muszą POMÓC WYBRAĆ, a nie tylko pokazać teksty.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: pp
Tags: klasyczny, bez-javascriptu, dostepny, poradnikowy

Kontrakt projektowy: nie-wgrywac/DESIGN-ROZSTAJ.md
⚠ Kolejność sekcji odpowiada budżetowi CSS z §5. Nie dokładać komponentów
   bez wpisu w kontrakcie.
*/

/* =====================================================================
   1. ZMIENNE I RESET
   ===================================================================== */

:root {
	--papier: #F4F2EC;
	--poletko: #E9E6DD;
	--papier-jasny: #EAE8E2;
	--wrzos: #DEDCEC;
	--okladka: #2A234D;
	--atrament: #1C192E;
	--meta: #423E60;
	--indygo: #372A79;
	--indygo-jasny: #C0B8EA;
	--kreska: #7F7D74;
	--dekor: #CFCABE;
	--biel: #FFFFFF;

	--szpalta: 34rem;
	--pole: 62rem;
	--proza: 1.1875rem;   /* 19px */
	--interlinia: 1.65;
}

@font-face {
	font-family: "Source Serif 4";
	src: url("fonts/rozstaj-sourceserif4-400.woff2") format("woff2");
	font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
	font-family: "Source Serif 4";
	src: url("fonts/rozstaj-sourceserif4-600.woff2") format("woff2");
	font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
	font-family: "Archivo Narrow";
	src: url("fonts/rozstaj-archivonarrow-700.woff2") format("woff2");
	font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
	font-family: "Archivo";
	src: url("fonts/rozstaj-archivo-600.woff2") format("woff2");
	font-weight: 600; font-style: normal; font-display: swap;
}

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

html { font-size: 100%; -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	background: var(--papier);
	color: var(--atrament);
	font-family: "Source Serif 4", Georgia, "Times New Roman", serif;
	font-size: var(--proza);
	line-height: var(--interlinia);
	text-rendering: optimizeLegibility;
}

img { max-width: 100%; height: auto; }

a { color: var(--indygo); text-underline-offset: 0.16em; }
a:hover { text-decoration-thickness: 2px; }

:focus-visible {
	outline: 2px solid var(--indygo);
	outline-offset: 2px;
}
/* ⚠ Na ciemnych płaszczyznach indygo ma 1,22:1 wobec okładki — obrys byłby
   NIEWIDOCZNY. Kontrakt §7: na okładce i w stopce focus jest indygo_jasny. */
.rz-okladka :focus-visible,
.rz-panel-nawigacji :focus-visible,
.rz-stopka :focus-visible {
	outline-color: var(--indygo-jasny);
}

h1, h2, h3 {
	font-family: "Archivo Narrow", "Arial Narrow", Arial, sans-serif;
	font-weight: 700;
	line-height: 1.18;
	margin: 0 0 0.5em;
	color: var(--atrament);
}
h1 { font-size: 1.9375rem; }   /* 31px */
h2 { font-size: 1.5625rem; }   /* 25px */
h3 { font-size: 1.3125rem; }   /* 21px */

p, ul, ol { margin: 0 0 1.1em; }
ul, ol { padding-left: 1.4em; }
li { margin-bottom: 0.35em; }
strong { font-weight: 600; }
em { font-weight: 600; font-style: normal; }   /* kursywa poza wydaniem 1.0 (§12.6) */

.rz-skip {
	position: absolute; left: -9999px; top: 0; z-index: 10;
	background: var(--indygo); color: var(--biel);
	padding: 0.6rem 1rem; font-family: "Archivo", sans-serif; font-weight: 600;
}
.rz-skip:focus { left: 0; }

/* =====================================================================
   2. RUSZTOWANIE
   ===================================================================== */

.rz-main { display: block; }

.rz-szpalta {
	max-width: var(--szpalta);
	margin: 0 auto;
	padding: 2.2rem 1.1rem 3rem;
}
.rz-szpalta--front,
.rz-szpalta--szeroka { max-width: var(--pole); }   /* siatka Okazów potrzebuje pola, nie szpalty prozy */

/* Okładka */
.rz-okladka { background: var(--okladka); color: var(--papier-jasny); }
.rz-okladka__pas {
	max-width: var(--pole); margin: 0 auto;
	padding: 1.1rem 1.1rem 0.6rem;
}
.rz-okladka__nazwa {
	margin: 0;
	font-family: "Archivo Narrow", sans-serif; font-weight: 700;
	font-size: 1.5625rem; letter-spacing: 0.01em;
}
.rz-okladka__nazwa a { color: var(--biel); text-decoration: none; }
.rz-okladka__nazwa a:hover { text-decoration: underline; }
.rz-okladka__tagline {
	margin: 0.15rem 0 0;
	font-size: 1rem; color: var(--papier-jasny);
}

/* Nawigacja */
.rz-klucz-nawigacji {
	max-width: var(--pole); margin: 0 auto; padding: 0 1.1rem 0.6rem;
}
.rz-klucz-nawigacji summary {
	display: inline-flex; align-items: center; gap: 0.5rem;
	font-family: "Archivo", sans-serif; font-weight: 600;
	font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.07em;
	color: var(--indygo-jasny); cursor: pointer;
	padding: 0.5rem 0; min-height: 44px; list-style: none;
}
.rz-klucz-nawigacji summary::-webkit-details-marker { display: none; }
.rz-klucz-nawigacji summary::after {
	content: ""; width: 0.7rem; height: 0.7rem;
	border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
	transform: rotate(45deg); transition: transform 0.12s linear;
}
.rz-klucz-nawigacji[open] summary::after { transform: rotate(-135deg); }

/* ⚠ panel jest RODZEŃSTWEM <details>, nie dzieckiem */
.rz-panel-nawigacji { display: none; background: var(--okladka); }
#nawigacja[open] ~ .rz-panel-nawigacji { display: block; }

.rz-menu {
	list-style: none; margin: 0;
	max-width: var(--pole); margin-inline: auto;
	padding: 0 1.1rem 0.9rem;
	display: flex; flex-wrap: wrap; gap: 0.2rem 1.3rem;
	font-family: "Archivo", sans-serif; font-weight: 600;
	font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.06em;
}
.rz-menu li { margin: 0; }
.rz-menu a {
	color: var(--indygo-jasny); text-decoration: none;
	display: inline-block; padding: 0.55rem 0; min-height: 44px;
}
.rz-menu a:hover { text-decoration: underline; }
.rz-menu .current-menu-item > a,
.rz-menu [aria-current="page"] {
	color: var(--biel); border-bottom: 2px solid var(--biel);
}

@media (min-width: 62rem) {
	.rz-klucz-nawigacji { display: none; }
	.rz-panel-nawigacji { display: block; }
}

/* =====================================================================
   3. ROZSTAJ, RAMIĘ, TROP
   ===================================================================== */

/* ⚠ Front MUSI mieć dokładnie jeden h1 — nazwa serwisu w okładce jest <p>,
   więc tytuł frontu nazywa jego funkcję w języku klucza. */
.rz-front__tytul { font-size: 1.9375rem; margin-bottom: 0.4rem; }

.rz-lead {
	font-weight: 600; font-size: 1.3125rem; line-height: 1.5;
	margin-bottom: 1.8rem;
}

.rz-rozstaj { margin: 0 0 2.2rem; }
.rz-rozstaj__pytanie {
	display: flex; align-items: center; gap: 0.7rem;
	font-size: 1.3125rem; margin-bottom: 0.9rem;
}
.rz-rozstaj__numer {
	flex: 0 0 auto;
	width: 2rem; height: 2rem; border-radius: 50%;
	border: 2px solid var(--indygo); background: var(--wrzos);
	color: var(--indygo);
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 1rem;
}
.rz-rozstaj__ramiona {
	position: relative;
	list-style: none; margin: 0; padding-left: 2.4rem;
	display: grid; gap: 0.6rem;
}
/* ⚠ Oś klucza kończy się NA OSTATNIM PODPIĘCIU. `border-left` na całym `ul`
   zostawiał wiszący ogon pod ostatnim ramieniem (znalezisko recenzji). */
.rz-rozstaj__ramiona::before {
	content: ""; position: absolute; left: 0; top: 0;
	bottom: calc(50% - 0.3rem);
	width: 0; border-left: 2px solid var(--kreska);
}
.rz-ramie { position: relative; margin: 0; }
/* kanoniczna łamana „L" klucza */
.rz-ramie::before {
	content: ""; position: absolute;
	left: -2.4rem; top: 0; width: 2.4rem; height: 50%;
	border-bottom: 2px solid var(--kreska);
	pointer-events: none;
}
.rz-ramie > a {
	display: block; min-height: 44px;
	background: var(--poletko);
	border: 1px solid var(--kreska);
	padding: 0.6rem 0.9rem;
	text-decoration: none; color: var(--atrament);
}
.rz-ramie > a:hover,
.rz-ramie > a:focus-visible {
	background: var(--wrzos); border-color: var(--indygo); border-width: 2px;
	padding: calc(0.6rem - 1px) calc(0.9rem - 1px);
}
.rz-ramie__etykieta {
	display: block;
	font-family: "Archivo", sans-serif; font-weight: 600;
	font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.06em;
	color: var(--meta);
}
.rz-ramie__odpowiedz { display: block; font-weight: 600; }
.rz-ramie > a[aria-current="page"] {
	background: var(--wrzos); border-color: var(--indygo); border-width: 2px;
	padding: calc(0.6rem - 1px) calc(0.9rem - 1px);
}
.rz-ramie--przekreslone > a { border-style: dashed; }
.rz-ramie--przekreslone .rz-ramie__odpowiedz { text-decoration: line-through; }

.rz-trop {
	font-family: "Archivo", sans-serif; font-weight: 600;
	font-size: 0.875rem; color: var(--meta);
	margin-bottom: 1rem;
}
.rz-trop a { color: var(--indygo); }
.rz-trop__sep { padding: 0 0.4rem; color: var(--kreska); }

/* =====================================================================
   4. OKAZ, RYCINA, POLE PUSTE, SIATKA
   ===================================================================== */

/* ⚠ Siatka liczy kolumny z SZEROKOŚCI KONTENERA, nie okna: ta sama siatka
   stoi w polu 62rem (archiwum) i w szpalcie 34rem (sąsiedzi na karcie).
   Media query na oknie dawało 3 kolumny w szpalcie 544 px i ucinało kafle. */
.rz-siatka {
	display: grid; gap: 0.9rem;
	grid-template-columns: repeat(auto-fill, minmax(21rem, 1fr));
}
/* ⚠ bez `min-width: 0` element siatki nie schodzi poniżej swojej szerokości
   minimalnej i cała siatka wypycha się poza kontener */
.rz-siatka > * { min-width: 0; }

.rz-okaz {
	display: grid; grid-template-columns: 1fr; gap: 0.7rem;
	min-width: 0;
	background: var(--papier); border: 1px solid var(--kreska);
	padding: 0.8rem; align-items: start;
}
@media (min-width: 30rem) { .rz-okaz { grid-template-columns: 130px minmax(0, 1fr); } }
.rz-okaz__kadr { display: block; text-decoration: none; }
/* ⚠ długie słowa („samochodowa", „podziękowanie") wychodziły poza kafel —
   siatka nie zmniejsza kolumny poniżej najdłuższego słowa bez tej reguły */
.rz-okaz__nazwa { font-family: "Source Serif 4", serif; font-weight: 600; font-size: 1.1875rem; margin: 0 0 0.35rem; }
.rz-okaz__nazwa, .rz-okaz p, .rz-metki--tekst { overflow-wrap: break-word; }
.rz-okaz__nazwa a { text-decoration-thickness: 1px; }
.rz-okaz p { margin: 0 0 0.3rem; font-size: 0.9375rem; }

/* Rycina — kontrakt obrazkowy §12.2: contain, 3:2, nigdy cover, nigdy w górę */
.rz-rycina {
	margin: 0 0 1.2rem;
	background: var(--biel);
	border: 1px solid var(--kreska);
	padding: 12px;
	max-width: min(100%, 424px);
}
.rz-rycina img {
	/* ⚠ kontrakt §12.2: NIGDY `width: 100%` — obraz ma dobić do swojej
	   szerokości naturalnej i się zatrzymać, a nie wypełnić ramkę. */
	display: block; width: auto; height: auto;
	max-width: min(100%, 424px);
	aspect-ratio: 3 / 2; object-fit: contain;
	margin-inline: auto; background: var(--biel);
}
.rz-rycina--kadr img { max-width: min(100%, 130px); }
.rz-rycina--kadr { padding: 6px; max-width: 130px; margin: 0; }
.rz-rycina--kadr img { aspect-ratio: 1 / 1; }
.rz-rycina figcaption {
	margin-top: 0.6rem; padding-top: 0.5rem;
	border-top: 1px solid var(--dekor);
	font-size: 0.9375rem; color: var(--meta); line-height: 1.45;
}

/* Pole puste — 21 załączników bez pliku i karty bez zdjęcia */
.rz-puste {
	position: relative;
	display: flex; align-items: center; justify-content: center;
	aspect-ratio: 3 / 2; width: 100%;
	background-color: var(--poletko);
	/* kreskowanie 45° + DWIE włoskowate przekątne (kontrakt §5.7) */
	background-image:
		linear-gradient(to bottom right, transparent calc(50% - 0.5px), var(--kreska) calc(50% - 0.5px), var(--kreska) calc(50% + 0.5px), transparent calc(50% + 0.5px)),
		linear-gradient(to bottom left, transparent calc(50% - 0.5px), var(--kreska) calc(50% - 0.5px), var(--kreska) calc(50% + 0.5px), transparent calc(50% + 0.5px)),
		repeating-linear-gradient(45deg, var(--kreska) 0 1px, transparent 1px 7px);
	border: 1px solid var(--kreska);
	text-align: center;
}
.rz-rycina--kadr .rz-puste { aspect-ratio: 1 / 1; }
.rz-puste__podpis {
	font-family: "Archivo", sans-serif; font-weight: 600;
	font-size: 0.8125rem; text-transform: uppercase; letter-spacing: 0.05em;
	color: var(--meta); background: var(--poletko); padding: 0.3rem 0.5rem;
	line-height: 1.3;
}
.rz-puste__inicjal {
	font-family: "Archivo Narrow", sans-serif; font-weight: 700;
	/* kontrakt §5.7: inicjał jest DEKOREM, nie nośnikiem treści */
	font-size: 2.75rem; color: var(--dekor);
	background: var(--poletko); padding: 0 0.4rem;
}

/* =====================================================================
   5. ZNAK RYZYKA, WIDEŁKI, METKA, LEGENDA
   ===================================================================== */

.rz-znak {
	display: inline-flex; align-items: center; gap: 0.45rem;
	font-family: "Archivo", sans-serif; font-weight: 600;
	font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.06em;
	color: var(--meta);
}
.rz-znak__pole {
	position: relative; flex: 0 0 auto;
	width: 1.5rem; height: 1.5rem;
	border: 1.5px solid var(--kreska);
	background: var(--papier);
}
.rz-znak--duzy .rz-znak__pole { width: 2.2rem; height: 2.2rem; }
/* ⚠ Glosa jest schowana WZROKOWO, ale MUSI zostać w drzewie dostępności:
   samo słowo „warunkowy" bez definicji jest dla czytnika ekranu szyfrem.
   `display: none` wycinało ją także z odczytu — stąd klasyczne ukrycie. */
.rz-znak__glosa {
	position: absolute; width: 1px; height: 1px;
	margin: -1px; padding: 0; overflow: hidden;
	clip-path: inset(50%); white-space: nowrap; border: 0;
}

/* pewny — ptaszek w polu z pełnym obrysem */
.rz-znak--pewny .rz-znak__pole { border: 2px solid var(--indygo); background: var(--wrzos); }
.rz-znak--pewny .rz-znak__pole::before {
	content: ""; position: absolute; left: 32%; top: 12%;
	width: 32%; height: 62%;
	border-right: 2.5px solid var(--indygo);
	border-bottom: 2.5px solid var(--indygo);
	transform: rotate(42deg);
}
/* warunkowy — ptaszek cieńszy, obrys przerywany, hairline'y jak nawias */
.rz-znak--warunkowy .rz-znak__pole { border-style: dashed; background: var(--poletko); }
.rz-znak--warunkowy .rz-znak__pole::before {
	content: ""; position: absolute; left: 34%; top: 16%;
	width: 28%; height: 56%;
	border-right: 1.5px solid var(--indygo);
	border-bottom: 1.5px solid var(--indygo);
	transform: rotate(42deg);
}
.rz-znak--warunkowy .rz-znak__pole::after {
	content: ""; position: absolute; left: 8%; top: 18%;
	width: 84%; height: 64%;
	border-left: 1.5px solid var(--kreska);
	border-right: 1.5px solid var(--kreska);
}
/* ryzykowny — skreślenie przez przekątną, kreskowanie tła */
.rz-znak--ryzykowny .rz-znak__pole {
	background-color: var(--papier);
	background-image: repeating-linear-gradient(45deg, var(--dekor) 0 1px, transparent 1px 5px);
}
.rz-znak--ryzykowny .rz-znak__pole::before {
	content: ""; position: absolute; left: 8%; top: 50%;
	width: 84%; height: 0;
	border-top: 2.5px solid var(--atrament);
	transform: rotate(-45deg);
}

/* Widełki */
.rz-widelki { display: inline-block; }
.rz-widelki__kwota {
	font-family: "Archivo", sans-serif; font-weight: 600;
	font-size: 0.9375rem; color: var(--atrament);
}
.rz-widelki--listwa {
	display: grid; gap: 0.15rem 0.8rem; align-items: center;
	grid-template-columns: auto minmax(8rem, 1fr);
}
.rz-widelki--listwa .rz-widelki__kwota { grid-row: 1 / 3; }
.rz-widelki__listwa {
	display: grid; grid-template-columns: repeat(5, 1fr);
	gap: 2px; margin: 0.4rem 0 0.2rem; height: 0.85rem;
}
.rz-widelki__odcinek { background: var(--papier); border: 1px solid var(--kreska); }
.rz-widelki__odcinek--zajety { background: var(--wrzos); border: 2px solid var(--indygo); }
.rz-widelki__skala {
	display: grid; grid-template-columns: repeat(5, 1fr);
	font-family: "Archivo", sans-serif; font-weight: 600;
	font-size: 0.75rem; color: var(--meta); line-height: 1.3;
}
/* etykieta progu stoi na GRANICY odcinków — stąd wyrównanie do prawej */
.rz-widelki__skala span { text-align: right; transform: translateX(50%); }

/* Metka */
.rz-metki { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.35rem; }
.rz-metki__etykieta {
	font-family: "Archivo", sans-serif; font-weight: 600;
	font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.07em;
	color: var(--meta); margin-right: 0.15rem;
}
.rz-metki--tekst { display: block; font-size: 0.9375rem; color: var(--meta); }
.rz-metki--tekst .rz-metki__etykieta { display: inline; margin-right: 0.3rem; }

.rz-metka {
	position: relative; display: inline-block; white-space: nowrap;
	/* ⚠ tło `papier`, nie `poletko`: w Karcie oznaczeniowej metka leży NA
	   poletku i przy tym samym wypełnieniu miała kontrast 1,00:1 */
	background: var(--papier); border: 1px solid var(--kreska);
	padding: 0.12rem 0.6rem 0.12rem 1.35rem;
	/* ścięty lewy narożnik — przywieszka; ⚠ clip-path tnie także obrys,
	   dlatego oczko musi siedzieć GŁĘBOKO w polu, nie przy krawędzi */
	clip-path: polygon(0.6rem 0, 100% 0, 100% 100%, 0.6rem 100%, 0 50%);
	font-family: "Archivo", sans-serif; font-weight: 600;
	font-size: 0.8125rem; color: var(--meta); line-height: 1.5;
}
.rz-metka::before {
	content: ""; position: absolute; left: 0.85rem; top: 50%;
	width: 5px; height: 5px; margin-top: -2.5px;
	border-radius: 50%; background: var(--poletko); border: 1px solid var(--kreska);
}

/* Legenda */
.rz-legenda {
	background: var(--poletko); border: 1px solid var(--kreska);
	padding: 1rem 1.1rem; margin: 0 0 2rem;
}
.rz-legenda__tytul { font-size: 1.0625rem; margin-bottom: 0.7rem; }
.rz-legenda__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.rz-legenda__wiersz { margin: 0; display: grid; gap: 0.15rem; }
@media (min-width: 42rem) {
	.rz-legenda__wiersz { grid-template-columns: 12rem 1fr; align-items: baseline; gap: 0.8rem; }
}
.rz-legenda__opis { font-size: 0.9375rem; color: var(--meta); }
.rz-legenda__stopka { margin: 0.9rem 0 0; font-size: 0.9375rem; color: var(--meta); }
.rz-legenda--zwarta { padding: 0.7rem 0.9rem; }
.rz-legenda--zwarta .rz-legenda__tytul { font-size: 0.9375rem; }
/* wersja zwarta ma być JEDNOLINIJKOWA: same znaki ze słowami, bez definicji */
.rz-legenda--zwarta .rz-legenda__lista {
	display: flex; flex-wrap: wrap; gap: 0.4rem 1.6rem;
}
.rz-legenda--zwarta .rz-legenda__wiersz { display: block; }
/* ⚠ NIE `display: none` — motyw sam ustanowił zasadę, że definicja poziomu
   ryzyka nie znika z drzewa dostępności (§12.8). Chowamy tylko wzrokowo. */
.rz-legenda--zwarta .rz-legenda__opis {
	position: absolute; width: 1px; height: 1px;
	margin: -1px; padding: 0; overflow: hidden;
	clip-path: inset(50%); white-space: nowrap; border: 0;
}

/* =====================================================================
   6. KARTA, STRONA, ZAŁĄCZNIK, ARCHIWUM
   ===================================================================== */

.rz-karta__tytul { margin-bottom: 0.2rem; }
.rz-karta__data {
	font-family: "Archivo", sans-serif; font-weight: 600;
	font-size: 0.8125rem; text-transform: uppercase; letter-spacing: 0.06em;
	color: var(--meta); margin-bottom: 1.2rem;
}

.rz-karta-oznacz {
	background: var(--poletko); border: 1px solid var(--kreska);
	padding: 1rem 1.1rem; margin: 0 0 1.6rem;
	display: grid; gap: 0.6rem;
}
.rz-karta-oznacz p { margin: 0; }
.rz-karta-oznacz__etykieta {
	display: block;
	font-family: "Archivo", sans-serif; font-weight: 600;
	font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.07em;
	color: var(--meta);
}
.rz-karta-oznacz__uwaga { font-size: 0.9375rem; }
.rz-karta-oznacz__odsylacz { font-size: 0.875rem; }

/* Rubryka i sekcje treści (zasada Rubryki §0a.1) */
.rz-tresc { margin-top: 1.4rem; }
/* ⚠ Kontraktowe „zdanie otwarcia" (§6) — motyw robi je z PIERWSZEGO akapitu
   treści, bez dopisywania czegokolwiek do post_content (zasada Rubryki). */
.rz-karta .rz-tresc > p:first-child,
.rz-strona .rz-tresc > p:first-child {
	font-weight: 600; font-size: 1.3125rem; line-height: 1.5;
}
.rz-sekcja { margin: 0 0 1.6rem; }
.rz-rubryka {
	position: relative; padding-left: 0.9rem; font-size: 1.3125rem;
	margin-top: 1.8rem;
}
.rz-rubryka::before {
	content: ""; position: absolute; left: 0; top: 0.18em; bottom: 0.18em;
	width: 3px; background: var(--indygo);
}
.rz-sekcja--przeciwwskazanie {
	background: var(--poletko);
	border-left: 3px double var(--kreska);
	padding: 0.9rem 1rem 0.1rem 1rem;
}
.rz-sekcja--przeciwwskazanie .rz-rubryka { margin-top: 0; }
.rz-sekcja--przeciwwskazanie .rz-rubryka::before { background: var(--atrament); }

/* Archiwum — proza w polu szerokim nie może się rozjeżdżać na 62rem */
.rz-szpalta--szeroka .rz-belka__opis,
.rz-szpalta--szeroka .rz-grupa__glosa,
.rz-szpalta--szeroka .rz-spis__glosa,
.rz-szpalta--szeroka .rz-lead,
.rz-szpalta--szeroka .rz-pusto { max-width: var(--szpalta); }

.rz-belka { border-bottom: 2px solid var(--kreska); padding-bottom: 0.7rem; margin-bottom: 1.2rem; }
.rz-belka__tytul { margin-bottom: 0.2rem; }
.rz-belka__licznik {
	margin: 0; font-family: "Archivo", sans-serif; font-weight: 600;
	font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.06em;
	color: var(--meta);
}
.rz-belka__opis { margin-top: 0.6rem; font-size: 1rem; color: var(--meta); }

.rz-grupa { margin: 0 0 2rem; }
.rz-grupa__tytul { font-size: 1.3125rem; margin-bottom: 0.2rem; }
.rz-grupa__licznik {
	font-family: "Archivo", sans-serif; font-weight: 600;
	font-size: 0.8125rem; text-transform: uppercase; letter-spacing: 0.06em;
	color: var(--meta);
}
.rz-grupa__glosa { font-size: 0.9375rem; color: var(--meta); margin-bottom: 0.8rem; }

.rz-spis__tytul, .rz-tablice__tytul { font-size: 1.5625rem; margin-top: 2rem; }
.rz-spis__glosa { color: var(--meta); font-size: 1rem; }
.rz-spis__zwarty { columns: 2; column-gap: 1.6rem; font-size: 1rem; }
@media (max-width: 40rem) { .rz-spis__zwarty { columns: 1; } }

.rz-tablice__lista { list-style: none; padding: 0; display: grid; gap: 0.6rem; }
.rz-tablice__lista > li { border-bottom: 1px solid var(--dekor); padding-bottom: 0.5rem; }
.rz-tablice__opis { display: block; font-size: 0.9375rem; color: var(--meta); }

/* Załącznik */
.rz-metryczka { margin-top: 1.6rem; }
.rz-metryczka__lista {
	margin: 0; background: var(--poletko);
	border: 1px solid var(--kreska); padding: 0.8rem 1rem;
	display: grid; grid-template-columns: auto 1fr; gap: 0.3rem 1rem;
	font-size: 0.9375rem;
}
.rz-metryczka__lista dt {
	font-family: "Archivo", sans-serif; font-weight: 600;
	font-size: 0.8125rem; text-transform: uppercase; letter-spacing: 0.06em;
	color: var(--meta);
}
.rz-metryczka__lista dd { margin: 0; }

.rz-tablice-karty__lista { list-style: none; padding: 0; }
.rz-tablice-karty__brak {
	font-family: "Archivo", sans-serif; font-weight: 600;
	font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.06em;
	color: var(--meta); margin-left: 0.4rem;
}
.rz-sasiednie-tablice {
	display: grid; gap: 0.6rem; margin-top: 1.4rem;
	grid-template-columns: 1fr;
}
@media (min-width: 34rem) { .rz-sasiednie-tablice { grid-template-columns: 1fr 1fr; } }
/* gdy sąsiad jest tylko JEDEN (pierwsza i ostatnia tablica karty), „następna"
   ma stać po prawej, a nie w lewej kolumnie z tekstem dosuniętym do prawej */
.rz-sasiednie-tablice__nastepna:first-child { grid-column: 2; }
.rz-sasiednie-tablice a {
	display: block; background: var(--poletko); border: 1px solid var(--kreska);
	padding: 0.6rem 0.8rem; text-decoration: none; color: var(--atrament);
	min-height: 44px;
}
.rz-sasiednie-tablice span {
	display: block;
	font-family: "Archivo", sans-serif; font-weight: 600;
	font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.06em;
	color: var(--meta);
}
.rz-sasiednie-tablice__nastepna { text-align: right; }

.rz-powrot { margin-top: 1.8rem; }
.rz-powrot--mocny a {
	display: inline-block; background: var(--indygo); color: var(--biel);
	padding: 0.7rem 1.1rem; text-decoration: none; min-height: 44px;
	font-family: "Archivo", sans-serif; font-weight: 600;
}
.rz-powrot--mocny a:hover { text-decoration: underline; }

.rz-spis-tablicy {
	background: var(--poletko); border: 1px solid var(--kreska);
	padding: 0.9rem 1rem; margin-bottom: 1.6rem;
}
.rz-spis-tablicy__tytul { font-size: 1rem; margin-bottom: 0.5rem; }
.rz-spis-tablicy ol { margin: 0; padding-left: 1.3em; font-size: 1rem; }

.rz-pusto { font-size: 1.0625rem; }
.rz-paginacja { margin-top: 1.6rem; }
.rz-paginacja__stan {
	font-family: "Archivo", sans-serif; font-weight: 600;
	font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.06em;
	color: var(--meta);
}
.rz-paginacja .page-numbers { list-style: none; display: flex; flex-wrap: wrap; gap: 0.4rem; padding: 0; }
.rz-paginacja .page-numbers a,
.rz-paginacja .page-numbers span {
	display: inline-block; min-width: 44px; min-height: 44px;
	padding: 0.6rem 0.8rem; text-align: center;
	border: 1px solid var(--kreska); background: var(--poletko); text-decoration: none;
}
.rz-paginacja .page-numbers .current { background: var(--wrzos); border-color: var(--indygo); border-width: 2px; }

/* =====================================================================
   7. FORMULARZE
   ===================================================================== */

.rz-szukaj { margin: 1.6rem 0 0; }
.rz-szukaj__etykieta {
	display: block;
	font-family: "Archivo", sans-serif; font-weight: 600;
	font-size: 0.8125rem; text-transform: uppercase; letter-spacing: 0.07em;
	color: var(--meta); margin-bottom: 0.3rem;
}
.rz-szukaj__pole { display: flex; gap: 0.4rem; flex-wrap: wrap; }
.rz-szukaj input[type="search"] {
	flex: 1 1 12rem; min-height: 44px;
	padding: 0.5rem 0.7rem;
	font: inherit; font-size: 1rem;
	color: var(--atrament); background: var(--biel);
	border: 1px solid var(--kreska);
}
.rz-szukaj button {
	min-height: 44px; padding: 0.5rem 1.1rem;
	font-family: "Archivo", sans-serif; font-weight: 600; font-size: 0.875rem;
	text-transform: uppercase; letter-spacing: 0.06em;
	color: var(--biel); background: var(--indygo);
	border: 2px solid var(--indygo); cursor: pointer;
}
.rz-szukaj button:hover { text-decoration: underline; }

/* =====================================================================
   8. STOPKA
   ===================================================================== */

.rz-stopka { background: var(--okladka); color: var(--papier-jasny); margin-top: 2.5rem; }
.rz-stopka a { color: var(--indygo-jasny); }
.rz-stopka__wnetrze {
	max-width: var(--pole); margin: 0 auto; padding: 2rem 1.1rem 1rem;
	display: grid; gap: 1.8rem; grid-template-columns: 1fr;
}
@media (min-width: 52rem) {
	.rz-stopka__wnetrze { grid-template-columns: 2fr 1fr 1fr; }
}
.rz-stopka__tytul {
	font-size: 0.875rem; color: var(--biel);
	text-transform: uppercase; letter-spacing: 0.07em;
	border-bottom: 1px solid var(--indygo-jasny); padding-bottom: 0.3rem;
}
.rz-stopka__lista { list-style: none; padding: 0; margin: 0 0 1rem; font-size: 0.9375rem; }
.rz-stopka__lista li { margin-bottom: 0.25rem; }
.rz-stopka__lista--kolumny { columns: 2; column-gap: 1.4rem; }
@media (max-width: 30rem) { .rz-stopka__lista--kolumny { columns: 1; } }
.rz-stopka__wydawca, .rz-stopka__zasada { font-size: 0.9375rem; }
.rz-stopka__zasada { color: var(--papier-jasny); }
.rz-stopka .rz-szukaj__etykieta { color: var(--papier-jasny); }
.rz-stopka__stopa {
	max-width: var(--pole); margin: 0 auto; padding: 0 1.1rem 1.6rem;
	font-family: "Archivo", sans-serif; font-weight: 600;
	font-size: 0.8125rem; letter-spacing: 0.06em; color: var(--papier-jasny);
}

/* =====================================================================
   9. DRUK
   ===================================================================== */

@media print {
	body { background: var(--biel); color: var(--atrament); font-size: 11pt; }
	.rz-okladka, .rz-panel-nawigacji, .rz-klucz-nawigacji,
	.rz-skip, .rz-szukaj, .rz-paginacja, .rz-sasiedzi,
	.rz-stopka__lista--kolumny { display: none !important; }
	.rz-szpalta { max-width: none; padding: 0; }
	.rz-rycina, .rz-karta-oznacz, .rz-legenda, .rz-metryczka__lista { border: 1pt solid var(--atrament); }
	.rz-znak__pole { border-color: var(--atrament) !important; background: var(--biel) !important; }
	.rz-znak--pewny .rz-znak__pole::before,
	.rz-znak--warunkowy .rz-znak__pole::before { border-color: var(--atrament); }
	.rz-znak--ryzykowny .rz-znak__pole::before { border-top-color: var(--atrament); }
	/* w druku glosa zastępuje legendę — wraca do normalnego przepływu */
	.rz-znak__glosa {
		position: static; width: auto; height: auto; margin: 0;
		overflow: visible; clip-path: none; white-space: normal;
	}
	.rz-widelki__odcinek--zajety { border-color: var(--atrament); background: var(--poletko); }
	a { color: var(--atrament); }
	.rz-tresc a::after { content: " (" attr(href) ")"; font-size: 9pt; color: var(--meta); }
}

/* =====================================================================
   10. TRYB WYSOKIEGO KONTRASTU
   ===================================================================== */

@media (forced-colors: active) {
	.rz-znak__pole { border: 2px solid CanvasText; background: Canvas; forced-color-adjust: none; }
	.rz-znak--pewny .rz-znak__pole::before,
	.rz-znak--warunkowy .rz-znak__pole::before { border-color: CanvasText; }
	.rz-znak--ryzykowny .rz-znak__pole { background-image: none; }
	.rz-znak--ryzykowny .rz-znak__pole::before { border-top-color: CanvasText; }
	.rz-widelki__odcinek { border: 1px solid CanvasText; }
	.rz-widelki__odcinek--zajety { border: 3px double CanvasText; }
	.rz-puste { background-image: none; border: 2px dashed CanvasText; }
	.rz-metka::before { background: Canvas; border-color: CanvasText; }
	.rz-ramie::before, .rz-rozstaj__ramiona { border-color: CanvasText; }
	.rz-sekcja--przeciwwskazanie { border-left: 4px double CanvasText; }
	:focus-visible { outline: 2px solid CanvasText; }
}
