/* ==========================================================================
   BASE
   ========================================================================== */

:root {
	--red: #da251d;
	--red-dark: #b81e18;
	--dark: #333;
	--text: #555;
	--text-muted: #999;
	--bg: #fafaf7;
	--white: #fff;
	--font: "PT Sans", Arial, sans-serif;
	/* Při načítání Rukoly: Arial (ne generická „cursive“, která může vypadat jako Courier) */
	--font-display: "Rukola", Arial, sans-serif;
	--nav-peach: #fff4eb;
	--nav-border-soft: #d8d4cf;
	/* Výška fixní lišty – hero a megamenu podle skutečné výšky navigace */
	--portal-nav-height: calc(70.98px + 1.2rem);
	/* Pozadí sekce Nejbližší akce (pruh s kalendářem) */
	--hp-events-bg: #f5f5f0;
}

/* Zabránění horizontálnímu posuvníku od širokých prvků (obr. přes viewport) */
html {
	overflow-x: hidden;
}

body {
	font-family: var(--font);
	color: var(--dark);
	background-color: var(--bg);
	margin: 0;
	overflow-x: hidden;
}

/* ==========================================================================
   NAVBAR
   ========================================================================== */

.navbar {
	padding: 0.6rem 0;
	box-shadow: 0 1px 6px rgba(0,0,0,0.08);
}

/* Střední šířky (lg–xxl): logo + menu na 1. řádku, vyhledávání + jazyky na 2. */
@media (min-width: 992px) and (max-width: 1399.98px) {
	:root {
		--portal-nav-height: calc(58px + 2.4rem + 3.25rem);
	}

	.navbar.portal-nav > .portal-nav__inner {
		display: grid !important;
		flex-wrap: wrap !important;
		grid-template-columns: auto minmax(0, 1fr);
		grid-template-areas:
			"brand menu"
			"utils utils";
		align-items: center;
		column-gap: 0.75rem;
		row-gap: 0.55rem;
	}

	.navbar.portal-nav .navbar-brand {
		grid-area: brand;
		margin-right: 0;
		max-width: min(38vw, 220px);
		position: relative;
		z-index: 2;
	}

	.navbar.portal-nav .hp-logo {
		height: 58px;
	}

	.navbar.portal-nav .portal-nav__panel {
		grid-area: menu;
		min-width: 0;
		width: 100%;
	}

	.navbar.portal-nav .portal-nav__body {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		justify-content: flex-end !important;
		align-items: center !important;
		padding: 0 !important;
		width: 100%;
	}

	.navbar.portal-nav .navbar-nav {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap;
		justify-content: flex-end;
		align-items: center;
		width: 100%;
		min-width: 0;
		margin-left: 0 !important;
		overflow-x: auto;
		scrollbar-width: thin;
		-ms-overflow-style: none;
	}

	.navbar.portal-nav .navbar-nav::-webkit-scrollbar {
		height: 4px;
	}

	.navbar.portal-nav .nav-item {
		flex: 0 0 auto;
	}

	.navbar.portal-nav .nav-item .nav-link,
	.navbar.portal-nav .mega-menu-toggle {
		padding-left: 0.55rem !important;
		padding-right: 0.55rem !important;
		font-size: 15px;
		line-height: 1.4;
		white-space: nowrap;
	}

	.navbar.portal-nav .mega-menu-toggle.mega-menu-toggle--cta {
		padding-left: 0.95rem !important;
		padding-right: 0.95rem !important;
	}

	.navbar.portal-nav .portal-nav__utilities--bar {
		grid-area: utils;
		justify-content: flex-end;
		width: 100%;
		margin-left: 0 !important;
		margin-top: 0;
		padding-top: 0.45rem;
		border-top: 1px solid var(--nav-border-soft);
	}

	.navbar.portal-nav .hp-search-pill {
		max-width: min(42vw, 220px);
		flex: 0 1 220px;
	}
}

@media (min-width: 1200px) and (max-width: 1399.98px) {
	:root {
		--portal-nav-height: calc(64px + 2.4rem + 3.25rem);
	}

	.navbar.portal-nav .nav-item .nav-link,
	.navbar.portal-nav .mega-menu-toggle {
		padding-left: 0.65rem !important;
		padding-right: 0.65rem !important;
		font-size: 16px;
		line-height: 28px;
	}

	.navbar.portal-nav .hp-logo {
		height: 64px;
	}
}

@media (min-width: 1400px) {
	.navbar.portal-nav > .portal-nav__inner {
		display: flex !important;
		flex-wrap: nowrap !important;
		align-items: center !important;
	}

	.navbar.portal-nav .portal-nav__panel {
		flex: 1 1 auto;
		min-width: 0;
	}

	.navbar.portal-nav .portal-nav__utilities--bar {
		margin-left: 1.5rem;
		border-top: 0;
		padding-top: 0;
		flex-shrink: 0;
	}
}

/* Horní logo v navigaci: +30 % oproti původní výšce 54.6px */
.hp-logo {
	height: 70.98px;
	width: auto;
}

.navbar-toggler {
	border: 0;
}

.navbar-toggler:focus {
	box-shadow: none;
}

/* Specifikace „menu“ (všechny položky vč. Co navštívit, Ubytování, …): PT Sans Bold 16px / 28px */
.nav-item .nav-link {
	font-family: var(--font);
	font-size: 16px;
	font-weight: 700;
	font-style: normal;
	line-height: 28px;
	letter-spacing: 0;
	color: var(--dark);
	padding: 0.5rem 0.85rem;
	display: inline-flex;
	align-items: center;
}

.nav-item .nav-link:hover {
	color: var(--red);
}

.nav-item .nav-link.nav-link-cta:hover {
	color: var(--white) !important;
}

/* Tlačítko „Co dělat“ – Figma: výška 36.8px, radius 50px, barva #DA251D */
.nav-item .nav-link.nav-link-cta {
	background-color: #da251d !important;
	color: var(--white) !important;
	border-radius: 50px !important;
	padding: 0 1.2rem !important;
	margin-right: 0.25rem;
	min-height: 36.8px;
	height: 36.8px;
	box-sizing: border-box;
}

.nav-link-cta:hover {
	background-color: var(--red-dark) !important;
	color: var(--white) !important;
}

/* Pravá část navigace: větší odstup od poslední položky menu */
.hp-nav-utilities {
	flex-shrink: 0;
}

/* Vyhledávání: jeden zaoblený „pill“ s inputem a lupou, tenký šedý rámeček */
.hp-search-pill {
	display: flex;
	align-items: stretch;
	min-width: 0;
	max-width: 170px;
	background-color: #fff;
	border: 1px solid #a5a5a5;
	border-radius: 20px;
	overflow: hidden;
}

.hp-search-input {
	flex: 1 1 auto;
	min-width: 0;
	border: 0;
	background: transparent;
	font-size: 0.88rem;
	padding: 0.4rem 0.65rem 0.4rem 0.9rem;
	color: var(--dark);
	outline: none;
	box-shadow: none;
}

.hp-search-input::placeholder {
	color: var(--text-muted);
}

.hp-search-submit {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	border: 0;
	background-color: #fff;
	color: #a5a5a5;
	padding: 0;
	transition: color 0.2s, background-color 0.2s;
}

.hp-search-icon {
	display: block;
	flex-shrink: 0;
}

.hp-search-submit:hover {
	color: var(--red);
	background-color: #f7f7f7;
}

.hp-search-submit:focus-visible {
	outline: 2px solid var(--red);
	outline-offset: 2px;
	z-index: 1;
}

/* Sezónní přepínač (button-summer / button-winter) – obrázkové tlačítko mezi vyhledáváním a jazyky */
.hp-season-pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 2.4rem;
	padding: 0;
	background: transparent;
	border: 0;
	line-height: 0;
	text-decoration: none;
	transition: transform 0.2s ease, opacity 0.2s ease;
}

.hp-season-pill:hover {
	transform: translateY(-1px);
	opacity: 0.9;
}

.hp-season-pill:focus-visible {
	outline: 2px solid var(--red);
	outline-offset: 3px;
	border-radius: 6px;
}

.hp-season-icon {
	display: block;
	height: 1.2rem;
	width: auto;
	max-width: 100%;
}

/* Jazyky: světle oranžové pozadí, zaoblení, aktivní jazyk v červeném kruhu */
.hp-lang-pill {
	display: inline-flex;
	flex-wrap: nowrap;
	flex-shrink: 0;
	white-space: nowrap;
	background-color: var(--nav-peach);
	border: none;
	border-radius: 999px;
	padding: 0.15rem 0.25rem;
	gap: 0.05rem;
}

.hp-lang-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	min-width: 2.05rem;
	height: 2.05rem;
	padding: 0 0.28rem;
	border-radius: 50%;
	font-size: 0.8rem;
	font-weight: 700;
	line-height: 1;
	color: var(--dark);
	text-decoration: none;
	transition: color 0.2s, background-color 0.2s;
}

.hp-lang-link:hover {
	color: var(--red);
}

.hp-lang-active {
	background-color: var(--red);
	color: var(--white) !important;
}

.hp-lang-active:hover {
	background-color: var(--red-dark);
	color: var(--white) !important;
}

/* Desktop utilities: nevynechávat/zalamovat jazykový pill */
@media (min-width: 992px) {
	.portal-nav__utilities--bar {
		flex-wrap: nowrap;
	}

	.portal-nav__utilities--bar .hp-lang-pill {
		flex-shrink: 0;
	}
}

@media (min-width: 1400px) {
	.hp-lang-link {
		min-width: 2.25rem;
		height: 2.25rem;
		font-size: 0.864rem;
		padding: 0 0.32rem;
	}

	.hp-lang-pill {
		padding: 0.2rem 0.3rem;
		gap: 0.1rem;
	}
}

@media (max-width: 991.98px) {
	.hp-search-pill {
		max-width: 100%;
	}
}

/* Bootstrap 5 Dropdown – megamenu „Co dělat“ (data-bs-toggle + data-bs-display="static") */
.mega-menu-nav {
	position: static;
}

/* Megamenu tlačítko: bez --cta jako běžné položky (černý text); s --cta červený „pill“ jen u výchozího „Co dělat“ */
.mega-menu-toggle {
	font-family: var(--font);
	font-size: 16px;
	font-weight: 700;
	line-height: 28px;
	letter-spacing: 0;
	text-align: left;
	cursor: pointer;
	border: 0 !important;
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	column-gap: 0.35rem;
	margin-right: 0.25rem;
	height: auto;
}

.mega-menu-toggle:not(.mega-menu-toggle--cta) {
	background-color: transparent !important;
	color: var(--dark) !important;
	border-radius: 0 !important;
	padding: 0.5rem 0.85rem !important;
	min-height: 0;
}

.mega-menu-toggle:not(.mega-menu-toggle--cta):hover,
.mega-menu-toggle:not(.mega-menu-toggle--cta).show {
	background-color: transparent !important;
	color: var(--red) !important;
}

/* Červené CTA (stejné jako staré nav-link-cta) – pouze s třídou .mega-menu-toggle--cta */
.mega-menu-toggle.mega-menu-toggle--cta {
	background-color: #da251d !important;
	color: var(--white) !important;
	border-radius: 50px !important;
	padding: 0 1rem 0 1.2rem !important;
	min-height: 36.8px;
}

/* Šipka: u CTA bílá, jinak barva textu */
.mega-menu-toggle.mega-menu-toggle--cta.dropdown-toggle::after {
	vertical-align: 0.125em;
	margin-left: 0;
	border-top-color: #fff !important;
}

.mega-menu-toggle:not(.mega-menu-toggle--cta).dropdown-toggle::after {
	vertical-align: 0.125em;
	margin-left: 0;
	border-top-color: currentColor !important;
}

.mega-menu-toggle.mega-menu-toggle--cta:hover,
.mega-menu-toggle.mega-menu-toggle--cta.show {
	background-color: var(--red-dark) !important;
	color: var(--white) !important;
}

.mega-menu-toggle:focus-visible {
	outline: 2px solid var(--red);
	outline-offset: 2px;
}

.mega-menu-dropdown {
	--mega-top: var(--portal-nav-height);
	padding: 0;
	background-color: #fff;
	border: none;
}

/* Úzké mobily: panel pod tlačítkem v offcanvasu */
@media (max-width: 767.98px) {
	.mega-menu-nav .mega-menu-dropdown.dropdown-menu {
		position: static !important;
		transform: none !important;
		width: 100% !important;
		max-width: 100%;
		margin-top: 0.75rem !important;
		left: auto !important;
		inset: auto !important;
		border-radius: 0;
		border: 1px solid var(--nav-border-soft);
		box-shadow: 0 0.35rem 1rem rgba(0, 0, 0, 0.06);
	}

	.mega-menu-dropdown .container {
		padding-left: 0.75rem;
		padding-right: 0.75rem;
	}
}

/* Tablet + PC: panel na 100 % šířky viewportu pod fixní lištou (vč. přepsání BS dropdownu v navbaru od lg) */
@media (min-width: 768px) {
	.mega-menu-nav .mega-menu-dropdown.dropdown-menu {
		position: fixed !important;
		left: 0 !important;
		right: 0 !important;
		top: var(--mega-top) !important;
		width: 100vw !important;
		max-width: 100vw;
		margin: 0 !important;
		transform: none !important;
		border-radius: 0;
		border-bottom: 1px solid var(--nav-border-soft);
		box-shadow: 0 0.5rem 1.25rem rgba(0, 0, 0, 0.08);
		z-index: 1055;
		max-height: min(75vh, 560px);
		overflow-y: auto;
	}
}

.mega-menu-dropdown__list li + li {
	margin-top: 0.35rem;
}

/* Odkazy jako v hlavním menu (.nav-link): PT Sans Bold 16px / 28px */
.mega-menu-dropdown__link {
	display: block;
	font-family: var(--font);
	font-size: 16px;
	font-weight: 700;
	font-style: normal;
	line-height: 28px;
	letter-spacing: 0;
	color: var(--dark);
	text-decoration: none;
	padding: 0.35rem 0;
	transition: color 0.2s ease;
}

.mega-menu-dropdown__link:hover,
.mega-menu-dropdown__link:focus-visible {
	color: var(--red);
}

/* ==========================================================================
   HERO
   ========================================================================== */

.hp-hero {
	margin-top: var(--portal-nav-height);
}

.hp-hero-bg {
	position: relative;
	min-height: clamp(520px, 85vh, 720px);
	background-size: cover;
	background-position: center;
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
	padding-top: clamp(5.25rem, 12vh, 7.5rem);
	padding-bottom: 3rem;
}

.hp-hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to right,
		rgba(0,0,0,0.55) 0%,
		rgba(0,0,0,0.25) 50%,
		rgba(0,0,0,0) 100%
	);
}

.hp-hero-content {
	position: relative;
	z-index: 2;
	max-width: 560px;
}

.hp-hero-label {
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: var(--font);
	font-size: 14px;
	font-weight: 700;
	font-style: normal;
	line-height: 22px;
	letter-spacing: 2.5px;
	color: #c8c3c0;
	text-transform: uppercase;
	margin-bottom: 1rem;
}

.hp-hero-label .hp-label-line {
	background-color: #c8c3c0;
}

.hp-hero-title {
	font-family: "Rukola", var(--font-display);
	font-size: 100px;
	font-weight: 400;
	font-style: normal;
	line-height: 80px;
	letter-spacing: 0;
	color: #fff;
	margin: 0 0 calc(1.25rem + 30px);
	text-shadow: 0 2px 16px rgba(0, 0, 0, 0.35);
	text-transform: none;
}

.hp-hero-title-line1,
.hp-hero-title-red {
	display: block;
	font-family: "Rukola", var(--font-display);
	font-weight: 400;
	font-style: normal;
	line-height: inherit;
	text-transform: none;
}

.hp-hero-title-red {
	color: var(--red);
}

.hp-hero-text {
	font-family: var(--font);
	font-size: 18px;
	font-weight: 400;
	font-style: normal;
	line-height: 26px;
	letter-spacing: 0;
	color: rgba(255, 255, 255, 0.75);
	margin-bottom: 1.75rem;
	max-width: 32em;
}

.btn.hp-hero-btn {
	--bs-btn-bg: transparent;
	--bs-btn-color: #fff;
	--bs-btn-border-color: #fff;
	--bs-btn-hover-bg: var(--red);
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-border-color: var(--red);
	--bs-btn-focus-shadow-rgb: 218, 37, 29;

	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.65rem;
	font-family: var(--font);
	font-size: 14px;
	font-weight: 700;
	font-style: normal;
	line-height: 20px;
	letter-spacing: 2.5px;
	text-transform: uppercase;
	color: #fff;
	background-color: transparent;
	border: 1px solid #fff;
	border-radius: 999px;
	padding: calc(0.65rem + 5px) 1.75rem;
	text-decoration: none;
	transition:
		background-color 0.25s ease,
		color 0.25s ease,
		border-color 0.25s ease;
}

.hp-hero-btn__arrow {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
}

.hp-hero-btn__arrow-svg {
	display: block;
	flex-shrink: 0;
	vertical-align: middle;
}

/* Hrot otevřený chevron; špička (17,6) = konec hřídele i vrchol obou ramen (90°) */
.hp-hero-btn__arrow-shaft,
.hp-hero-btn__arrow-head {
	transition: d 0.3s ease;
}

.btn.hp-hero-btn:hover .hp-hero-btn__arrow-shaft,
.btn.hp-hero-btn:focus-visible .hp-hero-btn__arrow-shaft {
	d: path("M0 6H27");
}

.btn.hp-hero-btn:hover .hp-hero-btn__arrow-head,
.btn.hp-hero-btn:focus-visible .hp-hero-btn__arrow-head {
	d: path("M21 0L27 6L21 12");
}

.btn.hp-hero-btn:hover,
.btn.hp-hero-btn:focus-visible {
	background-color: var(--red);
	color: #fff;
	border-color: var(--red);
}

.btn.hp-hero-btn:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}


/* ==========================================================================
   SHARED SECTION STYLES
   ========================================================================== */

.hp-section {
	position: relative;
	padding: 4.5rem 0;
	overflow: hidden;
}

.hp-section-label {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 3px;
	color: var(--text-muted);
	text-transform: uppercase;
	margin-bottom: 0.4rem;
}

.hp-label-light {
	color: rgba(255,255,255,0.5);
}

.hp-label-line {
	display: inline-block;
	width: 36px;
	height: 3px;
	background-color: var(--red);
	border-radius: 2px;
}

.hp-section-title {
	font-family: var(--font);
	font-size: 2.8rem;
	font-weight: 700;
	color: var(--dark);
	line-height: 1.15;
	margin-bottom: 0.5rem;
}

.hp-section-desc {
	font-size: 0.95rem;
	color: var(--text);
	line-height: 1.7;
	margin-bottom: 0;
}

.hp-link-all {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 2px;
	color: var(--text-muted);
	text-decoration: none;
	text-transform: uppercase;
}

.hp-link-all:hover {
	color: var(--red);
}

/* ==========================================================================
   CATEGORY CARDS (Co dělat)
   ========================================================================== */

.hp-what-to-do {
	background-color: var(--bg);
	overflow: visible;
}

/* Odsazení bloku „Co dělat“ – finální hodnoty (přebíjí .hp-section) */
.hp-section.hp-what-to-do {
	padding-top: 90px;
	padding-bottom: 110px;
	margin-bottom: 20px;
}

/* Homepage EN/PL/DE: bez sekce akcí – mezera nad regionem = mezera nad patičkou (5rem) */
.hp-section.hp-what-to-do:has(+ .hp-section.hp-region) {
	padding-bottom: 0;
	margin-bottom: 0;
}

.hp-section.hp-what-to-do + .hp-section.hp-region {
	padding-top: 5rem;
}

/* Pozadí ikon – v kontejneru zarovnané vlevo = začátek mřížky u „Co“ (návrh); bez masky kvůli čitelnosti */
.hp-what-to-do-bg {
	position: absolute;
	/* Zarovnání s obsahem kontejneru (stejně jako „Co“) – Bootstrap: padding = 0,5 × --bs-gutter-x */
	left: calc(var(--bs-gutter-x, 1.5rem) * 0.5);
	right: calc(var(--bs-gutter-x, 1.5rem) * 0.5);
	top: 0;
	width: auto;
	height: clamp(200px, 28vw, 280px);
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
	pointer-events: none;
	overflow: visible;
	/* pro flex s širokým <img> v úzkém sloupci */
	min-width: 0;
	z-index: 0;
	/* první řádek ikon nad písmenem „C“, ne přes něj */
	transform: translateY(-60px);
}

.hp-what-to-do .hp-icons-bg {
	/* 808px = návrh; na mobilech musí jít zmenšit (intrinsic min-width u <img> jinak drží 808px) */
	width: 100%;
	max-width: 808px;
	min-width: 0;
	height: auto;
	object-fit: contain;
	object-position: left top;
	display: block;
	flex-shrink: 1;
	/* Vodoznak – nízký kontrast, ne výrazné (návrh ~10–15 % „inkoustu“) */
	opacity: 0.52;
	filter: brightness(1.22) contrast(0.88);
}

/* Úvod sekce „Co dělat“ – nadpis PT Sans bold (stejně jako ostatní hlavní nadpisy sekcí), text PT Sans 16/28, max. šířka textu 522px.
   Blok čára + odstavec vpravo (návrh); mezera čára ↔ text ~26px. */
.hp-what-to-do-intro {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	width: 100%;
	column-gap: clamp(2rem, 4vw, 3.5rem);
	row-gap: 1.5rem;
	/* Mezera mezi úvodem a kartami – větší než dřív (padding sekce je pod celým blokem karet) */
	margin-bottom: calc(clamp(5rem, 8vw, 8.5rem) - 20px);
}

.hp-what-to-do-heading {
	font-family: var(--font);
	font-size: 55px;
	font-weight: 700;
	font-style: normal;
	line-height: 45px;
	letter-spacing: 0;
	color: var(--dark);
	margin: 0;
	flex: 0 1 auto;
}

.hp-what-to-do-heading-accent {
	color: var(--red);
}

.hp-what-to-do-copy {
	display: flex;
	align-items: stretch;
	column-gap: 1.65rem;
	flex: 0 0 auto;
	min-width: 0;
	max-width: calc(522px + 1.65rem + 2px);
	margin-left: auto;
}

.hp-what-to-do-divider {
	width: 2px;
	background-color: var(--red);
	flex-shrink: 0;
}

/* Figma: PT Sans Regular 16/28, letter-spacing 0 %, barva #777777 */
.hp-what-to-do-lead {
	font-family: var(--font);
	font-size: 16px;
	font-weight: 400;
	font-style: normal;
	line-height: 28px;
	letter-spacing: 0;
	color: #777777;
	max-width: 522px;
	margin: 0;
	flex: 0 1 auto;
}

.hp-what-to-do .row {
	position: relative;
	z-index: 1;
}

@media (max-width: 991.98px) {
	.hp-what-to-do-heading {
		font-size: 44px;
		line-height: 38px;
	}
}

@media (max-width: 767.98px) {
	.hp-what-to-do-intro {
		flex-direction: column;
		align-items: stretch;
		gap: 1rem;
	}

	.hp-what-to-do-copy {
		flex-direction: column;
		align-items: stretch;
		max-width: none;
		gap: 1rem;
		margin-left: 0;
	}

	.hp-what-to-do-divider {
		width: 100%;
		height: 2px;
	}

	.hp-what-to-do-heading {
		font-size: 38px;
		line-height: 32px;
	}
}

@media (max-width: 575.98px) {
	.hp-what-to-do-heading {
		font-size: 32px;
		line-height: 28px;
	}
}

/* Sdílené dlaždice (homepage + portál – {@see _portal-menu-image-tile.latte}) */
.hp-category-card {
	display: block;
	position: relative;
	border-radius: 12px;
	overflow: hidden;
	text-decoration: none;
}

/* Červený proužek dole – hover */
.hp-category-card::before {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 0;
	background-color: #e30613;
	z-index: 2;
	pointer-events: none;
	transition: height 0.35s ease;
	border-radius: 0 0 12px 12px;
}

.hp-category-card:hover::before {
	height: 5px;
}

.hp-category-card .hp-tile-photo,
.hp-category-card > img:not(.hp-card-label__icon):not(.hp-card-label__icon--wide) {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	position: relative;
	z-index: 0;
	transition: transform 0.4s ease;
	will-change: transform;
	filter: none;
}

.hp-category-card > .hp-tile-picture {
	position: absolute;
	inset: 0;
	z-index: 0;
	display: block;
	overflow: hidden;
}

.hp-category-card > .hp-tile-picture .hp-tile-photo {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.hp-category-card:hover .hp-tile-photo,
.hp-category-card:hover > img:not(.hp-card-label__icon):not(.hp-card-label__icon--wide),
.hp-category-card:hover > .hp-tile-picture .hp-tile-photo {
	transform: scale(1.1);
	filter: none;
}

.hp-card-lg {
	height: 280px;
}

/* Skeleton placeholder u dlaždic s externí fotkou ({@see _hp-tile-photo-skeleton.latte}) */
.hp-tile-media {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	display: block;
}

.hp-tile-media__skeleton {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, #eceae6 0%, #f5f3ef 45%, #e6e4e0 100%);
	transition: opacity 0.35s ease;
}

.hp-tile-media__skeleton::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(
		90deg,
		rgba(255, 255, 255, 0) 0%,
		rgba(255, 255, 255, 0.55) 50%,
		rgba(255, 255, 255, 0) 100%
	);
	transform: translateX(-100%);
	animation: hp-tile-photo-shimmer 1.35s ease-in-out infinite;
}

.hp-tile-media__skeleton-icon {
	position: relative;
	z-index: 1;
	color: rgba(51, 51, 51, 0.28);
}

.hp-tile-media .hp-tile-picture {
	position: absolute;
	inset: 0;
	z-index: 0;
	display: block;
	overflow: hidden;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
}

.hp-tile-media .hp-tile-picture .hp-tile-photo {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	max-width: none;
}

.hp-tile-media > .hp-tile-photo {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	max-width: none;
}

.hp-tile-media:has(.hp-tile-media__skeleton) > .hp-tile-photo {
	opacity: 0;
	transition: opacity 0.35s ease, transform 0.4s ease;
	will-change: transform;
}

.hp-tile-media.is-loaded > .hp-tile-photo {
	opacity: 1;
}

.hp-tile-media.is-loaded .hp-tile-media__skeleton {
	opacity: 0;
	pointer-events: none;
}

@keyframes hp-tile-photo-shimmer {
	0% {
		transform: translateX(-100%);
	}

	100% {
		transform: translateX(100%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.hp-tile-media__skeleton::after {
		animation: none;
	}

	.hp-tile-media .hp-tile-photo,
	.hp-tile-media.is-loaded .hp-tile-media__skeleton {
		transition: none;
	}
}

.hp-card-md {
	height: 200px;
}

.hp-card-wide {
	height: 200px;
}

.hp-card-label {
	position: absolute;
	z-index: 3;
	font-family: var(--font);
	font-weight: 700;
	color: var(--white);
}

.hp-tile-city-badge {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	z-index: 4;
	max-width: min(62%, 14rem);
	padding: 0.4rem 0.7rem;
	border-radius: 0.25rem;
	background-color: rgba(47, 107, 47, 0.88);
	color: #fff;
	font-family: var(--font);
	font-size: 0.8125rem;
	font-weight: 700;
	line-height: 1.25;
	text-align: center;
	white-space: normal;
	word-break: break-word;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18);
	pointer-events: none;
}

@media (min-width: 768px) {
	.hp-tile-city-badge {
		font-size: 0.875rem;
		padding: 0.45rem 0.75rem;
	}
}

/* Dlaždice ubytování – šedý box, spodní „Ideální pro“ */
.accommodation-tile-grid > .accommodation-tile-col {
	min-width: 0;
}

.accommodation-tile-col {
	display: flex;
	flex-direction: column;
}

.accommodation-tile-col > .accommodation-tile {
	width: 100%;
	min-width: 0;
}

.accommodation-tile__card {
	background: #f0f0ef;
	border-radius: 12px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	box-shadow: 0 1px 4px rgb(0 0 0 / 0.06);
	transition: box-shadow 0.25s ease, transform 0.25s ease;
}

.accommodation-tile:hover .accommodation-tile__card {
	box-shadow: 0 6px 20px rgb(0 0 0 / 0.1);
	transform: translateY(-2px);
}

.accommodation-tile__media {
	--tile-corner-inset: 0.75rem;
	--tile-city-badge-pad-block: 0.4rem;
	--tile-city-badge-pad-inline: 0.7rem;
	--tile-city-badge-font-size: 0.8125rem;
	--tile-city-badge-line-height: 1.25;
	position: relative;
	width: 100%;
	border-radius: 12px 12px 0 0;
	flex-shrink: 0;
	overflow: hidden;
	isolation: isolate;
}

/* BVC + obec – výšku určuje badge obce, BVC se natáhne na stejnou výšku (top/bottom) */
.accommodation-tile__media-badges {
	position: absolute;
	top: var(--tile-corner-inset);
	right: var(--tile-corner-inset);
	left: var(--tile-corner-inset);
	z-index: 4;
	pointer-events: none;
}

.accommodation-tile__media-badges:not(.accommodation-tile__media-badges--city-only)::after {
	content: '';
	display: block;
	clear: both;
}

.accommodation-tile__media-badges--city-only {
	display: flex;
	justify-content: flex-end;
}

.accommodation-tile__media-badges .hp-tile-city-badge {
	position: static;
	top: auto;
	right: auto;
	float: right;
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	max-width: min(70%, 11rem);
	padding: var(--tile-city-badge-pad-block) var(--tile-city-badge-pad-inline);
	font-size: var(--tile-city-badge-font-size);
	line-height: var(--tile-city-badge-line-height);
}

.accommodation-tile__media-badges--city-only .hp-tile-city-badge {
	float: none;
}

.accommodation-tile__media-badges .accommodation-tile__bvc-badge {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	display: flex;
	align-items: stretch;
	margin: 0;
	padding: 0;
	overflow: visible;
	background: none;
	box-shadow: none;
}

.accommodation-tile__media-badges .accommodation-tile__bvc-badge-img {
	display: block;
	height: 100%;
	width: auto;
	max-height: 100%;
	object-fit: contain;
	object-position: left bottom;
	filter: drop-shadow(0 2px 6px rgb(0 0 0 / 0.18));
}

.accommodation-tile__media > .hp-tile-picture {
	position: absolute;
	inset: 0;
	z-index: 0;
	display: block;
	overflow: hidden;
	width: 100%;
	height: 100%;
}

.accommodation-tile__media > .hp-tile-picture .hp-tile-photo,
.accommodation-tile__media > .hp-tile-photo {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transform-origin: center bottom;
}

.accommodation-tile__media .hp-tile-photo {
	transform-origin: center bottom;
}

.accommodation-tile__media.hp-category-card::before {
	border-radius: 0;
	bottom: 0;
	z-index: 4;
}

.accommodation-tile:hover .accommodation-tile__media.hp-category-card::before {
	height: 5px;
}

.accommodation-tile:hover .accommodation-tile__media > .hp-tile-picture .hp-tile-photo,
.accommodation-tile:hover .accommodation-tile__media > .hp-tile-photo {
	transform: scale(1.1);
	transform-origin: center bottom;
}

.accommodation-tile__body {
	padding: 0.875rem 1rem 1rem;
	margin-top: -1px;
	border-top: none;
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
}

.accommodation-tile__ideal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 0.5rem;
	font-family: var(--font);
	font-size: 0.875rem;
	line-height: 1.5;
	color: var(--text, #333);
}

.accommodation-tile__ideal-label {
	font-weight: 700;
	color: var(--dark, #222);
	flex-shrink: 0;
}

.accommodation-tile__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}

.accommodation-tile__category-badge {
	font-weight: 600;
	font-size: 0.75rem;
	padding: 0.35em 0.65em;
	border-radius: 0.35rem;
	line-height: 1.2;
	/* Fallback: Bootstrap .badge má bílý text; bez pozadí by zanikl na šedé kartě. */
	background-color: #3d4f5f;
	color: #fff;
}

.accommodation-tile__category-badge--1 {
	background-color: #3d4f5f;
	color: #fff;
}

.accommodation-tile__category-badge--2 {
	background-color: #2f6b2f;
	color: #fff;
}

.accommodation-tile__category-badge--3 {
	background-color: #c45c26;
	color: #fff;
}

.accommodation-tile__category-badge--4 {
	background-color: #5b6b8a;
	color: #fff;
}

.accommodation-tile__category-badge--5 {
	background-color: #c0392b;
	color: #fff;
}

.accommodation-tile__category-badge--6 {
	background-color: #1e7a46;
	color: #fff;
}

.accommodation-tile__icons {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem;
	margin-top: 0.125rem;
}

.accommodation-tile__ideal + .accommodation-tile__icons {
	margin-top: 0.625rem;
}

.accommodation-tile__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	border-radius: 0.35rem;
	background: rgb(47 107 47 / 0.12);
	color: #2f6b2f;
	font-size: 0.9375rem;
	line-height: 1;
	flex-shrink: 0;
}

.accommodation-tile__icon-img {
	display: block;
	width: 1rem;
	height: 1rem;
	object-fit: contain;
}

/* 4 sloupce v gridu ubytování – užší karty, zachovaný layout */
.accommodation-tile-grid .accommodation-tile__media.hp-card-lg {
	height: 240px;
}

.accommodation-tile-grid .accommodation-tile__media .hp-card-label--plain {
	bottom: 0.75rem;
	left: 1rem;
	right: 0.875rem;
	font-size: clamp(1.05rem, 1.35vw, 1.375rem);
	line-height: 1.25;
	gap: 0.2rem;
}

.accommodation-tile-grid .accommodation-tile__media .hp-card-label__text {
	text-shadow: 0 1px 8px rgb(0 0 0 / 0.55);
}

.accommodation-tile__claim {
	display: block;
	min-height: 1.2em;
	max-width: 100%;
	color: #fff;
	font-size: 0.78em;
	font-weight: 700;
	font-style: italic;
	line-height: 1.25;
	letter-spacing: 0.01em;
	text-shadow: 0 1px 8px rgb(0 0 0 / 0.55);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.accommodation-tile-grid .accommodation-tile__body {
	padding: 0.75rem 0.75rem 0.875rem;
	gap: 0.5rem;
}

.accommodation-tile-grid .accommodation-tile__ideal {
	font-size: 0.8125rem;
}

.accommodation-tile-grid .accommodation-tile__category-badge {
	font-size: 0.6875rem;
	padding: 0.3em 0.55em;
}

.accommodation-tile-grid .accommodation-tile__icon {
	width: 1.75rem;
	height: 1.75rem;
}

.accommodation-tile-grid .accommodation-tile__icon-img {
	width: 0.875rem;
	height: 0.875rem;
}

/* Seznam výletů – šedý box pod kachlí (náročnost + metriky) */
.trip-tile__body {
	gap: 0.7rem;
}

.trip-tile__difficulty {
	position: relative;
	background: #f8d6d4;
	background: color-mix(in srgb, var(--red) 14%, #fff);
	border-radius: 4px;
	overflow: hidden;
	min-height: 1.7rem;
}

.trip-tile__difficulty-label {
	position: relative;
	z-index: 2;
	display: block;
	padding: 0.28rem 0.5rem;
	font-weight: 700;
	font-size: 0.75rem;
	line-height: 1.25;
	color: var(--dark);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.trip-tile__difficulty-fill {
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	background: linear-gradient(90deg, #e97a74 0%, var(--red) 100%);
	border-radius: 4px 0 0 4px;
	z-index: 1;
}

.trip-tile__metrics {
	display: flex;
	justify-content: space-around;
	align-items: start;
	gap: 0.35rem 0.25rem;
}

.trip-tile__metric {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 0.2rem;
	min-width: 0;
	flex: 1;
}

.trip-tile__metric-icon {
	color: var(--red);
	font-size: 1.05rem;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 1.15rem;
	width: 1.15rem;
	height: 1.15rem;
}

.trip-tile__metric-icon i {
	font-size: 1.05rem;
	line-height: 1;
	width: 1.05rem;
	height: 1.05rem;
	display: block;
	text-align: center;
}

.trip-tile__metric-icon-svg {
	width: 1.05rem;
	height: 1.05rem;
	display: block;
	overflow: visible;
}

.trip-tile__metric-value {
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--dark);
	line-height: 1.25;
	word-break: break-word;
}

.corporate-events-tile-grid .accommodation-tile__icon {
	width: 1.75rem;
	height: 1.75rem;
	padding: 0.12rem;
	box-sizing: border-box;
}

.corporate-events-tile-grid .accommodation-tile__icon-img {
	width: 100%;
	height: 100%;
}

.accommodation-tile-grid .accommodation-tile__media {
	--tile-city-badge-pad-block: 0.55rem;
	--tile-city-badge-pad-inline: 0.75rem;
	--tile-city-badge-font-size: 0.9375rem;
}

.accommodation-tile-grid .accommodation-tile__media-badges .hp-tile-city-badge {
	max-width: min(70%, 11rem);
}

@media (min-width: 768px) {
	.accommodation-tile__media {
		--tile-city-badge-pad-block: 0.45rem;
		--tile-city-badge-font-size: 0.875rem;
	}

	.accommodation-tile-grid .accommodation-tile__media {
		--tile-city-badge-pad-block: 0.55rem;
		--tile-city-badge-font-size: 0.9375rem;
	}
}

@media (max-width: 991.98px) {
	.accommodation-tile-grid .accommodation-tile__media.hp-card-lg {
		height: 220px;
	}
}

/* Prvních 6 karet – Figma H2: PT Sans Bold 30px / 35px, #fff; ikona nad textem */
.hp-card-label--with-icon {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	bottom: 1.5rem;
	left: 1.5rem;
	font-size: 30px;
	line-height: 35px;
	letter-spacing: 0;
	color: #ffffff;
}

.hp-card-label__icon {
	width: 48px;
	height: 48px;
	flex-shrink: 0;
	display: block;
	object-fit: contain;
}

/* 07.svg – kolo (širší poměr než čtvercové ikony) */
.hp-card-label__icon--wide {
	width: auto;
	height: 48px;
	max-width: 80px;
}

.hp-card-label__text {
	display: block;
}

@media (max-width: 575.98px) {
	.hp-card-label--with-icon {
		font-size: clamp(1.125rem, 5vw, 30px);
		line-height: clamp(1.35rem, 5.8vw, 35px);
	}

	.hp-card-label__icon {
		width: 40px;
		height: 40px;
	}

	.hp-card-label__icon--wide {
		width: auto;
		height: 40px;
		max-width: 68px;
	}
}

/* Homepage „Co dělat“ – sedm kachlí: ikony a titulky −20 % oproti sdílenému .hp-card-label--with-icon */
.hp-what-to-do .hp-card-label--with-icon {
	font-size: 24px;
	line-height: 28px;
	gap: 9.6px;
}

.hp-what-to-do .hp-card-label__icon {
	width: 38px;
	height: 38px;
}

.hp-what-to-do .hp-card-label__icon--wide {
	height: 38px;
	max-width: 64px;
}

@media (max-width: 575.98px) {
	.hp-what-to-do .hp-card-label--with-icon {
		font-size: clamp(0.9rem, 4vw, 24px);
		line-height: clamp(1.08rem, 4.64vw, 28px);
	}

	.hp-what-to-do .hp-card-label__icon {
		width: 32px;
		height: 32px;
	}

	.hp-what-to-do .hp-card-label__icon--wide {
		height: 32px;
		max-width: 54px;
	}
}

/* Seznamy (ubytování, výlety, subjekty, …) – menší titul než Položky menu */
.hp-card-label--plain {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.25rem;
	bottom: 1rem;
	left: 1rem;
	right: 0.875rem;
	font-size: clamp(1.05rem, 1.35vw, 1.375rem);
	line-height: 1.25;
	letter-spacing: 0;
	color: #ffffff;
}

.hp-card-label__subtitle {
	display: block;
	font-size: 0.5em;
	font-weight: 400;
	line-height: 1.35;
	letter-spacing: 0;
	color: rgba(255, 255, 255, 0.93);
	opacity: 0.98;
	max-width: 100%;
	word-break: break-word;
}

/* Pobytové balíčky: název hotelu ve stejném řezu a velikosti jako název balíčku */
.hp-card-label__subtitle:has(strong) {
	font-size: 1em;
	font-weight: 700;
	line-height: inherit;
	letter-spacing: 0;
	color: #ffffff;
	opacity: 1;
}

.hp-card-label__subtitle:has(strong) strong {
	font-size: inherit;
	font-weight: inherit;
}

@media (max-width: 575.98px) {
	.hp-card-label--plain {
		bottom: 1rem;
		left: 1rem;
		right: 0.875rem;
		font-size: clamp(1.05rem, 4.2vw, 1.375rem);
		line-height: 1.25;
	}
}

/* Detail pod neklikovatelnou dlaždicí (infocentrá …) — zarovnání jako dříve card-body text */
.portal-menu-tile-follow a {
	word-break: break-word;
}

/* ==========================================================================
   EVENTS (Nejbližší akce)
   ========================================================================== */

.hp-events {
	background-color: var(--hp-events-bg);
}

/* Ikony nesmí useknout přesah nad/pod tlačítkem */
.hp-section.hp-events {
	overflow: visible;
}

.hp-events .container.position-relative {
	z-index: 1;
}

/* Ikony vpravo – návrh: výraznější, začínají výš, sahají níž pod tlačítko */
.hp-events-bg {
	position: absolute;
	left: calc(var(--bs-gutter-x, 1.5rem) * 0.5);
	right: calc(var(--bs-gutter-x, 1.5rem) * 0.5);
	top: calc(-2.75rem - 130px);
	height: clamp(360px, 46vw, 460px);
	display: flex;
	align-items: center;
	justify-content: flex-end;
	pointer-events: none;
	z-index: 0;
	overflow: visible;
}

.hp-events-icons {
	max-width: min(680px, 72%);
	max-height: 100%;
	width: auto;
	height: auto;
	min-width: 0;
	object-fit: contain;
	object-position: right center;
	display: block;
	flex-shrink: 1;
	opacity: 0.82;
}

/* „KALENDÁŘ AKCÍ“ – červeně (návrh) */
.hp-events-label {
	color: var(--red);
}

/* Vnitřní stránky: PT Sans bold + Bootstrap display-6 (bez pevného 55 px). Sekce akcí na HP – větší nadpis níže v .hp-events … */
.hp-events-title {
	font-family: var(--font);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0;
	color: #333;
	margin-bottom: 0;
}

/* Portal menu – vnitřní stránky: odsazení nadpisu od shora (+20 px) */
.portal-menu-page-heading {
	margin-top: 20px;
}

/* Obsah z administrace (description, perex…): černý text; výsledný scaling vůči bázi ≈ +12 % (po +40 % a −20 %) */
.portal-menu-desc {
	font-family: var(--font);
	font-size: 112%;
	line-height: 1.65;
	color: #000;
}

/* Úvod menu: násobek báze .lead (1,25rem) po úpravě velikosti */
.portal-menu-desc.lead {
	font-weight: 400;
	font-size: calc(1.25rem * 1.12);
}

.portal-menu-desc span {
	color: inherit;
}

.portal-menu-desc strong,
.portal-menu-desc b {
	font-weight: 700;
}

.portal-menu-desc em,
.portal-menu-desc i {
	font-style: italic;
}

.portal-menu-desc ul,
.portal-menu-desc ol {
	margin-top: 0;
	margin-bottom: 0.75rem;
	padding-left: 1.25rem;
}

.portal-menu-desc p {
	margin-bottom: 0.75rem;
}

.portal-menu-desc p:last-child {
	margin-bottom: 0;
}

.portal-menu-desc > ul:last-child,
.portal-menu-desc > ol:last-child,
.portal-menu-desc > *:last-child {
	margin-bottom: 0;
}

.portal-menu-desc a {
	color: var(--red);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.portal-menu-desc img,
.portal-menu-desc figure.image img {
	max-width: 100%;
	height: auto;
}

.portal-menu-desc figure.image {
	margin: 0.75rem 0;
}

.portal-menu-desc-columns > [class*='col-'] {
	min-width: 0;
}

.portal-menu-desc-columns .portal-menu-desc {
	height: 100%;
}

/* Gastromapa – legenda + mapa */
.gastromapa {
	margin-top: -0.25rem;
}

.gastromapa__legend {
	margin-bottom: 1.25rem;
	padding: 0.85rem 1.15rem;
	background-color: #fff8e7;
}

.gastromapa__legend-item {
	display: flex;
	align-items: center;
	font-size: 0.95rem;
	line-height: 1.35;
}

.gastromapa__legend-item--off {
	opacity: 0.45;
}

.gastromapa__legend-icon {
	flex-shrink: 0;
	vertical-align: middle;
}

.gastromapa__map .leaflet-popup-content a.gastromapa__detail-btn,
.gastromapa__map .leaflet-popup-content a.gastromapa__detail-btn:hover,
.gastromapa__map .leaflet-popup-content a.gastromapa__detail-btn:focus {
	color: #fff;
	text-decoration: none;
}

.gastromapa__map {
	width: 100%;
	min-height: clamp(420px, 62vh, 800px);
	border-radius: 0.25rem;
	overflow: hidden;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}

/* Parkování (menu 311) – dlaždice obcí */
.portal-parking-locality-card {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 3.75rem;
	padding: 1rem 1.25rem;
	background: #fff;
	color: #000;
	font-weight: 700;
	font-size: 1rem;
	line-height: 1.35;
	text-align: center;
	text-decoration: none;
	border-radius: 12px;
	box-shadow: 0 4px 14px rgb(28 54 104 / 0.08), 0 1px 2px rgb(31 72 148 / 0.06);
	border: 1px solid rgba(0, 0, 0, 0.06);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.portal-parking-locality-card:hover,
.portal-parking-locality-card:focus-visible {
	color: #000;
	box-shadow: 0 12px 28px rgb(28 54 104 / 0.12), 0 2px 6px rgb(31 72 148 / 0.08);
	transform: translateY(-2px);
}

/* Seznam výletů – řádek s náhledem vlevo (ne karta) */
.trip-list__item {
	border-bottom: 1px solid #e8e8e8;
	padding-top: 1.25rem;
	padding-bottom: 1.25rem;
	margin-bottom: 0;
}

.trip-list__item:first-child {
	padding-top: 0;
}

.trip-list__item:last-child {
	border-bottom: none;
}

.trip-list__media-link {
	position: relative;
	display: inline-block;
	width: 260px;
	max-width: 100%;
	aspect-ratio: 260 / 146;
	overflow: hidden;
	vertical-align: top;
}

.trip-list__media-link .hp-tile-media {
	position: absolute;
	inset: 0;
}

.trip-list__media-link .hp-tile-picture {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: block;
}

.trip-list__media-link .hp-tile-picture .hp-tile-photo,
.trip-list__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.trip-list__title {
	font-family: 'PT Sans', var(--font), sans-serif;
	font-weight: 200;
	font-size: calc(1.5rem * 1.2);
	line-height: 1.35;
	color: #000000;
	margin-bottom: 0.375rem !important;
}

@media (max-width: 575.98px) {
	.trip-list__title {
		font-size: calc(1.25rem * 1.2);
	}
}

.trip-list__title-link,
.trip-list__title-static {
	color: inherit;
	font-weight: inherit;
}

.trip-list__title-link {
	text-decoration: none;
	transition: opacity 0.15s ease;
}

.trip-list__title-link:hover,
.trip-list__title-link:focus-visible {
	color: #000000;
	opacity: 0.72;
	text-decoration: underline;
	text-decoration-thickness: 1px;
}

.trip-list__perex.portal-menu-desc {
	font-size: calc(0.9375rem * 1.12);
	line-height: 1.55;
	color: #000;
}

/* Kalendář akcí – jednotný filtr (Dnes/Zítra/Pozítří + oblast + datum) */
.action-calendar-filter__top-row {
	display: grid;
	grid-template-columns: max-content max-content;
	grid-template-areas:
		"locality-label ."
		"locality-select quick-tabs";
	column-gap: 0.75rem;
	row-gap: 0.25rem;
	align-items: end;
	justify-content: start;
	margin: 0 0 1.25rem;
}

.action-calendar-filter__locality-label {
	grid-area: locality-label;
}

.action-calendar-filter__locality-select {
	grid-area: locality-select;
	justify-self: start;
	width: auto;
	min-width: 11rem;
	max-width: min(100%, 52ch);
	height: 36.8px;
	min-height: 36.8px;
	padding-top: 0.375rem;
	padding-bottom: 0.375rem;
	line-height: 1.25;
	field-sizing: content;
}

.action-calendar-filter__top-row .action-calendar-filter__quick-tabs {
	grid-area: quick-tabs;
	justify-content: flex-start;
	justify-self: start;
	width: auto;
	margin: 0;
}

@media (max-width: 575.98px) {
	.action-calendar-filter__top-row {
		grid-template-columns: 1fr;
		grid-template-areas:
			"locality-label"
			"locality-select"
			"quick-tabs";
	}

	.action-calendar-filter__locality-select {
		max-width: 100%;
	}

	.action-calendar-filter__quick-tabs {
		justify-content: flex-start;
		justify-self: start;
	}
}

.action-calendar-quick-tabs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	gap: 0.5rem;
	border-bottom: 0;
	padding: 0;
	margin: 0 0 1.25rem;
}

.action-calendar-filter__top-row .action-calendar-quick-tabs {
	margin: 0;
}

.action-calendar-quick-tabs .nav-item {
	flex: 0 0 auto;
}

/* Off: peach pozadí (jako jazykový pill), stejný rozměr/tvar jako aktivní CTA */
.action-calendar-quick-tabs .nav-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	background-color: var(--nav-peach);
	color: var(--dark);
	border-radius: 50px;
	padding: 0 1.2rem;
	min-height: 36.8px;
	height: 36.8px;
	box-sizing: border-box;
	font-weight: 700;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.action-calendar-quick-tabs .nav-link:hover {
	background-color: var(--nav-peach);
	color: var(--red);
}

.action-calendar-quick-tabs .nav-link.nav-link-cta {
	background-color: #da251d !important;
	color: var(--white) !important;
}

.action-calendar-quick-tabs .nav-link.nav-link-cta:hover {
	background-color: var(--red-dark) !important;
	color: var(--white) !important;
}

.action-calendar-quick-tabs__beer {
	flex: 0 1 auto;
	max-width: 100%;
}

.action-calendar-quick-tabs__beer-control {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	gap: 0.45rem 0.55rem;
	min-height: 36.8px;
	padding: 0.15rem 0;
}

.action-calendar-quick-tabs__beer-label {
	font-weight: 700;
	font-size: 0.875rem;
	line-height: 1.25;
	color: var(--dark);
	cursor: pointer;
	user-select: none;
}

.action-calendar-quick-tabs__beer-switch .form-check-input {
	margin-top: 0;
	flex-shrink: 0;
}

.action-calendar-list {
	margin-top: 0;
}

.action-calendar-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.5rem;
}

.action-calendar-grid__item {
	min-width: 0;
}

@media (max-width: 991.98px) {
	.action-calendar-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 575.98px) {
	.action-calendar-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

.action-calendar-list__day-row {
	margin-top: 1.75rem;
	margin-bottom: 0.25rem;
}

.action-calendar-list__day-row:first-child {
	margin-top: 0;
}

.hp-event-date--section {
	position: static;
	display: inline-block;
}

.hp-event-date-range {
	font-family: var(--font);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	color: #000;
	margin: 0 0 0.75rem;
}

.hp-event-img .hp-tile-media {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.hp-event-img .hp-tile-media .hp-tile-photo {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	transition: opacity 0.35s ease;
}

.hp-event-img .hp-tile-media.is-loaded .hp-tile-photo {
	opacity: 1;
}

/* Kalendář akcí – rychlé dny (stejný vzhled jako menu .nav-link-cta) */
.action-detail__date {
	font-family: var(--font);
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.25;
	color: #2f6b2f;
}

.action-detail__locality-badge {
	display: inline-block;
	padding: 0.45rem 1rem;
	border-radius: 0.25rem;
	background: #2f6b2f;
	color: #fff;
	font-family: var(--font);
	font-size: 0.9375rem;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
}

.action-detail__photo-img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	border-radius: 0.25rem;
	box-shadow: 0 2px 12px rgb(0 0 0 / 0.08);
}

.action-detail__photo-img--placeholder {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	height: auto;
}

.action-detail__meta {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.action-detail__row {
	display: grid;
	grid-template-columns: 2.5rem 1fr;
	gap: 0.75rem 1rem;
	align-items: start;
}

.action-detail__row-icon {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding-top: 0.15rem;
	color: var(--red);
	font-size: 1.35rem;
	line-height: 1;
}

.action-detail__row-text {
	font-family: var(--font);
	font-size: 1rem;
	line-height: 1.6;
	color: var(--text);
}

.action-detail__row-text a {
	color: var(--red);
	text-decoration: underline;
}

.action-detail__row-text a:hover,
.action-detail__row-text a:focus-visible {
	color: var(--red-dark);
}

.action-detail__description {
	font-family: var(--font);
	font-size: 1rem;
	line-height: 1.65;
	color: var(--text);
}

.action-detail__description p:last-child {
	margin-bottom: 0;
}

.action-detail__map-wrap .facility-detail__map,
.action-detail__map-wrap .route-detail__map {
	min-height: 300px;
	border-radius: 0.25rem;
	overflow: hidden;
}

.action-detail__gallery-title {
	color: #2f6b2f;
}

.action-detail__gallery .route-detail-gallery-aside__link {
	border-radius: 0.25rem;
	box-shadow: 0 2px 12px rgb(0 0 0 / 0.08);
}

.action-detail__gallery .route-detail-gallery-aside__img {
	aspect-ratio: auto;
	height: auto;
	object-fit: contain;
}

/* Tlačítko filtrování výletů — firemní červená */
.btn-trip-filter {
	--bs-btn-color: #fff;
	--bs-btn-bg: var(--red);
	--bs-btn-border-color: var(--red);
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: var(--red-dark);
	--bs-btn-hover-border-color: var(--red-dark);
	--bs-btn-focus-shadow-rgb: 218, 37, 29;
	--bs-btn-active-color: #fff;
	--bs-btn-active-bg: var(--red-dark);
	--bs-btn-active-border-color: var(--red-dark);
	--bs-btn-disabled-color: #fff;
	--bs-btn-disabled-bg: var(--red);
	--bs-btn-disabled-border-color: var(--red);
	border-radius: 999px;
	font-weight: 700;
	text-transform: none;
}

/* Prázdný výsledek filtru výletů — pozadí jako výběr jazyka (seashell #FFF5EE) */
.alert-trip-filter-empty.alert-warning {
	--bs-alert-bg: #fff5ee;
	--bs-alert-border-color: rgb(237 217 207 / 0.9);
	--bs-alert-color: #333333;
	--bs-alert-link-color: var(--red);
}

/* GET stránkování (předchozí / N z M / další + volitelný souhrn) */
.portal-url-pagination {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
}

.portal-url-pagination__summary {
	width: 100%;
	max-width: 42rem;
	margin-left: auto;
	margin-right: auto;
}

.portal-url-pagination__summary strong {
	font-weight: 700;
	color: inherit;
}

.portal-url-pagination__inner {
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	column-gap: 0.5rem;
	width: min(640px, 100%);
	min-height: 2.625rem;
	border: 1px solid #cfd2d8;
	border-radius: 10px;
	background: #fdfdfd;
	padding: 4px;
	box-sizing: border-box;
	font-family: var(--font);
	font-size: 0.9375rem;
}

.portal-url-pagination__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.375rem 0.75rem;
	text-decoration: none;
	flex: 0 0 auto;
	white-space: nowrap;
}

.portal-url-pagination__link--disabled {
	opacity: 0.45;
	pointer-events: none;
	cursor: default;
	text-decoration: none;
}

.portal-url-pagination__link--prev {
	justify-content: flex-start;
	color: #8a9199;
	padding-left: 0.875rem;
}

.portal-url-pagination__link--prev:not(.portal-url-pagination__link--disabled):hover {
	color: #595f65;
	text-decoration: underline;
}

.portal-url-pagination__pages {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 1 1 auto;
	flex-wrap: wrap;
	gap: 0.2rem;
	min-width: 0;
}

.portal-url-pagination__page {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.125rem;
	height: 2.125rem;
	padding: 0 0.4rem;
	border-radius: 6px;
	color: #595f65;
	font-weight: 500;
	text-decoration: none;
	line-height: 1;
}

.portal-url-pagination__page:hover {
	color: var(--red);
	background-color: rgba(196, 30, 58, 0.06);
	text-decoration: none;
}

.portal-url-pagination__page--current {
	background-color: var(--red);
	color: #ffffff;
	font-weight: 700;
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
	pointer-events: none;
}

.portal-url-pagination__ellipsis {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.5rem;
	height: 2.125rem;
	color: #8a9199;
	letter-spacing: 0.08em;
	user-select: none;
}

.portal-url-pagination__link--next {
	justify-content: flex-end;
	padding-right: 0.875rem;
	color: var(--red);
	font-weight: 500;
}

.portal-url-pagination__link--next:not(.portal-url-pagination__link--disabled):hover {
	color: var(--red-dark);
	text-decoration: underline;
}

@media (max-width: 575.98px) {
	.portal-url-pagination__inner {
		column-gap: 0.25rem;
		font-size: 0.8125rem;
	}

	.portal-url-pagination__link--prev,
	.portal-url-pagination__link--next {
		padding-left: 0.5rem;
		padding-right: 0.5rem;
	}

	.portal-url-pagination__page {
		min-width: 1.75rem;
		height: 1.875rem;
		padding: 0 0.25rem;
	}

	.portal-url-pagination__ellipsis {
		min-width: 1rem;
		height: 1.875rem;
	}
}

/* Tlačítko „Všechny akce“ – Figma: PT Sans Bold 14/20, tracking 2,5px; návrh: větší padding, delší šipka, plné pozadí bloku */
.hp-events-all {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.65rem;
	min-width: 15.5rem;
	font-family: var(--font);
	font-size: 14px;
	font-weight: 700;
	line-height: 20px;
	letter-spacing: 2.5px;
	color: #1d1d1b;
	text-decoration: none;
	text-transform: uppercase;
	padding: 0.95rem 2.25rem 0.7rem 2.5rem;
	border: 1px solid var(--nav-border-soft);
	border-radius: 999px;
	background-color: var(--hp-events-bg);
	transform: translateY(25px);
	transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}

.hp-events-all:hover {
	color: #fff;
	border-color: var(--red);
	background-color: var(--red);
}

.hp-events-all__arrow {
	flex-shrink: 0;
	display: block;
}

/* Otevřený chevron; špička (20,6) = konec hřídele */
.hp-events-all__arrow-shaft,
.hp-events-all__arrow-head {
	transition: d 0.3s ease;
}

.hp-events-all:hover .hp-events-all__arrow-shaft,
.hp-events-all:focus-visible .hp-events-all__arrow-shaft {
	d: path("M0 6H30");
}

.hp-events-all:hover .hp-events-all__arrow-head,
.hp-events-all:focus-visible .hp-events-all__arrow-head {
	d: path("M24 0L30 6L24 12");
}

.hp-events-header {
	position: relative;
	z-index: 2;
	/* mb-5 + 60px – spodní řádek ikon nad kartami akcí */
	margin-bottom: calc(3rem + 60px) !important;
}

/* Nejbližší akce (HP): větší nadpis než na vnitřních stránkách menu, stejný PT Sans bold */
.hp-events .hp-events-title {
	font-size: 55px;
	line-height: 45px;
}

@media (max-width: 991.98px) {
	.hp-events .hp-events-title {
		font-size: 44px;
		line-height: 38px;
	}
}

@media (max-width: 767.98px) {
	.hp-events .hp-events-title {
		font-size: 38px;
		line-height: 32px;
	}
}

@media (max-width: 575.98px) {
	.hp-events .hp-events-title {
		font-size: 32px;
		line-height: 28px;
	}
}

.hp-event-card {
	background: var(--white);
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 2px 12px rgba(0,0,0,0.06);
	transition: transform 0.3s, box-shadow 0.3s;
	height: 100%;
}

.hp-event-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 8px 24px rgba(0,0,0,0.1);
}

.hp-event-img {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
}

.hp-event-img__link {
	display: block;
	width: 100%;
	height: 100%;
	position: relative;
}

.hp-event-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.hp-event-img .hp-tile-picture {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: block;
}

.hp-event-img .hp-tile-picture .hp-tile-photo {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.hp-event-img img.hp-event-img__placeholder {
	object-fit: cover;
}

.hp-event-date {
	position: absolute;
	top: 0.75rem;
	left: 0.75rem;
	z-index: 2;
	background-color: var(--red);
	color: #fff;
	border-radius: 8px;
	padding: 0.5rem 0.75rem;
	text-align: center;
	min-width: 3.25rem;
	font-family: var(--font);
}

.hp-event-day {
	display: block;
	font-family: var(--font);
	font-size: 30px;
	font-weight: 700;
	line-height: 35px;
	letter-spacing: 0;
	color: #fff;
}

.hp-event-month {
	display: block;
	margin-top: 0;
	font-family: var(--font);
	font-size: 12px;
	font-weight: 400;
	line-height: 14px;
	letter-spacing: 1.2px;
	color: #fff;
	text-transform: uppercase;
}

.hp-event-body {
	padding: 1.5rem 1.5rem 1.75rem;
	font-family: var(--font);
}

.hp-event-category {
	display: inline-block;
	font-family: var(--font);
	font-size: 14px;
	font-weight: 700;
	line-height: 20px;
	letter-spacing: 2.5px;
	padding: 0.25rem 0.65rem;
	background: #2f6b2f;
	color: #fff;
	text-transform: uppercase;
	border-radius: 0.25rem;
	margin-bottom: 0.75rem;
}

.hp-event-title {
	font-family: var(--font);
	font-size: 18px;
	font-weight: 700;
	line-height: 24px;
	letter-spacing: 0;
	color: var(--red);
	margin: 0 0 0.75rem;
}

.hp-event-title__link {
	color: inherit;
	text-decoration: none;
}

.hp-event-title__link:hover,
.hp-event-title__link:focus-visible {
	color: var(--red-dark);
}

.hp-event-text {
	font-family: var(--font);
	font-size: 16px;
	font-weight: 400;
	line-height: 28px;
	letter-spacing: 0;
	color: #777;
	margin: 0;
}

/* Grid aktualit / pobytových balíčků – perex max. 5 řádků */
.portal-article-cards-grid .hp-event-text,
.portal-package-cards-grid .hp-event-text {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 5;
	overflow: hidden;
}

/* ==========================================================================
   404 – stránka nenalezena
   ========================================================================== */

.hp-not-found {
	margin-top: var(--portal-nav-height);
	padding: clamp(4rem, 14vh, 7rem) 0 clamp(4.5rem, 12vh, 6.5rem);
	background-color: var(--bg);
	min-height: calc(100vh - var(--portal-nav-height) - 12rem);
	display: flex;
	align-items: center;
}

.hp-not-found > .container {
	width: 100%;
}

.hp-not-found__inner {
	max-width: 40rem;
	margin: 0 auto;
}

.hp-not-found__code {
	margin: 0 0 0.75rem;
	font-family: var(--font);
	font-size: clamp(4.5rem, 14vw, 7.5rem);
	font-weight: 700;
	line-height: 1;
	color: var(--red);
	letter-spacing: -0.02em;
}

.hp-not-found__title {
	margin: 0 0 1.25rem;
	font-size: clamp(2rem, 5vw, 2.75rem);
	line-height: 1.15;
	color: var(--dark);
}

.hp-not-found__lead {
	margin: 0 auto 2rem;
	max-width: 34rem;
	font-size: 1.05rem;
	line-height: 1.65;
	color: var(--text);
}

.hp-not-found a.hp-not-found__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 0.25rem;
	padding: 0.75rem 1.75rem;
	font-family: var(--font);
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	color: #fff;
	background-color: var(--red);
	border: 1px solid var(--red);
	border-radius: 999px;
	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		color 0.2s ease;
}

.hp-not-found a.hp-not-found__btn:hover,
.hp-not-found a.hp-not-found__btn:focus-visible {
	color: #fff;
	background-color: var(--red-dark);
	border-color: var(--red-dark);
}

.hp-not-found a.hp-not-found__btn:focus-visible {
	outline: 2px solid var(--red);
	outline-offset: 3px;
}

.hp-not-found__btn-arrow {
	font-size: 1.1rem;
	line-height: 1;
}

/* ==========================================================================
   REGION (Turistická oblast) — dvousloupec dle návrhu: text + mapa.svg
   ========================================================================== */

.hp-section.hp-region {
	overflow: visible;
}

.hp-region {
	padding: 5rem 0;
	background-color: var(--bg);
	color: var(--dark);
}

.hp-region-copy {
	background-color: #fff;
	border-radius: 12px;
	padding: 2.5rem 2.25rem 2.25rem;
	box-shadow: 0 2px 16px rgba(0, 0, 0, 0.04);
	height: 100%;
	display: flex;
	flex-direction: column;
}

.hp-region-label {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 0.75rem;
	font-family: var(--font);
	font-size: 14px;
	font-weight: 700;
	line-height: 20px;
	letter-spacing: 2.5px;
	color: #da251d;
	text-transform: uppercase;
}

.hp-region-title {
	font-family: var(--font);
	font-size: 56px;
	font-weight: 700;
	line-height: 56px;
	letter-spacing: 0;
	color: #333;
	margin: 0 0 1.25rem;
}

.hp-region-text {
	font-family: var(--font);
	font-size: 16px;
	font-weight: 400;
	line-height: 28px;
	letter-spacing: 0;
	color: #777;
	margin: 0;
	max-width: 36em;
}

.hp-region-stats {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 2rem 2.5rem;
	margin-top: 2.25rem;
	padding-top: 0;
}

.hp-region-stat {
	text-align: left;
	min-width: 0;
}

.hp-region .hp-stat-number {
	display: block;
	font-family: var(--font);
	font-size: clamp(28px, 4.5vw, 38px);
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: 0;
	color: #da251d;
	margin-bottom: 0.4rem;
	white-space: nowrap;
}

.hp-region .hp-stat-label {
	display: block;
	font-family: var(--font);
	font-size: 14px;
	font-weight: 700;
	line-height: 20px;
	letter-spacing: 2.5px;
	color: #777;
	text-transform: uppercase;
}

.hp-region-map-wrap {
	background-color: #e8e6dc;
	border-radius: 12px;
	min-height: 320px;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2rem 1.5rem;
}

.hp-region-map {
	width: 100%;
	max-width: 520px;
	height: auto;
	display: block;
}

/* Slovní skladba mapy HP: díly z assets/images/mapa-hp/off|on pozicovány jako masky v mapa.svg (629×585) */
.hp-region-interactive-map {
	width: 100%;
	max-width: 520px;
	margin: 0 auto;
}

.hp-region-interactive-map__inner {
	position: relative;
	width: 100%;
	aspect-ratio: 629 / 585;
	overflow: visible;
}

.hp-region-interactive-map__visual,
.hp-region-interactive-map__hits {
	position: absolute;
	inset: 0;
}

.hp-region-interactive-map__visual .hp-region-interactive-map__layer {
	pointer-events: none;
}

.hp-region-interactive-map__hits {
	z-index: 40;
}

.hp-region-interactive-map__layer {
	position: absolute;
	box-sizing: border-box;
}

.hp-region-interactive-map__layer--hit {
	cursor: pointer;
	outline-offset: 2px;
}

a.hp-region-interactive-map__layer--hit {
	text-decoration: none;
	color: inherit;
}

.hp-region-interactive-map__layer--hit:focus {
	outline: none;
}

.hp-region-interactive-map__layer--hit:focus-visible {
	z-index: 50;
	box-shadow: 0 0 0 3px rgba(218, 37, 29, 0.45);
	border-radius: 2px;
}

.hp-region-interactive-map__slice {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	object-fit: fill;
	object-position: 0 0;
	display: block;
	pointer-events: none;
}

.hp-region-interactive-map__slice--hover {
	opacity: 0;
	transition: opacity 0.2s ease-out;
}

.hp-region-interactive-map__layer--z1 {
	left: 35.454%;
	top: 4.786%;
	width: 47.854%;
	height: 56.068%;
	z-index: 10;
}

.hp-region-interactive-map__layer--z2 {
	left: 55.485%;
	top: 38.291%;
	width: 34.499%;
	height: 55.556%;
	z-index: 12;
}

.hp-region-interactive-map__layer--z3 {
	left: 65.66%;
	top: 29.06%;
	width: 33.546%;
	height: 41.88%;
	z-index: 14;
}

.hp-region-interactive-map__layer--z4 {
	left: -0.318%;
	top: 46.202%;
	width: 38.315%;
	height: 27.18%;
	z-index: 18;
}

.hp-region-interactive-map__layer--z5 {
	left: 30.752%;
	top: 51.774%;
	width: 29.251%;
	height: 24.615%;
	z-index: 30;
}

.hp-region-interactive-map__layer--z6 {
	left: 29.569%;
	top: 38.29%;
	width: 23.212%;
	height: 21.539%;
	z-index: 34;
}

.hp-region-interactive-map__hits .hp-region-interactive-map__layer--z1 {
	clip-path: url(#hp-map-clip-28);
}

.hp-region-interactive-map__hits .hp-region-interactive-map__layer--z2 {
	clip-path: url(#hp-map-clip-27);
}

.hp-region-interactive-map__hits .hp-region-interactive-map__layer--z3 {
	clip-path: url(#hp-map-clip-22);
}

.hp-region-interactive-map__hits .hp-region-interactive-map__layer--z4 {
	clip-path: url(#hp-map-clip-25);
}

.hp-region-interactive-map__hits .hp-region-interactive-map__layer--z5 {
	clip-path: url(#hp-map-clip-26);
}

.hp-region-interactive-map__hits .hp-region-interactive-map__layer--z6 {
	clip-path: url(#hp-map-clip-24);
}

@media (hover: hover) and (pointer: fine) {
	.hp-region-interactive-map__inner:has(.hp-region-interactive-map__hits .hp-region-interactive-map__layer--z1:hover) .hp-region-interactive-map__visual .hp-region-interactive-map__layer--z1 .hp-region-interactive-map__slice--hover,
	.hp-region-interactive-map__inner:has(.hp-region-interactive-map__hits .hp-region-interactive-map__layer--z1:focus-visible) .hp-region-interactive-map__visual .hp-region-interactive-map__layer--z1 .hp-region-interactive-map__slice--hover,
	.hp-region-interactive-map__inner:has(.hp-region-interactive-map__hits .hp-region-interactive-map__layer--z2:hover) .hp-region-interactive-map__visual .hp-region-interactive-map__layer--z2 .hp-region-interactive-map__slice--hover,
	.hp-region-interactive-map__inner:has(.hp-region-interactive-map__hits .hp-region-interactive-map__layer--z2:focus-visible) .hp-region-interactive-map__visual .hp-region-interactive-map__layer--z2 .hp-region-interactive-map__slice--hover,
	.hp-region-interactive-map__inner:has(.hp-region-interactive-map__hits .hp-region-interactive-map__layer--z3:hover) .hp-region-interactive-map__visual .hp-region-interactive-map__layer--z3 .hp-region-interactive-map__slice--hover,
	.hp-region-interactive-map__inner:has(.hp-region-interactive-map__hits .hp-region-interactive-map__layer--z3:focus-visible) .hp-region-interactive-map__visual .hp-region-interactive-map__layer--z3 .hp-region-interactive-map__slice--hover,
	.hp-region-interactive-map__inner:has(.hp-region-interactive-map__hits .hp-region-interactive-map__layer--z4:hover) .hp-region-interactive-map__visual .hp-region-interactive-map__layer--z4 .hp-region-interactive-map__slice--hover,
	.hp-region-interactive-map__inner:has(.hp-region-interactive-map__hits .hp-region-interactive-map__layer--z4:focus-visible) .hp-region-interactive-map__visual .hp-region-interactive-map__layer--z4 .hp-region-interactive-map__slice--hover,
	.hp-region-interactive-map__inner:has(.hp-region-interactive-map__hits .hp-region-interactive-map__layer--z5:hover) .hp-region-interactive-map__visual .hp-region-interactive-map__layer--z5 .hp-region-interactive-map__slice--hover,
	.hp-region-interactive-map__inner:has(.hp-region-interactive-map__hits .hp-region-interactive-map__layer--z5:focus-visible) .hp-region-interactive-map__visual .hp-region-interactive-map__layer--z5 .hp-region-interactive-map__slice--hover,
	.hp-region-interactive-map__inner:has(.hp-region-interactive-map__hits .hp-region-interactive-map__layer--z6:hover) .hp-region-interactive-map__visual .hp-region-interactive-map__layer--z6 .hp-region-interactive-map__slice--hover,
	.hp-region-interactive-map__inner:has(.hp-region-interactive-map__hits .hp-region-interactive-map__layer--z6:focus-visible) .hp-region-interactive-map__visual .hp-region-interactive-map__layer--z6 .hp-region-interactive-map__slice--hover {
		opacity: 1;
	}
}

/* ==========================================================================
   FOOTER
   ========================================================================== */

.hp-footer {
	background-color: #1A1A1A;
	color: #fff;
}

.hp-footer .container > .row > .col-lg-7 {
	container-type: inline-size;
}

.footer-nav-wrap {
	position: relative;
	z-index: 0;
	padding-left: 0.25rem;
	min-height: clamp(13.5rem, 41.5vw, 22.5rem);
	overflow: visible;
}

@supports (min-height: calc(100cqw * 1px)) {
	.footer-nav-wrap {
		min-height: calc(100cqw * 324 / 616 * 0.8);
	}
}

.footer-nav-wrap::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: calc(100% + 2.5rem);
	height: 100%;
	z-index: 0;
	background-image: url("../images/foot.svg");
	background-repeat: no-repeat;
	background-position: 120px top;
	background-size: 80% auto;
	pointer-events: none;
}

.footer-nav-wrap .row {
	position: relative;
	z-index: 1;
}

.footer-heading {
	font-family: var(--font);
	font-size: 12px;
	font-weight: 700;
	line-height: 17.6px;
	letter-spacing: 2.75px;
	text-transform: uppercase;
	color: #fff;
	margin: 0 0 1rem;
	padding: 0;
	border-bottom: none;
	position: relative;
}

.footer-heading::after {
	content: "";
	display: block;
	width: 2.25rem;
	height: 2px;
	margin-top: 0.5rem;
	background-color: var(--red);
}

.footer-links {
	list-style: none;
	padding: 0;
	margin: 0;
}

.footer-links li {
	margin-bottom: 0.45rem;
}

.footer-links li:last-child {
	margin-bottom: 0;
}

.footer-links a {
	font-family: var(--font);
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
	letter-spacing: 0;
	color: rgba(255, 255, 255, 0.8);
	text-decoration: none;
	transition: color 0.2s ease;
}

.footer-links a:hover {
	color: #fff;
}

.footer-brand {
	max-width: 26rem;
}

.footer-logo {
	height: 52px;
	width: auto;
	filter: brightness(0) invert(1);
	display: block;
}

.footer-intro {
	font-family: var(--font);
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
	letter-spacing: 0;
	color: rgba(255, 255, 255, 0.8);
	margin: 0 0 1.5rem;
}

.footer-socials {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.65rem;
	margin-bottom: 1.75rem;
}

.footer-social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background-color: #2a2a2a;
	border: 1px solid rgba(255, 255, 255, 0.18);
	color: #fff;
	text-decoration: none;
	font-size: 0.8rem;
	line-height: 1;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.footer-social-link:hover {
	background-color: #333;
	border-color: rgba(255, 255, 255, 0.28);
	color: #fff;
}

.footer-newsletter {
	margin: 0;
}

.footer-newsletter-lead {
	font-family: var(--font);
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
	letter-spacing: 0;
	color: rgba(255, 255, 255, 0.8);
	margin: 0 0 0.75rem;
}

.footer-newsletter-pill {
	display: flex;
	align-items: stretch;
	width: 100%;
	max-width: min(22rem, 100%);
	border-radius: 999px;
	overflow: hidden;
	background-color: #2a2a2a;
}

.footer-newsletter-input {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
	padding: 0.7rem 1rem 0.65rem;
	font-family: var(--font);
	font-size: 12px;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0;
	color: rgba(255, 255, 255, 0.8);
	background-color: #2a2a2a;
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-right: none;
	border-radius: 999px 0 0 999px;
	outline: none;
	box-shadow: none;
}

.footer-newsletter-input::placeholder {
	color: rgba(255, 255, 255, 0.8);
}

.footer-newsletter-input:focus {
	outline: none;
	border-color: rgba(255, 255, 255, 0.35);
	background-color: #323232;
	color: #fff;
}

.footer-newsletter-btn {
	flex: 0 0 auto;
	margin: 0;
	padding: 0.65rem 1.35rem;
	font-family: var(--font);
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 1.65px;
	text-transform: uppercase;
	color: #fff;
	background-color: var(--red);
	border: none;
	border-radius: 0 999px 999px 0;
	cursor: pointer;
	white-space: nowrap;
	transition: background-color 0.2s ease;
}

.footer-newsletter-btn:hover {
	background-color: var(--red-dark);
	color: #fff;
}

.footer-bvc-app-login {
	margin-top: 1rem;
	max-width: min(22rem, 100%);
}

.footer-bvc-app-login__link {
	font-family: var(--font);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.35;
	color: rgba(255, 255, 255, 0.88);
	text-decoration: underline;
	text-underline-offset: 0.2em;
	transition: color 0.2s ease;
}

.footer-bvc-app-login__link:hover,
.footer-bvc-app-login__link:focus-visible {
	color: #fff;
}

.footer-text {
	font-size: 0.82rem;
	color: #888;
	margin-bottom: 0;
}

.footer-partners {
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
	padding: 2.75rem 0 2.5rem;
}

.footer-partners-heading {
	font-family: var(--font);
	font-size: 12px;
	font-weight: 700;
	line-height: 17.6px;
	letter-spacing: 2.75px;
	text-transform: uppercase;
	color: #fff;
	text-align: center;
	margin: 0 0 2.25rem;
}

.footer-partners-logos {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 2rem 3rem;
	width: 100%;
}

/* Bázově +30 %, navíc +20 %: 52×1.3×1.2, 240×1.3×1.2 */
.partner-logo {
	display: block;
	height: auto;
	width: auto;
	min-width: 0;
	min-height: 0;
	max-height: 81.12px;
	max-width: 374.4px;
	object-fit: contain;
	filter: brightness(0) invert(1);
	opacity: 1;
	transition: opacity 0.25s ease;
}

.partner-logo:hover {
	opacity: 0.85;
}

/* Širší soubory (Severní Morava, Kudyznudy); o 30 % menší než původní strop */
.partner-logo--footer-scale {
	max-height: 56.784px;
	max-width: 154px;
}

/* 64×1.3×1.2 */
.partner-logo--tall {
	max-height: 99.84px;
}

@media (min-width: 1200px) {
	.footer-partners-logos {
		flex-wrap: nowrap;
		justify-content: space-between;
		gap: 0;
	}
}

.footer-copyright-bar {
	padding: 1.75rem 1rem 2rem;
	text-align: center;
}

.footer-copyright {
	font-family: var(--font);
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
	letter-spacing: 0;
	color: rgba(255, 255, 255, 0.8);
	margin: 0;
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */

@media (max-width: 1199.98px) {
	.hp-hero-title {
		font-size: 80px;
		line-height: 64px;
	}
}

@media (max-width: 991.98px) {
	.hp-hero-bg {
		min-height: 460px;
		height: min(78vh, 620px);
		padding-top: clamp(4.5rem, 10vh, 6rem);
	}

	.hp-hero-title {
		font-size: 64px;
		line-height: 52px;
	}

	.hp-section-title {
		font-size: 2.2rem;
	}

	.hp-card-lg {
		height: 220px;
	}

	.hp-region-title {
		font-size: 44px;
		line-height: 48px;
	}

	.hp-region .hp-stat-number {
		font-size: 32px;
		line-height: 30px;
	}
}

@media (max-width: 767.98px) {
	.hp-hero-bg {
		min-height: 380px;
		height: min(72vh, 520px);
		padding-top: clamp(4rem, 11vh, 5.5rem);
		padding-bottom: 2.5rem;
	}

	.hp-hero-title {
		font-size: 48px;
		line-height: 40px;
	}

	.hp-hero-text {
		font-size: 16px;
		line-height: 24px;
	}

	.hp-section {
		padding: 3rem 0;
	}

	.hp-section-title {
		font-size: 2rem;
	}

	.hp-card-lg,
	.hp-card-md {
		height: 180px;
	}

	.hp-card-wide {
		height: 150px;
	}

	.hp-region {
		padding: 3.5rem 0;
	}

	.hp-region-copy {
		padding: 1.75rem 1.25rem 1.5rem;
	}

	.hp-region-title {
		font-size: 36px;
		line-height: 40px;
	}

	.hp-region-stats {
		gap: 1.5rem 1.25rem;
		margin-top: 1.75rem;
	}

	.hp-region .hp-stat-number {
		font-size: 28px;
	}
}

@media (max-width: 575.98px) {
	.hp-region-stats {
		grid-template-columns: 1fr;
	}

	.hp-region .hp-stat-number {
		white-space: normal;
	}

	.hp-hero-bg {
		min-height: 340px;
		height: min(68vh, 480px);
		padding-top: 3.75rem;
	}

	.hp-hero-title {
		font-size: 36px;
		line-height: 30px;
	}

	.hp-section-title {
		font-size: 1.7rem;
	}

	.hp-card-lg,
	.hp-card-md {
		height: 160px;
	}

	.btn.hp-hero-btn {
		padding: calc(0.5rem + 5px) 1.35rem;
		font-size: 13px;
		letter-spacing: 2px;
	}
}

/* Detail obce (portal_localities.url → veřejná šablona) */
.locality-detail--spacing {
	margin-top: 4.5rem;
	padding-top: 2rem !important;
}

@media (max-width: 991.98px) {
	.locality-detail--spacing {
		margin-top: 4rem;
		padding-top: 1rem !important;
	}
}

.locality-detail__hero-wrapper--square {
	max-width: none;
	margin-left: 0;
	margin-right: 0;
	height: 100%;
}

.locality-detail__main-photo {
	position: relative;
	width: 100%;
	height: 100%;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: 12px;
	margin: 0;
}

.locality-detail__main-photo-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.locality-detail__main-photo .locality-detail__banner,
.locality-detail__photo-carousel-wrap--ic-banner .locality-detail__banner {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 4;
	border-radius: 0 0 12px 12px;
}

.locality-detail__photo-carousel-wrap--ic-banner {
	position: relative;
}

.locality-detail__side-fill {
	height: 100%;
	min-height: 100%;
	display: flex;
	flex-direction: column;
}

.locality-detail__sidebar--match-photo {
	flex: 1 1 auto;
	min-height: 100%;
	height: 100%;
	overflow-y: auto;
	box-sizing: border-box;
}

@media (min-width: 992px) {
	.locality-detail__split-row.row {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 3rem;
		row-gap: 1.5rem;
		align-items: stretch;
		margin-left: 0;
		margin-right: 0;
		--bs-gutter-x: 0;
	}

	.locality-detail__split-row.row > .locality-detail__photo-col,
	.locality-detail__split-row.row > .locality-detail__side-col {
		width: 100%;
		max-width: 100%;
		padding-left: 0;
		padding-right: 0;
		margin-top: 0;
	}

	.locality-detail__split-row.row > .locality-detail__photo-col {
		aspect-ratio: 1 / 1;
		min-height: 0;
	}

	.locality-detail__split-row.row > .locality-detail__photo-col .locality-detail__main-photo {
		aspect-ratio: auto;
	}
}

.locality-detail__below-media .locality-detail__description.portal-menu-desc {
	text-align: justify;
}

@media (max-width: 991.98px) {
	.locality-detail__below-media .locality-detail__description.portal-menu-desc {
		text-align: left;
	}
}

.locality-detail__hero-wrapper {
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 8px 32px rgb(31 72 148 / 0.1);
	max-width: 1320px;
	margin-left: auto;
	margin-right: auto;
}

.locality-detail__hero {
	position: relative;
	width: 100%;
	overflow: hidden;
	max-height: min(520px, 58vh);
	aspect-ratio: 16 / 6;
	min-height: 200px;
}

.locality-detail__hero-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	vertical-align: middle;
	display: block;
}

.locality-detail__banner {
	width: 100%;
	background-color: var(--red);
	color: #fff;
}

.locality-detail__banner-text {
	font-weight: 600;
	font-size: clamp(1rem, 3vw, 1.1875rem);
	line-height: 1.35;
}

.locality-detail__info-icon {
	width: 2.875rem;
	height: 2.875rem;
	background: #239d55;
	border-radius: 6px;
	color: #fff;
	font-size: 1.125rem;
}

.locality-detail__description.portal-menu-desc {
	text-align: justify;
}

@media (max-width: 991.98px) {
	.locality-detail__description.portal-menu-desc {
		text-align: left;
	}
}

.locality-detail__sidebar {
	background: #ebecef;
	border-radius: 12px;
}

.locality-detail__sidebar-card {
	display: flex;
	flex-direction: column;
	padding: 1.35rem 1.5rem 1.5rem;
	background: #f2f3f6;
	border: 1px solid #e0e4ea;
	border-radius: 20px;
	box-shadow: 0 4px 18px rgb(31 45 61 / 0.06);
}

.locality-detail__sidebar-body {
	flex: 1 1 auto;
	min-height: 0;
}

.locality-detail__sidebar-heading {
	font-family: 'PT Sans', var(--font), sans-serif;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: #212529;
}

.locality-detail__sidebar-sublead {
	font-size: 0.975rem;
	color: #000;
	margin-bottom: 0;
}

.locality-detail__sidebar-sublead-text {
	text-decoration: underline;
	text-underline-offset: 2px;
}

.locality-detail__sidebar-contact {
	margin-top: 0.15rem;
}

.locality-detail__sidebar-contact-row {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.35rem;
	margin-bottom: 0.5rem;
	font-size: 0.95rem;
	line-height: 1.5;
}

.locality-detail__sidebar-contact-row:last-child {
	margin-bottom: 0;
}

.locality-detail__sidebar-contact-label {
	font-weight: 700;
	color: #212529;
	flex-shrink: 0;
}

.locality-detail__sidebar-contact-value {
	color: var(--red);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
	word-break: break-word;
}

.locality-detail__sidebar-contact-value:hover {
	color: var(--red-dark);
}

.locality-detail__sidebar-actions {
	flex-shrink: 0;
	margin-top: auto;
	padding-top: 1.25rem;
	border-top: 1px solid #d5dae3;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.locality-detail__sidebar-action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.65rem;
	width: 100%;
	padding: 0.8rem 1.35rem;
	border-radius: 999px;
	background: var(--red);
	color: #fff;
	font-family: 'PT Sans', var(--font), sans-serif;
	font-weight: 700;
	font-size: 0.8125rem;
	line-height: 1.2;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	text-decoration: none;
	border: none;
	transition: background-color 0.15s ease, transform 0.15s ease;
}

.locality-detail__sidebar-action:hover,
.locality-detail__sidebar-action:focus-visible {
	background: var(--red-dark);
	color: #fff;
}

.locality-detail__sidebar-action:focus-visible {
	outline: 2px solid var(--red);
	outline-offset: 2px;
}

.locality-detail__sidebar-action-icon {
	flex-shrink: 0;
	width: 1.75rem;
	height: 1.75rem;
	border-radius: 6px;
	background: #fff;
	color: var(--red);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.05rem;
	line-height: 1;
}

.locality-detail__sidebar-action-text {
	text-align: center;
}

.locality-detail__meta-dt,
.locality-detail__meta-dd {
	font-size: 0.95rem;
	line-height: 1.55;
	vertical-align: baseline;
	color: #000;
}

.locality-detail__underline-link {
	color: #000;
	text-decoration: underline;
	text-underline-offset: 2px;
	word-break: break-word;
}

.locality-detail__underline-link:hover {
	color: var(--red-dark);
}

.locality-detail__lead {
	max-width: 36rem;
	font-size: 1rem;
}

.locality-detail__extras-map-title {
	font-family: 'PT Sans', var(--font), sans-serif;
	font-weight: 700;
	color: #212529;
}

.locality-detail__map {
	margin-bottom: 0;
}

.locality-detail__extras-cols {
	margin-top: 2rem;
}

.locality-detail__hours-box {
	background: #ebecef;
	border-radius: 8px;
}

.locality-detail__extras-heading {
	font-family: 'PT Sans', var(--font), sans-serif;
	color: #212529;
}

.locality-detail__hours-item {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.75rem;
	margin-bottom: 0.35rem;
	font-size: 0.95rem;
	line-height: 1.45;
	color: #212529;
}

.locality-detail__hours-item:last-child {
	margin-bottom: 0;
}

.locality-detail__hours-day {
	min-width: 2rem;
}

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

.locality-detail__partners.portal-menu-desc {
	font-size: 0.95rem;
	line-height: 1.55;
	color: #212529;
}

.locality-detail__partners.portal-menu-desc a {
	font-weight: 700;
	color: #212529;
	text-decoration: none;
}

.locality-detail__partners.portal-menu-desc a:hover {
	color: var(--red-dark);
	text-decoration: underline;
}

@media (max-width: 767.98px) {
	.locality-detail__extras-cols .col-md-4 + .col-md-4 {
		margin-top: 0.5rem;
	}
}

/* Detail obce – kompaktní šablona bez informačního centra (portal_localities.ic = n) */
.locality-detail--ic .locality-detail__hero-wrapper {
	margin-bottom: 2.5rem;
}

.locality-detail__ic-contact .facility-contact-card__body {
	padding: 1.5rem 1.75rem;
}

.locality-detail__contact-list {
	gap: 0;
}

.locality-detail__contact-row {
	min-height: 1.75rem;
	align-items: baseline;
}

.locality-detail__contact-card-body {
	min-height: 8.75rem;
}

@media (min-width: 992px) {
	.locality-detail .facility-detail__side-col--with-map .locality-detail__contact-card {
		margin-bottom: 0.75rem !important;
		flex-shrink: 0;
	}

	.locality-detail .facility-detail__side-col--with-map .locality-detail__parking-action {
		margin-top: 0;
		margin-bottom: 0.75rem;
		flex-shrink: 0;
	}
}

.locality-detail__sidebar-gallery {
	overflow: hidden;
	background: #fff;
}

.locality-detail__sidebar-gallery-heading {
	background: #6b6258;
	color: #fff;
	font-weight: 700;
	text-align: center;
	text-transform: none;
	letter-spacing: 0;
}

.locality-detail__sidebar-gallery-link {
	line-height: 0;
}

.locality-detail__sidebar-gallery-img {
	display: block;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.locality-detail__ic-section-title {
	font-weight: 700;
	color: #212529;
}

.locality-detail .locality-detail__ic-events .hp-event-card,
.locality-detail--ic .locality-detail__ic-events .hp-event-card {
	height: 100%;
}

.locality-detail__ic-events-all-wrap {
	padding-bottom: 20px;
}

.locality-detail__ic-events-all {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.65rem;
	min-width: 15.5rem;
	font-family: var(--font);
	font-size: 14px;
	font-weight: 700;
	line-height: 20px;
	letter-spacing: 2.5px;
	color: #fff;
	text-decoration: none;
	text-transform: uppercase;
	padding: 0.95rem 2.25rem 0.7rem 2.5rem;
	border: 1px solid var(--red);
	border-radius: 999px;
	background-color: var(--red);
	transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}

.locality-detail__ic-events-all:hover,
.locality-detail__ic-events-all:focus-visible {
	color: #fff;
	border-color: var(--red-dark);
	background-color: var(--red-dark);
}

.locality-detail__ic-events-all-arrow {
	flex-shrink: 0;
	display: block;
}

.locality-detail__ic-events-all-arrow-shaft,
.locality-detail__ic-events-all-arrow-head {
	transition: d 0.3s ease;
}

.locality-detail__ic-events-all:hover .locality-detail__ic-events-all-arrow-shaft,
.locality-detail__ic-events-all:focus-visible .locality-detail__ic-events-all-arrow-shaft {
	d: path("M0 6H30");
}

.locality-detail__ic-events-all:hover .locality-detail__ic-events-all-arrow-head,
.locality-detail__ic-events-all:focus-visible .locality-detail__ic-events-all-arrow-head {
	d: path("M24 0L30 6L24 12");
}

.locality-detail__ic-map .locality-detail__map {
	margin-bottom: 0;
}

/* ====== Fotogalerie (obecná komponenta, lightbox PhotoSwipe v5) ====== */

.photo-gallery--section {
	background: #fff;
}

/* Nadpis sekce: stejný styl jako "REGION" na úvodní stránce ({@see .hp-region-label, .hp-label-line}), ale vycentrovaný. */
.photo-gallery__heading {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
}

.photo-gallery__label {
	font-family: var(--font);
	font-size: 14px;
	font-weight: 700;
	line-height: 20px;
	letter-spacing: 2.5px;
	color: #da251d;
	text-transform: uppercase;
}

/* Grid uvnitř .container — drží šířku jako zbytek webu.
   Počet sloupců se předává inline-style přes --gallery-cols (= count($visible)). */
.photo-gallery__grid {
	display: grid;
	gap: 8px;
	grid-template-columns: repeat(var(--gallery-cols, 5), 1fr);
	width: 100%;
}

@media (max-width: 991.98px) {
	.photo-gallery__grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 575.98px) {
	.photo-gallery__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

.photo-gallery__item {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: #eaeaea;
	text-decoration: none;
	color: inherit;
}

.photo-gallery__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 250ms ease;
}

.photo-gallery__item:hover img {
	transform: scale(1.04);
}

.photo-gallery__item--hidden {
	display: none !important;
}

.photo-gallery__item--more::before {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
	z-index: 1;
}

.photo-gallery__overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-weight: 700;
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	letter-spacing: 0.02em;
	z-index: 2;
	pointer-events: none;
}

/* =====================================================================
 * Hlavní strana – sjednocený display nadpis (Rukola, regular, #333).
 * Pouze pro nadpisy na HP: "Co dělat v Beskydech", "Nejbližší akce", "Turistická oblast".
 * Specifické velikosti a marginy zůstávají na původních třídách (.hp-what-to-do-heading,
 * .hp-events .hp-events-title, .hp-region-title).
 * ===================================================================== */
.hp-display-heading,
.hp-display-heading .hp-what-to-do-heading-accent {
	font-family: var(--font-display);
	font-weight: 400;
	font-style: normal;
	letter-spacing: 0;
}

.hp-display-heading {
	color: #333;
}

/* ==========================================================================
   ROUTE DETAIL (výlet)
   ========================================================================== */

.route-detail-hero {
	width: 100%;
	max-height: 420px;
	overflow: hidden;
	background: var(--dark);
}

.route-detail-hero__img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 420px;
	object-fit: cover;
}

/* ==========================================================================
   PORTÁL – drobečková navigace (červené odkazy)
   ========================================================================== */

.portal-breadcrumb {
	margin-top: 20px;
}

/* Sjednocená hlavička detailu (akce, výlet, subjekt, zařízení…) */
.portal-detail__head {
	padding-top: calc(2.75rem + 20px);
}

.route-detail-hero + .hp-section,
.facility-detail--has-hero.hp-section {
	padding-top: 0 !important;
}

.portal-detail__head--has-hero {
	padding-top: 0;
}

.portal-detail__breadcrumb.portal-breadcrumb {
	margin-top: 15px;
	margin-bottom: 0;
}

.portal-detail__head-top {
	margin-top: 10px;
}

.portal-breadcrumb__list {
	font-family: var(--font);
	font-size: 0.95rem;
}

.portal-breadcrumb__link {
	color: var(--red);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.portal-breadcrumb__link:hover,
.portal-breadcrumb__link:focus-visible {
	color: var(--red-dark);
}

.portal-breadcrumb__item--active {
	color: var(--dark);
	font-weight: 400;
}

.portal-breadcrumb__list .breadcrumb-item + .breadcrumb-item::before {
	color: var(--text-muted);
}

.route-detail__h2--sidebar {
	font-size: 1rem;
	margin-bottom: 0.75rem;
}

.route-detail__main-photo-img {
	width: 100%;
	height: auto;
	border-radius: 12px;
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.08);
}

.locality-detail__main-photo .route-detail__main-photo-img {
	height: 100%;
	border-radius: 0;
	box-shadow: none;
}

/* TOP 10+1 detail – badge nad fotkou, slogan pod obsahem */
.top10-detail__main-col {
	display: flex;
	flex-direction: column;
}

.top10-detail__badges {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	align-items: center;
	gap: 0.45rem;
	margin-bottom: 0.65rem;
}

.top10-detail__badge {
	display: inline-block;
	padding: 0.3rem 0.7rem;
	font-size: 0.8125rem;
	font-weight: 700;
	line-height: 1.25;
	color: var(--white);
	background-color: #2d8f47;
	border-radius: 5px;
	letter-spacing: 0.01em;
}

.top10-detail__slogan {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	margin: 0;
	padding: 0.85rem 1rem 0.85rem 0.95rem;
	background: rgba(45, 143, 71, 0.07);
	border-left: 4px solid #2d8f47;
	border-radius: 0 10px 10px 0;
}

.top10-detail__slogan-icon {
	flex-shrink: 0;
	margin-top: 0.15rem;
	font-size: 1rem;
	line-height: 1;
	color: #2d8f47;
	opacity: 0.9;
}

.top10-detail__slogan-text {
	margin: 0;
	font-size: 0.9375rem;
	font-weight: 700;
	line-height: 1.55;
	color: var(--dark);
}

.route-detail__description-title {
	margin: 0 0 0.75rem;
	font-size: 1rem;
	line-height: 1.4;
}

.route-detail__description-card.facility-contact-card {
	margin-bottom: 0;
}

.route-detail__description-html.portal-menu-desc {
	font-size: 1rem;
	color: var(--dark);
}

.route-detail__description-html.portal-menu-desc p:last-child {
	margin-bottom: 0;
}

.route-detail__video {
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.08);
}

.route-detail__video iframe {
	border: 0;
}

@media (min-width: 992px) {
	.facility-detail__split-row--media > .facility-detail__side-col .route-detail__description-card {
		height: 100%;
		display: flex;
		flex-direction: column;
	}

	.facility-detail__split-row--media > .facility-detail__side-col .route-detail__description-card .facility-contact-card__body {
		flex: 1 1 auto;
		min-height: 0;
		overflow-y: auto;
	}
}

.route-detail__type {
	color: var(--text);
}

.route-detail__route-summary {
	line-height: 1.7;
	color: var(--text);
}

.route-detail__stats-card {
	background: var(--white);
	border-radius: 12px;
	border: 1px solid var(--nav-border-soft);
	box-shadow: 0 4px 18px rgba(0, 0, 0, 0.04);
}

.route-detail__difficulty-label {
	font-weight: 700;
	margin-bottom: 0.5rem;
	color: var(--dark);
}

.route-detail__difficulty-bar {
	height: 8px;
	background: #eceae6;
	border-radius: 999px;
	overflow: hidden;
}

.route-detail__difficulty-fill {
	display: block;
	height: 100%;
	background: linear-gradient(90deg, var(--red) 0%, var(--red-dark) 100%);
	border-radius: 999px;
}

.route-detail__stat-icon {
	color: var(--red);
	font-size: 1.25rem;
	margin-bottom: 0.35rem;
}

.route-detail__stat-value {
	font-size: 0.95rem;
	color: var(--dark);
}

.route-detail__map {
	width: 100%;
	min-height: 420px;
	border-radius: 12px;
	overflow: hidden;
	border: 1px solid var(--nav-border-soft);
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.08);
}

.route-detail__meta-panel {
	padding: 1.25rem 1.5rem;
	background: var(--white);
	border-radius: 12px;
	border: 1px solid var(--nav-border-soft);
}

.route-detail__meta-block + .route-detail__meta-block {
	padding-top: 0.25rem;
}

.route-detail__external-link,
.route-detail__poi-link {
	color: var(--red);
	text-decoration: none;
}

.route-detail__external-link:hover,
.route-detail__poi-link:hover {
	color: var(--red-dark);
	text-decoration: underline;
}

.route-detail__itinerary.portal-menu-desc {
	line-height: 1.75;
}

@media (min-width: 992px) {
	.route-detail__map {
		min-height: 520px;
	}

	.route-detail-gallery-aside {
		padding-top: 0.35rem;
	}
}

/* ==========================================================================
   ROUTE DETAIL – galerie vedle hlavní fotky
   ========================================================================== */

.route-detail-gallery-aside__preview {
	position: relative;
}

.route-detail-gallery-aside__link {
	display: block;
	position: relative;
	overflow: hidden;
	border-radius: 4px;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

.route-detail-gallery-aside__link--hidden {
	display: none;
}

.route-detail-gallery-aside__img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.route-detail-gallery-aside__link--more .route-detail-gallery-aside__img {
	filter: brightness(1.05);
}

.route-detail-gallery-aside__overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, 0.72);
	font-size: 2.5rem;
	font-weight: 700;
	color: var(--dark);
	pointer-events: none;
}

/* ==========================================================================
   ROUTE DETAIL – sekce TRASA (mapa + sidebar)
   ========================================================================== */

.route-detail__route-section {
	padding-top: 0.5rem;
}

.route-detail__route-sidebar {
	padding: 0;
}

.route-detail__difficulty-top {
	position: relative;
	background: #f8d6d4;
	background: color-mix(in srgb, var(--red) 14%, #fff);
	border-radius: 4px;
	overflow: hidden;
	min-height: 36px;
}

.route-detail__difficulty-label {
	position: relative;
	z-index: 2;
	display: block;
	padding: 0.5rem 0.75rem;
	font-weight: 700;
	color: var(--dark);
	font-size: 0.95rem;
}

.route-detail__difficulty-fill {
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	background: linear-gradient(90deg, #e97a74 0%, var(--red) 100%);
	border-radius: 4px 0 0 4px;
	z-index: 1;
}

.route-detail__metric {
	text-align: center;
}

.route-detail__metric-icon--fa {
	color: var(--red);
	font-size: 1.5rem;
	margin-bottom: 0.35rem;
}

.route-detail__metric-value {
	font-size: 0.9rem;
	color: var(--dark);
	line-height: 1.3;
}

.route-detail__surface-text {
	color: var(--text);
	line-height: 1.6;
}

.route-detail__extra-html img {
	max-width: 100%;
	height: auto;
}

.route-detail__map--placeholder {
	min-height: 420px;
	background: #f0eeea;
	border-radius: 12px;
	border: 1px dashed var(--nav-border-soft);
}

.route-detail__map-fallback {
	background: #f0eeea;
	border-radius: 12px;
}

/* Detail zařízení (zarizeni) – sdílené styly s výletem */
.facility-detail__link {
	color: var(--red);
	text-decoration: none;
}

.facility-detail__link:hover {
	color: var(--red-dark);
	text-decoration: underline;
}

.facility-detail__map {
	min-height: 300px;
	border-radius: 12px;
	overflow: hidden;
}

@media (min-width: 992px) {
	.facility-detail__split-row > .facility-detail__main-col {
		flex: 0 0 auto;
		width: 60%;
	}

	.facility-detail__split-row > .facility-detail__side-col {
		flex: 0 0 auto;
		width: 40%;
	}

	.facility-detail__split-row--media {
		align-items: stretch;
	}

	.facility-detail__side-col--with-map {
		display: flex;
		flex-direction: column;
		align-self: stretch;
		min-height: 100%;
	}

	.facility-detail__side-col--with-map .facility-contact-card {
		margin-bottom: 0.75rem !important;
		flex-shrink: 0;
	}

	.facility-detail__side-col--with-map .facility-detail__pictograms {
		margin-top: 0;
		margin-bottom: 0.75rem;
		flex-shrink: 0;
	}

	.facility-detail__side-col--with-map .facility-detail__map-wrap {
		flex: 1 1 auto;
		min-height: 200px;
		display: flex;
		flex-direction: column;
		margin-top: 0;
	}

	.facility-detail__side-col--with-map .facility-detail__map {
		flex: 1 1 auto;
		width: 100%;
		min-height: 200px;
		height: 100%;
	}
}

.facility-detail__service-icon {
	object-fit: contain;
}

.facility-detail__pictogram {
	width: 2.5rem;
	height: 2.5rem;
	padding: 0.15rem;
	box-sizing: border-box;
}

.facility-detail__pictogram .accommodation-tile__icon-img {
	width: 100%;
	height: 100%;
}

/* Carousel hlavní fotky + galerie */
.facility-detail-carousel {
	position: relative;
	border-radius: 12px;
	overflow: hidden;
}

.facility-detail-carousel__link {
	display: block;
	line-height: 0;
}

.facility-detail-carousel__img {
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 12px;
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.08);
}

.facility-detail-carousel__control {
	width: 3rem;
	opacity: 1;
	z-index: 3;
}

.facility-detail-carousel__control--prev {
	left: 0;
	justify-content: flex-start;
	padding-left: 0.75rem;
}

.facility-detail-carousel__control--next {
	right: 0;
	justify-content: flex-end;
	padding-right: 0.75rem;
}

.facility-detail-carousel__control-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.92);
	color: #222;
	font-size: 1rem;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
	transition: background 0.2s ease, transform 0.2s ease;
}

.facility-detail-carousel__control:hover .facility-detail-carousel__control-icon {
	background: #fff;
	transform: scale(1.05);
}

.facility-detail-carousel__control:focus-visible .facility-detail-carousel__control-icon {
	outline: 2px solid var(--red, #c8102e);
	outline-offset: 2px;
}

/* Kontaktní box těsně pod hlavní fotkou (objekt + zařízení) */
.facility-detail__contact-after-photo {
	margin-top: 20px;
}

.facility-detail__contact-after-photo .facility-contact-card {
	margin-bottom: 1.5rem;
}

/* Nadpis fotogalerie v postranním sloupci – pod mapou, o 30 % menší než display-6 */
.facility-detail__gallery-title.display-6 {
	font-size: calc((1.375rem + 1.5vw) * 0.7);
}

@media (min-width: 1200px) {
	.facility-detail__gallery-title.display-6 {
		font-size: 1.75rem;
	}
}

/* Kontaktní box zařízení – světle šedé pozadí, tmavě šedý text, červené akcenty */
.facility-contact-card {
	background-color: #f0efeb;
	border: 1px solid #d8d4cf !important;
	border-radius: 20px;
	color: var(--dark);
	overflow: hidden;
}

.facility-contact-card__body {
	position: relative;
	padding: 1.75rem 2rem;
	font-family: var(--font);
	font-size: 1rem;
	line-height: 1.55;
}

.facility-contact-card__bvc {
	position: absolute;
	top: 1.35rem;
	right: 1.5rem;
	z-index: 1;
	line-height: 0;
}

.facility-contact-card--has-bvc .facility-contact-card__list {
	padding-right: 4.75rem;
}

.facility-contact-card__list {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
}

.facility-contact-card__row {
	display: grid;
	grid-template-columns: minmax(5.5rem, auto) 1fr;
	gap: 0.35rem 1rem;
	align-items: baseline;
	margin: 0;
}

.facility-contact-card__label {
	margin: 0;
	font-weight: 700;
	color: var(--dark);
	white-space: nowrap;
}

.facility-contact-card__value {
	color: var(--dark);
	font-weight: 400;
	word-break: break-word;
}

.facility-contact-card__link {
	color: var(--red);
	text-decoration: underline;
	text-underline-offset: 2px;
	transition: color 0.2s ease;
}

.facility-contact-card__link:hover,
.facility-contact-card__link:focus-visible {
	color: var(--red-dark);
}

.facility-contact-card__link--plain {
	text-decoration: none;
}

.facility-contact-card__link--plain:hover,
.facility-contact-card__link--plain:focus-visible {
	color: var(--red-dark);
	text-decoration: underline;
}

.facility-contact-card__badge {
	color: var(--dark);
	font-size: 0.95rem;
	margin-bottom: 0;
}

.facility-contact-card__badge strong {
	color: var(--red);
}

.facility-contact-card__bc-icon {
	max-width: 72px;
	max-height: 72px;
	width: auto;
	height: auto;
	display: block;
}

.facility-contact-card__ondras-icon {
	max-height: 48px;
	width: auto;
	display: block;
}

.facility-contact-card__actions--with-list {
	margin-top: 1.25rem;
	padding-top: 1.25rem;
	border-top: 1px solid #d8d4cf;
}

.facility-contact-card__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	padding: 0.75rem 1.5rem;
	font-family: var(--font);
	font-size: 0.8125rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	color: #fff;
	background-color: var(--red);
	border: none;
	border-radius: 999px;
	transition: background-color 0.2s ease, transform 0.2s ease;
}

.facility-contact-card__btn--block {
	display: flex;
	width: 100%;
}

.facility-contact-card__btn-icon {
	font-size: 1.05rem;
	line-height: 1;
}

.facility-contact-card__btn:hover,
.facility-contact-card__btn:focus-visible {
	background-color: var(--red-dark);
	color: #fff;
}

@media (max-width: 575.98px) {
	.facility-contact-card__body {
		padding: 1.35rem 1.25rem;
	}

	.facility-contact-card__row {
		grid-template-columns: 1fr;
		gap: 0.15rem;
	}
}

/* Kongres – statistiky pod fotkou (jen kontext Firemní akce), vzhled jako hp-region-stats */
.facility-congress-stats {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	align-items: start;
	gap: 1.25rem 1rem;
	margin: 0 0 1.75rem;
	padding: 1.5rem 0 0.35rem;
	border-top: 1px solid #e8e6e0;
}

.facility-congress-stat {
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 0;
	text-align: center;
}

.facility-congress-stat__value {
	display: block;
	width: 100%;
	font-family: var(--font);
	font-size: 27px;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: 0;
	color: #da251d;
	margin-bottom: 0.4rem;
	text-align: center;
	overflow-wrap: break-word;
}

.facility-congress-stat__value--text {
	font-size: 27px;
	line-height: 1.2;
}

.facility-congress-stat__label {
	display: block;
	width: 100%;
	font-family: var(--font);
	font-size: 14px;
	font-weight: 700;
	line-height: 20px;
	letter-spacing: 0.04em;
	color: #333;
	text-align: center;
}

@media (max-width: 991.98px) {
	.facility-congress-stats {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.facility-congress-stat__value {
		font-size: 22px;
	}

	.facility-congress-stat__value--text {
		font-size: 22px;
	}
}

@media (max-width: 575.98px) {
	.facility-congress-stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.1rem 0.75rem;
	}

	.facility-congress-stat__value {
		font-size: 20px;
	}

	.facility-congress-stat__value--text {
		font-size: 20px;
	}
}

/* Beskydská pivní stezka – speciální landing (legacy menu id 212) */
.beer-trail__hero-wrap {
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 8px 32px rgb(31 72 148 / 0.12);
}

.beer-trail__hero-wrap .hp-tile-picture {
	display: block;
	width: 100%;
}

.beer-trail__hero-img,
.beer-trail__hero-wrap .hp-tile-picture .beer-trail__hero-img {
	display: block;
	width: 100%;
	height: clamp(220px, 36vw, 420px);
	object-fit: cover;
}

.beer-trail__intro {
	text-align: center;
	max-width: 920px;
	margin-left: auto;
	margin-right: auto;
}

.beer-trail__intro p:last-child {
	margin-bottom: 0;
}

.beer-trail-brewery-list__desc-columns .portal-menu-desc {
	font-size: 1rem;
	line-height: 1.55;
}

.beer-trail__events {
	margin-left: calc(-1 * var(--bs-gutter-x, 0.75rem));
	margin-right: calc(-1 * var(--bs-gutter-x, 0.75rem));
	padding-left: var(--bs-gutter-x, 0.75rem);
	padding-right: var(--bs-gutter-x, 0.75rem);
}

.beer-trail__events .hp-event-body {
	padding: 0.875rem 1rem 1rem;
}

.beer-trail__events .hp-event-category {
	margin-bottom: 0.4rem;
	font-size: 12px;
	line-height: 1.3;
	letter-spacing: 2px;
}

.beer-trail__events .hp-event-title {
	margin-bottom: 0.45rem;
	font-size: 17px;
	line-height: 1.35;
}

.beer-trail__events .hp-event-text {
	font-size: 15px;
	line-height: 1.5;
}

.beer-trail__section-title {
	font-family: 'PT Sans', var(--font), sans-serif;
	font-weight: 700;
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	color: #000;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.beer-trail__section-title--map {
	font-size: clamp(1.5rem, 3.5vw, 2.125rem);
}

.beer-trail__carousel {
	position: relative;
	padding: 0 calc(2.75rem + 20px);
}

.beer-trail__carousel-control {
	width: 2.75rem;
	opacity: 1;
}

.beer-trail__carousel-control.carousel-control-prev {
	left: 0;
	right: auto;
}

.beer-trail__carousel-control.carousel-control-next {
	right: 0;
	left: auto;
}

.beer-trail__carousel-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	background: rgb(255 255 255 / 0.92);
	box-shadow: 0 4px 16px rgb(0 0 0 / 0.12);
	font-size: 1.75rem;
	line-height: 1;
	color: #222;
}

.beer-trail__brewery-row .hp-card-label--plain {
	bottom: 0.75rem;
	left: 1rem;
	right: 0.875rem;
	font-size: clamp(1.05rem, 1.35vw, 1.375rem);
	line-height: 1.25;
}

.beer-trail__brewery-row .hp-card-label__text {
	text-shadow: 0 1px 8px rgb(0 0 0 / 0.55);
}

.beer-trail__cta-btn {
	padding: 0.65rem 1.75rem;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	border-radius: 4px;
}

.beer-trail .beer-trail__cta-btn {
	background-color: var(--red);
	border-color: var(--red);
	color: #fff;
}

.beer-trail .beer-trail__cta-btn:hover,
.beer-trail .beer-trail__cta-btn:focus-visible {
	background-color: var(--red-dark);
	border-color: var(--red-dark);
	color: #fff;
}

.beer-trail__map-shell {
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 8px 32px rgb(31 72 148 / 0.1);
}

.beer-trail-map {
	min-height: 420px;
	width: 100%;
}

.beer-trail__trips-lead {
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
}

@media (max-width: 767.98px) {
	.beer-trail__carousel {
		padding: 0;
	}

	.beer-trail__carousel-control {
		display: none;
	}
}

/* Soutěž o nejlahodnější pivo Beskyd */
.beer-competition {
	color: #000;
	font-family: 'PT Sans', var(--font), sans-serif;
}

.beer-competition .hp-events-title,
.beer-competition .portal-breadcrumb,
.beer-competition .portal-breadcrumb a {
	color: #000;
	font-family: 'PT Sans', var(--font), sans-serif;
}

.beer-competition__alert {
	max-width: 920px;
	margin-left: auto;
	margin-right: auto;
	border-radius: 8px;
	color: #000;
}

.beer-competition__alert.alert-success {
	background-color: var(--nav-peach);
	border-color: var(--nav-border-soft);
	color: #000;
}

.beer-competition__alert p,
.beer-competition__alert strong {
	color: #000;
}

.beer-competition__form {
	max-width: 920px;
	margin-left: auto;
	margin-right: auto;
}

.beer-competition__section-title {
	margin-top: 2.5rem;
	margin-bottom: 0.5rem;
}

.beer-competition__section-title:first-child {
	margin-top: 0;
}

.beer-competition__section-heading {
	font-family: 'PT Sans', var(--font), sans-serif;
	font-weight: 700;
	font-style: normal;
	color: #000;
}

.beer-competition__question {
	margin-bottom: 1.75rem;
	padding: 1.25rem 1.5rem;
	border: 1px solid rgb(31 72 148 / 0.12);
	border-radius: 10px;
	background: #fff;
}

.beer-competition__question--error {
	border-color: var(--red);
	background: rgb(196 24 24 / 0.04);
}

.beer-competition__question-label {
	display: block;
	margin-bottom: 0.85rem;
	font-family: 'PT Sans', var(--font), sans-serif;
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.35;
	color: #000;
}

.beer-competition__options {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
}

.beer-competition__check .form-check-input {
	margin-top: 0.2rem;
}

.beer-competition__check .form-check-label {
	font-family: 'PT Sans', var(--font), sans-serif;
	font-size: 1rem;
	line-height: 1.45;
	color: #000;
}

.beer-competition__text-input {
	max-width: 420px;
}

.beer-competition__field-error {
	margin-top: 0.65rem;
	font-size: 0.9375rem;
	color: var(--red);
}

.beer-competition__submit-wrap {
	margin-top: 2rem;
	text-align: center;
}

.beer-competition__submit {
	padding: 0.65rem 2.25rem;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	background-color: var(--red);
	border-color: var(--red);
	color: #fff;
}

.beer-competition__submit:hover,
.beer-competition__submit:focus-visible {
	background-color: var(--red-dark);
	border-color: var(--red-dark);
	color: #fff;
}

.beer-competition__back {
	padding: 0.65rem 1.75rem;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	background-color: #dff1cc;
	border-color: #dff1cc;
	color: #333;
}

.beer-competition__back:hover,
.beer-competition__back:focus-visible {
	background-color: #d0e8b5;
	border-color: #d0e8b5;
	color: #333;
}

/* Novinky e-mailem (newsletter) */
.newsletter-page {
	color: #000;
	font-family: 'PT Sans', var(--font), sans-serif;
}

.newsletter-page .hp-events-title,
.newsletter-page .portal-breadcrumb,
.newsletter-page .portal-breadcrumb a {
	color: #000;
	font-family: 'PT Sans', var(--font), sans-serif;
}

.newsletter-page__lead {
	max-width: 920px;
	margin: 0 auto 2rem;
	font-size: 1.0625rem;
	line-height: 1.55;
	color: #333;
	text-align: center;
}

.newsletter-page__alert {
	max-width: 920px;
	margin: 0 auto 1.5rem;
	border-radius: 8px;
	color: #000;
}

.newsletter-page__alert.alert-success {
	background-color: var(--nav-peach);
	border-color: var(--nav-border-soft);
}

.newsletter-page__panel {
	max-width: 920px;
	margin: 0 auto 2.5rem;
	padding: 1.75rem 1.75rem 2rem;
	border: 1px solid rgb(31 72 148 / 0.12);
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 2px 12px rgb(0 0 0 / 0.04);
}

.newsletter-page__panel--highlight {
	border-color: rgb(196 24 24 / 0.35);
	box-shadow: 0 4px 18px rgb(196 24 24 / 0.08);
}

.newsletter-page__panel--unsubscribe {
	margin-bottom: 0;
}

.newsletter-page__section-heading {
	margin: 0 0 1.25rem;
	font-family: 'PT Sans', var(--font), sans-serif;
	font-size: 1.375rem;
	font-weight: 700;
	color: #000;
}

.newsletter-page__section-note {
	margin: -0.5rem 0 1.25rem;
	font-size: 0.9375rem;
	line-height: 1.5;
	color: #444;
}

.newsletter-page__field {
	margin-bottom: 1.35rem;
}

.newsletter-page__field--consent {
	margin-bottom: 0.5rem;
}

.newsletter-page__label {
	display: block;
	margin-bottom: 0.45rem;
	font-size: 1rem;
	font-weight: 700;
	color: #000;
}

.newsletter-page__input {
	max-width: 100%;
	border-radius: 6px;
	border-color: rgb(31 72 148 / 0.2);
}

.newsletter-page__check .form-check-label {
	font-size: 0.9375rem;
	line-height: 1.5;
	color: #222;
}

.newsletter-page__check .form-check-label a {
	color: var(--red);
	font-weight: 700;
}

.newsletter-page__submit-wrap {
	margin-top: 1.5rem;
	text-align: left;
}

.newsletter-page__submit {
	padding: 0.65rem 2rem;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	background-color: var(--red);
	border-color: var(--red);
	color: #fff;
	border-radius: 6px;
}

.newsletter-page__submit:hover,
.newsletter-page__submit:focus-visible {
	background-color: var(--red-dark);
	border-color: var(--red-dark);
	color: #fff;
}

.newsletter-page__submit--danger {
	background-color: #6c757d;
	border-color: #6c757d;
}

.newsletter-page__submit--danger:hover,
.newsletter-page__submit--danger:focus-visible {
	background-color: #5a6268;
	border-color: #5a6268;
	color: #fff;
}

/* Soutěž o nejlepší tradiční pokrm */
.food-competition {
	color: #000;
	font-family: 'PT Sans', var(--font), sans-serif;
}

.food-competition .hp-events-title,
.food-competition .portal-breadcrumb,
.food-competition .portal-breadcrumb a {
	color: #000;
	font-family: 'PT Sans', var(--font), sans-serif;
}

.food-competition__alert,
.food-competition__feedback {
	max-width: 920px;
	margin-left: auto;
	margin-right: auto;
	border-radius: 8px;
	color: #000;
}

.food-competition__alert.alert-success,
.food-competition__feedback.alert-success {
	background-color: var(--nav-peach);
	border-color: var(--nav-border-soft);
	color: #000;
}

.food-competition__alert p,
.food-competition__alert strong,
.food-competition__feedback p {
	color: #000;
}

.food-competition__list {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.food-competition__item {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 180px auto;
	gap: 1.25rem;
	align-items: center;
	padding: 1.25rem 1.5rem;
	border-radius: 12px;
	background: #dff1cc;
	border: 1px solid rgb(31 72 148 / 0.08);
}

.food-competition__item-title {
	margin: 0 0 0.5rem;
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.35;
	color: #000;
}

.food-competition__item-brewery {
	margin: 0 0 0.75rem;
	font-size: 1rem;
	font-weight: 700;
	color: var(--red);
}

.food-competition__item-rating {
	margin: 0;
}

.food-competition__item-rating-value {
	font-size: 1.125rem;
	color: #2f7d1f;
}

.food-competition__item-photo-wrap {
	justify-self: center;
}

.food-competition__item-photo-link picture {
	display: block;
	width: 100%;
	max-width: 180px;
}

.food-competition__item-photo {
	display: block;
	width: 100%;
	max-width: 180px;
	height: 120px;
	object-fit: cover;
	border-radius: 8px;
	box-shadow: 0 4px 16px rgb(0 0 0 / 0.12);
}

.food-competition__rate-btn {
	padding: 0.65rem 1.5rem;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	background-color: var(--red);
	border-color: var(--red);
	color: #fff;
	white-space: nowrap;
}

.food-competition__rate-btn:hover,
.food-competition__rate-btn:focus-visible {
	background-color: var(--red-dark);
	border-color: var(--red-dark);
	color: #fff;
}

.food-competition__sidebar {
	padding: 1.25rem;
	border-radius: 12px;
	background: #fff;
	border: 1px solid rgb(31 72 148 / 0.12);
}

.food-competition__sidebar-title {
	margin: 0 0 1.25rem;
	font-size: 1.5rem;
	font-weight: 700;
	color: #000;
}

.food-competition__sidebar-event + .food-competition__sidebar-event {
	margin-top: 1.25rem;
	padding-top: 1.25rem;
	border-top: 1px solid rgb(31 72 148 / 0.12);
}

.food-competition__sidebar-event-title {
	margin: 0 0 0.35rem;
	font-size: 1.0625rem;
	font-weight: 700;
}

.food-competition__sidebar-event-title a {
	color: var(--red);
	text-decoration: none;
}

.food-competition__sidebar-event-title a:hover,
.food-competition__sidebar-event-title a:focus-visible {
	color: var(--red-dark);
	text-decoration: underline;
}

.food-competition__sidebar-event-date {
	margin: 0;
	font-size: 0.9375rem;
	color: #333;
}

.food-competition__sidebar-event-photo {
	display: block;
	width: 100%;
	border-radius: 8px;
}

.food-competition__sidebar-event-photo-link .hp-tile-picture {
	display: block;
	width: 100%;
}

.food-competition__sidebar-event-photo-link .hp-tile-picture .hp-tile-photo {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 8px;
}

.food-competition__back {
	padding: 0.65rem 1.75rem;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	background-color: #dff1cc;
	border-color: #dff1cc;
	color: #333;
}

.food-competition__back:hover,
.food-competition__back:focus-visible {
	background-color: #d0e8b5;
	border-color: #d0e8b5;
	color: #333;
}

.food-competition__modal-content {
	border: none;
	border-radius: 12px;
	overflow: hidden;
}

.food-competition__modal-header,
.food-competition__modal-footer {
	border-color: rgb(31 72 148 / 0.12);
}

.food-competition__modal-label,
.food-competition__modal-food-name {
	color: #000;
	font-family: 'PT Sans', var(--font), sans-serif;
}

.food-competition__slider-value {
	color: #000;
	font-family: 'PT Sans', var(--font), sans-serif;
	font-size: 1rem;
}

.food-competition__slider-value-number {
	font-size: 1.375rem;
	font-weight: 700;
	color: #2f7d1f;
}

.food-competition__modal-slider-hint {
	color: var(--red);
	font-size: 0.875rem;
}

.food-competition__slider {
	accent-color: #2f7d1f;
}

.food-competition__modal-submit {
	background-color: #dff1cc;
	border-color: #dff1cc;
	color: #333;
}

.food-competition__modal-submit:hover,
.food-competition__modal-submit:focus-visible {
	background-color: #d0e8b5;
	border-color: #d0e8b5;
	color: #333;
}

.food-competition__modal-close {
	background-color: var(--red);
	border-color: var(--red);
	color: #fff;
}

.food-competition__modal-close:hover,
.food-competition__modal-close:focus-visible {
	background-color: var(--red-dark);
	border-color: var(--red-dark);
	color: #fff;
}

@media (max-width: 991.98px) {
	.food-competition__item {
		grid-template-columns: 1fr;
		text-align: center;
	}

	.food-competition__item-photo-wrap,
	.food-competition__item-action {
		justify-self: center;
	}
}

/* BeskydyCard – úvodní stránka podsekce */
.bvc-home {
	padding-bottom: 0;
}

.bvc-home__hero {
	position: relative;
	background: #0e1742;
}

.bvc-home__hero-cta {
	position: absolute;
	right: clamp(1.25rem, 4vw, 2.75rem);
	bottom: clamp(1.5rem, 3.5vw, 2.75rem);
	z-index: 4;
	display: inline-block;
	padding: 1rem 2rem;
	font-family: var(--font);
	font-size: clamp(0.875rem, 1.05vw, 1.0625rem);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	color: #2f6b2f;
	background-color: #fff;
	box-shadow: 0 6px 28px rgb(0 0 0 / 0.28);
	transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.bvc-home__hero-cta:hover,
.bvc-home__hero-cta:focus-visible {
	color: #fff;
	background-color: #2f6b2f;
	box-shadow: 0 8px 32px rgb(0 0 0 / 0.32);
}

.bvc-home__carousel .carousel-item {
	position: relative;
}

.bvc-home__slide-link {
	display: block;
}

.bvc-home__slide-img {
	display: block;
	width: 100%;
	max-height: min(72vh, 680px);
	object-fit: cover;
}

.bvc-home__slide-caption {
	position: absolute;
	left: 50%;
	bottom: 2rem;
	transform: translateX(-50%);
	width: min(92%, 760px);
	color: #fff;
	text-align: center;
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.65);
	pointer-events: none;
}

.bvc-home__slide-title {
	font-size: clamp(1.35rem, 2.4vw, 2rem);
	font-weight: 700;
	line-height: 1.2;
}

.bvc-home__slide-subtitle {
	font-size: clamp(1rem, 1.8vw, 1.35rem);
	font-weight: 600;
}

.bvc-home__slide-description {
	font-size: 0.95rem;
}

.bvc-home__logo-wrap {
	position: absolute;
	top: calc(var(--portal-nav-height) + 1rem);
	left: 1.25rem;
	z-index: 3;
	max-width: min(34vw, 220px);
	pointer-events: none;
}

.bvc-home__logo {
	width: 100%;
	height: auto;
	filter: drop-shadow(0 4px 16px rgba(0, 0, 0, 0.35));
}

.bvc-home__carousel-indicators {
	margin-bottom: 0.75rem;
}

.bvc-home__menu-wrap {
	padding: 2rem 0 2.5rem;
}

.bvc-home__menu-row {
	justify-content: center;
}

.bvc-atraktivity-filter .form-label,
.bvc-accommodation-filter .form-label,
.accommodation-listing-filter .form-label,
.action-calendar-filter .form-label {
	font-weight: 600;
}

.action-calendar-filter__top-switch-wrap {
	display: flex;
	align-items: center;
	/* stejná výška jako .form-select / .form-control v řádku filtrů */
	min-height: calc(1.5em + 0.75rem + 2px);
	padding-top: 0.25rem;
}

.action-calendar-filter__top-switch {
	padding-left: 0;
	min-height: 0;
}

.action-calendar-filter__top-switch .form-check-input {
	width: 2.75em;
	height: 1.4em;
	margin-left: 0;
	margin-top: 0;
	float: none;
	cursor: pointer;
}

.action-calendar-filter__top-switch .form-check-input:focus {
	border-color: rgba(218, 37, 29, 0.55);
	box-shadow: 0 0 0 0.25rem rgba(218, 37, 29, 0.25);
}

.action-calendar-filter__top-switch .form-check-input:checked {
	background-color: var(--red);
	border-color: var(--red);
}

.action-calendar-filter__top-switch .form-check-input:checked:focus {
	box-shadow: 0 0 0 0.25rem rgba(218, 37, 29, 0.35);
}

.accommodation-listing-filter__resort {
	max-width: 100%;
}

@media (min-width: 768px) {
	.accommodation-listing-filter__resort .form-select {
		max-width: 22rem;
	}
}

.bvc-atraktivity-filter__active,
.bvc-accommodation-filter__active,
.action-calendar-filter__active {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.75rem;
}

.bvc-atraktivity-filter__active-label,
.bvc-accommodation-filter__active-label,
.action-calendar-filter__active-label {
	font-weight: 700;
	margin-right: 0.25rem;
}

.bvc-atraktivity-filter__chips,
.bvc-accommodation-filter__chips,
.action-calendar-filter__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.bvc-atraktivity-filter__chip,
.bvc-accommodation-filter__chip,
.action-calendar-filter__chip {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.35rem 0.55rem 0.35rem 0.75rem;
	border-radius: 999px;
	background: var(--nav-peach);
	color: var(--dark);
	font-size: 0.9rem;
	line-height: 1.3;
}

.bvc-atraktivity-filter__chip-text strong,
.bvc-accommodation-filter__chip-text strong,
.action-calendar-filter__chip-text strong {
	font-weight: 700;
}

.bvc-atraktivity-filter__chip-remove,
.bvc-accommodation-filter__chip-remove,
.action-calendar-filter__chip-remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.35rem;
	height: 1.35rem;
	border-radius: 50%;
	color: var(--dark);
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.bvc-atraktivity-filter__chip-remove:hover,
.bvc-atraktivity-filter__chip-remove:focus-visible,
.bvc-accommodation-filter__chip-remove:hover,
.bvc-accommodation-filter__chip-remove:focus-visible,
.action-calendar-filter__chip-remove:hover,
.action-calendar-filter__chip-remove:focus-visible {
	background: rgba(0, 0, 0, 0.08);
	color: var(--red);
	text-decoration: none;
}

.bvc-atraction-tile {
	position: relative;
	overflow: hidden;
}

.bvc-atraction-tile__discount {
	position: absolute;
	top: 0.75rem;
	left: 0.75rem;
	z-index: 3;
	min-width: 5.5rem;
	padding: 0.45rem 0.65rem;
	border-radius: 0.35rem;
	background: var(--red);
	color: #fff;
	text-align: center;
	line-height: 1.15;
	box-shadow: none;
	pointer-events: none;
}

.bvc-atraction-tile__discount-label,
.bvc-atraction-tile__discount-value {
	display: block;
	font-weight: 700;
}

.bvc-atraction-tile__discount-label {
	font-size: 0.95rem;
}

.bvc-atraction-tile__discount-value {
	font-size: 1.15rem;
}

.bvc-home__map-section {
	margin-top: 0;
}

.bvc-home__map-legend {
	background: #0e1742;
	color: #fff;
	padding: 1rem 0;
}

.bvc-home__legend-item {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	font-size: 0.95rem;
}

.bvc-home__map-shell {
	width: 100%;
}

.bvc-home-map {
	min-height: 680px;
	width: 100%;
}

@media (max-width: 767.98px) {
	.bvc-home__logo-wrap {
		max-width: 140px;
		top: calc(var(--portal-nav-height) + 0.5rem);
		left: 0.75rem;
	}

	.bvc-home__slide-caption {
		bottom: 1rem;
	}

	.bvc-home-map {
		min-height: 420px;
	}
}

.bvc-facility-detail__discount {
	background: #dff1cc;
	border-radius: 12px;
	color: #333;
	padding: 1rem 1.25rem;
	text-align: center;
}

.bvc-facility-detail__nights {
	background: #198754;
	border-radius: 12px;
	color: #fff;
	padding: 1rem 1.25rem;
	text-align: center;
}

.bvc-facility-detail__discount-text,
.bvc-facility-detail__nights-text {
	font-size: 1.05rem;
	line-height: 1.35;
}

.bvc-facility-detail__badge {
	width: 100%;
}

.facility-detail__side-col--with-map .bvc-facility-detail__badge {
	flex-shrink: 0;
	margin-bottom: 0.75rem;
}

.bvc-facility-service {
	background: var(--nav-peach);
	border-radius: 0.375rem;
	color: var(--dark);
	padding: 1.25rem 1.5rem;
}

.bvc-facility-service__name {
	font-size: 1.05rem;
}

.bvc-facility-service__prices,
.bvc-facility-service__meta {
	font-size: 0.95rem;
}

.bvc-facility-service__usual-price {
	opacity: 0.65;
}

.bvc-facility-service__discount-price {
	color: var(--dark);
	font-weight: 700;
}

.bvc-facility-service__status {
	font-size: 0.95rem;
	text-align: right;
	text-transform: uppercase;
}

.bvc-facility-service__status--inactive {
	color: var(--red);
}

.bvc-facility-service__tag {
	font-size: 0.85rem;
	margin-bottom: 0;
	text-align: right;
	text-transform: uppercase;
}

@media (max-width: 767.98px) {
	.bvc-facility-service__status,
	.bvc-facility-service__tag {
		text-align: left;
	}
}

/* PDFlipbook modal (typ obsahu PDF soubor) */
.portal-pdf-flipbook-modal .modal-content {
	background: #1c1c1e;
	color: #fff;
}

.portal-pdf-flipbook-modal .modal-header {
	border-bottom-color: rgba(255, 255, 255, 0.12);
	align-items: center;
	gap: 0.75rem;
}

.portal-pdf-flipbook-modal__heading {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.35rem 1rem;
	min-width: 0;
	flex: 1 1 auto;
}

.portal-pdf-flipbook-modal .modal-title {
	margin-bottom: 0;
}

.portal-pdf-flipbook-modal__download {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	color: #fff;
	text-decoration: none;
	font-size: 0.95rem;
	line-height: 1.2;
	white-space: nowrap;
	opacity: 0.88;
}

.portal-pdf-flipbook-modal__download:hover,
.portal-pdf-flipbook-modal__download:focus-visible {
	color: #fff;
	text-decoration: underline;
	opacity: 1;
}

.portal-pdf-flipbook-modal .btn-close {
	filter: invert(1) grayscale(100%);
}

.portal-pdf-flipbook-modal .modal-body {
	height: calc(100vh - 3.5rem);
	padding: 0;
	background: #1c1c1e;
}

.portal-pdf-flipbook {
	width: 100%;
	height: 100%;
	min-height: 70vh;
}

.bvc-infocenter-list {
	margin-top: 0.5rem;
}

.bvc-infocenter-list__contact p {
	margin-bottom: 0.35rem;
}

.bvc-infocenter-list__contact p:last-child {
	margin-bottom: 0;
}

/* Veřejné vyhledávání */
.search-page__title {
	margin-bottom: 1.75rem;
}

.search-page__form {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	background: #f3f1ec;
	border-radius: 0.75rem;
	padding: 0.45rem 0.45rem 0.45rem 1.15rem;
	margin-bottom: 1.5rem;
}

.search-page__form-icon {
	display: inline-flex;
	color: #6b6b6b;
	flex-shrink: 0;
}

.search-page__input {
	flex: 1 1 auto;
	min-width: 0;
	border: 0;
	background: transparent;
	font-family: var(--font);
	font-size: 1.05rem;
	line-height: 1.4;
	color: #111;
	padding: 0.65rem 0;
}

.search-page__input:focus {
	outline: none;
}

.search-page__submit {
	flex-shrink: 0;
	border: 0;
	border-radius: 0.45rem;
	background-color: var(--red);
	color: #fff;
	font-family: var(--font);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.2;
	padding: 0.85rem 1.6rem;
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.search-page__submit:hover,
.search-page__submit:focus-visible {
	background-color: var(--red-dark);
	color: #fff;
}

.search-page__tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 1.75rem;
}

.search-page__panels {
	margin-top: 0;
}

.search-page__panel[hidden] {
	display: none !important;
}

.search-page__tab {
	display: inline-flex;
	align-items: center;
	padding: 0.45rem 1.05rem;
	border: 1px solid #d8d8d8;
	border-radius: 999px;
	background-color: #fff;
	color: #111;
	font-family: var(--font);
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	transition:
		background-color 0.15s ease,
		border-color 0.15s ease,
		color 0.15s ease;
}

.search-page__tabs button.search-page__tab {
	cursor: pointer;
	font: inherit;
	appearance: none;
	-webkit-appearance: none;
}

.search-page__tab:hover,
.search-page__tab:focus-visible {
	background-color: #fff;
	color: #111;
	border-color: var(--red);
}

.search-page__tab--active,
.search-page__tab--active:hover,
.search-page__tab--active:focus-visible {
	background-color: var(--red);
	border-color: var(--red);
	color: #fff;
}

.search-page__results {
	min-height: 8rem;
}

.search-page__loading {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1.25rem;
	padding: 3rem 1rem 4rem;
	text-align: center;
}

.search-page__loading-spinner {
	width: 2.75rem;
	height: 2.75rem;
	border: 3px solid rgb(218 37 29 / 0.18);
	border-top-color: var(--red);
	border-radius: 50%;
	animation: search-page-spin 0.75s linear infinite;
}

.search-page__loading-text {
	margin: 0;
	max-width: 22rem;
	font-size: 1.05rem;
	line-height: 1.5;
	color: var(--text);
}

@keyframes search-page-spin {
	to {
		transform: rotate(360deg);
	}
}

.search-page__empty--error {
	color: var(--red-dark);
}

.search-page__empty {
	font-family: var(--font);
	font-size: 1.05rem;
	font-weight: 600;
	color: #111;
	margin: 0 0 1rem;
}

.hp-tile-type-badge {
	position: absolute;
	top: 0.75rem;
	left: 0.75rem;
	z-index: 4;
	max-width: min(62%, 14rem);
	padding: 0.28rem 0.7rem;
	border-radius: 999px;
	background-color: var(--red);
	color: #fff;
	font-family: var(--font);
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1.25;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	pointer-events: none;
}

@media (max-width: 575.98px) {
	.search-page__form {
		flex-wrap: wrap;
		padding: 0.75rem;
	}

	.search-page__input {
		flex: 1 1 calc(100% - 2rem);
	}

	.search-page__submit {
		width: 100%;
	}
}
