/**
 * Mitrovsky Angus — child theme styles
 * Vlastní styly pro celou frontendovou prezentaci.
 */

:root {
	--color-cream: #f5f0e8;
	--color-cream-dark: #e8dfd1;
	--color-charcoal: #2a2520;
	--color-charcoal-soft: #4a4239;
	--color-moss: #4a5d3a;
	--color-moss-dark: #2f3d24;
	--color-terracotta: #b85c3c;
	--color-rust: #8a4530;
	--color-stone: #8b8378;
	--color-line: #d4c8b5;

	--font-serif: 'EB Garamond', Georgia, serif;
	--font-sans: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;

	--max-width: 1280px;
	--padding-x: clamp(1.25rem, 4vw, 3rem);
	--section-padding: clamp(4rem, 10vw, 8rem);

	--shadow-soft: 0 2px 20px rgba(42, 37, 32, 0.06);
	--shadow-medium: 0 8px 40px rgba(42, 37, 32, 0.12);
}

/* ====== RESET & BASE (jen v rámci našich komponent, neovlivní WP UI) ====== */
body {
	font-family: var(--font-sans);
	font-weight: 300;
	font-size: 17px;
	line-height: 1.65;
	color: var(--color-charcoal);
	background: var(--color-cream);
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
	margin: 0;
}

/* WP wraps content in main; remove default padding */
body > main.wp-block-group,
.wp-site-blocks > main {
	padding: 0;
	margin: 0;
}

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

a { transition: color 0.3s ease; }

/* Typography overrides for our sections */
.hero h1, .hero h2, .hero h3,
.section h1, .section h2, .section h3, .section h4,
.story h2, .story h3,
.bistro h2, .bistro h3, .bistro h4,
.shop h2, .shop h3, .shop h4,
.stay h2, .stay h3, .stay h4,
.experiences h2, .experiences h3, .experiences h4,
.testimonial h2, .testimonial h3,
.footer h3, .footer h4,
.intro-strip h2, .intro-strip h3,
.menu-preview h4,
.product-name,
.menu-item-name,
.stat-number,
.testimonial-quote {
	font-family: var(--font-serif);
	font-weight: 400;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--color-charcoal);
	margin: 0;
}

.eyebrow {
	font-family: var(--font-sans);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--color-stone);
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
}

.eyebrow::before {
	content: '';
	width: 32px;
	height: 1px;
	background: var(--color-stone);
}

/* ====== NAVIGATION ====== */
.nav {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	padding: 1.25rem var(--padding-x);
	background: rgba(245, 240, 232, 0.92);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border-bottom: 1px solid transparent;
	transition: all 0.3s ease;
}

/* Hide WP admin bar on this theme so nav stays at top */
.admin-bar .nav { top: 32px; }
@media (max-width: 782px) {
	.admin-bar .nav { top: 46px; }
}

.nav.scrolled {
	padding: 0.85rem var(--padding-x);
	border-bottom-color: var(--color-line);
}

.nav-inner {
	max-width: var(--max-width);
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
}

.nav-logo {
	display: flex;
	align-items: center;
	height: 56px;
	transition: transform 0.3s ease;
	text-decoration: none;
}

.nav-logo img {
	height: 100%;
	width: auto;
	display: block;
}

.nav.scrolled .nav-logo { height: 44px; }
.nav-logo:hover { transform: scale(1.03); }

.nav-menu {
	display: flex;
	gap: 2.5rem;
	list-style: none;
	font-size: 0.9rem;
	font-weight: 400;
	letter-spacing: 0.04em;
	margin: 0;
	padding: 0;
}

.nav-menu a {
	color: var(--color-charcoal);
	text-decoration: none;
	position: relative;
	padding: 0.25rem 0;
}

.nav-menu a::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 0;
	height: 1px;
	background: var(--color-terracotta);
	transition: width 0.3s ease;
}

.nav-menu a:hover::after { width: 100%; }

.nav-cta-group {
	display: flex;
	gap: 0.6rem;
	align-items: center;
}

.nav-cta {
	background: var(--color-charcoal);
	color: var(--color-cream);
	padding: 0.7rem 1.4rem;
	border-radius: 100px;
	font-size: 0.85rem;
	letter-spacing: 0.05em;
	transition: all 0.3s ease;
	white-space: nowrap;
	text-decoration: none;
}

.nav-cta:hover {
	background: var(--color-terracotta);
	color: var(--color-cream);
}

.nav-cta-secondary {
	background: transparent;
	color: var(--color-charcoal);
	border: 1px solid var(--color-charcoal);
	padding: calc(0.7rem - 1px) calc(1.4rem - 1px);
}

.nav-cta-secondary:hover {
	background: var(--color-charcoal);
	color: var(--color-cream);
	border-color: var(--color-charcoal);
}

.nav-burger {
	display: none;
	background: none;
	border: none;
	cursor: pointer;
	padding: 0.5rem;
	width: 40px;
	height: 40px;
}

.nav-burger span {
	display: block;
	width: 22px;
	height: 1.5px;
	background: var(--color-charcoal);
	margin: 5px 0;
	transition: all 0.3s ease;
}

.nav-burger.open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.nav-burger.open span:nth-child(2) { opacity: 0; }
.nav-burger.open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

/* .nav-mobile default styled inside @media */

@media (max-width: 1100px) {
	.nav-cta-group { gap: 0.4rem; }
	.nav-cta { padding: 0.6rem 1.1rem; font-size: 0.78rem; }
	.nav-cta-secondary { padding: calc(0.6rem - 1px) calc(1.1rem - 1px); }
	.nav-menu { gap: 1.5rem; }
}

@media (max-width: 900px) {
	.nav-menu, .nav-cta-group { display: none; }
	.nav-burger { display: block; }

	.nav-mobile {
		position: fixed;
		inset: 0;
		background: var(--color-cream);
		z-index: 110;
		padding: 6rem var(--padding-x) 3rem;
		flex-direction: column;
		gap: 1.5rem;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		/* Zavřené menu = display: none. Open = display: flex (níže).
		   Bez transition — Chrome má cascade bug s opacity/transform/left. */
		display: none;
	}

	/* Když je menu otevřené, vyzvedneme nav nad menu — burger pak zůstává
	   klikatelný a viditelný (slouží i pro zavření). */
	/* body.menu-open override moved mimo @media — viz konec souboru */

	.nav-mobile.open { display: flex !important; }

	.nav-mobile a {
		font-family: var(--font-serif);
		font-size: 2rem;
		color: var(--color-charcoal);
		border-bottom: 1px solid var(--color-line);
		padding-bottom: 1rem;
		text-decoration: none;
	}

	.nav-mobile-ctas {
		display: flex;
		flex-direction: column;
		gap: 0.75rem;
		margin-top: 1.5rem;
		align-items: flex-start;
	}

	.nav-mobile-ctas .nav-cta {
		font-family: var(--font-sans);
		font-size: 0.85rem;
		padding: 0.9rem 2rem;
	}

	.nav-mobile-ctas .nav-cta-secondary {
		padding: calc(0.9rem - 1px) calc(2rem - 1px);
	}
}

/* ====== HERO ====== */
.hero {
	position: relative;
	min-height: 100vh;
	display: flex;
	align-items: flex-end;
	padding: 6rem var(--padding-x) var(--padding-x);
	background: #2a2520;
	color: var(--color-cream);
	overflow: hidden;
}

.hero-bg {
	position: absolute;
	top: 0; left: 0; right: 0; bottom: 0;
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
	z-index: 0;
}

.hero::before {
	content: '';
	position: absolute;
	top: 0; left: 0; right: 0; bottom: 0;
	background: radial-gradient(ellipse at center, transparent 0%, rgba(42, 37, 32, 0.3) 100%);
	z-index: 1;
}

.hero-inner {
	position: relative;
	z-index: 2;
	max-width: var(--max-width);
	margin: 0 auto;
	width: 100%;
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 3rem;
	align-items: end;
}

.hero-content { max-width: 720px; }

.hero h1 {
	font-size: clamp(2.5rem, 7vw, 5.5rem);
	font-weight: 400;
	color: var(--color-cream);
	margin: 1.5rem 0 1.5rem;
	letter-spacing: -0.02em;
}

.hero h1 em {
	font-style: italic;
	color: #e8dfd1;
}

.hero-tagline {
	font-size: clamp(1rem, 1.5vw, 1.15rem);
	max-width: 540px;
	opacity: 0.92;
	font-weight: 300;
}

.hero .eyebrow {
	color: rgba(245, 240, 232, 0.75);
}

.hero .eyebrow::before {
	background: rgba(245, 240, 232, 0.5);
}

.hero-meta {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	align-items: flex-end;
	font-size: 0.8rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	opacity: 0.85;
}

.hero-meta-row {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.hero-meta-row::before {
	content: '';
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--color-cream);
}

.hero-scroll {
	position: absolute;
	z-index: 2;
	bottom: 2rem;
	left: 50%;
	transform: translateX(-50%);
	font-size: 0.7rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	opacity: 0.7;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
}

.hero-scroll::after {
	content: '';
	width: 1px;
	height: 40px;
	background: var(--color-cream);
	animation: scrollLine 2s ease-in-out infinite;
}

@keyframes scrollLine {
	0%, 100% { transform: scaleY(0.3); transform-origin: top; opacity: 0.3; }
	50% { transform: scaleY(1); opacity: 1; }
}

@media (max-width: 700px) {
	.hero-inner { grid-template-columns: 1fr; }
	.hero-meta { display: none; }
	.hero-scroll { display: none; }
}

/* ====== INTRO STRIP ====== */
.intro-strip {
	background: var(--color-cream-dark);
	padding: 2rem var(--padding-x);
	text-align: center;
	border-bottom: 1px solid var(--color-line);
}

.intro-strip-inner {
	max-width: 800px;
	margin: 0 auto;
	font-family: var(--font-serif);
	font-style: italic;
	font-size: clamp(1.1rem, 2vw, 1.4rem);
	color: var(--color-charcoal-soft);
	line-height: 1.4;
}

/* ====== SECTION ====== */
.section {
	padding: var(--section-padding) var(--padding-x);
}

.section-inner {
	max-width: var(--max-width);
	margin: 0 auto;
}

.section-header {
	text-align: center;
	margin-bottom: 4rem;
}

.section-header h2 {
	font-size: clamp(2rem, 4.5vw, 3.25rem);
	margin: 1rem 0;
}

.section-header p {
	max-width: 600px;
	margin: 0 auto;
	color: var(--color-charcoal-soft);
	font-size: 1.05rem;
}

/* ====== THREE PILLARS ====== */
.pillars {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	margin-top: 2rem;
}

.pillar {
	position: relative;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	cursor: pointer;
	background: var(--color-charcoal);
	text-decoration: none;
	color: inherit;
}

.pillar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
	filter: brightness(0.85);
}

.pillar:hover img {
	transform: scale(1.05);
	filter: brightness(0.95);
}

.pillar-content {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: 2rem;
	color: var(--color-cream);
	background: linear-gradient(180deg, transparent 0%, rgba(42, 37, 32, 0.85) 100%);
}

.pillar-number {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 0.9rem;
	opacity: 0.7;
	margin-bottom: 0.5rem;
}

.pillar h3 {
	color: var(--color-cream);
	font-size: clamp(1.5rem, 2.5vw, 2.2rem);
	margin-bottom: 0.5rem;
}

.pillar-link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: 1rem;
	font-size: 0.85rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	border-bottom: 1px solid rgba(245, 240, 232, 0.5);
	padding-bottom: 0.25rem;
	transition: all 0.3s ease;
}

.pillar:hover .pillar-link {
	border-bottom-color: var(--color-cream);
	gap: 0.85rem;
}

@media (max-width: 900px) {
	.pillars { grid-template-columns: 1fr; }
	.pillar { aspect-ratio: 16 / 11; }
}

/* ====== STORY (FARMA) ====== */
.story {
	background: var(--color-moss-dark);
	color: var(--color-cream);
	padding: var(--section-padding) var(--padding-x);
}

.story h2, .story h3 { color: var(--color-cream); }

.story-grid {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: 5rem;
	align-items: center;
	max-width: var(--max-width);
	margin: 0 auto;
}

.story-image {
	aspect-ratio: 4 / 5;
	overflow: hidden;
	position: relative;
}

.story-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.story-image-overlay {
	position: absolute;
	bottom: 1.5rem;
	left: 1.5rem;
	right: 1.5rem;
	padding: 1.25rem 1.5rem;
	background: rgba(42, 37, 32, 0.85);
	backdrop-filter: blur(8px);
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 0.95rem;
	border-left: 3px solid var(--color-terracotta);
	color: var(--color-cream);
}

.story-content .eyebrow { color: rgba(245, 240, 232, 0.7); }
.story-content .eyebrow::before { background: rgba(245, 240, 232, 0.4); }

.story-content h2 {
	font-size: clamp(2rem, 4vw, 3rem);
	margin: 1rem 0 2rem;
}

.story-content p {
	color: rgba(245, 240, 232, 0.85);
	margin-bottom: 1.25rem;
	line-height: 1.75;
}

.story-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
	margin-top: 3rem;
	padding-top: 3rem;
	border-top: 1px solid rgba(245, 240, 232, 0.2);
}

.stat-number {
	font-family: var(--font-serif);
	font-size: clamp(2.5rem, 4vw, 3.5rem);
	color: var(--color-cream);
	line-height: 1;
	margin-bottom: 0.5rem;
}

.stat-label {
	font-size: 0.78rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(245, 240, 232, 0.7);
}

@media (max-width: 900px) {
	.story-grid { grid-template-columns: 1fr; gap: 3rem; }
	.story-stats { grid-template-columns: 1fr; gap: 1.5rem; }
}

/* ====== INSTAGRAM FEED ====== */
.instagram-section {
	background: var(--color-moss-dark);
	padding: 0 var(--padding-x) var(--section-padding);
}

.instagram-header {
	max-width: var(--max-width);
	margin: 0 auto 2.5rem;
	display: flex;
	justify-content: space-between;
	align-items: end;
	gap: 2rem;
	flex-wrap: wrap;
}

.instagram-header h3 {
	color: var(--color-cream);
	font-size: clamp(1.5rem, 2.5vw, 2rem);
}

.instagram-handle {
	color: rgba(245, 240, 232, 0.75);
	font-size: 0.9rem;
	letter-spacing: 0.05em;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	text-decoration: none;
}

.instagram-handle:hover { color: var(--color-cream); }

.instagram-grid {
	max-width: var(--max-width);
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 0.75rem;
}

.ig-post {
	aspect-ratio: 1;
	overflow: hidden;
	position: relative;
	cursor: pointer;
}

.ig-post img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s ease;
}

.ig-post:hover img { transform: scale(1.08); }

.ig-post::after {
	content: '';
	position: absolute;
	top: 0; left: 0; right: 0; bottom: 0;
	background: rgba(42, 37, 32, 0);
	transition: background 0.3s ease;
}

.ig-post:hover::after { background: rgba(42, 37, 32, 0.3); }

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

/* Smash Balloon Instagram Feed — stylové overrides aby ladilo s naším designem */
.instagram-grid--live { display: block; }
.instagram-grid--live .sbi_photo_wrap,
.instagram-grid--live #sbi_images { display: grid !important; grid-template-columns: repeat(6, 1fr); gap: 0.75rem; }
.instagram-grid--live .sbi_item {
	width: 100% !important;
	aspect-ratio: 1;
	padding: 0 !important;
}
.instagram-grid--live .sbi_photo {
	height: 100% !important;
	transition: transform 0.6s ease;
}
.instagram-grid--live .sbi_item:hover .sbi_photo { transform: scale(1.08); }
.instagram-grid--live .sb_instagram_header,
.instagram-grid--live #sbi_load { display: none !important; }
@media (max-width: 900px) {
	.instagram-grid--live .sbi_photo_wrap,
	.instagram-grid--live #sbi_images { grid-template-columns: repeat(3, 1fr); }
}

/* ====== BISTRO ====== */
.bistro {
	background: var(--color-cream);
	padding: var(--section-padding) var(--padding-x);
}

.bistro-grid {
	max-width: var(--max-width);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 5rem;
	align-items: center;
}

.bistro-image {
	aspect-ratio: 5 / 6;
	overflow: hidden;
	position: relative;
}

.bistro-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.bistro-content h2 {
	font-size: clamp(2rem, 4vw, 3rem);
	margin: 1rem 0 1.5rem;
}

.bistro-content p {
	color: var(--color-charcoal-soft);
	margin-bottom: 1.5rem;
}

/* ====== MENU PREVIEW ====== */
.menu-preview {
	margin-top: 2.5rem;
	background: var(--color-cream-dark);
	padding: 2rem;
	border-radius: 2px;
	position: relative;
}

.menu-preview-header {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 1.5rem;
	padding-bottom: 1rem;
	border-bottom: 1px dashed var(--color-line);
}

.menu-preview-header h4 { font-size: 1.2rem; }

.menu-preview-header span {
	font-size: 0.75rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-stone);
}

.menu-item {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 1rem;
	gap: 1rem;
}

.menu-item-name {
	font-family: var(--font-serif);
	font-size: 1.1rem;
}

.menu-item-desc {
	font-size: 0.85rem;
	color: var(--color-charcoal-soft);
	font-style: italic;
}

.menu-item-dots {
	flex: 1;
	border-bottom: 1px dotted var(--color-line);
	margin: 0 0.5rem;
	position: relative;
	top: -4px;
}

.menu-item-price {
	font-family: var(--font-serif);
	font-size: 1.05rem;
	white-space: nowrap;
}

.menu-cta-row {
	display: flex;
	gap: 1rem;
	margin-top: 1rem;
	flex-wrap: wrap;
}

/* Odkaz na otevírací dobu nad CTA tlačítky v sekci Bistro. */
.menu-cta-hours {
	margin-top: 1.6rem;
	margin-bottom: 0;
	font-family: var(--font-body);
	font-size: 0.95rem;
}
.menu-cta-hours a {
	color: var(--color-charcoal);
	border-bottom: 1px solid currentColor;
	text-decoration: none;
	opacity: 0.78;
	transition: opacity 0.2s;
}
.menu-cta-hours a:hover { opacity: 1; }

/* ============================================================
   Standardní stránky (page.html) — padding-top kvůli fixed nav.
   Bez tohoto by titulek "lezl" pod sticky lištu menu (97px desktop / 78px mobile).
   ============================================================ */
body:not(.home):not(.page-id-7989) main.wp-block-group {
	padding-top: 7rem;
}
body:not(.home):not(.page-id-7989) main.wp-block-group > .wp-block-post-title:first-child {
	margin-top: 0;
}
@media (max-width: 900px) {
	body:not(.home):not(.page-id-7989) main.wp-block-group {
		padding-top: 5.5rem;
	}
}
/* Page jídelní lístek a print/tisk mají vlastní template, nedotýkáme se jich. */
body.page-template-page-jidelni-listek main,
body.page-id-7893 main {
	padding-top: 5rem;
}

@media (max-width: 900px) {
	.bistro-grid { grid-template-columns: 1fr; gap: 3rem; }
}

/* ====== BUTTONS ====== */
.btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.95rem 1.75rem;
	font-family: var(--font-sans);
	font-size: 0.85rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
	border: none;
	transition: all 0.3s ease;
	border-radius: 100px;
	text-decoration: none;
}

.btn-primary {
	background: var(--color-charcoal);
	color: var(--color-cream);
}

.btn-primary:hover {
	background: var(--color-terracotta);
	color: var(--color-cream);
}

.btn-outline {
	background: transparent;
	color: var(--color-charcoal);
	border: 1px solid var(--color-charcoal);
}

.btn-outline:hover {
	background: var(--color-charcoal);
	color: var(--color-cream);
}

.btn-light {
	background: var(--color-cream);
	color: var(--color-charcoal);
}

.btn-light:hover {
	background: var(--color-terracotta);
	color: var(--color-cream);
}

.btn svg { width: 14px; height: 14px; transition: transform 0.3s ease; }
.btn:hover svg { transform: translateX(3px); }

/* ====== SHOP ====== */
.shop {
	background: var(--color-cream-dark);
	padding: var(--section-padding) var(--padding-x);
}

.shop-products {
	max-width: var(--max-width);
	margin: 3rem auto 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2rem;
}

.product-card {
	background: var(--color-cream);
	padding: 1.25rem;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	cursor: pointer;
}

.product-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow-medium);
}

.product-image {
	aspect-ratio: 1;
	overflow: hidden;
	margin-bottom: 1.25rem;
	background: var(--color-cream-dark);
}

.product-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.product-tag {
	font-size: 0.7rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--color-terracotta);
	margin-bottom: 0.5rem;
}

.product-name {
	font-family: var(--font-serif);
	font-size: 1.2rem;
	margin-bottom: 0.5rem;
}

.product-meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--color-line);
}

.product-price {
	font-family: var(--font-serif);
	font-size: 1.1rem;
}

.product-add {
	background: var(--color-charcoal);
	color: var(--color-cream);
	border: none;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.3s ease;
}

.product-add:hover { background: var(--color-terracotta); }

.product-add--disabled {
	background: var(--color-line);
	cursor: not-allowed;
	opacity: 0.6;
}
.product-add--disabled:hover { background: var(--color-line); }

.shop-footer {
	text-align: center;
	margin-top: 3rem;
}

@media (max-width: 900px) {
	.shop-products { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
}

/* ====== STAY (POBYT) ====== */
.stay {
	background: var(--color-charcoal);
	color: var(--color-cream);
	padding: var(--section-padding) var(--padding-x);
}

.stay h2, .stay h3, .stay h4 { color: var(--color-cream); }

.stay-hero {
	max-width: var(--max-width);
	margin: 0 auto 4rem;
	text-align: center;
}

.stay .eyebrow { color: rgba(245, 240, 232, 0.7); }
.stay .eyebrow::before { background: rgba(245, 240, 232, 0.4); }

.stay h2 {
	font-size: clamp(2rem, 4.5vw, 3.25rem);
	margin: 1rem 0;
}

.stay-hero p {
	max-width: 620px;
	margin: 0 auto;
	color: rgba(245, 240, 232, 0.8);
}

.rooms {
	max-width: var(--max-width);
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
}

.room {
	background: var(--color-charcoal-soft);
	overflow: hidden;
	transition: transform 0.3s ease;
}

.room:hover { transform: translateY(-4px); }

.room-image {
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

.room-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s ease;
}

.room:hover .room-image img { transform: scale(1.05); }

.room-content { padding: 2rem; }

.room-content h3 {
	font-size: 1.5rem;
	margin-bottom: 0.5rem;
}

.room-meta {
	font-size: 0.78rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(245, 240, 232, 0.65);
	margin-bottom: 1rem;
}

.room-features {
	list-style: none;
	margin: 1.5rem 0;
	padding: 0;
}

.room-features li {
	padding: 0.5rem 0;
	font-size: 0.9rem;
	color: rgba(245, 240, 232, 0.8);
	border-bottom: 1px solid rgba(245, 240, 232, 0.1);
	display: flex;
	align-items: center;
	gap: 0.6rem;
}

.room-features li::before {
	content: '';
	width: 4px;
	height: 4px;
	background: var(--color-terracotta);
	border-radius: 50%;
}

.room-price-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-top: 1.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid rgba(245, 240, 232, 0.15);
}

.room-price { font-family: var(--font-serif); }

.room-price strong {
	font-size: 1.5rem;
	font-weight: 500;
}

.room-price span {
	font-size: 0.85rem;
	color: rgba(245, 240, 232, 0.6);
}

@media (max-width: 900px) {
	.rooms { grid-template-columns: 1fr; }
}

/* ====== BOOKING CTA (Booking.com + Airbnb + Phone) ====== */
.booking-cta {
	max-width: 760px;
	margin: 5rem auto 0;
	background: var(--color-cream);
	color: var(--color-charcoal);
	padding: 3rem 2.5rem;
	border-radius: 4px;
	text-align: center;
	box-shadow: var(--shadow-medium);
}

.booking-cta-title {
	font-family: var(--font-serif);
	font-size: clamp(1.5rem, 3vw, 2rem);
	color: var(--color-charcoal);
	margin: 0 0 1rem;
}

.booking-cta-sub {
	color: var(--color-charcoal-soft);
	max-width: 540px;
	margin: 0 auto 2.5rem;
	font-size: 0.98rem;
	line-height: 1.55;
}

.booking-platforms {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	max-width: 600px;
	margin: 0 auto;
}

.booking-platform {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.35rem;
	padding: 1.5rem 1.75rem;
	background: var(--color-charcoal);
	color: var(--color-cream);
	border-radius: 4px;
	text-decoration: none;
	position: relative;
	transition: all 0.3s ease;
	text-align: left;
}

.booking-platform:hover {
	background: var(--color-terracotta);
	color: var(--color-cream);
	transform: translateY(-2px);
}

.booking-platform-name {
	font-family: var(--font-serif);
	font-size: 1.3rem;
	font-weight: 500;
	line-height: 1;
}

.booking-platform-name span {
	font-family: var(--font-sans);
	font-size: 0.85rem;
	font-weight: 400;
	letter-spacing: 0.02em;
	opacity: 0.85;
}

.booking-platform-meta {
	font-size: 0.72rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	opacity: 0.7;
}

.booking-platform svg {
	position: absolute;
	right: 1.5rem;
	top: 50%;
	transform: translateY(-50%);
	width: 18px;
	height: 18px;
	transition: transform 0.3s ease;
}

.booking-platform:hover svg {
	transform: translateY(-50%) translateX(4px);
}

.booking-direct {
	margin-top: 2.5rem;
	padding-top: 2rem;
	border-top: 1px solid var(--color-line);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
}

.booking-direct-label {
	font-size: 0.78rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-stone);
}

.booking-direct-phone {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	font-family: var(--font-serif);
	font-size: 1.4rem;
	color: var(--color-charcoal);
	text-decoration: none;
	transition: color 0.3s ease;
}

.booking-direct-phone:hover { color: var(--color-terracotta); }
.booking-direct-phone svg { color: var(--color-terracotta); }

@media (max-width: 600px) {
	.booking-cta { padding: 2rem 1.5rem; }
	.booking-platforms { grid-template-columns: 1fr; }
	.booking-platform { padding: 1.25rem 1.5rem; padding-right: 3rem; }
	.booking-direct-phone { font-size: 1.2rem; }
}

/* ====== LEGACY BOOKING WIDGET (zachováno pro kompatibilitu) ====== */
.booking-widget {
	max-width: 900px;
	margin: 4rem auto 0;
	background: var(--color-cream);
	color: var(--color-charcoal);
	padding: 1.5rem;
	border-radius: 4px;
	display: grid;
	grid-template-columns: 1fr 1fr 1fr auto;
	gap: 1rem;
	align-items: end;
	box-shadow: var(--shadow-medium);
}

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

.booking-field label {
	font-size: 0.7rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-stone);
	font-weight: 500;
}

.booking-field input, .booking-field select {
	border: none;
	background: transparent;
	font-family: var(--font-serif);
	font-size: 1.05rem;
	color: var(--color-charcoal);
	padding: 0.5rem 0;
	border-bottom: 1px solid var(--color-line);
	outline: none;
	transition: border-color 0.3s ease;
}

.booking-field input:focus, .booking-field select:focus {
	border-bottom-color: var(--color-terracotta);
}

.booking-widget .btn { height: 50px; }

@media (max-width: 700px) {
	.booking-widget { grid-template-columns: 1fr 1fr; gap: 1rem; }
	.booking-widget .btn { grid-column: span 2; justify-content: center; }
}

/* ====== EXPERIENCES ====== */
.experiences {
	background: var(--color-cream);
	padding: var(--section-padding) var(--padding-x);
}

.experiences-grid {
	max-width: var(--max-width);
	margin: 3rem auto 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1px;
	background: var(--color-line);
	border: 1px solid var(--color-line);
}

.experience {
	background: var(--color-cream);
	padding: 2.5rem;
	display: flex;
	gap: 1.5rem;
	align-items: flex-start;
	transition: background 0.3s ease;
	cursor: pointer;
}

.experience:hover { background: var(--color-cream-dark); }

.experience-icon {
	flex-shrink: 0;
	width: 48px;
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--color-cream-dark);
	border-radius: 50%;
	color: var(--color-terracotta);
}

.experience-icon svg { width: 22px; height: 22px; }

.experience h4 {
	font-size: 1.2rem;
	margin-bottom: 0.5rem;
}

.experience p {
	font-size: 0.92rem;
	color: var(--color-charcoal-soft);
	line-height: 1.6;
}

@media (max-width: 700px) {
	.experiences-grid { grid-template-columns: 1fr; }
}

/* ====== TESTIMONIAL ====== */
.testimonial {
	background: var(--color-terracotta);
	color: var(--color-cream);
	padding: var(--section-padding) var(--padding-x);
	text-align: center;
}

.testimonial-inner {
	max-width: 800px;
	margin: 0 auto;
}

.testimonial-quote {
	font-family: var(--font-serif);
	font-size: clamp(1.4rem, 2.8vw, 2rem);
	font-style: italic;
	line-height: 1.4;
	margin-bottom: 2rem;
	color: var(--color-cream);
}

.testimonial-quote::before, .testimonial-quote::after {
	content: '"';
	font-size: 1.5em;
	opacity: 0.5;
}

.testimonial-author {
	font-size: 0.85rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	opacity: 0.85;
}

/* ====== FOOTER ====== */
.footer {
	background: var(--color-charcoal);
	color: var(--color-cream);
	padding: 5rem var(--padding-x) 2rem;
}

.footer-inner {
	max-width: var(--max-width);
	margin: 0 auto;
}

.footer-grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1fr;
	gap: 3rem;
	padding-bottom: 4rem;
	border-bottom: 1px solid rgba(245, 240, 232, 0.15);
}

.footer-logo {
	height: 80px;
	width: auto;
	display: block;
	margin-bottom: 1.5rem;
}

.footer-brand p {
	color: rgba(245, 240, 232, 0.7);
	margin-bottom: 1.5rem;
	max-width: 320px;
}

.footer-social {
	display: flex;
	gap: 1rem;
}

.footer-social a {
	width: 40px;
	height: 40px;
	border: 1px solid rgba(245, 240, 232, 0.3);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.3s ease;
	color: var(--color-cream);
}

.footer-social a:hover {
	background: var(--color-terracotta);
	border-color: var(--color-terracotta);
}

.footer-social svg { width: 16px; height: 16px; }

.footer-col h4 {
	color: var(--color-cream);
	font-family: var(--font-sans);
	font-size: 0.78rem;
	font-weight: 500;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	margin-bottom: 1.25rem;
	opacity: 0.8;
}

.footer-col ul {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
	margin: 0;
	padding: 0;
}

.footer-col a {
	color: rgba(245, 240, 232, 0.75);
	font-size: 0.95rem;
	text-decoration: none;
}

.footer-col a:hover { color: var(--color-cream); }

.footer-bottom {
	padding-top: 2rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: 0.8rem;
	color: rgba(245, 240, 232, 0.5);
	flex-wrap: wrap;
	gap: 1rem;
}

.footer-bottom a { color: rgba(245, 240, 232, 0.7); text-decoration: none; }
.footer-bottom a:hover { color: var(--color-cream); }

@media (max-width: 900px) {
	.footer-grid { grid-template-columns: 1fr 1fr; gap: 2.5rem; }
	.footer-brand { grid-column: span 2; }
}

@media (max-width: 600px) {
	.footer-grid { grid-template-columns: 1fr; }
	.footer-brand { grid-column: span 1; }
}

/* ====== STICKY MOBILE CTA ====== */
.mobile-cta {
	display: none;
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	background: var(--color-cream);
	padding: 0.85rem var(--padding-x);
	box-shadow: 0 -4px 20px rgba(0,0,0,0.08);
	z-index: 90;
	border-top: 1px solid var(--color-line);
}

.mobile-cta-inner {
	display: flex;
	gap: 0.75rem;
}

.mobile-cta .btn {
	flex: 1;
	justify-content: center;
	padding: 0.85rem 1rem;
	font-size: 0.78rem;
}

@media (max-width: 900px) {
	.mobile-cta { display: block; }
	.footer { padding-bottom: 6rem; }
}

/* ============================================================
 * REZERVACE STOLU — stránka + override 5 Star Restaurant Reservations
 * ============================================================ */

.reservation-hero {
	background: var(--color-cream-dark);
	padding: 7rem var(--padding-x) 4rem;
	text-align: center;
	border-bottom: 1px solid var(--color-line);
}

.reservation-hero-inner {
	max-width: 680px;
	margin: 0 auto;
}

.reservation-hero h1 {
	font-size: clamp(2rem, 4.5vw, 3.25rem);
	margin: 1rem 0 1rem;
}

.reservation-hero-sub {
	color: var(--color-charcoal-soft);
	font-size: 1.05rem;
	max-width: 540px;
	margin: 0 auto;
}

.reservation-section {
	background: var(--color-cream);
	padding: var(--section-padding) var(--padding-x);
}

.reservation-info-strip {
	background: var(--color-cream);
	padding: 3rem var(--padding-x) 1rem;
}

.reservation-form-area {
	background: var(--color-cream);
	padding: 1rem var(--padding-x) var(--section-padding);
}

.reservation-info-strip-inner {
	max-width: 1080px;
	margin: 0 auto;
	display: grid;
	/* Auto-fit: 3 sloupce na desktop, 2 na tabletu, 1 na mobilu — bez nutnosti media queries. */
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
	gap: 1.5rem;
}

.reservation-info-card {
	background: var(--color-cream-dark);
	padding: 1.75rem 2rem;
	border-left: 3px solid var(--color-terracotta);
}

.reservation-info-card h3 {
	font-family: var(--font-serif);
	font-size: 1.2rem;
	margin: 0 0 1rem;
	color: var(--color-charcoal);
}

.reservation-info-card dl {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.4rem 1.5rem;
	margin: 0;
}

.reservation-info-card dt {
	font-size: 0.8rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--color-stone);
	font-weight: 500;
}

.reservation-info-card dd {
	font-family: var(--font-serif);
	font-size: 1.05rem;
	margin: 0;
	color: var(--color-charcoal);
}

.reservation-info-card p {
	margin: 0 0 0.5rem;
	color: var(--color-charcoal-soft);
}

.reservation-phone {
	font-family: var(--font-serif);
	font-size: 1.3rem;
	color: var(--color-charcoal);
	text-decoration: none;
	transition: color 0.3s ease;
}

.reservation-phone:hover { color: var(--color-terracotta); }

.reservation-info-note {
	margin-top: 0.75rem;
	font-size: 0.85rem;
	font-style: italic;
	color: var(--color-stone);
}

.reservation-maps-link {
	display: inline-block;
	margin-top: 0.5rem;
	font-size: 0.85rem;
	letter-spacing: 0.05em;
	color: var(--color-terracotta);
	text-decoration: none;
}

.reservation-maps-link:hover { text-decoration: underline; }

@media (max-width: 600px) {
	.reservation-info-strip-inner { gap: 1rem; }
}

/* ============================================================
 * STRÁNKA UBYTOVÁNÍ (page-accommodation.html)
 * ============================================================ */

.accommodation-hero {
	background: var(--color-cream-dark);
	padding: 7rem var(--padding-x) 4rem;
	text-align: center;
	border-bottom: 1px solid var(--color-line);
}

.accommodation-hero-inner {
	max-width: 720px;
	margin: 0 auto;
}

.accommodation-hero-title {
	font-size: clamp(2rem, 5vw, 3.5rem);
	font-family: var(--font-serif);
	font-weight: 400;
	margin: 1rem 0 1rem;
	color: var(--color-charcoal);
}

.accommodation-hero-sub {
	color: var(--color-charcoal-soft);
	font-size: 1.05rem;
	max-width: 540px;
	margin: 0 auto;
}

.accommodation-content {
	background: var(--color-cream);
	padding: 4rem var(--padding-x) 4rem;
	max-width: 1080px;
	margin: 0 auto;
}

.accommodation-content .wp-block-paragraph,
.accommodation-content p {
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
	color: var(--color-charcoal-soft);
	font-size: 1.05rem;
	line-height: 1.75;
}

.accommodation-content h2 {
	font-size: clamp(1.5rem, 3vw, 2rem);
	margin: 3rem 0 1.5rem;
	text-align: center;
}

.accommodation-content h3 {
	font-size: 1.3rem;
	margin: 1.5rem 0 0.75rem;
}

.accommodation-content ul {
	max-width: 720px;
	margin: 0 auto 1.5rem;
}

.accommodation-content .wp-block-columns {
	max-width: 900px;
	margin: 2rem auto;
}

.accommodation-info-strip {
	background: var(--color-cream-dark);
	padding: 4rem var(--padding-x);
	border-top: 1px solid var(--color-line);
}

.accommodation-info-strip-inner {
	max-width: 1080px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}

@media (max-width: 900px) {
	.accommodation-info-strip-inner { grid-template-columns: 1fr; gap: 1rem; }
}

/* ============================================================
 * Beds24 embed — styling iframu + jeho wrapperu
 * ============================================================ */

/* Wrapper iframu, který Beds24 vlož í */
.accommodation-content iframe[src*="beds24"],
.accommodation-content [id*="b24"] iframe,
.accommodation-content .b24-embed iframe,
.beds24-embed-wrap iframe {
	width: 100% !important;
	min-height: 720px !important;
	border: 1px solid var(--color-line) !important;
	border-radius: 4px !important;
	background: var(--color-cream) !important;
	display: block !important;
	box-shadow: var(--shadow-soft);
	max-width: 880px;
	margin: 2rem auto !important;
}

/* Wrapper element (pokud Beds24 obalí iframe do divu) */
.accommodation-content .b24-embed,
.accommodation-content [id*="b24"],
.beds24-embed-wrap {
	max-width: 880px;
	margin: 2rem auto;
	background: var(--color-cream-dark);
	padding: 1rem;
	border-radius: 4px;
}

/* Mobile */
@media (max-width: 600px) {
	.accommodation-content iframe[src*="beds24"],
	.accommodation-content [id*="b24"] iframe,
	.beds24-embed-wrap iframe {
		min-height: 600px !important;
	}
}

/* ============================================================
 * 5 Star Restaurant Reservations plugin — GLOBÁLNÍ overrides
 * Aplikuje se VŠUDE kde plugin renderuje formulář.
 * Vysoká specificita + !important kvůli plugin defaultům.
 * ============================================================ */

/* Auto-injekce: plugin přidá form přímo do obsahu stránky.
   Wrapneme to vizuálně přes body.page selektor a obrátíme styly. */
body .rtb-booking-form,
form.rtb-booking-form,
.rtb-booking-form {
	font-family: var(--font-sans) !important;
	background: var(--color-cream-dark) !important;
	padding: 2.5rem !important;
	border-radius: 4px !important;
	max-width: 720px !important;
	margin: 2rem auto !important;
	color: var(--color-charcoal) !important;
	box-sizing: border-box;
}

/* FIELDSETY a LEGENDY */
.rtb-booking-form fieldset {
	border: none !important;
	border-top: 1px solid var(--color-line) !important;
	padding: 1.5rem 0 0 !important;
	margin: 0 0 1.5rem !important;
	background: transparent !important;
}

.rtb-booking-form fieldset:first-of-type {
	border-top: none !important;
	padding-top: 0 !important;
}

.rtb-booking-form legend {
	font-family: var(--font-serif) !important;
	font-size: 1.25rem !important;
	font-weight: 400 !important;
	color: var(--color-charcoal) !important;
	margin: 0 0 1.25rem !important;
	padding: 0 !important;
	background: transparent !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	width: auto !important;
	border: none !important;
}

/* LABELS */
.rtb-booking-form label,
.rtb-booking-form .rtb-text label,
.rtb-booking-form .rtb-select label {
	display: block !important;
	font-family: var(--font-sans) !important;
	font-size: 0.72rem !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	color: var(--color-stone) !important;
	font-weight: 500 !important;
	margin: 0 0 0.4rem !important;
}

/* INPUTS, SELECT, TEXTAREA */
.rtb-booking-form input[type="text"],
.rtb-booking-form input[type="email"],
.rtb-booking-form input[type="tel"],
.rtb-booking-form input[type="number"],
.rtb-booking-form input[type="date"],
.rtb-booking-form input[type="time"],
.rtb-booking-form select,
.rtb-booking-form textarea {
	width: 100% !important;
	max-width: 100% !important;
	background: transparent !important;
	border: none !important;
	border-bottom: 1px solid var(--color-line) !important;
	border-radius: 0 !important;
	font-family: var(--font-serif) !important;
	font-size: 1.05rem !important;
	color: var(--color-charcoal) !important;
	padding: 0.65rem 0 !important;
	box-shadow: none !important;
	outline: none !important;
	transition: border-color 0.3s ease;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;
	height: auto !important;
	min-height: 0 !important;
	line-height: 1.4 !important;
}

.rtb-booking-form input:focus,
.rtb-booking-form select:focus,
.rtb-booking-form textarea:focus {
	border-bottom-color: var(--color-terracotta) !important;
}

.rtb-booking-form textarea {
	min-height: 100px !important;
	resize: vertical !important;
}

/* SELECT — vlastní šipka */
.rtb-booking-form select {
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232a2520' stroke-width='1.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 0.25rem center !important;
	background-size: 16px !important;
	padding-right: 1.75rem !important;
}

/* Spacing mezi poli */
.rtb-booking-form > p,
.rtb-booking-form .rtb-field,
.rtb-booking-form fieldset > div {
	margin: 0 0 1.5rem !important;
}

.rtb-booking-form fieldset > div:last-child {
	margin-bottom: 0 !important;
}

/* Popisky polí */
.rtb-booking-form .description,
.rtb-booking-form .rtb-description,
.rtb-booking-form small {
	font-size: 0.82rem !important;
	font-style: italic !important;
	color: var(--color-stone) !important;
	margin-top: 0.4rem !important;
	display: block;
}

/* SUBMIT BUTTON — překreslit modrou na charcoal pill */
.rtb-booking-form input[type="submit"],
.rtb-booking-form button[type="submit"],
.rtb-booking-form .rtb-submit input,
.rtb-booking-form .rtb-submit button,
.rtb-booking-form .button {
	background: var(--color-charcoal) !important;
	background-color: var(--color-charcoal) !important;
	background-image: none !important;
	color: var(--color-cream) !important;
	border: none !important;
	padding: 0.95rem 2.2rem !important;
	font-family: var(--font-sans) !important;
	font-size: 0.85rem !important;
	font-weight: 500 !important;
	letter-spacing: 0.08em !important;
	text-transform: uppercase !important;
	border-radius: 100px !important;
	cursor: pointer !important;
	transition: all 0.3s ease !important;
	box-shadow: none !important;
	width: auto !important;
	height: auto !important;
	margin: 1rem 0 0 !important;
	text-decoration: none !important;
	display: inline-block;
}

.rtb-booking-form input[type="submit"]:hover,
.rtb-booking-form button[type="submit"]:hover,
.rtb-booking-form .rtb-submit input:hover,
.rtb-booking-form .rtb-submit button:hover,
.rtb-booking-form .button:hover {
	background: var(--color-terracotta) !important;
	background-color: var(--color-terracotta) !important;
	color: var(--color-cream) !important;
}

/* Link „Přidat zprávu" */
.rtb-booking-form a,
.rtb-booking-form .rtb-message-link {
	color: var(--color-terracotta) !important;
	text-decoration: none !important;
	border-bottom: 1px solid var(--color-terracotta) !important;
	padding-bottom: 1px !important;
}

.rtb-booking-form a:hover {
	border-bottom-color: var(--color-charcoal) !important;
	color: var(--color-charcoal) !important;
}

/* Validační zprávy */
.rtb-booking-form .rtb-message,
.rtb-booking-form .rtb-error,
.rtb-message {
	background: var(--color-cream) !important;
	border-left: 3px solid var(--color-terracotta) !important;
	padding: 1rem 1.25rem !important;
	font-size: 0.92rem !important;
	color: var(--color-charcoal) !important;
	margin: 0 0 1.5rem !important;
	border-radius: 0 !important;
}

.rtb-booking-form .rtb-message.success,
.rtb-message.success {
	border-left-color: var(--color-moss) !important;
	background: rgba(74, 93, 58, 0.08) !important;
}

/* Pickadate.js datepicker */
.picker__frame { font-family: var(--font-sans) !important; }
.picker__day--selected,
.picker__day--selected:hover,
.picker--focused .picker__day--selected {
	background: var(--color-charcoal) !important;
	color: var(--color-cream) !important;
	border-radius: 50% !important;
}
.picker__day--today { color: var(--color-terracotta) !important; }
.picker__button--today,
.picker__button--clear,
.picker__button--close {
	color: var(--color-charcoal) !important;
}

/* Mobile úpravy */
@media (max-width: 600px) {
	body .rtb-booking-form,
	form.rtb-booking-form,
	.rtb-booking-form {
		padding: 1.5rem !important;
		margin: 1rem auto !important;
	}
}

/* ====== SCROLL ANIMATIONS ====== */
.fade-in {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.8s ease, transform 0.8s ease;
}

.fade-in.visible {
	opacity: 1;
	transform: translateY(0);
}

/* ============================================================
   BLOG — archive (kategorie / tagy / hlavní výpis)
   ============================================================ */
.archive-page {
	padding: calc(var(--section-padding) * 0.75) 0 var(--section-padding);
	background: var(--color-cream);
}

/* Nech místo pro fixní nav nahoře */
body.archive .archive-page,
body.blog .archive-page,
body.search .archive-page {
	padding-top: calc(80px + var(--section-padding) * 0.5);
}

.archive-page__header {
	padding: 0 var(--padding-x);
	text-align: center;
	margin-bottom: clamp(2.5rem, 6vw, 4.5rem);
}

.archive-page__eyebrow {
	justify-content: center;
	margin-bottom: 1.25rem;
}

.archive-page__title {
	font-family: var(--font-serif);
	font-weight: 400;
	font-size: clamp(2.25rem, 5vw, 3.75rem);
	line-height: 1.05;
	letter-spacing: -0.015em;
	color: var(--color-charcoal);
	margin: 0 0 1rem;
}

.archive-page__description {
	font-family: var(--font-sans);
	font-weight: 300;
	font-size: 1.0625rem;
	line-height: 1.7;
	color: var(--color-charcoal-soft);
	max-width: 640px;
	margin: 0 auto;
}

.archive-page__description p { margin: 0 0 0.5rem; }

.archive-page__listing {
	padding: 0 var(--padding-x);
}

/* ============================================================
   BLOG — filtr kategorií (pills)
   ============================================================ */
.blog-filter {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem;
	max-width: var(--max-width);
	margin: 0 auto clamp(2.5rem, 5vw, 3.5rem);
	padding: 0 var(--padding-x);
}

.blog-filter__pill {
	display: inline-flex;
	align-items: center;
	padding: 0.5rem 1.1rem;
	border: 1px solid var(--color-line);
	border-radius: 999px;
	background: transparent;
	color: var(--color-charcoal-soft);
	font-family: var(--font-sans);
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-decoration: none;
	white-space: nowrap;
	transition: all 0.25s ease;
}

.blog-filter__pill:hover {
	border-color: var(--color-charcoal);
	color: var(--color-charcoal);
	background: rgba(42, 37, 32, 0.04);
}

.blog-filter__pill.is-active {
	background: var(--color-charcoal);
	color: var(--color-cream);
	border-color: var(--color-charcoal);
}

.blog-filter__pill.is-active:hover {
	background: var(--color-moss-dark);
	border-color: var(--color-moss-dark);
}

@media (max-width: 580px) {
	.blog-filter {
		justify-content: flex-start;
		overflow-x: auto;
		flex-wrap: nowrap;
		-webkit-overflow-scrolling: touch;
		padding: 0 var(--padding-x) 0.5rem;
		scrollbar-width: none;
	}
	.blog-filter::-webkit-scrollbar { display: none; }
}

/* ============================================================
   BLOG — grid karet
   ============================================================ */
.blog-grid {
	max-width: var(--max-width);
	margin: 0 auto;
}

.blog-grid__items {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(2rem, 4vw, 3rem) clamp(1.5rem, 3vw, 2.5rem);
	margin: 0;
	padding: 0;
	list-style: none;
}

.blog-grid__items > li {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}

.blog-grid__empty {
	font-family: var(--font-serif);
	font-style: italic;
	color: var(--color-stone);
	padding: 3rem 0;
}

@media (max-width: 900px) {
	.blog-grid__items {
		grid-template-columns: repeat(2, 1fr);
		gap: 2.25rem 1.5rem;
	}
}

@media (max-width: 580px) {
	.blog-grid__items {
		grid-template-columns: 1fr;
		gap: 2.5rem;
	}
}

/* ============================================================
   BLOG — karta
   ============================================================ */
.blog-card {
	display: flex !important;
	flex-direction: column;
	background: transparent;
	border-radius: 0;
	overflow: hidden;
	transition: transform 0.4s ease;
	margin: 0 !important;
}

.blog-card:hover {
	transform: translateY(-4px);
}

.blog-card__image {
	margin: 0 0 1.25rem !important;
	overflow: hidden;
	background: var(--color-cream-dark);
	aspect-ratio: 4 / 3;
}

.blog-card__image img,
.blog-card__image .wp-block-post-featured-image__placeholder {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.7s ease;
}

.blog-card:hover .blog-card__image img {
	transform: scale(1.04);
}

.blog-card__body {
	padding: 0;
	flex: 1;
	display: flex;
	flex-direction: column;
}

.blog-card__meta {
	font-family: var(--font-sans);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-stone);
	margin: 0 0 0.85rem !important;
	gap: 0.65rem !important;
	align-items: center;
}

.blog-card__category,
.blog-card__category a {
	color: var(--color-moss);
	text-decoration: none;
	font-weight: 600;
}

.blog-card__category a:hover {
	color: var(--color-terracotta);
}

.blog-card__date {
	color: var(--color-stone);
}

.blog-card__date::before {
	content: '·';
	display: inline-block;
	margin-right: 0.65rem;
	color: var(--color-line);
}

.blog-card__title {
	font-family: var(--font-serif);
	font-weight: 400;
	font-size: 1.5rem;
	line-height: 1.2;
	letter-spacing: -0.01em;
	color: var(--color-charcoal);
	margin: 0 0 0.85rem !important;
}

.blog-card__title a {
	color: inherit;
	text-decoration: none;
	background-image: linear-gradient(currentColor, currentColor);
	background-size: 0% 1px;
	background-position: 0 100%;
	background-repeat: no-repeat;
	transition: background-size 0.3s ease, color 0.3s ease;
}

.blog-card__title a:hover {
	color: var(--color-terracotta);
}

.blog-card__excerpt {
	font-family: var(--font-sans);
	font-weight: 300;
	font-size: 0.9375rem;
	line-height: 1.65;
	color: var(--color-charcoal-soft);
	margin: 0 !important;
}

.blog-card__excerpt p { margin: 0 0 0.85rem; }

.blog-card__excerpt a,
.wp-block-post-excerpt__more-link {
	display: inline-block;
	margin-top: 0.5rem;
	font-family: var(--font-sans);
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--color-terracotta);
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	padding-bottom: 2px;
	transition: color 0.3s ease, border-color 0.3s ease;
}

.blog-card__excerpt a:hover,
.wp-block-post-excerpt__more-link:hover {
	color: var(--color-rust);
}

/* ============================================================
   BLOG — paginace
   ============================================================ */
.blog-pagination {
	margin-top: clamp(3rem, 6vw, 4.5rem) !important;
	justify-content: center !important;
	gap: 0.5rem !important;
	font-family: var(--font-sans);
	font-size: 0.875rem;
	letter-spacing: 0.05em;
}

.blog-pagination a,
.blog-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	height: 2.5rem;
	padding: 0 0.85rem;
	color: var(--color-charcoal-soft);
	text-decoration: none;
	border: 1px solid var(--color-line);
	border-radius: 999px;
	transition: all 0.25s ease;
}

.blog-pagination a:hover {
	background: var(--color-charcoal);
	color: var(--color-cream);
	border-color: var(--color-charcoal);
}

.blog-pagination .page-numbers.current {
	background: var(--color-charcoal);
	color: var(--color-cream);
	border-color: var(--color-charcoal);
}

/* ============================================================
   SINGLE POST — detail článku (úzký sloupec)
   ============================================================ */
.single-post {
	background: var(--color-cream);
	padding-bottom: var(--section-padding);
}

.single-post__hero {
	margin: 0 !important;
	width: 100%;
	max-height: 70vh;
	overflow: hidden;
	background: var(--color-cream-dark);
}

.single-post__hero img {
	width: 100%;
	max-height: 70vh;
	object-fit: cover;
	display: block;
}

/* Když článek nemá featured image, schovej prázdný placeholder úplně */
.single-post__hero:not(:has(img)) {
	display: none;
}

/* Pokud článek nemá featured image, ponech místo pro nav */
body.single .single-post {
	padding-top: 80px;
}

body.single .single-post:has(.single-post__hero img) {
	padding-top: 0;
}

.single-post__header {
	padding: clamp(2.5rem, 6vw, 4.5rem) var(--padding-x) clamp(1.5rem, 3vw, 2rem);
	text-align: center;
}

.single-post__eyebrow {
	font-family: var(--font-sans);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--color-stone);
	gap: 0.75rem !important;
	margin: 0 0 1.5rem !important;
	align-items: center;
}

.single-post__category,
.single-post__category a {
	color: var(--color-moss);
	font-weight: 600;
	text-decoration: none;
}

.single-post__category a:hover { color: var(--color-terracotta); }

.single-post__date {
	color: var(--color-stone);
	position: relative;
	padding-left: 1rem;
}

.single-post__date::before {
	content: '·';
	position: absolute;
	left: 0;
	color: var(--color-line);
}

.single-post__title,
.single-post__header h1.wp-block-post-title {
	font-family: var(--font-serif);
	font-weight: 400;
	font-size: clamp(2rem, 5vw, 3.5rem);
	line-height: 1.1;
	letter-spacing: -0.015em;
	color: var(--color-charcoal);
	/* margin: 0 auto — horizontal centering bloku (text-align: center centruje obsah, ne sebe sama). */
	margin: 0 auto 1.5rem !important;
	text-align: center !important;
	max-width: 720px;
}

.single-post__author {
	gap: 0.5rem !important;
	margin: 1.5rem 0 0 !important;
	font-family: var(--font-sans);
	font-size: 0.875rem;
	color: var(--color-stone);
}

.single-post__author-prefix {
	margin: 0 !important;
	font-style: italic;
	color: var(--color-stone);
}

.single-post__author .wp-block-post-author-name {
	font-weight: 500;
	color: var(--color-charcoal-soft);
}

.single-post__body {
	padding: clamp(1rem, 3vw, 2rem) var(--padding-x) clamp(2rem, 5vw, 3rem);
	font-family: var(--font-serif);
	font-size: 1.1875rem;
	line-height: 1.75;
	color: var(--color-charcoal);
}

.single-post__body p {
	margin: 0 0 1.5rem;
}

.single-post__body h2 {
	font-family: var(--font-serif);
	font-weight: 500;
	font-size: clamp(1.5rem, 3vw, 2rem);
	line-height: 1.2;
	letter-spacing: -0.01em;
	margin: 2.75rem 0 1rem;
	color: var(--color-charcoal);
}

.single-post__body h3 {
	font-family: var(--font-serif);
	font-weight: 500;
	font-size: 1.375rem;
	line-height: 1.25;
	margin: 2rem 0 0.75rem;
	color: var(--color-charcoal);
}

.single-post__body a {
	color: var(--color-terracotta);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	transition: color 0.25s ease;
}

.single-post__body a:hover { color: var(--color-rust); }

.single-post__body blockquote {
	margin: 2.5rem 0;
	padding: 1.25rem 1.75rem;
	border-left: 3px solid var(--color-moss);
	background: rgba(74, 93, 58, 0.04);
	font-style: italic;
	color: var(--color-charcoal-soft);
	font-size: 1.25rem;
	line-height: 1.55;
}

.single-post__body blockquote p { margin: 0; }

.single-post__body figure,
.single-post__body img,
.single-post__body .wp-block-image {
	margin: 2.5rem auto;
}

.single-post__body figure img,
.single-post__body .wp-block-image img {
	border-radius: 2px;
	box-shadow: var(--shadow-soft);
}

.single-post__body figcaption {
	font-family: var(--font-sans);
	font-size: 0.8125rem;
	color: var(--color-stone);
	text-align: center;
	margin-top: 0.75rem;
	font-style: italic;
}

.single-post__body ul,
.single-post__body ol {
	margin: 0 0 1.5rem;
	padding-left: 1.5rem;
}

.single-post__body li { margin-bottom: 0.5rem; }

.single-post__terms {
	padding: 0 var(--padding-x);
	margin-top: 2rem;
}

.single-post__tags {
	font-family: var(--font-sans);
	font-size: 0.8125rem;
	color: var(--color-stone);
	padding-top: 2rem;
	border-top: 1px solid var(--color-line);
	letter-spacing: 0.04em;
}

.single-post__tags a {
	color: var(--color-charcoal-soft);
	text-decoration: none;
	transition: color 0.25s ease;
}

.single-post__tags a:hover { color: var(--color-terracotta); }

/* ============================================================
   RELATED POSTS — pod článkem
   ============================================================ */
.related-posts {
	margin-top: clamp(4rem, 8vw, 6rem) !important;
	padding: clamp(3rem, 6vw, 5rem) var(--padding-x);
	background: var(--color-cream-dark);
	border-top: 1px solid var(--color-line);
}

.related-posts__header {
	text-align: center;
	margin-bottom: clamp(2rem, 4vw, 3rem);
}

.related-posts__header .eyebrow {
	justify-content: center;
	margin-bottom: 0.75rem;
}

.related-posts__title {
	font-family: var(--font-serif);
	font-weight: 400;
	font-size: clamp(1.75rem, 3.5vw, 2.5rem);
	line-height: 1.1;
	letter-spacing: -0.01em;
	color: var(--color-charcoal);
	margin: 0;
}

.related-posts__grid {
	max-width: var(--max-width);
	margin: 0 auto;
}

.related-posts__items {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(1.75rem, 3.5vw, 2.5rem);
	list-style: none;
	margin: 0 !important;
	padding: 0 !important;
}

.related-posts__items > li {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}

@media (max-width: 900px) {
	.related-posts__items { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 580px) {
	.related-posts__items { grid-template-columns: 1fr; }
}

/* ============================================================
   PAGE WITH SIDEBAR — override Twenty Twenty-Four
   ============================================================ */
/* Vyšší specificita kvůli pravidlu `body > main.wp-block-group { padding: 0 }` výše */
body main.wp-block-group.page-with-sidebar,
.page-with-sidebar {
	padding: calc(80px + var(--section-padding) * 0.5) 0 var(--section-padding) !important;
	background: var(--color-cream);
}

/* admin-bar offset, ať to nepřekryje WP toolbar */
body.admin-bar main.wp-block-group.page-with-sidebar {
	padding-top: calc(80px + 32px + var(--section-padding) * 0.5) !important;
}
@media (max-width: 782px) {
	body.admin-bar main.wp-block-group.page-with-sidebar {
		padding-top: calc(80px + 46px + var(--section-padding) * 0.5) !important;
	}
}

.page-with-sidebar__inner {
	max-width: var(--max-width);
	margin: 0 auto;
	padding: 0 var(--padding-x);
}

.page-with-sidebar__cols {
	gap: clamp(2rem, 4vw, 4rem) !important;
	margin: 0 !important;
}

.page-with-sidebar__main {
	font-family: var(--font-serif);
	font-size: 1.125rem;
	line-height: 1.7;
	color: var(--color-charcoal);
}

.page-with-sidebar__main h1.wp-block-post-title {
	font-family: var(--font-serif);
	font-weight: 400;
	font-size: clamp(2rem, 4vw, 3rem);
	line-height: 1.1;
	letter-spacing: -0.015em;
	margin: 0 0 1.5rem !important;
	color: var(--color-charcoal);
}

.page-with-sidebar__main p { margin: 0 0 1.25rem; }

.page-with-sidebar__main h2,
.page-with-sidebar__main h3 {
	font-family: var(--font-serif);
	font-weight: 500;
	color: var(--color-charcoal);
	letter-spacing: -0.01em;
}

.page-with-sidebar__main h2 { font-size: 1.75rem; margin: 2rem 0 0.85rem; }
.page-with-sidebar__main h3 { font-size: 1.375rem; margin: 1.75rem 0 0.75rem; }

.page-with-sidebar__main a {
	color: var(--color-terracotta);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
}

.page-with-sidebar__main a:hover { color: var(--color-rust); }

.page-with-sidebar__aside { }

.sidebar-block {
	background: var(--color-cream-dark);
	padding: 1.5rem 1.5rem 1.75rem;
	border-radius: 4px;
	margin-bottom: 1.5rem;
}

.sidebar-block__title {
	font-family: var(--font-serif) !important;
	font-weight: 500 !important;
	font-size: 1.0625rem !important;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--color-charcoal) !important;
	margin: 0 0 1rem !important;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--color-line);
}

.sidebar-block .wp-block-search__inside-wrapper {
	border: 1px solid var(--color-line);
	border-radius: 999px;
	overflow: hidden;
	background: var(--color-cream);
	padding: 0;
}

.sidebar-block .wp-block-search__input {
	border: 0;
	background: transparent;
	padding: 0.65rem 0.85rem;
	font-family: var(--font-sans);
	font-size: 0.9375rem;
	color: var(--color-charcoal);
}

.sidebar-block .wp-block-search__input:focus { outline: none; }

.sidebar-block .wp-block-search__button {
	background: var(--color-charcoal);
	color: var(--color-cream);
	border: 0;
	padding: 0 0.85rem;
	cursor: pointer;
}

.sidebar-block .wp-block-search__button:hover { background: var(--color-moss-dark); }

.sidebar-block__posts {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}

.sidebar-block__posts li {
	padding: 0.65rem 0;
	border-bottom: 1px solid rgba(212, 200, 181, 0.5);
	list-style: none;
}

.sidebar-block__posts li:last-child { border-bottom: 0; }

.sidebar-block__posts a {
	font-family: var(--font-serif);
	font-size: 1rem;
	line-height: 1.35;
	color: var(--color-charcoal);
	text-decoration: none;
	display: block;
	margin-bottom: 0.2rem;
	transition: color 0.25s ease;
}

.sidebar-block__posts a:hover { color: var(--color-terracotta); }

.sidebar-block__posts .wp-block-latest-posts__post-date {
	font-family: var(--font-sans);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--color-stone);
}

@media (max-width: 781px) {
	.page-with-sidebar__cols {
		flex-wrap: wrap !important;
	}
	.page-with-sidebar__main,
	.page-with-sidebar__aside {
		flex-basis: 100% !important;
		width: 100% !important;
	}
	.page-with-sidebar__aside {
		margin-top: 2.5rem;
	}
}

/* =========================================================================
   JÍDELNÍ LÍSTEK (Food and Drink Menu integration)
   ========================================================================= */

.menu-page {
	background: var(--color-cream);
	padding: calc(80px + var(--section-padding) * 0.6) 0 var(--section-padding);
}

body.admin-bar .menu-page {
	padding-top: calc(80px + 32px + var(--section-padding) * 0.6);
}

@media (max-width: 782px) {
	body.admin-bar .menu-page {
		padding-top: calc(80px + 46px + var(--section-padding) * 0.6);
	}
}

.menu-page__header {
	text-align: center;
	margin: 0 auto 4rem;
	padding: 0 1.5rem;
}

.menu-page__eyebrow {
	margin: 0 0 1rem;
}

.menu-page__title {
	font-family: var(--font-display);
	font-size: clamp(2.4rem, 5vw, 3.6rem);
	line-height: 1.1;
	margin: 0 0 1.25rem;
	color: var(--color-charcoal);
}

.menu-page__intro {
	font-family: var(--font-body);
	font-size: 1.05rem;
	line-height: 1.6;
	color: var(--color-charcoal);
	opacity: 0.8;
	margin: 0;
}

/* Notice (plugin nenainstalován / žádný lístek) */
.menu-page__notice {
	margin: 0 auto;
	padding: 2rem;
	background: rgba(255, 255, 255, 0.6);
	border: 1px solid var(--color-line);
	border-radius: 8px;
	text-align: center;
}

.menu-page__notice p {
	margin: 0;
	font-size: 1rem;
	color: var(--color-charcoal);
}

.menu-page__notice code {
	background: var(--color-charcoal);
	color: var(--color-cream);
	padding: 0.15em 0.45em;
	border-radius: 3px;
	font-size: 0.9em;
}

/* Jeden lístek (může jich být víc — Hlavní, Steakový atd.) */
.menu-page__listek {
	margin: 0 auto 5rem;
	padding: 0 1.5rem;
}

.menu-page__listek:last-of-type {
	margin-bottom: 0;
}

.menu-listek__title {
	font-family: var(--font-display);
	font-size: clamp(1.8rem, 3.5vw, 2.4rem);
	line-height: 1.15;
	text-align: center;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin: 0 0 1.25rem;
	color: var(--color-charcoal);
	position: relative;
	padding-bottom: 1.25rem;
}

.menu-listek__title::after {
	content: '';
	position: absolute;
	left: 50%;
	bottom: 0;
	transform: translateX(-50%);
	width: 60px;
	height: 1px;
	background: var(--color-charcoal);
	opacity: 0.4;
}

.menu-listek__intro {
	max-width: 640px;
	margin: 0 auto 3rem;
	text-align: center;
	font-family: var(--font-body);
	font-size: 0.98rem;
	line-height: 1.65;
	color: var(--color-charcoal);
	opacity: 0.78;
}

/* Sekce uvnitř lístku */
.menu-sekce {
	margin: 0 0 3.5rem;
}

.menu-sekce:last-child {
	margin-bottom: 0;
}

.menu-sekce__title {
	font-family: var(--font-display);
	font-size: 1.5rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	text-align: center;
	margin: 0 0 0.6rem;
	color: var(--color-charcoal);
}

.menu-sekce__intro {
	max-width: 560px;
	margin: 0 auto 1.75rem;
	text-align: center;
	font-size: 0.92rem;
	line-height: 1.55;
	color: var(--color-charcoal);
	opacity: 0.72;
}

/* Seznam položek — UL bez bullet, jen flex column */
.menu-sekce__polozky {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 1.4rem;
}

.menu-sekce__polozky li {
	list-style: none;
}

/* Jedna položka — CSS grid layout: gramáž | název+leader | cena
   Tři pevné sloupce zaručí, že:
   - gramáže jsou všechny zarovnány pod sebou ve sloupci zleva (čísla zarovnaná zprava, takže pod sebou),
   - názvy jsou všechny zarovnány v jednom svislém sloupci (i položky bez gramáže),
   - ceny jsou všechny zarovnány zprava.
*/
.menu-polozka {
	padding: 0;
	width: 100%;
	--col-gap: 0.6rem;
	--gramaz-font-size: 0.82rem; /* jeden zdroj pravdy — single i multi-variant */
	--gramaz-opacity: 0.68;
	--gramaz-letter: 0.02em;
}

/* Gramáž INLINE před názvem v jednom řádku — sjednoceno s tištěnou verzí.
   Layout:  [120 g]  [Játrová paštika .........]  [225 Kč]
            └ gram ┘  └────── nazev + leader ──┘   └ cena ┘ */
.menu-polozka__head {
	display: flex;
	align-items: baseline;
	gap: var(--col-gap);
	font-family: var(--font-display);
	width: 100%;
}

/* List items uvnitř flex column rodiče se default neroztáhnou na 100% width.
   Vynutíme šířku 100%. */
.menu-sekce__polozky > li {
	width: 100%;
	align-self: stretch;
}

.menu-polozka__gramaz {
	flex-shrink: 0;
	font-size: var(--gramaz-font-size);
	font-weight: 400;
	color: var(--color-charcoal);
	opacity: var(--gramaz-opacity);
	letter-spacing: var(--gramaz-letter);
	white-space: nowrap;
	text-align: left;
}

/* Název + leader (tečkovaná linka) — leader je ::after element,
   který roste a vyplní zbytek řádku do ceny. */
.menu-polozka__nazev {
	flex: 1 1 auto;
	margin: 0;
	font-size: 1.05rem;
	font-weight: 600;
	color: var(--color-charcoal);
	letter-spacing: 0.01em;
	display: flex;
	align-items: baseline;
	min-width: 0;
}

.menu-polozka__nazev::after {
	content: '';
	flex: 1 1 auto;
	margin: 0 0.6rem;
	border-bottom: 1px dotted var(--color-line);
	transform: translateY(-0.35em);
	min-width: 1.5rem;
}

/* Starý span.leader z patternu už nepoužíváme. */
.menu-polozka__leader {
	display: none;
}

.menu-polozka__cena {
	flex-shrink: 0;
	font-size: 1rem;
	font-weight: 600;
	color: var(--color-charcoal);
	white-space: nowrap;
	text-align: right;
}

/* Popis zarovnaný úplně vlevo (jako gramáž), žádné odsazení. */
.menu-polozka__popis {
	margin: 0.3rem 0 0;
	padding-left: 0;
	font-family: var(--font-body);
	font-size: 0.9rem;
	line-height: 1.5;
	color: var(--color-charcoal);
	opacity: 0.72;
}

/* Alergeny — malá čísla v horním indexu těsně za názvem položky. */
.menu-polozka__alergeny {
	display: inline;
	margin-left: 0.35em;
	font-family: var(--font-body);
	font-size: 0.62em;
	font-weight: 400;
	font-style: italic;
	color: var(--color-charcoal);
	opacity: 0.65;
	letter-spacing: 0.05em;
	vertical-align: super;
	cursor: help;
}

/* MULTI-VARIANT POLOŽKA
   Pokud má položka 2+ velikosti (např. Sirloin 350 g / 400 g),
   hlavní řádek ukazuje JEN název (bez gramáže a ceny).
   Všechny varianty (vč. té hlavní) se vyrenderují pod popisem
   se stejným 3-sloupcovým gridem a stejnou velikostí ceny.

   Důležité: ponecháváme 3-sloupcový grid, aby název začínal
   na STEJNÉ pozici jako u single-variant položek (za sloupcem
   s gramáží). Sloupec ceny (3.) je prázdný — leader natáhne
   až k jeho pozici, vizuálně tedy končí kde jindy stojí cena.
*/
/* MULTI-VARIANT: hlavní řádek má jen NÁZEV (bez gramáže/ceny).
   Gramáž a cena se vykreslí v <ul.menu-polozka__varianty> pod popisem. */
.menu-polozka--multi .menu-polozka__gramaz {
	display: none;
}
.menu-polozka--multi .menu-polozka__cena {
	display: none;
}

/* Seznam variant — flex column, padding-left srovnaný s názvem hlavní řádku
   (název začíná za gramážovým sloupcem, varianty kopírují grid). */
.menu-polozka__varianty {
	list-style: none;
	margin: 0.55rem 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}

.menu-polozka__varianty > li {
	list-style: none;
	width: 100%;
}

/* Jedna varianta — flex layout, gramáž inline vlevo, leader v středu, cena vpravo.
   Sjednoceno s tištěnou verzí: [350 g] [........] [590 Kč] */
.menu-varianta {
	display: flex;
	align-items: baseline;
	gap: var(--col-gap);
	font-family: var(--font-display);
	width: 100%;
}

.menu-varianta__gramaz {
	flex-shrink: 0;
	font-size: var(--gramaz-font-size);
	font-weight: 400;
	color: var(--color-charcoal);
	opacity: var(--gramaz-opacity);
	letter-spacing: var(--gramaz-letter);
	white-space: nowrap;
	text-align: left;
}

.menu-varianta__leader {
	flex: 1 1 auto;
	display: block;
	border-bottom: 1px dotted var(--color-line);
	margin: 0 0.6rem;
	transform: translateY(-0.35em);
	min-width: 1.5rem;
	align-self: end;
}

.menu-varianta__cena {
	flex-shrink: 0;
	font-size: 1rem;
	font-weight: 600;
	color: var(--color-charcoal);
	white-space: nowrap;
	text-align: right;
}

/* LEGENDA ALERGENŮ — sekce na konci jídelního lístku */
.menu-page__alergeny-legenda {
	margin: 4rem auto 1.5rem;
	padding: 1.75rem 1.5rem 0;
	border-top: 1px solid var(--color-line);
	text-align: center;
}

.alergeny-legenda__title {
	font-family: var(--font-display);
	font-size: 0.95rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--color-charcoal);
	opacity: 0.65;
	margin: 0 0 0.85rem;
}

.alergeny-legenda__list {
	margin: 0;
	font-family: var(--font-body);
	font-size: 0.85rem;
	line-height: 1.7;
	color: var(--color-charcoal);
	opacity: 0.78;
}

@media (max-width: 600px) {
	.menu-polozka {
		--gramaz-col: 44px;
		--col-gap: 0.45rem;
		--gramaz-font-size: 0.76rem;
	}
	.menu-polozka__nazev {
		font-size: 1rem;
	}
	.menu-polozka__nazev::after {
		margin: 0 0.4rem;
	}
}

/* Patička stránky lístku */
.menu-page__footer {
	margin: 4rem auto 0;
	padding: 2rem 1.5rem 0;
	border-top: 1px solid var(--color-line);
}

.menu-page__poznamka {
	margin: 0;
	font-size: 0.85rem;
	font-style: italic;
	color: var(--color-charcoal);
	opacity: 0.7;
}

/* =========================================================================
   PŘEBÍJENÍ DEFAULT STYLŮ PLUGINU Food and Drink Menu
   Plugin enqueueuje base.css / classic.css — vypneme je v functions.php,
   ale pro jistotu i tady přebijeme klíčové třídy.
   ========================================================================= */

.fdm-section,
.fdm-item,
.fdm-menu {
	all: revert;
}

.fdm-item {
	padding: 0 !important;
	background: transparent !important;
	border: none !important;
}


/* ===========================================================================
   MOBILNÍ MENU OVERRIDE — mimo @media (Chrome bug fix)
   Když je mobilní menu otevřené, .nav musí ztratit backdrop-filter, jinak
   vytvoří containing block pro fixed children a .nav-mobile (uvnitř .nav)
   se nemůže roztáhnout přes celý viewport.
   PRO Chrome je nutné mít tohle pravidlo na top-level (mimo @media) —
   jinak ho z neznámého důvodu cascade ignoruje navzdory !important.
   =========================================================================== */
body.menu-open .nav {
	z-index: 120 !important;
	background: var(--color-cream) !important;
	backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
}

/* ============================================================
 * Akce — upoutávka na úvodní straně (pattern akce-home)
 * ============================================================ */
.akce-home {
	background: var(--color-cream-dark);
	padding: var(--section-padding) 0;
}
.akce-home-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	margin-top: 2.5rem;
}
.akce-home-card {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	background: var(--color-cream);
	border: 1px solid var(--color-line);
	border-radius: 6px;
	padding: 1.6rem 1.7rem 1.4rem;
	text-decoration: none;
	color: var(--color-charcoal);
	box-shadow: var(--shadow-soft);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.akce-home-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--shadow-medium);
}
.akce-home-card__datum {
	font-family: var(--font-sans);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--color-terracotta);
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.akce-home-card__ikona { font-size: 1rem; }
.akce-home-card h4 {
	font-family: var(--font-serif);
	font-size: 1.45rem;
	line-height: 1.2;
	margin: 0;
}
.akce-home-card p {
	margin: 0;
	color: var(--color-charcoal-soft);
	font-size: 0.95rem;
	line-height: 1.55;
	flex: 1;
}
.akce-home-card__vice {
	font-family: var(--font-sans);
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--color-moss);
	margin-top: 0.4rem;
}
.akce-home-cta {
	text-align: center;
	margin-top: 2.5rem;
}
@media (max-width: 900px) {
	.akce-home-grid { grid-template-columns: 1fr; }
}

/* v1.96.2 — dny vaření/grilování */
.menu-cta-hours--note {
	color: #A03A28;
	font-weight: 600;
	letter-spacing: 0.04em;
}
.reservation-hours-note {
	margin-top: 10px;
	padding-top: 8px;
	border-top: 1px dashed rgba(43, 24, 16, 0.25);
	font-style: italic;
	font-size: 0.9rem;
	color: #8B3F22;
}

/* v1.96.3 — 🔴 červená přelepka „Steaky grilujeme SO–NE" */
.mit-sticker-wrap { text-align: center; margin: 14px 0 4px; }
.mit-sticker-wrap--left { text-align: left; }
.mit-sticker {
	display: inline-block;
	background: #C0392B;
	color: #fff;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-size: 0.95rem;
	line-height: 1.2;
	padding: 9px 20px;
	transform: rotate(-2.5deg);
	border-radius: 3px;
	box-shadow: 2px 3px 10px rgba(0, 0, 0, 0.28);
	position: relative;
}
.mit-sticker::before {
	content: '';
	position: absolute;
	inset: 3px;
	border: 1.5px dashed rgba(255, 255, 255, 0.65);
	border-radius: 2px;
	pointer-events: none;
}

/* v1.96.5 — přelepka v hero rezervace (o chlup větší, na tmavém pozadí) */
.mit-sticker-wrap--hero { margin-top: 20px; }
.mit-sticker-wrap--hero .mit-sticker {
	font-size: 1.05rem;
	padding: 11px 24px;
	box-shadow: 3px 4px 14px rgba(0, 0, 0, 0.45);
}

/* ============================================================
 * v1.96.5 — VÝRAZNĚJŠÍ REZERVAČNÍ FORMULÁŘ
 * Sekce jako bílé karty s legendou „na rámečku", pole v boxech
 * místo podtržítek — jasné oddělení nadpisů a vyplňovaných polí.
 * ============================================================ */
.rtb-booking-form fieldset {
	background: #fff !important;
	border: 1px solid var(--color-line) !important;
	border-radius: 6px !important;
	padding: 1.5rem 1.5rem 1.25rem !important;
	margin: 0 0 1.75rem !important;
	box-shadow: 0 1px 4px rgba(42, 37, 32, 0.06);
}
.rtb-booking-form fieldset:first-of-type {
	border-top: 1px solid var(--color-line) !important;
	padding-top: 1.5rem !important;
}
.rtb-booking-form legend {
	background: #fff !important;
	padding: 0 0.75rem !important;
	margin: 0 !important;
	font-size: 1.2rem !important;
	font-weight: 600 !important;
	color: var(--color-terracotta, #A03A28) !important;
}
.rtb-booking-form label,
.rtb-booking-form .rtb-text label,
.rtb-booking-form .rtb-select label {
	color: var(--color-charcoal) !important;
	font-weight: 700 !important;
	font-size: 0.74rem !important;
	letter-spacing: 0.1em !important;
}
.rtb-booking-form input[type="text"],
.rtb-booking-form input[type="email"],
.rtb-booking-form input[type="tel"],
.rtb-booking-form input[type="number"],
.rtb-booking-form input[type="date"],
.rtb-booking-form input[type="time"],
.rtb-booking-form select,
.rtb-booking-form textarea {
	background: #FAF7F0 !important;
	border: 1px solid var(--color-line) !important;
	border-radius: 4px !important;
	padding: 0.7rem 0.9rem !important;
}
.rtb-booking-form input:focus,
.rtb-booking-form select:focus,
.rtb-booking-form textarea:focus {
	background: #fff !important;
	border-color: var(--color-terracotta, #A03A28) !important;
	box-shadow: 0 0 0 3px rgba(160, 58, 40, 0.14) !important;
}
.rtb-booking-form select {
	background-position: right 0.6rem center !important;
	padding-right: 2.25rem !important;
}

/* ============================================================
 * v1.96.6 — FIX přetékání rezervačního formuláře
 * Legenda už nesedí na rámečku (při zalomení přetékala do polí),
 * ale je normální nadpis uvnitř karty. Pole nepřetékají šířkou.
 * ============================================================ */
.rtb-booking-form legend {
	float: left !important;
	width: 100% !important;
	padding: 0 0 0.6rem !important;
	margin: 0 0 1.1rem !important;
	background: transparent !important;
	line-height: 1.25 !important;
	border-bottom: 2px solid var(--color-terracotta, #A03A28) !important;
}
.rtb-booking-form fieldset > div,
.rtb-booking-form fieldset > label { clear: both; }
.rtb-booking-form input[type="text"],
.rtb-booking-form input[type="email"],
.rtb-booking-form input[type="tel"],
.rtb-booking-form input[type="number"],
.rtb-booking-form input[type="date"],
.rtb-booking-form input[type="time"],
.rtb-booking-form select,
.rtb-booking-form textarea {
	box-sizing: border-box !important;
	width: 100% !important;
	max-width: 100% !important;
}
.rtb-booking-form label {
	display: block !important;
	margin: 0 0 0.4rem !important;
	line-height: 1.35 !important;
}
.rtb-booking-form .rtb-text,
.rtb-booking-form .rtb-select,
.rtb-booking-form .rtb-textarea {
	margin: 0 0 1.1rem !important;
	border: none !important;
}
/* Patička s tlačítkem — bez bílé karty, tlačítko se nevejde do rámečku */
.rtb-booking-form fieldset.rtb-form-footer {
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	padding: 0.5rem 0 0 !important;
	margin: 0 !important;
}

/* Mobil — těsnější karty, menší legenda, nic nepřetéká */
@media (max-width: 640px) {
	.rtb-booking-form fieldset {
		padding: 1rem 0.9rem 0.75rem !important;
		margin: 0 0 1.25rem !important;
	}
	.rtb-booking-form legend {
		font-size: 1.05rem !important;
		padding-bottom: 0.45rem !important;
		margin-bottom: 0.9rem !important;
	}
	.rtb-booking-form input[type="text"],
	.rtb-booking-form input[type="email"],
	.rtb-booking-form input[type="tel"],
	.rtb-booking-form input[type="number"],
	.rtb-booking-form input[type="date"],
	.rtb-booking-form input[type="time"],
	.rtb-booking-form select,
	.rtb-booking-form textarea {
		padding: 0.6rem 0.7rem !important;
	}
	.mit-sticker-wrap--hero .mit-sticker { font-size: 0.9rem; padding: 9px 16px; }
}
