/* KOLORYT WŁASNY TEGO DZIAŁU — woda kanału i cyna; delft jest chłodny i zielonkawy, nie granatowy.
   Grunt #081210. Gradienty podłoża biorą barwę z palety tego działu,
   a nie z neutralnej szarości: 21 modułów miało wcześniej to samo
   `--tlo: #0e0c0b` i cały serwis świecił jedną szarością. */

/* Holandia — przewaga liczona w pokoleniach.  Prefiks `thl-`.

   MATERIAŁ: cegła i szkło okna. ŚWIATŁO: mokre niebo, płaski horyzont.
   Rozpiska z `BACKLOG-EUROPA.md`.

   Mokre niebo daje światło równe i chłodne, bez źródła i bez kierunku —
   dokładne przeciwieństwo sąsiedniego światła przez korony drzew, które jest
   plamiste i ruchome. To jest w tej parze różnica główna i ma być widoczna
   od pierwszego spojrzenia, bo oba działy mówią o tym samym i dochodzą do
   przeciwnych wniosków.

   Cztery barwy z rzeczy, o których dział mówi: cegła stonowana, szkło
   zielonkawe, cyna i jeden akcent indygo — barwnika, którym ten handel
   stał. Indygo jest AKCENTEM PORÓWNANIA: pojawia się przy wybranym słupku
   wykresu i przy dacie niderlandzkiej, i nigdzie indziej.

   SZEROKOŚĆ 1520 px i blok wyłamania z układu motywu są od pierwszej wersji.
   Motyw narzuca `--wp--style--global--content-size: 645px` i bez tego dział
   wygląda na ściśnięty do połowy ekranu, a test tego NIE widzi, bo ściśnięta
   strona niczego nie przepełnia. */

.thl-strona {
	--tlo: #081210; --panel: rgba( 18, 32, 30, .84 );
	--obrys: rgba( 150, 96, 77, .30 ); --wlos: rgba( 150, 96, 77, .14 );
	--cegla: #96604d; --cegla-j: #c08a74;
	--indygo: #3d5a8a; --indygo-j: #7c99c4;
	--cyna: #a9aeb0; --cyna-j: #d6dadc;
	--szklo: #7e9a92; --szklo-j: #aec4bd;
	--cien: #262a2d; --cien-j: #586066;
	--etyk: #a89a7c;
	--tekst: #b3ab97; --tekst-slaby: #8b8472; --tekst-mocny: #ece6d6;
	--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 17px var( --serif );
	background:
		radial-gradient( 1200px 640px at 50% -10%, rgba( 150, 96, 77, .16 ), transparent 72% ),
		radial-gradient( 900px 520px at 86% 40%, rgba( 61, 90, 138, .10 ), transparent 74% ),
		radial-gradient( 760px 440px at 8% 78%, rgba( 157, 68, 56, .08 ), transparent 74% ),
		linear-gradient( 180deg, #191c20, var( --tlo ) 48% );
	overflow-x: clip;
}
.thl-strona *, .thl-strona *::before, .thl-strona *::after { box-sizing: border-box; }

/* WYŁAMANIE Z UKŁADU MOTYWU. Bez tego dział stoi w kolumnie 645 px. */
body:has( .thl-strona ) .wp-site-blocks > header, body:has( .thl-strona ) header.wp-block-template-part,
body:has( .thl-strona ) .wp-site-blocks > footer, body:has( .thl-strona ) footer.wp-block-template-part,
body:has( .thl-strona ) .wp-block-post-title { display: none !important; }
body:has( .thl-strona ) .wp-site-blocks, body:has( .thl-strona ) .wp-block-group,
body:has( .thl-strona ) .wp-block-post-content { padding: 0 !important; margin: 0 !important; max-width: none !important; }
body:has( .thl-strona ) .wp-block-post-content > *, body:has( .thl-strona ) .entry-content > * { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }
body:has( .thl-strona ) { background: #0e0f10; }
body:has( .thl-strona ) .wp-block-post-content > .thl-strona, body:has( .thl-strona ) .entry-content > .thl-strona,
.thl-strona { box-sizing: border-box; max-width: 1600px !important; margin-left: auto !important; margin-right: auto !important; }
.thl-strona button { font-family: inherit; }

/* ══════════════  UWERTURA  ══════════════ */

.thl-hero {
	position: relative; margin: 26px 0 0; padding: 62px 44px 54px; border-radius: 28px;
	border: 1px solid var( --wlos ); overflow: hidden;
	background:
		radial-gradient( 900px 420px at 22% 0%, rgba( 216, 219, 216, .1 ), transparent 70% ),
		linear-gradient( 180deg, rgba( 24, 25, 28, .9 ), rgba( 14, 15, 16, .96 ) );
}
/* Uwertura z grafika nosi `thl-sekcja--tlo thl-hero`, a NIE `thl-hero--tlo`
   — nazwa modyfikatora pochodzi z `tlo()` i jest wspolna dla obu. */
.thl-sekcja--tlo::before {
	content: ''; position: absolute; inset: 0; z-index: -1;
	background: var( --tlo ) 50% 50% / cover no-repeat; opacity: .92;
}
.thl-sekcja--tlo::after {
	content: ''; position: absolute; inset: 0; z-index: -1;
	background:
		radial-gradient( 900px 520px at 16% 16%, rgba( 10, 11, 12, .68 ), transparent 76% ),
		linear-gradient( 180deg, rgba( 10, 11, 12, .14 ), rgba( 10, 11, 12, .5 ) );
}
.thl-hero__nad {
	margin: 0 0 16px; font: 400 11px var( --sans ); letter-spacing: .3em; text-transform: uppercase;
	color: var( --etyk );
}
.thl-hero__tytul {
	margin: 0 0 26px; max-width: 20ch;
	font: 300 clamp( 40px, 5.2vw, 72px ) / 1.07 var( --serif ); color: var( --tekst-mocny );
	text-shadow: 0 0 60px rgba( 216, 219, 216, .16 );
}

/* ══════════════  SEKCJE  ══════════════ */

.thl-sekcja { position: relative; margin: 84px 0 0; padding: 0; }
.thl-sekcja--tlo { padding: 54px 40px 48px; border-radius: 26px; border: 1px solid var( --wlos ); overflow: hidden; }
.thl-sekcja__nad {
	margin: 0 0 12px; font: 400 11px var( --sans ); letter-spacing: .28em; text-transform: uppercase;
	color: var( --etyk );
}
.thl-sekcja__tytul {
	margin: 0 0 16px; max-width: 26ch;
	font: 300 clamp( 30px, 3.4vw, 46px ) / 1.12 var( --serif ); color: var( --tekst-mocny );
	text-shadow: 0 0 40px rgba( 216, 219, 216, .13 );
}
.thl-sekcja__lead { margin: 0 0 32px; max-width: 78ch; font-size: 19px; line-height: 1.66; color: var( --tekst ); }

.thl-przerywnik { display: block; width: 100%; height: 44px; margin: 66px 0 0; color: var( --indygo ); opacity: .5; }

/* ══════════════  WYKRES PORÓWNAWCZY  ══════════════
   Rysunek dostaje JAWNĄ szerokość, bo SVG w siatce kurczy się do 300 px,
   a wtedy podpisy punktów nachodzą na siebie i cały sens przestaje działać. */

.thl-kiedy {
	width: 100%; max-width: 860px; margin: 0 auto; position: relative;
	/* Światło pod rysunkiem — niskie i rozproszone, zgodnie ze światłem działu.
	   Bez niego koło wisi na płaskim tle i nie ma żadnej głębi. */
	background: radial-gradient( 60% 55% at 50% 46%, rgba( 201, 169, 97, .07 ), transparent 72% );
}

/* RYSUNEK NA CAŁĄ SZEROKOŚĆ, OPIS POD SPODEM — odwrotnie niż w działach
   sąsiednich, i to jest różnica wymuszona kształtem rysunku, a nie gustem.
   Róża odległości i plan zagrody są kwadratowe, więc mieszczą się w połowie
   pasma i zostawiają miejsce na opis obok. Pasmo dwunastu dni jest z natury
   szerokie: wciśnięte w połowę dawało słupki po czterdzieści pikseli,
   w których podpis pogody przestawał być czytelny. Dlatego tutaj rysunek
   bierze całe pasmo, a opis staje pod nim i zostaje zwężony do szerokości
   wygodnej do czytania. */
.thl-kiedy { max-width: 1000px; }
.thl-kiedy__opis { max-width: 78ch; margin-left: auto; margin-right: auto; }
.thl-kiedy__svg { display: block; width: 100%; height: auto; overflow: visible; }

/* Słupek kraju. Długość odpowiada latom od daty najwcześniejszej — czyli
   temu, o ile później dany kraj przestał. Data sporna ma obrys przerywany. */
.thl-kraj { cursor: pointer; outline: none; }
.thl-kraj__pole { fill: rgba( 150, 96, 77, .26 ); stroke: var( --cegla-j ); stroke-width: 1; }
.thl-kraj.jest-sporna .thl-kraj__pole { stroke-dasharray: 5 4; }
.thl-kraj.jest-pierwszy .thl-kraj__pole { fill: rgba( 61, 90, 138, .38 ); stroke: var( --indygo-j ); stroke-width: 1.6; }
.thl-kraj__nazwa { fill: var( --tekst-mocny ); font: 300 15px var( --serif ); text-anchor: end; }
.thl-kraj__rok { fill: var( --tekst ); font: 400 12px var( --sans ); letter-spacing: .08em; }
.thl-kraj__rodzaj { fill: var( --tekst-slaby ); font: 400 9.5px var( --sans ); letter-spacing: .14em; text-transform: uppercase; }

.thl-glowa { fill: var( --etyk ); font: 400 10px var( --sans ); letter-spacing: .2em; text-transform: uppercase; }
.thl-os { stroke: var( --wlos ); stroke-width: 1; }
.thl-kiedy__nota { fill: var( --tekst-slaby ); font: 300 13px var( --serif ); text-anchor: middle; }

.thl-kraj:hover .thl-kraj__pole,
.thl-kraj:focus-visible .thl-kraj__pole { fill: rgba( 150, 96, 77, .4 ); }
.thl-kraj.jest-wybrany .thl-kraj__pole { stroke: var( --indygo-j ); stroke-width: 1.8; }
.thl-kraj.jest-wybrany .thl-kraj__nazwa { fill: var( --indygo-j ); }
.thl-kraj.jest-wybrany { filter: drop-shadow( 0 0 14px rgba( 124, 153, 196, .4 ) ); }

.thl-kiedy__opis {
	max-width: 78ch; margin: 26px auto 0; padding: 30px 34px;
	border: 1px solid var( --wlos ); border-radius: 22px; background: var( --panel );
}
.thl-kiedy__opis h3 { margin: 0 0 6px; font: 300 30px var( --serif ); color: var( --tekst-mocny ); }
.thl-kiedy__opis p { margin: 0 0 14px; font-size: 18px; line-height: 1.74; }
.thl-kiedy__opis p:last-child { margin-bottom: 0; }
.thl-kiedy__kraj { font: 400 11px var( --sans ) !important; letter-spacing: .24em; text-transform: uppercase; color: var( --indygo ); margin-bottom: 8px !important; }
.thl-kiedy__kto { font: 400 12px var( --sans ) !important; letter-spacing: .1em; text-transform: uppercase; color: var( --etyk ); }
.thl-kiedy__krotko { color: var( --tekst-mocny ); font-style: italic; }
.thl-kiedy__zrodlo { font-size: 15px !important; color: var( --tekst-slaby ); border-top: 1px solid var( --wlos ); padding-top: 12px; }
.thl-kiedy__zrodlo b { display: block; font: 400 10.5px var( --sans ); letter-spacing: .22em; text-transform: uppercase; color: var( --etyk ); margin-bottom: 4px; }

/* ══════════════  SIATKI KAFLI  ══════════════ */

.thl-siatka { display: grid; gap: 22px; grid-template-columns: repeat( auto-fill, minmax( 300px, 1fr ) ); align-items: start; }
.thl-siatka--zabiegi { grid-template-columns: repeat( auto-fill, minmax( 360px, 1fr ) ); }
.thl-siatka--slowa { grid-template-columns: repeat( auto-fill, minmax( 260px, 1fr ) ); }

.thl-kafel {
	position: relative; padding: 26px 26px 24px; border-radius: 20px;
	border: 1px solid var( --wlos ); background: var( --panel ); cursor: pointer;
	transition: border-color .2s, transform .2s;
}
.thl-kafel:hover, .thl-kafel:focus-visible { border-color: var( --obrys ); transform: translateY( -2px ); }
.thl-kafel h3 { margin: 0 0 8px; font: 300 25px / 1.18 var( --serif ); color: var( --tekst-mocny ); }
.thl-kafel p { margin: 0; font-size: 17px; line-height: 1.66; }
.thl-kafel__nad {
	display: block; margin: 0 0 10px; font: 400 10.5px var( --sans ); letter-spacing: .22em;
	text-transform: uppercase; color: var( --etyk );
}
.thl-kafel__nad i { font-style: normal; margin-right: 8px; color: var( --indygo ); }

.thl-foto { margin: 0 0 18px; border-radius: 14px; overflow: hidden; }
.thl-foto img { display: block; width: 100%; height: auto; }

.thl-pole { margin: 0 0 14px !important; padding: 12px 16px; border-radius: 12px; font-size: 16px !important; }
.thl-pole b { display: block; font: 400 10.5px var( --sans ); letter-spacing: .22em; text-transform: uppercase; margin-bottom: 5px; }
.thl-pole--zrodlo { background: rgba( 109, 122, 124, .12 ); color: var( --tekst-slaby ); }
.thl-pole--zrodlo b { color: var( --cien-j ); }
.thl-pole--zamiast { background: rgba( 168, 98, 74, .15 ); color: var( --tekst-mocny ); }
.thl-pole--zamiast b { color: var( --indygo-j ); }

/* ── siedem składników zabiegu ──
   Etykieta i treść w dwóch kolumnach, żeby dało się czytać PIONOWO po
   etykietach i porównywać zabiegi między sobą. To jest cel tego rozkładu:
   nie ozdoba, tylko możliwość zestawienia. */
.thl-rozklad {
	margin: 0 0 18px; padding: 16px 18px; border-radius: 14px;
	border: 1px solid var( --wlos ); background: rgba( 201, 169, 97, .06 );
}
.thl-rozklad__pole { display: grid; grid-template-columns: 116px 1fr; gap: 14px; padding: 7px 0; border-bottom: 1px solid var( --wlos ); }
.thl-rozklad__pole:last-child { border-bottom: 0; }
.thl-rozklad__pole b { font: 400 10.5px var( --sans ); letter-spacing: .18em; text-transform: uppercase; color: var( --indygo ); padding-top: 3px; }
.thl-rozklad__pole span { font-size: 16.5px; line-height: 1.6; color: var( --tekst ); }

/* ══════════════  LICZNIK  ══════════════ */

.thl-liczby { display: grid; gap: 20px; grid-template-columns: repeat( auto-fit, minmax( 250px, 1fr ) ); align-items: start; }
.thl-karta { padding: 28px 24px; border-radius: 20px; border: 1px solid var( --wlos ); background: var( --panel ); }
.thl-karta__ile {
	margin: 0 0 10px; font: 300 clamp( 38px, 4vw, 56px ) / 1 var( --serif ); color: var( --indygo-j );
	text-shadow: 0 0 34px rgba( 227, 196, 133, .22 );
}
.thl-karta__co { margin: 0 0 10px; font: 400 12px var( --sans ); letter-spacing: .14em; text-transform: uppercase; color: var( --etyk ); line-height: 1.5; }
.thl-karta__krotko { margin: 0; font-size: 16.5px; line-height: 1.64; }

/* ══════════════  OKNO  ══════════════ */

.thl-okno {
	max-width: 82ch; padding: 30px 34px; border-radius: 20px;
	border: 1px solid var( --wlos ); background: rgba( 20, 21, 23, .7 );
}
.thl-okno p { margin: 0; font-size: 19px; line-height: 1.74; color: var( --tekst ); }

/* ══════════════  WĄSKIE EKRANY  ══════════════ */

@media ( max-width: 900px ) {
	.thl-strona { padding: 0 20px 60px; }
	.thl-hero { padding: 44px 24px 38px; }
	.thl-sekcja { margin-top: 60px; }
	.thl-sekcja--tlo { padding: 36px 22px 32px; }
	.thl-kiedy__opis { padding: 22px 20px; }
	.thl-rozklad__pole { grid-template-columns: 1fr; gap: 3px; }
	/* Siatka zabiegów ma `minmax( 360px )`, co przy 390 px ekranu i marginesach
	   wychodziło 10 px poza stronę — zmierzone, nie założone. Jedna kolumna. */
	.thl-siatka, .thl-siatka--zabiegi, .thl-siatka--slowa { grid-template-columns: 1fr; }
	.thl-kraj__nazwa { font-size: 12px; }
}

/* GRUNT CAŁEJ STRONY. Motyw daje `body` czerń, a kolumna działu ma 1520 px — na
   ekranie 2560 px zostawało po ~470 px czarnego pasa z każdej strony.
   `body:has()` ma swoistość 0,2,1 wobec `body` 0,0,1, więc wygrywa
   z motywem bez `!important`.
   NIE robimy tego pseudoelementem: `background: inherit` na `::after`
   dziedziczy też ZDJĘCIE sekcji, a `cover` przelicza się na szerokości
   pseudoelementu — wychodzą dwa te same zdjęcia w różnych skalach.
   Sprawdzone i cofnięte 2026-09-12. */
body:has( .thl-strona ) {
	background-color: #081210;
	background-image: radial-gradient( 1600px 900px at 50% 0%, rgba( 150, 96, 77, .07 ), transparent 68% );
	background-attachment: fixed;
}


/* ===== POPRAWKA WARSTW 2026-09-12 =====
   `z-index: -1` na obu pseudoelementach wrzucal ZDJECIE POD wlasne,
   nieprzezroczyste tlo sekcji (.thl-hero ma pelny linear-gradient),
   wiec grafika nie byla widoczna w ogole. Sprawdzone na zywo.
   Pseudoelementy ida nad tlo elementu, tresc nad nie. */
.thl-sekcja--tlo::before,
.thl-sekcja--tlo::after { z-index: 0; }
.thl-sekcja--tlo > * { position: relative; z-index: 1; }


/* ===== MIT W KAFLU 2026-09-12 =====
   Naglowek kafla w sekcji „Czego nie bylo” to CUDZE falszywe zdanie.
   Ma wygladac na cytat, nie na teze strony. */
.thl-kafel__nad--mit { color: #c4826e; letter-spacing: .16em; }
.thl-kafel__mit { color: var( --tekst-slaby ); font-style: italic; }
.thl-kafel__nie { color: #c4826e; font-style: normal; letter-spacing: .04em; }

/* 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. */
.thl-strona .thl-hero .thl-okno.zd-okno,
.thl-strona .thl-hero .zd-okno.zd-okno,
.thl-strona .thl-hero .thl-okno.thl-okno {
	background:
		radial-gradient( 720px 240px at 42% 0%, rgba( 18, 32, 30, .10 ), transparent 70% ),
		linear-gradient( 168deg, #131d1b, #081210 );
}
