/*
Theme Name: Kino za plotem
Theme URI: https://www.kinozaplotem.cz
Description: Onepage šablona pro letní kino v Rakovicích. Animovaná úvodní smyčka, program (karty nebo shortcode) a texty upravitelné v Přizpůsobit.
Version: 2.11.1
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: kino-za-plotem
*/

/* ---------- Základ ---------- */

:root {
	--noc: #080720;
	--noc-2: #120d33;
	--noc-3: #1b1347;
	--fialova: #281a52;
	--fialova-svetla: #3a2a63;
	--zlata: #ffe1aa;
	--papir: #f7f3ec;
	--tlumeny: rgba(247, 243, 236, 0.74);
	--linka: rgba(255, 225, 170, 0.22);

	--zapis: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
	--pismo: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

	--sirka: 72rem;
	--okraj: clamp(1.25rem, 5vw, 3rem);
}

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; scroll-padding-top: 3.5rem; }

body {
	margin: 0;
	background: var(--noc);
	color: var(--papir);
	font-family: var(--pismo);
	font-size: 1.0625rem;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; }

a { color: var(--zlata); text-underline-offset: 0.2em; }
a:hover { text-decoration-thickness: 2px; }

:focus-visible { outline: 3px solid var(--zlata); outline-offset: 3px; }

h1, h2, h3, h4 {
	font-family: var(--zapis);
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: -0.01em;
	margin: 0;
}
h2 { font-size: clamp(1.9rem, 4vw, 2.9rem); }
p { margin: 0 0 1em; }

.preskocit {
	position: absolute;
	left: 1rem;
	top: -4rem;
	z-index: 100;
	padding: 0.6rem 1rem;
	background: var(--zlata);
	color: var(--noc);
}
.preskocit:focus { top: 1rem; }

/* ---------- Úvodní animace ---------- */

.hero {
	position: relative;
	width: 100%;
	aspect-ratio: 21 / 9;
	min-height: 320px;
	max-height: 100vh;
	overflow: hidden;
	background: var(--fialova);
}
.hero__logo {
	position: absolute;
	left: 50%;
	top: 50%;
	height: 74%;
	max-width: 50%;
	aspect-ratio: 1;
	object-fit: contain;
	transform: translate(-50%, -50%);
	margin: 0;
	padding: 0;
	border: 0;
}
.hero__canvas {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: none;
}

/* ---------- Sekce ---------- */

.sekce { padding: clamp(3.5rem, 9vw, 6rem) var(--okraj); }
.sekce--dalsi { background: linear-gradient(to bottom, var(--fialova), var(--noc-2)); }
.sekce--program { background: var(--noc); }
.sekce--okine { background: var(--noc-3); border-top: 1px solid var(--linka); }

.sekce__vnitrek { max-width: var(--sirka); margin: 0 auto; }
.sekce__vnitrek--dva { display: grid; gap: 2rem; }

.uvod {
	font-family: var(--zapis);
	font-size: clamp(1.25rem, 2.4vw, 1.6rem);
	line-height: 1.5;
	margin-top: 1.25rem;
	max-width: 36rem;
}
.prazdno { margin-top: 1.5rem; max-width: 32rem; color: var(--tlumeny); }
.poznamka { margin: 2rem 0 0; font-size: 0.9rem; color: var(--tlumeny); }

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

.tlacitko {
	display: inline-block;
	margin: 0 0.75rem 0.5rem 0;
	padding: 0.7rem 1.4rem;
	background: var(--zlata);
	color: var(--noc);
	font-weight: 600;
	text-decoration: none;
	border: 2px solid var(--zlata);
	border-radius: 2px;
}
.tlacitko:hover { background: transparent; color: var(--zlata); }
.tlacitko--tichy { background: transparent; color: var(--zlata); }
.tlacitko--tichy:hover { background: var(--zlata); color: var(--noc); }
.tlacitko--male { padding: 0.35rem 1rem; margin: 0; font-size: 0.95rem; }

/* ---------- Příští promítání ---------- */

.dalsi { display: grid; gap: 1.75rem; align-items: center; }
.dalsi__plakat {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border-radius: 3px;
	box-shadow: 0 0 80px 4px rgba(255, 225, 170, 0.12);
}
.dalsi__kdy { margin-bottom: 0.6rem; font-weight: 600; color: var(--zlata); }
.dalsi h2 { font-size: clamp(2.1rem, 5vw, 3.6rem); line-height: 1.05; margin-bottom: 0.8rem; }
.dalsi__info { color: var(--tlumeny); margin-bottom: 0.8rem; }
.dalsi__anotace { max-width: 36rem; }
.dalsi--prazdne { padding: 1rem 0; }

/* ---------- Program ---------- */

/* Shortcode programu (např. EventON): bez bílého panelu, přes celou šířku bloku.
   Samotné karty filmů si zachovávají vzhled z pluginu / Dodatečného CSS. */
.program-shortcode {
	width: 100%;
	max-width: none;
	margin-top: 2rem;
	padding: 0;
	background: transparent;
	color: var(--papir);
}
.program-shortcode .ajde_evcal_calendar,
.program-shortcode .evo_cal_data,
.program-shortcode #evcal_list,
.program-shortcode .eventon_events_list,
.program-shortcode .eventon_list_event,
.program-shortcode .calendar_header,
.program-shortcode .evo_cal_above,
.program-shortcode .evo_eventon_live_now_section {
	width: 100% !important;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}
.program-shortcode .eventon_events_list .eventon_list_event .evcal_list_a { width: 100%; box-sizing: border-box; }
/* ---------- EventON v tmavém režimu (ladí s webem, patkové písmo) ---------- */

.program-shortcode {
	--kzp-karta: linear-gradient(135deg, var(--fialova-svetla), var(--fialova));
	--kzp-karta-hlava: linear-gradient(135deg, var(--fialova), var(--noc-2));
	/* proměnné samotného pluginu */
	--evo_font_1: var(--pismo);
	--evo_font_2: var(--pismo);
	--evo_color_1: var(--papir);
	--evo_color_2: var(--fialova);
	--evo_color_prime: var(--zlata);
	--evo_color_second: var(--fialova-svetla);
	--evo_ett_color: #fff;
	--ett_dateblock_color: var(--zlata);
	font-family: var(--pismo);
}

/* Běžný text bezpatkový, patkové jen nadpisy */
.program-shortcode :is(div, p, span, a, em, strong, h2, h3, h4, li, button, time, input, select):not(i) {
	font-family: var(--pismo) !important;
}
.program-shortcode :is(h2, h3, h4, .evo_h3, .evcal_desc2, .evcal_event_title, .evoet_title, .evo_month_title, .evcal_month_line, .evcal_month_line *, .calendar_header .evo_month_title *, .eventon_events_list .evo_start .date, .eventon_events_list .evo_start .month, .evcal_evdata_row h3, .evcal_evdata_row .evo_h3, .evo_event_schema h3, .evoet_cx span.evcal_desc2, .evoet_cx span.evcal_event_title, .eventon_list_event .evo_start *):not(i) {
	font-family: var(--zapis) !important;
}

/* Měsíce a rok nad programem */
.program-shortcode .calendar_header,
.program-shortcode .calendar_header *,
.program-shortcode .evcal_month_line,
.program-shortcode .evcal_month_line *,
.program-shortcode .evo_month_title,
.program-shortcode .evo_month_title *,
.program-shortcode .evo_sort_btn { color: #fff !important; }
.program-shortcode .evcal_month_line {
	margin: 2.5rem 0 1rem;
	padding-bottom: 0.6rem;
	border-bottom: 1px solid var(--linka);
	font-size: 1.5rem;
}
.program-shortcode .evo_cal_above span { background: var(--fialova) !important; }

/* Karta události: hlavička a (po rozbalení) tělo */
.program-shortcode .eventon_events_list .eventon_list_event {
	margin-bottom: 0.9rem !important;
	border: 1px solid var(--linka) !important;
	border-left: 3px solid var(--zlata) !important;
	border-radius: 8px;
	overflow: hidden;
	background: var(--kzp-karta) !important;
}
.program-shortcode .eventon_events_list .eventon_list_event .evcal_list_a {
	background: var(--kzp-karta-hlava) !important;
	border: 0 !important;
	border-radius: 0;
	padding: 1.1rem 1.4rem;
	color: #fff;
}
.program-shortcode .eventon_list_event .event_description,
.program-shortcode .eventon_list_event .evcal_eventcard {
	background: var(--kzp-karta) !important;
	border: 0 !important;
	color: var(--papir);
}
.program-shortcode .evoet_cx span.evcal_desc2 {
	text-transform: none;
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.01em;
}
.program-shortcode .evoet_cx span.evcal_event_subtitle {
	font-size: 0.85rem;
	letter-spacing: 0.04em;
	color: var(--tlumeny);
}

/* Filtry, řazení a vyhledávání nad programem: tmavé panely, světlý text */
.program-shortcode :is([class*="evo_filter"], [class*="evo_sort"], [class*="evo_srt"], [class*="evo_search"], [class*="evo_cal_above"], [class*="eventon_filter"], [class*="evo_dropdown"], [class*="evo_pop"]):not(.evo_sort_btn):not(button):not(i) {
	background-color: var(--noc-2) !important;
	background-image: none !important;
	color: #fff !important;
	border-color: var(--linka) !important;
	box-shadow: none !important;
}
.program-shortcode :is([class*="evo_filter"], [class*="evo_sort"], [class*="evo_srt"], [class*="evo_search"], [class*="eventon_filter"], [class*="evo_dropdown"]) :is(div, span, p, a, li, em, input, select, label, h4):not(i) {
	background-color: transparent !important;
	color: #fff !important;
}
.program-shortcode :is([class*="evo_filter"], [class*="evo_sort"], [class*="evo_srt"], [class*="evo_search"], [class*="eventon_filter"]) :is(i, .fa, svg) { color: var(--zlata) !important; fill: var(--zlata); }
.program-shortcode .evo_sort_btn, .program-shortcode .evo_filter_btn { background-color: var(--fialova) !important; color: var(--zlata) !important; border: 1px solid var(--linka) !important; }
.program-shortcode input::placeholder { color: var(--tlumeny) !important; }

/* Vše nad seznamem událostí (filtry, řazení, vyhledávání) je průhledné na tmavém webu, text světlý */
.program-shortcode .ajde_evcal_calendar :not(#evcal_list, #evcal_list *, .eventon_events_list, .eventon_events_list *, .evo_sort_btn, .evo_filter_btn, button, i, svg, path, img, .evo_month_title, .evcal_month_line, .eventon_filter_dropdown, .eventon_filter_dropdown *, .eventon_sort_line, .eventon_sort_line *, .filtering_set_val, .evo_filter_submit, .evo_filter_clear) {
	background-color: transparent !important;
	background-image: none !important;
	box-shadow: none !important;
	color: #fff !important;
	border-color: var(--linka) !important;
}
.program-shortcode .ajde_evcal_calendar :is(select, input, textarea):not(#evcal_list *) {
	background-color: var(--noc-2) !important;
	border: 1px solid var(--linka) !important;
	color: #fff !important;
	border-radius: 6px;
}
.program-shortcode .ajde_evcal_calendar :is(.evo_filter_val, .evo_filter_options *, [class*="evo_srt_sel"] *):not(#evcal_list *) { color: var(--zlata) !important; }
.program-shortcode .ajde_evcal_calendar :is([class*="evo_filter"], [class*="evo_sort"], [class*="evo_srt"], [class*="evo_search"]):is(ul, [class*="options"], [class*="dropdown"], [class*="select"]):not(#evcal_list *) {
	background-color: var(--noc-2) !important;
	border: 1px solid var(--linka) !important;
	border-radius: 8px;
}

/* Rozbalená nabídka řazení/filtru musí být neprůhledná, aby pod ní nebyl vidět nadpis měsíce */
.program-shortcode .ajde_evcal_calendar :is(:has(> .evo_sort_btn), :has(> .evo_filter_btn), :has(> [class*="evo_srt"]), :has(> [class*="evo_filter"])):not(#evcal_list *, .eventon_events_list *) {
	background-color: var(--noc) !important;
	z-index: 30;
}
.program-shortcode .ajde_evcal_calendar :is(.evo_sort_btn, .evo_filter_btn):not(#evcal_list *) { background-color: var(--fialova) !important; }

/* Přesné třídy EventON pro filtry a řazení */
.program-shortcode .eventon_filter_dropdown,
.program-shortcode .ajde_evcal_calendar .evo-sort-btn .eventon_sort_line {
	background: var(--noc) !important;
	border: 1px solid var(--linka) !important;
	border-radius: 8px;
	overflow: hidden;
	z-index: 500 !important;
	box-shadow: 0 10px 30px rgba(0, 0, 0, .5) !important;
}
.program-shortcode .eventon_filter_dropdown p,
.program-shortcode .eventon_sort_line p {
	background: transparent !important;
	color: #fff !important;
	border-color: var(--linka) !important;
}
.program-shortcode .eventon_filter_dropdown p:hover,
.program-shortcode .eventon_sort_line p:hover,
.program-shortcode .eventon_filter_dropdown p.select,
.program-shortcode .eventon_sort_line p.select { background: var(--fialova) !important; color: var(--zlata) !important; }
.program-shortcode .eventon_sorting_section { background: transparent !important; }
.program-shortcode .eventon_filter_line .filtering_set_val { background: var(--fialova) !important; color: #fff !important; }
.program-shortcode .eventon_filter_line .filtering_set_val:hover,
.program-shortcode .eventon_filter_line .filtering_set_val.show,
.program-shortcode .eventon_filter_line .filtering_set_val.set { background: var(--fialova-svetla) !important; color: var(--zlata) !important; }
.program-shortcode .eventon_sorting_section p.evo_filter_submit,
.program-shortcode .eventon_sorting_section p.evo_filter_clear { background: var(--fialova) !important; color: var(--zlata) !important; }

/* Pojistka: v rozbalené události nemá žádná vrstva světlé pozadí (nulová specificita, řádky níže ji přebijí) */
.program-shortcode .event_description :where(*:not(.evcal_btn, img, iframe, svg, path, i, .fa, [style*="background"], [class*="img"], [class*="image"], [class*="thumb"])) {
	background-color: transparent !important;
	background-image: none !important;
	box-shadow: none !important;
}
.program-shortcode .event_description :where(p, span, li, em, strong, div, .eventon_desc_in) { color: #fff !important; }
.program-shortcode .event_description :where(a:not(.evcal_btn)) { color: var(--zlata) !important; }

/* Rozbalená událost: každý řádek (EventON ho značí .evorow / .evcal_evdata_row) je tmavý, vnitřní vrstvy průhledné, text světlý */
.program-shortcode .event_description :is(.evorow, .evcal_evdata_row, [class*="evo_metarow"], [class*="evo_eventcard"], .evo_metarow_details) {
	background: var(--noc) none !important;
	background-color: var(--noc) !important;
	border: 1px solid var(--linka) !important;
	border-radius: 6px;
	color: #fff !important;
	box-shadow: none !important;
}
.program-shortcode .event_description :is(.evorow, .evcal_evdata_row) :is(div, span, p, ul, li, section, article, em, strong):not(.evcal_btn):not(.evorow):not([style*="background"]):not([class*="img"]):not([class*="image"]):not([class*="thumb"]) {
	background: transparent none !important;
	background-color: transparent !important;
	color: #fff !important;
	text-shadow: none !important;
}
.program-shortcode .event_description :is(.evorow, .evcal_evdata_row) :is(p, li, .evcal_evdata_cell, .eventon_desc_in, span, em) {
	font-size: 1.05rem;
	line-height: 1.7;
	opacity: 1 !important;
}
.program-shortcode .event_description :is(.evorow, .evcal_evdata_row) :is(h2, h3, h4, .evo_h3) { color: var(--zlata) !important; background: transparent !important; }
.program-shortcode .event_description :is(.evorow, .evcal_evdata_row) a:not(.evcal_btn) { color: var(--zlata) !important; }
.program-shortcode .event_description :is(.evorow, .evcal_evdata_row) :is(i, .fa, .evcal_evdata_icons) { color: var(--zlata) !important; }
.program-shortcode .event_description .evcal_col50 { border-color: var(--linka) !important; background: transparent !important; }
.program-shortcode .event_description img { border-radius: 6px; }

/* Tlačítka uvnitř události */
.program-shortcode .evcal_btn {
	background: var(--zlata) !important;
	color: var(--noc) !important;
}
.program-shortcode .evcal_btn.evo_btn_secondary,
.program-shortcode .evo_btn_secondary {
	background: transparent !important;
	color: var(--zlata) !important;
	border: 1px solid var(--zlata) !important;
}

.mesic {
	margin: 3rem 0 1.25rem;
	padding-bottom: 0.6rem;
	border-bottom: 1px solid var(--linka);
	font-size: 1.5rem;
	color: var(--zlata);
}
.mesic:first-of-type { margin-top: 2rem; }

.karty { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); }

.karta {
	display: flex;
	flex-direction: column;
	background: var(--noc-2);
	border: 1px solid var(--linka);
	border-radius: 3px;
	overflow: hidden;
}

.karta__plakat {
	position: relative;
	aspect-ratio: 3 / 2;
	background-color: var(--fialova);
	background-image: var(--plakat, linear-gradient(135deg, var(--fialova), var(--fialova-svetla)));
	background-size: cover;
	background-position: center;
}
.karta__datum {
	position: absolute;
	left: 0;
	bottom: 0;
	padding: 0.5rem 0.9rem;
	display: flex;
	flex-direction: column;
	background: rgba(8, 7, 32, 0.88);
}
.karta__cislo { font-family: var(--zapis); font-size: 1.5rem; line-height: 1.1; color: var(--zlata); white-space: nowrap; }
.karta__den { font-size: 0.9rem; }

.karta__telo { display: flex; flex-direction: column; flex: 1; padding: 1.1rem 1.1rem 1.25rem; }
.karta h4 { font-size: 1.4rem; margin-bottom: 0.4rem; }
.karta__info { margin-bottom: 0.5rem; font-size: 0.95rem; color: var(--tlumeny); }
.karta__anotace { font-size: 0.97rem; }
.karta__akce {
	margin: auto 0 0;
	padding-top: 0.5rem;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem 1rem;
}
.karta__cas { font-weight: 600; }

/* ---------- O kině ---------- */

.fakta { margin: 0; }
.fakta__radek {
	display: grid;
	grid-template-columns: 8rem 1fr;
	gap: 1rem;
	padding: 1rem 0;
	border-top: 1px solid var(--linka);
}
.fakta__radek:last-child { border-bottom: 1px solid var(--linka); }
.fakta dt { font-weight: 600; color: var(--zlata); }
.fakta dd { margin: 0; font-family: var(--zapis); font-size: 1.3rem; }

/* ---------- Menu (za úvodní animací) ---------- */

.menu {
	position: sticky;
	top: 0;
	z-index: 40;
	isolation: isolate;
	overflow: visible;
	/* mléčné sklo: světlejší fialový nádech + rozmazané „bokeh“ skvrny jako v úvodní animaci */
	background:
		radial-gradient(60px 40px at 12% 30%, rgba(120, 140, 255, .55), transparent 70%),
		radial-gradient(80px 50px at 38% 80%, rgba(190, 120, 255, .45), transparent 70%),
		radial-gradient(70px 40px at 64% 25%, rgba(255, 225, 170, .35), transparent 70%),
		radial-gradient(90px 50px at 88% 70%, rgba(110, 170, 255, .5), transparent 70%),
		rgba(120, 100, 210, .30);
	background-size: 200% 100%;
	animation: kzp-sklo 28s linear infinite alternate;
	-webkit-backdrop-filter: blur(22px) saturate(1.8);
	backdrop-filter: blur(22px) saturate(1.8);
	border-top: 1px solid rgba(255, 255, 255, .28);
	border-bottom: 1px solid rgba(255, 255, 255, .16);
	box-shadow: 0 8px 28px rgba(8, 7, 32, .45), inset 0 1px 0 rgba(255, 255, 255, .18);
}
@keyframes kzp-sklo { from { background-position: 0 0; } to { background-position: 100% 0; } }
@media (prefers-reduced-motion: reduce) { .menu { animation: none; } }
body.admin-bar .menu { top: 32px; }
.menu__tlacitko { display: none; }
.menu__seznam {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.15rem 2rem;
	max-width: var(--sirka);
	margin: 0 auto;
	padding: 0.5rem var(--okraj);
	list-style: none;
}
.menu__seznam a {
	display: block;
	padding: 0.4rem 0;
	color: #fff;
	text-decoration: none;
	text-shadow: 0 1px 6px rgba(8, 7, 32, .5);
	border-bottom: 2px solid transparent;
}
.menu__seznam a:hover,
.menu__seznam a:focus-visible { border-bottom-color: var(--zlata); color: var(--zlata); }

/* Telefon: menu se rozbaluje tlačítkem */
@media (max-width: 700px) {
	.menu--js .menu__tlacitko {
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 100%;
		padding: 0.85rem var(--okraj);
		background: transparent;
		border: 0;
		color: #fff;
		font: inherit;
		font-family: var(--zapis);
		font-size: 1.15rem;
		letter-spacing: .04em;
		cursor: pointer;
	}
	.menu__ikona { display: grid; gap: 5px; width: 24px; }
	.menu__ikona i { display: block; height: 2px; background: var(--zlata); border-radius: 2px; transition: transform .25s, opacity .25s; }
	.menu--otevrene .menu__ikona i:nth-child(1) { transform: translateY(7px) rotate(45deg); }
	.menu--otevrene .menu__ikona i:nth-child(2) { opacity: 0; }
	.menu--otevrene .menu__ikona i:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
	.menu--js .menu__seznam {
		display: none;
		flex-direction: column;
		flex-wrap: nowrap;
		gap: 0;
		padding: 0 var(--okraj) 0.6rem;
		border-top: 1px solid rgba(255, 255, 255, .16);
	}
	.menu--js.menu--otevrene .menu__seznam { display: flex; }
	.menu--js .menu__seznam li + li { border-top: 1px solid rgba(255, 255, 255, .1); }
	.menu--js .menu__seznam a { padding: 0.9rem 0; font-size: 1.1rem; border-bottom: 0; }
}

/* ---------- Počasí a inzerce u programu ---------- */

.akce-radek { display: grid; gap: 1rem; margin-top: 2.5rem; }
.akce-radek:empty { display: none; }

.akce {
	display: flex;
	align-items: center;
	gap: 1.1rem;
	padding: 1.1rem 1.4rem;
	background: linear-gradient(135deg, var(--fialova), var(--noc-2));
	border: 1px solid var(--linka);
	border-radius: 8px;
	color: var(--papir);
	text-decoration: none;
	transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
.akce::after { content: "\2197"; margin-left: auto; font-size: 1.3rem; color: var(--zlata); }
.akce:hover,
.akce:focus-visible {
	transform: translateY(-2px);
	border-color: var(--zlata);
	box-shadow: 0 6px 28px rgba(255, 225, 170, 0.14);
}
.akce__ikona {
	flex: none;
	display: grid;
	place-items: center;
	width: 3.5rem;
	height: 3.5rem;
	border: 1px solid var(--zlata);
	border-radius: 50%;
	background: rgba(255, 225, 170, 0.1);
	color: var(--zlata);
}
.ikona { width: 1.9rem; height: 1.9rem; }
.ikona__zaklad { fill: var(--fialova); }
.akce__text { display: flex; flex-direction: column; }
.akce__text strong { font-family: var(--zapis); font-size: 1.3rem; font-weight: 600; }
.akce__text span { font-size: 0.95rem; color: var(--tlumeny); }

/* ---------- Fotky ---------- */

.foto-siroka { margin: 0; background: var(--noc); }
.foto-siroka__obr {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 2 / 1; /* vždy poměr 2:1 */
	object-fit: cover;
	object-position: center;
}

.sekce--galerie { background: var(--noc); padding-top: clamp(2rem, 5vw, 3.5rem); padding-bottom: clamp(2rem, 5vw, 3.5rem); }
.okine__galerie { margin-top: clamp(2rem, 5vw, 3.5rem); }
.galerie { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }
.galerie__polozka { margin: 0; }
.galerie__obr { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 3px; }

/* ---------- Před návštěvou ---------- */

.prakticke { display: grid; gap: 2rem; margin-top: 2.5rem; }
.prakticke__bod h3 { margin-bottom: 0.6rem; font-size: 1.35rem; color: var(--zlata); }
.prakticke__bod p { max-width: 36rem; margin: 0; }

/* ---------- Kontakt a mapa ---------- */

.mapa-obal { position: relative; z-index: 0; margin-top: 2rem; }
.mapa {
	position: relative;
	z-index: 0;
	height: clamp(18rem, 48vw, 26rem);
	background: var(--noc-2);
	border: 1px solid var(--linka);
	border-radius: 6px;
	overflow: hidden;
}
.mapa__nahrada { display: grid; place-content: center; height: 100%; text-align: center; color: var(--tlumeny); }
.mapa__nahrada p { margin: 0 0 0.5rem; }
.mapa .leaflet-control-attribution { font-size: 0.7rem; }

.kzp-pin { position: relative; background: none; border: 0; }
.kzp-pin svg { display: block; filter: drop-shadow(0 3px 4px rgba(8, 7, 32, 0.45)); }
.kzp-pin__stin {
	position: absolute;
	left: 50%;
	bottom: -3px;
	width: 26px;
	height: 9px;
	margin-left: -13px;
	border-radius: 50%;
	background: rgba(40, 26, 82, 0.4);
	animation: kzp-pulz 2.6s ease-out infinite;
}
@keyframes kzp-pulz {
	0%   { transform: scale(0.6); opacity: 0.9; }
	100% { transform: scale(2.4); opacity: 0; }
}
.kzp-stitek {
	background: var(--fialova);
	color: var(--zlata);
	border: 1px solid var(--zlata);
	border-radius: 3px;
	font-family: var(--zapis);
	font-size: 0.95rem;
	font-weight: 600;
	box-shadow: none;
}
.kzp-stitek::before { display: none; }

.mapa__navigovat {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	z-index: 1000;
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.5rem 1rem 0.5rem 0.8rem;
	background: var(--zlata);
	color: var(--noc);
	font-weight: 600;
	font-size: 0.95rem;
	text-decoration: none;
	border-radius: 999px;
	box-shadow: 0 2px 10px rgba(8, 7, 32, 0.35);
	transition: background 0.2s ease, color 0.2s ease;
}
.mapa__navigovat .ikona { width: 1.25rem; height: 1.25rem; }
.mapa__navigovat:hover,
.mapa__navigovat:focus-visible { background: var(--fialova); color: var(--zlata); }


.kontakt { margin-top: 2rem; }
.kontakt p { margin: 0 0 0.75rem; }
.kontakt--sloupce { display: grid; gap: 1.75rem 3rem; }
.kontakt__blok > strong { display: block; margin-bottom: 0.4rem; color: var(--zlata); }
.kontakt__site { display: flex; gap: 0.75rem; margin-top: 0.9rem; }
.soc {
	display: grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	border: 1px solid var(--linka);
	border-radius: 50%;
	color: var(--zlata);
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.soc .ikona { width: 1.4rem; height: 1.4rem; }
.soc:hover,
.soc:focus-visible { background: var(--zlata); border-color: var(--zlata); color: var(--noc); }
.kontakt__poznamka { margin: 2rem 0 0; font-size: 0.9rem; color: var(--tlumeny); }

/* ---------- Patička a záložní stránky ---------- */

.paticka {
	padding: 1.5rem var(--okraj);
	background: var(--noc);
	border-top: 1px solid var(--linka);
	font-size: 0.9rem;
	color: var(--tlumeny);
}
.paticka p { max-width: var(--sirka); margin: 0 auto; }

.stranka { padding: 5rem var(--okraj); }
.stranka__vnitrek { max-width: 42rem; margin: 0 auto; }

/* ---------- Větší obrazovky ---------- */

@media (min-width: 640px) {
	.kontakt--sloupce { grid-template-columns: repeat(3, 1fr); }
	.akce-radek { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 782px) {
	body.admin-bar .menu { top: 46px; }
}

@media (max-width: 520px) {
	.menu__seznam { gap: 0 1.25rem; font-size: 0.95rem; }
}

@media (min-width: 900px) {
	.sekce__vnitrek--dva { grid-template-columns: 1fr 1fr; gap: 4rem; align-items: start; }
	.dalsi { grid-template-columns: 1.1fr 1fr; gap: 3.5rem; }
	.dalsi--prazdne { display: block; }
	.prakticke { grid-template-columns: 1fr 1fr; gap: 2.5rem 4rem; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.kzp-pin__stin { animation: none; opacity: 0.5; }
}

/* Na šířku (výška obrazovky menší než šířka): úvodní animace zaplní celou obrazovku a menu sedí u jejího spodního okraje.
   Při rolování se pak přichytí nahoře. Na výšku zůstává vše jako dřív. */
@media (orientation: landscape) {
	:root { --menu-v: 3.4rem; --admin-v: 0px; }
	body.admin-bar { --admin-v: 32px; }
	.hero {
		aspect-ratio: auto;
		max-height: none;
		min-height: 0;
		height: calc(100vh - var(--menu-v) - var(--admin-v));
	}
	@supports (height: 100svh) {
		.hero { height: calc(100svh - var(--menu-v) - var(--admin-v)); }
	}
	.menu { min-height: var(--menu-v); box-sizing: border-box; }
	.menu__tlacitko { height: var(--menu-v); box-sizing: border-box; }
}
@media (orientation: landscape) and (min-width: 701px) {
	.menu { height: var(--menu-v); }
	.menu__seznam { height: 100%; align-items: center; padding-top: 0; padding-bottom: 0; }
	.menu__seznam a { padding: 0.3rem 0; }
}
@media (orientation: landscape) and (max-width: 782px) {
	body.admin-bar { --admin-v: 46px; }
}
