/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://chata-jedlova.cz
 Description:  Child theme pro Chata Jedlová V2 založený na GeneratePress.
 Author:       Chata Jedlová
 Author URI:   https://chata-jedlova.cz
 Template:     generatepress
 Version:      1.0.2
 Text Domain:  generatepress-child
*/

/* Vlastní styly pro Chata Jedlová */

/* ── Logo ────────────────────────────────────────────────────────────────── */
.site-branding {
	display: flex;
	align-items: center;
	flex-shrink: 0;
}

.site-logo-link {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
	outline-offset: 4px;
}

.site-logo {
	max-height: 56px;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
	transition: opacity 0.2s ease;
}

.site-logo-link:hover .site-logo,
.site-logo-link:focus-visible .site-logo {
	opacity: 0.85;
}

@media (max-width: 768px) {
	.site-logo {
		max-height: 40px;
	}
}

/* Textový fallback (když není logo nahráno) */
.site-title-link {
	text-decoration: none;
}

.site-title-link .site-title {
	font-size: 1.25rem;
	font-weight: 700;
	color: #ffffff;
	text-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
	transition: color 0.2s ease;
}

/* ── Mobile hamburger ─────────────────────────────────────────────────────── */
.chata-mobile-menu-toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	background: none;
	border: none;
	cursor: pointer;
	padding: 8px;
	border-radius: 6px;
	transition: background 0.2s ease;
	flex-shrink: 0;
}

.chata-mobile-menu-toggle:hover {
	background: rgba(255, 255, 255, 0.15);
}

.hamburger-bar {
	display: block;
	width: 22px;
	height: 2px;
	background: #ffffff;
	border-radius: 2px;
	transition: transform 0.25s ease, opacity 0.2s ease;
}

/* Křížek při otevřeném menu */
.chata-mobile-menu-toggle[aria-expanded="true"] .hamburger-bar:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}
.chata-mobile-menu-toggle[aria-expanded="true"] .hamburger-bar:nth-child(2) {
	opacity: 0;
}
.chata-mobile-menu-toggle[aria-expanded="true"] .hamburger-bar:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* Po srolování — tmavý hamburger */
.site-header.cj-scrolled .hamburger-bar {
	background: #1a2421;
}

/* ── Mobile menu drawer ─────────────────────────────────────────────── */
.chata-mobile-menu {
	display: none;
}

.chata-mobile-menu.is-open {
	display: flex;
	flex-direction: column;
	gap: 0;
	position: fixed;
	top: var(--header-height, 60px);
	left: 0;
	right: 0;
	bottom: 0;
	/* Explicitní výška pro mobilní prohlížeče s dynamickým viewport (schovaná lišta) */
	height: calc(100vh - var(--header-height, 60px));
	height: calc(100dvh - var(--header-height, 60px));
	padding: 1.5rem 1.25rem 2rem;
	background: var(--cj-surface, #ffffff);
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
	overflow-y: auto;
	z-index: 9999;
	-webkit-overflow-scrolling: touch;
	animation: drawerSlideIn 0.22s ease;
}

@keyframes drawerSlideIn {
	from { opacity: 0; transform: translateY(-8px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* =============================================================================
   MOBILNÍ NAVIGACE V DRAWERU
   ID selektor #chata-mobile-menu zajišťuje specifičnost nad GP styly.
   ============================================================================= */

/* Seznam — striktně pod sebou */
.chata-mobile-nav__list,
#chata-mobile-menu ul {
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	width: 100% !important;
	list-style: none !important;
	margin: 0.75rem 0 0 !important;
	padding: 0 !important;
	gap: 4px !important;
}

/* Položky — blok na celou šířku */
.chata-mobile-nav__list li,
#chata-mobile-menu li {
	display: block !important;
	width: 100% !important;
	float: none !important;
}

/* Odkazy — plná klikací plocha (finger-friendly 48px min) */
.chata-mobile-nav__list li a,
#chata-mobile-menu li a {
	display: block !important;
	width: 100% !important;
	box-sizing: border-box !important;
	padding: 0.8rem 1rem !important;
	color: var(--chata-text-dark, #1a2421) !important;
	font-size: 1.05rem !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	border-radius: 8px !important;
	transition: background 0.15s ease !important;
	text-shadow: none !important;
}

.chata-mobile-nav__list li a:hover,
#chata-mobile-menu li a:hover {
	background: rgba(26, 36, 33, 0.07) !important;
	color: var(--chata-text-dark, #1a2421) !important;
}

/* CTA tlačítko "Rezervovat" */
.chata-mobile-nav__list li.nav-cta > a,
.chata-mobile-nav__list li.menu-item.nav-cta a,
#chata-mobile-menu li.nav-cta a {
	background: #2d5a27 !important;
	color: #ffffff !important;
	font-weight: 700 !important;
	text-align: center !important;
	margin-top: 0.5rem !important;
	padding: 0.9rem 1rem !important;
}

.chata-mobile-nav__list li.nav-cta > a:hover,
#chata-mobile-menu li.nav-cta a:hover {
	background: #23471f !important;
}

/* Podmínky — standardní odkaz (menší důraz) */
.chata-mobile-nav__list li:last-child > a:not([class*="nav-cta"]),
#chata-mobile-menu li:last-child > a:not([class*="nav-cta"]) {
	background: none !important;
	color: var(--chata-text-dark, #1a2421) !important;
	font-weight: 500 !important;
	opacity: 0.65;
}

.chata-mobile-nav__list li:last-child > a:not([class*="nav-cta"]):hover,
#chata-mobile-menu li:last-child > a:not([class*="nav-cta"]):hover {
	opacity: 1 !important;
	background: rgba(26, 36, 33, 0.07) !important;
}

@media (max-width: 1024px) {
	.chata-mobile-menu-toggle {
		display: flex;
	}
}

/* ── Language Switcher (Polylang) ─────────────────────────────────────────────── */
.language-switcher,
.chata-lang-switcher {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	list-style: none;
	margin: 0;
	padding: 0 0 0 0.5rem;
	border-left: 1px solid rgba(255, 255, 255, 0.25);
}

.language-switcher li,
.chata-lang-switcher li {
	display: inline-flex;
	align-items: center;
}

.language-switcher a,
.chata-lang-switcher a {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	text-decoration: none;
	font-weight: 600;
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: rgba(255, 255, 255, 0.75);
	padding: 0.3rem 0.5rem;
	border-radius: 5px;
	transition: color 0.2s ease, background 0.2s ease, opacity 0.2s ease;
	white-space: nowrap;
}

.language-switcher a:hover,
.chata-lang-switcher a:hover {
	color: #ffffff;
	background: rgba(255, 255, 255, 0.15);
}

/* Aktivní jazyk */
.language-switcher .current-lang a,
.language-switcher li.current-lang a,
.chata-lang-switcher .current-lang a {
	color: #ffffff;
	font-weight: 700;
	background: rgba(255, 255, 255, 0.2);
}

/* Vlajky */
.language-switcher img.pll-icon,
.language-switcher img.polylang-flag,
.chata-lang-switcher img {
	width: 16px;
	height: 12px;
	object-fit: cover;
	border-radius: 2px;
	flex-shrink: 0;
}

/* Po srolování — tmavé linky */
.site-header.cj-scrolled .language-switcher,
.site-header.cj-scrolled .chata-lang-switcher {
	border-left-color: rgba(26, 36, 33, 0.2);
}

.site-header.cj-scrolled .language-switcher a,
.site-header.cj-scrolled .chata-lang-switcher a {
	color: rgba(26, 36, 33, 0.65);
}

.site-header.cj-scrolled .language-switcher a:hover,
.site-header.cj-scrolled .chata-lang-switcher a:hover {
	color: var(--chata-text-dark, #1a2421);
	background: rgba(26, 36, 33, 0.08);
}

.site-header.cj-scrolled .language-switcher .current-lang a,
.site-header.cj-scrolled .chata-lang-switcher .current-lang a {
	color: var(--chata-text-dark, #1a2421);
	background: rgba(26, 36, 33, 0.1);
}

/* Na mobilu — lang switcher v draweru (bílé pozadí draweru) */
#chata-mobile-menu .language-switcher,
.chata-mobile-menu .language-switcher {
	display: flex !important;
	flex-direction: row !important;
	justify-content: center !important;
	align-items: center !important;
	gap: 12px !important;
	width: 100% !important;
	border-left: none !important;
	padding: 0.9rem 0 0 !important;
	margin-top: 1rem !important;
	border-top: 1px solid rgba(0, 0, 0, 0.1) !important;
	list-style: none !important;
}

#chata-mobile-menu .language-switcher li,
.chata-mobile-menu .language-switcher li {
	display: inline-flex !important;
	width: auto !important;
	float: none !important;
}

#chata-mobile-menu .language-switcher a,
.chata-mobile-menu .language-switcher a {
	display: inline-flex !important;
	align-items: center !important;
	gap: 5px !important;
	padding: 0.45rem 0.85rem !important;
	border-radius: 8px !important;
	color: var(--chata-text-muted, #4a5568) !important;
	font-size: 0.85rem !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.04em !important;
	width: auto !important;
	text-shadow: none !important;
	transition: background 0.15s ease !important;
}

#chata-mobile-menu .language-switcher a:hover,
.chata-mobile-menu .language-switcher a:hover {
	background: rgba(26, 36, 33, 0.07) !important;
	color: var(--chata-text-dark, #1a2421) !important;
}

#chata-mobile-menu .language-switcher .current-lang a,
.chata-mobile-menu .language-switcher .current-lang a {
	color: var(--chata-text-dark, #1a2421) !important;
	background: rgba(26, 36, 33, 0.09) !important;
}

@media (max-width: 1024px) {
	/* Skryj language switcher v headeru na tabletech a mobilu, je v draweru */
	.site-header-wrapper .language-switcher {
		display: none;
	}
}

/* -----------------------------------------------------------------------------
 * Mobile Floating CTA Bar (Fixed at bottom for mobile screens <= 768px)
 * ----------------------------------------------------------------------------- */
.mobile-floating-cta-bar {
	display: none;
}

@media (max-width: 768px) {
	.mobile-floating-cta-bar {
		display: flex;
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		padding: 0.75rem 1rem calc(0.75rem + env(safe-area-inset-bottom));
		background: rgba(26, 36, 33, 0.94);
		backdrop-filter: blur(12px);
		-webkit-backdrop-filter: blur(12px);
		border-top: 1px solid rgba(255, 255, 255, 0.15);
		box-shadow: 0 -6px 24px rgba(0, 0, 0, 0.35);
		z-index: 9999;
		justify-content: center;
		align-items: center;
	}

	.btn-mobile-cta {
		width: 100%;
		max-width: 480px;
		height: 48px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		font-size: 1.05rem;
		font-weight: 700;
		color: #ffffff !important;
		background-color: #2e7d32;
		border: 1px solid #4caf50;
		border-radius: 8px;
		text-decoration: none !important;
		box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
		transition: background-color 0.2s ease, transform 0.15s ease;
	}

	.btn-mobile-cta:hover,
	.btn-mobile-cta:focus-visible,
	.btn-mobile-cta:active {
		background-color: #1b5e20;
		color: #ffffff !important;
		outline: none;
	}

	body {
		padding-bottom: 76px;
	}
}

/* -----------------------------------------------------------------------------
 * HYPER-SPECIFIC HERO BOOKING BAR OVERRIDES (.hero-booking-wrapper - Desktop & Mobile)
 * ----------------------------------------------------------------------------- */
div.hero-booking-wrapper,
section.hero-booking-section div.hero-booking-wrapper {
	background: var(--cj-glass-bg, rgba(255, 255, 255, 0.97)) !important;
	backdrop-filter: blur(16px) !important;
	-webkit-backdrop-filter: blur(16px) !important;
	border: 1px solid rgba(255, 255, 255, 0.5) !important;
	border-radius: 16px !important;
	padding: 0.85rem 1.25rem !important; /* Compact, balanced padding */
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.14) !important;
	max-width: 1060px !important;
	margin: -3.25rem auto 2rem !important;
	position: relative !important;
	z-index: 100 !important;
	box-sizing: border-box !important;
	overflow: hidden !important;
}

/* Force zero margins and paddings on all container divs and forms */
div.hero-booking-wrapper .hbook-wrapper,
div.hero-booking-wrapper .hb-booking-search-form,
div.hero-booking-wrapper .hb-search-fields-and-submit,
div.hero-booking-wrapper form,
div.hero-booking-wrapper div {
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	box-shadow: none !important;
	background: transparent !important;
}

/* HIDE all empty/unused space-wasting paragraphs & elements under search fields */
div.hero-booking-wrapper .hb-title,
div.hero-booking-wrapper .hb-title-search-form,
div.hero-booking-wrapper .hb-searched-summary,
div.hero-booking-wrapper .hb-admin-search-type-wrapper,
div.hero-booking-wrapper [class*="admin_search_type"],
div.hero-booking-wrapper p.hb-search-error,
div.hero-booking-wrapper p.hb-search-no-result,
div.hero-booking-wrapper p.hb-bottom-area,
div.hero-booking-wrapper .hb-booking-searching,
div.hero-booking-wrapper .hb-multi-accom-people-selection-wrapper,
div.hero-booking-wrapper form.hb-booking-details-form,
div.hero-booking-wrapper .hb-booking-details-form,
div.hero-booking-wrapper .hb-booking-summary,
div.hero-booking-wrapper .hb-confirm-booking-form,
div.hero-booking-wrapper .hb-select-accom,
div.hero-booking-wrapper .hb-search-results,
div.hero-booking-wrapper .hb-accom-list:empty,
div.hero-booking-wrapper .hb-accom-list {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	height: 0 !important;
	min-height: 0 !important;
	max-height: 0 !important;
	line-height: 0 !important;
	font-size: 0 !important;
	border: none !important;
	overflow: hidden !important;
}

/* Show active error / loader / details ONLY when active */
div.hero-booking-wrapper p.hb-search-error.hb-show,
div.hero-booking-wrapper p.hb-search-no-result.hb-show,
div.hero-booking-wrapper .hb-booking-searching.hb-show {
	display: block !important;
	height: auto !important;
	min-height: auto !important;
	max-height: none !important;
	line-height: 1.4 !important;
	font-size: 0.875rem !important;
	margin-top: 0.75rem !important;
	padding: 0.5rem 0.75rem !important;
}

div.hero-booking-wrapper .hb-booking-details-form.hb-show,
div.hero-booking-wrapper .hb-booking-summary.hb-show,
div.hero-booking-wrapper .hb-search-results.hb-show,
div.hero-booking-wrapper .hb-accom-list:not(:empty) {
	display: block !important;
	height: auto !important;
	min-height: auto !important;
	max-height: none !important;
	line-height: 1.5 !important;
	font-size: 1rem !important;
	margin-top: 1rem !important;
	padding-top: 1rem !important;
	border-top: 1px solid var(--chata-border, #e2e8f0) !important;
}

/* 1-row flexbox layout for search fields */
div.hero-booking-wrapper .hb-search-fields {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: flex-end !important;
	justify-content: space-between !important;
	gap: 0.75rem !important;
	margin: 0 !important;
	padding: 0 !important;
	width: 100% !important;
	box-sizing: border-box !important;
}

/* Disable clearing floats pseudo-elements */
div.hero-booking-wrapper .hb-search-fields:after,
div.hero-booking-wrapper .hb-search-fields:before,
div.hero-booking-wrapper .hb-clearfix:after,
div.hero-booking-wrapper .hb-clearfix:before {
	content: none !important;
	display: none !important;
}

/* Individual field paragraphs */
div.hero-booking-wrapper .hb-search-fields > p,
div.hero-booking-wrapper p.hb-check-dates-wrapper,
div.hero-booking-wrapper p.hb-accom-number-wrapper,
div.hero-booking-wrapper p.hb-people-wrapper,
div.hero-booking-wrapper p.hb-search-submit-wrapper {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	position: relative !important;
	box-sizing: border-box !important;
	height: auto !important;
	min-height: auto !important;
	max-height: none !important;
	line-height: normal !important;
}

div.hero-booking-wrapper p.hb-check-dates-wrapper {
	flex: 1.3 1 0% !important;
	min-width: 130px !important;
}

div.hero-booking-wrapper p.hb-accom-number-wrapper {
	flex: 1.1 1 0% !important;
	min-width: 110px !important;
}

div.hero-booking-wrapper p.hb-people-wrapper {
	flex: 0.9 1 0% !important;
	min-width: 90px !important;
}

div.hero-booking-wrapper p.hb-search-submit-wrapper {
	flex: 1.3 1 0% !important;
	min-width: 130px !important;
}

/* Label styling */
div.hero-booking-wrapper label,
div.hero-booking-wrapper p label {
	display: block !important;
	font-size: 0.8rem !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.03em !important;
	margin: 0 0 0.3rem 0 !important;
	padding: 0 !important;
	color: #334155 !important;
	white-space: nowrap !important;
	line-height: 1.2 !important;
	height: auto !important;
	float: none !important;
}

/* Input and Select styling */
div.hero-booking-wrapper input[type="text"],
div.hero-booking-wrapper select {
	width: 100% !important;
	height: 44px !important;
	min-height: 44px !important;
	max-height: 44px !important;
	border: 1px solid #cbd5e1 !important;
	border-radius: 8px !important;
	padding: 0 0.75rem !important;
	font-size: 0.9rem !important;
	font-weight: 500 !important;
	background: var(--cj-surface, #ffffff) !important;
	color: #0f172a !important;
	box-sizing: border-box !important;
	box-shadow: none !important;
	margin: 0 !important;
	outline: none !important;
	line-height: 42px !important;
	appearance: auto !important;
	-webkit-appearance: auto !important;
	float: none !important;
}

div.hero-booking-wrapper input[type="text"]:focus,
div.hero-booking-wrapper select:focus {
	border-color: #2563eb !important;
	background-color: var(--cj-surface, #ffffff) !important;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15) !important;
}

/* Search Submit button */
div.hero-booking-wrapper input[type="submit"],
div.hero-booking-wrapper .hb-confirm-btn,
div.hero-booking-wrapper button[type="submit"] {
	width: 100% !important;
	height: 44px !important;
	min-height: 44px !important;
	max-height: 44px !important;
	background: #2563eb !important;
	color: #ffffff !important;
	font-size: 0.95rem !important;
	font-weight: 700 !important;
	border: none !important;
	border-radius: 8px !important;
	cursor: pointer !important;
	transition: background-color 0.2s ease, transform 0.15s ease !important;
	margin: 0 !important;
	padding: 0 1rem !important;
	line-height: 44px !important;
	box-shadow: 0 2px 6px rgba(37, 99, 235, 0.3) !important;
	float: none !important;
}

div.hero-booking-wrapper input[type="submit"]:hover,
div.hero-booking-wrapper button[type="submit"]:hover {
	background: #1d4ed8 !important;
	transform: translateY(-1px) !important;
	box-shadow: 0 4px 10px rgba(37, 99, 235, 0.4) !important;
}

/* Mobile responsive layout */
@media (max-width: 768px) {
	div.hero-booking-wrapper {
		margin: 1rem !important;
		padding: 1.25rem 1rem !important;
		max-width: 100% !important;
	}
	div.hero-booking-wrapper .hb-search-fields {
		flex-direction: column !important;
		flex-wrap: wrap !important;
		align-items: stretch !important;
		gap: 0.85rem !important;
	}
	div.hero-booking-wrapper .hb-search-fields > p,
	div.hero-booking-wrapper p.hb-check-dates-wrapper,
	div.hero-booking-wrapper p.hb-accom-number-wrapper,
	div.hero-booking-wrapper p.hb-people-wrapper,
	div.hero-booking-wrapper p.hb-search-submit-wrapper {
		width: 100% !important;
		flex: 1 1 100% !important;
		min-width: 100% !important;
	}
}

/* =============================================================================
   HEADER NA PODSTRÁNKÁCH (vše mimo homepage)
   Na HP je header průhledný nad hero bannerem; na podstránkách má být
   vždy plně bílý s tmavým textem — header je fixed, takže specifičnost !important.
   ============================================================================= */

body:not(.home) .site-header {
	background-color: var(--cj-surface, #ffffff) !important;
	background: var(--cj-surface, #ffffff) !important;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08) !important;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05) !important;
}

/* Frosted glass vrstva — na podstránkách ji potlač (bílé pozadí stačí) */
body:not(.home) .site-header::before {
	backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
	background: transparent !important;
}

/* Navigační linky tmavé */
body:not(.home) .chata-nav__list .menu-item > a {
	color: var(--chata-text-dark, #1a2421) !important;
	text-shadow: none !important;
}

body:not(.home) .chata-nav__list .menu-item > a:hover {
	background: rgba(0, 0, 0, 0.06) !important;
	color: var(--chata-text-dark, #1a2421) !important;
}

/* CTA tlačítko zachovává zelenou i na podstránkách */
body:not(.home) .chata-nav__list .menu-item.nav-cta > a {
	color: #ffffff !important;
}

/* Hamburger pruhy — tmavé */
body:not(.home) .hamburger-bar {
	background: #222222 !important;
}

/* Telefonní číslo tmavé */
body:not(.home) .header-phone-number {
	color: var(--chata-text-dark, #1a2421) !important;
}

body:not(.home) .header-phone-btn {
	/* Zelené tlačítko se zachová — pouze text uvnitř */
	color: #ffffff !important;
}

/* Lang switcher na podstránkách — tmavý text */
body:not(.home) .site-header .language-switcher {
	border-left-color: rgba(0, 0, 0, 0.12) !important;
}

body:not(.home) .site-header .language-switcher a {
	color: var(--chata-text-muted, rgba(34, 34, 34, 0.65)) !important;
	text-shadow: none !important;
}

body:not(.home) .site-header .language-switcher a:hover {
	color: var(--chata-text-dark, #1a2421) !important;
	background: rgba(0, 0, 0, 0.06) !important;
}

body:not(.home) .site-header .language-switcher .current-lang a {
	color: var(--chata-text-dark, #1a2421) !important;
	background: rgba(0, 0, 0, 0.08) !important;
}

/* Odsazení obsahu — fallback pokud #page padding nestačí (GP override) */
body:not(.home) .site-main,
body:not(.home) #main {
	padding-top: 0; /* kompenzace je na #page přes var(--header-height) */
}

/* Explicitní odsazení pro šablony Kontakt a VOP (hero má vlastní padding-top) */
.contact-page-main,
.terms-page-main {
	padding-top: 0; /* hero sekce obsahuje padding-top = header-height + spacing */
}

/* =============================================================================
   KONTAKT & VOP — Stránkové šablony
   ============================================================================= */

/* ── Sdílené: hero záhlaví stránek ──────────────────────────────────────── */
.contact-page-hero,
.vop-page-hero {
	background: var(--chata-bg-light);
	border-bottom: 1px solid var(--chata-border, #e2e8f0);
	color: var(--chata-text-dark, #1a2421);
	padding: calc(var(--header-height, 68px) + 2.5rem) 1.5rem 2.5rem;
	text-align: center;
}

.contact-page-hero__inner,
.vop-page-hero__inner {
	max-width: 780px;
	margin: 0 auto;
}

.contact-page-hero__title,
.vop-page-hero__title {
	font-size: clamp(1.75rem, 4vw, 2.75rem);
	font-weight: 800;
	margin: 0 0 0.75rem;
	letter-spacing: -0.02em;
	color: var(--chata-text-dark, #1a2421);
}

.contact-page-hero__subtitle {
	font-size: 1.05rem;
	color: var(--chata-text-muted, #4a5568);
	margin: 0;
	line-height: 1.6;
}

.vop-page-hero__meta {
	font-size: 0.875rem;
	color: var(--chata-text-muted, #4a5568);
	margin: 0;
}

/* ── KONTAKT: dvousloupcová mřížka ──────────────────────────────────────── */
.contact-page-main {
	background: var(--chata-bg-light);
	min-height: 60vh;
}

.contact-page-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2.5rem;
	max-width: 1200px;
	margin: 0 auto;
	padding: 3rem 1.5rem 4rem;
}

@media (max-width: 768px) {
	.contact-page-grid {
		grid-template-columns: 1fr;
		gap: 1.5rem;
		padding: 2rem 1rem 3rem;
	}
}

/* Kontaktní karta */
.contact-card {
	background: var(--cj-surface, #ffffff);
	border-radius: 16px;
	padding: 2rem;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.contact-card__heading {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--chata-text-dark, #1a2421);
	margin: 0 0 0.25rem;
	padding-bottom: 0.75rem;
	border-bottom: 2px solid #e8f5e9;
}

.contact-card__subheading {
	font-size: 1rem;
	font-weight: 700;
	color: #2e7d32;
	margin: 0 0 0.75rem;
}

/* Kontaktní fakta (ikona + text) */
.contact-address {
	font-style: normal;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.contact-fact {
	display: flex;
	align-items: flex-start;
	gap: 0.85rem;
}

.contact-fact__icon {
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	background: #e8f5e9;
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #2e7d32;
}

.contact-fact__body {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	font-size: 0.9rem;
	color: var(--chata-text-muted, #4a5568);
	line-height: 1.5;
}

.contact-fact__body strong {
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--chata-text-dark, #1a2421);
}

/* Adresa na jednom řádku — inline span překoná flex-direction:column rodiče */
.contact-address-line {
	display: inline;
	white-space: normal;
}

.contact-address-line span {
	display: inline;
}

.contact-link {
	color: #2e7d32;
	text-decoration: none;
	font-weight: 500;
	transition: color 0.15s;
}

.contact-link:hover {
	color: #1b5e20;
	text-decoration: underline;
}

/* Provozovatel DL */
.contact-dl {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.contact-dl__row {
	display: flex;
	gap: 0.75rem;
	font-size: 0.875rem;
}

.contact-dl__row dt {
	font-weight: 600;
	color: var(--chata-text-muted, #4a5568);
	min-width: 120px;
	flex-shrink: 0;
}

.contact-dl__row dd {
	color: var(--chata-text-dark, #1a2421);
	margin: 0;
}

/* Check-in box */
.contact-checkin-box {
	display: flex;
	gap: 1rem;
	background: #f0f9f1;
	border-radius: 12px;
	padding: 1rem 1.25rem;
}

.checkin-item {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	flex: 1;
	color: #2e7d32;
}

.checkin-item svg {
	flex-shrink: 0;
	color: #2e7d32;
}

.checkin-item div {
	display: flex;
	flex-direction: column;
}

.checkin-item strong {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-weight: 700;
	color: var(--chata-text-dark, #1a2421);
}

.checkin-item span {
	font-size: 1rem;
	font-weight: 600;
	color: #2e7d32;
}

/* Příjezd & doprava */
.arrival-section {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.arrival-section__title {
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--chata-text-dark, #1a2421);
	margin: 0;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.arrival-section__title svg {
	color: #2e7d32;
	flex-shrink: 0;
}

.arrival-section p {
	font-size: 0.875rem;
	color: var(--chata-text-muted, #4a5568);
	margin: 0;
	line-height: 1.6;
}

.arrival-list {
	margin: 0;
	padding-left: 1.25rem;
	font-size: 0.875rem;
	color: var(--chata-text-muted, #4a5568);
	line-height: 1.7;
}

/* Mapa */
.contact-map-wrapper {
	border-radius: 12px;
	overflow: hidden;
	border: 1px solid var(--chata-border, #e2e8f0);
}

.contact-map-link {
	text-align: center;
	font-size: 0.8rem;
	margin: 0.5rem 0 0;
}

.contact-map-link a {
	color: #2e7d32;
	text-decoration: none;
}

.contact-map-link a:hover {
	text-decoration: underline;
}

/* =============================================================================
   VOP & Ubytovací řád
   ============================================================================= */

.vop-page-main {
	background: var(--chata-bg-light);
	min-height: 60vh;
}

.vop-page-layout {
	display: grid;
	grid-template-columns: 220px 1fr;
	gap: 2.5rem;
	max-width: 1100px;
	margin: 0 auto;
	padding: 3rem 1.5rem 5rem;
	align-items: start;
}

@media (max-width: 860px) {
	.vop-page-layout {
		grid-template-columns: 1fr;
		padding: 2rem 1rem 3rem;
		gap: 1.5rem;
	}
	.vop-toc {
		order: -1;
	}
}

/* TOC — obsah stránky */
.vop-toc {
	position: sticky;
	top: calc(var(--header-height, 68px) + 1.5rem);
	background: var(--cj-surface, #ffffff);
	border-radius: 12px;
	padding: 1.25rem 1.25rem 1.5rem;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
	font-size: 0.875rem;
}

@media (max-width: 860px) {
	.vop-toc {
		position: static;
		display: flex;
		flex-wrap: wrap;
		gap: 0.5rem;
		align-items: baseline;
	}
}

.vop-toc__title {
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--chata-text-muted, #4a5568);
	margin: 0 0 0.75rem;
}

.vop-toc__list {
	margin: 0;
	padding-left: 1.1rem;
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}

@media (max-width: 860px) {
	.vop-toc__list {
		flex-direction: row;
		flex-wrap: wrap;
		gap: 0.35rem;
		padding: 0;
		list-style: none;
	}

	.vop-toc__list li::before {
		content: '·';
		margin-right: 0.35rem;
	}
}

.vop-toc__list a {
	color: #2e7d32;
	text-decoration: none;
	line-height: 1.5;
	transition: color 0.15s;
}

.vop-toc__list a:hover {
	color: #1b5e20;
	text-decoration: underline;
}

/* VOP Article */
.vop-article {
	display: flex;
	flex-direction: column;
	gap: 3rem;
}

/* VOP Sekce */
.vop-section {
	background: var(--cj-surface, #ffffff);
	border-radius: 16px;
	padding: 2rem 2rem 2.25rem;
	box-shadow: 0 2px 16px rgba(0, 0, 0, 0.05);
	scroll-margin-top: calc(var(--header-height, 68px) + 1rem);
}

@media (max-width: 600px) {
	.vop-section {
		padding: 1.25rem 1rem 1.5rem;
	}
}

.vop-section__heading {
	font-size: 1.2rem;
	font-weight: 800;
	color: var(--chata-text-dark, #1a2421);
	margin: 0 0 1rem;
	padding-bottom: 0.75rem;
	border-bottom: 2px solid #e8f5e9;
}

.vop-section__subheading {
	font-size: 1rem;
	font-weight: 700;
	color: #2e7d32;
	margin: 1.5rem 0 0.5rem;
}

.vop-section__lead {
	font-size: 0.9rem;
	color: var(--chata-text-muted, #4a5568);
	margin: 0 0 1.25rem;
	line-height: 1.65;
}

.vop-list {
	margin: 0;
	padding-left: 1.25rem;
	color: var(--chata-text-muted, #4a5568);
	font-size: 0.9rem;
	line-height: 1.75;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.vop-note {
	font-size: 0.825rem;
	color: #718096;
	font-style: italic;
	background: #f7f8fa;
	border-left: 3px solid #cbd5e0;
	padding: 0.75rem 1rem;
	border-radius: 0 6px 6px 0;
	margin: 1rem 0 0;
}

/* Rychlý přehled — karty */
.vop-rules-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 1rem;
	margin-top: 1rem;
}

.vop-rule-card {
	display: flex;
	gap: 0.75rem;
	align-items: flex-start;
	background: var(--chata-bg-light);
	border-radius: 10px;
	padding: 1rem;
	border: 1px solid #e8f5e9;
}

.vop-rule-card__icon {
	width: 36px;
	height: 36px;
	background: #e8f5e9;
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	color: #2e7d32;
}

.vop-rule-card__icon--warn {
	background: #fff3e0;
	color: #e65100;
}

.vop-rule-card__body {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}

.vop-rule-card__body strong {
	font-size: 0.8rem;
	font-weight: 700;
	color: var(--chata-text-dark, #1a2421);
}

.vop-rule-card__body p {
	margin: 0;
	font-size: 0.8rem;
	color: var(--chata-text-muted, #4a5568);
	line-height: 1.45;
}

/* Storno tabulka */
.vop-table-wrapper {
	overflow-x: auto;
	border-radius: 10px;
	border: 1px solid var(--chata-border, #e2e8f0);
	margin: 1.25rem 0 0;
}

.vop-storno-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.875rem;
}

.vop-storno-table thead {
	background: #1a2421;
	color: #ffffff;
}

.vop-storno-table thead th {
	padding: 0.85rem 1rem;
	text-align: left;
	font-weight: 600;
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.vop-storno-table tbody tr {
	border-bottom: 1px solid var(--chata-border, #e2e8f0);
}

.vop-storno-table tbody td {
	padding: 0.85rem 1rem;
	color: var(--chata-text-dark, #1a2421);
	vertical-align: middle;
}

.vop-storno-row--ok td:first-child { border-left: 4px solid #2e7d32; }
.vop-storno-row--warn td:first-child { border-left: 4px solid #f59e0b; }
.vop-storno-row--err td:first-child { border-left: 4px solid #dc2626; }

.vop-storno-row--ok { background: #f0fdf4; }
.vop-storno-row--warn { background: #fffbeb; }
.vop-storno-row--err { background: #fef2f2; }

/* Storno badges */
.vop-badge {
	display: inline-block;
	padding: 0.25rem 0.65rem;
	border-radius: 999px;
	font-size: 0.75rem;
	font-weight: 700;
	white-space: nowrap;
}

.vop-badge--green { background: #dcfce7; color: #15803d; }
.vop-badge--yellow { background: #fef9c3; color: #92400e; }
.vop-badge--red { background: #fee2e2; color: #b91c1c; }

/* ADR adresa */
.vop-adr-address {
	font-style: normal;
	background: var(--chata-bg-light);
	border: 1px solid var(--chata-border, #e2e8f0);
	border-radius: 10px;
	padding: 1rem 1.25rem;
	font-size: 0.875rem;
	color: var(--chata-text-muted, #4a5568);
	line-height: 1.7;
	margin: 0.75rem 0;
}

.vop-adr-address a {
	color: #2e7d32;
	text-decoration: none;
}

.vop-adr-address a:hover {
	text-decoration: underline;
}

/**
 * Landing Page Custom Stylesheet for Chata Jedlová V2
 * Pure CSS with CSS Variables, Flexbox, & Grid (Zero External Libraries)
 */

:root {
	--chata-primary: #2e7d32;
	--chata-primary-dark: #1b5e20;
	--chata-primary-light: #e8f5e9;
	--chata-accent: #d84315;
	--chata-bg-dark: #1a2421;
	--chata-bg-light: #f8faf9;
	--chata-text-dark: #1a2421;
	--chata-text-muted: #4a5568;
	--chata-text-muted2: #64748b;
	--chata-border: #e2e8f0;
	--chata-shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.05);
	--chata-shadow-md: 0 6px 12px -2px rgba(0, 0, 0, 0.08);
	--chata-shadow-lg: 0 12px 24px -4px rgba(0, 0, 0, 0.12);
	--chata-radius: 12px;
	--chata-font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
	/* Výška headeru — používá se pro kompenzaci fixed pozice */
	--header-height: 68px;

	/* ── Dark mode tokeny (Issue #60) ──────────────────────────────────
	 * Zbytek stylesheetu čte barvy přes tyto proměnné (nebo přes
	 * var(--chata-*, #fallback)), takže přepnutím proměnných níže se
	 * přepne celá paleta webu bez zásahu do jednotlivých pravidel. */
	--cj-surface: #ffffff;
	--cj-border-alt: #e5e7eb;
	--cj-glass-bg: rgba(255, 255, 255, 0.97);
	--cj-featured-bg-start: #f0f7ff;
	--cj-featured-bg-start-green: #f0fdf4;
}

/* 1) Systémová preference prohlížeče (prefers-color-scheme: dark) —
 *    aplikuje se automaticky, pokud uživatel nemá uloženou ruční volbu. */
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) {
		--chata-primary: #4caf50;
		--chata-primary-dark: #66bb6a;
		--chata-primary-light: #1b3a1e;
		--chata-accent: #ff7043;
		--chata-bg-dark: #05070a;
		--chata-bg-light: #14181a;
		--chata-text-dark: #e8ecef;
		--chata-text-muted: #a8b3ad;
		--chata-text-muted2: #9aa5b1;
		--chata-border: #2c3436;
		--cj-surface: #1c2224;
		--cj-border-alt: #333c3f;
		--cj-glass-bg: rgba(20, 24, 26, 0.94);
		--cj-featured-bg-start: #182634;
		--cj-featured-bg-start-green: #16241a;

		/* GeneratePress / WordPress globální barevné proměnné (theme.json).
		   Bez tohoto override zůstává veškerý běžný text (--contrast) tmavý
		   (#222222) i po přepnutí pozadí na tmavé — text zmizí na tmavém
		   pozadí. Musí se přemapovat na světlé/tmavé ekvivalenty stejně
		   jako --chata-* proměnné výše. */
		--contrast: #e8ecef;
		--contrast-2: #a8b3ad;
		--contrast-3: #6b7680;
		--base: #262e30;
		--base-2: #1c2224;
		--base-3: #14181a;
	}
}

/* 2) Ruční přepnutí uživatelem (uloženo v localStorage, viz functions.php)
 *    — má přednost před systémovou preferencí v obou směrech. */
:root[data-theme="dark"] {
	--chata-primary: #4caf50;
	--chata-primary-dark: #66bb6a;
	--chata-primary-light: #1b3a1e;
	--chata-accent: #ff7043;
	--chata-bg-dark: #05070a;
	--chata-bg-light: #14181a;
	--chata-text-dark: #e8ecef;
	--chata-text-muted: #a8b3ad;
	--chata-text-muted2: #9aa5b1;
	--chata-border: #2c3436;
	--cj-surface: #1c2224;
	--cj-border-alt: #333c3f;
	--cj-glass-bg: rgba(20, 24, 26, 0.94);
	--cj-featured-bg-start: #182634;
	--cj-featured-bg-start-green: #16241a;

	/* GeneratePress / WordPress globální barevné proměnné (theme.json) —
	   stejný důvod jako u systémové preference výše: bez override zůstává
	   text natvrdo tmavý (#222222) na tmavém pozadí. */
	--contrast: #e8ecef;
	--contrast-2: #a8b3ad;
	--contrast-3: #6b7680;
	--base: #262e30;
	--base-2: #1c2224;
	--base-3: #14181a;
}

:root[data-theme="light"] {
	--chata-primary: #2e7d32;
	--chata-primary-dark: #1b5e20;
	--chata-primary-light: #e8f5e9;
	--chata-accent: #d84315;
	--chata-bg-dark: #1a2421;
	--chata-bg-light: #f8faf9;
	--chata-text-dark: #1a2421;
	--chata-text-muted: #4a5568;
	--chata-text-muted2: #64748b;
	--chata-border: #e2e8f0;
	--cj-surface: #ffffff;
	--cj-border-alt: #e5e7eb;
	--cj-glass-bg: rgba(255, 255, 255, 0.97);
	--cj-featured-bg-start: #f0f7ff;
	--cj-featured-bg-start-green: #f0fdf4;
}

html {
	background-color: var(--cj-surface);
	transition: background-color 0.25s ease;
}

body {
	background-color: var(--chata-bg-light);
}

/* ── Přepínač tmavého režimu (tlačítko v headeru + draweru) ───────── */
.cj-theme-toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	background: none;
	border: none;
	cursor: pointer;
	padding: 6px;
	border-radius: 999px;
	color: rgba(26, 36, 33, 0.75);
	transition: background 0.2s ease, color 0.2s ease;
	flex-shrink: 0;
}

.cj-theme-toggle:hover {
	background: rgba(26, 36, 33, 0.08);
}

body:not(.home) .cj-theme-toggle,
.site-header.cj-scrolled .cj-theme-toggle {
	color: rgba(26, 36, 33, 0.75);
}

:root[data-theme="dark"] .cj-theme-toggle,
:root[data-theme="dark"] body:not(.home) .cj-theme-toggle,
:root[data-theme="dark"] .site-header.cj-scrolled .cj-theme-toggle {
	color: rgba(232, 236, 239, 0.85);
}

:root[data-theme="dark"] .cj-theme-toggle:hover {
	background: rgba(232, 236, 239, 0.12);
}

.cj-theme-toggle__icon {
	display: none;
}

/* Výchozí (light) stav: zobraz slunce (klik přepne na tmavý režim) */
.cj-theme-toggle__icon--sun {
	display: block;
}

:root[data-theme="dark"] .cj-theme-toggle__icon--sun {
	display: none;
}

:root[data-theme="dark"] .cj-theme-toggle__icon--moon {
	display: block;
}

.cj-theme-toggle__label {
	display: none;
}

.cj-theme-toggle--mobile {
	width: 100%;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.65rem 1rem;
	margin: 0.75rem 0;
	border: 1px solid var(--chata-border);
	border-radius: 999px;
	color: var(--chata-text-dark);
}

.cj-theme-toggle--mobile .cj-theme-toggle__label {
	display: inline;
	font-size: 0.92rem;
	font-weight: 600;
}

@media (max-width: 1024px) {
	.header-right .cj-theme-toggle:not(.cj-theme-toggle--mobile) {
		display: none;
	}
}

/* ── Pevná hlavička ────────────────────────────────────────────────────────────────
 * position: fixed — pod obsáh nesroluje.
 * backdrop-filter je na ::before pseudo-elementu — NESMÍ být přímo na headeru,
 * protože by vytvářel nový containing block pro position:fixed potomky (drawer!).
 * Hero sekce má padding-top = var(--header-height) aby začínala pod headerem.
 * ----------------------------------------------------------------------- */
body .site-header {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	width: 100% !important;
	z-index: 9000 !important;
	background: var(--cj-glass-bg, rgba(255, 255, 255, 0.97)) !important;
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06), 0 4px 16px rgba(0, 0, 0, 0.06) !important;
	border-bottom: none !important;
	overflow: visible !important; /* Kritické: nesmí ořezávat drawer */
}

/* Frosted glass efekt přes pseudo-element — neovlivňuje fixed positioning potomků */
body .site-header::before {
	content: '';
	position: absolute;
	inset: 0;
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	z-index: -1;
	pointer-events: none;
}

/* Layout wrapperu headeru */
body .site-header-wrapper {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 0.75rem !important;
	max-width: 1320px !important;
	margin: 0 auto !important;
	padding: 0 1.5rem !important;
	height: var(--header-height) !important;
	box-sizing: border-box !important;
}

/* .header-right — skupinuje: lang switcher + telefon + hamburger */
.header-right {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-left: auto;
	flex-shrink: 0;
}

/* ── Navigace tmavá (pevné pozadí) ──────────────────────────────────── */
.site-header .chata-nav__list .menu-item > a {
	color: var(--chata-text-dark, #1a2421) !important;
	text-shadow: none !important;
}

.site-header .chata-nav__list .menu-item > a:hover {
	background: rgba(26, 36, 33, 0.07) !important;
	color: var(--chata-text-dark, #1a2421) !important;
}

.site-header .chata-nav__list .menu-item.nav-cta > a {
	color: #ffffff !important;
}

/* Language switcher — tmavá varianta (vzdy solid header) */
.site-header .language-switcher {
	border-left-color: rgba(26, 36, 33, 0.15) !important;
}

.site-header .language-switcher a {
	color: rgba(26, 36, 33, 0.6) !important;
	text-shadow: none !important;
}

.site-header .language-switcher a:hover {
	color: var(--chata-text-dark, #1a2421) !important;
	background: rgba(26, 36, 33, 0.07) !important;
}

.site-header .language-switcher .current-lang a {
	color: var(--chata-text-dark, #1a2421) !important;
	background: rgba(26, 36, 33, 0.09) !important;
}

/* Hamburger — tmavý */
.site-header .hamburger-bar {
	background: #1a2421 !important;
}

/* Hamburger — v nočním (tmavém) režimu musí být světlý, jinak je neviditelný
   na tmavém pozadí headeru. Platí pro ruční přepnutí i systémovou preferenci. */
:root[data-theme="dark"] .hamburger-bar {
	background: var(--chata-text-dark, #e8ecef) !important;
}

@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .hamburger-bar {
		background: var(--chata-text-dark, #e8ecef) !important;
	}
}

/* Logo — v nočním (tmavém) režimu se zobrazí samostatná invertovaná verze
   loga (assets/img/jedlova-logo-dark-*.webp) místo CSS filter: invert(1),
   protože ten měnil i barevné akcenty v logu. Platí pro ruční přepnutí
   i systémovou preferenci, stejně jako u hamburger ikony výše. */
.site-logo-picture--dark {
	display: none;
}

:root[data-theme="dark"] .site-logo-picture--light {
	display: none;
}
:root[data-theme="dark"] .site-logo-picture--dark {
	display: block;
}

@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .site-logo-picture--light {
		display: none;
	}
	:root:not([data-theme="light"]) .site-logo-picture--dark {
		display: block;
	}
}

/* ── Telefonní CTA tlačítko ─────────────────────────────────────────── */
.header-phone-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.5rem 1rem;
	background: #2e7d32;
	color: #ffffff !important;
	text-decoration: none;
	font-size: 0.875rem;
	font-weight: 700;
	border-radius: 999px;
	white-space: nowrap;
	transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
	box-shadow: 0 2px 8px rgba(46, 125, 50, 0.35);
	flex-shrink: 0;
}

.header-phone-btn:hover {
	background: #1b5e20;
	transform: translateY(-1px);
	box-shadow: 0 4px 14px rgba(46, 125, 50, 0.45);
}

.header-phone-btn:active {
	transform: translateY(0);
}

.header-phone-icon {
	flex-shrink: 0;
}

/* Na tabletech a mobilu: skryj číslo, zobraz jen ikonu */
@media (max-width: 1024px) {
	.header-phone-number {
		display: none;
	}
	.header-phone-btn {
		padding: 0.5rem;
		width: 40px;
		height: 40px;
		justify-content: center;
	}
}

/* ── Telefonní CTA v mobilním draweru ───────────────────────────────── */
.mobile-phone-cta {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	width: 100%;
	padding: 1rem;
	background: #2e7d32;
	color: #ffffff !important;
	text-decoration: none;
	font-size: 1.1rem;
	font-weight: 700;
	border-radius: 10px;
	margin-bottom: 0.5rem;
	box-shadow: 0 2px 10px rgba(46, 125, 50, 0.4);
	transition: background 0.2s ease;
}

.mobile-phone-cta:hover {
	background: #1b5e20;
}

/* ── Hero a obsah — kompenzace fixed headeru ─────────────────────────────── */
body .landing-page-main {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

body .hero-section {
	/* Hero začíná pod fixním headerem */
	padding-top: calc(var(--header-height) + 0px) !important;
	min-height: calc(100svh) !important;
	box-sizing: border-box !important;
}

/* Veškerý obsah mimo hero — kompenzace pro non-homepage */
body:not(.home) #page {
	padding-top: var(--header-height);
}

@media (max-width: 1024px) {
	:root {
		--header-height: 60px;
	}
	.site-header-wrapper {
		padding: 0 1rem !important;
	}
}

/* Potlačení starých transparent-header pravidel (nejsou potřeba) */
body.home .site-header:not(.cj-scrolled) .main-navigation a,
body.home .site-header:not(.cj-scrolled) .site-title a,
body.home .site-header:not(.cj-scrolled) .site-title { color: inherit !important; text-shadow: none !important; }
body.home .site-header:not(.cj-scrolled) .chata-lang-switcher .lang-link { color: inherit !important; border-color: inherit !important; }
body.home .site-header:not(.cj-scrolled) .mobile-menu-control-wrapper button,
body.home .site-header:not(.cj-scrolled) .menu-toggle { color: inherit !important; }


/* ── Chata Nav — vlastní plovoucí navigace ───────────────────────────────────
 * Renderuje se přes generate_before_header_content hook.
 * Zobrazuje anchor linky na sekce HP, plně responzivní.
 * --------------------------------------------------------------------------- */
.chata-nav {
	display: flex;
	align-items: center;
	margin-left: auto;
}

.chata-nav__list {
	display: flex;
	align-items: center;
	gap: 0.25rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.chata-nav__list .menu-item > a {
	display: inline-flex;
	align-items: center;
	padding: 0.45rem 14px;
	font-size: 16px;
	font-weight: 500;
	color: #ffffff;
	text-decoration: none;
	border-radius: 6px;
	letter-spacing: 0.01em;
	transition: color 0.2s ease, background 0.2s ease;
	white-space: nowrap;
	text-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
}

/* Hover efekt nad hero */
.chata-nav__list .menu-item > a:hover {
	background: rgba(255, 255, 255, 0.18);
	text-shadow: none;
}

/* CTA tlačítko "Rezervovat" — zelené pill, navázáno výhradně na .nav-cta */
.chata-nav__list .menu-item.nav-cta > a {
	background: #2d5a27;
	color: #ffffff !important;
	font-weight: 700;
	text-shadow: none !important;
	padding: 0.45rem 1.1rem;
	border-radius: 20px;
	box-shadow: 0 2px 8px rgba(46, 125, 50, 0.4);
}

.chata-nav__list .menu-item.nav-cta > a:hover {
	background: #23471f !important;
	box-shadow: 0 4px 12px rgba(46, 125, 50, 0.55);
	transform: translateY(-1px);
}

/* Reset: standardní textový odkaz pro položky, které nejsou .nav-cta
   (např. "Podmínky" jako poslední položka bez CTA třídy) */
.chata-nav__list .menu-item:last-child > a:not(.nav-cta) {
	background: none;
	color: inherit;
	padding: 0.45rem 0.85rem;
	border-radius: 6px;
	box-shadow: none;
	font-weight: 500;
	text-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
}

/* Po srolování — tmavé linky */
body.home .site-header.cj-scrolled .chata-nav__list .menu-item > a {
	color: var(--chata-text-dark, #1a2421) !important;
	text-shadow: none !important;
}

body.home .site-header.cj-scrolled .chata-nav__list .menu-item > a:hover {
	background: rgba(26, 36, 33, 0.08);
	color: var(--chata-text-dark, #1a2421) !important;
}

body.home .site-header.cj-scrolled .chata-nav__list .menu-item.nav-cta > a {
	color: #ffffff !important;
}

/* Aktivní položka */
.chata-nav__list .current-menu-item > a,
.chata-nav__list .menu-item > a.active {
	background: rgba(255, 255, 255, 0.25);
}

/* ── Mobile navigace ─────────────────────────────────────────────────────────
 * Na tabletech a mobilu (≤1024px) se chata-nav skryje, zobrazí se hamburger.
 * --------------------------------------------------------------------------- */
@media (max-width: 1024px) {
	.chata-nav {
		display: none;
	}
}

@media (min-width: 1025px) {
	/* Zajistí, že GP menu + naše nav jsou vedle sebe */
	.site-header-wrapper {
		display: flex;
		align-items: center;
		justify-content: space-between;
		flex-wrap: nowrap;
		gap: 1rem;
	}
}

/* Reset \u0026 Base Container */
.landing-page-main {
	width: 100%;
	font-family: var(--chata-font-sans);
	color: var(--chata-text-dark);
	background-color: var(--cj-surface, #ffffff);
	overflow-x: hidden;
}

/* HBook Booking Search Bar Section */
.booking-search-section {
	position: relative;
	width: 100%;
	background-color: var(--chata-bg-dark);
	color: #ffffff;
	padding: 3rem 1.5rem;
	box-sizing: border-box;
}

.booking-search-container {
	max-width: 1100px;
	margin: 0 auto;
	background: rgba(255, 255, 255, 0.05);
	backdrop-filter: blur(10px);
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: var(--chata-radius);
	padding: 2rem;
	box-shadow: var(--chata-shadow-lg);
}

.booking-search-title {
	text-align: center;
	font-size: clamp(1.5rem, 3vw, 2rem);
	color: #ffffff;
	margin: 0 0 1.5rem 0;
	font-weight: 700;
}

.hb-search-form-wrapper {
	width: 100%;
}

.hb-search-form-wrapper form {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	align-items: flex-end;
	justify-content: center;
}

.hb-search-form-wrapper input,
.hb-search-form-wrapper select {
	padding: 0.75rem 1rem;
	font-size: 1rem;
	border-radius: 6px;
	border: 1px solid var(--chata-border);
	background-color: var(--cj-surface, #ffffff);
	color: var(--chata-text-dark);
}

.hb-search-form-wrapper input[type="submit"],
.hb-search-form-wrapper button[type="submit"] {
	background-color: var(--chata-primary);
	color: #ffffff;
	font-weight: 600;
	border: none;
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.15s ease;
	padding: 0.85rem 2rem;
}

.hb-search-form-wrapper input[type="submit"]:hover,
.hb-search-form-wrapper button[type="submit"]:hover {
	background-color: var(--chata-primary-dark);
	transform: translateY(-1px);
}

/* USPs Section (CSS Grid) */
.usps-section {
	width: 100%;
	background-color: var(--chata-bg-light);
	padding: 5rem 1.5rem;
	box-sizing: border-box;
}

.usps-container {
	max-width: 1200px;
	margin: 0 auto;
}

.usps-header {
	text-align: center;
	margin-bottom: 3.5rem;
}

.usps-header h2 {
	font-size: clamp(1.75rem, 3.5vw, 2.5rem);
	color: var(--chata-text-dark);
	margin: 0 0 0.75rem 0;
	font-weight: 700;
}

.usps-header p {
	font-size: 1.125rem;
	color: var(--chata-text-muted);
	margin: 0;
}

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

.usp-card {
	background: var(--cj-surface, #ffffff);
	border: 1px solid var(--chata-border);
	border-radius: var(--chata-radius);
	padding: 2rem;
	display: flex;
	flex-direction: column;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	box-shadow: var(--chata-shadow-sm);
}

.usp-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--chata-shadow-md);
}

.usp-image-thumb {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 10;
	border-radius: 8px;
	overflow: hidden;
	margin-bottom: 1.25rem;
	background-color: #edf2f7;
}

.usp-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.25s ease;
}

.usp-card:hover .usp-img {
	transform: scale(1.03);
}

.usp-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	background-color: var(--chata-primary-light);
	color: var(--chata-primary);
	border-radius: 12px;
	margin-bottom: 1.25rem;
}

.usp-title {
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--chata-text-dark);
	margin: 0 0 0.5rem 0;
}

.usp-desc {
	font-size: 0.975rem;
	color: var(--chata-text-muted);
	line-height: 1.6;
	margin: 0;
}

/* Gallery Section (Vanilla JS Lightbox Support) */
.gallery-section {
	width: 100%;
	padding: 5rem 1.5rem;
	box-sizing: border-box;
	background-color: var(--cj-surface, #ffffff);
}

.gallery-container {
	max-width: 1200px;
	margin: 0 auto;
}

.gallery-header {
	text-align: center;
	margin-bottom: 3.5rem;
}

.gallery-header h2 {
	font-size: clamp(1.75rem, 3.5vw, 2.5rem);
	color: var(--chata-text-dark);
	margin: 0 0 0.75rem 0;
	font-weight: 700;
}

.gallery-header p {
	font-size: 1.125rem;
	color: var(--chata-text-muted);
	margin: 0;
}

.gallery-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: 1.5rem;
}

.gallery-item {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	border-radius: var(--chata-radius);
	overflow: hidden;
	background-color: #edf2f7;
	box-shadow: var(--chata-shadow-sm);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.gallery-item:hover,
.gallery-item:focus-visible {
	transform: scale(1.02);
	box-shadow: var(--chata-shadow-md);
	outline: 3px solid var(--chata-primary);
	outline-offset: 2px;
}

.gallery-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: opacity 0.3s ease;
}

.gallery-overlay {
	position: absolute;
	inset: 0;
	background: rgba(26, 36, 33, 0.45);
	display: flex;
	align-items: center;
	justify-content: center;
	color: #ffffff;
	opacity: 0;
	transition: opacity 0.25s ease;
}

.gallery-item:hover .gallery-overlay,
.gallery-item:focus-visible .gallery-overlay {
	opacity: 1;
}

/* FAQ Section (Vanilla JS Accordion) */
.faq-section {
	width: 100%;
	background-color: var(--chata-bg-light);
	padding: 5rem 1.5rem;
	box-sizing: border-box;
}

.faq-container {
	max-width: 860px;
	margin: 0 auto;
}

.faq-header {
	text-align: center;
	margin-bottom: 3.5rem;
}

.faq-header h2 {
	font-size: clamp(1.75rem, 3.5vw, 2.5rem);
	color: var(--chata-text-dark);
	margin: 0 0 0.75rem 0;
	font-weight: 700;
}

.faq-header p {
	font-size: 1.125rem;
	color: var(--chata-text-muted);
	margin: 0;
}

.faq-accordion {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.faq-item {
	background: var(--cj-surface, #ffffff);
	border: 1px solid var(--chata-border);
	border-radius: var(--chata-radius);
	overflow: hidden;
	box-shadow: var(--chata-shadow-sm);
}

.faq-title-heading {
	margin: 0;
	padding: 0;
}

.faq-trigger {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.25rem 1.5rem;
	background: transparent;
	border: none;
	text-align: left;
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--chata-text-dark);
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.faq-trigger:hover,
.faq-trigger:focus-visible {
	background-color: var(--chata-primary-light);
	color: var(--chata-primary-dark);
	outline: none;
}

.faq-icon {
	transition: transform 0.25s ease;
	flex-shrink: 0;
	margin-left: 1rem;
}

.faq-trigger[aria-expanded="true"] .faq-icon {
	transform: rotate(180deg);
}

.faq-panel {
	border-top: 1px solid var(--chata-border);
	padding: 1.25rem 1.5rem;
	background-color: var(--cj-surface, #ffffff);
}

.faq-content p {
	margin: 0;
	font-size: 1rem;
	line-height: 1.65;
	color: var(--chata-text-muted);
}

/* -----------------------------------------------------------------------------
 * Hero Booking Bar Styles
 * ----------------------------------------------------------------------------- */
/* -----------------------------------------------------------------------------
 * HYPER-SPECIFIC HERO BOOKING BAR OVERRIDES (.hero-booking-wrapper)
 * ----------------------------------------------------------------------------- */
div.hero-booking-wrapper,
section.hero-booking-section div.hero-booking-wrapper {
	background: var(--cj-glass-bg, rgba(255, 255, 255, 0.97)) !important;
	backdrop-filter: blur(16px) !important;
	-webkit-backdrop-filter: blur(16px) !important;
	border: 1px solid rgba(255, 255, 255, 0.5) !important;
	border-radius: 16px !important;
	padding: 0.85rem 1.25rem !important; /* Compact, balanced padding */
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.14) !important;
	max-width: 1060px !important;
	margin: -3.25rem auto 2rem !important;
	position: relative !important;
	z-index: 100 !important;
	box-sizing: border-box !important;
	overflow: hidden !important;
}

/* Force zero margins and paddings on all container divs and forms */
div.hero-booking-wrapper .hbook-wrapper,
div.hero-booking-wrapper .hb-booking-search-form,
div.hero-booking-wrapper .hb-search-fields-and-submit,
div.hero-booking-wrapper form,
div.hero-booking-wrapper div {
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	box-shadow: none !important;
	background: transparent !important;
}

/* HIDE all empty/unused space-wasting paragraphs & elements under search fields */
div.hero-booking-wrapper .hb-title,
div.hero-booking-wrapper .hb-title-search-form,
div.hero-booking-wrapper .hb-searched-summary,
div.hero-booking-wrapper .hb-admin-search-type-wrapper,
div.hero-booking-wrapper [class*="admin_search_type"],
div.hero-booking-wrapper p.hb-search-error,
div.hero-booking-wrapper p.hb-search-no-result,
div.hero-booking-wrapper p.hb-bottom-area,
div.hero-booking-wrapper .hb-booking-searching,
div.hero-booking-wrapper .hb-multi-accom-people-selection-wrapper,
div.hero-booking-wrapper form.hb-booking-details-form,
div.hero-booking-wrapper .hb-booking-details-form,
div.hero-booking-wrapper .hb-booking-summary,
div.hero-booking-wrapper .hb-confirm-booking-form,
div.hero-booking-wrapper .hb-select-accom,
div.hero-booking-wrapper .hb-search-results,
div.hero-booking-wrapper .hb-accom-list:empty,
div.hero-booking-wrapper .hb-accom-list {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	height: 0 !important;
	min-height: 0 !important;
	max-height: 0 !important;
	line-height: 0 !important;
	font-size: 0 !important;
	border: none !important;
	overflow: hidden !important;
}

/* Show active error / loader / details ONLY when active */
div.hero-booking-wrapper p.hb-search-error.hb-show,
div.hero-booking-wrapper p.hb-search-no-result.hb-show,
div.hero-booking-wrapper .hb-booking-searching.hb-show {
	display: block !important;
	height: auto !important;
	min-height: auto !important;
	max-height: none !important;
	line-height: 1.4 !important;
	font-size: 0.875rem !important;
	margin-top: 0.75rem !important;
	padding: 0.5rem 0.75rem !important;
}

div.hero-booking-wrapper .hb-booking-details-form.hb-show,
div.hero-booking-wrapper .hb-booking-summary.hb-show,
div.hero-booking-wrapper .hb-search-results.hb-show,
div.hero-booking-wrapper .hb-accom-list:not(:empty) {
	display: block !important;
	height: auto !important;
	min-height: auto !important;
	max-height: none !important;
	line-height: 1.5 !important;
	font-size: 1rem !important;
	margin-top: 1rem !important;
	padding-top: 1rem !important;
	border-top: 1px solid var(--chata-border, #e2e8f0) !important;
}

/* 1-row flexbox layout for search fields */
div.hero-booking-wrapper .hb-search-fields {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: flex-end !important;
	justify-content: space-between !important;
	gap: 0.75rem !important;
	margin: 0 !important;
	padding: 0 !important;
	width: 100% !important;
	box-sizing: border-box !important;
}

/* Disable clearing floats pseudo-elements */
div.hero-booking-wrapper .hb-search-fields:after,
div.hero-booking-wrapper .hb-search-fields:before,
div.hero-booking-wrapper .hb-clearfix:after,
div.hero-booking-wrapper .hb-clearfix:before {
	content: none !important;
	display: none !important;
}

/* Individual field paragraphs */
div.hero-booking-wrapper .hb-search-fields > p,
div.hero-booking-wrapper p.hb-check-dates-wrapper,
div.hero-booking-wrapper p.hb-accom-number-wrapper,
div.hero-booking-wrapper p.hb-people-wrapper,
div.hero-booking-wrapper p.hb-search-submit-wrapper {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	position: relative !important;
	box-sizing: border-box !important;
	height: auto !important;
	min-height: auto !important;
	max-height: none !important;
	line-height: normal !important;
}

div.hero-booking-wrapper p.hb-check-dates-wrapper {
	flex: 1.3 1 0% !important;
	min-width: 130px !important;
}

div.hero-booking-wrapper p.hb-accom-number-wrapper {
	flex: 1.1 1 0% !important;
	min-width: 110px !important;
}

div.hero-booking-wrapper p.hb-people-wrapper {
	flex: 0.9 1 0% !important;
	min-width: 90px !important;
}

div.hero-booking-wrapper p.hb-search-submit-wrapper {
	flex: 1.3 1 0% !important;
	min-width: 130px !important;
}

/* Label styling */
div.hero-booking-wrapper label,
div.hero-booking-wrapper p label {
	display: block !important;
	font-size: 0.8rem !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.03em !important;
	margin: 0 0 0.3rem 0 !important;
	padding: 0 !important;
	color: #334155 !important;
	white-space: nowrap !important;
	line-height: 1.2 !important;
	height: auto !important;
	float: none !important;
}

/* Input and Select styling */
div.hero-booking-wrapper input[type="text"],
div.hero-booking-wrapper select {
	width: 100% !important;
	height: 44px !important;
	min-height: 44px !important;
	max-height: 44px !important;
	border: 1px solid #cbd5e1 !important;
	border-radius: 8px !important;
	padding: 0 0.75rem !important;
	font-size: 0.9rem !important;
	font-weight: 500 !important;
	background: var(--cj-surface, #ffffff) !important;
	color: #0f172a !important;
	box-sizing: border-box !important;
	box-shadow: none !important;
	margin: 0 !important;
	outline: none !important;
	line-height: 42px !important;
	appearance: auto !important;
	-webkit-appearance: auto !important;
	float: none !important;
}

div.hero-booking-wrapper input[type="text"]:focus,
div.hero-booking-wrapper select:focus {
	border-color: #2563eb !important;
	background-color: var(--cj-surface, #ffffff) !important;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15) !important;
}

/* Search Submit button */
div.hero-booking-wrapper input[type="submit"],
div.hero-booking-wrapper .hb-confirm-btn,
div.hero-booking-wrapper button[type="submit"] {
	width: 100% !important;
	height: 44px !important;
	min-height: 44px !important;
	max-height: 44px !important;
	background: #2563eb !important;
	color: #ffffff !important;
	font-size: 0.95rem !important;
	font-weight: 700 !important;
	border: none !important;
	border-radius: 8px !important;
	cursor: pointer !important;
	transition: background-color 0.2s ease, transform 0.15s ease !important;
	margin: 0 !important;
	padding: 0 1rem !important;
	line-height: 44px !important;
	box-shadow: 0 2px 6px rgba(37, 99, 235, 0.3) !important;
	float: none !important;
}

div.hero-booking-wrapper input[type="submit"]:hover,
div.hero-booking-wrapper button[type="submit"]:hover {
	background: #1d4ed8 !important;
	transform: translateY(-1px) !important;
	box-shadow: 0 4px 10px rgba(37, 99, 235, 0.4) !important;
}

/* Mobile responsive layout */
@media (max-width: 768px) {
	div.hero-booking-wrapper {
		margin: 1rem !important;
		padding: 1.25rem 1rem !important;
		max-width: 100% !important;
	}
	div.hero-booking-wrapper .hb-search-fields {
		flex-direction: column !important;
		flex-wrap: wrap !important;
		align-items: stretch !important;
		gap: 0.85rem !important;
	}
	div.hero-booking-wrapper .hb-search-fields > p,
	div.hero-booking-wrapper p.hb-check-dates-wrapper,
	div.hero-booking-wrapper p.hb-accom-number-wrapper,
	div.hero-booking-wrapper p.hb-people-wrapper,
	div.hero-booking-wrapper p.hb-search-submit-wrapper {
		width: 100% !important;
		flex: 1 1 100% !important;
		min-width: 100% !important;
	}
}

/* =============================================================================
 * Benefits Strip — 4 USP items in a horizontal row under Hero
 * ============================================================================= */

.benefits-strip {
	width: 100%;
	background: var(--cj-surface, #ffffff);
	padding: 0 1.5rem 2.5rem;
	box-sizing: border-box;
}

.benefits-strip__inner {
	max-width: 1060px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
	align-items: center;
	background: var(--cj-surface, #ffffff);
	border: 1px solid var(--chata-border);
	border-radius: var(--chata-radius);
	box-shadow: var(--chata-shadow-md);
	overflow: hidden;
}

/* Individual benefit item */
.benefit-item {
	display: flex;
	align-items: center;
	gap: 0.875rem;
	padding: 1.375rem 1.5rem;
	transition: background-color 0.2s ease;
	cursor: default;
	min-width: 0;
}

.benefit-item:hover {
	background-color: var(--chata-primary-light);
}

.benefit-item:hover .benefit-item__icon {
	background-color: var(--chata-primary);
	color: #ffffff;
	transform: scale(1.08);
}

/* Icon pill */
.benefit-item__icon {
	flex-shrink: 0;
	width: 48px;
	height: 48px;
	border-radius: 10px;
	background-color: var(--chata-primary-light);
	color: var(--chata-primary);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

/* Text body */
.benefit-item__body {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	min-width: 0;
}

.benefit-item__title {
	display: block;
	font-size: 0.9rem;
	font-weight: 700;
	color: var(--chata-text-dark);
	line-height: 1.3;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.benefit-item__desc {
	display: block;
	font-size: 0.8rem;
	color: var(--chata-text-muted);
	line-height: 1.4;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Vertical divider between items */
.benefit-item__divider {
	width: 1px;
	height: 40px;
	background-color: var(--chata-border);
	flex-shrink: 0;
}

/* --- Tablet: 2×2 grid (≤768px) ------------------------------------------- */
@media (max-width: 768px) {
	.benefits-strip {
		padding: 0 1rem 2rem;
	}

	.benefits-strip__inner {
		grid-template-columns: 1fr 1fr;
	}

	.benefit-item__divider {
		display: none;
	}

	.benefit-item {
		border-bottom: 1px solid var(--chata-border);
	}

	.benefit-item:nth-child(odd) {
		border-right: 1px solid var(--chata-border);
	}

	/* Last two items have no bottom border */
	.benefit-item:nth-last-child(-n+2) {
		border-bottom: none;
	}

	.benefit-item__title,
	.benefit-item__desc {
		white-space: normal;
		overflow: visible;
		text-overflow: unset;
	}
}

/* --- Mobile: single column (≤480px) -------------------------------------- */
@media (max-width: 480px) {
	.benefits-strip__inner {
		grid-template-columns: 1fr;
	}

	.benefit-item:nth-child(odd) {
		border-right: none;
	}

	.benefit-item {
		border-bottom: 1px solid var(--chata-border);
	}

	.benefit-item:last-child {
		border-bottom: none;
	}

	/* Undo the nth-last-child rule from tablet */
	.benefit-item:nth-last-child(-n+2) {
		border-bottom: 1px solid var(--chata-border);
	}

	.benefit-item:last-child {
		border-bottom: none;
	}

	.benefit-item {
		padding: 1.125rem 1.25rem;
	}
}

/* =============================================================================
   KONTAKTNÍ STRÁNKA — formulář, grid, mapa
   ============================================================================= */

.contact-page-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 3rem 1.5rem 4rem;
}

.contact-grid {
	display: grid;
	grid-template-columns: 1fr 1.2fr;
	gap: 2.5rem;
	align-items: start;
}

.contact-info-card,
.contact-form-card {
	background: var(--cj-surface, #ffffff);
	border-radius: 16px;
	padding: 2.5rem;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
	border: 1px solid rgba(0, 0, 0, 0.04);
}

.contact-card-title {
	font-size: 1.375rem;
	font-weight: 700;
	color: var(--chata-primary-dark, #1b3815);
	margin: 0 0 1.75rem;
}

.contact-method-group {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	margin-bottom: 2rem;
}

.contact-method-item {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
}

.contact-icon {
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	background: #e8f5e9;
	border-radius: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #2d5a27;
}

.contact-label {
	display: block;
	font-size: 0.75rem;
	text-transform: uppercase;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: #6b7280;
	margin-bottom: 0.2rem;
}

.contact-link {
	display: block;
	font-size: 1.0625rem;
	font-weight: 600;
	color: var(--chata-primary-dark, #1b3815);
	text-decoration: none;
	transition: color 0.2s;
}

.contact-link:hover { color: #2d5a27; }

.contact-subtext {
	display: block;
	font-size: 0.8125rem;
	color: var(--chata-text-muted, #9ca3af);
	margin-top: 0.15rem;
}

.contact-address {
	font-style: normal;
	font-size: 0.9375rem;
	color: var(--chata-text-muted, #374151);
	margin: 0;
}

.contact-address__line {
	display: block;
	line-height: 1.5;
}

.contact-address span {
	display: inline;
}

.contact-facts-box {
	background: #f4f6f3;
	border-radius: 12px;
	padding: 1.25rem 1.5rem;
	margin-bottom: 1.75rem;
}

.contact-facts-box h3 {
	font-size: 0.9375rem;
	font-weight: 700;
	color: #1b3815;
	margin: 0 0 0.75rem;
}

.contact-facts-box ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	font-size: 0.875rem;
	color: #4b5563;
}

.btn-spinner {
	width: 16px;
	height: 16px;
	border: 2px solid rgba(255,255,255,0.4);
	border-top-color: #ffffff;
	border-radius: 50%;
	animation: cj-spin 0.7s linear infinite;
}

@keyframes cj-spin { to { transform: rotate(360deg); } }

.cj-form {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	position: relative;
}

.form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}

.form-group {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.form-group label {
	font-size: 0.875rem;
	font-weight: 600;
	color: #374151;
}

.form-group .req { color: #dc2626; margin-left: 1px; }

.form-group input,
.form-group select,
.form-group textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 0.75rem 1rem;
	border: 1px solid #d1d5db;
	border-radius: 8px;
	font-size: 0.9375rem;
	font-family: inherit;
	color: #1f2937;
	background: var(--cj-surface, #ffffff);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
	-webkit-appearance: none;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
	outline: none;
	border-color: #2d5a27;
	box-shadow: 0 0 0 3px rgba(45, 90, 39, 0.14);
}

.form-group textarea { resize: vertical; min-height: 120px; }

.cj-btn-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	background-color: #2d5a27;
	color: #ffffff;
	font-weight: 600;
	font-size: 1rem;
	font-family: inherit;
	padding: 0.875rem 1.75rem;
	border-radius: 8px;
	border: none;
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.1s ease;
	margin-top: 0.25rem;
	width: 100%;
}

.cj-btn-submit:hover:not(:disabled) { background-color: #1e3d1a; }
.cj-btn-submit:active:not(:disabled) { transform: translateY(1px); }
.cj-btn-submit:disabled { background-color: #9ca3af; cursor: not-allowed; }

.form-status-alert {
	padding: 1rem 1.25rem;
	border-radius: 8px;
	font-size: 0.9375rem;
	line-height: 1.5;
}

.form-status-alert.is-success {
	background-color: #ecfdf5;
	color: #065f46;
	border: 1px solid #a7f3d0;
}

.form-status-alert.is-error {
	background-color: #fef2f2;
	color: #991b1b;
	border: 1px solid #fecaca;
}

.contact-map-wrapper {
	width: 100%;
	overflow: hidden;
	line-height: 0;
	margin-top: 3rem;
}

.contact-map-wrapper iframe { display: block; width: 100%; }

@media (max-width: 900px) {
	.contact-grid { grid-template-columns: 1fr; gap: 2rem; }
	.contact-page-container { padding: 2rem 1rem 3rem; }
}

@media (max-width: 600px) {
	.form-row { grid-template-columns: 1fr; }
	.contact-info-card, .contact-form-card { padding: 1.5rem; border-radius: 12px; }
}

/* =============================================================================
   Zápatí — GDPR / legal odkaz
   ============================================================================= */

.cj-footer-legal {
	text-align: center;
	padding: 0.5rem 1rem;
	font-size: 0.8125rem;
}

.cj-footer-legal__link {
	color: inherit;
	opacity: 0.7;
	text-decoration: underline;
	text-underline-offset: 2px;
	transition: opacity 0.15s ease;
}

.cj-footer-legal__link:hover,
.cj-footer-legal__link:focus-visible {
	opacity: 1;
	color: inherit;
}

/* =============================================================================
   Ceník stránka — .cenik-*
   ============================================================================= */

/* Ceník nemá TOC sidebar — override vop-page-layout na single-column */
.cenik-layout {
	grid-template-columns: 1fr;
	max-width: 1100px;
	padding: 3rem 1.5rem 5rem;
}
.cenik-article { padding-bottom: 3rem; max-width: 960px; margin: 0 auto; width: 100%; }

@media (max-width: 860px) {
	.cenik-layout { padding: 2rem 1rem 3rem; }
}

/* Cenové karty */
.cenik-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	margin: 2rem 0;
}

.cenik-card {
	color: var(--chata-text-dark, #1a2421);
	border: 1px solid var(--cj-border-alt, #e5e7eb);
	border-radius: 16px;
	padding: 1.75rem 1.5rem 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	background: var(--cj-surface, #fff);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.cenik-card:hover { box-shadow: 0 6px 24px rgba(0,0,0,.1); transform: translateY(-2px); }

.cenik-card--featured {
	border-color: var(--color-accent, #2563eb);
	background: linear-gradient(135deg, var(--cj-featured-bg-start, #f0f7ff) 0%, var(--cj-surface, #fff) 100%);
	box-shadow: 0 4px 20px rgba(37,99,235,.15);
}

.cenik-card__badge {
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--chata-text-muted, #6b7280);
}

.cenik-card__badge--popular {
	color: var(--color-accent, #2563eb);
}

.cenik-card__title {
	font-size: 1.25rem;
	font-weight: 700;
	margin: 0;
}

.cenik-card__price {
	display: flex;
	align-items: baseline;
	gap: 0.35rem;
}

.cenik-card__from { font-size: 0.875rem; color: var(--chata-text-muted, #6b7280); }
.cenik-card__amount { font-size: 2rem; font-weight: 800; }
.cenik-card__unit { font-size: 0.875rem; color: var(--chata-text-muted, #6b7280); }

.cenik-card__features {
	list-style: none;
	margin: 0.5rem 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	font-size: 0.9rem;
	color: var(--chata-text-muted, #374151);
	flex: 1;
}

.cenik-card__features li::before { content: '✓ '; color: #16a34a; font-weight: 700; }

.cenik-card__cta {
	display: block;
	text-align: center;
	padding: 0.65rem 1rem;
	border-radius: 8px;
	background: #f3f4f6;
	color: #111827;
	text-decoration: none;
	font-weight: 600;
	font-size: 0.9rem;
	margin-top: auto;
	transition: background 0.15s ease;
}

.cenik-card__cta:hover { background: var(--cj-border-alt, #e5e7eb); color: #111827; }

.cenik-card__cta--featured {
	background: var(--color-accent, #2563eb);
	color: #fff;
}

.cenik-card__cta--featured:hover { background: #1d4ed8; color: #fff; }

/* Faktory dynamiky */
.cenik-factors-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	margin: 1.5rem 0;
}

.cenik-factor {
	background: #f9fafb;
	border-radius: 12px;
	padding: 1.25rem;
}

.cenik-factor__icon {
	color: var(--color-accent, #2563eb);
	margin-bottom: 0.5rem;
}

.cenik-factor h3 { font-size: 1rem; font-weight: 700; margin: 0 0 0.4rem; }
.cenik-factor p { font-size: 0.875rem; color: #6b7280; margin: 0; line-height: 1.5; }

/* V ceně zahrnuto */
.cenik-included { background: #f0fdf4; border-radius: 16px; padding: 1.75rem 2rem; }

.cenik-included__list {
	list-style: none;
	padding: 0;
	margin: 1rem 0 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0.6rem 1.5rem;
}

.cenik-included__list li {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	font-size: 0.95rem;
}

/* CTA blok */
.cenik-cta-block {
	text-align: center;
	padding: 2.5rem 1rem;
	border-top: 1px solid var(--cj-border-alt, #e5e7eb);
	margin-top: 1rem;
}

.cenik-cta-block__text {
	color: #6b7280;
	font-size: 0.9rem;
	margin-bottom: 1.25rem;
}

/* Responsive */
@media (max-width: 860px) {
	.cenik-grid { grid-template-columns: repeat(2, 1fr); }
	.cenik-factors-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 540px) {
	.cenik-grid { grid-template-columns: 1fr; }
	.cenik-factors-grid { grid-template-columns: 1fr; }
	.cenik-included__list { grid-template-columns: 1fr; }
	.cenik-card__amount { font-size: 1.6rem; }
}

/* =============================================================================
   Platební metody — .chata-payments-* / .chata-pay-* / .pay-badge
   ============================================================================= */

.chata-payments-section {
	background: var(--cj-surface, #fff);
	padding: 5rem 1.5rem;
	border-top: 1px solid var(--cj-border-alt, #e5e7eb);
}

.chata-payments-container {
	max-width: 1100px;
	margin: 0 auto;
}

.chata-payments-header {
	text-align: center;
	margin-bottom: 3rem;
}

.chata-payments-badge {
	display: inline-block;
	background: #dcfce7;
	color: #15803d;
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.07em;
	padding: 0.25rem 0.85rem;
	border-radius: 999px;
	margin-bottom: 1rem;
}

.chata-payments-title {
	font-size: clamp(1.5rem, 3vw, 2.1rem);
	font-weight: 800;
	color: var(--chata-text-dark, #111827);
	margin-bottom: 0.5rem;
}

.chata-payments-desc {
	font-size: 1rem;
	color: var(--chata-text-muted, #6b7280);
	max-width: 560px;
	margin: 0 auto;
	line-height: 1.6;
}

/* Grid 3 karet */
.chata-payments-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}

.chata-pay-card {
	border: 1px solid var(--cj-border-alt, #e5e7eb);
	border-radius: 16px;
	padding: 1.75rem 1.5rem 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	background: var(--cj-surface, #fff);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.chata-pay-card:hover {
	box-shadow: 0 8px 28px rgba(0,0,0,.08);
	transform: translateY(-3px);
}

.chata-pay-card--featured {
	border-color: #16a34a;
	background: linear-gradient(135deg, var(--cj-featured-bg-start-green, #f0fdf4) 0%, var(--cj-surface, #fff) 100%);
	box-shadow: 0 4px 20px rgba(22,163,74,.1);
}

.chata-pay-card__icon-wrap {
	width: 56px;
	height: 56px;
	background: #f0fdf4;
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.chata-pay-card__title {
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--chata-text-dark, #111827);
	margin: 0;
}

.chata-pay-card__text {
	font-size: 0.875rem;
	color: var(--chata-text-muted, #4b5563);
	line-height: 1.6;
	margin: 0;
	flex: 1;
}

/* Badge elementy */
.chata-pay-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin-top: 0.25rem;
}

.pay-badge {
	display: inline-flex;
	align-items: center;
	font-size: 0.72rem;
	font-weight: 600;
	padding: 0.2rem 0.6rem;
	border-radius: 6px;
	background: #f3f4f6;
	color: #374151;
	border: 1px solid var(--cj-border-alt, #e5e7eb);
}

.pay-badge--brand {
	background: #111827;
	color: #fff;
	border-color: #111827;
}

.pay-badge--accent {
	background: #eff6ff;
	color: #1d4ed8;
	border-color: #bfdbfe;
}

.pay-badge--benefit {
	background: #fef3c7;
	color: #92400e;
	border-color: #fde68a;
}

.pay-badge--edenred {
	background: #fef2f2;
	color: #dc2626;
	border-color: #fecaca;
}

.pay-badge--fksp {
	background: #f0fdf4;
	color: #15803d;
	border-color: #bbf7d0;
}

/* Ikonové badge (Apple Pay, Google Pay, Visa, Mastercard) */
.pay-badge--icon {
	padding: 0.28rem 0.65rem;
	gap: 0.35rem;
	background: var(--cj-surface, #fff);
	border-color: var(--cj-border-alt, #e5e7eb);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.pay-badge--icon:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
}

.pay-badge--icon.pay-badge--brand {
	background: #111827;
	border-color: #111827;
}

.pay-icon {
	height: 15px;
	width: auto;
	display: block;
	flex-shrink: 0;
}

.pay-icon--apple {
	color: #fff;
	height: 16px;
}

.pay-icon--gpay {
	height: 14px;
}

.pay-icon--visa {
	height: 13px;
}

.pay-icon--mastercard {
	height: 17px;
}

.pay-icon-label {
	color: #fff;
	font-weight: 600;
	font-size: 0.78rem;
	letter-spacing: 0.01em;
}

/* Responsive */
@media (max-width: 860px) {
	.chata-payments-grid { grid-template-columns: 1fr 1fr; }
	.chata-pay-card--featured { grid-column: 1 / -1; }
}

@media (max-width: 540px) {
	.chata-payments-section { padding: 3.5rem 1rem; }
	.chata-payments-grid { grid-template-columns: 1fr; }
	.chata-pay-card--featured { grid-column: auto; }
}

/* =============================================================================
   Homepage sekce Příjezd — .arrival-hp-*
   ============================================================================= */

.arrival-hp-section {
	background: var(--chata-bg-light);
	padding: 5rem 1.5rem;
	border-top: 1px solid var(--cj-border-alt, #e5e7eb);
}

.arrival-hp-container {
	max-width: 1100px;
	margin: 0 auto;
}

.arrival-hp-header {
	text-align: center;
	margin-bottom: 3rem;
}

.arrival-hp-title {
	font-size: clamp(1.6rem, 3vw, 2.25rem);
	font-weight: 800;
	margin-bottom: 0.5rem;
	color: var(--chata-text-dark, #111827);
}

.arrival-hp-subtitle {
	font-size: 1rem;
	color: var(--chata-text-muted, #6b7280);
	max-width: 560px;
	margin: 0 auto;
}

/* 3-sloupcový grid karet */
.arrival-hp-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	margin-bottom: 2.5rem;
}

.arrival-hp-card {
	background: var(--cj-surface, #fff);
	border: 1px solid var(--cj-border-alt, #e5e7eb);
	border-radius: 16px;
	padding: 1.75rem 1.5rem 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
	position: relative;
}

.arrival-hp-card:hover {
	box-shadow: 0 8px 28px rgba(0,0,0,.08);
	transform: translateY(-3px);
}

/* Barevné levé bordery */
.arrival-hp-card--permit { border-left: 4px solid #16a34a; }
.arrival-hp-card--summer { border-left: 4px solid #d97706; }
.arrival-hp-card--winter { border-left: 4px solid #2563eb; }

.arrival-hp-card__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 12px;
	margin-bottom: 0.25rem;
	flex-shrink: 0;
}

.arrival-hp-card--permit .arrival-hp-card__icon { background: #f0fdf4; color: #16a34a; }
.arrival-hp-card--summer .arrival-hp-card__icon { background: #fffbeb; color: #d97706; }
.arrival-hp-card--winter .arrival-hp-card__icon { background: #eff6ff; color: #2563eb; }

.arrival-hp-card__title {
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--chata-text-dark, #111827);
	margin: 0;
}

.arrival-hp-card__text {
	font-size: 0.9rem;
	color: var(--chata-text-muted, #4b5563);
	line-height: 1.6;
	margin: 0;
	flex: 1;
}

.arrival-hp-card__text--warn {
	font-size: 0.8rem;
	color: #92400e;
	background: #fef3c7;
	border-radius: 6px;
	padding: 0.35rem 0.6rem;
	flex: 0;
}

.arrival-hp-card__badge {
	display: inline-flex;
	align-items: center;
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	padding: 0.2rem 0.65rem;
	border-radius: 999px;
	margin-top: auto;
	width: fit-content;
}

.arrival-hp-card__badge--green { background: #dcfce7; color: #15803d; }
.arrival-hp-card__badge--yellow { background: #fef3c7; color: #92400e; }

.arrival-hp-card__link {
	font-size: 0.875rem;
	font-weight: 600;
	color: #2563eb;
	text-decoration: none;
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	gap: 0.2rem;
	transition: gap 0.15s ease;
}

.arrival-hp-card__link:hover { gap: 0.4rem; color: #1d4ed8; }

/* Patička — GPS + CTA */
.arrival-hp-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1rem;
	padding-top: 1.75rem;
	border-top: 1px solid var(--cj-border-alt, #e5e7eb);
}

.arrival-hp-gps {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.875rem;
	color: #6b7280;
	text-decoration: none;
	transition: color 0.15s ease;
}

.arrival-hp-gps:hover { color: #111827; }

.arrival-hp-cta {
	display: inline-flex;
	align-items: center;
	padding: 0.65rem 1.4rem;
	background: #111827;
	color: #fff;
	border-radius: 8px;
	font-weight: 600;
	font-size: 0.9rem;
	text-decoration: none;
	transition: background 0.15s ease, transform 0.15s ease;
}

.arrival-hp-cta:hover { background: #1f2937; transform: translateX(2px); color: #fff; }

/* Responsive */
@media (max-width: 860px) {
	.arrival-hp-grid { grid-template-columns: 1fr 1fr; }
	.arrival-hp-card--winter { grid-column: 1 / -1; }
}

@media (max-width: 540px) {
	.arrival-hp-section { padding: 3.5rem 1rem; }
	.arrival-hp-grid { grid-template-columns: 1fr; }
	.arrival-hp-card--winter { grid-column: auto; }
	.arrival-hp-footer { flex-direction: column; align-items: flex-start; }
}

/* =============================================================================
   Self Check-in USP sekce — .checkin-*
   ============================================================================= */

.checkin-usps-section {
	background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
	color: #f1f5f9;
	padding: 4rem 1.5rem;
}

.checkin-usps-container { max-width: 1100px; margin: 0 auto; }

.checkin-usps-header {
	text-align: center;
	margin-bottom: 2.5rem;
}

.checkin-usps-header h2 {
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	font-weight: 800;
	color: #f8fafc;
	margin-bottom: 0.5rem;
}

.checkin-usps-header p { color: #94a3b8; font-size: 1rem; }

.checkin-usps-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}

.checkin-card {
	background: rgba(255,255,255,.05);
	border: 1px solid rgba(255,255,255,.1);
	border-radius: 16px;
	padding: 2rem 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	transition: background 0.2s ease, transform 0.2s ease;
}

.checkin-card:hover {
	background: rgba(255,255,255,.08);
	transform: translateY(-3px);
}

.checkin-card__icon { color: #60a5fa; }

.checkin-card__title {
	font-size: 1.1rem;
	font-weight: 700;
	color: #f8fafc;
	margin: 0;
}

.checkin-card__desc {
	font-size: 0.9rem;
	color: #94a3b8;
	line-height: 1.65;
	margin: 0;
}

@media (max-width: 768px) {
	.checkin-usps-grid { grid-template-columns: 1fr; }
	.checkin-usps-section { padding: 3rem 1rem; }
}

/* =============================================================================
   Kontakt — Příjezd sekce (.arrival-*)
   ============================================================================= */

.contact-arrival-box { border-top: 2px solid var(--color-accent, #2563eb); }

.arrival-highlight {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	background: #eff6ff;
	border-radius: 10px;
	padding: 1rem 1.25rem;
	margin: 0.75rem 0 1rem;
}

.arrival-highlight svg { flex-shrink: 0; color: var(--color-accent, #2563eb); margin-top: 2px; }

.arrival-highlight strong { display: block; font-size: 0.95rem; font-weight: 700; color: #1e40af; }
.arrival-highlight span { font-size: 0.875rem; color: #374151; }

.arrival-info-list {
	list-style: none;
	padding: 0;
	margin: 0 0 1rem;
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	font-size: 0.9rem;
}

.arrival-blocks {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin: 1rem 0;
}

.arrival-block {
	border-radius: 10px;
	padding: 0.9rem 1.1rem;
	border-left: 3px solid transparent;
}

.arrival-block h4 { font-size: 0.9rem; font-weight: 700; margin: 0 0 0.3rem; }
.arrival-block p { font-size: 0.85rem; color: #4b5563; margin: 0; line-height: 1.55; }

.arrival-block--permit { background: #ecfdf5; border-color: #16a34a; }
.arrival-block--permit h4 { color: #15803d; }

.arrival-block--summer { background: #fffbeb; border-color: #d97706; }
.arrival-block--summer h4 { color: #92400e; }

.arrival-block--winter { background: #eff6ff; border-color: #2563eb; }
.arrival-block--winter h3,
.arrival-block--winter h4 { color: #1d4ed8; }

/* Zimní blok přes celou šířku gridu */
.arrival-block--wide {
	grid-column: 1 / -1;
}

.arrival-block__service-label { margin: 0.75rem 0 0.35rem; }

.arrival-block__list {
	margin: 0;
	padding-left: 1.25rem;
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	font-size: 0.85rem;
	color: #374151;
	line-height: 1.55;
}

/* Full-width příjezdová sekce */
.contact-arrival-section {
	border-top: 1px solid var(--cj-border-alt, #e5e7eb);
	padding-top: 2rem;
	margin-top: 0.5rem;
}

.contact-section-title {
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--chata-text-dark, #111827);
	margin-bottom: 1.25rem;
	color: #111827;
}

/* 3-sloupcový grid pro arrival bloky */
.arrival-blocks--grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
	margin: 1.25rem 0;
}

/* Headingy v arrival-blocks--grid jsou h3, ne h4 */
.arrival-blocks--grid .arrival-block h3 {
	font-size: 0.9rem;
	font-weight: 700;
	margin: 0 0 0.3rem;
}

.arrival-blocks--grid .arrival-block {
	border-radius: 10px;
	padding: 1rem 1.1rem;
	border-left: 3px solid transparent;
}

/* Inline info list — zobrazí se jako flex řada */
.arrival-info-list--inline {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 2rem;
	list-style: none;
	padding: 0;
	margin: 0.5rem 0 1rem;
	font-size: 0.9rem;
}

/* Provozovatel full-width — horizontální DL */
.contact-operator--fullwidth {
	border-top: 1px solid var(--cj-border-alt, #e5e7eb);
	padding-top: 1.5rem;
	margin-top: 1.5rem;
}

.contact-dl--inline {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 2.5rem;
}

.contact-dl--inline .contact-dl__row {
	display: flex;
	gap: 0.4rem;
	align-items: baseline;
}

.contact-dl--inline dt {
	font-size: 0.8rem;
	font-weight: 600;
	color: #6b7280;
	white-space: nowrap;
}

.contact-dl--inline dd {
	font-size: 0.9rem;
	color: #111827;
	margin: 0;
}

@media (max-width: 700px) {
	.arrival-blocks--grid { grid-template-columns: 1fr; }
	.arrival-info-list--inline { flex-direction: column; gap: 0.3rem; }
	.contact-dl--inline { flex-direction: column; gap: 0.5rem; }
}



/* =============================================================================
   Tipy na výlet — page-vylety.php (.trips-page-*, .trips-section-*, .trips-card-*)
   ============================================================================= */

.trips-page-main { background: var(--chata-bg-light); }

.trips-page-container {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 1.5rem 4rem;
}

/* Sekce */
.trips-section {
	padding: 3rem 0;
	border-bottom: 1px solid var(--cj-border-alt, #e5e7eb);
}

.trips-section--alt { background: transparent; }

.trips-section__header {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	margin-bottom: 1.75rem;
}

.trips-section__icon { font-size: 2rem; line-height: 1; flex-shrink: 0; }

.trips-section__title {
	font-size: clamp(1.25rem, 2.5vw, 1.6rem);
	font-weight: 800;
	color: var(--chata-text-dark, #111827);
	margin: 0 0 0.25rem;
}

.trips-section__subtitle {
	font-size: 0.9rem;
	color: #6b7280;
	margin: 0;
}

/* Grid karet */
.trips-cards-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1rem;
}

.trips-section:has(.trips-cards-grid > article:nth-child(3):last-child) .trips-cards-grid,
.trips-cards-grid:has(> article:only-child),
.trips-cards-grid--3 { grid-template-columns: repeat(3, 1fr); }

/* Karta výletu */
.trips-card {
	background: var(--cj-surface, #fff);
	border: 1px solid var(--cj-border-alt, #e5e7eb);
	border-radius: 14px;
	padding: 1.25rem;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	transition: box-shadow 0.2s, transform 0.2s;
}

.trips-card:hover {
	box-shadow: 0 6px 24px rgba(0,0,0,.08);
	transform: translateY(-2px);
}

.trips-card--highlight {
	border-color: #2d5a27;
	background: linear-gradient(135deg, var(--cj-featured-bg-start-green, #f0fdf4) 0%, var(--cj-surface, #fff) 100%);
}

.trips-card__meta {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.trips-card__dist {
	font-size: 0.75rem;
	font-weight: 700;
	color: #6b7280;
	background: #f3f4f6;
	padding: 0.15rem 0.5rem;
	border-radius: 999px;
}

.trips-card__type {
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 0.15rem 0.5rem;
	border-radius: 999px;
}

.trips-card__type--hike  { background: #fef3c7; color: #92400e; }
.trips-card__type--swim  { background: #dbeafe; color: #1e40af; }
.trips-card__type--bike  { background: #dcfce7; color: #15803d; }
.trips-card__type--winter { background: #eff6ff; color: #2563eb; }
.trips-card__type--ski   { background: #f5f3ff; color: #7c3aed; }

.trips-card__title {
	font-size: 0.95rem;
	font-weight: 700;
	color: #111827;
	margin: 0;
}

.trips-card__text {
	font-size: 0.83rem;
	color: #4b5563;
	line-height: 1.55;
	margin: 0;
	flex: 1;
}

.trips-card__footer {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3rem;
	margin-top: auto;
}

.trips-card__tag {
	font-size: 0.68rem;
	background: #f3f4f6;
	color: #6b7280;
	padding: 0.15rem 0.45rem;
	border-radius: 4px;
}

/* CTA box */
/* UGC formulář: návrh vlastního tipu na výlet — Issue #23 */
.trip-submit-card {
	background: var(--cj-surface, #ffffff);
	border-radius: 16px;
	border: 1px solid var(--cj-border-alt, #e5e7eb);
	padding: 2rem;
	margin: 2.5rem 0;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
}

.trip-submit-card__title {
	font-size: 1.4rem;
	margin: 0 0 0.5rem;
	color: var(--chata-text-dark, #1f2937);
}

.trip-submit-card__subtitle {
	color: var(--chata-text-muted, #4b5563);
	margin: 0 0 1.5rem;
}

@media (max-width: 600px) {
	.trip-submit-card { padding: 1.5rem; border-radius: 12px; }
}

.trips-cta-section { padding: 3rem 0 0; }

.trips-cta-box {
	background: linear-gradient(135deg, #2d5a27 0%, #3d7a35 100%);
	color: #fff;
	border-radius: 20px;
	padding: 3rem 2.5rem;
	text-align: center;
}

.trips-cta-box__title {
	font-size: clamp(1.3rem, 2.5vw, 1.9rem);
	font-weight: 800;
	margin-bottom: 0.75rem;
	color: #fff;
}

.trips-cta-box__text {
	font-size: 0.95rem;
	opacity: 0.88;
	max-width: 620px;
	margin: 0 auto 1.75rem;
	line-height: 1.6;
}

.trips-cta-box__btn {
	display: inline-flex;
	align-items: center;
	background: var(--cj-surface, #fff);
	color: #2d5a27;
	font-weight: 700;
	font-size: 1rem;
	padding: 0.8rem 2rem;
	border-radius: 10px;
	text-decoration: none;
	transition: transform 0.15s, box-shadow 0.15s;
}

.trips-cta-box__btn:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0,0,0,.15); color: #2d5a27; }

/* =============================================================================
   Recenze — CTA tlačítka pro hodnocení (Google / Mapy.cz), render-reviews.php
   ============================================================================= */
.reviews-rate-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.85rem 1.75rem;
	border-radius: var(--chata-radius);
	color: #ffffff !important;
	font-weight: 700;
	font-size: 1rem;
	font-family: var(--chata-font-sans);
	text-decoration: none !important;
	box-shadow: var(--chata-shadow-md);
	transition: transform 0.15s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.reviews-rate-btn:hover,
.reviews-rate-btn:focus-visible {
	transform: translateY(-2px);
	box-shadow: var(--chata-shadow-lg);
	color: #ffffff !important;
}

.reviews-rate-btn--google { background-color: #4285F4; }
.reviews-rate-btn--google:hover { background-color: #3367d6; }

.reviews-rate-btn--mapy { background-color: #cc0000; }
.reviews-rate-btn--mapy:hover { background-color: #a30000; }

/* =============================================================================
   Tipy na výlet — homepage teaser .trips-teaser-*
   ============================================================================= */

.trips-teaser-section {
	background: #f0fdf4;
	padding: 5rem 1.5rem;
	border-top: 1px solid #bbf7d0;
}

.trips-teaser-container { max-width: 1100px; margin: 0 auto; }

.trips-teaser-header { text-align: center; margin-bottom: 2.5rem; }

.trips-teaser-title {
	font-size: clamp(1.5rem, 3vw, 2.1rem);
	font-weight: 800;
	color: #111827;
	margin-bottom: 0.5rem;
}

.trips-teaser-subtitle {
	font-size: 1rem;
	color: #4b5563;
	max-width: 560px;
	margin: 0 auto;
}

.trips-teaser-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1rem;
	margin-bottom: 2rem;
}

.trips-teaser-card {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	background: var(--cj-surface, #fff);
	border: 1px solid #bbf7d0;
	border-radius: 14px;
	padding: 1.25rem 1rem;
	text-decoration: none;
	color: inherit;
	transition: box-shadow 0.2s, transform 0.2s, border-color 0.2s;
}

.trips-teaser-card:hover {
	box-shadow: 0 6px 24px rgba(45,90,39,.12);
	transform: translateY(-3px);
	border-color: #2d5a27;
}

.trips-teaser-card__emoji { font-size: 1.8rem; flex-shrink: 0; line-height: 1; }

.trips-teaser-card__body { flex: 1; min-width: 0; }

.trips-teaser-card__title {
	font-size: 0.95rem;
	font-weight: 700;
	color: #111827;
	margin: 0 0 0.2rem;
}

.trips-teaser-card__text {
	font-size: 0.78rem;
	color: #6b7280;
	margin: 0;
	line-height: 1.4;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.trips-teaser-card__arrow {
	font-size: 1.1rem;
	color: #2d5a27;
	font-weight: 700;
	flex-shrink: 0;
	transition: transform 0.15s;
}

.trips-teaser-card:hover .trips-teaser-card__arrow { transform: translateX(4px); }

.trips-teaser-cta { text-align: center; }

.trips-teaser-cta__link {
	display: inline-flex;
	align-items: center;
	background: #2d5a27;
	color: #fff;
	font-weight: 600;
	font-size: 0.95rem;
	padding: 0.75rem 1.75rem;
	border-radius: 10px;
	text-decoration: none;
	transition: background 0.15s, transform 0.15s;
}

.trips-teaser-cta__link:hover { background: #3d7a35; transform: translateX(2px); color: #fff; }

/* Responsive — trips page */
@media (max-width: 860px) {
	.trips-cards-grid { grid-template-columns: repeat(2, 1fr); }
	.trips-teaser-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 540px) {
	.trips-page-container { padding: 0 1rem 3rem; }
	.trips-cards-grid { grid-template-columns: 1fr; }
	.trips-teaser-section { padding: 3.5rem 1rem; }
	.trips-teaser-grid { grid-template-columns: 1fr; }
	.trips-cta-box { padding: 2rem 1.25rem; }
	.trips-teaser-card__text { white-space: normal; }
}

/* =============================================================================
   [cj_trips] shortcode — CPT cj_trip karty + detail mapy (Issue #15)
   ============================================================================= */

.cj-trips-empty {
	text-align: center;
	padding: 2rem;
	color: #667;
}

.cj-trips-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	max-width: 1100px;
	margin: 0 auto;
	padding: 1rem;
}

.cj-trip-card {
	background: var(--cj-surface, #fff);
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
	display: flex;
	flex-direction: column;
	transition: transform .2s ease, box-shadow .2s ease;
}

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

.cj-trip-card__image {
	position: relative;
	aspect-ratio: 16 / 10;
	background: var(--chata-primary-light, #e8f5e9);
	overflow: hidden;
}

.cj-trip-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.cj-trip-card__image-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	font-size: 2.5rem;
}

.cj-trip-card__badge {
	position: absolute;
	top: .6rem;
	right: .6rem;
	background: rgba(0, 0, 0, 0.65);
	color: #fff;
	font-size: .78rem;
	font-weight: 600;
	padding: .3rem .6rem;
	border-radius: 999px;
}

.cj-trip-card__category {
	position: absolute;
	top: .6rem;
	left: .6rem;
	background: var(--chata-primary, #2e7d32);
	color: #fff;
	font-size: .75rem;
	font-weight: 600;
	padding: .3rem .6rem;
	border-radius: 999px;
}

.cj-trip-card__body {
	padding: 1.1rem 1.2rem 1.3rem;
	display: flex;
	flex-direction: column;
	gap: .5rem;
	flex: 1;
}

.cj-trip-card__title {
	margin: 0;
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--chata-primary-dark, #1b5e20);
}

.cj-trip-card__excerpt {
	margin: 0;
	font-size: .92rem;
	color: var(--chata-text-muted, #555);
	line-height: 1.45;
	flex: 1;
}

.cj-trip-card__meta {
	display: flex;
	gap: .9rem;
	font-size: .85rem;
	color: #667;
	flex-wrap: wrap;
}

.cj-trip-card__btn {
	margin-top: .4rem;
	background: var(--chata-primary, #2e7d32);
	color: #fff;
	border: none;
	border-radius: 8px;
	padding: .65rem 1rem;
	font-size: .9rem;
	font-weight: 600;
	cursor: pointer;
	transition: background .15s ease;
}

.cj-trip-card__btn:hover:not(:disabled) {
	background: var(--chata-primary-dark, #1b5e20);
}

.cj-trip-card__btn:disabled {
	background: #ccc;
	cursor: not-allowed;
}

.cj-trip-card__actions {
	display: flex;
	gap: .5rem;
	flex-wrap: wrap;
	margin-top: .4rem;
}

.cj-trip-card__btn--link {
	background: transparent;
	color: var(--chata-primary, #2e7d32);
	border: 1.5px solid var(--chata-primary, #2e7d32);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
}

.cj-trip-card__btn--link:hover {
	background: var(--chata-primary-light, #e8f5e9);
}

.cj-trips-filter {
	display: flex;
	flex-wrap: wrap;
	gap: .6rem;
	justify-content: center;
	max-width: 1100px;
	margin: 0 auto 1.5rem;
	padding: 0 1rem;
}

.cj-trips-filter__link {
	display: inline-block;
	padding: .5rem 1.1rem;
	border-radius: 999px;
	background: var(--cj-surface, #fff);
	color: var(--chata-primary-dark, #1b5e20);
	border: 1.5px solid var(--chata-primary, #2e7d32);
	text-decoration: none;
	font-size: .88rem;
	font-weight: 600;
	transition: background .15s ease, color .15s ease;
}

.cj-trips-filter__link:hover,
.cj-trips-filter__link.is-active {
	background: var(--chata-primary, #2e7d32);
	color: #fff;
}

/* Detail výletu — single-cj_trip.php */
.cj-trip-single__container {
	max-width: 780px;
	margin: 0 auto;
	padding: 1rem 1rem 3rem;
}

.cj-trip-single__image img {
	width: 100%;
	border-radius: 14px;
	margin-bottom: 1.5rem;
}

.cj-trip-single__meta {
	display: flex;
	gap: 1.2rem;
	flex-wrap: wrap;
	background: var(--chata-primary-light, #e8f5e9);
	padding: 1rem 1.2rem;
	border-radius: 10px;
	margin-bottom: 1.5rem;
	font-size: .95rem;
}

.cj-trip-single__content {
	line-height: 1.7;
	font-size: 1.02rem;
}

/* Issue #22: navigační tlačítka + QR kód na detailu výletu */
.cj-trip-nav {
	margin-top: 1.8rem;
	padding: 1.4rem 1.4rem 1.6rem;
	background: var(--cj-surface, #fff);
	border: 1px solid var(--cj-border-alt, #e5e5e5);
	border-radius: 14px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .05);
}

.cj-trip-nav__title {
	margin: 0 0 1rem;
	font-size: 1.15rem;
	font-weight: 700;
}

.cj-trip-nav__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: .8rem;
	margin-bottom: 1.4rem;
}

.cj-trip-nav__btn {
	display: flex;
	align-items: center;
	gap: .7rem;
	flex: 1 1 220px;
	padding: .75rem 1rem;
	border-radius: 10px;
	text-decoration: none;
	color: #fff;
	transition: transform .15s ease, box-shadow .15s ease;
	box-shadow: 0 2px 6px rgba(0, 0, 0, .12);
}

.cj-trip-nav__btn:hover,
.cj-trip-nav__btn:focus-visible {
	transform: translateY(-2px);
	box-shadow: 0 5px 14px rgba(0, 0, 0, .18);
	color: #fff;
}

.cj-trip-nav__btn--google {
	background: linear-gradient(135deg, #4285F4, #34A853);
}

.cj-trip-nav__btn--mapy {
	background: linear-gradient(135deg, #D5153A, #8f0f28);
}

.cj-trip-nav__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	flex-shrink: 0;
}

.cj-trip-nav__btn-text {
	display: flex;
	flex-direction: column;
	line-height: 1.25;
}

.cj-trip-nav__btn-text small {
	opacity: .9;
	font-size: .78rem;
}

.cj-trip-nav__qr {
	display: flex;
	align-items: center;
	gap: 1.1rem;
	flex-wrap: wrap;
	padding-top: 1.2rem;
	border-top: 1px dashed #ddd;
}

.cj-trip-nav__qr-img {
	border-radius: 10px;
	border: 1px solid #eee;
	background: var(--cj-surface, #fff);
	padding: 6px;
	flex-shrink: 0;
}

.cj-trip-nav__qr-text {
	margin: 0;
	font-size: .92rem;
	color: #444;
	max-width: 340px;
}

.cj-trip-single__map {
	width: 100%;
	height: 420px;
	border-radius: 12px;
	background: #eef2ef;
	margin-top: 1.5rem;
}

.cj-trip-single__back {
	margin-top: 2rem;
}

.cj-trip-single__back a {
	color: var(--chata-primary, #2e7d32);
	font-weight: 600;
	text-decoration: none;
}

/* Modal s detailem + mapou */
.cj-trip-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: none;
}

.cj-trip-modal.is-open {
	display: block;
}

.cj-trip-modal__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.55);
}

.cj-trip-modal__dialog {
	position: relative;
	max-width: 720px;
	margin: 4vh auto;
	background: var(--cj-surface, #fff);
	border-radius: 14px;
	padding: 1.5rem;
	max-height: 92vh;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.cj-trip-modal__close {
	position: absolute;
	top: .6rem;
	right: .8rem;
	background: none;
	border: none;
	font-size: 1.8rem;
	line-height: 1;
	cursor: pointer;
	color: #667;
}

.cj-trip-modal__title {
	margin: 0;
	padding-right: 2rem;
	font-size: 1.3rem;
	color: var(--chata-primary-dark, #1b5e20);
}

.cj-trip-modal__map {
	width: 100%;
	height: 420px;
	border-radius: 10px;
	background: #eef2ef;
}

.cj-trip-modal__no-route {
	padding: 2rem;
	text-align: center;
	color: #667;
}

@media (max-width: 860px) {
	.cj-trips-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 540px) {
	.cj-trips-grid { grid-template-columns: 1fr; padding: .5rem; }
	.cj-trip-modal__dialog { margin: 0; border-radius: 0; max-height: 100vh; height: 100vh; }
	.cj-trip-modal__map { height: 55vh; }
}
/**
 * HBook Custom Stylesheet for Chata Jedlová V2
 * Clean, modern flat design styling for HBook calendar, forms, and booking steps.
 * Built strictly with CSS Variables, Grid, & Flexbox (Zero external libraries, CLS = 0).
 */

:root {
	--hb-primary: #2e7d32;
	--hb-primary-dark: #1b5e20;
	--hb-primary-light: #e8f5e9;
	--hb-accent: #d84315;
	--hb-bg-dark: #1a2421;
	--hb-bg-light: #f8faf9;
	--hb-text: #1a2421;
	--hb-text-muted: #4a5568;
	--hb-border: #e2e8f0;
	--hb-radius: 10px;
	--hb-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
	--hb-available-bg: #e8f5e9;
	--hb-available-color: #1b5e20;
	--hb-booked-bg: #ffebee;
	--hb-booked-color: #c62828;
	--hb-selected-bg: #2e7d32;
	--hb-selected-color: #ffffff;
	/* Chata Jedlová brand tokens */
	--cj-green-dark: #1b3815;
	--cj-green: #2d5a27;
	--cj-green-hover: #1e3d1a;
	--cj-accent-light: #f4f7f4;
	--cj-border: #e2e8f0;
	--cj-text-dark: #1f2937;
	--cj-text-muted: #64748b;
	--cj-radius: 10px;
	--cj-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
}

/* -----------------------------------------------------------------------------
 * 1. CLS Optimization: Explicit Intrinsic Min-Height for AJAX Containers
 * ----------------------------------------------------------------------------- */
.hbook-calendar-container,
.hb-calendar,
.hb-availability-calendar-wrapper,
.hb-availability {
	min-height: 380px;
	contain: layout intrinsic-size;
}

.hbook-form-container,
.hb-booking-form-wrapper,
.hb-booking-search-form,
.hb-search-form-wrapper {
	min-height: 280px;
	contain: layout intrinsic-size;
}

/* -----------------------------------------------------------------------------
 * 2. Modern Flat Calendar (.hb-availability / .hb-calendar)
 * ----------------------------------------------------------------------------- */
.hb-calendar,
.hb-availability,
.hb-availability-calendar {
	width: 100%;
	border: 1px solid var(--hb-border);
	border-radius: var(--hb-radius);
	background-color: var(--cj-surface, #ffffff);
	padding: 1.25rem;
	box-shadow: var(--hb-shadow);
	box-sizing: border-box;
}

.hb-month-header,
.hb-calendar-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1rem;
	font-weight: 700;
	font-size: 1.1rem;
	color: var(--hb-text);
}

.hb-weekdays {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	text-align: center;
	font-weight: 600;
	font-size: 0.85rem;
	color: var(--hb-text-muted);
	margin-bottom: 0.5rem;
	border-bottom: 1px solid var(--hb-border);
	padding-bottom: 0.5rem;
}

.hb-days-grid,
.hb-month-days {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 4px;
}

.hb-day {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1;
	border-radius: 6px;
	font-size: 0.95rem;
	font-weight: 500;
	transition: background-color 0.15s ease, color 0.15s ease;
	cursor: pointer;
}

/* Available Days */
.hb-day-available,
.hb-day.available,
.hb-day-free {
	background-color: var(--hb-available-bg);
	color: var(--hb-available-color);
}

.hb-day-available:hover,
.hb-day.available:hover {
	background-color: #c8e6c9;
}

/* Booked / Unavailable Days */
.hb-day-booked,
.hb-day.booked,
.hb-day-unavailable {
	background-color: var(--hb-booked-bg);
	color: var(--hb-booked-color);
	text-decoration: line-through;
	cursor: not-allowed;
	opacity: 0.8;
}

/* Selected & Range Selection */
.hb-day-selected,
.hb-day.selected {
	background-color: var(--hb-selected-bg) !important;
	color: var(--hb-selected-color) !important;
	font-weight: 700;
}

.hb-day-in-range,
.hb-day.in-range {
	background-color: #a5d6a7;
	color: #1b5e20;
}

/* -----------------------------------------------------------------------------
 * 3. Modern Booking Form (.hb-booking-form / .hb-search-form)
 * ----------------------------------------------------------------------------- */
.hb-booking-form,
.hb-search-form {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	width: 100%;
}

.hb-field {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}

.hb-field-label,
.hb-booking-form label {
	font-size: 0.925rem;
	font-weight: 600;
	color: var(--hb-text);
}

.hb-input,
.hb-select,
.hb-booking-form input[type="text"],
.hb-booking-form input[type="email"],
.hb-booking-form input[type="tel"],
.hb-booking-form input[type="date"],
.hb-booking-form select,
.hb-booking-form textarea {
	width: 100%;
	padding: 0.8rem 1rem;
	font-size: 1rem;
	font-family: inherit;
	border: 1px solid var(--hb-border);
	border-radius: 6px;
	background-color: var(--cj-surface, #ffffff);
	color: var(--hb-text);
	box-shadow: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
	box-sizing: border-box;
}

.hb-input:focus,
.hb-select:focus,
.hb-booking-form input:focus,
.hb-booking-form select:focus,
.hb-booking-form textarea:focus {
	border-color: var(--hb-primary);
	outline: none;
	box-shadow: 0 0 0 3px rgba(46, 125, 50, 0.2);
}

/* Submit & Action Buttons */
.hb-submit,
.hb-button,
.hb-booking-form input[type="submit"],
.hb-booking-form button[type="submit"],
.hb-confirm-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 0.9rem 1.75rem;
	font-size: 1.05rem;
	font-weight: 600;
	color: #ffffff;
	background-color: var(--hb-primary);
	border: none;
	border-radius: 6px;
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
}

.hb-submit:hover,
.hb-button:hover,
.hb-booking-form input[type="submit"]:hover,
.hb-booking-form button[type="submit"]:hover,
.hb-confirm-btn:hover {
	background-color: var(--hb-primary-dark);
	transform: translateY(-1px);
	box-shadow: 0 6px 14px rgba(0, 0, 0, 0.2);
}

/* -----------------------------------------------------------------------------
 * 4. Booking Process Steps & Summary Cards (.hb-booking-details)
 * ----------------------------------------------------------------------------- */
.hb-booking-details,
.hb-summary-card,
.hb-step-container {
	background: var(--cj-surface, #ffffff);
	border: 1px solid var(--hb-border);
	border-radius: var(--hb-radius);
	padding: 1.75rem;
	margin-top: 1.5rem;
	box-shadow: var(--hb-shadow);
}

.hb-step-header {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--hb-text);
	border-bottom: 2px solid var(--hb-primary-light);
	padding-bottom: 0.75rem;
	margin-bottom: 1.25rem;
}

.hb-summary-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 1.5rem;
}

.hb-summary-table td,
.hb-summary-table th {
	padding: 0.75rem 0.5rem;
	border-bottom: 1px solid var(--hb-border);
	font-size: 0.975rem;
}

.hb-price-total {
	font-size: 1.35rem;
	font-weight: 700;
	color: var(--hb-primary-dark);
}

/* Payment Options (Stripe / Voucher) */
.hb-payment-options {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	margin-top: 1.5rem;
}

.hb-payment-option {
	padding: 1rem 1.25rem;
	border: 1px solid var(--hb-border);
	border-radius: 8px;
	background-color: var(--hb-bg-light);
	cursor: pointer;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}

.hb-payment-option:hover,
.hb-payment-option.selected {
	border-color: var(--hb-primary);
	background-color: var(--hb-primary-light);
}

/* -----------------------------------------------------------------------------
 * 5. Modern Hero Booking Bar (Glassmorphism & Responsive Row Layout)
 * ----------------------------------------------------------------------------- */
/* -----------------------------------------------------------------------------
 * HYPER-SPECIFIC HERO BOOKING BAR OVERRIDES (.hero-booking-wrapper)
 * ----------------------------------------------------------------------------- */
div.hero-booking-wrapper,
section.hero-booking-section div.hero-booking-wrapper {
	background: var(--cj-glass-bg, rgba(255, 255, 255, 0.97)) !important;
	backdrop-filter: blur(16px) !important;
	-webkit-backdrop-filter: blur(16px) !important;
	border: 1px solid rgba(255, 255, 255, 0.5) !important;
	border-radius: 16px !important;
	padding: 0.85rem 1.25rem !important; /* Compact, balanced padding */
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.14) !important;
	max-width: 1060px !important;
	margin: -3.25rem auto 2rem !important;
	position: relative !important;
	z-index: 100 !important;
	box-sizing: border-box !important;
	overflow: hidden !important;
}

/* Force zero margins and paddings on all container divs and forms */
div.hero-booking-wrapper .hbook-wrapper,
div.hero-booking-wrapper .hb-booking-search-form,
div.hero-booking-wrapper .hb-search-fields-and-submit,
div.hero-booking-wrapper form,
div.hero-booking-wrapper div {
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	box-shadow: none !important;
	background: transparent !important;
}

/* HIDE all empty/unused space-wasting paragraphs & elements under search fields */
div.hero-booking-wrapper .hb-title,
div.hero-booking-wrapper .hb-title-search-form,
div.hero-booking-wrapper .hb-searched-summary,
div.hero-booking-wrapper .hb-admin-search-type-wrapper,
div.hero-booking-wrapper [class*="admin_search_type"],
div.hero-booking-wrapper p.hb-search-error,
div.hero-booking-wrapper p.hb-search-no-result,
div.hero-booking-wrapper p.hb-bottom-area,
div.hero-booking-wrapper .hb-booking-searching,
div.hero-booking-wrapper .hb-multi-accom-people-selection-wrapper,
div.hero-booking-wrapper form.hb-booking-details-form,
div.hero-booking-wrapper .hb-booking-details-form,
div.hero-booking-wrapper .hb-booking-summary,
div.hero-booking-wrapper .hb-confirm-booking-form,
div.hero-booking-wrapper .hb-select-accom,
div.hero-booking-wrapper .hb-search-results,
div.hero-booking-wrapper .hb-accom-list:empty,
div.hero-booking-wrapper .hb-accom-list {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	height: 0 !important;
	min-height: 0 !important;
	max-height: 0 !important;
	line-height: 0 !important;
	font-size: 0 !important;
	border: none !important;
	overflow: hidden !important;
}

/* Show active error / loader / details ONLY when active */
div.hero-booking-wrapper p.hb-search-error.hb-show,
div.hero-booking-wrapper p.hb-search-no-result.hb-show,
div.hero-booking-wrapper .hb-booking-searching.hb-show {
	display: block !important;
	height: auto !important;
	min-height: auto !important;
	max-height: none !important;
	line-height: 1.4 !important;
	font-size: 0.875rem !important;
	margin-top: 0.75rem !important;
	padding: 0.5rem 0.75rem !important;
}

div.hero-booking-wrapper .hb-booking-details-form.hb-show,
div.hero-booking-wrapper .hb-booking-summary.hb-show,
div.hero-booking-wrapper .hb-search-results.hb-show,
div.hero-booking-wrapper .hb-accom-list:not(:empty) {
	display: block !important;
	height: auto !important;
	min-height: auto !important;
	max-height: none !important;
	line-height: 1.5 !important;
	font-size: 1rem !important;
	margin-top: 1rem !important;
	padding-top: 1rem !important;
	border-top: 1px solid var(--chata-border, #e2e8f0) !important;
}

/* 1-row flexbox layout for search fields */
div.hero-booking-wrapper .hb-search-fields {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: flex-end !important;
	justify-content: space-between !important;
	gap: 0.75rem !important;
	margin: 0 !important;
	padding: 0 !important;
	width: 100% !important;
	box-sizing: border-box !important;
}

/* Disable clearing floats pseudo-elements */
div.hero-booking-wrapper .hb-search-fields:after,
div.hero-booking-wrapper .hb-search-fields:before,
div.hero-booking-wrapper .hb-clearfix:after,
div.hero-booking-wrapper .hb-clearfix:before {
	content: none !important;
	display: none !important;
}

/* Individual field paragraphs */
div.hero-booking-wrapper .hb-search-fields > p,
div.hero-booking-wrapper p.hb-check-dates-wrapper,
div.hero-booking-wrapper p.hb-accom-number-wrapper,
div.hero-booking-wrapper p.hb-people-wrapper,
div.hero-booking-wrapper p.hb-search-submit-wrapper {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	position: relative !important;
	box-sizing: border-box !important;
	height: auto !important;
	min-height: auto !important;
	max-height: none !important;
	line-height: normal !important;
}

div.hero-booking-wrapper p.hb-check-dates-wrapper {
	flex: 1.3 1 0% !important;
	min-width: 130px !important;
}

div.hero-booking-wrapper p.hb-accom-number-wrapper {
	flex: 1.1 1 0% !important;
	min-width: 110px !important;
}

div.hero-booking-wrapper p.hb-people-wrapper {
	flex: 0.9 1 0% !important;
	min-width: 90px !important;
}

div.hero-booking-wrapper p.hb-search-submit-wrapper {
	flex: 1.3 1 0% !important;
	min-width: 130px !important;
}

/* Label styling */
div.hero-booking-wrapper label,
div.hero-booking-wrapper p label {
	display: block !important;
	font-size: 0.8rem !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.03em !important;
	margin: 0 0 0.3rem 0 !important;
	padding: 0 !important;
	color: #334155 !important;
	white-space: nowrap !important;
	line-height: 1.2 !important;
	height: auto !important;
	float: none !important;
}

/* Input and Select styling */
div.hero-booking-wrapper input[type="text"],
div.hero-booking-wrapper select {
	width: 100% !important;
	height: 44px !important;
	min-height: 44px !important;
	max-height: 44px !important;
	border: 1px solid #cbd5e1 !important;
	border-radius: 8px !important;
	padding: 0 0.75rem !important;
	font-size: 0.9rem !important;
	font-weight: 500 !important;
	background: var(--cj-surface, #ffffff) !important;
	color: #0f172a !important;
	box-sizing: border-box !important;
	box-shadow: none !important;
	margin: 0 !important;
	outline: none !important;
	line-height: 42px !important;
	appearance: auto !important;
	-webkit-appearance: auto !important;
	float: none !important;
}

div.hero-booking-wrapper input[type="text"]:focus,
div.hero-booking-wrapper select:focus {
	border-color: #2563eb !important;
	background-color: var(--cj-surface, #ffffff) !important;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15) !important;
}

/* Search Submit button */
div.hero-booking-wrapper input[type="submit"],
div.hero-booking-wrapper .hb-confirm-btn,
div.hero-booking-wrapper button[type="submit"] {
	width: 100% !important;
	height: 44px !important;
	min-height: 44px !important;
	max-height: 44px !important;
	background: #2563eb !important;
	color: #ffffff !important;
	font-size: 0.95rem !important;
	font-weight: 700 !important;
	border: none !important;
	border-radius: 8px !important;
	cursor: pointer !important;
	transition: background-color 0.2s ease, transform 0.15s ease !important;
	margin: 0 !important;
	padding: 0 1rem !important;
	line-height: 44px !important;
	box-shadow: 0 2px 6px rgba(37, 99, 235, 0.3) !important;
	float: none !important;
}

div.hero-booking-wrapper input[type="submit"]:hover,
div.hero-booking-wrapper button[type="submit"]:hover {
	background: #1d4ed8 !important;
	transform: translateY(-1px) !important;
	box-shadow: 0 4px 10px rgba(37, 99, 235, 0.4) !important;
}

/* Mobile responsive layout */
@media (max-width: 768px) {
	div.hero-booking-wrapper {
		margin: 1rem !important;
		padding: 1.25rem 1rem !important;
		max-width: 100% !important;
	}
	div.hero-booking-wrapper .hb-search-fields {
		flex-direction: column !important;
		flex-wrap: wrap !important;
		align-items: stretch !important;
		gap: 0.85rem !important;
	}
	div.hero-booking-wrapper .hb-search-fields > p,
	div.hero-booking-wrapper p.hb-check-dates-wrapper,
	div.hero-booking-wrapper p.hb-accom-number-wrapper,
	div.hero-booking-wrapper p.hb-people-wrapper,
	div.hero-booking-wrapper p.hb-search-submit-wrapper {
		width: 100% !important;
		flex: 1 1 100% !important;
		min-width: 100% !important;
	}
}


/* =============================================================================
 * 6. BOOKING SEARCH FORM — Moderní design (Chata Jedlová restyle)
 * ============================================================================= */

/* ── KROK 1: Wrapper search formu ────────────────────────────────────────── */
.hb-booking-search-form {
	background: var(--cj-surface, #ffffff) !important;
	border-radius: 16px !important;
	box-shadow: 0 2px 24px rgba(27, 56, 21, 0.10) !important;
	padding: 0 !important;
	overflow: hidden !important;
	margin-bottom: 2rem !important;
	border: 1px solid rgba(45, 90, 39, 0.12) !important;
}

/* Zelený pruh nahoře */
.hb-booking-search-form::before {
	content: '';
	display: block;
	height: 4px;
	background: linear-gradient(90deg, var(--cj-green-dark) 0%, var(--cj-green) 100%);
}

/* Nadpis formu */
.hb-booking-search-form h3.hb-title-search-form {
	font-size: 0.8rem !important;
	font-weight: 800 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.1em !important;
	color: var(--cj-green-dark) !important;
	padding: 1.25rem 1.75rem 0 !important;
	margin: 0 0 1rem 0 !important;
}

/* Wrapper polí + tlačítka */
.hb-search-fields-and-submit {
	padding: 0 1.75rem 1.5rem !important;
}

/* Pole Ubytování — HBook ho generuje pro výběr počtu pokojů, pro jednoduchou chatu nedává smysl */
.hb-search-fields > p.hb-accom-number-wrapper {
	display: none !important;
}

/* Kontejner polí — flex: Příjezd | Odjezd | Dospělí | Děti | [Hledat] */
.hb-search-fields {
	display: flex !important;
	flex-wrap: nowrap !important;
	align-items: stretch !important;
	background: #f8faf8 !important;
	border: 1.5px solid var(--cj-border) !important;
	border-radius: 12px !important;
	overflow: hidden !important;
}

/* Každý <p> je buňka — flex item s explicitní min-šířkou aby se text neorizával */
.hb-search-fields > p {
	flex: 1 1 0 !important;
	min-width: 100px !important;
	display: flex !important;
	flex-direction: column !important;
	justify-content: center !important;
	padding: 0.75rem 1.125rem !important;
	margin: 0 !important;
	position: relative !important;
	border-right: 1.5px solid var(--cj-border) !important;
	background: transparent !important;
	transition: background 0.15s ease !important;
	box-sizing: border-box !important;
}

/* Datepicker pole — trochu více místa pro formmát "DD.MM.YYYY" */
p.hb-check-dates-wrapper {
	flex: 1.5 1 0 !important;
	min-width: 145px !important;
}

/* Select pole — Dospělí, Děti */
p.hb-people-wrapper {
	flex: 1 1 0 !important;
	min-width: 100px !important;
}

.hb-search-fields > p:last-child {
	border-right: none !important;
}

.hb-search-fields > p:focus-within {
	background: rgba(45, 90, 39, 0.04) !important;
}

/* Label nad inputem */
.hb-search-fields > p::before {
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--cj-text-muted);
	line-height: 1;
	margin-bottom: 0.3rem;
	display: block;
}

/* CSS labely nad inputy */
p.hb-check-dates-wrapper:nth-of-type(1)::before         { content: '📅 Příjezd'; }
p.hb-check-dates-wrapper:nth-of-type(2)::before         { content: '📅 Odjezd'; }
p.hb-people-wrapper.hb-people-wrapper-adults::before    { content: '👤 Dospělí'; }
p.hb-people-wrapper.hb-people-wrapper-children::before  { content: '👶 Děti'; }

/* Inputy v search fields */
.hb-search-fields > p input[type="text"],
.hb-search-fields > p input.hb-input-datepicker {
	width: 100% !important;
	height: auto !important;
	padding: 0 !important;
	border: none !important;
	background: transparent !important;
	font-size: 0.95rem !important;
	font-weight: 600 !important;
	color: var(--cj-text-dark) !important;
	outline: none !important;
	box-shadow: none !important;
	cursor: pointer !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	caret-color: var(--cj-green) !important;
}

.hb-search-fields > p input[type="text"]::placeholder {
	color: #a0aec0 !important;
	font-weight: 400 !important;
}

/* Selecty v search fields */
.hb-search-fields > p select {
	width: 100% !important;
	height: auto !important;
	padding: 0 !important;
	border: none !important;
	background: transparent !important;
	font-size: 0.95rem !important;
	font-weight: 600 !important;
	color: var(--cj-text-dark) !important;
	outline: none !important;
	box-shadow: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	cursor: pointer !important;
}

/* Trigger ikony datepickeru — skrýt (nahrazeno ::before labelem) */
.hb-search-fields .hb-datepick-check-in-out-trigger,
.hb-search-fields .hb-datepick-check-in-out-mobile-trigger {
	display: none !important;
}

/* Hledat tlačítko — flex-shrink:0 = nikdy se nestisnout */
.hb-search-fields > p.hb-search-submit-wrapper,
.hb-search-fields > p.hb-search-button-wrapper {
	flex: 0 0 auto !important;
	min-width: unset !important;
	padding: 0.75rem !important;
	align-items: center !important;
	justify-content: center !important;
}

.hb-search-fields > p.hb-search-submit-wrapper::before,
.hb-search-fields > p.hb-search-button-wrapper::before {
	display: none !important;
}

.hb-search-fields input[type="submit"]#hb-search-form-submit,
p.hb-search-submit-wrapper input[type="submit"],
p.hb-search-button-wrapper input[type="submit"] {
	display: block !important;
	width: 100% !important;
	min-width: 120px !important;
	height: 54px !important;
	padding: 0 1.5rem !important;
	background: var(--cj-green) !important;
	color: #ffffff !important;
	font-size: 0.9rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.03em !important;
	border: none !important;
	border-radius: 10px !important;
	cursor: pointer !important;
	transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease !important;
	box-shadow: 0 4px 14px rgba(45, 90, 39, 0.30) !important;
	white-space: nowrap !important;
}

.hb-search-fields input[type="submit"]#hb-search-form-submit:hover,
p.hb-search-submit-wrapper input[type="submit"]:hover,
p.hb-search-button-wrapper input[type="submit"]:hover {
	background: var(--cj-green-hover) !important;
	transform: translateY(-1px) !important;
	box-shadow: 0 8px 22px rgba(45, 90, 39, 0.40) !important;
}

/* Chybové a loading zprávy */
.hb-search-error,
.hb-search-no-result {
	font-size: 0.875rem !important;
	color: #c0392b !important;
	padding: 0.5rem 0 0 !important;
	margin: 0 !important;
	display: none !important;
}

.hb-search-error.hb-show,
.hb-search-no-result.hb-show {
	display: block !important;
}

.hb-booking-searching {
	font-size: 0.875rem !important;
	color: var(--cj-text-muted) !important;
	padding: 0.75rem 0 0 !important;
	margin: 0 !important;
}

/* ── Searched summary (stav po vyhledání) ───────────────────────────────── */
.hb-searched-summary {
	display: none; /* HBook JS řídí viditelnost */
	background: var(--cj-accent-light) !important;
	border-radius: 10px !important;
	padding: 1rem 1.5rem !important;
	margin: 0 1.75rem 1.25rem !important;
	font-size: 0.875rem !important;
	color: var(--cj-text-dark) !important;
	gap: 0.5rem 1.5rem !important;
	flex-wrap: wrap !important;
	align-items: center !important;
}

.hb-searched-summary p {
	margin: 0 !important;
	font-size: 0.875rem !important;
}

.hb-searched-summary strong,
.hb-searched-summary span {
	font-weight: 600 !important;
	color: var(--cj-green-dark) !important;
}

.hb-searched-summary .hb-change-search-wrapper input[type="submit"],
.hb-change-search-wrapper input[type="submit"] {
	background: transparent !important;
	border: 1.5px solid var(--cj-green) !important;
	color: var(--cj-green) !important;
	font-size: 0.8rem !important;
	font-weight: 700 !important;
	padding: 0.4rem 1rem !important;
	border-radius: 8px !important;
	cursor: pointer !important;
	transition: all 0.2s ease !important;
	box-shadow: none !important;
}

.hb-searched-summary .hb-change-search-wrapper input[type="submit"]:hover,
.hb-change-search-wrapper input[type="submit"]:hover {
	background: var(--cj-green) !important;
	color: #ffffff !important;
}

/* ── Inputy ve formuláři osobních údajů (záložka) ─────────────────────── */
.hb-details-fields input[type="text"],
.hb-details-fields input[type="email"],
.hb-details-fields input[type="tel"],
.hb-details-fields select,
.hb-details-fields textarea {
	width: 100% !important;
	height: 48px !important;
	padding: 0 1rem !important;
	border: 1.5px solid var(--cj-border) !important;
	border-radius: var(--cj-radius) !important;
	background: var(--cj-surface, #ffffff) !important;
	font-size: 0.95rem !important;
	color: var(--cj-text-dark) !important;
	transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
	box-sizing: border-box !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

.hb-details-fields textarea {
	height: auto !important;
	padding: 0.75rem 1rem !important;
}

.hb-details-fields input:focus,
.hb-details-fields select:focus,
.hb-details-fields textarea:focus {
	outline: none !important;
	border-color: var(--cj-green) !important;
	box-shadow: 0 0 0 3px rgba(45, 90, 39, 0.12) !important;
}

.hb-details-fields label {
	font-size: 0.8125rem !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.04em !important;
	color: var(--cj-text-muted) !important;
	margin-bottom: 0.3rem !important;
	display: block !important;
}

/* ── KROK 2: Karty výběru apartmánů ───────────────────────────────── */
/* display VYNECHÁNO — HBook plugin CSS skryje (display:none), jQuery .show() zobrazí.
   Naše CSS řeší pouze layout vlastnosti, nikdy display. */
.hb-accom-wrapper {
	flex-direction: column;
	gap: 1.5rem;
	margin: 2rem 0;
}

.hb-accom-list {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 1.5rem;
}

.hb-accom-item {
	background: var(--cj-surface, #ffffff);
	border: 1px solid var(--cj-border);
	border-radius: 14px;
	padding: 1.5rem;
	box-shadow: var(--cj-shadow);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.hb-accom-item:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08);
}

.hb-accom-title {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--cj-green-dark);
	margin-bottom: 0.5rem;
}

.hb-accom-price {
	font-size: 1.35rem;
	font-weight: 800;
	color: var(--cj-green);
	margin: 1rem 0;
}

/* ── KROK 3: Osobní údaje + Shrnutí (2-sloupcový checkout) ─────────────── */

/* display VYNECHÁNO — HBook plugin CSS skryje (display:none), jQuery .slideDown() zobrazí.
   JS MutationObserver pak přepíše inline display:block na display:grid.
   Naše CSS řeší pouze layout a vizuál, nikoliv viditelnost. */
.hb-booking-details-form,
form.hb-booking-details-form {
	max-width: none !important;
	width: 100% !important;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 2rem 0 0 !important;
	box-sizing: border-box !important;
	/* Grid layout — uplatní se pouze když je element viditelný (display != none).
	   JS observer nastaví inline display:grid po HBook .slideDown(). */
	grid-template-columns: 1.4fr 1fr;
	grid-template-areas:
		"back    back"
		"details summary"
		"payment summary"
		"confirm confirm"
		"bottom  bottom";
	gap: 2.5rem;
	align-items: start;
}

/* ── Zpět tlačítko ──────────────────────────────────────────────────────────── */
.hb-booking-details-form .hb-previous-step,
.hb-booking-details-form p.hb-step-button {
	grid-area: back !important;
	background: transparent !important;
	padding: 0 0 0.75rem 0 !important;
	border: none !important;
	box-shadow: none !important;
}

.hb-previous-step input[type="submit"],
.hb-booking-details-form p.hb-step-button input[type="submit"] {
	background: transparent;
	color: var(--cj-text-muted);
	border: 1px solid var(--cj-border);
	box-shadow: none;
	height: 36px;
	padding: 0 1rem;
	border-radius: 6px;
	font-size: 0.85rem;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.hb-previous-step input[type="submit"]:hover {
	background: #f1f5f9;
	color: var(--cj-text-dark);
	transform: none;
}

/* ── Osobní údaje (.hb-details-fields) ────────────────────────────────── */
.hb-booking-details-form .hb-details-fields {
	grid-area: details !important;
	background: var(--cj-surface, #ffffff);
	border: 1px solid var(--cj-border);
	border-radius: 14px;
	padding: 2rem;
	box-shadow: var(--cj-shadow);
	box-sizing: border-box;
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 0.875rem 1.25rem !important;
	align-items: start !important;
}

/* Sekce „Zadejte své údaje“ přes celou šířku */
.hb-booking-details-form .hb-details-fields h3.hb-title {
	grid-column: 1 / -1 !important;
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--cj-green-dark);
	margin: 0 0 0.5rem 0;
	padding-bottom: 0.75rem;
	border-bottom: 2px solid var(--cj-accent-light);
	letter-spacing: -0.01em;
}

/* Každé pole je <p> — reset float + flex layout */
.hb-booking-details-form .hb-details-fields > p {
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	clear: none !important;
	width: 100% !important;
	box-sizing: border-box !important;
}

/* Pole skrytá HBookem (USA state apod.) nechat skrytá */
.hb-booking-details-form .hb-details-fields > p:not([style*="display: none"]):not([style*="display:none"]) {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}

/* Email, telefon, adresa, město, PSČ, stát → plná šířka */
.hb-booking-details-form .hb-details-fields > p:has(#email),
.hb-booking-details-form .hb-details-fields > p:has(#phone),
.hb-booking-details-form .hb-details-fields > p:has(#address_1),
.hb-booking-details-form .hb-details-fields > p:has(#city),
.hb-booking-details-form .hb-details-fields > p:has(#zip_code),
.hb-booking-details-form .hb-details-fields > p:has(#country_iso),
.hb-booking-details-form .hb-details-fields > p.hb-country-iso-additional-info-wrapper,
.hb-booking-details-form .hb-details-fields p.hb-usa-state-iso-wrapper,
.hb-booking-details-form .hb-details-fields p.hb-canada-province-iso-wrapper {
	grid-column: 1 / -1 !important;
}

/* Label */
.hb-booking-details-form .hb-details-fields label {
	display: block !important;
	font-size: 0.8125rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--cj-text-muted);
	margin: 0 !important;
	float: none !important;
	width: auto !important;
	line-height: 1.2;
}

/* Input, Select */
.hb-booking-details-form .hb-details-fields input.hb-detail-field,
.hb-booking-details-form .hb-details-fields select.hb-detail-field,
.hb-booking-details-form .hb-details-fields select.hb-country-iso-select {
	width: 100% !important;
	height: 48px !important;
	padding: 0 1rem !important;
	font-size: 0.95rem !important;
	font-family: inherit !important;
	font-weight: 400 !important;
	color: var(--cj-text-dark) !important;
	background: var(--cj-surface, #ffffff) !important;
	border: 1.5px solid var(--cj-border) !important;
	border-radius: var(--cj-radius) !important;
	box-shadow: none !important;
	box-sizing: border-box !important;
	transition: border-color 0.18s ease, box-shadow 0.18s ease !important;
	float: none !important;
	margin: 0 !important;
	line-height: 46px !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

.hb-booking-details-form .hb-details-fields select.hb-detail-field,
.hb-booking-details-form .hb-details-fields select.hb-country-iso-select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%234a5568' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 0.75rem center !important;
	padding-right: 2.25rem !important;
	cursor: pointer !important;
}

.hb-booking-details-form .hb-details-fields input.hb-detail-field:focus,
.hb-booking-details-form .hb-details-fields select.hb-detail-field:focus,
.hb-booking-details-form .hb-details-fields select.hb-country-iso-select:focus {
	border-color: var(--cj-green) !important;
	outline: none !important;
	box-shadow: 0 0 0 3px rgba(45, 90, 39, 0.12) !important;
	background: var(--cj-surface, #ffffff) !important;
}

.hb-booking-details-form .hb-details-fields input.hb-error {
	border-color: #e53e3e !important;
	box-shadow: 0 0 0 3px rgba(229, 62, 62, 0.15) !important;
}

/* ── Shrnutí rezervace (.hb-summary-wrapper) ──────────────────────────── */
.hb-booking-details-form .hb-summary-wrapper {
	grid-area: summary !important;
	grid-row: 2 / 4 !important;
	background: var(--cj-accent-light);
	border: 1px solid rgba(45, 90, 39, 0.15);
	border-radius: 14px;
	padding: 2rem;
	box-shadow: var(--cj-shadow);
	box-sizing: border-box;
	position: sticky !important;
	top: 100px !important;
	color: var(--cj-text-dark);
	font-size: 0.9rem;
	line-height: 1.5;
	display: block !important;
}

.hb-booking-details-form .hb-summary-wrapper h2,
.hb-booking-details-form .hb-summary-wrapper h3,
.hb-booking-details-form .hb-summary-wrapper h4 {
	font-size: 1rem;
	font-weight: 700;
	color: var(--cj-green-dark);
	margin: 0 0 1.25rem 0;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid rgba(45, 90, 39, 0.15);
}

.hb-booking-details-form .hb-summary-wrapper table {
	width: 100% !important;
	border-collapse: collapse !important;
	background: transparent !important;
	border: none !important;
	margin: 0 0 1rem 0 !important;
}

.hb-booking-details-form .hb-summary-wrapper table td,
.hb-booking-details-form .hb-summary-wrapper table th {
	padding: 0.5rem 0 !important;
	font-size: 0.875rem !important;
	border: none !important;
	border-bottom: 1px solid rgba(45, 90, 39, 0.08) !important;
	color: var(--cj-text-muted) !important;
	background: transparent !important;
	vertical-align: middle !important;
}

.hb-booking-details-form .hb-summary-wrapper table td:last-child,
.hb-booking-details-form .hb-summary-wrapper table th:last-child {
	text-align: right !important;
	font-weight: 600 !important;
	color: var(--cj-text-dark) !important;
}

.hb-booking-details-form .hb-summary-wrapper tr.hb-total td,
.hb-booking-details-form .hb-summary-wrapper .hb-total td,
.hb-booking-details-form .hb-summary-wrapper .hb-price-total {
	border-top: 2px solid rgba(45, 90, 39, 0.2) !important;
	border-bottom: none !important;
	padding-top: 0.875rem !important;
	color: var(--cj-green-dark) !important;
	font-weight: 700 !important;
	font-size: 1rem !important;
}

.hb-booking-details-form .hb-summary-wrapper tr.hb-total td:last-child,
.hb-booking-details-form .hb-summary-wrapper .hb-total td:last-child {
	font-size: 1.45rem !important;
	font-weight: 800 !important;
	letter-spacing: -0.03em !important;
	color: var(--cj-green-dark) !important;
}

.hb-booking-details-form .hb-summary-wrapper p {
	color: var(--cj-text-muted) !important;
	font-size: 0.85rem !important;
	margin: 0.35rem 0 !important;
}

.hb-booking-details-form .hb-summary-wrapper strong,
.hb-booking-details-form .hb-summary-wrapper b {
	color: var(--cj-text-dark) !important;
	font-weight: 600 !important;
}

/* Načítám shrnutí loader */
.hb-booking-details-form .hb-loading-summary {
	grid-area: summary !important;
	/* display: flex — DEKLAROVÁNO BEZ !important aby HBook jQuery .hide() mohlo přebít inline stylem.
	   Na initial load skryje HBook plugin CSS (display:none), po načtení shrnutí jQuery .hide() skryje loader. */
	align-items: center !important;
	justify-content: center !important;
	color: var(--cj-text-muted) !important;
	font-size: 0.85rem !important;
	padding: 2rem !important;
	background: var(--cj-accent-light) !important;
	border: 1px solid rgba(45, 90, 39, 0.15) !important;
	border-radius: 14px !important;
	box-sizing: border-box !important;
}

/* ── Platba (.hb-payment-info-wrapper) ───────────────────────────────── */
.hb-booking-details-form .hb-payment-info-wrapper {
	grid-area: payment !important;
	background: var(--cj-accent-light);
	border: 1px solid rgba(45, 90, 39, 0.1);
	border-radius: 0 0 0 14px;
	padding: 1.25rem 2rem;
	box-sizing: border-box;
	font-size: 0.875rem;
	color: var(--cj-text-muted);
}

.hb-booking-details-form .hb-payment-info-wrapper p {
	margin: 0.35rem 0 !important;
	font-size: 0.85rem !important;
	color: var(--cj-text-muted) !important;
}

.hb-booking-details-form .hb-policies-area {
	grid-area: payment !important;
	display: block !important;
	padding: 0 2rem !important;
	box-sizing: border-box !important;
}

.hb-booking-details-form .hb-policies-error:empty {
	display: none !important;
}

/* ── Potvrzení (.hb-confirm-area) ──────────────────────────────────── */
.hb-booking-details-form .hb-confirm-area {
	grid-area: confirm !important;
	display: flex !important;
	flex-direction: column;
	gap: 0.6rem;
	padding: 1.5rem 2rem;
	background: var(--cj-surface, #ffffff);
	border: 1px solid var(--cj-border);
	border-radius: 0 0 14px 14px;
	box-sizing: border-box;
}

/* "Zpracovávám" loader */
.hb-booking-details-form .hb-saving-resa {
	font-size: 0.875rem !important;
	color: var(--cj-text-muted) !important;
	text-align: center !important;
	display: none !important;
}

.hb-booking-details-form .hb-saving-resa.hb-show {
	display: block !important;
}

/* Hlavní tlačítko Rezervovat */
.hb-booking-details-form .hb-confirm-area .hb-confirm-button input[type="submit"],
.hb-booking-details-form p.hb-confirm-button input[type="submit"] {
	width: 100% !important;
	height: 52px !important;
	font-size: 1.05rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.02em !important;
	background: var(--cj-green) !important;
	color: #ffffff !important;
	border: none !important;
	border-radius: var(--cj-radius) !important;
	cursor: pointer !important;
	transition: background-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease !important;
	box-shadow: 0 4px 14px rgba(45, 90, 39, 0.3) !important;
	display: block !important;
	margin: 0 !important;
	box-sizing: border-box !important;
}

.hb-booking-details-form .hb-confirm-area .hb-confirm-button input[type="submit"]:hover {
	background: var(--cj-green-hover) !important;
	transform: translateY(-2px) !important;
	box-shadow: 0 8px 22px rgba(45, 90, 39, 0.45) !important;
}

.hb-booking-details-form .hb-confirm-error {
	font-size: 0.85rem !important;
	color: #e53e3e !important;
	margin: 0 !important;
}

.hb-booking-details-form .hb-bottom-area {
	grid-area: bottom !important;
	display: none !important;
	height: 0 !important;
}

/* ── Tlačítka CTA (veškerá submit tlačítka HBooku) ──────────────────────── */
.hb-booking-form input[type="submit"],
.hb-search-form input[type="submit"],
.hb-accom-item input[type="submit"] {
	background-color: var(--cj-green);
	color: #ffffff;
	font-weight: 700;
	font-size: 0.95rem;
	height: 48px;
	padding: 0 1.75rem;
	border-radius: var(--cj-radius);
	border: none;
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.1s ease;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 4px 12px rgba(45, 90, 39, 0.2);
	box-sizing: border-box;
}

.hb-booking-form input[type="submit"]:hover,
.hb-search-form input[type="submit"]:hover,
.hb-accom-item input[type="submit"]:hover {
	background-color: var(--cj-green-hover);
	transform: translateY(-1px);
}

/* ── Datepicker (moderní kalendář) ──────────────────────────────────── */
.hb-datepicker {
	border-radius: 12px;
	box-shadow: 0 12px 35px rgba(0, 0, 0, 0.12);
	border: 1px solid var(--cj-border);
	font-family: inherit;
	overflow: hidden;
}

.hb-datepicker .ui-datepicker-header {
	background: var(--cj-green-dark);
	color: #ffffff;
	border: none;
	padding: 0.75rem;
}

.hb-datepicker .ui-state-active,
.hb-datepicker .ui-state-highlight {
	background: var(--cj-green) !important;
	color: #ffffff !important;
	border-radius: 6px;
}

/* ── RESPONSIVE: tablet + mobil ≤ 900px — 1 sloupec (shrnutí nahoře) ── */
@media (max-width: 900px) {
	/* Přepnutí na 1 sloupec — shrnutí se zobrazí NAD formulářem osobních údajů */
	.hb-booking-details-form,
	form.hb-booking-details-form {
		grid-template-columns: 1fr !important;
		grid-template-areas:
			"back"
			"summary"
			"details"
			"payment"
			"confirm"
			"bottom" !important;
		gap: 1.5rem !important;
	}

	.hb-booking-details-form .hb-summary-wrapper {
		grid-area: summary !important;
		position: static !important;
		top: auto !important;
	}

	/* Vizuální hint "Vyplňte údaje níže" pod shrnutím — animovaná šipka */
	.hb-booking-details-form .hb-summary-wrapper::after {
		content: 'Vyplňte osobní údaje níže ↓';
		display: block;
		text-align: center;
		font-size: 0.8rem;
		font-weight: 700;
		color: var(--cj-green);
		letter-spacing: 0.04em;
		padding: 0.875rem 1rem 0.25rem;
		animation: hbcj-bounce 1.6s ease-in-out infinite;
	}

	@keyframes hbcj-bounce {
		0%, 100% { transform: translateY(0); opacity: 0.75; }
		50%       { transform: translateY(4px); opacity: 1; }
	}

	/* Formulář osobních údajů — 1 sloupec místo 2 */
	.hb-booking-details-form .hb-details-fields {
		grid-template-columns: 1fr !important;
		border-radius: 14px !important;
	}

	.hb-booking-details-form .hb-details-fields > p {
		grid-column: 1 !important;
	}

	.hb-booking-details-form .hb-payment-info-wrapper {
		border-radius: 0 !important;
	}

	.hb-booking-details-form .hb-confirm-area {
		border-radius: 14px !important;
	}
}

/* ── RESPONSIVE: tablet ≤ 768px — search form 2-řádkový ────────────────── */
@media (max-width: 768px) {
	/* Flex wrap — pole se zalamují do 2 sloupců */
	.hb-search-fields {
		flex-wrap: wrap !important;
	}

	/* Každé pole zabere 50% — 2 sloupce */
	.hb-search-fields > p {
		flex: 1 1 45% !important;
		min-width: 130px !important;
	}

	/* Datová pole stejně velká jako ostatní */
	p.hb-check-dates-wrapper {
		flex: 1 1 45% !important;
		min-width: 130px !important;
	}

	/* Tlačítko Hledat přes celou šířku jako poslední řádek */
	.hb-search-fields > p.hb-search-submit-wrapper,
	.hb-search-fields > p.hb-search-button-wrapper {
		flex: 1 1 100% !important;
		border-right: none !important;
		border-top: 1.5px solid var(--cj-border) !important;
		padding: 1rem !important;
	}

	.hb-search-fields input[type="submit"]#hb-search-form-submit,
	p.hb-search-submit-wrapper input[type="submit"],
	p.hb-search-button-wrapper input[type="submit"] {
		height: 48px !important;
	}

	.hb-booking-details-form .hb-details-fields,
	.hb-booking-details-form .hb-summary-wrapper,
	.hb-booking-details-form .hb-confirm-area,
	.hb-booking-details-form .hb-payment-info-wrapper {
		padding: 1.25rem !important;
	}

	.hb-booking-details-form .hb-confirm-area .hb-confirm-button input[type="submit"] {
		height: 48px !important;
		font-size: 1rem !important;
	}
}

/* ── RESPONSIVE: mobil ≤ 500px — search form 1 sloupec ─────────────────── */
@media (max-width: 500px) {
	/* 1 sloupec — každé pole přes celou šířku */
	.hb-search-fields > p,
	p.hb-check-dates-wrapper,
	p.hb-people-wrapper {
		flex: 1 1 100% !important;
		min-width: 0 !important;
		border-right: none !important;
		border-bottom: 1.5px solid var(--cj-border) !important;
	}

	.hb-search-fields > p:last-child {
		border-bottom: none !important;
	}

	.hb-booking-search-form {
		border-radius: 12px !important;
	}

	.hb-search-fields-and-submit {
		padding: 0 1.25rem 1.25rem !important;
	}
}


/* =============================================================================
 * 7. Landing Page Layout — GeneratePress Container & Sidebar Overrides
 * ============================================================================= */

/* Force landing-page-main to break out of GP container width */
.landing-page-main {
	max-width: 100% !important;
	width: 100% !important;
	padding: 0 !important;
	margin: 0 !important;
}

.landing-page-main .hero-booking-section {
	max-width: 100% !important;
	width: 100% !important;
	padding: 0 !important;
}

/* Override GP right-sidebar layout for landing page */
body.home .site-content .content-area,
body.home .site-content,
body.home #page,
body.home .site.grid-container {
	max-width: 100% !important;
	width: 100% !important;
}

body.home .site-content .content-area {
	width: 100% !important;
	float: none !important;
}

body.home .is-right-sidebar,
body.home .is-left-sidebar,
body.home #right-sidebar,
body.home #left-sidebar {
	display: none !important;
	width: 0 !important;
}

/* =============================================================================
 * 8. Hero Booking Bar — .hb-vertical-search-form CSS Override (záložní pojistka)
 *    JS v functions.php removuje třídu via MutationObserver,
 *    CSS zde jako fallback pro případ race condition.
 * ============================================================================= */

div.hero-booking-wrapper .hb-vertical-search-form .hb-search-fields > p,
div.hero-booking-wrapper .hb-vertical-search-form .hb-searched-summary p,
div.hero-booking-wrapper .hb-vertical-search-form .hb-check-dates-wrapper,
div.hero-booking-wrapper .hb-vertical-search-form .hb-people-wrapper,
div.hero-booking-wrapper .hb-vertical-search-form .hb-accom-number-wrapper,
div.hero-booking-wrapper .hb-vertical-search-form .hb-search-button-wrapper,
div.hero-booking-wrapper .hb-vertical-search-form.hb-search-form-no-people:not(.hb-search-form-multiple-accom) .hb-check-dates-wrapper,
div.hero-booking-wrapper .hb-vertical-search-form.hb-search-form-no-people:not(.hb-search-form-multiple-accom) .hb-search-button-wrapper {
	margin-right: 0 !important;
	width: auto !important;
	float: none !important;
}

div.hero-booking-wrapper .hb-vertical-search-form:not(.hb-search-form-no-children) p.hb-people-wrapper-adults {
	margin-right: 0 !important;
}

div.hero-booking-wrapper .hb-vertical-search-form .hb-search-button-wrapper label {
	display: block !important;
}

div.hero-booking-wrapper .hb-vertical-search-form .hb-search-button-wrapper input,
div.hero-booking-wrapper .hb-narrow-search-form .hb-search-button-wrapper input {
	width: 100% !important;
}
/* P1: Tlačítka Další/Zpět a celkové HBook CTA zeleně */
.hb-booking-form a.hb-btn,
.hb-booking-form button.hb-btn,
.hb-booking-form input[type="button"].hb-btn,
.hb-btn-next, .hb-btn-prev, .hb-submit {
    background-color: var(--cj-green) !important;
    color: #fff !important;
    border-radius: var(--cj-radius) !important;
    border: none !important;
    box-shadow: 0 4px 12px rgba(45, 90, 39, 0.2) !important;
}
.hb-btn-next:hover, .hb-btn-prev:hover, .hb-submit:hover {
    background-color: var(--cj-green-hover) !important;
}

/* P1: Výsledek hledání HBook - odstranění šedi a lepší styling */
.hb-accom-item {
    background-color: var(--cj-surface, #fff) !important;
    border: 1px solid var(--cj-border) !important;
    border-radius: var(--cj-radius) !important;
    padding: 1.5rem !important;
    margin-bottom: 1.5rem !important;
    box-shadow: 0 4px 15px rgba(0,0,0,0.03) !important;
}
.hb-accom-item h3 {
    color: var(--cj-green-dark) !important;
    font-size: 1.4rem !important;
    margin-top: 0 !important;
}
.hb-accom-item .hb-accom-price {
    font-weight: bold;
    font-size: 1.2rem;
}

/* P1: Kalendář - ostylování a legenda */
.hb-calendar-legend {
    display: flex;
    justify-content: center;
    gap: 1.5rem;
    margin-top: 1rem;
    font-size: 0.9rem;
    color: var(--chata-text-muted, #4a5568);
}
.hb-legend-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.hb-legend-box {
    width: 16px;
    height: 16px;
    border-radius: 3px;
}
.hb-legend-free { background-color: #e6f4ea; border: 1px solid var(--cj-green); }
.hb-legend-booked { background-color: #fed7d7; border: 1px solid #e53e3e; text-decoration: line-through; }

/* HBook kalendář td */
.hb-datepicker td.ui-state-disabled span {
    text-decoration: line-through !important;
    color: #e53e3e !important;
    background: #fff5f5 !important;
}
/**
 * Single Accommodation Stylesheet (hb_accommodation CPT)
 * Pure CSS Grid, Flexbox, & CSS Variables (Zero External Libraries)
 */

:root {
	--chata-primary: #2e7d32;
	--chata-primary-dark: #1b5e20;
	--chata-primary-light: #e8f5e9;
	--chata-bg-dark: #1a2421;
	--chata-bg-light: #f8faf9;
	--chata-text-dark: #1a2421;
	--chata-text-muted: #4a5568;
	--chata-border: #e2e8f0;
	--chata-radius: 12px;
	--chata-shadow-md: 0 6px 12px -2px rgba(0, 0, 0, 0.08);
}

.accommodation-single-main {
	width: 100%;
	padding: 3rem 1.5rem;
	box-sizing: border-box;
	background-color: var(--chata-bg-light);
}

.accommodation-container {
	max-width: 1240px;
	margin: 0 auto;
}

/* 2-Column Responsive CSS Grid */
.accommodation-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
}

@media (min-width: 992px) {
	.accommodation-grid {
		grid-template-columns: 1fr 400px;
	}
}

/* Left Column Content */
.accommodation-content-col {
	display: flex;
	flex-direction: column;
	gap: 2rem;
}

.accommodation-header-title {
	font-size: clamp(2rem, 4vw, 3rem);
	color: var(--chata-text-dark);
	font-weight: 700;
	margin: 0 0 1rem 0;
	line-height: 1.2;
}

/* Parameters Bar */
.accommodation-params-bar {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem;
	background: var(--cj-surface, #ffffff);
	padding: 1.25rem 1.5rem;
	border-radius: var(--chata-radius);
	border: 1px solid var(--chata-border);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.03);
}

.param-item {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	font-size: 1rem;
	font-weight: 500;
	color: var(--chata-text-dark);
}

.param-icon {
	color: var(--chata-primary);
	display: inline-flex;
}

/* Description Section */
.accommodation-section-block {
	background: var(--cj-surface, #ffffff);
	padding: 2rem;
	border-radius: var(--chata-radius);
	border: 1px solid var(--chata-border);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.03);
}

.accommodation-section-block h2 {
	font-size: 1.5rem;
	color: var(--chata-text-dark);
	margin: 0 0 1.25rem 0;
	font-weight: 600;
}

.accommodation-body-text {
	font-size: 1.05rem;
	line-height: 1.7;
	color: var(--chata-text-muted);
}

/* Amenities Grid */
.amenities-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 1rem;
}

.amenity-card {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.85rem 1rem;
	background: var(--chata-bg-light);
	border-radius: 8px;
	font-size: 0.975rem;
	font-weight: 500;
	color: var(--chata-text-dark);
}

.amenity-icon {
	color: var(--chata-primary);
	flex-shrink: 0;
}

/* Gallery Grid */
.single-gallery-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 1rem;
}

.single-gallery-item {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	border-radius: 8px;
	overflow: hidden;
	background-color: #edf2f7;
}

.single-gallery-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.25s ease;
}

.single-gallery-item:hover img,
.single-gallery-item:focus-visible img {
	transform: scale(1.04);
}

/* Right Column (Sticky Sidebar) */
.accommodation-sidebar-col {
	position: relative;
}

.sticky-booking-card {
	position: sticky;
	top: 2rem;
	background: var(--cj-surface, #ffffff);
	border: 1px solid var(--chata-border);
	border-radius: var(--chata-radius);
	padding: 2rem;
	box-shadow: var(--chata-shadow-md);
}

.booking-card-title {
	font-size: 1.35rem;
	font-weight: 700;
	color: var(--chata-text-dark);
	margin: 0 0 1.5rem 0;
	text-align: center;
	border-bottom: 2px solid var(--chata-primary-light);
	padding-bottom: 0.75rem;
}

/* HBook Booking Form container — adds bottom spacing */
.hbook-form-container {
	margin-bottom: 1.5rem;
}

/* =============================================================================
 * HBook Availability Calendar — Modern Styling
 * ============================================================================= */

/* Section separator */
.hbook-calendar-container {
	border-top: 1px solid var(--chata-border);
	padding-top: 1.5rem;
	margin-top: 0.5rem;
}

/* Header row: icon + title */
.calendar-section-header {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin-bottom: 0.875rem;
}

.calendar-header-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	background-color: var(--chata-primary-light);
	color: var(--chata-primary);
	border-radius: 8px;
	flex-shrink: 0;
}

.calendar-section-title {
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--chata-text-dark);
	margin: 0;
	letter-spacing: -0.01em;
}

/* Legend strip */
.calendar-legend {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
	margin-bottom: 1rem;
	font-size: 0.8rem;
	color: var(--chata-text-muted);
}

.legend-dot {
	display: inline-block;
	width: 12px;
	height: 12px;
	border-radius: 3px;
	border: 1px solid rgba(0,0,0,0.08);
	flex-shrink: 0;
}

.legend-dot--free {
	background-color: var(--cj-surface, #ffffff);
	border-color: #cbd5e0;
}

.legend-dot--booked {
	background: repeating-linear-gradient(
		-45deg,
		#fed7d7,
		#fed7d7 3px,
		#fc8181 3px,
		#fc8181 6px
	);
	border-color: #fc8181;
}

.legend-label {
	margin-right: 0.75rem;
}

/* Inner wrapper — constrain width on wide screens */
.hbook-calendar-inner {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

/* ---- HBook calendar table overrides ------------------------------------- */

/* Calendar table */
.hbook-calendar-inner .hb-availability-calendar,
.hbook-calendar-inner table.hb-availability-calendar {
	width: 100%;
	border-collapse: separate;
	border-spacing: 2px;
	font-size: 0.8rem;
}

/* Month/Year navigation header */
.hbook-calendar-inner .hb-cal-month-nav,
.hbook-calendar-inner .hb-month-head {
	background: var(--chata-primary) !important;
	color: #ffffff !important;
	border-radius: 8px 8px 0 0;
	font-weight: 700;
	font-size: 0.9rem;
	letter-spacing: 0.02em;
	padding: 0.6rem 0.5rem !important;
}

/* Nav arrows */
.hbook-calendar-inner .hb-cal-prev,
.hbook-calendar-inner .hb-cal-next {
	color: #ffffff !important;
	opacity: 0.8;
	cursor: pointer;
	transition: opacity 0.15s ease;
}

.hbook-calendar-inner .hb-cal-prev:hover,
.hbook-calendar-inner .hb-cal-next:hover {
	opacity: 1;
}

/* Day-of-week header row */
.hbook-calendar-inner .hb-week-head th,
.hbook-calendar-inner th.hb-dow {
	background: var(--chata-primary-light) !important;
	color: var(--chata-primary-dark) !important;
	font-weight: 700;
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	padding: 0.4rem 0.25rem !important;
	text-align: center;
}

/* Generic day cell */
.hbook-calendar-inner td,
.hbook-calendar-inner .hb-cal-day {
	text-align: center;
	padding: 0 !important;
	vertical-align: middle;
}

.hbook-calendar-inner .hb-cal-day-num,
.hbook-calendar-inner td > span,
.hbook-calendar-inner td > div {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	margin: 1px auto;
	border-radius: 6px;
	font-size: 0.8rem;
	font-weight: 500;
	transition: background-color 0.15s ease;
}

/* Available day */
.hbook-calendar-inner .hb-available,
.hbook-calendar-inner td.hb-available {
	background-color: var(--cj-surface, #ffffff) !important;
	color: var(--chata-text-dark) !important;
	border: 1px solid var(--chata-border, #e2e8f0) !important;
}

/* Booked / unavailable day — cross-hatched */
.hbook-calendar-inner .hb-unavailable,
.hbook-calendar-inner .hb-booked,
.hbook-calendar-inner td.hb-unavailable,
.hbook-calendar-inner td.hb-booked {
	background: repeating-linear-gradient(
		-45deg,
		#fed7d7,
		#fed7d7 3px,
		#fc8181 3px,
		#fc8181 6px
	) !important;
	color: #9b2c2c !important;
	border: 1px solid #fc8181 !important;
}

/* Check-in half day */
.hbook-calendar-inner .hb-check-in,
.hbook-calendar-inner td.hb-check-in {
	background: linear-gradient(to right, var(--cj-surface, #ffffff) 50%, #fed7d7 50%) !important;
	border: 1px solid var(--chata-border, #e2e8f0) !important;
}

/* Check-out half day */
.hbook-calendar-inner .hb-check-out,
.hbook-calendar-inner td.hb-check-out {
	background: linear-gradient(to right, #fed7d7 50%, var(--cj-surface, #ffffff) 50%) !important;
	border: 1px solid var(--chata-border, #e2e8f0) !important;
}

/* Today highlight */
.hbook-calendar-inner .hb-today,
.hbook-calendar-inner td.hb-today {
	outline: 2px solid var(--chata-primary) !important;
	outline-offset: -2px;
	border-radius: 6px;
	font-weight: 700 !important;
}

/* Empty cells (out-of-month) */
.hbook-calendar-inner .hb-empty,
.hbook-calendar-inner td.hb-empty,
.hbook-calendar-inner td:empty {
	background: transparent !important;
	border: none !important;
}

/* Responsive — on mobile let the table scroll */
@media (max-width: 420px) {
	.hbook-calendar-inner {
		font-size: 0.72rem;
	}

	.hbook-calendar-inner .hb-cal-day-num,
	.hbook-calendar-inner td > span,
	.hbook-calendar-inner td > div {
		width: 26px;
		height: 26px;
	}
}

/**
 * Dashboard CSS — Příjezdový Dashboard Chata Jedlová
 * Responzivní layout: mobile-first → tablet 2 sloupce → desktop 3 sloupce
 */

/* =============================================================================
   CSS Proměnné & Reset
   ============================================================================= */

.cj-dashboard-body {
	margin: 0;
	padding: 0;
	background: #f8fafc;
	color: #1a1a2e;
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	-webkit-font-smoothing: antialiased;
	min-height: 100vh;
}

/* =============================================================================
   Dashboard — layout
   ============================================================================= */

.cj-dashboard {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 0 40px;
}

.cj-dashboard__content {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
	padding: 16px;
}

/* =============================================================================
   Header
   ============================================================================= */

.cj-dashboard__header {
	background: #2d6a4f;
	color: #fff;
	padding: 20px 16px 18px;
	position: sticky;
	top: 0;
	z-index: 10;
	box-shadow: 0 2px 8px rgba(0,0,0,.2);
}

.cj-dashboard__header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	max-width: 1068px;
	margin: 0 auto;
}

.cj-dashboard__logo {
	height: 48px;
	width: auto;
	/* Invertuje logo na bílé — funguje pro jednobarevná i tmavá loga.
	   brightness(0) → černá, invert(1) → bílá */
	filter: brightness(0) invert(1);
}

.cj-dashboard__logo-text {
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: 700;
	font-size: 1.05rem;
	letter-spacing: .01em;
}

.cj-dashboard__header-sub {
	font-size: .8rem;
	opacity: .8;
	letter-spacing: .04em;
	text-transform: uppercase;
}

/* =============================================================================
   Karta (card) — obecné
   ============================================================================= */

.cj-card {
	background: var(--cj-surface, #ffffff);
	border-radius: 16px;
	padding: 24px 20px;
	box-shadow: 0 2px 16px rgba(0,0,0,.08);
	border: 1px solid var(--cj-border-alt, #e5e7eb);
}

.cj-card__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 14px;
	background: #e9f5ef;
	color: #2d6a4f;
	margin-bottom: 14px;
}

.cj-card--wifi .cj-card__icon,
.cj-card--nav .cj-card__icon {
	background: #eaf4ff;
	color: #1a6fa3;
}

.cj-card--ics .cj-card__icon {
	background: #fff5ec;
	color: #e07b39;
}

.cj-card--parking .cj-card__icon {
	background: #f3f4f6;
	color: #6b7280;
}

.cj-card__title {
	font-size: 1rem;
	font-weight: 700;
	color: #1a1a2e;
	margin: 0 0 12px;
	letter-spacing: .01em;
}

.cj-card__desc {
	font-size: .875rem;
	color: #6b7280;
	line-height: 1.5;
	margin: 0 0 14px;
}

.cj-card__note {
	font-size: .8rem;
	color: #6b7280;
	margin: 10px 0 0;
	text-align: center;
}

/* =============================================================================
   PIN karta
   ============================================================================= */

.cj-card--pin {
	border-top: 4px solid #2d6a4f;
	text-align: center;
}

.cj-pin-display {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 8px 0 20px;
	user-select: all;
}

.cj-pin-display__group {
	font-size: 2.8rem;
	font-weight: 800;
	font-family: 'SF Mono', 'Fira Code', 'Courier New', monospace;
	color: #2d6a4f;
	letter-spacing: .06em;
	line-height: 1;
	background: #e9f5ef;
	padding: 10px 14px;
	border-radius: 10px;
}

.cj-pin-display__sep {
	width: 6px;
	height: 4px;
	background: #6b7280;
	border-radius: 2px;
	display: inline-block;
}

/* =============================================================================
   Wi-Fi karta
   ============================================================================= */

.cj-wifi-details {
	background: #f8fafc;
	border-radius: 10px;
	padding: 14px;
	margin-bottom: 14px;
	border: 1px solid var(--cj-border-alt, #e5e7eb);
}

.cj-wifi-row {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 0;
	border-bottom: 1px solid var(--cj-border-alt, #e5e7eb);
}

.cj-wifi-row:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

.cj-wifi-row:first-child {
	padding-top: 0;
}

.cj-wifi-row__label {
	font-size: .8rem;
	color: #6b7280;
	white-space: nowrap;
	flex-shrink: 0;
	min-width: 80px;
}

.cj-wifi-row__value {
	font-size: .9rem;
	font-weight: 600;
	color: #1a1a2e;
	flex: 1;
	word-break: break-all;
}

.cj-wifi-row__value--pass {
	display: flex;
	align-items: center;
	gap: 6px;
}

.cj-wifi-pass-dots {
	letter-spacing: .15em;
}

.cj-btn-icon {
	background: none;
	border: 1px solid var(--cj-border-alt, #e5e7eb);
	border-radius: 8px;
	padding: 6px;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #6b7280;
	transition: background .2s, color .2s;
	flex-shrink: 0;
}

.cj-btn-icon:hover,
.cj-btn-icon[aria-pressed="true"] {
	background: #e9f5ef;
	color: #2d6a4f;
	border-color: #52b788;
}

/* QR kód */
.cj-wifi-qr {
	margin-top: 20px;
	text-align: center;
	padding-top: 16px;
	border-top: 1px solid var(--cj-border-alt, #e5e7eb);
}

.cj-wifi-qr__label {
	font-size: .8rem;
	color: #6b7280;
	margin: 0 0 12px;
}

.cj-wifi-qr__image svg,
.cj-wifi-qr__image img {
	border-radius: 12px;
	border: 1px solid var(--cj-border-alt, #e5e7eb);
	max-width: 200px;
}

/* =============================================================================
   Tlačítka
   ============================================================================= */

.cj-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 14px 20px;
	font-size: .9rem;
	font-weight: 600;
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	border: none;
	border-radius: 10px;
	cursor: pointer;
	text-decoration: none;
	transition: background .2s, transform .1s, opacity .2s;
	min-height: 48px;
	width: 100%;
	text-align: center;
	-webkit-tap-highlight-color: transparent;
}

.cj-btn:active {
	transform: scale(.98);
}

.cj-btn--primary {
	background: #2d6a4f;
	color: #fff;
}

.cj-btn--primary:hover {
	background: #255c42;
	color: #fff;
}

.cj-btn--secondary {
	background: #e9f5ef;
	color: #2d6a4f;
	margin-bottom: 4px;
}

.cj-btn--secondary:hover {
	background: #d0eedd;
}

.cj-btn--ics {
	background: #e07b39;
	color: #fff;
}

.cj-btn--ics:hover {
	background: #c9692b;
	color: #fff;
}

.cj-ics-buttons {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: 8px;
}

.cj-btn--gcal {
	background: #f3f4f6;
	color: #374151;
	border: 1.5px solid var(--cj-border-alt, #e5e7eb);
	font-size: .85rem;
}

.cj-btn--gcal:hover {
	background: var(--cj-border-alt, #e5e7eb);
	color: #111827;
	text-decoration: none;
}

.cj-btn--success {
	background: #2d8653 !important;
}

/* =============================================================================
   Navigační tlačítka (cj-nav-buttons uvnitř karty)
   ============================================================================= */

.cj-nav-buttons {
	margin-top: 4px;
}

.cj-nav-buttons__header {
	margin-bottom: 12px;
}

.cj-nav-buttons__target-label {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: .82rem;
	color: #6b7280;
}

.cj-nav-buttons__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}

.cj-nav-btn {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 14px 10px;
	border-radius: 10px;
	text-decoration: none;
	font-size: .8rem;
	font-weight: 600;
	min-height: 72px;
	background: #f8fafc;
	border: 1px solid var(--cj-border-alt, #e5e7eb);
	color: #1a1a2e;
	transition: background .2s, border-color .2s, transform .1s;
	-webkit-tap-highlight-color: transparent;
}

.cj-nav-btn:hover,
.cj-nav-btn:focus-visible {
	background: #eaf0ff;
	border-color: #93b4f5;
	transform: translateY(-1px);
}

.cj-nav-btn:active {
	transform: scale(.97);
}

.cj-nav-btn__icon {
	display: flex;
	align-items: center;
	justify-content: center;
}

.cj-nav-btn__label {
	font-size: .78rem;
}

.cj-nav-buttons__winter-note {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin-top: 14px;
	font-size: .82rem;
	color: #1565c0;
	background: #e8edf7;
	padding: 10px 12px;
	border-radius: 8px;
	line-height: 1.45;
}

.cj-nav-buttons__winter-note svg {
	flex-shrink: 0;
	margin-top: 1px;
}

/* Sezónní badge */
.cj-nav-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	flex-shrink: 0;
}

.cj-nav-badge--winter {
	background: #dce8f8;
	color: #1565c0;
}

.cj-nav-badge--summer {
	background: #fff6d0;
	color: #b45309;
}

/* =============================================================================
   Parkování
   ============================================================================= */

.cj-parking__alert {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 10px 14px;
	border-radius: 8px;
	margin-bottom: 12px;
	font-size: .875rem;
}

.cj-parking__alert--winter {
	background: #dce8f8;
	color: #1565c0;
	border: 1px solid #b0c9ef;
}

.cj-parking__gps {
	font-size: .82rem;
	color: #6b7280;
	margin: 12px 0 0;
}

.cj-badge {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 20px;
	font-size: .78rem;
	font-weight: 600;
	margin-top: 8px;
}

.cj-badge--green {
	background: #e9f5ef;
	color: #2d6a4f;
}

/* =============================================================================
   Chybový stav
   ============================================================================= */

.cj-dashboard__error {
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 32px 20px;
}

.cj-dashboard__error-inner {
	text-align: center;
	max-width: 360px;
}

.cj-dashboard__error-icon {
	color: #c62828;
	margin-bottom: 20px;
}

.cj-dashboard__error-title {
	font-size: 1.3rem;
	font-weight: 800;
	color: #1a1a2e;
	margin: 0 0 12px;
}

.cj-dashboard__error-desc {
	font-size: .9rem;
	color: #6b7280;
	line-height: 1.55;
	margin: 0 0 24px;
}

.cj-dashboard__error-btn {
	display: inline-flex;
	align-items: center;
	padding: 14px 24px;
	background: #2d6a4f;
	color: #fff;
	border-radius: 10px;
	text-decoration: none;
	font-weight: 600;
	font-size: .9rem;
}

/* =============================================================================
   RESPONZIVNÍ LAYOUT
   ============================================================================= */

/* ── Tablet: ≥ 640px — 2 sloupce ───────────────────────────────── */
@media (min-width: 640px) {
	.cj-dashboard {
		padding: 0 0 48px;
	}

	.cj-dashboard__content {
		grid-template-columns: 1fr 1fr;
		gap: 20px;
		padding: 20px;
	}

	/* Stay banner přes celou šířku */
	.cj-stay-banner {
		grid-column: 1 / -1;
	}

	/* PIN přes celou šířku */
	.cj-card--pin {
		grid-column: 1 / -1;
	}

	/* Navigace přes celou šířku */
	.cj-card--nav {
		grid-column: 1 / -1;
	}

	.cj-nav-buttons__grid {
		grid-template-columns: repeat(4, 1fr);
	}

	/* Kontaktní tlačítka vedle sebe */
	.cj-contact-buttons {
		flex-direction: row;
	}

	.cj-contact-btn {
		flex: 1;
	}

	/* Tlačítka ne přes celou šířku */
	.cj-btn {
		width: auto;
	}

	.cj-btn--wifi-connect {
		width: 100%;
	}

	.cj-pin-display__group {
		font-size: 3.2rem;
	}

	.cj-dashboard__header {
		position: sticky;
		padding: 22px 24px;
	}
}

/* ── Desktop: ≥ 960px — 3 sloupce ──────────────────────────────── */
@media (min-width: 960px) {
	.cj-dashboard {
		margin: 32px auto;
		border-radius: 20px;
		box-shadow: 0 8px 40px rgba(0,0,0,.12);
		overflow: hidden;
	}

	.cj-dashboard__header {
		position: static;
		border-radius: 20px 20px 0 0;
		padding: 26px 32px;
	}

	.cj-dashboard__header-inner {
		max-width: none;
	}

	.cj-dashboard__logo-text {
		font-size: 1.15rem;
	}

	.cj-dashboard__content {
		grid-template-columns: 1fr 1fr 1fr;
		gap: 24px;
		padding: 28px 32px;
	}

	/* Větší karty */
	.cj-card {
		padding: 28px 24px;
		border-radius: 18px;
	}

	/* ── Řádek 0: Banner ────────────────────────────────────────── */
	.cj-stay-banner {
		grid-column: 1 / -1;
		padding: 28px 32px;
	}

	.cj-stay-banner__greeting {
		font-size: 1.6rem;
	}

	/* ── Řádek 1: PIN (vlevo, 1 sloupec) + Wi-Fi (vpravo, 2 sloupce) ── */
	/* PIN je nejdůležitější — dostane prominentní levou pozici,
	   Wi-Fi s QR kódem má dost prostoru vpravo pro horizontální layout. */
	.cj-card--pin {
		grid-column: 1 / 2;
		text-align: center;
	}

	.cj-pin-display__group {
		font-size: 3.6rem;
	}

	.cj-card--wifi {
		grid-column: 2 / 4;
		display: grid;
		grid-template-columns: 1fr auto;
		grid-template-rows: auto;
		column-gap: 24px;
		align-items: start;
	}

	/* Wi-Fi: nadpis a ikona přes celou šířku */
	.cj-card--wifi .cj-card__icon,
	.cj-card--wifi .cj-card__title {
		grid-column: 1 / -1;
	}

	/* Wi-Fi: detaily vlevo, QR vpravo */
	.cj-card--wifi .cj-wifi-details,
	.cj-card--wifi .cj-wifi-actions,
	.cj-card--wifi .cj-wifi-howto {
		grid-column: 1 / 2;
	}

	.cj-card--wifi .cj-wifi-qr {
		grid-column: 2 / 3;
		grid-row: 2 / 6;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: flex-start;
		margin: 0;
	}

	/* ── Řádek 2: ICS (1 sloupec) + Navigace (2 sloupce) ─────────── */
	/* Navigace potřebuje prostor pro 4 tlačítka v řádku. */
	.cj-card--ics {
		grid-column: 1 / 2;
		display: flex;
		flex-direction: column;
		justify-content: center;
	}

	.cj-card--nav {
		grid-column: 2 / 4;
	}

	.cj-nav-buttons__grid {
		grid-template-columns: repeat(4, 1fr);
		gap: 14px;
	}

	.cj-nav-btn {
		padding: 18px 12px;
		font-size: .85rem;
	}

	/* ── Řádek 3: Platba (celá šířka) ────────────────────────────── */
	/* Platba je obsahově nejbohatší karta (souhrn, IBAN, QR kód)
	   → full width pro maximální přehlednost. */
	.cj-card--payment {
		grid-column: 1 / -1;
	}

	/* Platba — QR a bankovní údaje vedle sebe */
	.cj-payment-qr-and-bank {
		display: grid;
		grid-template-columns: auto 1fr;
		gap: 20px;
		align-items: start;
	}

	.cj-payment-qr {
		margin-bottom: 0;
		text-align: left;
	}

	/* ── Řádek 4: Parkování (1 sloupec) + Počasí (2 sloupce) ─────── */
	/* Počasí se zobrazí jen ≤3 dny před příjezdem — pokud není,
	   parkování zabere celou šířku (grid auto-fill). */
	.cj-card--parking {
		grid-column: 1 / 2;
	}

	.cj-card--weather {
		grid-column: 2 / 4;
	}

	/* ── Řádek 5: Kontakt (celá šířka) ───────────────────────────── */
	.cj-card--contact {
		grid-column: 1 / -1;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
	}

	.cj-card--contact .cj-contact-buttons {
		flex-direction: row;
		justify-content: center;
		gap: 16px;
		margin-top: 12px;
	}

	.cj-card--contact .cj-contact-btn {
		flex: 0 0 auto;
		width: auto;
		min-width: 220px;
		max-width: 320px;
		justify-content: center;
	}
}


/* ── Wide desktop: ≥ 1200px ─────────────────────────────────────── */
@media (min-width: 1200px) {
	.cj-dashboard {
		max-width: 1160px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.cj-btn,
	.cj-nav-btn {
		transition: none;
	}
}

/* ==========================================================================
   Stay Banner — jméno hosta, apartmán, datumy
   ========================================================================== */

.cj-stay-banner {
	background: linear-gradient(135deg, #2d6a4f 0%, #1b4332 100%);
	border-radius: 16px;
	padding: 20px 20px 18px;
	margin-bottom: 16px;
	color: #ffffff;
}

.cj-stay-banner__greeting {
	font-size: 1.35rem;
	font-weight: 700;
	margin: 0 0 6px;
	letter-spacing: -0.01em;
}

.cj-stay-banner__apt {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 0.95rem;
	font-weight: 600;
	margin: 0 0 5px;
	opacity: 0.92;
}

.cj-stay-banner__apt svg {
	flex-shrink: 0;
	opacity: 0.8;
}

.cj-stay-banner__dates {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 0.85rem;
	margin: 0;
	opacity: 0.78;
}

.cj-stay-banner__dates svg {
	flex-shrink: 0;
}

/* ==========================================================================
   Wi-Fi — SSID inline copy, actions row, auto-connect, howto
   ========================================================================== */

.cj-wifi-row {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 10px 0;
	border-bottom: 1px solid #f0f4f1;
}

.cj-wifi-row:last-child {
	border-bottom: none;
}

.cj-btn--copy-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 28px;
	height: 28px;
	border: 1px solid #d1d5db;
	border-radius: 6px;
	background: #f9fafb;
	color: #6b7280;
	cursor: pointer;
	transition: background 0.15s, color 0.15s, border-color 0.15s;
	margin-left: auto;
	padding: 0;
}

.cj-btn--copy-icon:hover,
.cj-btn--copy-icon:focus-visible {
	background: #2d6a4f;
	color: #ffffff;
	border-color: #2d6a4f;
	outline: none;
}

.cj-wifi-actions {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-top: 14px;
}

.cj-btn--wifi-connect {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	padding: 13px 18px;
	background: #1a56db;
	color: #ffffff;
	border: none;
	border-radius: 10px;
	font-size: 0.95rem;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.2s, transform 0.1s;
}

.cj-btn--wifi-connect:hover,
.cj-btn--wifi-connect:focus-visible {
	background: #1649c3;
	text-decoration: none;
	color: #ffffff;
}

.cj-btn--wifi-connect:active {
	transform: scale(0.98);
}

/* Wi-Fi howto accordion */
.cj-wifi-howto {
	margin-top: 16px;
	border-top: 1px solid #f0f4f1;
	padding-top: 12px;
}

.cj-wifi-howto__trigger {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 0.85rem;
	color: #4b7a63;
	cursor: pointer;
	list-style: none;
	user-select: none;
	font-weight: 600;
}

.cj-wifi-howto__trigger::-webkit-details-marker { display: none; }

.cj-wifi-howto__body {
	margin-top: 12px;
}

.cj-wifi-howto__tabs {
	display: flex;
	gap: 6px;
	margin-bottom: 12px;
}

.cj-wifi-howto__tab {
	flex: 1;
	padding: 7px 12px;
	border: 1.5px solid #d1d5db;
	border-radius: 8px;
	background: #f9fafb;
	color: #374151;
	font-size: 0.85rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.cj-wifi-howto__tab--active {
	background: #2d6a4f;
	border-color: #2d6a4f;
	color: #ffffff;
}

.cj-wifi-howto__steps {
	margin: 0;
	padding-left: 20px;
	font-size: 0.88rem;
	color: #374151;
	line-height: 1.6;
}

.cj-wifi-howto__steps li {
	margin-bottom: 4px;
}

/* ==========================================================================
   Platba — payment card
   ========================================================================== */

.cj-card--payment-paid .cj-card__icon {
	background: #e9f5ef;
	color: #2d6a4f;
}

.cj-card--payment-due .cj-card__icon {
	background: #fff7ed;
	color: #c2410c;
}

.cj-payment-badge-paid {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #e9f5ef;
	color: #166534;
	border: 1.5px solid #bbf7d0;
	border-radius: 10px;
	padding: 12px 18px;
	font-size: 1.05rem;
	font-weight: 700;
	margin-bottom: 10px;
}

.cj-payment-total-note {
	font-size: 0.88rem;
	color: #6b7280;
	margin: 0;
}

.cj-payment-summary {
	background: #f8fafc;
	border: 1px solid var(--cj-border-alt, #e5e7eb);
	border-radius: 10px;
	padding: 14px 16px;
	margin-bottom: 16px;
}

.cj-payment-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 7px 0;
	font-size: 0.93rem;
	border-bottom: 1px solid #f0f4f1;
	color: #374151;
}

.cj-payment-row:last-child {
	border-bottom: none;
}

.cj-payment-row--paid strong {
	color: #16a34a;
}

.cj-payment-row--balance {
	padding-top: 10px;
	margin-top: 4px;
	font-weight: 700;
}

.cj-payment-balance-amount {
	color: #dc2626;
	font-size: 1.05rem;
}

.cj-payment-qr {
	text-align: center;
	margin-bottom: 16px;
}

.cj-payment-qr__label {
	font-size: 0.82rem;
	color: #6b7280;
	margin: 0 0 8px;
}

.cj-payment-qr__image {
	display: inline-block;
	background: var(--cj-surface, #ffffff);
	border: 1px solid var(--cj-border-alt, #e5e7eb);
	border-radius: 10px;
	padding: 10px;
}

.cj-payment-qr__image svg {
	display: block;
	max-width: 180px;
	height: auto;
}

.cj-btn--payment {
	width: 100%;
	justify-content: center;
}

/* ==========================================================================
   Kontakty — contact card
   ========================================================================== */

.cj-card--contact .cj-card__icon {
	background: #eff6ff;
	color: #1d4ed8;
}

.cj-card--contact {
	text-align: center;
}

.cj-card--contact .cj-card__icon {
	margin-left: auto;
	margin-right: auto;
}

.cj-contact-buttons {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	margin-top: 4px;
}

.cj-contact-btn {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	padding: 14px 18px;
	border-radius: 12px;
	font-size: 1rem;
	font-weight: 600;
	text-decoration: none;
	transition: background 0.2s, transform 0.1s;
}

.cj-contact-btn--phone {
	background: #2d6a4f;
	color: #ffffff;
}

.cj-contact-btn--phone:hover,
.cj-contact-btn--phone:focus-visible {
	background: #245a41;
	color: #ffffff;
	text-decoration: none;
}

.cj-contact-btn--email {
	background: #f3f4f6;
	color: #111827;
	border: 1.5px solid var(--cj-border-alt, #e5e7eb);
}

.cj-contact-btn--email:hover,
.cj-contact-btn--email:focus-visible {
	background: var(--cj-border-alt, #e5e7eb);
	color: #111827;
	text-decoration: none;
}

.cj-contact-btn:active {
	transform: scale(0.98);
}


/* ── Platební sekce – bankovní převod ────────────────────────────── */
.cj-payment-bank {
	margin-top: 16px;
	padding: 14px 16px;
	background: #f8fafc;
	border: 1.5px solid var(--cj-border-alt, #e5e7eb);
	border-radius: 10px;
}
.cj-payment-bank__label {
	font-size: 0.78rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: #6b7280;
	margin: 0 0 10px;
}
.cj-payment-bank__row {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 6px 0;
	border-bottom: 1px solid #f1f5f9;
}
.cj-payment-bank__row:last-child { border-bottom: none; }
.cj-payment-bank__key {
	font-size: 0.82rem;
	color: #6b7280;
	min-width: 110px;
	flex-shrink: 0;
}
.cj-payment-bank__val {
	font-size: 0.88rem;
	font-weight: 600;
	color: #111827;
	font-family: 'SFMono-Regular', Consolas, monospace;
	flex: 1;
	word-break: break-all;
}

/* ── Payme — mobilní platební deep link ─────────────────────────── */
.cj-btn--payme {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	margin-top: 14px;
	padding: 13px 20px;
	background: #1a56db;
	color: #ffffff;
	border: none;
	border-radius: 10px;
	font-size: 0.95rem;
	font-weight: 600;
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.2s, transform 0.1s;
	min-height: 48px;
	-webkit-tap-highlight-color: transparent;
}

.cj-btn--payme:hover,
.cj-btn--payme:focus-visible {
	background: #1649c3;
	color: #ffffff;
	text-decoration: none;
}

.cj-btn--payme:active {
	transform: scale(0.98);
}

/* Na desktopu — menší, vedle ostatních infos */
@media (min-width: 640px) {
	.cj-btn--payme {
		width: auto;
	}
}

/* ── Toast notifikace ────────────────────────────────────────────── */
#cj-toast {
	position: fixed;
	bottom: 24px;
	left: 50%;
	transform: translateX(-50%) translateY(16px);
	background: #111827;
	color: #fff;
	padding: 10px 20px;
	border-radius: 24px;
	font-size: 0.88rem;
	font-weight: 500;
	white-space: nowrap;
	z-index: 9999;
	opacity: 0;
	transition: opacity 0.2s ease, transform 0.2s ease;
	pointer-events: none;
	box-shadow: 0 4px 16px rgba(0,0,0,.25);
}
#cj-toast.cj-toast--visible {
	opacity: 1;
	transform: translateX(-50%) translateY(0);
}

/* ── Payme hint text ─────────────────────────────────────────────── */
.cj-payment-payme-hint {
	font-size: 0.8rem;
	color: #6b7280;
	margin: 6px 0 16px;
	text-align: center;
}

/* ── QR download tlačítko ────────────────────────────────────────── */
.cj-btn--qr-download {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 10px;
	padding: 8px 16px;
	background: #f3f4f6;
	color: #374151;
	border: 1.5px solid var(--cj-border-alt, #e5e7eb);
	border-radius: 8px;
	font-size: 0.82rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.15s;
	width: auto;
	min-height: auto;
}
.cj-btn--qr-download:hover,
.cj-btn--qr-download:focus-visible {
	background: var(--cj-border-alt, #e5e7eb);
}

/* ── QR hint text ────────────────────────────────────────────────── */
.cj-payment-qr__hint {
	font-size: 0.77rem;
	color: #9ca3af;
	margin: 6px 0 0;
	line-height: 1.4;
}

/* ── Mapy.com — oficiální logo místo SVG ikony ──────────────────── */
/* Logo je text+ikona v jednom → skryjeme duplicitní label pod tlačítkem */
.cj-nav-btn--mapycom .cj-nav-btn__label {
	display: none;
}
.cj-nav-btn--mapycom .cj-nav-btn__icon img {
	/* Zajistí viditelnost na světlém pozadí */
	display: block;
	height: 24px;
	width: auto;
	max-width: 90px;
}

/* ── Status badge rezervace ──────────────────────────────────────── */
.cj-stay-banner__status {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 10px;
}

.cj-stay-banner__status-label {
	font-size: .8rem;
	font-weight: 600;
	color: rgba(255, 255, 255, .7);
	letter-spacing: .03em;
	text-transform: uppercase;
	white-space: nowrap;
}

.cj-status-badge {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 4px 12px;
	border-radius: 20px;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	border: 1.5px solid transparent;
}

.cj-status-badge::before {
	content: '';
	display: inline-block;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: currentColor;
	flex-shrink: 0;
}

/* Nová — čeká na potvrzení */
.cj-status-badge--new {
	background: #fefce8;
	color: #854d0e;
	border-color: #fde047;
}

/* Potvrzena */
.cj-status-badge--confirmed {
	background: #f0fdf4;
	color: #166534;
	border-color: #86efac;
}

/* Čeká na platbu */
.cj-status-badge--awaiting {
	background: #eff6ff;
	color: #1e40af;
	border-color: #93c5fd;
}

/* Čeká na schválení */
.cj-status-badge--pending {
	background: #fff7ed;
	color: #9a3412;
	border-color: #fdba74;
}

/* Zrušena */
.cj-status-badge--cancelled {
	background: #fef2f2;
	color: #991b1b;
	border-color: #fca5a5;
}

/* Ubytován */
.cj-status-badge--checked-in {
	background: #f0fdf4;
	color: #14532d;
	border-color: #4ade80;
}

/* Odjel */
.cj-status-badge--checked-out {
	background: #f8fafc;
	color: #475569;
	border-color: #cbd5e1;
}

/* Neznámý status */
.cj-status-badge--unknown {
	background: #f8fafc;
	color: var(--chata-text-muted2, #64748b);
	border-color: var(--chata-border, #e2e8f0);
}

/* ==========================================================================
   Předpověď počasí — weather card
   ========================================================================== */

.cj-card--weather .cj-card__icon {
	background: #fef9ec;
	color: #d97706;
}

.cj-weather-grid {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 60px, 1fr ) );
	gap: 8px;
	margin-bottom: 12px;
}

.cj-weather-day {
	background: #f9fafb;
	border: 1px solid #f3f4f6;
	border-radius: 10px;
	padding: 10px 4px;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
}

.cj-weather-day__name {
	font-size: 11px;
	font-weight: 700;
	color: #374151;
	text-transform: uppercase;
	letter-spacing: .04em;
}

.cj-weather-day__icon {
	font-size: 22px;
	line-height: 1.3;
}

.cj-weather-day__temp-max {
	font-size: 13px;
	font-weight: 700;
	color: #111827;
}

.cj-weather-day__temp-min {
	font-size: 11px;
	color: #6b7280;
}

.cj-weather-day__rain {
	font-size: 10px;
	color: #2563eb;
	margin-top: 1px;
}


/* Skrytí FAQ a Podmínek v případném custom WP menu pro uvolnění místa */
.main-navigation .menu-item > a[href*="#faq"],
.main-navigation .menu-item > a[href*="obchodni-podminky"],
.main-navigation .menu-item > a[href*="terms"],
.main-navigation .menu-item > a[href*="agb"] {
    display: none !important;
}

/* Skrytí starého osamoceného language switcheru z hlavičky */
.header-right .language-switcher {
    display: none !important;
}

/* Stylování nového dropdown language switcheru v menu */
.chata-lang-dropdown .sub-menu {
    min-width: 150px;
    background: var(--cj-surface, #ffffff);
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    border-radius: 8px;
    padding: 0.5rem 0;
}
.chata-lang-dropdown .sub-menu a {
    color: var(--chata-text-muted, #4a5568) !important;
    padding: 0.5rem 1rem !important;
    text-shadow: none !important;
}
.chata-lang-dropdown .sub-menu a:hover {
    background: #f7fafc !important;
    color: var(--chata-text-dark, #1a2421) !important;
}

/* Dropdown chování */
.chata-lang-dropdown {
    position: relative;
}
.chata-lang-dropdown .sub-menu {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
    margin: 0;
    list-style: none;
}
.chata-lang-dropdown:hover .sub-menu {
    display: block;
}

@media (max-width: 1024px) {
    .chata-lang-dropdown .sub-menu {
        position: relative;
        box-shadow: none;
        padding-left: 1rem;
        display: block; /* Na mobilu raději rovnou zobrazené, nebo přes CSS toggle */
    }
}

/* ── Sociální sítě (Header) ─────────────────────────────────────────── */
.cj-ext-links {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-right: 0.5rem;
}

.cj-ext-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: rgba(34, 34, 34, 0.65) !important;
    transition: color 0.2s ease, transform 0.2s ease;
}

.cj-ext-link:hover {
    color: var(--chata-text-dark, #1a2421) !important;
    transform: translateY(-1px);
}

body:not(.home) .cj-ext-link,
.site-header.cj-scrolled .cj-ext-link {
    color: rgba(34, 34, 34, 0.65) !important;
}

body:not(.home) .cj-ext-link:hover,
.site-header.cj-scrolled .cj-ext-link:hover {
    color: var(--chata-text-dark, #1a2421) !important;
}

@media (max-width: 1024px) {
    /* Skryj ikonky na mobilu nahoře (nevejdou se vedle telefonu) */
    .header-right .cj-ext-links {
        display: none;
    }
}

/* Skrytí staré GeneratePress patičky */
.site-footer {
    display: none !important;
}

/* Zamezení smrsknutí (zmizení) SVG ikon v hlavičce kvůli nedostatku místa */
.cj-ext-links, .cj-ext-link, .cj-ext-link svg {
    flex-shrink: 0 !important;
    min-width: 18px;
}
