/* Znaki i urzędy — Anatolia, Etruria, Grecja, Rzym, Celtowie, Bałtowie.
 *
 * Paleta świadomie NIE jest białym marmurem ze złotem. Marmur jest biały
 * wyłącznie dlatego, że zeszła z niego farba, a wyobrażenie „czystej bieli
 * antyku” to pomyłka nowożytna — akurat ta strona prostuje podobne pomyłki,
 * więc nie może na jednej z nich stać.
 *
 * Zamiast tego materiały, które w tych kulturach naprawdę pracowały: brąz
 * odlewu, patyna, terakota z malowideł grobowych i czerń lampy oliwnej.
 *
 * Cała śmiałość siedzi w ŁAŃCUCHU o czterech ogniwach: znak, urząd, procedura,
 * skutek. Szkielet nie zmienia się przy przełączeniu kultury i to jest właśnie
 * teza — wspólnota INSTYTUCJI, nie podobieństwo imion. Gdyby każda kultura
 * dostała inny rysunek, strona zaprzeczyłaby samej sobie.
 */
.tan-strona {
	--noc: #100d0a; --dno: #0a0807;
	--wlos: rgba( 201, 160, 92, .16 ); --obrys: rgba( 201, 160, 92, .34 );
	--braz: #c9a05c; --braz-j: #e2c084; --braz-c: #7d6033;
	--patyna: #5f9188; --patyna-j: #7fb3a8;
	--terakota: #b4553a; --terakota-j: #cd7154;
	--tekst: #a2988a; --tekst-slaby: #7d7468; --tekst-mocny: #f0e6d4; --etyk: #857b6d;
	--serif: 'Cormorant Garamond', Georgia, serif; --sans: Jost, system-ui, sans-serif;
	position: relative; max-width: 1520px; margin: 0 auto; padding: 0 40px 90px; color: var( --tekst ); font: 300 15px var( --sans );
	background:
		radial-gradient( 1150px 600px at 50% -12%, rgba( 201, 160, 92, .15 ), transparent 70% ),
		radial-gradient( 840px 500px at 12% 42%, rgba( 180, 85, 58, .08 ), transparent 72% ),
		radial-gradient( 780px 480px at 88% 72%, rgba( 95, 145, 136, .08 ), transparent 72% ),
		linear-gradient( 180deg, #161210, var( --noc ) 45%, var( --dno ) );
	overflow-x: clip;
}
.tan-strona *, .tan-strona *::before, .tan-strona *::after { box-sizing: border-box; }
body:has( .tan-strona ) .wp-site-blocks > header, body:has( .tan-strona ) header.wp-block-template-part, body:has( .tan-strona ) .wp-site-blocks > footer, body:has( .tan-strona ) footer.wp-block-template-part, body:has( .tan-strona ) .wp-block-post-title { display: none !important; }
body:has( .tan-strona ) .wp-site-blocks, body:has( .tan-strona ) .wp-block-group, body:has( .tan-strona ) .wp-block-post-content { padding: 0 !important; margin: 0 !important; max-width: none !important; }
body:has( .tan-strona ) .wp-block-post-content > *, body:has( .tan-strona ) .entry-content > * { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }
body:has( .tan-strona ) { background: #100d0a; }
body:has( .tan-strona ) .wp-block-post-content > .tan-strona, body:has( .tan-strona ) .entry-content > .tan-strona, .tan-strona { box-sizing: border-box; max-width: 1600px !important; margin-left: auto !important; margin-right: auto !important; }
.tan-strona button { font-family: inherit; }

.tan-sciezka { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 18px 0 6px; font-size: 10.5px; letter-spacing: .26em; text-transform: uppercase; color: var( --tekst-slaby ); }
.tan-sciezka i { font-style: normal; color: var( --etyk ); }
.tan-sciezka b { font-weight: 400; color: var( --braz-j ); }
.tan-poziom { margin: 0 0 0 auto; }
.tan-poziom span { display: inline-flex; align-items: center; gap: 7px; padding: 5px 11px; border: 1px solid var( --wlos ); border-radius: 999px; font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var( --tekst ); }
.tan-poziom span::before { content: ''; width: 8px; height: 8px; border-radius: 999px; background: var( --braz ); box-shadow: 0 0 10px var( --braz ); }

.tan-hero { max-width: 84ch; padding: 44px 0 8px; }
.tan-nad { margin: 0 0 12px; font-size: 11px; letter-spacing: .34em; text-transform: uppercase; color: var( --etyk ); }
.tan-tytul { margin: 0; font: 500 clamp( 44px, 5.4vw, 80px )/1.02 var( --serif ); color: var( --braz-j ); letter-spacing: -.01em; }
.tan-tytul small { display: block; margin-top: 10px; font: 300 15px var( --sans ); letter-spacing: .18em; line-height: 1.5; color: var( --patyna-j ); }
.tan-lead { margin: 24px 0 0; font-size: 16.5px; line-height: 1.78; color: var( --tekst-mocny ); }
.tan-hero__liczby { display: flex; flex-wrap: wrap; gap: 12px 34px; margin: 28px 0 0; }
.tan-hero__liczby span { display: inline-flex; align-items: baseline; gap: 10px; font-size: 12.5px; letter-spacing: .1em; color: var( --tekst-slaby ); }
.tan-hero__liczby b { font: 500 34px var( --serif ); color: var( --braz-j ); text-shadow: 0 0 26px rgba( 201, 160, 92, .45 ); }

.tan-sekcja { margin: 84px 0 0; }
.tan-sekcja--scisla { position: relative; padding: 36px 32px 40px; border: 1px solid var( --wlos ); border-radius: 26px; background: radial-gradient( 960px 460px at 50% 0%, rgba( 201, 160, 92, .1 ), transparent 66% ), linear-gradient( 180deg, rgba( 30, 24, 19, .88 ), rgba( 11, 9, 7, .96 ) ); box-shadow: inset 0 1px 0 rgba( 255, 255, 255, .05 ), 0 44px 96px -54px rgba( 0, 0, 0, .96 ); }
.tan-sekcja__nad { margin: 0 0 8px; font-size: 10.5px; letter-spacing: .3em; text-transform: uppercase; color: var( --etyk ); }
.tan-sekcja__tytul { margin: 0; font: 500 clamp( 28px, 3.1vw, 42px )/1.14 var( --serif ); color: var( --braz-j ); }
.tan-sekcja__lead { max-width: 80ch; margin: 14px 0 0; font-size: 15px; line-height: 1.76; color: var( --tekst ); }
.tan-sekcja--nie .tan-sekcja__tytul { color: var( --terakota-j ); }
.tan-uwaga { max-width: 82ch; margin: 18px 0 0; padding: 15px 18px; border-left: 2px solid var( --terakota ); border-radius: 0 12px 12px 0; background: rgba( 180, 85, 58, .1 ); font-size: 14px; line-height: 1.72; color: var( --tekst ); }

/* ══════════════  ŁAŃCUCH — podpis strony  ══════════════ */
.tan-lanc__wybor { display: flex; flex-wrap: wrap; gap: 8px; margin: 26px 0 16px; }
.tan-lanc__wybor button { padding: 9px 16px; border: 1px solid var( --wlos ); border-radius: 999px; background: transparent; font-size: 13px; color: var( --tekst-slaby ); cursor: pointer; transition: color .22s, background .22s, border-color .22s; }
.tan-lanc__wybor button:hover { color: var( --tekst-mocny ); border-color: var( --obrys ); }
.tan-lanc__wybor button[ aria-selected="true" ] { color: var( --noc ); border-color: var( --braz ); background: linear-gradient( 180deg, var( --braz-j ), var( --braz ) ); box-shadow: 0 0 24px -6px rgba( 201, 160, 92, .6 ); }
.tan-lanc__gdzie { margin: 0 0 22px; font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: var( --patyna-j ); }

/* Cztery ogniwa w rzędzie, spięte strzałką. Ten szkielet NIE zmienia się przy
   przełączeniu kultury — na tym polega teza strony. */
.tan-lanc { display: grid; grid-template-columns: repeat( 4, minmax( 0, 1fr ) ); gap: 0 26px; margin: 0; padding: 0; list-style: none; counter-reset: ogniwo; }
.tan-lanc li { position: relative; counter-increment: ogniwo; padding: 22px 22px 20px; border: 1px solid var( --wlos ); border-top: 3px solid var( --braz ); border-radius: 4px 4px 16px 16px; background: linear-gradient( 180deg, rgba( 201, 160, 92, .09 ), rgba( 201, 160, 92, .015 ) ); animation: tan-ogniwo .38s both; animation-delay: calc( var( --nr, 0 ) * 90ms ); }
/* Strzałka między ogniwami — łańcuch ma być widocznie łańcuchem, nie siatką. */
.tan-lanc li:not( :last-child )::after { content: '→'; position: absolute; top: 50%; right: -20px; transform: translateY( -50% ); font-size: 16px; color: var( --braz ); opacity: .7; }
.tan-lanc li b { display: block; margin-bottom: 3px; font: 500 19px var( --serif ); color: var( --braz-j ); }
.tan-lanc li em { display: block; margin-bottom: 12px; font-style: normal; font-size: 10px; letter-spacing: .22em; text-transform: uppercase; color: var( --etyk ); }
.tan-lanc li span { font-size: 13.5px; line-height: 1.66; color: var( --tekst ); }
@keyframes tan-ogniwo { from { opacity: 0; transform: translateY( 10px ); } to { opacity: 1; transform: none; } }
.tan-lanc__cecha { max-width: 84ch; margin: 24px 0 0; padding: 16px 20px; border-left: 2px solid var( --patyna ); border-radius: 0 12px 12px 0; background: rgba( 95, 145, 136, .09 ); font-size: 14px; line-height: 1.74; color: var( --tekst-mocny ); }

/* ══════════════  wątroba  ══════════════ */
.tan-watroba { display: grid; grid-template-columns: minmax( 0, 460px ) minmax( 0, 1fr ); gap: 32px 44px; align-items: start; margin-top: 26px; }
.tan-watroba__rys { display: block; width: 100%; height: auto; filter: drop-shadow( 0 24px 50px rgba( 0, 0, 0, .7 ) ); }
.tan-watroba__podpis { margin: 12px 0 0; font-size: 12px; line-height: 1.6; text-align: center; color: var( --tekst-slaby ); }
.tan-watroba__tresc > p { max-width: 78ch; margin: 0 0 14px; font-size: 14.5px; line-height: 1.76; color: var( --tekst ); }
.tan-most { margin: 18px 0 0 !important; padding: 16px 18px; border-left: 2px solid var( --patyna ); border-radius: 0 12px 12px 0; background: rgba( 95, 145, 136, .09 ); font-size: 13.5px !important; }
.tan-most b { display: block; margin-bottom: 6px; font: 400 10px var( --sans ); letter-spacing: .24em; text-transform: uppercase; color: var( --patyna-j ); }

/* ══════════════  kafle  ══════════════ */
.tan-zrodla, .tan-praktyki, .tan-granice, .tan-ramy__siatka { display: grid; grid-template-columns: repeat( auto-fit, minmax( 258px, 1fr ) ); gap: 16px; margin-top: 28px; }
.tan-kafel, .tan-granice > div, .tan-ramy__siatka > div { position: relative; min-width: 0; padding: 22px 22px 20px; border: 1px solid var( --wlos ); border-radius: 18px; background: linear-gradient( 180deg, rgba( 240, 230, 212, .045 ), rgba( 240, 230, 212, .01 ) ); transition: border-color .3s, transform .3s, box-shadow .3s, background .3s; }
.tan-kafel:hover, .tan-granice > div:hover, .tan-ramy__siatka > div:hover { border-color: var( --obrys ); transform: translateY( -3px ); background: linear-gradient( 180deg, rgba( 201, 160, 92, .09 ), rgba( 240, 230, 212, .02 ) ); box-shadow: 0 30px 66px -40px rgba( 0, 0, 0, .92 ), 0 0 34px -18px rgba( 201, 160, 92, .38 ); }
.tan-kafel h3 { margin: 0 0 8px; font: 500 21px var( --serif ); color: var( --tekst-mocny ); }
.tan-kafel p { margin: 0; font-size: 13.5px; line-height: 1.68; color: var( --tekst ); }
.tan-kafel--mist h3 { color: var( --patyna-j ); }
.tan-granice b, .tan-ramy__siatka b { display: block; margin-bottom: 8px; font: 500 18px var( --serif ); color: var( --tekst-mocny ); }
.tan-granice p, .tan-ramy__siatka p { margin: 0; font-size: 13.5px; line-height: 1.68; color: var( --tekst ); }
.tan-granice i, .tan-ramy__siatka i { display: block; margin-bottom: 10px; font-style: normal; font-size: 16px; }
.tan-granice i { color: var( --terakota-j ); }
.tan-ramy__siatka i { color: var( --braz-j ); }
/* Sekcja „czego nie znali” dostaje terakotę, bo jest ostrzeżeniem, nie hasłem. */
.tan-granice > div { border-color: rgba( 180, 85, 58, .26 ); background: linear-gradient( 180deg, rgba( 180, 85, 58, .085 ), rgba( 180, 85, 58, .015 ) ); }
.tan-granice > div b { color: var( --terakota-j ); }

@media ( max-width: 1100px ) {
	.tan-lanc { grid-template-columns: repeat( 2, minmax( 0, 1fr ) ); gap: 26px; }
	.tan-lanc li:not( :last-child )::after { display: none; }
}
@media ( max-width: 900px ) {
	.tan-watroba { grid-template-columns: minmax( 0, 1fr ); }
	.tan-watroba__obraz { max-width: 420px; margin: 0 auto; }
}
@media ( max-width: 780px ) {
	.tan-strona { padding: 0 18px 70px; }
	.tan-lanc { grid-template-columns: minmax( 0, 1fr ); }
	.tan-sekcja { margin-top: 58px; }
	.tan-sekcja--scisla { padding: 26px 20px 30px; }
	.tan-poziom { margin: 6px 0 0; }
}
@media ( prefers-reduced-motion: reduce ) {
	.tan-strona *, .tan-strona *::before { transition: none !important; animation: none !important; }
}


/* ---------------------------------------------------------------------------
   TŁA SEKCJI

   Reguły trzymają się atrybutu data-tlo, który PHP dokłada dopiero wtedy,
   gdy plik naprawdę leży na serwerze. Dopóki grafiki nie ma, sekcja nie
   dostaje ani ramki, ani wypełnienia i wygląda dokładnie jak dziś — brak ma
   być cichy, a nie zostawiać pustej ramy.

   Obraz wchodzi WARSTWĄ właściwości background, nie przez ::before. Tych
   dwóch pseudoelementów używa wspólny zdobienia.css (lotos nad sekcją i kreska
   rozdzielająca) i nadpisanie ich zabrałoby sekcjom zdobienia reszty serwisu.

   Zmienna nazywa się --obraz-tla, a NIE --tlo: w większości arkuszy serwisu
   --tlo jest już barwą tła strony i nadpisanie jej w sekcji psułoby kolory.
   --------------------------------------------------------------------------- */

.tan-hero[data-tlo] {
	position: relative; max-width: none;
	padding: 64px 36px 52px; border-radius: 26px;
	border: 1px solid rgba( 255, 255, 255, .10 );
	box-shadow: inset 0 1px 0 rgba( 255, 255, 255, .05 ), 0 40px 90px -50px rgba( 0, 0, 0, .95 );
	background:
		linear-gradient( 90deg, rgba( 12, 10, 14, .90 ) 0%, rgba( 12, 10, 14, .70 ) 34%, rgba( 12, 10, 14, .20 ) 66%, transparent 100% ),
		var( --obraz-tla ) 50% 46% / cover no-repeat;
}
.tan-hero[data-tlo] > * { max-width: 80ch; }

.tan-sekcja[data-tlo] {
	position: relative;
	padding: 40px 36px 44px; border-radius: 26px;
	border: 1px solid rgba( 255, 255, 255, .10 );
	box-shadow: inset 0 1px 0 rgba( 255, 255, 255, .05 ), 0 40px 90px -50px rgba( 0, 0, 0, .95 );
	background:
		radial-gradient( 880px 500px at 12% 16%, rgba( 15, 13, 18, .62 ), transparent 74% ),
		linear-gradient( 180deg, rgba( 15, 13, 18, .10 ) 0%, rgba( 15, 13, 18, .22 ) 48%, rgba( 15, 13, 18, .48 ) 100% ),
		var( --obraz-tla ) 62% 52% / cover no-repeat;
}

@media ( max-width: 680px ) {
	.tan-hero[data-tlo], .tan-sekcja[data-tlo] { padding: 28px 20px 32px; border-radius: 18px; }
}

/* ---------------------------------------------------------------------------
   CZYTELNOSC NA TLE

   Kafle i klocki są z założenia przezroczyste — mają tło o kryciu 0,07,
   bo projektowano je na płaską barwę. Nad fotografią to przestaje działać:
   zmierzone na żywej stronie, tekst kafla nad jaśniejszym miejscem zdjęcia ma
   kontrast 1,23:1, czyli jest NIECZYTELNY. Zasłona na całej sekcji tego nie
   naprawia — z rachunku wychodzi, że musiałaby mieć krycie 0,80 i zabiłaby obraz.

   Dlatego czytelność niesie sam kafel, i tylko tam, gdzie pod spodem jest zdjęcie.
   Próg liczony w NAJGORSZYM przypadku, czyli nad czystą bielą, bo tła rozjaśniane
   gammą bywają jaśniejsze niż najjaśniejszy punkt oryginalnego zdjęcia. Próg 4,5:1
   wypada przy kryciu 0,845 — stąd 0,90, a nie 0,86, które miało zapas na granicy błędu.
   Przy 0,90 nad bielą: tekst 5,35:1, tytuł 12,80:1. Między kaflami obraz zostaje widoczny.
   --------------------------------------------------------------------------- */

.tan-sekcja[data-tlo] .zd-pas > li,
.tan-sekcja[data-tlo] .zd-klocek {
	background-color: rgba( 12, 10, 14, .90 );
	backdrop-filter: blur( 2px );
	border-color: rgba( 255, 255, 255, .16 );
	box-shadow: 0 18px 40px -26px rgba( 0, 0, 0, .9 );
}

/* TEKST POBOCZNY NAD TŁEM — podpisy i nadtytuły są ciemniejsze od tekstu głównego
   i przy kryciu kafla 0,90 wypadały PONIŻEJ progu 4,5:1. Podnoszenie krycia nic tu
   nie daje — dla najciemniejszych barw trzeba by 0,99, czyli kafel nieprzezroczysty.
   Dlatego rozjaśniam SAMĄ BARWĘ, w tej samej rodzinie, i tylko pod [data-tlo]. */
.tan-sekcja[data-tlo] {
	--tekst-slaby: #989188;	/* #7d7468 dawało 3.4:1, teraz 5.02:1 */
	--etyk: #9a9186;	/* #857b6d dawało 3.76:1, teraz 5.04:1 */
}
