/* Bliski Wschód — brama filaru.

   Barwy: ciemny kamień i piaskowe złoto, celowo neutralne. Osiem modułów wnosi
   tu własne barwy w belkach osi i w kaflach, więc tło musi być na tyle ciche,
   żeby ich nie zagłuszyć — to jedyna strona filaru, na której osiem palet
   spotyka się na jednym ekranie.

   Podpisem strony jest oś czasu: belki na wspólnej skali. */
.tbw-strona {
	--tlo: #0d0c0b; --obrys: rgba( 205, 175, 120, .3 ); --wlos: rgba( 205, 175, 120, .13 );
	--zloto: #cdaf78; --etyk: #907f62;
	--tekst: #a9a49c; --tekst-slaby: #857f77; --tekst-mocny: #ebe5da;
	--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( 1300px 640px at 50% -10%, rgba( 205, 175, 120, .14 ), transparent 70% ), var( --tlo ); overflow-x: clip;
}
.tbw-strona *, .tbw-strona *::before, .tbw-strona *::after { box-sizing: border-box; }
body:has( .tbw-strona ) .wp-site-blocks > header, body:has( .tbw-strona ) header.wp-block-template-part, body:has( .tbw-strona ) .wp-site-blocks > footer, body:has( .tbw-strona ) footer.wp-block-template-part, body:has( .tbw-strona ) .wp-block-post-title { display: none !important; }
body:has( .tbw-strona ) .wp-site-blocks, body:has( .tbw-strona ) .wp-block-group, body:has( .tbw-strona ) .wp-block-post-content { padding: 0 !important; margin: 0 !important; max-width: none !important; }
body:has( .tbw-strona ) .wp-block-post-content > *, body:has( .tbw-strona ) .entry-content > * { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }
body:has( .tbw-strona ) { background: #0d0c0b; }
body:has( .tbw-strona ) .wp-block-post-content > .tbw-strona, body:has( .tbw-strona ) .entry-content > .tbw-strona, .tbw-strona { box-sizing: border-box; max-width: 1600px !important; margin-left: auto !important; margin-right: auto !important; }

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

.tbw-hero { max-width: 82ch; padding: 48px 0 10px; }
.tbw-nad { margin: 0 0 12px; font-size: 11px; letter-spacing: .34em; text-transform: uppercase; color: var( --etyk ); }
.tbw-tytul { margin: 0; font: 500 clamp( 46px, 5.6vw, 84px )/1.02 var( --serif ); color: var( --zloto ); }
.tbw-tytul small { display: block; margin-top: 6px; font: 300 clamp( 18px, 2vw, 26px ) var( --serif ); letter-spacing: .04em; color: var( --tekst-slaby ); }
.tbw-lead { margin: 24px 0 0; font-size: 17px; line-height: 1.75; color: var( --tekst-mocny ); }

.tbw-sekcja { margin: 76px 0 0; }
.tbw-sekcja--scisla { position: relative; margin-top: 46px; padding: 34px 30px 34px; border: 1px solid var( --wlos ); border-radius: 26px; background: linear-gradient( 180deg, rgba( 26, 23, 19, .84 ), rgba( 12, 11, 10, .94 ) ); box-shadow: inset 0 1px 0 rgba( 255, 255, 255, .05 ), 0 40px 90px -50px rgba( 0, 0, 0, .95 ); }
.tbw-sekcja__nad { margin: 0 0 8px; font-size: 10.5px; letter-spacing: .3em; text-transform: uppercase; color: var( --etyk ); }
.tbw-sekcja__tytul { margin: 0; font: 500 clamp( 28px, 3vw, 40px )/1.15 var( --serif ); color: var( --zloto ); }
.tbw-sekcja__lead { max-width: 80ch; margin: 12px 0 0; font-size: 14.5px; line-height: 1.7; color: var( --tekst ); }

/* ══════════════  oś czasu  ══════════════ */

.tbw-os { margin: 28px 0 0; }
.tbw-os__skala { position: relative; height: 26px; margin: 0 0 6px; border-bottom: 1px solid var( --wlos ); }
.tbw-os__kreska { position: absolute; left: var( --x ); bottom: 0; width: 1px; height: 9px; background: var( --wlos ); }
.tbw-os__kreska.jest-zero { height: 16px; background: var( --obrys ); }
.tbw-os__kreska i { position: absolute; bottom: 12px; left: 50%; transform: translateX( -50% ); font-style: normal; font-size: 9.5px; letter-spacing: .1em; color: var( --tekst-slaby ); white-space: nowrap; }
.tbw-os__kreska.jest-zero i { color: var( --zloto ); }

.tbw-os__pasy { display: grid; gap: 8px; }
.tbw-pas { position: relative; display: grid; grid-template-columns: minmax( 0, 1fr ); align-items: center; min-height: 46px; text-decoration: none; color: inherit; }
/* Belka leży dokładnie tam, gdzie leży materiał modułu. */
.tbw-pas__belka { position: relative; display: flex; align-items: center; justify-content: flex-start; height: 38px; margin-left: var( --x ); width: var( --w ); min-width: 38px; padding: 0 12px; border: 1px solid color-mix( in srgb, var( --k ) 50%, transparent ); border-radius: 8px; background: linear-gradient( 180deg, color-mix( in srgb, var( --k ) 30%, transparent ), color-mix( in srgb, var( --k ) 12%, transparent ) ); transition: transform .2s, box-shadow .2s, background .2s; }
.tbw-pas__belka i { font-style: normal; font-size: 17px; line-height: 1; color: color-mix( in srgb, var( --k ) 60%, #fff ); }
.tbw-pas__opis { position: absolute; top: 50%; left: calc( var( --x ) + var( --w ) + 14px ); transform: translateY( -50% ); display: grid; gap: 1px; white-space: nowrap; pointer-events: none; }
/* Moduły z prawej krawędzi osi nie mają gdzie postawić podpisu — idzie w lewo. */
.tbw-pas[ data-slug="fal-hafez" ] .tbw-pas__opis,
.tbw-pas[ data-slug="geomancja" ] .tbw-pas__opis { left: auto; right: calc( 100% - var( --x ) + 14px ); text-align: right; }
.tbw-pas__opis b { font: 500 17px/1.15 var( --serif ); color: var( --tekst-mocny ); }
.tbw-pas__opis small { font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var( --tekst-slaby ); }
.tbw-pas:hover .tbw-pas__belka, .tbw-pas:focus-visible .tbw-pas__belka { transform: translateY( -2px ); background: linear-gradient( 180deg, color-mix( in srgb, var( --k ) 52%, transparent ), color-mix( in srgb, var( --k ) 22%, transparent ) ); box-shadow: 0 16px 36px -20px color-mix( in srgb, var( --k ) 90%, transparent ); }
.tbw-pas:hover .tbw-pas__opis b, .tbw-pas:focus-visible .tbw-pas__opis b { color: color-mix( in srgb, var( --k ) 60%, #fff ); }
.tbw-pas:focus-visible { outline: 2px solid var( --zloto ); outline-offset: 4px; border-radius: 8px; }
.tbw-os__legenda { margin: 14px 0 0; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var( --tekst-slaby ); }

.tbw-podglad { min-height: 74px; margin: 14px 0 0; padding: 16px 20px; border: 1px solid var( --wlos ); border-radius: 14px; background: rgba( 18, 16, 14, .6 ); }
.tbw-podglad__pusty { margin: 0; font-size: 13px; color: var( --tekst-slaby ); }
.tbw-podglad__nad { margin: 0 0 3px; font-size: 9.5px; letter-spacing: .28em; text-transform: uppercase; color: color-mix( in srgb, var( --k ) 74%, #fff ); }
.tbw-podglad__co { margin: 0 0 6px; font: 400 18px/1.35 var( --serif ); color: var( --tekst-mocny ); }
.tbw-podglad__podpis { margin: 0; font-size: 13px; line-height: 1.6; color: var( --tekst ); }
.tbw-podglad__podpis b { font-weight: 400; color: var( --etyk ); }

/* ══════════════  kafle działów  ══════════════ */

.tbw-kafle { display: grid; grid-template-columns: repeat( auto-fill, minmax( 268px, 1fr ) ); gap: 16px; margin: 26px 0 0; }
.tbw-kafel { display: grid; align-content: start; gap: 6px; padding: 24px 22px 20px; border: 1px solid var( --wlos ); border-top: 3px solid color-mix( in srgb, var( --k ) 62%, transparent ); border-radius: 4px 4px 18px 18px; background: linear-gradient( 180deg, color-mix( in srgb, var( --k ) 9%, transparent ), rgba( 12, 11, 10, .8 ) ); text-decoration: none; color: inherit; transition: transform .22s, border-color .22s, box-shadow .22s; }
.tbw-kafel:hover { transform: translateY( -4px ); box-shadow: 0 28px 56px -34px rgba( 0, 0, 0, .95 ), 0 0 44px -20px color-mix( in srgb, var( --k ) 70%, transparent ); }
.tbw-kafel:focus-visible { outline: 2px solid var( --zloto ); outline-offset: 3px; }
.tbw-kafel__glif { font-size: 26px; line-height: 1.2; color: color-mix( in srgb, var( --k ) 62%, #fff ); }
.tbw-kafel b { font: 500 23px/1.2 var( --serif ); color: var( --tekst-mocny ); }
.tbw-kafel__lata { font-size: 9.5px; letter-spacing: .2em; text-transform: uppercase; color: var( --tekst-slaby ); }
.tbw-kafel p { margin: 6px 0 0; font-size: 13.5px; line-height: 1.6; color: var( --tekst ); }
.tbw-kafel__podpis { margin-top: 10px; padding-top: 10px; border-top: 1px solid var( --wlos ); font-size: 12.5px; line-height: 1.55; font-style: italic; color: color-mix( in srgb, var( --k ) 56%, #fff ); }

/* ══════════════  zasady filaru  ══════════════ */

.tbw-zasady { display: grid; grid-template-columns: repeat( auto-fit, minmax( 300px, 1fr ) ); gap: 16px; margin: 26px 0 0; }
.tbw-zasada { padding: 26px 24px 22px; border: 1px solid var( --wlos ); border-radius: 18px; background: linear-gradient( 180deg, rgba( 26, 23, 19, .5 ), rgba( 12, 11, 10, .78 ) ); }
.tbw-zasada i { display: block; margin-bottom: 12px; font-style: normal; font-size: 26px; color: var( --zloto ); }
.tbw-zasada b { display: block; margin-bottom: 8px; font: 500 21px/1.25 var( --serif ); color: var( --zloto ); }
.tbw-zasada p { margin: 0; font-size: 13.5px; line-height: 1.72; color: var( --tekst ); }

/* ══════════════  węższe okna  ══════════════ */

@media ( max-width: 1100px ) {
	/* Na wąskim ekranie podpis przy belce nie ma dokąd pójść — schodzi pod nią. */
	.tbw-pas { grid-template-rows: auto auto; gap: 4px; min-height: 0; padding-bottom: 8px; }
	.tbw-pas__opis { position: static; transform: none; text-align: left !important; left: auto !important; right: auto !important; white-space: normal; }
	.tbw-pas__opis b { font-size: 15px; }
	.tbw-os__pasy { gap: 14px; }
}
@media ( max-width: 700px ) {
	.tbw-strona { padding: 0 18px 70px; }
	.tbw-os__kreska:not( .jest-zero ) i { display: none; }
}
@media ( prefers-reduced-motion: reduce ) {
	.tbw-strona * { transition-duration: .01ms !important; }
}


/* 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. */

.tbw-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;
}
.tbw-hero[data-tlo] > * { max-width: 80ch; }

.tbw-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. */
.tbw-sekcja[data-tlo] .zd-pas > li,
.tbw-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 ) {
	.tbw-sekcja[data-tlo], .tbw-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]. */
.tbw-sekcja[data-tlo] {
	--tekst-slaby: #97928b;	/* #857f77 dawało 3.94:1, teraz 5.06:1 */
	--etyk: #a09178;	/* #907f62 dawało 4.02:1, teraz 5.07: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. */
.tbw-strona .tbw-hero .tbw-okno.zd-okno,
.tbw-strona .tbw-hero .zd-okno.zd-okno,
.tbw-strona .tbw-hero .tbw-okno.tbw-okno {
	background:
		radial-gradient( 720px 240px at 42% 0%, rgba( 205, 175, 120, .10 ), transparent 70% ),
		linear-gradient( 168deg, #181716, #0d0c0b );
}
