/**
 * Katalog železnic – vzhled navázaný na šablonu webu.
 * Barvy a rozměry přebírá z proměnných šablony, s bezpečnými náhradami.
 */

.pzk-katalog {
	--pzk-zelena: var(--pkv-green, #1f6b3b);
	--pzk-zelena-tmava: var(--pkv-green-dark, #14472a);
	--pzk-zelena-svetla: var(--pkv-green-light, #e8f3ec);
	--pzk-zluta: var(--pkv-yellow, #f2b705);
	--pzk-tmava: var(--pkv-ink, #16211c);
	--pzk-text: var(--pkv-body, #46534c);
	--pzk-linka: var(--pkv-line, #e2e8e4);
	--pzk-pozadi: var(--pkv-bg, #f7f9f7);
	--pzk-radius: var(--pkv-radius, 14px);
	--pzk-stin: var(--pkv-shadow, 0 4px 24px rgba(22, 33, 28, .07));
	--pzk-stin-velky: var(--pkv-shadow-lg, 0 18px 46px rgba(22, 33, 28, .16));
	--pzk-cervena: #b3352a;
	--pzk-modra: #1d4e79;
	--pzk-seda: #6b7280;
}

.pzk-obal {
	width: min(1240px, 100% - 3rem);
	margin-inline: auto;
}

.pzk-obsah {
	padding-block: clamp(2rem, 5vw, 3.5rem);
	background: var(--pzk-pozadi);
}

.pzk-sekce { margin-bottom: clamp(2.2rem, 5vw, 3.4rem); }

.pzk-h2 {
	font-size: clamp(1.3rem, 2.8vw, 1.9rem);
	margin: 0 0 1.1rem;
	color: var(--pzk-tmava);
}

.pzk-h2--seznam { margin-top: 2.4rem; }

/* ---------- Záhlaví sekce ---------- */

.pzk-hlavicka {
	position: relative;
	background: linear-gradient(135deg, var(--pzk-zelena-tmava) 0%, var(--pzk-zelena) 100%);
	color: #fff;
	padding-block: clamp(2.2rem, 6vw, 3.6rem);
	overflow: hidden;
}

.pzk-hlavicka h1 {
	color: #fff;
	margin: 0;
	font-size: clamp(1.7rem, 4vw, 2.7rem);
}

.pzk-hlavicka .pzk-perex {
	color: rgba(255, 255, 255, .92);
	max-width: 62ch;
	margin: .7rem 0 0;
}

.pzk-hlavicka--detail .pzk-hlavicka__foto {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: .32;
	z-index: 0;
}

.pzk-hlavicka--detail::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(105deg, rgba(12, 40, 24, .93) 0%, rgba(12, 40, 24, .72) 55%, rgba(12, 40, 24, .5) 100%);
	z-index: 1;
}

.pzk-hlavicka > .pzk-obal { position: relative; z-index: 2; }

/* ---------- Drobečky ---------- */

.pzk-drobecky ol {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem .55rem;
	list-style: none;
	margin: 0 0 .6rem;
	padding: 0;
	font-size: .82rem;
	letter-spacing: .04em;
	color: rgba(255, 255, 255, .8);
}

.pzk-drobecky li + li::before { content: "› "; opacity: .7; }
.pzk-drobecky a { color: inherit; text-decoration: none; }
.pzk-drobecky a:hover { color: #fff; text-decoration: underline; }

/* ---------- Rozcestník ---------- */

.pzk-rozcestnik {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 1.4rem;
}

.pzk-dlazdice {
	position: relative;
	display: block;
	background: #fff;
	border: 1px solid var(--pzk-linka);
	border-top: 5px solid var(--pzk-zelena);
	border-radius: var(--pzk-radius);
	padding: 1.8rem 1.8rem 1.6rem;
	text-decoration: none;
	color: inherit;
	box-shadow: var(--pzk-stin);
	transition: transform .18s ease, box-shadow .18s ease;
}

.pzk-dlazdice:hover { transform: translateY(-4px); box-shadow: var(--pzk-stin-velky); color: inherit; }
.pzk-dlazdice--cervena { border-top-color: var(--pzk-cervena); }
.pzk-dlazdice h2 { margin: .3rem 0 .6rem; font-size: 1.5rem; }
.pzk-dlazdice p { margin: 0 0 1rem; color: var(--pzk-text); }

.pzk-dlazdice__pocet {
	display: inline-block;
	font-size: 2.4rem;
	font-weight: 800;
	line-height: 1;
	color: var(--pzk-zelena);
}

.pzk-dlazdice--cervena .pzk-dlazdice__pocet { color: var(--pzk-cervena); }

.pzk-dlazdice__odkaz { font-weight: 700; color: var(--pzk-zelena); }
.pzk-dlazdice--cervena .pzk-dlazdice__odkaz { color: var(--pzk-cervena); }

/* ---------- Boxy s vysvětlením ---------- */

.pzk-dva {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 1.2rem;
}

.pzk-box {
	background: #fff;
	border: 1px solid var(--pzk-linka);
	border-radius: var(--pzk-radius);
	padding: 1.4rem 1.6rem;
	box-shadow: var(--pzk-stin);
}

.pzk-box h3 { margin: 0 0 .5rem; font-size: 1.15rem; }
.pzk-box p { margin: 0; color: var(--pzk-text); }

.pzk-poznamka { font-size: .9rem; color: var(--pzk-seda); margin-top: 1rem; }
.pzk-souhrn { margin: 0 0 1.6rem; color: var(--pzk-text); }
.pzk-prazdno { background: #fff; border: 1px dashed var(--pzk-linka); border-radius: var(--pzk-radius); padding: 2rem; text-align: center; }

/* ---------- Karty ---------- */

.pzk-karty {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
	gap: 1.3rem;
}

.pzk-karta {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--pzk-linka);
	border-radius: var(--pzk-radius);
	overflow: hidden;
	box-shadow: var(--pzk-stin);
	transition: transform .18s ease, box-shadow .18s ease;
}

.pzk-karta:hover { transform: translateY(-3px); box-shadow: var(--pzk-stin-velky); }

.pzk-karta__foto {
	display: block;
	aspect-ratio: 16 / 10;
	background: var(--pzk-zelena-svetla);
	overflow: hidden;
}

.pzk-karta__foto img { width: 100%; height: 100%; object-fit: cover; }

.pzk-karta__telo { padding: 1.1rem 1.3rem 1.3rem; display: flex; flex-direction: column; flex: 1; }
.pzk-karta__nazev { font-size: 1.15rem; margin: .1rem 0 .3rem; line-height: 1.25; }
.pzk-karta__nazev a { color: var(--pzk-tmava); text-decoration: none; }
.pzk-karta__nazev a:hover { color: var(--pzk-zelena); }
.pzk-karta__misto { margin: 0 0 .2rem; font-weight: 600; color: var(--pzk-text); font-size: .93rem; }
.pzk-karta__meta { margin: 0 0 .6rem; font-size: .85rem; color: var(--pzk-seda); }
.pzk-karta__popis { margin: 0 0 1rem; font-size: .93rem; color: var(--pzk-text); }
.pzk-karta__akce { margin-top: auto; display: flex; flex-wrap: wrap; gap: .5rem; }

/* ---------- Štítky ---------- */

.pzk-stitky { display: flex; flex-wrap: wrap; gap: .35rem; margin-bottom: .6rem; }

.pzk-stitek {
	display: inline-block;
	font-size: .74rem;
	font-weight: 700;
	letter-spacing: .04em;
	padding: .25rem .6rem;
	border-radius: 999px;
	background: var(--pzk-zelena-svetla);
	color: var(--pzk-zelena-tmava);
	white-space: nowrap;
}

.pzk-stitek--info { background: #eef2f7; color: var(--pzk-modra); }
.pzk-stitek--stop { background: #f4ecea; color: var(--pzk-cervena); }

.pzk-hlavicka .pzk-stitky { margin-top: 1rem; }
.pzk-hlavicka .pzk-stitek { background: rgba(255, 255, 255, .18); color: #fff; }

/* ---------- Tlačítka ---------- */

.pzk-btn {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	background: var(--pzk-zelena);
	color: #fff !important;
	font-weight: 700;
	font-size: .95rem;
	line-height: 1.15;
	padding: .75rem 1.3rem;
	border: 1px solid transparent;
	border-radius: 999px;
	text-decoration: none !important;
	cursor: pointer;
	transition: background-color .15s, transform .15s, color .15s;
}

.pzk-btn:hover { background: var(--pzk-zelena-tmava); color: #fff !important; transform: translateY(-1px); }
.pzk-btn--male { font-size: .86rem; padding: .55rem 1rem; }

.pzk-btn--tise {
	background: #fff;
	color: var(--pzk-tmava) !important;
	border-color: var(--pzk-linka);
}

.pzk-btn--tise:hover { background: var(--pzk-zelena-svetla); color: var(--pzk-zelena-tmava) !important; border-color: var(--pzk-zelena); }

/* ---------- Kraje ---------- */

.pzk-kraje { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: .6rem; }

.pzk-kraje a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: .5rem;
	background: #fff;
	border: 1px solid var(--pzk-linka);
	border-radius: 10px;
	padding: .7rem 1rem;
	text-decoration: none;
	color: var(--pzk-tmava);
	font-weight: 600;
}

.pzk-kraje a:hover { border-color: var(--pzk-zelena); color: var(--pzk-zelena); }
.pzk-kraje span { background: var(--pzk-zelena-svetla); color: var(--pzk-zelena-tmava); border-radius: 999px; padding: .1rem .55rem; font-size: .82rem; }

.pzk-kraj-hlavicka { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.pzk-pocet-maly { font-size: .8rem; background: var(--pzk-zelena-svetla); color: var(--pzk-zelena-tmava); border-radius: 999px; padding: .15rem .6rem; vertical-align: middle; margin-left: .4rem; }

/* ---------- Mapa ---------- */

.pzk-mapa {
	border-radius: var(--pzk-radius);
	overflow: hidden;
	border: 1px solid var(--pzk-linka);
	box-shadow: var(--pzk-stin);
	background: #eef2ef;
	z-index: 0;
}

.pzk-pod-mapou { margin-top: 1rem; }

.pzk-bod {
	width: 26px;
	height: 26px;
	border-radius: 50% 50% 50% 0;
	transform: rotate(-45deg);
	border: 2px solid #fff;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .35);
}

.pzk-bod--zelena { background: var(--pzk-zelena, #1f6b3b); }
.pzk-bod--cervena { background: #b3352a; }
.pzk-bod--modra { background: #1d4e79; }
.pzk-bod--seda { background: #6b7280; }

.pzk-popup { min-width: 210px; max-width: 260px; font-size: .92rem; }
.pzk-popup img { width: 100%; height: 120px; object-fit: cover; border-radius: 8px; margin-bottom: .5rem; }
.pzk-popup strong { display: block; font-size: 1.02rem; margin-bottom: .15rem; }
.pzk-popup .pzk-popup__meta { color: #6b7280; margin-bottom: .5rem; display: block; font-size: .85rem; }
.pzk-popup a { display: inline-block; margin-right: .5rem; font-weight: 600; }

/* ---------- Filtry ---------- */

.pzk-filtry {
	background: #fff;
	border: 1px solid var(--pzk-linka);
	border-radius: var(--pzk-radius);
	padding: 1.2rem 1.4rem;
	margin-bottom: 1.4rem;
	box-shadow: var(--pzk-stin);
}

.pzk-filtry__prepinac { display: none; }

.pzk-filtry__telo {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	gap: .9rem 1.2rem;
	align-items: end;
}

.pzk-filtry .pzk-pole { margin: 0; }
.pzk-filtry label { display: block; font-weight: 600; font-size: .86rem; margin-bottom: .25rem; color: var(--pzk-tmava); }
.pzk-filtry input[type="text"],
.pzk-filtry input[type="search"],
.pzk-filtry select {
	width: 100%;
	padding: .55rem .7rem;
	border: 1px solid var(--pzk-linka);
	border-radius: 8px;
	background: #fff;
	color: var(--pzk-tmava);
	font: inherit;
	font-size: .92rem;
}

.pzk-filtry input:focus-visible,
.pzk-filtry select:focus-visible,
.pzk-btn:focus-visible,
.pzk-karta a:focus-visible {
	outline: 3px solid var(--pzk-zluta);
	outline-offset: 2px;
}

.pzk-prepinace { border: 0; margin: 0; padding: 0; grid-column: 1 / -1; }
.pzk-prepinace legend { font-weight: 600; font-size: .86rem; margin-bottom: .3rem; }
.pzk-prepinace label { display: inline-flex; align-items: center; gap: .35rem; font-weight: 400; margin: 0 1rem .3rem 0; font-size: .92rem; }

.pzk-filtry__akce { grid-column: 1 / -1; display: flex; gap: .6rem; flex-wrap: wrap; }
.pzk-vysledky { margin: 0 0 1rem; color: var(--pzk-text); }
.pzk-vice { margin-top: 1.4rem; text-align: center; }

/* ---------- Detail ---------- */

.pzk-detail {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: clamp(1.5rem, 4vw, 3rem);
	align-items: start;
}

.pzk-detail__podobne { grid-column: 1 / -1; }

.pzk-detail__hlavni { min-width: 0; }
.pzk-lead { font-size: 1.1rem; color: var(--pzk-text); margin: 0 0 1.4rem; }
.pzk-text { margin-bottom: 1.8rem; }
.pzk-text p { color: var(--pzk-text); }

.pzk-blok {
	background: #fff;
	border: 1px solid var(--pzk-linka);
	border-radius: var(--pzk-radius);
	padding: 1.4rem 1.6rem;
	margin-bottom: 1.2rem;
	box-shadow: var(--pzk-stin);
}

.pzk-blok .pzk-h2 { font-size: 1.2rem; margin-bottom: .8rem; }

.pzk-udaje { margin: 0; }
.pzk-radek { display: flex; gap: 1rem; padding: .45rem 0; border-bottom: 1px solid var(--pzk-linka); }
.pzk-radek:last-child { border-bottom: 0; }
.pzk-radek dt { flex: 0 0 42%; font-weight: 600; color: var(--pzk-tmava); margin: 0; font-size: .92rem; }
.pzk-radek dd { margin: 0; color: var(--pzk-text); font-size: .95rem; overflow-wrap: anywhere; }

.pzk-vybaveni { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.pzk-vybaveni li { background: var(--pzk-zelena-svetla); color: var(--pzk-zelena-tmava); border-radius: 999px; padding: .3rem .8rem; font-size: .88rem; font-weight: 600; }

.pzk-panel {
	position: sticky;
	top: 100px;
	background: #fff;
	border: 1px solid var(--pzk-linka);
	border-radius: var(--pzk-radius);
	padding: 1.4rem 1.5rem;
	box-shadow: var(--pzk-stin);
}

.pzk-panel h2 { font-size: 1.05rem; margin: 0 0 .8rem; }
.pzk-tlacitka { display: grid; gap: .5rem; margin-top: 1.1rem; }
.pzk-tlacitka .pzk-btn { justify-content: center; }

.pzk-galerie { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .6rem; }
.pzk-galerie img { width: 100%; height: 130px; object-fit: cover; border-radius: 8px; }

.pzk-zdroje ul { margin: 0 0 .8rem 1.1rem; padding: 0; font-size: .92rem; color: var(--pzk-text); }
.pzk-varovani { background: #fdf3e7; border-left: 4px solid #d18700; padding: .8rem 1rem; border-radius: 8px; color: #7a4f00; }
.pzk-adresa { margin-top: .8rem; color: var(--pzk-text); }

/* ---------- Mobil ---------- */

@media (max-width: 980px) {
	.pzk-detail { grid-template-columns: 1fr; }
	.pzk-panel { position: static; }
}

@media (max-width: 720px) {
	.pzk-obal { width: min(1240px, 100% - 2rem); }
	.pzk-karty { grid-template-columns: 1fr; }
	.pzk-filtry__prepinac {
		display: block;
		width: 100%;
		background: var(--pzk-zelena-svetla);
		color: var(--pzk-zelena-tmava);
		border: 0;
		border-radius: 8px;
		padding: .7rem 1rem;
		font: inherit;
		font-weight: 700;
		cursor: pointer;
		text-align: left;
	}
	.pzk-filtry__telo { display: none; margin-top: 1rem; }
	.pzk-filtry.je-otevreno .pzk-filtry__telo { display: grid; }
	.pzk-mapa--velka { height: 55vh !important; min-height: 340px !important; }
	.pzk-radek { flex-direction: column; gap: .1rem; }
	.pzk-radek dt { flex: none; }
}

/* ---------- Tisk a pohyb ---------- */

@media (prefers-reduced-motion: reduce) {
	.pzk-karta, .pzk-dlazdice, .pzk-btn { transition: none; }
}

/* ---------- Zapojení do rozvržení Astry ---------- */

.pzk-katalog #content,
.pzk-katalog #content > .ast-container,
.pzk-katalog #primary,
.pzk-katalog .site-main,
.pzk-katalog .entry-content,
.pzk-katalog .ast-article-single {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}

.pzk-katalog .site-content { padding-block: 0 !important; }
.pzk-katalog .entry-header,
.pzk-katalog .ast-single-post-order,
.pzk-katalog .post-navigation,
.pzk-katalog .ast-author-details,
.pzk-katalog .entry-meta { display: none !important; }

/* ---------- Záhlaví: text vždy bílý, zeleň o stupeň světlejší ---------- */

.pzk-hlavicka {
	background: linear-gradient(135deg, #1a5f36 0%, #26794a 100%);
}

.pzk-katalog .pzk-hlavicka h1,
.pzk-hlavicka h1,
.pzk-hlavicka .pzk-perex,
.pzk-hlavicka .pzk-drobecky,
.pzk-hlavicka .pzk-drobecky ol,
.pzk-hlavicka .pzk-drobecky li,
.pzk-hlavicka .pzk-drobecky span {
	color: #fff !important;
}

.pzk-hlavicka .pzk-drobecky a {
	color: rgba(255, 255, 255, .88) !important;
	text-decoration: none;
}

.pzk-hlavicka .pzk-drobecky a:hover {
	color: #fff !important;
	text-decoration: underline;
}

.pzk-hlavicka .pzk-drobecky ol { font-size: .86rem; }

/* u detailu leží pod textem fotka, proto tmavší závoj */
.pzk-hlavicka--detail::after {
	background: linear-gradient(105deg, rgba(10, 46, 26, .94) 0%, rgba(12, 56, 32, .82) 55%, rgba(14, 62, 36, .62) 100%);
}
