/* Amulety i talizmany — pierwszy moduł działu PRZEKROJE.
 *
 * Ta strona nie ma jednej kultury, więc nie ma prawa mieć jednej palety.
 * Tło jest neutralne — ciemna bitumiczna glina i kość — a cały kolor wnoszą
 * same tradycje, każda swoim materiałem: fajans, wypalona glina, błękit,
 * czerwień ceramiki, żelazo, purpura, zieleń. Siedem barw obok siebie musi
 * dać się znieść, więc każda pokazuje się wąskim pasmem, nie plamą.
 *
 * Karta odpowiedzi jest zamontowanym okazem: szpilka z lewej u góry, cienka
 * kreska mocowania i lekki nalot barwy przy krawędzi. Stąd bierze się porządek
 * całej sekcji i to jedyne miejsce, w którym pozwalamy sobie na ozdobę.
 */
.tam-strona {
	--tlo: #0c0b0d; --panel: rgba( 24, 22, 24, .78 ); --obrys: rgba( 201, 168, 107, .28 ); --wlos: rgba( 201, 168, 107, .12 );
	--zloto: #d6b87e; --zloto-c: #c9a86b; --etyk: #948163;
	--kosc: #ded2bd; --dno: #0a090b;
	--tekst: #aca69e; --tekst-slaby: #877f77; --tekst-mocny: #efe8dc;
	--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( 1100px 580px at 50% -10%, rgba( 201, 168, 107, .15 ), transparent 70% ),
		radial-gradient( 820px 480px at 88% 34%, rgba( 111, 134, 196, .08 ), transparent 70% ),
		var( --tlo );
	overflow-x: clip;
}
.tam-strona *, .tam-strona *::before, .tam-strona *::after { box-sizing: border-box; }
body:has( .tam-strona ) .wp-site-blocks > header, body:has( .tam-strona ) header.wp-block-template-part, body:has( .tam-strona ) .wp-site-blocks > footer, body:has( .tam-strona ) footer.wp-block-template-part, body:has( .tam-strona ) .wp-block-post-title { display: none !important; }
body:has( .tam-strona ) .wp-site-blocks, body:has( .tam-strona ) .wp-block-group, body:has( .tam-strona ) .wp-block-post-content { padding: 0 !important; margin: 0 !important; max-width: none !important; }
body:has( .tam-strona ) .wp-block-post-content > *, body:has( .tam-strona ) .entry-content > * { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }
body:has( .tam-strona ) { background: #0c0b0d; }
body:has( .tam-strona ) .wp-block-post-content > .tam-strona, body:has( .tam-strona ) .entry-content > .tam-strona, .tam-strona { box-sizing: border-box; max-width: 1600px !important; margin-left: auto !important; margin-right: auto !important; }
.tam-strona button, .tam-strona input { font-family: inherit; }

.tam-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 ); }
.tam-sciezka i { font-style: normal; color: var( --etyk ); }
.tam-sciezka b { font-weight: 400; color: var( --zloto ); }
.tam-poziom { margin: 0 0 0 auto; }
.tam-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 ); }
.tam-poziom span::before { content: ''; width: 8px; height: 8px; border-radius: 999px; background: var( --zloto ); box-shadow: 0 0 10px var( --zloto ); }

.tam-hero { max-width: 80ch; padding: 44px 0 8px; }
.tam-nad { margin: 0 0 12px; font-size: 11px; letter-spacing: .34em; text-transform: uppercase; color: var( --etyk ); }
.tam-tytul { margin: 0; font: 500 clamp( 44px, 5.2vw, 76px )/1.03 var( --serif ); color: var( --zloto ); }
.tam-tytul small { display: block; margin-top: 8px; font: 300 16px var( --sans ); letter-spacing: .14em; color: var( --kosc ); }
.tam-lead { margin: 22px 0 0; font-size: 16.5px; line-height: 1.75; color: var( --tekst-mocny ); }

.tam-sekcja { margin: 76px 0 0; }
.tam-sekcja--scisla { position: relative; margin-top: 44px; padding: 34px 30px 38px; border: 1px solid var( --wlos ); border-radius: 26px; background: radial-gradient( 900px 420px at 50% 0%, rgba( 201, 168, 107, .11 ), transparent 65% ), linear-gradient( 180deg, rgba( 26, 24, 26, .84 ), rgba( 12, 11, 13, .94 ) ); box-shadow: inset 0 1px 0 rgba( 255, 255, 255, .05 ), 0 40px 90px -50px rgba( 0, 0, 0, .95 ); }
.tam-sekcja__nad { margin: 0 0 8px; font-size: 10.5px; letter-spacing: .3em; text-transform: uppercase; color: var( --etyk ); }
.tam-sekcja__tytul { margin: 0; font: 500 clamp( 28px, 3vw, 40px )/1.15 var( --serif ); color: var( --zloto ); }
.tam-sekcja__lead { max-width: 78ch; margin: 12px 0 0; font-size: 14.5px; line-height: 1.7; color: var( --tekst ); }

/* ══════════════  przełącznik osi  ══════════════
   Dwa sposoby czytania tego samego materiału. Przełącznik jest podpisem strony,
   więc wygląda jak przełącznik, a nie jak dwa kolejne przyciski w rzędzie. */

.tam-os { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 26px 0 0; }
.tam-os__opcja {
	padding: 11px 20px; border: 1px solid var( --wlos ); border-radius: 999px;
	background: transparent; color: var( --tekst-slaby );
	font-size: 12px; letter-spacing: .16em; text-transform: uppercase; cursor: pointer;
	transition: border-color .2s, color .2s, background .2s, box-shadow .2s;
}
.tam-os__opcja:hover { border-color: var( --obrys ); color: var( --tekst-mocny ); }
.tam-os__opcja.jest-wybrany { border-color: var( --zloto ); background: rgba( 214, 184, 126, .13 ); color: var( --zloto ); box-shadow: 0 0 30px -14px var( --zloto ); }
.tam-os__opcja:focus-visible { outline: 2px solid var( --zloto ); outline-offset: 3px; }
.tam-os__nota { flex: 1 1 280px; margin: 0; font-size: 13px; line-height: 1.5; color: var( --tekst-slaby ); }

/* ══════════════  tor wyboru  ══════════════ */

.tam-tor { position: relative; contain: inline-size; margin: 18px 0 0; }
.tam-tor__pas { display: flex; gap: 10px; overflow-x: auto; scrollbar-width: none; padding: 4px 2px 14px; scroll-snap-type: x proximity; }
.tam-tor__pas::-webkit-scrollbar { display: none; }
.tam-tor__pas.jest-ciagniety { cursor: grabbing; scroll-snap-type: none; }
.tam-tor__strz {
	position: absolute; top: calc( 50% - 24px ); z-index: 3; width: 38px; height: 38px;
	border: 1px solid var( --obrys ); border-radius: 999px;
	background: rgba( 12, 11, 13, .9 ); color: var( --zloto ); cursor: pointer;
	transition: transform .18s, box-shadow .18s;
}
.tam-tor__strz:hover { transform: translateY( -2px ); box-shadow: 0 16px 34px -20px var( --zloto ); }
.tam-tor__strz--lewo { left: -14px; }
.tam-tor__strz--prawo { right: -14px; }
.tam-tor__strz::before { content: '‹'; font-size: 22px; line-height: 1; }
.tam-tor__strz--prawo::before { content: '›'; }
.tam-tor__licznik { margin: 0; font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; color: var( --etyk ); }

.tam-kafel {
	flex: 0 0 auto; scroll-snap-align: start;
	display: grid; gap: 3px; justify-items: start; align-content: center;
	min-width: 168px; padding: 13px 18px;
	border: 1px solid var( --wlos ); border-radius: 14px;
	background: linear-gradient( 180deg, rgba( 32, 29, 32, .7 ), rgba( 14, 13, 15, .7 ) );
	color: var( --tekst-slaby ); text-align: left; cursor: pointer;
	transition: border-color .2s, color .2s, transform .2s, box-shadow .2s;
}
.tam-kafel b { font: 400 14.5px var( --sans ); letter-spacing: .02em; color: var( --tekst-mocny ); white-space: nowrap; }
.tam-kafel small { font-size: 10.5px; line-height: 1.35; color: var( --tekst-slaby ); max-width: 30ch; white-space: normal; }
.tam-kafel__nr { font-style: normal; font-size: 10px; letter-spacing: .16em; color: var( --etyk ); }
.tam-kafel__kropka { width: 9px; height: 9px; border-radius: 999px; background: var( --k, var( --zloto ) ); box-shadow: 0 0 12px -1px var( --k, var( --zloto ) ); }
.tam-kafel:hover { border-color: var( --obrys ); transform: translateY( -2px ); }
.tam-kafel.jest-wybrany { border-color: color-mix( in srgb, var( --k, var( --zloto ) ) 70%, transparent ); background: linear-gradient( 180deg, color-mix( in srgb, var( --k, var( --zloto ) ) 16%, transparent ), rgba( 14, 13, 15, .8 ) ); box-shadow: inset 0 1px 0 color-mix( in srgb, var( --k, var( --zloto ) ) 34%, transparent ); }
.tam-kafel:focus-visible { outline: 2px solid var( --zloto ); outline-offset: 3px; }

/* ══════════════  krosno: karta osi i odpowiedzi  ══════════════ */

.tam-krosno { margin: 22px 0 0; }
.tam-glowa {
	display: grid; gap: 14px; padding: 26px 28px 28px;
	border-left: 2px solid color-mix( in srgb, var( --k ) 70%, transparent );
	border-radius: 0 18px 18px 0;
	background: linear-gradient( 100deg, color-mix( in srgb, var( --k ) 10%, transparent ), rgba( 14, 13, 15, .5 ) 58% );
}
.tam-glowa__nag { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 16px; }
.tam-glowa__nag h3 { margin: 0; font: 500 clamp( 24px, 2.5vw, 32px )/1.15 var( --serif ); color: var( --tekst-mocny ); }
.tam-glowa__czas { margin: 0; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: color-mix( in srgb, var( --k ) 62%, #fff ); }
.tam-glowa__krotko { margin: 0; max-width: 84ch; font-size: 16px; line-height: 1.7; color: var( --tekst-mocny ); }
.tam-glowa__tresc { display: grid; gap: 12px; max-width: 88ch; }
.tam-glowa__tresc p { margin: 0; font-size: 14.5px; line-height: 1.75; }

.tam-uwaga { max-width: 88ch; padding: 15px 18px; border: 1px dashed var( --wlos ); border-radius: 12px; background: rgba( 201, 168, 107, .04 ); }
.tam-uwaga b { display: block; margin-bottom: 5px; font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; font-weight: 400; color: var( --etyk ); }
.tam-uwaga p { margin: 0; font-size: 14px; line-height: 1.7; color: var( --tekst ); }

.tam-odp__nad { margin: 34px 0 12px; font-size: 10.5px; letter-spacing: .3em; text-transform: uppercase; color: var( --etyk ); }
/* Siatka, nie tor: cała ta sekcja jest po to, żeby odpowiedzi dało się
   porównać jednym spojrzeniem. Tor pokazywałby cztery z siedmiu.

   Liczba kolumn jest podana wprost, nie z `auto-fit`. Przy pięciu pytaniach
   automat dawał cztery w rzędzie i piąte samotne pod spodem, a osierocona
   karta czyta się jak usterka. Pięć pytań idzie w pięć kolumn, siedem
   tradycji w cztery i trzy. */
.tam-odp__siatka { display: grid; grid-template-columns: repeat( 4, minmax( 0, 1fr ) ); gap: 14px; }
.tam-odp__siatka[ data-ile="5" ] { grid-template-columns: repeat( 5, minmax( 0, 1fr ) ); }
.tam-odp__siatka[ data-ile="5" ] .tam-odp { padding: 24px 18px 24px 26px; }
.tam-odp__siatka[ data-ile="5" ] .tam-odp p { font-size: 14.5px; }
@media ( max-width: 1240px ) {
	.tam-odp__siatka, .tam-odp__siatka[ data-ile="5" ] { grid-template-columns: repeat( 3, minmax( 0, 1fr ) ); }
}
@media ( max-width: 900px ) {
	.tam-odp__siatka, .tam-odp__siatka[ data-ile="5" ] { grid-template-columns: repeat( 2, minmax( 0, 1fr ) ); }
}
@media ( max-width: 600px ) {
	.tam-odp__siatka, .tam-odp__siatka[ data-ile="5" ] { grid-template-columns: minmax( 0, 1fr ); }
}
.tam-odp {
	position: relative; display: grid; align-content: start; gap: 10px;
	min-width: 0; padding: 26px 24px 26px 30px;
	border-radius: 16px;
	background: linear-gradient( 165deg, color-mix( in srgb, var( --k ) 10%, transparent ), rgba( 13, 12, 14, .82 ) 62% );
	box-shadow: inset 0 1px 0 color-mix( in srgb, var( --k ) 24%, transparent ), 0 22px 48px -34px rgba( 0, 0, 0, .95 );
	animation: tam-wejdz .32s both; animation-delay: calc( var( --op, 0 ) * 42ms );
}
/* Szpilka montażowa: kropka i kreska przy lewej krawędzi. To jedyna ozdoba
   na tej stronie i jedyne miejsce, w którym barwa tradycji jest nasycona. */
.tam-odp::before {
	content: ''; position: absolute; left: 14px; top: 26px; bottom: 26px; width: 2px;
	border-radius: 2px;
	background: linear-gradient( 180deg, var( --k ), color-mix( in srgb, var( --k ) 12%, transparent ) );
}
.tam-odp::after {
	content: ''; position: absolute; left: 11px; top: 22px; width: 8px; height: 8px; border-radius: 999px;
	background: var( --k ); box-shadow: 0 0 14px -1px var( --k );
}
.tam-odp__nagl { display: flex; align-items: baseline; gap: 9px; }
.tam-odp__nagl i { font-style: normal; font-size: 10px; letter-spacing: .12em; color: color-mix( in srgb, var( --k ) 60%, #fff ); }
.tam-odp__nagl small { font-size: 11.5px; letter-spacing: .2em; text-transform: uppercase; color: color-mix( in srgb, var( --k ) 74%, #fff ); }
.tam-odp p { margin: 0; font-size: 15.5px; line-height: 1.68; color: var( --tekst-mocny ); }
@keyframes tam-wejdz { from { opacity: 0; transform: translateY( 6px ); } to { opacity: 1; transform: none; } }

/* ══════════════  cztery nazwy  ══════════════ */

.tam-nazwy__siatka { display: grid; grid-template-columns: repeat( auto-fit, minmax( 300px, 1fr ) ); gap: 16px; margin: 26px 0 0; }
.tam-nazwa { display: grid; align-content: start; gap: 11px; padding: 28px 26px 30px; border: 1px solid var( --wlos ); border-radius: 18px; background: linear-gradient( 180deg, rgba( 28, 26, 28, .72 ), rgba( 12, 11, 13, .78 ) ); }
.tam-nazwa i { font-style: normal; font-size: 26px; line-height: 1; color: var( --zloto-c ); text-shadow: 0 0 22px rgba( 214, 184, 126, .5 ); }
.tam-nazwa h3 { margin: 0; font: 500 26px var( --serif ); color: var( --tekst-mocny ); }
.tam-nazwa__krotko { margin: 0; font-size: 15px; line-height: 1.65; color: var( --kosc ); }
.tam-nazwa p { margin: 0; font-size: 14px; line-height: 1.72; }
.tam-granica { padding: 13px 16px; border-left: 2px solid var( --obrys ); border-radius: 0 10px 10px 0; background: rgba( 201, 168, 107, .05 ); }
.tam-granica b { display: block; margin-bottom: 4px; font-size: 10px; letter-spacing: .2em; text-transform: uppercase; font-weight: 400; color: var( --etyk ); }

/* ══════════════  trzy ramy  ══════════════ */

.tam-ramy__siatka { display: grid; grid-template-columns: repeat( auto-fit, minmax( 300px, 1fr ) ); gap: 16px; margin: 26px 0 0; }
.tam-ramy__siatka > div { display: grid; align-content: start; gap: 10px; padding: 26px 24px 28px; border: 1px solid var( --wlos ); border-radius: 18px; background: linear-gradient( 180deg, rgba( 26, 24, 26, .7 ), rgba( 12, 11, 13, .78 ) ); }
.tam-ramy__siatka i { font-style: normal; font-size: 22px; line-height: 1; color: var( --zloto-c ); }
.tam-ramy__siatka b { font: 400 17px var( --serif ); letter-spacing: .02em; color: var( --tekst-mocny ); }
.tam-ramy__siatka p { margin: 0; font-size: 14px; line-height: 1.72; }
.tam-ramy__siatka .jest-uczciwie { border-color: var( --obrys ); background: linear-gradient( 180deg, rgba( 201, 168, 107, .09 ), rgba( 12, 11, 13, .8 ) ); }

@media ( max-width: 1020px ) {
	.tam-strona { padding: 0 22px 70px; }
	.tam-tor__strz--lewo { left: -6px; }
	.tam-tor__strz--prawo { right: -6px; }
}
@media ( max-width: 680px ) {
	.tam-sekcja--scisla { padding: 26px 18px 28px; }
	.tam-glowa { padding: 22px 20px 24px; }
	.tam-odp { padding: 22px 20px 22px 28px; }
}
@media ( prefers-reduced-motion: reduce ) {
	.tam-odp { animation: none; }
	.tam-kafel:hover, .tam-tor__strz:hover { transform: none; }
}

/* ══════════════  klocek: skrót na wierzchu, całość w oknie  ══════════════
   Cztery nazwy miały po tysiącu czterystu znaków na kaflu. Teraz na wierzchu
   stoi znak, nazwa i jedno zdanie, a wywód razem z granicą stosowalności
   schodzi do okna. */
.tam-nazwa .zd-klocek__skrot { display: contents; }
.tam-nazwa { min-height: 250px; transition: border-color .25s, transform .25s, box-shadow .25s; }
.tam-nazwa:hover, .tam-nazwa:focus-visible {
	transform: translateY( -3px ); border-color: rgba( 205, 164, 116, .5 );
	box-shadow: 0 18px 44px -26px rgba( 0, 0, 0, .9 ), 0 0 32px -18px var( --zloto );
}


/* TŁA SEKCJI — reguły trzymają się atrybutu data-tlo, który PHP dokłada dopiero,
   gdy plik leży na serwerze. Bez grafiki blok wygląda dokładnie jak dziś.
   Obraz wchodzi WARSTWĄ background, nie przez ::before — tych pseudoelementów
   używa wspólny zdobienia.css. Zmienna to --obraz-tla, a NIE --tlo, które
   w większości arkuszy jest już barwą tła strony. */

.tam-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, .34 ) 64%, rgba( 12, 10, 14, 0 ) 100% ),
		var( --obraz-tla ) 50% 46% / cover no-repeat;
}
.tam-hero[data-tlo] > * { max-width: 80ch; }

.tam-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;
}

/* Czytelność nad zdjęciem: kafle są przezroczyste z założenia, więc nad fotografią
   tekst spada do 1,23:1. Próg 4,5:1 wypada przy kryciu 0,845; stąd 0,90. */
.tam-sekcja[data-tlo] .zd-pas > li,
.tam-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 );
}

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

/* 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]. */
.tam-sekcja[data-tlo] {
	--tekst-slaby: #98918a;	/* #877f77 dawało 3.97:1, teraz 5.03:1 */
	--etyk: #a19076;	/* #948163 dawało 4.15:1, teraz 5.04:1 */
}

/* OKNO TEZY — przejscie tonalne.
   Wspolna warstwa daje oknu tezy plaska pobialke rgba(255,255,255,.028)
   regulami o swoistosci 0,2,0 i 0,3,0 — jedna wartosc dla wszystkich dzialow
   naraz. Dublowana klasa daje 0,4,0 i zamyka sprawe bez !important.
   Barwy sa z palety TEGO dzialu. Dopisane po stronie SERWERA, bo lokalna
   kopia modulu bywa starsza niz wgrana. */
.tam-strona .tam-hero .tam-okno.zd-okno,
.tam-strona .tam-hero .zd-okno.zd-okno,
.tam-strona .tam-hero .tam-okno.tam-okno {
	background:
		radial-gradient( 720px 240px at 42% 0%, rgba( 24, 22, 24, .10 ), transparent 70% ),
		linear-gradient( 168deg, #171618, #0c0b0d );
}
