/* Chiny — droga, kocioł i miejsce. Układ według makiety: hero z krajobrazem
   i emblematem, potem rzędy-panele [głowa 300 | środek | lista 340].
   Tokeny serwisu; akcenty: jadeit i cynober. Miara: 1520 px treści. */
.tch-strona {
	--tlo: #060716; --panel: rgba( 9, 11, 30, .78 ); --obrys: rgba( 230, 196, 138, .3 ); --wlos: rgba( 230, 196, 138, .13 );
	--zloto: #fde291; --zloto-cieply: #f9d57a; --zloto-ciemne: #e6c48a; --zloto-etyk: #cda474; --jade: #7cc5a4; --cynober: #c4482f;
	--tekst: #b3b1c2; --tekst-slaby: #9393a7; --tekst-mocny: #e6e2ea;
	--serif: 'Cormorant Garamond', Georgia, serif; --sans: Jost, system-ui, sans-serif; --han: 'Noto Serif SC', 'Noto Serif JP', Georgia, serif;
	position: relative; max-width: 1520px; margin: 0 auto; padding: 0 40px 0; color: var( --tekst ); font: 300 15px var( --sans );
	background: radial-gradient( 1200px 620px at 50% -10%, rgba( 90, 60, 160, .2 ), transparent 70% ), var( --tlo ); overflow-x: clip;
}
.tch-strona *, .tch-strona *::before, .tch-strona *::after { box-sizing: border-box; }
body:has( .tch-strona ) .wp-site-blocks > header, body:has( .tch-strona ) header.wp-block-template-part, body:has( .tch-strona ) .wp-site-blocks > footer, body:has( .tch-strona ) footer.wp-block-template-part, body:has( .tch-strona ) .wp-block-post-title { display: none !important; }
body:has( .tch-strona ) .wp-site-blocks, body:has( .tch-strona ) .wp-block-group, body:has( .tch-strona ) .wp-block-post-content { padding: 0 !important; margin: 0 !important; max-width: none !important; }
body:has( .tch-strona ) .wp-block-post-content > *, body:has( .tch-strona ) .entry-content > * { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }
body:has( .tch-strona ) { background: #060716; }
body:has( .tch-strona ) .wp-block-post-content > .tch-strona, body:has( .tch-strona ) .entry-content > .tch-strona, .tch-strona { box-sizing: border-box; max-width: 1600px !important; margin-left: auto !important; margin-right: auto !important; }
.tch-strona button { font-family: inherit; }
.tch-strona a { color: inherit; text-decoration: none; }

.tch-sciezka { position: relative; z-index: 2; 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 ); }
.tch-sciezka i { font-style: normal; color: var( --zloto-ciemne ); } .tch-sciezka b { font-weight: 400; color: var( --zloto ); }
.tch-poziom { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 0 auto; }
.tch-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 ); }
.tch-poziom span::before { content: ''; width: 8px; height: 8px; border-radius: 999px; background: var( --k ); box-shadow: 0 0 10px var( --k ); }
.tch-poziom .jest-hist { --k: #7cc59a; } .tch-poziom .jest-lud { --k: #e0b93c; } .tch-poziom .jest-pop { --k: #d4763f; }

/* ─────────────────────────────────  hero  ───────────────────────────────── */
.tch-hero { position: relative; display: grid; grid-template-columns: 60px minmax( 0, 1fr ) minmax( 380px, 520px ) 60px; gap: 24px; align-items: center; min-height: 560px; margin: 6px -40px 0; padding: 40px 40px 48px; overflow: hidden; }
.tch-hero__tlo { position: absolute !important; inset: 0; z-index: 0; }
.tch-hero__tlo img { width: 100%; height: 100%; object-fit: cover; opacity: .55; filter: saturate( .85 ); }
.tch-hero__tlo::after { content: ''; position: absolute; inset: 0; background: linear-gradient( 90deg, rgba( 6, 7, 22, .96 ) 0%, rgba( 6, 7, 22, .78 ) 42%, rgba( 6, 7, 22, .20 ) 70%, transparent 100% ), linear-gradient( 180deg, rgba( 6, 7, 22, .7 ), transparent 30%, transparent 70%, var( --tlo ) ); }
.tch-hero > *:not( .tch-hero__tlo ) { position: relative; z-index: 1; }
.tch-hero__pion { margin: 0; writing-mode: vertical-rl; font: 400 22px/1 var( --han ); letter-spacing: .5em; color: var( --zloto-ciemne ); opacity: .8; text-shadow: 0 0 18px rgba( 249, 213, 122, .35 ); }
.tch-hero__pion--lewy { justify-self: start; font-size: 16px; color: var( --tekst-slaby ); }
.tch-hero__pion--prawy { justify-self: end; }
.tch-hero__tekst { max-width: 62ch; }
.tch-nad { margin: 0 0 12px; font-size: 11px; letter-spacing: .34em; text-transform: uppercase; color: var( --zloto-etyk ); }
.tch-tytul { margin: 0; font: 500 clamp( 46px, 5.2vw, 78px )/1.02 var( --serif ); color: var( --zloto-cieply ); text-shadow: 0 0 40px rgba( 249, 213, 122, .2 ); }
.tch-tytul__pod { margin: 12px 0 0; font: 300 16px var( --sans ); letter-spacing: .2em; color: var( --cynober ); }
.tch-lead { margin: 20px 0 0; font-size: 15.5px; line-height: 1.72; color: var( --tekst-mocny ); }
.tch-hero__przyciski { display: flex; flex-wrap: wrap; gap: 14px; margin: 26px 0 0; }
.tch-btn { display: inline-flex; align-items: center; gap: 10px; padding: 12px 24px; border: 1px solid var( --obrys ); border-radius: 999px; font-size: 13px; letter-spacing: .08em; color: var( --zloto-cieply ); transition: border-color .2s, background .2s, transform .2s; }
.tch-btn:hover { border-color: var( --zloto ); transform: translateY( -1px ); }
.tch-btn--pelny { background: linear-gradient( 90deg, #f2d27e, #cda474 ); border-color: transparent; color: #1a1408; font-weight: 500; box-shadow: 0 10px 30px rgba( 249, 213, 122, .18 ); }
.tch-btn--pelny:hover { background: linear-gradient( 90deg, #fde291, #d9b07e ); }
.tch-hero__emblemat { margin: 0; justify-self: center; width: min( 100%, 520px ); aspect-ratio: 1; display: grid; place-items: center; filter: drop-shadow( 0 0 40px rgba( 249, 213, 122, .18 ) ); }
.tch-hero__emblemat img { width: 100%; height: 100%; object-fit: contain; }
.tch-hero__glif { font: 400 220px/1 var( --han ); color: var( --zloto-cieply ); text-shadow: 0 0 60px rgba( 249, 213, 122, .5 ); }
.tch-hero > .tch-hero__motto { position: absolute; right: 40px; bottom: 18px; margin: 0; font-size: 10px; letter-spacing: .3em; text-transform: uppercase; color: var( --tekst-slaby ); }

/* ────────────────────────────  rzędy-panele  ──────────────────────────── */
.tch-rzad { position: relative; display: grid; grid-template-columns: 300px minmax( 0, 1fr ) 340px; gap: 30px; align-items: center; margin: 22px 0 0; padding: 30px 34px; border: 1px solid var( --wlos ); border-radius: 22px; background: var( --panel ); backdrop-filter: blur( 10px ); box-shadow: inset 0 1px 0 rgba( 255, 255, 255, .05 ), 0 30px 70px -40px rgba( 0, 0, 0, .9 ); scroll-margin-top: 90px; }
.tch-rzad--tor, .tch-rzad--karty, .tch-rzad--linki { grid-template-columns: 300px minmax( 0, 1fr ); }
.tch-rzad__glowa { display: grid; gap: 10px; align-content: start; }
.tch-ikona { display: grid; place-items: center; width: 62px; height: 62px; border: 1px solid var( --obrys ); border-radius: 50%; background: radial-gradient( circle, rgba( 249, 213, 122, .08 ), transparent 70% ); box-shadow: 0 0 24px rgba( 249, 213, 122, .12 ); }
.tch-ikona i { font: 400 28px var( --han ); font-style: normal; color: var( --zloto-cieply ); }
.tch-ikona--obraz { border: 0; background: none; box-shadow: none; }
.tch-ikona img { width: 62px; height: 62px; object-fit: contain; }
.tch-rzad__tytul { margin: 4px 0 0; font: 500 clamp( 24px, 2.1vw, 30px )/1.12 var( --serif ); color: var( --zloto-cieply ); }
.tch-rzad__lead { margin: 0; font-size: 13.5px; line-height: 1.65; color: var( --tekst ); }
.tch-rzad__link { display: inline-flex; gap: 8px; margin-top: 4px; padding-bottom: 3px; border-bottom: 1px solid var( --wlos ); font-size: 12.5px; letter-spacing: .06em; color: var( --zloto-cieply ); width: max-content; transition: border-color .2s; }
.tch-rzad__link:hover { border-color: var( --zloto ); }
.tch-rzad__srodek { min-width: 0; display: grid; place-items: center; }
.tch-rzad__szeroki { min-width: 0; }
.tch-rzad__lista { display: grid; gap: 10px; min-width: 0; }
.tch-rzad__opis { grid-column: 1 / -1; margin: 6px 0 0; padding-top: 18px; border-top: 1px solid var( --wlos ); max-width: none; font-size: 13.5px; line-height: 1.7; color: var( --tekst-slaby ); }

/* wiersze listy (etapy, zwierzęta, grupy) — jeden język: glif w ramce, tytuł, podpis, chevron */
.tch-wiersz, .tch-etap, .tch-zwierz { position: relative; display: grid; grid-template-columns: 44px minmax( 0, 1fr ) 14px; gap: 14px; align-items: center; width: 100%; padding: 12px 16px; border: 1px solid var( --wlos ); border-radius: 14px; background: rgba( 6, 7, 22, .55 ); text-align: left; cursor: pointer; transition: border-color .2s, transform .2s, background .2s; }
.tch-wiersz:hover, .tch-etap:hover, .tch-zwierz:hover, .tch-etap.jest-wskazany, .tch-zwierz.jest-wskazany { border-color: color-mix( in srgb, var( --k ) 60%, transparent ); background: color-mix( in srgb, var( --k ) 8%, rgba( 6, 7, 22, .6 ) ); transform: translateX( 3px ); }
.tch-wiersz:focus-visible, .tch-etap:focus-visible, .tch-zwierz:focus-visible { outline: 2px solid var( --zloto ); outline-offset: 3px; }
.tch-wiersz::after, .tch-etap::after, .tch-zwierz::after { content: '›'; font: 300 22px/1 var( --serif ); color: var( --zloto-etyk ); }
.tch-wiersz__glif, .tch-etap__nr, .tch-zwierz__kier { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid color-mix( in srgb, var( --k ) 45%, transparent ); border-radius: 10px; font: 400 20px var( --han ); font-style: normal; color: var( --k ); text-shadow: 0 0 10px color-mix( in srgb, var( --k ) 50%, transparent ); }
.tch-etap__nr, .tch-zwierz__kier { font: 400 9px var( --sans ); letter-spacing: .1em; text-transform: uppercase; text-align: center; line-height: 1.2; }
.tch-wiersz__tekst, .tch-etap__tekst { display: grid; gap: 2px; min-width: 0; }
.tch-wiersz b, .tch-etap__tekst b, .tch-zwierz b { font: 500 16px/1.15 var( --serif ); color: var( --zloto-cieply ); }
.tch-wiersz small, .tch-etap__tekst small, .tch-zwierz small { font-size: 11.5px; line-height: 1.4; color: var( --tekst-slaby ); }
.tch-zwierz { grid-template-areas: 'k b c' 'k s c'; }
.tch-zwierz .tch-zwierz__kier { grid-area: k; } .tch-zwierz b { grid-area: b; } .tch-zwierz small { grid-area: s; }
.tch-zwierz::after { grid-area: c; }
.tch-oryg { margin-left: 8px; font: 400 13px var( --han ); font-style: normal; color: var( --k ); }

/* tablica „Dwa taoizmy" — nasz akapit w ramie, zamiast cytatu z makiety */
.tch-tablica { position: relative; width: 100%; padding: 28px 30px 26px 30px; border: 1px solid var( --wlos ); border-radius: 18px; background: linear-gradient( 135deg, rgba( 124, 197, 164, .07 ), rgba( 6, 7, 22, .5 ) ); }
.tch-tablica__glify { position: absolute; right: 18px; top: 12px; display: flex; gap: 8px; }
.tch-tablica__glify i { font: 400 34px var( --han ); font-style: normal; color: rgba( 249, 213, 122, .35 ); }
.tch-tablica__glify i:last-child { color: rgba( 196, 72, 47, .5 ); }
.tch-tablica__tekst { margin: 0; max-width: 60ch; font: 400 15.5px/1.72 var( --serif ); color: var( --tekst-mocny ); }

/* pierścienie kotła: wypełnione tarcze, etykieta w górnym pasie każdej */
.tch-kociol__rys { width: min( 100%, 420px ); }
.tch-kociol__svg { display: block; width: 100%; height: auto; overflow: visible; filter: drop-shadow( 0 0 30px rgba( 124, 197, 164, .14 ) ); }
.tch-pier__poswiata { fill: rgba( 205, 164, 116, .05 ); }
.tch-pier { cursor: pointer; }
.tch-pier__tarcza { fill: color-mix( in srgb, var( --k ) 22%, #0a0d24 ); stroke: color-mix( in srgb, var( --k ) 60%, transparent ); stroke-width: 1.2; transition: fill .22s; }
.tch-pier:hover .tch-pier__tarcza, .tch-pier.jest-wskazany .tch-pier__tarcza { fill: color-mix( in srgb, var( --k ) 40%, #0a0d24 ); }
.tch-pier__glif { font: 400 19px var( --han ); fill: var( --zloto-cieply ); text-anchor: middle; pointer-events: none; }
.tch-pier__nazwa { font: 300 8.5px var( --sans ); letter-spacing: .12em; text-transform: uppercase; fill: var( --tekst ); text-anchor: middle; pointer-events: none; }
.tch-pier:focus-visible { outline: 2px solid var( --zloto ); outline-offset: 2px; }

/* plan terenu: grafika z makiety (SVG zostaje jako zapas, gdy grafiki nie ma) */
.tch-teren__rys { width: 100%; }
.tch-teren__obraz { display: block; width: 100%; height: auto; border: 1px solid var( --wlos ); border-radius: 16px; box-shadow: 0 20px 50px rgba( 0, 0, 0, .5 ); }
.tch-teren__svg { display: block; width: 100%; height: auto; border: 1px solid var( --wlos ); border-radius: 20px; }
.tch-teren__pole { fill: rgba( 8, 9, 26, .6 ); }
.tch-zw { cursor: pointer; }
.tch-zw__ksztalt { fill: color-mix( in srgb, var( --k ) 18%, transparent ); stroke: color-mix( in srgb, var( --k ) 44%, transparent ); stroke-width: 1.2; }
.tch-zw__podpis { font: 400 15px var( --serif ); fill: var( --tekst-mocny ); text-anchor: middle; pointer-events: none; }
.tch-teren__woda { fill: none; stroke: rgba( 124, 168, 224, .5 ); stroke-width: 2.5; stroke-dasharray: 1 7; stroke-linecap: round; }
.tch-teren__dom rect { fill: rgba( 253, 226, 145, .1 ); stroke: var( --zloto-etyk ); stroke-width: 1.2; }
.tch-teren__dom text { font: 400 26px var( --han ); fill: var( --zloto-cieply ); text-anchor: middle; }

/* trzy warstwy: trzy karty w rzędzie, ikona z makiety, numer warstwy */
.tch-profil { display: grid; grid-template-columns: repeat( 3, minmax( 0, 1fr ) ); gap: 16px; counter-reset: warstwa; }
.tch-warstwa { position: relative; display: grid; grid-template-columns: 64px minmax( 0, 1fr ); gap: 4px 16px; align-content: start; padding: 20px 20px 18px; border: 1px solid var( --wlos ); border-radius: 16px; background: rgba( 6, 7, 22, .55 ); text-align: left; cursor: pointer; transition: border-color .22s, background .22s, transform .22s; counter-increment: warstwa; }
.tch-warstwa:hover, .tch-warstwa.jest-wybrany { border-color: color-mix( in srgb, var( --k ) 55%, transparent ); background: color-mix( in srgb, var( --k ) 9%, rgba( 6, 7, 22, .6 ) ); transform: translateY( -3px ); }
.tch-warstwa:focus-visible { outline: 2px solid var( --zloto ); outline-offset: 3px; }
.tch-warstwa__ikona { grid-row: 1 / 3; width: 64px; height: 64px; object-fit: contain; filter: drop-shadow( 0 0 12px rgba( 249, 213, 122, .35 ) ); }
.tch-warstwa__glif { display: none; }
.tch-warstwa__tekst { display: grid; gap: 2px; min-width: 0; }
.tch-warstwa__tekst b { font: 500 19px/1.15 var( --serif ); color: var( --zloto-cieply ); }
.tch-warstwa__tekst small { font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: var( --k ); }
.tch-warstwa__tekst p { margin: 6px 0 0; font-size: 12.5px; line-height: 1.55; color: var( --tekst ); }
.tch-warstwa__ile { grid-column: 1 / -1; margin-top: 12px; padding-top: 10px; border-top: 1px solid var( --wlos ); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var( --tekst-slaby ); }
.tch-warstwa__ile::before { content: counter( warstwa ) '. warstwa · '; color: var( --zloto-etyk ); }

/* ──────────────────────────────  filtry  ────────────────────────────── */
.tch-filtry { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.tch-chip { --k: var( --zloto-etyk ); display: inline-flex; align-items: center; gap: 9px; padding: 7px 15px; border: 1px solid var( --wlos ); border-radius: 999px; background: rgba( 6, 7, 22, .5 ); color: var( --tekst ); font-size: 12px; letter-spacing: .08em; cursor: pointer; transition: border-color .2s, color .2s, background .2s; }
.tch-chip i { font: 400 14px var( --han ); font-style: normal; color: var( --k ); }
.tch-chip:hover { border-color: var( --obrys ); color: var( --tekst-mocny ); }
.tch-chip.jest-wybrany { border-color: var( --zloto-cieply ); background: rgba( 249, 213, 122, .12 ); color: var( --zloto-cieply ); }
.tch-chip:focus-visible { outline: 2px solid var( --zloto ); outline-offset: 3px; }

/* ────────────────────────────────  tory  ──────────────────────────────── */
.tch-tor { position: relative; margin: 0 0 8px; min-width: 0; contain: inline-size; }
.tch-tor__pas { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; padding: 4px 2px 10px; margin: -4px -2px -10px; cursor: grab; scroll-behavior: smooth; }
.tch-tor__pas::-webkit-scrollbar { display: none; }
.tch-tor__pas.jest-ciagniety { cursor: grabbing; scroll-snap-type: none; scroll-behavior: auto; }
.tch-tor__strz { position: absolute; top: 50%; z-index: 2; display: grid; place-items: center; width: 40px; height: 40px; margin-top: -26px; border: 1px solid var( --obrys ); border-radius: 50%; background: rgba( 6, 7, 22, .9 ); color: var( --zloto-etyk ); cursor: pointer; }
.tch-tor__strz::before { content: ''; width: 10px; height: 10px; margin-left: 4px; border-left: 1.5px solid currentColor; border-top: 1.5px solid currentColor; transform: rotate( -45deg ); }
.tch-tor__strz--lewo { left: -18px; } .tch-tor__strz--prawo { right: -18px; transform: scaleX( -1 ); }
.tch-tor__strz:hover { color: var( --zloto ); border-color: var( --zloto ); }
.tch-tor__strz[hidden] { display: none; }
.tch-tor__licznik { position: absolute; right: 4px; bottom: -16px; margin: 0; font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var( --tekst-slaby ); }

/* kafel pojęcia jak w makiecie: duży znak, nazwa, krótkie tłumaczenie */
.tch-kafel { flex: 0 0 calc( ( 100% - 6 * 12px ) / 7 ); min-width: 0; scroll-snap-align: start; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 22px 12px 16px; border: 1px solid var( --wlos ); border-radius: 16px; background: rgba( 6, 7, 22, .55 ); text-align: center; cursor: pointer; transition: border-color .22s, transform .22s, box-shadow .22s, background .22s; }
.tch-kafel.ma-barwe { border-bottom: 2px solid color-mix( in srgb, var( --k ) 55%, transparent ); }
.tch-kafel:hover { border-color: var( --obrys ); background: color-mix( in srgb, var( --k, #cda474 ) 8%, rgba( 6, 7, 22, .6 ) ); transform: translateY( -3px ); box-shadow: 0 18px 40px rgba( 0, 0, 0, .45 ); }
.tch-kafel:focus-visible { outline: 2px solid var( --zloto ); outline-offset: 3px; }
.tch-kafel__oryg { margin: 0; font: 400 34px/1.1 var( --han ); color: var( --zloto-cieply ); text-shadow: 0 0 16px rgba( 249, 213, 122, .3 ); }
.tch-kafel__nazwa { margin: 4px 0 0; font: 500 17px/1.1 var( --serif ); color: var( --tekst-mocny ); }
.tch-kafel__grupa { margin: 0; font-size: 9px; letter-spacing: .18em; text-transform: uppercase; color: var( --k, var( --zloto-etyk ) ); }
.tch-kafel__krotko { margin: 6px 0 0; font-size: 11.5px; line-height: 1.45; color: var( --tekst-slaby ); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.tch-kafel__stopa { display: none; }

/* ramy „Zanim pójdziesz dalej" */
.tch-ramy__siatka { display: grid; grid-template-columns: repeat( 4, minmax( 0, 1fr ) ); gap: 14px; }
.tch-ramy__siatka > div { display: grid; grid-template-columns: 44px minmax( 0, 1fr ); gap: 4px 14px; align-content: start; padding: 18px 18px 16px; border: 1px solid var( --wlos ); border-radius: 16px; background: rgba( 6, 7, 22, .55 ); }
.tch-ramy__siatka i { grid-row: 1 / 3; display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var( --obrys ); border-radius: 50%; font: 400 20px var( --han ); font-style: normal; color: var( --zloto-cieply ); }
.tch-ramy__siatka b { font: 500 16px/1.15 var( --serif ); color: var( --zloto-cieply ); }
.tch-ramy__siatka p { margin: 0; font-size: 12.5px; line-height: 1.6; color: var( --tekst ); }
.tch-ramy__siatka .jest-uczciwie { border-color: rgba( 124, 197, 164, .3 ); background: rgba( 124, 197, 164, .05 ); }
.tch-ramy__siatka .jest-uczciwie i { color: var( --jade ); border-color: rgba( 124, 197, 164, .4 ); }

/* powiązane: pasek wspólny jako slider w rzędzie */
.tch-rzad--linki .tlk-pasek { margin: 0; }
.tch-rzad--linki .tlk-pasek__tytul { display: none; }
.tch-rzad--linki .tlk-pasek__siatka { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; padding: 4px 2px 10px; margin: -4px -2px -10px; cursor: grab; scroll-behavior: smooth; }
.tch-rzad--linki .tlk-pasek__siatka::-webkit-scrollbar { display: none; }
.tch-rzad--linki .tlk-pasek__siatka.jest-ciagniety { cursor: grabbing; scroll-snap-type: none; scroll-behavior: auto; }
.tch-rzad--linki .tlk-kafel { flex: 0 0 calc( ( 100% - 3 * 12px ) / 4 ); min-width: 0; scroll-snap-align: start; }
@media ( max-width: 1240px ) { .tch-rzad--linki .tlk-kafel { flex-basis: calc( ( 100% - 2 * 12px ) / 3 ); } }
@media ( max-width: 680px ) { .tch-rzad--linki .tlk-kafel { flex-basis: calc( ( 100% - 12px ) / 2 ); } }

/* stopka-krajobraz */
.tch-stopka { position: relative; margin: 40px -40px 0; height: 260px; overflow: hidden; }
.tch-stopka img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; opacity: .55; }
.tch-stopka::before { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient( 180deg, var( --tlo ), transparent 45%, rgba( 6, 7, 22, .6 ) ); }
.tch-stopka__glify { position: absolute; left: 50%; bottom: 34px; z-index: 2; transform: translateX( -50% ); margin: 0; font: 400 22px var( --han ); letter-spacing: .3em; color: var( --zloto-cieply ); text-shadow: 0 0 20px rgba( 249, 213, 122, .45 ); }

/* ────────────────────────────────  okno  ──────────────────────────────── */
.tch-tlo { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center; padding: 28px; background: rgba( 4, 3, 12, .72 ); backdrop-filter: blur( 14px ); opacity: 0; transition: opacity .22s; }
.tch-tlo.jest-widoczne { opacity: 1; }
.tch-okno { --k: #cda474; --zloto: #fde291; --zloto-cieply: #f9d57a; --zloto-etyk: #cda474; --tekst: #b3b1c2; --tekst-slaby: #9393a7; --tekst-mocny: #e6e2ea; --wlos: rgba( 230, 196, 138, .14 ); --obrys: rgba( 230, 196, 138, .3 ); --serif: 'Cormorant Garamond', Georgia, serif; --sans: Jost, system-ui, sans-serif; --han: 'Noto Serif SC', 'Noto Serif JP', Georgia, serif;
	position: relative; width: min( 900px, 100% ); max-height: min( 88vh, 940px ); overflow: auto; padding: 40px 44px 44px; border: 1px solid var( --obrys ); border-top: 3px solid var( --k ); border-radius: 4px 4px 24px 24px; background: linear-gradient( 180deg, rgba( 16, 12, 40, .97 ), rgba( 7, 5, 22, .98 ) ); box-shadow: 0 40px 90px rgba( 0, 0, 0, .6 ); color: var( --tekst ); font: 300 18px var( --sans ); transform: translateY( 14px ); transition: transform .22s; }
.tch-tlo.jest-widoczne .tch-okno { transform: none; }
.tch-okno *, .tch-okno *::before, .tch-okno *::after { box-sizing: border-box; }
.tch-okno__x { position: absolute; right: 18px; top: 18px; width: 38px; height: 38px; border: 1px solid var( --wlos ); border-radius: 50%; background: rgba( 7, 5, 22, .6 ); color: var( --zloto-etyk ); font-size: 17px; cursor: pointer; z-index: 1; }
.tch-okno__nad { margin: 0 0 6px; font-size: 10.5px; letter-spacing: .28em; text-transform: uppercase; color: var( --k ); }
.tch-okno__tytul { margin: 0; padding-right: 46px; font: 500 38px/1.06 var( --serif ); color: var( --zloto-cieply ); }
.tch-orig { display: block; margin-top: 6px; font: 400 26px var( --han ); color: var( --k ); }
.tch-okno__lead { margin: 16px 0 0; max-width: 82ch; font-size: 16px; line-height: 1.72; color: var( --tekst-mocny ); }
.tch-blok { margin: 26px 0 0; padding-top: 20px; border-top: 1px solid var( --wlos ); }
.tch-blok h4 { margin: 0 0 10px; font: 400 11px var( --sans ); letter-spacing: .26em; text-transform: uppercase; color: var( --zloto-etyk ); }
.tch-blok p { margin: 0 0 12px; max-width: 84ch; font-size: 15px; line-height: 1.75; color: var( --tekst ); }
.tch-blok p:last-child { margin-bottom: 0; }
.tch-blok--uwaga { padding: 18px 20px; border: 1px solid rgba( 212, 118, 63, .3 ); border-radius: 14px; background: rgba( 212, 118, 63, .07 ); }
.tch-blok--uwaga h4 { color: #e8a074; }

@media ( max-width: 1240px ) {
	.tch-rzad { grid-template-columns: 260px minmax( 0, 1fr ) 300px; gap: 22px; padding: 24px 26px; }
	.tch-rzad--tor, .tch-rzad--karty, .tch-rzad--linki { grid-template-columns: 260px minmax( 0, 1fr ); }
	.tch-kafel { flex-basis: calc( ( 100% - 4 * 12px ) / 5 ); }
	.tch-ramy__siatka { grid-template-columns: repeat( 2, minmax( 0, 1fr ) ); }
	.tch-hero { grid-template-columns: minmax( 0, 1fr ) minmax( 320px, 420px ); }
	.tch-hero__pion { display: none; }
}
@media ( max-width: 1020px ) {
	.tch-strona { padding: 0 24px 0; }
	.tch-hero { grid-template-columns: minmax( 0, 1fr ); margin: 6px -24px 0; padding: 32px 24px 40px; min-height: 0; }
	.tch-hero__emblemat { width: min( 100%, 300px ); margin: 0 auto; }
	.tch-rzad, .tch-rzad--tor, .tch-rzad--karty, .tch-rzad--linki { grid-template-columns: minmax( 0, 1fr ); }
	.tch-kafel { flex-basis: calc( ( 100% - 2 * 12px ) / 3 ); }
	.tch-profil { grid-template-columns: minmax( 0, 1fr ); }
	.tch-okno { padding: 34px 26px 30px; }
	.tch-okno__tytul { font-size: 30px; }
	.tch-stopka { margin: 30px -24px 0; height: 200px; }
}
@media ( max-width: 680px ) {
	.tch-strona { padding: 0 16px 0; }
	.tch-hero { margin: 6px -16px 0; padding: 24px 16px 32px; }
	.tch-rzad { padding: 20px 18px; }
	.tch-kafel { flex-basis: calc( ( 100% - 12px ) / 2 ); }
	.tch-ramy__siatka { grid-template-columns: minmax( 0, 1fr ); }
	.tch-stopka { margin: 24px -16px 0; }
}
@media ( max-width: 460px ) { .tch-kafel { flex-basis: calc( 100% - 34px ); } }
@media ( prefers-reduced-motion: reduce ) {
	.tch-etap, .tch-zwierz, .tch-wiersz, .tch-kafel, .tch-warstwa, .tch-tlo, .tch-okno { transition: none; }
	.tch-tor__pas { scroll-behavior: auto; }
}


/* ---------------------------------------------------------------------------
   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, blok 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 i nadpisanie ich zabrałoby blokom
   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 psułoby kolory.
   --------------------------------------------------------------------------- */

.tch-rzad[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 ) {
	.tch-rzad[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.
   --------------------------------------------------------------------------- */

.tch-rzad[data-tlo] .zd-pas > li,
.tch-rzad[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 );
}

/* 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. */
.tch-strona .tch-hero .tch-okno.zd-okno,
.tch-strona .tch-hero .zd-okno.zd-okno,
.tch-strona .tch-hero .tch-okno.tch-okno {
	background:
		radial-gradient( 720px 240px at 42% 0%, rgba( 9, 11, 30, .10 ), transparent 70% ),
		linear-gradient( 168deg, #111221, #060716 );
}
