/*!
 * Zlatý Roh Custom Styles
 * 
 * Custom theme styles for Zlatý Roh vineyard website
 */

/*--------------------------------------------------------------
# CSS Variables
--------------------------------------------------------------*/
:root {
	/* Brand colors */
	--color-gold: #D4AF37;
	--color-gold-dark: #AE8352;
	--color-gold-pastel: #B79768;            /* used by .btn--gold-pastel paint-fill */
	--color-brown: #8B7355;
	--color-brown-dark: #6B5A45;
	--color-earth: #5D4037;
	--color-green: #4CAF50;
	--color-green-dark: #2E7D32;
	--color-beige: #F5F1E8;
	--color-dark: #3E2723;
	--color-terracotta: #b04a32;             /* button + accent */
	--color-clay-dark: #4a3a2a;              /* deep earth wash */

	/* Neutrals (introduced to tokenize scattered hex usage; safe to grow) */
	--color-white: #fff;
	--color-text-body: #404040;             /* current body text color */
	--color-text-link: #333;                /* current link color */
	--color-text-muted: #555;               /* common secondary text */
	--color-text-soft: #666;                /* common tertiary text */
	--color-text-faint: #888;
	--color-text-faintest: #999;
	--color-border-light: #ddd;
	--color-border-soft: #e2e0dc;
	--color-cream-50: #fbf6ed;
	--color-cream-100: #f0ece4;
	--color-footer-bg: #151812;             /* dark footer surface */
	--color-footer-bg-alt: #2a1e14;

	/* Hero sizing (was inline style="min-height:1000px" on front-page.php; tuned here so it can be adjusted in one place) */
	--zr-hero-row-min-height: 1000px;

	/* Fonts */
	--font-primary: "Platypi", serif;
	--font-secondary: "Rethink Sans", sans-serif;
	/* Single source of truth for all pill / .btn typefaces.
	   Change this one value to swap the button font site-wide. */
	--font-button: "Rethink Sans", sans-serif;

	/* Typography scale – font sizes */
	--text-xs: 0.75rem;
	--text-sm: 0.85rem;
	--text-sm-alt: 0.875rem;
	--text-base: 1rem;
	--text-base-alt: 0.95rem;
	--text-lg: 1.05rem;
	--text-lg-alt: 1.1rem;
	--text-xl: 1.15rem;
	--text-xl-alt: 1.25rem;
	--text-2xl: 1.35rem;
	--text-3xl: 1.5rem;
	--text-4xl: 1.75rem;
	--text-5xl: 2rem;
	--text-6xl: 2.5rem;
	--text-7xl: 3rem;

	/* Typography scale – line heights */
	--leading-tight: 1.2;
	--leading-snug: 1.3;
	--leading-normal: 1.5;
	--leading-relaxed: 1.6;
	--leading-loose: 1.65;
	--leading-body: 1.65;
	--leading-p: 2.5rem;
}

/*--------------------------------------------------------------
# Typography
--------------------------------------------------------------
Scale: --text-xs (0.75rem) … --text-7xl (3rem)
Leading: --leading-tight (1.2) … --leading-body (1.7)
Use these vars for new styles; existing hardcoded values kept for now.

--------------------------------------------------------------*/

/* Base */
body {
	font-family: var(--font-secondary);
	font-optical-sizing: auto;
	color: #404040;
	line-height: var(--leading-body);
}

body:not(.home) {
	padding-top: 80px; /* Account for fixed header */
}

body.page-template-page-filozofia {
	padding-top: 0;
}

p {
	line-height: var(--leading-p) !important;
}

/* Headings */
h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-primary);
	font-optical-sizing: auto;
	font-weight: 400;
	letter-spacing: 0.5px;
}

h2.wp-block-heading {
	margin-top: 1.2em;
	line-height: 1.5em;
	margin-bottom: 0.7em;
}

/* Display headings */
.display-1, .display-2, .display-3, .display-4, .display-5 {
	font-family: var(--font-primary);
	font-optical-sizing: auto;
	font-weight: 400;
	letter-spacing: 1px;
}

/* Links */
a {
	color: #333;
}

/* Keyboard focus ring: only shown when the browser detects keyboard navigation,
   not when an element is clicked with a mouse. Mouse users see no change.
   Forms and pill buttons have their own focus treatments (gold border + halo)
   so we scope this to the hamburger button and generic focusable elements
   that do not already declare their own focus style.
   Anchors (<a>) are intentionally excluded — outline removed by request. */
.hamburger-btn:focus-visible,
.skip-link:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible {
	outline: 2px solid var(--color-gold);
	outline-offset: 2px;
	border-radius: 2px;
}

/* Explicitly suppress outline on anchor links across all states */
a,
a:focus,
a:focus-visible,
a:active {
	outline: none;
}

/*--------------------------------------------------------------
# Header & Navigation
--------------------------------------------------------------*/
.site-header {
	background: transparent;
	box-shadow: none;
	transition: all 0.3s ease;
}

.site-header .navbar {
	padding-top: 0;
	padding-bottom: 0;
	min-height: auto;
}

.site-header.scrolled {
	background:transparent
}

.navbar-brand {
	font-family: var(--font-primary);
	font-optical-sizing: auto;
	font-weight: 400;
	font-size: 1.5rem;
	letter-spacing: 1px;
}

/* Header: content inside container so hamburger stays within page width */
.header-container {
	position: relative;
	width: 100%;
	max-width: 1320px;
	margin-left: auto;
	margin-right: auto;
	padding-left: .8rem;
	padding-right: .8rem;
}



/* Subnavigation panel (Vinárstvo hover) */
.subnav-panel {
	position: absolute;
	top: 100%;
	left: .7rem;
  	right: .7rem;
	background: rgba(245, 245, 245, 0.7);
	backdrop-filter: blur(22px);
	-webkit-backdrop-filter: blur(12px);
	border-radius: 25px;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
	padding: 1.5rem 2rem;
	margin-top: 0.5rem;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.25s ease-out, visibility 0.25s ease-out;
	z-index: 100;
}

.header-container.subnav-visible .subnav-panel-vinarstvo {
	opacity: 1;
	visibility: visible;
}

.header-container.subnav-eshop-visible .subnav-panel-eshop {
	opacity: 1;
	visibility: visible;
}

.subnav-inner {
	display: flex;
	gap: 2rem;
	align-items: stretch;
}

.subnav-menus {
	display: flex;
	gap: 2.5rem;
	flex-wrap: wrap;
}

.subnav-menu-block {
	min-width: 0;
	margin-right: 2.5em;
}

.subnav-menu-block__title {
	font-family: var(--font-primary);
	font-size: 1.5rem;
	font-weight: 100;
	color: var(--color-dark);
	margin: 0 0 0.6rem;
	letter-spacing: 0.02em;
}

.subnav-separator {
	width: 100%;
	max-width: 30px;
  	height: 3px;
	background: url('../img/navigation/underline-white-header.webp') no-repeat left center;
	background-size: 100% auto;
	margin-bottom: 1.3rem;
}

/* No menu assigned (header subnav and footer use shared .nav-no-menu) */
.subnav-no-menu,
.nav-no-menu {
	font-size: 0.875rem;
	color: #888;
	margin: 0;
	font-style: italic;
}

.zr-footer .nav-no-menu {
	color: rgba(255, 255, 255, 0.65);
}

.subnav-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	min-width: 10rem;
}

.subnav-list a {
	position: relative;
	color: var(--color-dark);
	text-decoration: none;
	font-weight: 400;
	padding: 0.35rem 0;
	display: inline-block;
}

.subnav-list a::after {
	content: '';
	position: absolute;
	bottom: 2px;
	left: 0;
	width: 0;
	height: 1px;
	background: var(--color-dark);
	transition: width 0.45s ease;
}

.subnav-list a:hover::after {
	width: 100%;
}

.subnav-photos {
	display: flex;
	gap: 1rem;
	flex: 1;
	justify-content: flex-end;
	min-width: 0;
}

/* 4:3 horizontal (landscape) – width leads, height follows */
.subnav-photo {
	flex: 1;
	min-width: 100px;
	max-width: 320px;
	width: 100%;
	aspect-ratio: 4 / 3;
	background: rgba(0, 0, 0, 0.12);
	border-radius: 12px;
	overflow: hidden;
}

/* E-shop panel: last slot = 2 slim images stacked, same total height as one photo */
.subnav-photo-stack {
	flex: 1;
	min-width: 100px;
	max-width: 320px;
	width: 100%;
	aspect-ratio: 4 / 3;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	border-radius: 12px;
	overflow: hidden;
}

.subnav-photo-stack .subnav-photo {
	flex: 1;
	min-height: 0;
	aspect-ratio: auto;
}

.subnav-photo {
	position: relative;
	text-decoration: none;
	display: block;
}

.subnav-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
	transition: filter 0.2s ease;
}

.subnav-photo:hover img {
	filter: brightness(1.15);
}

.subnav-photo__caption {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 0.5rem;
	font-family: var(--font-primary);
	font-size: 1.3rem;
	line-height: 1.3;
	font-weight: 100;
	color: #fff;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8);
	pointer-events: none;
}

.subnav-photo-stack .subnav-photo__caption {
	padding: 0.4rem;
}

/* When menu closed: only logo and hamburger (and cart) are clickable; rest of header lets clicks pass through */
.site-header:not(.nav-open) {
	pointer-events: none;
}
.site-header:not(.nav-open) .logo-slider,
.site-header:not(.nav-open) .logo-bubble,
.site-header:not(.nav-open) .hamburger-btn,
.site-header:not(.nav-open) .cart-bubble {
	pointer-events: auto;
}

/* Header: flex bar - single logo slides smoothly from center to left (pixel-based) */
.header-nav-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	position: relative;
	padding: 32px 0;
	transition: padding-top 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.site-header.logo-initial-spacing .header-nav-bar {
	padding-top: 144px;
}

/* Cart/checkout: logo a bit higher than front page, same scroll-up behaviour */
.site-header.logo-cart-checkout-spacing .header-nav-bar {
	padding-top: 64px;
}

.site-header.logo-initial-spacing.scrolled .header-nav-bar,
.site-header.logo-cart-checkout-spacing.scrolled .header-nav-bar,
.site-header.scrolled .header-nav-bar {
	padding-top: 32px;
}

/* Single logo: absolute, centered when closed, slides to left when open (pixel-based) */
.logo-slider {
	position: absolute;
	top: 168px;
	left: 50%;
	transform: translate(-50%, -50%);
	transition: top 0.4s cubic-bezier(0.4, 0, 0.2, 1), left 0.4s cubic-bezier(0.4, 0, 0.2, 1), transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	z-index: 2;
}

.site-header.nav-open .logo-slider {
	left: 0;
	transform: translate(0, -50%);
}

.site-header.logo-cart-checkout-spacing .logo-slider {
	top: 84px;
}

.site-header.scrolled .logo-slider {
	top: 56px;
}

/* Left: nav bubbles only; padding when open so they sit next to the logo */
.header-left {
	display: flex;
	flex: 1;
	align-items: center;
	gap: 0.6rem;
	justify-content: flex-start;
	min-width: 0;
	padding-left: 0;
	transition: padding-left 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.site-header.nav-open .header-left {
	padding-left: 21rem; /* room for logo so bubbles don’t overlap */
}

/* Right: cart (when open) + hamburger */
.header-right {
	display: flex;
	flex: 1;
	align-items: center;
	justify-content: flex-end;
	gap: 0.6rem;
	min-width: 0;
}

.logo-bubble-wrap {
	flex-shrink: 0;
}

/* Nav drawer: wraps header-left + subnav panels; on desktop just flex child (static so subnavs position to header-container) */
.nav-drawer {
	flex: 1;
	min-width: 0;
}

/* Mobile-only switcher: hidden on desktop, shown only when nav open on mobile */
.mobile-switcher {
	display: none;
}

/* Nav bubbles (Vinárstvo, Eshop): same style as logo, hidden when closed */
.nav-bubble {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.6rem 0;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.6) 100%);
	border-radius: 50px;
	box-shadow: 0 2px 15px rgba(0, 0, 0, 0.1);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	color: var(--color-dark);
	text-decoration: none;
	font-weight: 500;
	white-space: nowrap;
	max-width: 0;
	opacity: 0;
	overflow: hidden;
	font-size: 16px;
	transition: max-width 0.35s ease-out, opacity 0.3s ease, padding 0.35s ease, box-shadow 0.3s ease;

}

.nav-bubble:hover,
.header-container.subnav-visible #nav-vinarstvo,
.header-container.subnav-eshop-visible #nav-eshop {
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
	background: #ffffff;
}

.site-header.nav-open .nav-bubble {
	max-width: 12rem;
	opacity: 1;
	padding-left: 1.25rem;
	padding-right: 1.25rem;
	font-size: 16px;
	margin-right: 8px;
	margin-left: 8px;
	
}

/* Cart: circular bubble, hidden when closed */
.cart-bubble {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.85) 100%);
	box-shadow: 0 2px 15px rgba(0, 0, 0, 0.1);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	color: var(--color-dark);
	text-decoration: none;
	opacity: 0;
	transform: scale(0.5);
	margin-right: 1em;
	transition: opacity 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}

.cart-bubble:hover {
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

.site-header.nav-open .cart-bubble {
	opacity: 1;
	transform: scale(1);
	margin-right: 1em;
}

.cart-icon {
	flex-shrink: 0;
	max-width: 19px;
}

.hamburger-btn {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 6px;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
}

/* Hamburger dark by default; white only on pages with photo hero */
.hamburger-line {
	display: block;
	width: 32px;
	height: 4px;
	background: rgb(174, 131, 82);
	border-radius: 999px;
	transition: background 0.3s ease;
}

/* Hamburger starts white over the hero, turns brown after scroll (scrolled-far).
   Light-top pages (cart/checkout/shop/login) get .scrolled-far immediately, so
   they stay brown from the top. On <=1199.98px a separate rule forces it dark. */
.site-header:not(.scrolled-far) .hamburger-line {
	background: rgba(255, 255, 255, 0.95);
}

.site-header.scrolled-far .hamburger-line {
	background: rgb(174, 131, 82);
}

/* Hamburger → X animation (CodePen cossovich/ExjpmRg) */
.hamburger-btn .hamburger-line {
	transform-origin: 38% 50%;
}

.hamburger-btn .hamburger-line:nth-child(1) {
	animation: hamburgerTopReset 320ms cubic-bezier(0.34, 1.2, 0.64, 1) forwards;
}

.hamburger-btn .hamburger-line:nth-child(2) {
	animation: hamburgerMiddleReset 320ms ease-in-out forwards;
}

.hamburger-btn .hamburger-line:nth-child(3) {
	animation: hamburgerBottomReset 320ms cubic-bezier(0.34, 1.2, 0.64, 1) forwards;
}

.hamburger-btn.is-open .hamburger-line:nth-child(1) {
	animation: hamburgerTopDeform 320ms cubic-bezier(0.34, 1.2, 0.64, 1) forwards;
}

.hamburger-btn.is-open .hamburger-line:nth-child(2) {
	animation: hamburgerMiddleDeform 320ms ease-in-out forwards;
}

.hamburger-btn.is-open .hamburger-line:nth-child(3) {
	animation: hamburgerBottomDeform 320ms cubic-bezier(0.34, 1.2, 0.64, 1) forwards;
}

@keyframes hamburgerTopReset {
	0% { transform: translateY(7px) rotate(45deg); }
	45% { transform: translateY(7px) rotate(0deg); }
	65% { transform: translateY(-5px) rotate(0deg); }
	100% { transform: translateY(0) rotate(0deg); }
}

@keyframes hamburgerMiddleReset {
	0% { opacity: 0; }
	50% { opacity: 1; }
	100% { opacity: 1; }
}

@keyframes hamburgerBottomReset {
	0% { transform: translateY(-7px) rotate(-45deg); }
	45% { transform: translateY(-7px) rotate(0deg); }
	65% { transform: translateY(5px) rotate(0deg); }
	100% { transform: translateY(0) rotate(0deg); }
}

@keyframes hamburgerTopDeform {
	0% { transform: translateY(0) rotate(0deg); }
	20% { transform: translateY(-5px) rotate(0deg); }
	55% { transform: translateY(7px) rotate(0deg); }
	100% { transform: translateY(7px) rotate(45deg); }
}

@keyframes hamburgerMiddleDeform {
	0% { opacity: 1; }
	50% { opacity: 1; }
	100% { opacity: 0; }
}

@keyframes hamburgerBottomDeform {
	0% { transform: translateY(0) rotate(0deg); }
	20% { transform: translateY(5px) rotate(0deg); }
	55% { transform: translateY(-7px) rotate(0deg); }
	100% { transform: translateY(-7px) rotate(-45deg); }
}

/* --------------------------------------------------------------
   Mobile + Tablet: fullscreen navigation overlay (glass/white)
   Covers phones (≤575) → small tablets → iPad landscape (≤1199).
   -------------------------------------------------------------- */
@media (max-width: 1199.98px) {
	body.mobile-nav-open {
		overflow: hidden;
		touch-action: none;
	}

	/* Start logo and hamburger on mobile (pixel-based); same scrolled position as desktop */
	.site-header.logo-initial-spacing:not(.scrolled) .header-nav-bar {
		padding-top: 64px;
	}
	.site-header.logo-initial-spacing:not(.scrolled) .logo-slider {
		top: 84px;
	}
	.site-header.logo-initial-spacing.scrolled .logo-slider {
		top: 56px;
	}
	.site-header.logo-cart-checkout-spacing:not(.scrolled) .header-nav-bar {
		padding-top: 48px;
	}
	.site-header.logo-cart-checkout-spacing:not(.scrolled) .logo-slider {
		top: 70px;
	}
	.site-header.logo-cart-checkout-spacing.scrolled .logo-slider {
		top: 56px;
	}

	/* Homepage only on mobile: logo and hamburger start even lower (pixel-based); scrolled unchanged */
	body.home .site-header.logo-initial-spacing:not(.scrolled) .header-nav-bar {
		padding-top: 104px;
	}
	body.home .site-header.logo-initial-spacing:not(.scrolled) .logo-slider {
		top: 125px;
	}

	/* Hamburger when menu closed: 2x smaller icon centered in white gradient bubble */
	.site-header:not(.nav-open) .hamburger-btn {
		width: 40px;
		height: 40px;
		min-width: 40px;
		min-height: 40px;
		background: linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.85) 100%);
		border-radius: 50%;
		box-shadow: 0 2px 15px rgba(0, 0, 0, 0.1);
		backdrop-filter: blur(10px);
		-webkit-backdrop-filter: blur(10px);
	}
	.site-header:not(.nav-open) .hamburger-btn .hamburger-line {
		width: 16px;
		height: 2px;
	}
	.site-header:not(.nav-open) .hamburger-btn {
		gap: 3px;
	}
	/* When bubble is visible behind hamburger (menu closed), icon is always dark on mobile */
	.site-header:not(.nav-open) .hamburger-line {
		background: var(--color-dark) !important;
	}

	/* When menu closed: small icon with mobile keyframes; when open use desktop rotating X (same as desktop) */
	.site-header:not(.nav-open) .hamburger-btn .hamburger-line:nth-child(1) {
		animation: hamburgerTopResetMobile 320ms cubic-bezier(0.34, 1.2, 0.64, 1) forwards;
	}
	.site-header:not(.nav-open) .hamburger-btn .hamburger-line:nth-child(2) {
		animation: hamburgerMiddleReset 320ms ease-in-out forwards;
	}
	.site-header:not(.nav-open) .hamburger-btn .hamburger-line:nth-child(3) {
		animation: hamburgerBottomResetMobile 320ms cubic-bezier(0.34, 1.2, 0.64, 1) forwards;
	}
	.site-header.nav-open .hamburger-btn .hamburger-line:nth-child(1) {
		animation: hamburgerTopResetMobile 320ms cubic-bezier(0.34, 1.2, 0.64, 1) forwards;
	}
	.site-header.nav-open .hamburger-btn .hamburger-line:nth-child(2) {
		animation: hamburgerMiddleReset 320ms ease-in-out forwards;
	}
	.site-header.nav-open .hamburger-btn .hamburger-line:nth-child(3) {
		animation: hamburgerBottomResetMobile 320ms cubic-bezier(0.34, 1.2, 0.64, 1) forwards;
	}
	.site-header.nav-open .hamburger-btn.is-open .hamburger-line:nth-child(1) {
		animation: hamburgerTopDeformMobile 320ms cubic-bezier(0.34, 1.2, 0.64, 1) forwards;
	}
	.site-header.nav-open .hamburger-btn.is-open .hamburger-line:nth-child(2) {
		animation: hamburgerMiddleDeform 320ms ease-in-out forwards;
	}
	.site-header.nav-open .hamburger-btn.is-open .hamburger-line:nth-child(3) {
		animation: hamburgerBottomDeformMobile 320ms cubic-bezier(0.34, 1.2, 0.64, 1) forwards;
	}
	@keyframes hamburgerTopResetMobile {
		0% { transform: translateY(3.5px) rotate(45deg); }
		45% { transform: translateY(3.5px) rotate(0deg); }
		65% { transform: translateY(-2px) rotate(0deg); }
		100% { transform: translateY(0) rotate(0deg); }
	}
	@keyframes hamburgerBottomResetMobile {
		0% { transform: translateY(-3.5px) rotate(-45deg); }
		45% { transform: translateY(-3.5px) rotate(0deg); }
		65% { transform: translateY(2px) rotate(0deg); }
		100% { transform: translateY(0) rotate(0deg); }
	}
	@keyframes hamburgerTopDeformMobile {
		0% { transform: translateY(0) rotate(0deg); }
		20% { transform: translateY(-2px) rotate(0deg); }
		55% { transform: translateY(3.5px) rotate(0deg); }
		100% { transform: translateY(3.5px) rotate(45deg); }
	}
	@keyframes hamburgerBottomDeformMobile {
		0% { transform: translateY(0) rotate(0deg); }
		20% { transform: translateY(2px) rotate(0deg); }
		55% { transform: translateY(-3.5px) rotate(0deg); }
		100% { transform: translateY(-3.5px) rotate(-45deg); }
	}

	/* Mobile nav open: white, blurred transparent (glass) like desktop submenu */
	.site-header.nav-open {
		position: fixed;
		inset: 0;
		width: 100%;
		height: 100%;
		min-height: 100vh;
		z-index: 1040;
		overflow: hidden;
		pointer-events: none;
		background: rgba(245, 245, 245, 0.7);
		backdrop-filter: blur(22px);
		-webkit-backdrop-filter: blur(22px);
	}
	.site-header.nav-open .header-container {
		pointer-events: auto;
		height: 100%;
		display: flex;
		flex-direction: column;
		padding: 0 0.8rem;
	}
	/* Top row: logo + cart + hamburger; second row: switcher + menu items (relative, directly under) */
	.site-header.nav-open .header-nav-bar {
		display: grid;
		grid-template-columns: 1fr auto;
		grid-template-rows: auto 1fr;
		flex: 1;
		min-height: 0;
		position: relative;
		z-index: 2;
		padding: 0;
		padding-top: 0.8rem;
		padding-bottom: 0;
		background: transparent;
		gap: 0;
	}
	.site-header.nav-open .logo-slider {
		grid-column: 1;
		grid-row: 1;
	}
	.site-header.nav-open .header-right {
		grid-column: 2;
		grid-row: 1;
	}
	/* Drawer in flow under top bar – fills the second grid row so it is the
	   single, height-bounded scroll container (content still hugs the top via
	   justify-content: flex-start). Without stretch the drawer grows to its
	   content and overflows the overlay, making the last items unreachable. */
	.site-header.nav-open .nav-drawer {
		grid-column: 1 / -1;
		grid-row: 2;
		align-self: stretch;
		position: relative;
		inset: auto;
		width: 100%;
		height: auto;
		min-height: 0;
		background: transparent;
		overflow-y: auto;
		overflow-anchor: none;
		-webkit-overflow-scrolling: touch;
		animation: navDrawerSlideIn 0.28s ease-out forwards;
		padding: 0 0 2rem;
		padding-top: 1rem;
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
		gap: 0;
	}
	/* Logo: white pill bubble on dark */
	.site-header.nav-open .logo-bubble {
		background: linear-gradient(135deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 255, 255, 0.9) 100%);
		box-shadow: 0 2px 16px rgba(0, 0, 0, 0.2);
		border-radius: 50px;
	}
	.site-header.nav-open .navbar-logo {
		filter: none;
	}
	@keyframes navDrawerSlideIn {
		from { transform: translateX(100%); }
		to { transform: translateX(0); }
	}

	.site-header.nav-open .logo-slider {
		position: static;
		transform: none;
	}
	.site-header.nav-open .header-right {
		display: flex;
		align-items: center;
		gap: 0.5rem;
		justify-self: end;
	}
	/* Cart must stay visible in top bar when menu is open */
	.site-header.nav-open #header-cart-bubble {
		display: flex !important;
		align-items: center;
		justify-content: center;
		min-width: 40px;
	}
	/* Original switcher: hidden on mobile when nav open (use .mobile-switcher instead) */
	.site-header.nav-open .nav-drawer .header-left {
		display: none !important;
	}

	/* Mobile-only switcher: visible on first row of drawer content, below top bar */
	.site-header.nav-open .mobile-switcher {
		display: flex;
		flex-wrap: wrap;
		gap: 0.4rem;
		padding-bottom: 0.5rem;
		justify-content: flex-start;
	}

	/* Mobile switcher buttons: same small style as before */
	.site-header.nav-open .mobile-switcher__btn {
		padding: 0.45rem 0.9rem;
		font-size: 0.875rem;
		border-radius: 50px;
		background: linear-gradient(180deg, #e8e4dc 0%, #ddd9d0 100%);
		color: var(--color-dark);
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
		text-decoration: none;
		font-weight: 500;
	}
	.site-header.nav-open .header-container.subnav-visible .mobile-switcher__btn--vinarstvo,
	.site-header.nav-open .header-container.subnav-eshop-visible .mobile-switcher__btn--eshop {
		background: #fff;
		box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
	}

	/* Desktop nav-bubble styles when nav open (only apply when .header-left is used – desktop) */
	.site-header.nav-open .nav-bubble {
		min-width: auto;
		max-width: none;
		padding: 0.45rem 0.9rem;
		font-size: 0.875rem;
		border-radius: 50px;
		background: linear-gradient(180deg, #e8e4dc 0%, #ddd9d0 100%);
		color: var(--color-dark);
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
	}

	/* Active nav item: solid white (E-shop / Vinárstvo when selected) */
	.site-header.nav-open .header-container.subnav-visible .nav-bubble-vinarstvo,
	.site-header.nav-open .header-container.subnav-eshop-visible #nav-eshop {
		background: #fff;
		color: var(--color-dark);
		box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
	}

	/* When menu is open: small X, no bubble – dark on dark (screenshot) */
	.site-header.nav-open .hamburger-btn {
		position: relative;
		z-index: 2;
		width: 40px;
		height: 40px;
		min-width: 40px;
		min-height: 40px;
		gap: 3px;
		background: transparent;
		box-shadow: none;
		border-radius: 0;
	}
	.site-header.nav-open .hamburger-btn .hamburger-line {
		width: 16px;
		height: 2px;
	}
	.site-header.nav-open .hamburger-line {
		background: var(--color-dark) !important;
	}
	/* Cart: always visible in top bar – white circular bubble, dark icon */
	.site-header.nav-open .cart-bubble {
		opacity: 1 !important;
		transform: scale(1) !important;
		visibility: visible !important;
		display: inline-flex !important;
		width: 40px;
		height: 40px;
		min-width: 40px;
		min-height: 40px;
		background: linear-gradient(135deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 255, 255, 0.9) 100%);
		box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2);
		border: 1px solid rgba(0, 0, 0, 0.06);
		color: var(--color-dark);
	}

	/* Subnav panel: white, blurred transparent (glass) like desktop */
	.site-header.nav-open .subnav-panel {
		position: static;
		left: auto;
		right: auto;
		margin: 0;
		margin-top: 0.25rem;
		padding: 1em 0 0 0;
		background: transparent;
		backdrop-filter: none;
		-webkit-backdrop-filter: none;
		box-shadow: none;
		border-radius: 0;
		opacity: 1;
		visibility: visible;
		display: none;
		/* Passive child: the .nav-drawer is the single scroll container, so the
		   panel just contributes its natural height. A nested overflow-y here
		   created a second scroller that swallowed the last items on iOS. */
		flex: 0 0 auto;
		min-height: 0;
		overflow: visible;
	}

	.site-header.nav-open .header-container.subnav-visible .subnav-panel-vinarstvo,
	.site-header.nav-open .header-container.subnav-eshop-visible .subnav-panel-eshop {
		display: block;
	}

	/* Fallback: if neither panel is explicitly selected, default to Vinárstvo
	   so the mobile menu never opens empty. */
	.site-header.nav-open .header-container:not(.subnav-visible):not(.subnav-eshop-visible) .subnav-panel-vinarstvo {
		display: block;
	}

	.site-header.nav-open .subnav-inner {
		flex-direction: column;
		gap: 1.25rem;
	}

	/* Hide only plain image boxes on mobile; keep Nový ročník 2025 & Slamové víno banners */
	.site-header.nav-open .subnav-photos > .subnav-photo {
		display: none !important;
	}
	.site-header.nav-open .subnav-photos {
		width: 100%;
		max-width: none;
	}
	.site-header.nav-open .subnav-photos > .subnav-photo-stack {
		display: flex;
		flex-direction: column;
		gap: 0.75rem;
		width: 100%;
		max-width: none;
		margin-top: 0.5rem;
	}
	.site-header.nav-open .subnav-photo-stack .subnav-photo {
		border-radius: 12px;
		overflow: hidden;
		aspect-ratio: 4 / 3;
		min-height: 100px;
	}

	.site-header.nav-open .subnav-menus {
		width: 100%;
		gap: 1.5rem;
	}

	.site-header.nav-open .subnav-menu-block__title {
		font-size: 1.25rem;
		font-weight: 400;
		margin-bottom: 0.5rem;
		color: var(--color-dark);
	}
	/* Thin dark underline under heading (screenshot) */
	.site-header.nav-open .subnav-separator {
		width: 100%;
		max-width: 32px;
		height: 2px;
		background: var(--color-dark);
		background-image: none;
		margin-bottom: 1rem;
		opacity: 0.5;
	}

	.site-header.nav-open .subnav-list a {
		min-height: 44px;
		padding: 0.5rem 0;
		display: inline-flex;
		align-items: center;
		font-size: 1rem;
		color: var(--color-dark);
		text-decoration: none;
	}
	.site-header.nav-open .subnav-list {
		list-style: none;
		padding: 0;
		margin: 0;
	}
}

/* --------------------------------------------------------------
   Nav polish v2 - consistent paddings, premium feel, ≤1199.98px
   Phones, small + large tablets share a dark blurry overlay with
   white type for premium contrast. Desktop keeps light glass.
   -------------------------------------------------------------- */
@media (max-width: 1199.98px) {

	/* Premium dark blur - almost full-black, deep & moody for max contrast */
	.site-header.nav-open {
		background:
			radial-gradient(ellipse at 50% -10%, rgba(120, 50, 40, 0.28) 0%, rgba(0, 0, 0, 0) 50%),
			linear-gradient(180deg, rgba(2, 1, 1, 0.99) 0%, rgba(6, 4, 4, 1) 100%);
		backdrop-filter: blur(40px) saturate(1.3);
		-webkit-backdrop-filter: blur(40px) saturate(1.3);
		color: #fff;
	}

	/* Consistent inner gutter for the entire overlay column */
	.site-header.nav-open .header-container {
		padding-left: 1.25rem;
		padding-right: 1.25rem;
		max-width: 720px;
	}

	/* Top bar inside overlay: logo on left, cart + close on right, fixed height */
	.site-header.nav-open .header-nav-bar {
		padding-top: 1rem !important;
		padding-bottom: 0.5rem;
		gap: 0.75rem;
	}

	/* Logo + cart + hamburger button all 44px to match the rest of the touch system */
	.site-header.nav-open .hamburger-btn,
	.site-header.nav-open .cart-bubble {
		width: 44px;
		height: 44px;
		min-width: 44px;
		min-height: 44px;
	}

	/* Logo slider in top bar should hug its content, not fill the 1fr grid cell */
	.site-header.nav-open .logo-slider,
	.site-header.nav-open .logo-bubble-wrap {
		width: auto !important;
		min-width: 0;
		justify-self: start;
	}

	.site-header.nav-open .header-right {
		gap: 0.6rem;
	}

	/* Drawer padding consistent with header - and breathing room at the bottom for safe-area */
	.site-header.nav-open .nav-drawer {
		padding: 0.75rem 0 calc(2rem + env(safe-area-inset-bottom, 0px));
		gap: 0.25rem;
	}

	/* --- Switcher pills (Vinárstvo / E-shop): two-up, full-width on phone --- */
	.site-header.nav-open .mobile-switcher {
		display: grid !important;
		grid-template-columns: 1fr 1fr;
		gap: 0.5rem;
		padding: 0.25rem 0 1rem;
		margin: 0;
		justify-content: stretch;
		width: 100%;
	}

	.site-header.nav-open .mobile-switcher__btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		/* Slimmer than the logo bubble so the pills feel like secondary nav,
		   not a second brand mark. */
		min-height: 36px;
		padding: 0.4rem 0.95rem !important;
		font-size: 0.82rem !important;
		font-family: var(--font-primary);
		font-weight: 500;
		letter-spacing: 0.02em;
		border-radius: 999px;
		background: rgba(255, 255, 255, 0.06) !important;
		color: rgba(255, 255, 255, 0.82) !important;
		box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14), 0 1px 4px rgba(0, 0, 0, 0.2) !important;
		text-decoration: none;
		transition: background 0.25s ease, box-shadow 0.25s ease, transform 0.18s ease, color 0.2s ease;
	}

	.site-header.nav-open .mobile-switcher__btn:active {
		transform: scale(0.98);
	}

	/* Active state: warm off-white tint instead of pure white so the active
	   pill reads as "selected" without shouting against the dark overlay. */
	.site-header.nav-open .header-container.subnav-visible .mobile-switcher__btn--vinarstvo,
	.site-header.nav-open .header-container.subnav-eshop-visible .mobile-switcher__btn--eshop,
	/* Fallback: Vinárstvo pill is active by default if no panel selected */
	.site-header.nav-open .header-container:not(.subnav-visible):not(.subnav-eshop-visible) .mobile-switcher__btn--vinarstvo {
		background: rgba(255, 255, 255, 0.88) !important;
		color: rgb(62, 39, 35) !important;
		box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.35), 0 3px 10px rgba(0, 0, 0, 0.22) !important;
	}

	/* --- Sub-panel layout: typography, spacing, separators --- */
	.site-header.nav-open .subnav-panel {
		padding: 0.25rem 0 1rem !important;
		min-height: 0 !important;
	}

	.site-header.nav-open .subnav-inner {
		flex-direction: column;
		gap: 1.25rem;
	}

	.site-header.nav-open .subnav-menus {
		gap: 1.5rem;
	}

	.site-header.nav-open .subnav-menu-block {
		margin: 0 !important;
		min-width: 0;
		padding: 0.25rem 0 0;
	}

	.site-header.nav-open .subnav-menu-block__title {
		font-family: var(--font-primary);
		font-size: 0.78rem;
		font-weight: 500;
		letter-spacing: 0.18em;
		text-transform: uppercase;
		color: rgba(255, 255, 255, 0.55) !important;
		margin: 0 0 0.5rem;
	}

	/* Thin gold underline accent under each section heading */
	.site-header.nav-open .subnav-separator {
		width: 36px;
		max-width: 36px;
		height: 2px;
		background: linear-gradient(90deg, rgba(212, 175, 110, 0.95), rgba(212, 175, 110, 0)) !important;
		background-image: linear-gradient(90deg, rgba(212, 175, 110, 0.95), rgba(212, 175, 110, 0)) !important;
		margin-bottom: 0.75rem;
		opacity: 1;
	}

	/* Subnav list: large readable items, generous tap targets, subtle hairline */
	.site-header.nav-open .subnav-list {
		display: flex;
		flex-direction: column;
		gap: 0;
	}

	.site-header.nav-open .subnav-list li {
		border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	}

	.site-header.nav-open .subnav-list li:last-child {
		border-bottom: 0;
	}

	.site-header.nav-open .subnav-list a {
		display: flex !important;
		align-items: center;
		min-height: 52px;
		padding: 0.85rem 0.25rem !important;
		font-family: var(--font-primary);
		font-size: 1.1rem;
		font-weight: 400;
		letter-spacing: 0.01em;
		color: rgba(255, 255, 255, 0.92) !important;
		text-decoration: none;
		transition: color 0.2s ease;
	}

	.site-header.nav-open .subnav-list a::after {
		display: none; /* Disable the desktop underline-on-hover effect on touch */
	}

	.site-header.nav-open .subnav-list a:hover,
	.site-header.nav-open .subnav-list a:focus-visible {
		color: #f7d99a !important;
	}

	/* Outline focus for keyboard users — anchors excluded by design */
	.site-header.nav-open .mobile-switcher__btn:focus-visible {
		outline: 2px solid rgba(247, 217, 154, 0.7);
		outline-offset: 3px;
		border-radius: 6px;
	}

	/* Hamburger close (X): white on dark for proper contrast */
	.site-header.nav-open .hamburger-line {
		background: #fff !important;
	}

	/* Italic "no menu" copy - softer on dark */
	.site-header.nav-open .subnav-no-menu,
	.site-header.nav-open .nav-no-menu {
		color: rgba(255, 255, 255, 0.55);
	}

	/* --- Photos: show ONLY the two captioned promo images (stack) --- */
	/* Hide plain image boxes everywhere on mobile/tablet */
	.site-header.nav-open .subnav-photos > .subnav-photo {
		display: none !important;
	}

	/* The captioned promo images (Nový ročník + Slamové víno) */
	.site-header.nav-open .subnav-photos {
		width: 100%;
		max-width: none;
		display: flex;
		flex-direction: column;
		gap: 0.75rem;
		margin-top: 0.5rem;
	}

	.site-header.nav-open .subnav-photos > .subnav-photo-stack {
		display: flex !important;
		flex-direction: column;
		gap: 0.75rem;
		width: 100% !important;
		max-width: none !important;
		aspect-ratio: auto;
	}

	.site-header.nav-open .subnav-photo-stack .subnav-photo {
		display: block !important;
		width: 100% !important;
		max-width: none !important;
		min-width: 0 !important;
		border-radius: 14px;
		overflow: hidden;
		aspect-ratio: 16 / 9;
		min-height: 120px;
		box-shadow: 0 6px 24px rgba(0, 0, 0, 0.35);
		position: relative;
		background: #1a1110;
	}

	/* Soft dark overlay so caption reads cleanly on any image */
	.site-header.nav-open .subnav-photo-stack .subnav-photo::before {
		content: '';
		position: absolute;
		inset: 0;
		z-index: 1;
		background: linear-gradient(180deg, rgba(0, 0, 0, 0) 30%, rgba(0, 0, 0, 0.65) 100%);
		pointer-events: none;
		transition: opacity 0.25s ease;
	}

	.site-header.nav-open .subnav-photo-stack .subnav-photo img {
		width: 100% !important;
		height: 100% !important;
		object-fit: cover !important;
		display: block !important;
	}

	.site-header.nav-open .subnav-photo-stack .subnav-photo__caption {
		inset: 0;
		align-items: center;
		justify-content: center;
		text-align: center;
		font-family: var(--font-primary);
		font-size: 1.15rem;
		font-weight: 400;
		line-height: 1.25;
		padding: 1rem;
		color: #fff;
		text-shadow: 0 2px 10px rgba(0, 0, 0, 0.7);
	}

	/* Smooth content slide-in for the panel content (not the whole drawer) */
	.site-header.nav-open .header-container.subnav-visible .subnav-panel-vinarstvo,
	.site-header.nav-open .header-container.subnav-eshop-visible .subnav-panel-eshop {
		animation: subnavFadeUp 0.32s cubic-bezier(0.4, 0, 0.2, 1) both;
	}

	@keyframes subnavFadeUp {
		from { opacity: 0; transform: translateY(6px); }
		to   { opacity: 1; transform: translateY(0); }
	}

	/* Remove the slide-from-right which feels harsh in a vertical overlay */
	.site-header.nav-open .nav-drawer {
		animation: navDrawerFadeIn 0.28s ease-out forwards !important;
	}

	@keyframes navDrawerFadeIn {
		from { opacity: 0; transform: translateY(4px); }
		to   { opacity: 1; transform: translateY(0); }
	}
}

/* --------------------------------------------------------------
   Tablet refinements (≥768px and ≤1199.98px)
   Wider gutter, inline switcher pills, multi-column menus.
   -------------------------------------------------------------- */
@media (min-width: 768px) and (max-width: 1199.98px) {

	.site-header.nav-open .header-container {
		padding-left: 2rem;
		padding-right: 2rem;
		max-width: 920px;
	}

	.site-header.nav-open .header-nav-bar {
		padding-top: 1.25rem !important;
	}

	/* Switcher: inline pills, left aligned (not full-width grid) */
	.site-header.nav-open .mobile-switcher {
		display: inline-flex !important;
		grid-template-columns: none;
		gap: 0.5rem;
		padding: 0.5rem 0 1.25rem;
		width: auto;
		justify-content: flex-start;
	}

	.site-header.nav-open .mobile-switcher__btn {
		min-width: 7rem;
		min-height: 38px;
		padding: 0.4rem 1.1rem !important;
		font-size: 0.88rem !important;
	}

	/* Subnav layout: menus stack first, photos below - full width */
	.site-header.nav-open .subnav-inner {
		display: flex;
		flex-direction: column;
		gap: 2rem;
	}

	/* Multi-column menu blocks: 2 cols at tablet width */
	.site-header.nav-open .subnav-menus {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
		gap: 2rem;
	}

	/* Photo stack: two-up horizontal grid at tablet */
	.site-header.nav-open .subnav-photos > .subnav-photo-stack {
		display: grid !important;
		grid-template-columns: 1fr 1fr;
		gap: 1rem;
	}

	.site-header.nav-open .subnav-photo-stack .subnav-photo {
		min-height: 170px;
		aspect-ratio: 4 / 3;
	}

	.site-header.nav-open .subnav-photo-stack .subnav-photo__caption {
		font-size: 1.2rem;
		padding: 1.1rem;
	}

	.site-header.nav-open .subnav-list a {
		font-size: 1.1rem;
		min-height: 54px;
	}

	.site-header.nav-open .subnav-menu-block__title {
		font-size: 0.85rem;
	}
}

/* Small phones: tighter scale */
@media (max-width: 480px) {
	.site-header.nav-open .header-container {
		padding-left: 1rem;
		padding-right: 1rem;
	}
	.site-header.nav-open .subnav-list a {
		font-size: 1rem;
		min-height: 48px;
		padding: 0.7rem 0.25rem !important;
	}
	.site-header.nav-open .subnav-photo-stack .subnav-photo {
		min-height: 110px;
		aspect-ratio: 16 / 9;
	}
	.site-header.nav-open .subnav-photo-stack .subnav-photo__caption {
		font-size: 1rem;
		padding: 0.8rem;
	}
}

.logo-bubble {
	background: linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.85) 100%);
	border-radius: 50px;
	padding: 0.7rem 2rem;
	box-shadow: 0 2px 15px rgba(0, 0, 0, 0.1);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	pointer-events: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: all 0.3s ease;
}

.logo-bubble:hover {
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

.logo-bubble img,
.logo-bubble .custom-logo-link,
.logo-bubble .custom-logo-link img {
	display: block;
	height: 45px;
	width: auto;
	max-height: 45px;
}

.navbar-logo {
	height: 50px;
	width: auto;
	transition: opacity 0.3s ease;
	display: block;
	transform: scale(0.95);
}



.navbar-nav .nav-link {
	color: rgba(255, 255, 255, 0.9) !important;
	font-weight: 400;
	letter-spacing: 0.5px;
	padding: 0.5rem 1rem !important;
	position: relative;
	display: inline-block;
}

.site-header.scrolled .navbar-nav .nav-link {
	color: var(--color-dark) !important;
}

.navbar-nav .nav-link::after {
	content: '';
	position: absolute;
	bottom: 2px;
	left: 0;
	width: 0;
	height: 2px;
	background: var(--color-gold);
	transition: width 0.45s ease;
}

.navbar-nav .nav-link:hover::after,
.navbar-nav .nav-link.active::after {
	width: 100%;
}

.navbar-toggler {
	padding: 0.25rem 0.5rem;
}

.navbar-toggler-icon {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.9%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.site-header.scrolled .navbar-toggler-icon {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

figure.product-bottles{
	margin: 7em 0 6em;
}

/*--------------------------------------------------------------
# Hero Section
--------------------------------------------------------------*/
.hero-section {
	min-height: 90vh;
	overflow: hidden;
	margin-top: -80px; /* Offset fixed header */
	padding-top: 80px; /* Restore space for header */
	position: relative;
}

/* Row inside .hero-section .hero-content - replaces former inline style="min-height:1000px" on front-page.php. */
.hero-content__row {
	min-height: var(--zr-hero-row-min-height);
}

.hero-background {
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 0;
	overflow: hidden;
}

.hero-background-img {
	width: 100%;
	height: 100%;
	/* AVIF first (smallest), WebP fallback. Plain url() is the last-ditch
	   fallback for browsers without image-set support. PNG kept on disk as backup. */
	background-image: url('../img/frontpage-hero-bg.webp');
	background-image: -webkit-image-set(
		url('../img/frontpage-hero-bg.avif') type('image/avif'),
		url('../img/frontpage-hero-bg.webp') type('image/webp')
	);
	background-image: image-set(
		url('../img/frontpage-hero-bg.avif') type('image/avif'),
		url('../img/frontpage-hero-bg.webp') type('image/webp')
	);
	background-size: 100%;
	background-position: top;
	background-repeat: no-repeat;
}

@media (max-width: 1749.98px) {
	.hero-background-img {
		background-size: 1800px;
	}
}

.hero-overlay {
	/* background: linear-gradient(to bottom, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0.3) 100%); */
	z-index: 1;
	top: 0;
	left: 0;
}

/* Overlay: 100% width div with background image starting from top of div.
   z-index 5 puts it ABOVE .hero-content (z-index 4) so the image covers part
   of the hero letters on desktop. On tablet/mobile it is lowered back to 3
   (see the max-width: 991.98px block) so it does not paint over the headline. */
.hero-image-overlay {
	top: 0px;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 5;
	overflow: hidden;
}

.hero-image-overlay-img {
	width: 100%;
	height: 100%;
	/* Desktop overlay (moved here from an inline style on front-page.php).
	   AVIF first, WebP fallback. The phone breakpoint swaps in the mobile variant. */
	background-image: url('../img/frontpage/hero-image-overlay.webp');
	background-image: -webkit-image-set(
		url('../img/frontpage/hero-image-overlay.avif') type('image/avif'),
		url('../img/frontpage/hero-image-overlay.webp') type('image/webp')
	);
	background-image: image-set(
		url('../img/frontpage/hero-image-overlay.avif') type('image/avif'),
		url('../img/frontpage/hero-image-overlay.webp') type('image/webp')
	);
	background-size: 100%;
	background-position: top;
	background-repeat: no-repeat;
}

@media (max-width: 1749.98px) {
	.hero-image-overlay-img {
		background-size: 1800px;
	}
}

.hero-content {
	/* Above the decorative .hero-image-overlay (z-index 3). On mobile that overlay
	   is shifted with background-position: center 50% and was painting over the
	   headline, which is the real cause of the "hero text not showing on mobile"
	   bug. The headline must always be the topmost hero layer. */
	z-index: 4;
}

#products-heading{
	/* Fluid: the #id beats the .display-4 breakpoint, so size it responsively here. */
	font-size: clamp(2.25rem, 6vw, 5rem);
	color:#000;
}

/* Section separators: empty divs, background image repeat-x. Add .sep-top / .sep-bottom to any section. */
.sep-top,
.sep-bottom {
	width: 100%;
	height: 60px;
	min-height: 60px;
	background-image: url('../img/paint-split-white.png');
	background-image: -webkit-image-set(url('../img/paint-split-white.avif') type('image/avif'), url('../img/paint-split-white.webp') type('image/webp'), url('../img/paint-split-white.png') type('image/png'));
	background-image: image-set(url('../img/paint-split-white.avif') type('image/avif'), url('../img/paint-split-white.webp') type('image/webp'), url('../img/paint-split-white.png') type('image/png'));
	background-repeat: repeat-x;
	background-position: center top;
	pointer-events: none;
	background-color: transparent;
}

.sep-top--reverse{
	background-image: url('../img/paint-split-white-top.png');
	background-image: -webkit-image-set(url('../img/paint-split-white-top.avif') type('image/avif'), url('../img/paint-split-white-top.webp') type('image/webp'), url('../img/paint-split-white-top.png') type('image/png'));
	background-image: image-set(url('../img/paint-split-white-top.avif') type('image/avif'), url('../img/paint-split-white-top.webp') type('image/webp'), url('../img/paint-split-white-top.png') type('image/png'));
	background-color: transparent;
	min-height: 100px;
}

.sep-top--papyrus {
	background-image: url('../img/sep-papyrus.png');
	background-image: -webkit-image-set(url('../img/sep-papyrus.avif') type('image/avif'), url('../img/sep-papyrus.webp') type('image/webp'), url('../img/sep-papyrus.png') type('image/png'));
	background-image: image-set(url('../img/sep-papyrus.avif') type('image/avif'), url('../img/sep-papyrus.webp') type('image/webp'), url('../img/sep-papyrus.png') type('image/png'));
	background-color: transparent;
}

footer .sep-bottom {
	margin-top: -40px;
	filter: drop-shadow(0 36px 15px rgb(0, 0, 0, 1));
}

/* Retina: use 2x image and scale down for crisp rendering */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
	.sep-top,
	.sep-bottom {
		background-size: 1901px 60px;
	}
	.sep-top--beige {
		background-image: url('../img/paint-split-beige.png');
		background-image: -webkit-image-set(url('../img/paint-split-beige.avif') type('image/avif'), url('../img/paint-split-beige.webp') type('image/webp'), url('../img/paint-split-beige.png') type('image/png'));
		background-image: image-set(url('../img/paint-split-beige.avif') type('image/avif'), url('../img/paint-split-beige.webp') type('image/webp'), url('../img/paint-split-beige.png') type('image/png'));
		background-size: 1901px 60px;
	}
}

.sep-bottom {
	transform: scaleY(-1);
}

/* Wave divider (shop/archive): smooth wave instead of paint-split */
.sep-wave {
	height: 80px;
	min-height: 80px;
	background-image: url('../img/wave.svg');
	background-repeat: repeat-x;
	background-size: 1200px 80px;
	background-position: center bottom;
	background-color: transparent;
}
.sep-wave--reverse {
	transform: scaleY(-1);
}

.intro-section-body {
	background: #ffffff;
	padding: 23px 0 0;
}

.hero-title {
	font-family: var(--font-primary);
	font-optical-sizing: auto;
	font-weight: 300;
	font-size: clamp(2.5rem, 8vw, 6rem);
	text-shadow: 2px 2px 10px rgba(0, 0, 0, 0.5);
	/* Always visible. The entrance animates transform only (never opacity), so a
	   browser that parks the animation at its start - backgrounded tab, bfcache
	   restore, some mobile browsers - can never leave the headline invisible.
	   This is the fix for the "hero text not showing on mobile" report. */
	opacity: 1;
	animation: heroTitleRise 1s ease-out both, heroTitleFloat 4s ease-in-out 1s infinite;
	margin-top: -171px;
}

@keyframes heroTitleRise {
	from { transform: translateY(30px); }
	to   { transform: translateY(0); }
}

/* If motion is reduced, skip the entrance/float entirely but keep the title visible. */
@media (prefers-reduced-motion: reduce) {
	.hero-title {
		animation: none;
		opacity: 1;
		transform: none;
	}
}

.single-post .hero-title {
	font-size: 5em;
	/* The front-page hero pulls the title up with margin-top: -171px (and the
	   smaller mobile offsets) to sit it among the floating bottle layout. The
	   single-post hero has no such layout, so that pull just breaks the vertical
	   centering done by .row.align-items-center on the 70vh row. Reset it. */
	margin-top: 0;
}

@keyframes fadeInUp {
	from {
		opacity: 0;
		transform: translateY(30px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes heroTitleFloat {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-6px); }
}

/*--------------------------------------------------------------
# Introduction Section
--------------------------------------------------------------*/
.intro-section {
	margin-top: -55px;
	position: relative;
	z-index: 3;
}

.horn-separator {
	display: inline-block;
}

/* Front page only – unique class so other .intro-text (single, page, archive) can be styled separately */
.front-intro-text {
	font-size: 1.125rem;
	line-height: 2.5rem;
	margin-top: 2rem;
}

.intro-text {
	font-size: 1.125rem;
	line-height: 1.65;
	margin-top: 0;
}

/*--------------------------------------------------------------
# Single Post (Article)
--------------------------------------------------------------*/
/* Hero: full-width featured image like front page */
.single-hero {
	margin-top: -80px;
	padding-top: 80px;
}

#article-heading{
	text-align: center;
	font-size: 3rem;
	font-weight: 400;
	letter-spacing: 0.5px;
	margin-bottom: 2rem;
}

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

.single-hero-overlay {
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1;
	background: linear-gradient( to bottom, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.5) 100% );
}

.single-hero .hero-content {
	z-index: 2;
}

/* Article body: narrow column, intro-text style */
.single .entry-body-narrow {
	max-width: 42rem;
	margin-left: auto;
	margin-right: auto;
}

.single .entry-content.intro-text {
	margin-top: 0;
}

/* Inline images inside paragraphs (classic / pasted markup) */
body.single-post .entry-content p img {
	margin-top: 2em;
	margin-bottom: 2em;
	border-radius: 10px;
}

.single .entry-meta-bottom {
	text-align: center;
}

/*--------------------------------------------------------------
# Single Post – Author Box
--------------------------------------------------------------*/
.zr-author-box-wrap {
	max-width: 42rem;
	margin-left: auto;
	margin-right: auto;
}

.zr-author-box {
	display: flex;
	align-items: center;
	gap: 1.75rem;
	padding: 2rem 2.25rem;
	background: #ffffff;
	border-radius: 20px;
	margin-bottom: 3rem;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}

.zr-author-box__avatar-link {
	flex-shrink: 0;
	display: block;
	line-height: 0;
}

.zr-author-box__avatar {
	width: 96px;
	height: 96px;
	border-radius: 50%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.zr-author-box__avatar-link:hover .zr-author-box__avatar {
	transform: scale(1.03);
}

.zr-author-box__content {
	flex: 1;
	min-width: 0;
}

.zr-author-box__label {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: var(--color-gold-dark);
	margin: 0 0 0.35rem;
	font-weight: 500;
}

.zr-author-box__name {
	font-family: var(--font-primary);
	font-size: 1.5rem;
	font-weight: 400;
	margin: 0 0 0.6rem;
	letter-spacing: 0.02em;
	line-height: 1.3;
}

.zr-author-box__name-link {
	color: var(--color-dark);
	text-decoration: none;
	transition: color 0.2s ease;
}

.zr-author-box__name-link:hover {
	color: var(--color-gold-dark);
}

.zr-author-box__bio {
	font-size: 0.95rem;
	line-height: 1.65;
	color: #555;
}

.zr-author-box__bio p {
	margin: 0 0 0.5em;
}

.zr-author-box__bio p:last-child {
	margin-bottom: 0;
}

@media (max-width: 575.98px) {
	.zr-author-box {
		flex-direction: column;
		align-items: center;
		text-align: center;
		padding: 2rem 1.5rem;
	}

	.zr-author-box__avatar {
		width: 88px;
		height: 88px;
	}
}

/*--------------------------------------------------------------
# Default Page (same typography as blog article)
--------------------------------------------------------------*/
.page .entry-header {
	text-align: center;
}

.page .entry-body-narrow,
.archive .entry-body-narrow,
.blog .entry-body-narrow,
.error404 .entry-body-narrow,
.search-results .entry-body-narrow {
	max-width: 42rem;
	margin-left: auto;
	margin-right: auto;
}

.page .entry-content.intro-text,
.error404 .page-content.intro-text,
.search-results .page-content.intro-text,
.archive .archive-description.intro-text,
.no-results .page-content.intro-text {
	margin-top: 0;
}

/* 404 page: extra vertical breathing room */
.error404 .site-main > .container {
	padding-top: 6rem;
	padding-bottom: 6rem;
}

.error404 .error-404 .page-header {
	margin-bottom: 3rem;
}

.error404 .error-404 .page-content {
	margin-bottom: 5rem;
}

@media (max-width: 768px) {
	.error404 .site-main > .container {
		padding-top: 3.5rem;
		padding-bottom: 3.5rem;
	}

	.error404 .error-404 .page-header {
		margin-bottom: 2rem;
	}

	.error404 .error-404 .page-content {
		margin-bottom: 3rem;
	}
}

/* Front page: keep uls without bullets (current look) */
.home .page .entry-content ul {
	list-style: none;
}

/* Regular pages: bullets and normal margin */
.page .entry-content ul {
	list-style: disc;
	padding-left: 1.5em;
	margin-left: 0;
}

.page .entry-content ol {
	list-style: decimal;
	padding-left: 1.5em;
}

/*--------------------------------------------------------------
# Features Section
--------------------------------------------------------------*/
.features-section {
	background: #fff;
	padding: 5rem 0 0;
}

.feature-card {
	padding: 2rem;
}


.feature-card h2 {
	font-size: 2rem;
	min-height: 3.2em;
	display: flex;
	align-items: center;
	justify-content: center;
}

.hexagon-icon {
	display: inline-block;
}

.feature-icon-img {
	height: 220px;
	width: auto;
	max-width: 100%;
	display: block;
	margin: 0 auto;
}

.feature-card h3 {
	font-family: var(--font-primary);
	font-optical-sizing: auto;
	font-weight: 500;
	font-size: 1.9rem;
	color: var(--color-brown-dark);
	margin-top: 1rem;
}

.feature-card .text-muted {
	font-size: 1.25rem;
	padding: 1rem 1.3rem 0;
	line-height: 2.5rem;
}

/*--------------------------------------------------------------
# Gallery Section
--------------------------------------------------------------*/
.gallery-section {
	padding: 5rem 0;
	background: #ffffff;
}
.gallery-section .row {
	--bs-gutter-x: 1.5rem;
	--bs-gutter-y: 1.5rem;
}

.gallery-item {
	position: relative;
	overflow: hidden;
	border-radius: 18px;
}

.gallery-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 18px;
}

/* <picture> wrappers (AVIF/WebP fallback) must not affect layout: the inner
   <img> keeps all sizing/classes, the picture box disappears from the tree. */
picture.zr-pic {
	display: contents;
}

.gallery-placeholder {
	min-height: 250px;
	aspect-ratio: 4 / 3;
}

/*--------------------------------------------------------------
# Philosophy Section
--------------------------------------------------------------*/
.philosophy-section {
	background: #ffffff;
	padding: 0 0 8rem;
}

.philosophy-inner {
	position: relative;
	max-width: 1320px;
	margin: 0 auto;
	padding: 2em 1rem 2em 0;
	/* Tall enough to give the floating bottle whitespace beneath it
	   before the section's torn-edge separator. */
	min-height: 1025px;

}

.philosophy-content {
	position: relative;
	z-index: 2;
	max-width: 80%;
	padding-left: 2rem;
}

.philosophy-heading {
	font-family: var(--font-primary);
	font-weight: 100; /* was 10 (invalid - clamped unpredictably across browsers); 100 = hairline */
	font-size: 5.70rem;
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: var(--color-dark);
	margin-bottom: 1.5rem;
}

.philosophy-text {
	margin-top: 1em;
	margin-bottom: 2.5em;
	max-width: 440px;
}

.philosophy-text p {
	margin-bottom: 1rem;
}

.philosophy-bottle {
	position: absolute;
	/* Anchored higher (was 60%) so the bottle's bottom edge sits
	   well above the section's torn-edge sep strip. */
	top: 50%;
	right: 2%;
	transform: translateY(-50%);
	width: 55%;
	max-width: 460px;
	margin: 0;
	z-index: 1;
	pointer-events: none;
}

.philosophy-bottle-img {
	transform: rotate(-12deg);
	transition: transform 0.5s ease;
	width: 100%;
	height: auto;
	object-fit: contain;
	display: block;
}

.philosophy-bottle-canvas {
	/* Canvas needs an explicit aspect ratio so width:100% can compute a height. */
	aspect-ratio: 664 / 1456;
	max-width: 100%;
	background: transparent;
	/* No rotation - frames already contain the bottle in its intended pose. */
	transform: translateY(0);
	transition: none;
	/* Hint the browser this element will be animated/painted often. */
	will-change: contents, transform;
	/* Levitation EXACTLY matches the hero title (.hero-title) animation:
	   heroTitleFloat 4s ease-in-out 1s infinite — translateY 0 → -6px. */
	animation: zr-bottle-levitate 4s ease-in-out 1s infinite;
}

.philosophy-bottle:hover .philosophy-bottle-canvas {
	/* Keep the levitation on hover; just suppress the rotate/scale used on the static img. */
	animation: zr-bottle-levitate 4s ease-in-out 1s infinite;
}

.philosophy-bottle:hover .philosophy-bottle-img:not(.philosophy-bottle-canvas) {
	transform: rotate(-10deg) scale(1.02);
}

/* Apply the same gentle levitation to the static <img> fallback (composed with its rotation). */
.philosophy-bottle-img:not(.philosophy-bottle-canvas) {
	animation: zr-bottle-levitate-rotated 4s ease-in-out 1s infinite;
}

/* Same timing as the hero title's `heroTitleFloat`, but with a slightly
   larger vertical amplitude so the bottle's float is more visible. */
@keyframes zr-bottle-levitate {
	0%, 100% { transform: translateY(0); }
	50%      { transform: translateY(-14px); }
}

@keyframes zr-bottle-levitate-rotated {
	0%, 100% { transform: rotate(-12deg) translateY(0); }
	50%      { transform: rotate(-12deg) translateY(-14px); }
}

@media (prefers-reduced-motion: reduce) {
	.philosophy-bottle-canvas,
	.philosophy-bottle-img:not(.philosophy-bottle-canvas) {
		animation: none;
	}
}

/*--------------------------------------------------------------
# Product Showcase Section
--------------------------------------------------------------*/
.product-showcase-section {
	padding: 6rem 0;
	position: relative;
	overflow: hidden;
	background: #e2d1c0;
}

/* Scoped override: Bootstrap's default .text-muted (#6c757d) hits 3.15:1 on the
   #e2d1c0 beige here, failing AA for body text. Brand earth tone gives 6.03:1
   and is warmer than the cool default. */
.product-showcase-section .text-muted {
	color: var(--color-earth) !important;
}


.product-bottles-img {

}

.product-bottles:hover .product-bottles-img {

}

/*--------------------------------------------------------------
# History Section
--------------------------------------------------------------*/
.history-section {
	background: #ffffff;
	margin-top: 3rem;
}

.history-img,
.landscape-img {
	transition: transform 0.5s ease, box-shadow 0.5s ease;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

/* History row: unified image (all 3 columns) */
.history-section__image {
	aspect-ratio: 2 / 1;
	overflow: hidden;
	border-radius: 12px;
	margin: 0 0 1rem;
}

.history-section__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
	transition: transform 0.5s ease, box-shadow 0.5s ease;
}

.history-section__image--historia-static {
	margin-bottom: 1.38em;
}

.history-section__image-link {
	display: block;
	text-decoration: none;
	color: inherit;
}

/* No hover effect whatsoever on the history cover images */
.history-section__image-link:hover .history-section__img {
	transform: none;
}

/* Only the full-width landscape (historia-landscape.webp): cover, landscape on desktop, 3/4 on mobile */
.history-section .landscape-image {
	position: relative;
	overflow: hidden;
	border-radius: 12px;
	width: 100%;
	aspect-ratio: 28 / 9;
	display: block;
}

.history-section .landscape-image .landscape-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
	display: block;
	transition: transform 0.5s ease, box-shadow 0.5s ease;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

@media (max-width: 767.98px) {
	.history-section .landscape-image {
		aspect-ratio: 4 / 3;
	}
}

/* Scroll-driven landscape video stage */
.zr-landscape-scroll {
	position: relative;
	width: 100%;
}

.zr-landscape-sticky {
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	overflow: hidden;
}

.zr-landscape-stage {
	position: relative;
	overflow: hidden;
	border-radius: 15px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
	will-change: width, height, border-radius;
	transform: translateZ(0);
	background: #000;
	width: min(100% - 2rem, 1140px);
	aspect-ratio: 28 / 11;
}

.zr-landscape-video,
.zr-landscape-fallback {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	display: block;
}

/* Static landscape photo. Hidden on desktop (the canvas animates there),
   shown on phones and reduced-motion where the animation is skipped, so the
   section never falls back to the black .zr-landscape-stage placeholder. */
.zr-landscape-still {
	display: none;
}

@media (min-width: 768px) {
	.zr-landscape-scroll {
		height: 220vh;
	}
	.zr-landscape-sticky {
		position: sticky;
		top: 0;
		height: 100vh;
	}
}

@media (max-width: 767.98px) {
	.zr-landscape-stage {
		width: calc(100% - 2rem) !important;
		height: auto !important;
		aspect-ratio: 4 / 3;
		margin: 0 auto;
	}
	/* Phone: drop the animated canvas, show the static photo. */
	.zr-landscape-canvas {
		display: none !important;
	}
	.zr-landscape-still {
		display: block;
	}
}

@media (prefers-reduced-motion: reduce) {
	.zr-landscape-scroll {
		height: auto !important;
	}
	.zr-landscape-sticky {
		position: relative !important;
		height: auto !important;
	}
	.zr-landscape-stage {
		width: 100% !important;
		height: auto !important;
		aspect-ratio: 28 / 11;
		max-width: 1140px;
		margin: 0 auto;
	}
	/* Reduced-motion: the canvas never animates, show the static photo. */
	.zr-landscape-canvas {
		display: none !important;
	}
	.zr-landscape-still {
		display: block;
	}
}

.history-placeholder,
.landscape-placeholder {
	min-height: 300px;
}

/* History section: unified title (Novinky + História) */
.history-section .history-section__title {
	font-family: var(--font-primary);
	font-weight: 300;
	font-size: clamp(2rem, 3.5vw, 2.5rem);
	line-height: 1.25;
	color: var(--color-dark);
	text-align: left;
}

/* History section: card + link styles (column 1) */
.history-section__card {
	margin: 0;
}

.history-section__link {
	display: block;
	text-decoration: none;
	color: inherit;
	transition: color 0.2s ease;
}

.history-section__link:hover {
	color: inherit;
}

.history-section__heading {
	font-family: var(--font-primary);
	font-size: 1.25rem;
	font-weight: 400;
	line-height: 1.6em !important;
	color: var(--color-dark);
	margin: 0 0 0.5rem;
	letter-spacing: 0.02em;
}

.history-section__link:hover .history-section__heading {
	color: var(--color-gold-dark);
}

.history-section__excerpt {
	font-size: 1rem;
	line-height: 2em !important;
	color: #555;
	margin: 0 0 0.75rem;
}

.history-section p{
	line-height: 2em !important;
}

.history-section__all {
	margin-top: 20px;
}

.history-section__history-cta {
	margin-top: 10px !important;
}

/* Equal-height columns so the "Všetky novinky" and "Preskúmajte históriu"
   buttons line up at the bottom of each section (desktop only) */
@media (min-width: 768px) {
	.history-section .row.align-items-start {
		align-items: stretch !important;
	}

	/* News column (col-md-4): full-height flex column */
	.history-section .row.align-items-start > .col-md-4 {
		display: flex;
		flex-direction: column;
	}

	.history-section .row.align-items-start > .col-md-4 > .history-section__card {
		height: 100%;
		display: flex;
		flex-direction: column;
	}

	/* History column (col-md-8): title on top, card row fills remaining height */
	.history-section .row.align-items-start > .col-md-8 {
		display: flex;
		flex-direction: column;
	}

	.history-section .row.align-items-start > .col-md-8 > .row {
		flex: 1 1 auto;
	}

	.history-section .row.align-items-start > .col-md-8 > .row > .history-section__card {
		height: 100%;
		display: flex;
		flex-direction: column;
	}

	/* Push both CTAs to the bottom while keeping their natural pill width */
	.history-section__all,
	.history-section__history-cta {
		margin-top: auto !important;
		align-self: flex-start;
	}
}

/*--------------------------------------------------------------
# Footer Illustration Section
--------------------------------------------------------------*/
.footer-illustration-section {
	padding: 0;
	background-image: url('../img/paperbg.jpg');
	background-image: -webkit-image-set(url('../img/paperbg.avif') type('image/avif'), url('../img/paperbg.webp') type('image/webp'), url('../img/paperbg.jpg') type('image/jpeg'));
	background-image: image-set(url('../img/paperbg.avif') type('image/avif'), url('../img/paperbg.webp') type('image/webp'), url('../img/paperbg.jpg') type('image/jpeg'));
	background-repeat: repeat;
	background-size: 100% auto;
	background-color: #f5f2ed;
}

footer a{
	color: #aaa;
}

.footer-illustration img {
	width: 100%;
	height: auto;
	display: block;
}

/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/
.site-footer {
	position: relative;
}

footer .container{
	padding-top: 54px;
}

.footer-content {
	background: url('../img/footer-bg.webp') repeat-x;
	background-size: 50% auto;
	padding: 4rem 0;
	background-color: #151812;
}

@media (max-width: 1899.98px) {
	.footer-content {
		background-size: 1000px auto;
		background-position: center top;
	}
}

.footer-heading {
	font-family: var(--font-primary);
	font-optical-sizing: auto;
	font-weight: 400;
	letter-spacing: 0.5px;
	font-size: 1.25rem;
}

.footer-separator {
	width: 100%;
	max-width: 30px;
	height: 15px;
	background: url('../img/underline-white.webp') no-repeat left center;
	background-size: 100% auto;
	margin-bottom: 1rem;
	margin-top: 12px;
}

.footer-links {
	margin-top: 0.5rem;
	margin-left: 0;
}

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

.footer-links a {
	font-family: var(--font-secondary);
	font-size: 0.95rem;
	transition: all 0.3s ease;
}

.footer-links a:hover {
	color: var(--color-gold) !important;
	text-decoration: underline !important;
}

.footer-content address {
	font-family: var(--font-secondary);
	font-size: 0.95rem;
	line-height: 1.65;
	font-style: normal;
}

.footer-location-icon {
	margin-top: 0.5rem;
}

.footer-bottom {
	background: transparent;
}

.footer-legal-links {
	font-family: var(--font-secondary);
	font-size: 0.75rem;
	color: rgba(255, 255, 255, 0.6);
}

.footer-legal-links a {
	color: rgba(255, 255, 255, 0.6);
	transition: all 0.3s ease;
}

.footer-legal-links a:hover {
	color: rgba(255, 255, 255, 0.9);
}

.footer-logo-main {
	display: inline-block;
	margin-top: 1rem;
}

.footer-logo-img {
	height: 40px;
	width: auto;
	max-width: 100%;
	display: block;
	margin: 0 auto;
}

.entry-footer .edit-link {
	display: none;
}

/*--------------------------------------------------------------
# ZR Footer (5 columns + bottom bar)
--------------------------------------------------------------*/
.zr-footer .sep-bottom {
	margin-bottom: 0;
}

/* Whole footer: single bg so content + bottom bar share the texture */
.zr-footer {
	background-color: #2a1e14;
	background-image: url('../img/footer-bg.webp');
	background-repeat: repeat-x;
	background-size: 100% auto;
}

.show-password-input{
	display: none;
}

@media (min-resolution: 1.5dppx) {
	.zr-footer {
		background-size: 100% auto;
		background-position: center top;
	}
}

@media (max-width: 767px) {
	.zr-footer {
		background-size: 250% auto;
	}
}

.zr-footer__content {
	padding: 7rem 0 1rem;
}

.zr-footer__inner {
	max-width: 1320px;
	margin: 0 auto;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}

.zr-footer__grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 2.5rem 2rem;
	align-items: start;
}

.zr-footer__col {
	min-width: 0;
}

.zr-footer__heading {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: 1.1rem;
	letter-spacing: 0.04em;
	color: rgba(255, 255, 255, 0.95);
	margin: 0;
}

.zr-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
}

.zr-footer__links li {
	margin-bottom: 0.5rem;
}

.zr-footer__links a {
	display: inline-block;
	font-family: var(--font-secondary);
	font-size: 0.9rem;
	color: rgba(255, 255, 255, 0.78);
	text-decoration: none;
	transition: color 0.25s ease;
}

.zr-footer__links a:hover {
	color: #fff;
	text-decoration: underline;
}

.zr-footer__social {
	display: flex;
	gap: 1rem;
	margin-top: 1.25rem;
}

.zr-footer__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: rgba(255, 255, 255, 0.75);
	transition: color 0.25s ease;
}

.zr-footer__social-link:hover {
	color: #fff;
}

/* Contact email – match the footer link font, size and colour */
.zr-footer__contact {
	margin: 1rem 0 0;
}

.zr-footer__contact .zr-footer__link {
	display: inline-block;
	font-family: var(--font-secondary);
	font-size: 0.9rem;
	color: rgba(255, 255, 255, 0.78);
	text-decoration: none;
	transition: color 0.25s ease;
}

.zr-footer__contact .zr-footer__link:hover {
	color: #fff;
	text-decoration: underline;
}

/* Address column – same color as footer links */
.zr-footer__address {
	font-family: var(--font-secondary);
	font-size: 0.95rem;
	font-style: normal;
	line-height: 2.15em;
	color: rgba(255, 255, 255, 0.78);
	margin: 0;
}

.zr-footer__address span[itemprop] {
	display: block;
}

.zr-footer__address-icon {
	display: block;
	margin-top: 0.75rem;
	color: rgba(255, 255, 255, 0.78);
}

.zr-footer__address-icon svg {
	display: block;
}

/* Bottom bar */
.zr-footer__bottom {
	/*	border-top: 1px solid rgba(255, 255, 255, 0.06); */
	padding: 2.5rem 0;
}

.zr-footer__bottom-inner {
	max-width: 1320px;
	margin: 0 auto;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 1.75rem;
	align-items: center;
	text-align: center;
}

.zr-footer__eshop-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.75rem 1.25rem;
}

.zr-footer__eshop-list a {
	font-family: var(--font-secondary);
	font-size: 0.9rem;
	color: rgba(255, 255, 255, 0.7);
	text-decoration: none;
	transition: color 0.25s ease;
}

.zr-footer__eshop-list a:hover {
	color: #fff;
	text-decoration: underline;
}

.zr-footer__lang {
	font-family: var(--font-secondary);
	font-size: 0.9rem;
	color: rgba(255, 255, 255, 0.7);
}

.zr-footer__lang-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.75rem 1rem;
}

/* Language switcher: active language stays underlined, others underline on hover. */
.zr-footer__lang-list .zr-footer__link {
	text-decoration: none;
}

.zr-footer__lang-list .zr-footer__link:hover,
.zr-footer__lang-list .zr-footer__link:focus-visible {
	text-decoration: underline;
}

.zr-footer__lang-list .zr-footer__link[aria-current="true"] {
	text-decoration: underline;
}

.zr-footer__lang-label {
	display: inline-block;
}

.zr-footer__brand-copy {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.25rem;
	flex-wrap: wrap;
}

.zr-footer__logo-link {
	display: block;
}

.zr-footer__logo-img {
	height: 36px;
	width: auto;
	max-width: 120px;
	display: block;
}

.zr-footer__copyright {
	font-family: var(--font-secondary);
	font-size: 0.85rem;
	color: rgba(255, 255, 255, 0.6);
}

.zr-footer__legal {
	font-family: var(--font-secondary);
	font-size: 0.8rem;
	color: rgba(255, 255, 255, 0.6);
}

.zr-footer__legal .zr-footer__link {
	color: rgba(255, 255, 255, 0.6);
	text-decoration: none;
	transition: color 0.25s ease;
}

.zr-footer__legal .zr-footer__link:hover {
	color: #fff;
	text-decoration: underline;
}

.zr-footer__legal-sep {
	margin: 0 0.5rem;
	opacity: 0.6;
	user-select: none;
}

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

@media (max-width: 991px) {
	.zr-footer__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 575px) {
	.zr-footer__content {
		padding: 3rem 0 2rem;
	}

	.zr-footer__grid {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	.zr-footer__bottom {
		padding: 2rem 0;
	}

	.zr-footer__bottom-inner {
		gap: 1.5rem;
	}
}

/*--------------------------------------------------------------
# Buttons
--------------------------------------------------------------*/
/* Base: all buttons pill-shaped */
.btn,
button:not(.hamburger-btn),
input[type="button"],
input[type="submit"],
input[type="reset"],
.woocommerce .button,
.woocommerce a.button {
	border-radius: 9999px !important;
	font-family: var(--font-button);
	font-optical-sizing: auto;
	outline: none;
	transition: all 0.3s ease;
}

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.75rem 2.5rem;
	min-height: 48px; /* Pixel-perfect canonical pill height for the whole site */
	font-size: 1rem;
	font-weight: 500; /* Canonical pill button weight - applies to all .btn variants */
	letter-spacing: 0.02em;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	border: none;
	line-height: 1.5;
	box-sizing: border-box;
}

.btn:hover {
	text-decoration: none;
}

/* Size modifiers – same height as base .btn, only horizontal padding differs */
.btn-lg {
	padding: 0.75rem 2.75rem;
	font-size: inherit;
}

.btn-sm {
	padding: 0.4rem 1.25rem;
	min-height: 36px; /* Smaller pill, kept consistent across uses */
	font-size: 0.85rem;
}

.btn-block {
	display: block;
	width: 100%;
}

/* Spacing utility */
.px-5 {
	padding-left: 3rem;
	padding-right: 3rem;
}

/* Color modifiers – use .btn .btn-primary, .btn-secondary, etc. */
.btn-primary,
.woocommerce .button,
.woocommerce a.button {
	border: none;
	font-weight: 400;
}

.btn-primary:hover,
.woocommerce .button:hover,
.woocommerce a.button:hover {
	color: white;
}

.btn-secondary {
	background: var(--color-brown);
	border: none;
	color: white;
}

.btn-secondary:hover {
	background: var(--color-brown-dark);
	color: white;
}

.btn-outline-primary {
	background: transparent;
	border: 2px solid var(--color-gold);
	color: var(--color-gold);
	padding: calc(0.75rem - 2px) calc(2.5rem - 2px);
}

.btn-outline-primary:hover {
	background: var(--color-gold);
	color: white;
	border-color: var(--color-gold);
}

.btn-outline-secondary {
	background: transparent;
	border: 2px solid var(--color-brown);
	color: var(--color-brown);
	padding: calc(0.75rem - 2px) calc(2.5rem - 2px);
}

.btn-outline-secondary:hover {
	background: var(--color-brown);
	color: white;
	border-color: var(--color-brown);
}

/* Brand color buttons – shared base */
.btn--gold,
.btn--gold-pastel,
.btn--red,
.btn--burgundy,
.btn--olive,
.btn--terracotta,
.btn--dark,
.btn--violet,
.btn--gray {
	position: relative;
	overflow: hidden;
	border: none;
	/* font-weight inherited from .btn (500) - keeps every brand pill identical */
	letter-spacing: 0.3px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
	white-space: nowrap;
}

/* Fill overlay: same size as button, animated on active (click) only */
.btn--gold::before,
.btn--gold-pastel::before,
.btn--red::before,
.btn--burgundy::before,
.btn--olive::before,
.btn--terracotta::before,
.btn--dark::before,
.btn--violet::before,
.btn--gray::before,
.zr-sp-summary .single_add_to_cart_button::before,
.zr-sp-summary button.button.alt::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background-image: url('../img/nav-bg-fill.png');
	background-image: -webkit-image-set(url('../img/nav-bg-fill.avif') type('image/avif'), url('../img/nav-bg-fill.webp') type('image/webp'), url('../img/nav-bg-fill.png') type('image/png'));
	background-image: image-set(url('../img/nav-bg-fill.avif') type('image/avif'), url('../img/nav-bg-fill.webp') type('image/webp'), url('../img/nav-bg-fill.png') type('image/png'));
	background-repeat: repeat-x;
	background-position: 0 -50%;
	transition: background-position 1.3s ease;
	/* Per-button color: override --btn-fill-hue (0–360deg) to match button */
	
}
.btn--gold::before{
	filter: hue-rotate(0deg);
	opacity: 0.3;
}
/* Trigger fill on click and keep it while focused so quick tap still shows full animation */
.btn--gold:active::before,
.btn--gold:focus::before,
.btn--gold-pastel:active::before,
.btn--gold-pastel:focus::before,
.btn--red:active::before,
.btn--red:focus::before,
.btn--burgundy:active::before,
.btn--burgundy:focus::before,
.btn--olive:active::before,
.btn--olive:focus::before,
.btn--terracotta:active::before,
.btn--terracotta:focus::before,
.btn--dark:active::before,
.btn--dark:focus::before,
.btn--violet:active::before,
.btn--violet:focus::before,
.btn--gray:active::before,
.btn--gray:focus::before,
.zr-sp-summary .single_add_to_cart_button:active::before,
.zr-sp-summary .single_add_to_cart_button:focus::before,
.zr-sp-summary button.button.alt:active::before,
.zr-sp-summary button.button.alt:focus::before {
	background-position: 200% 30%;
}

/* Single-product add to cart: stack context for nav-bg-fill (see ::before rules above) */
.zr-sp-summary .single_add_to_cart_button,
.zr-sp-summary button.button.alt {
	position: relative;
	overflow: hidden;
}

/* Keep label above ::before */
.btn__text {
	position: relative;
	z-index: 1;
}

.btn--gold:hover,
.btn--gold-pastel:hover,
.btn--red:hover,
.btn--burgundy:hover,
.btn--olive:hover,
.btn--terracotta:hover,
.btn--dark:hover,
.btn--violet:hover,
.btn--gray:hover {
	filter: brightness(1.1) saturate(1.05);
	color: #fff;
}

.btn--red:hover,
.btn--burgundy:hover{
	filter: brightness(1.4) saturate(1.05);
}

.btn--gold:active,
.btn--gold-pastel:active,
.btn--red:active,
.btn--burgundy:active,
.btn--olive:active,
.btn--terracotta:active,
.btn--dark:active,
.btn--violet:active,
.btn--gray:active {
	transform: translateY(0) scale(0.95);
	/*box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);*/
	/* Keep dark text on press. Forcing #fff dropped contrast to 2.4:1 on the
	   #a8a8a8 gradient bottom (WCAG fail). #222 matches :hover and gives 6.7:1. */
	color: #222 !important;
}

/* Brand color buttons – individual colors. Tune --btn-fill-hue (0–360deg) to match. */
.btn--gold {
	--btn-fill-hue: 38deg;
	background: linear-gradient(180deg, #d4a017, #b37e0c);
	color: #fff;
	border-color: #b37e0c;
}

.btn--gold-pastel {
	--btn-fill-hue: 38deg;
	background: linear-gradient(180deg, #c9a86c, var(--color-gold-pastel));
	color: #fff;
	border-color: var(--color-gold-pastel);
}

.btn--gold-pastel::before {
	filter: hue-rotate(0deg);
	opacity: 0.25;
}

.btn--red {
	--btn-fill-hue: 345deg;
	background: linear-gradient(180deg, #80082B, #570518);
	color: #fff;
	border-color: #570518;
}

.btn--burgundy {
	--btn-fill-hue: 330deg;
	background: linear-gradient(180deg, #691E36, #420F23);
	color: #fff;
	border-color: #5c1a1a;
}

.btn--olive {
	--btn-fill-hue: 75deg;
	background: linear-gradient(180deg, #5e6b4a, #3e4a2f);
	color: #fff;
	border-color: #3e4a2f;
}

.btn--terracotta {
	--btn-fill-hue: 12deg;
	background: linear-gradient(180deg, #c15a3e, #9c3f26);
	color: #fff;
	border-color: #9c3f26;
}

.btn--dark {
	--btn-fill-hue: 0deg;
	background: linear-gradient(180deg, #2c2c2c, #1a1a1a);
	color: #fff;
	border-color: #1a1a1a;
}

.btn--violet {
	--btn-fill-hue: 270deg;
	background: linear-gradient(180deg, #673b80, #3e1a48);
	color: #fff;
	border-color: #3e1a48;
}

.btn--gray {
	--btn-fill-hue: 0deg;
	background: linear-gradient(180deg, #c8c8c8, #a8a8a8);
	color: #333;
	border-color: #a8a8a8;
}

.btn--gray:hover {
	color: #222;
}

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

.btn--outline:hover {
	background: rgba(0, 0, 0, 0.05);
}

.zr-section--dark .btn--outline {
	color: rgba(255, 255, 255, 0.9);
}

.zr-section--dark .btn--outline:hover {
	background: rgba(255, 255, 255, 0.1);
}

/*--------------------------------------------------------------
# Utility Classes
--------------------------------------------------------------*/
.z-index-1030 {
	z-index: 1030;
}

.object-fit-cover {
	object-fit: cover;
}

/*--------------------------------------------------------------
# Animations
--------------------------------------------------------------*/
@keyframes fadeIn {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

.front-page-main > section:not(.intro-section) {
	animation: fadeIn 0.8s ease-out;
}

/*--------------------------------------------------------------
# Smooth Scrolling
--------------------------------------------------------------*/
html {
	scroll-behavior: smooth;
}

/* Anchor target clears the fixed header (~110px). JS handles the precise
   offset (incl. the admin bar); this is the no-JS fallback. */
#shop-wines {
	scroll-margin-top: 130px;
}

/*--------------------------------------------------------------
# Scroll to Top Button
--------------------------------------------------------------*/
.scroll-to-top-btn {
	position: fixed;
	bottom: -60px;
	right: -60px;
	width: 120px;
	height: 120px;
	border-radius: 9999px 0 0 0;
	background: #ae8352;
	border: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	visibility: hidden;
	transform: translateX(100%) scale(0.8);
	transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), background 0.3s ease;
	z-index: 1000;
	padding: 0;
}

.scroll-to-top-btn.visible {
	opacity: 1;
	visibility: visible;
	transform: translateX(0) scale(1);
	transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), background 0.3s ease;
}

.scroll-to-top-btn:hover {
	background: #ae8352;
	transform: translateX(0) scale(1.1);
	transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.scroll-to-top-btn:active {
	transform: translateX(0) scale(0.95);
}

.scroll-to-top-btn svg {
	width: 20px;
  height: 20px;
  position: absolute;
  top: 28px;
  left: 28px;
}

.scroll-to-top-btn svg path {
	stroke: #fff;
}

/*--------------------------------------------------------------
# Custom Scrollbar
--------------------------------------------------------------*/
::-webkit-scrollbar {
	width: 10px;
}

::-webkit-scrollbar-track {
	background: #f1f1f1;
}

::-webkit-scrollbar-thumb {
	background: #2E2214;
	border-radius: 5px;
}

::-webkit-scrollbar-thumb:hover {
	background: #2E2214;
}

* {
	scrollbar-color: #2E2214 #f1f1f1;
}

/*--------------------------------------------------------------
# Responsive Design
--------------------------------------------------------------*/
@media (max-width: 991.98px) {
	.logo-bubble {
		padding: 0.4rem 1.5rem;
	}
	
	.logo-bubble img,
	.logo-bubble .custom-logo-link img,
	.navbar-logo {
		height: 40px;
		max-height: 40px;
	}
	
	/* Hero no longer forced to the 1000px desktop row height on tablet. */
	:root {
		--zr-hero-row-min-height: 600px;
	}

	.hero-section {
		min-height: 80vh;
	}

	.hero-title {
		font-size: clamp(2rem, 10vw, 4rem);
		margin-top: -60px; /* smaller offset than the -171px desktop value */
	}

	/* Shift the hero photo down the image so the vineyard rows show
	   instead of only the sky/forest at the top, now that the hero is
	   shorter on mobile/tablet. Both layers move together to stay aligned. */
	.hero-background-img,
	.hero-image-overlay-img {
		background-position: center 50%;
	}

	/* Keep the decorative overlay BELOW the headline on tablet/mobile, where
	   it otherwise shifts up and paints over the text (the old "hero text not
	   showing on mobile" bug). Desktop keeps z-index 5 so it covers the letters. */
	.hero-image-overlay {
		z-index: 3;
	}

	.philosophy-section {
		padding: 0 0 4rem;
	}

	.product-showcase-section {
		padding: 4rem 0;
	}

	/* Stacked layout (below lg): centre the "Spoznajte Zlatý Roh" text column,
	   so heading, copy and the gold CTA line up under the centred bottle image. */
	.product-showcase-section .col-lg-4 {
		text-align: center;
	}

	/* Stacked layout: the desktop 6em bottom margin leaves too big a gap
	   between the bottles and the heading once it sits above the text. */
	.product-showcase-section figure.product-bottles {
		margin-bottom: 2em;
	}

	/* Breathing room under the gold CTA before the torn-paper separator. */
	.product-showcase-section .btn--gold {
		margin-bottom: 3rem;
	}

	.philosophy-inner {
		min-height: auto;
		padding: 2em 1rem 2em 1rem;
	}

	.philosophy-heading {
		/* Scale the headline down so it doesn't wrap behind the bottle on
		   tablet / small-laptop widths (768–991px). */
		font-size: clamp(2.25rem, 5.5vw, 3.75rem);
		line-height: 1.18;
		letter-spacing: -0.015em;
	}

	.philosophy-content {
		/* Reserve the right side of the row for the bottle so the heading
		   stops at the bottle silhouette instead of overflowing under it. */
		max-width: 62%;
		padding-left: 1rem;
	}

	.philosophy-text {
		max-width: 100%;
	}

	.philosophy-bottle {
		/* Smaller bottle, anchored to the right edge of the section. */
		width: 40%;
		max-width: 220px;
		right: 1.5%;
	}

	.display-4 {
		font-size: 2rem;
	}

	.display-5 {
		font-size: 1.75rem;
	}
}

@media (max-width: 767.98px) {
	/* Phone: offset the bottles 85px from the left. Width is reduced to match
	   (the img carries Bootstrap .w-100 = width:100% !important, so the override
	   needs !important too) which keeps the whole image visible, no right clip. */
	.product-showcase-section .product-bottles-img {
		margin-left: 85px;
		width: calc(100% - 85px) !important;
	}

	.logo-bubble {
		padding: 0.35rem 1.25rem;
	}
	
	.logo-bubble img,
	.logo-bubble .custom-logo-link img,
	.navbar-logo {
		height: 35px;
		max-height: 35px;
	}
	
	/* Phone: hero tracks the viewport instead of the 1000px desktop row,
	   and section + inner row share the same height so neither overrides. */
	:root {
		--zr-hero-row-min-height: 68vh;
	}

	.hero-section {
		min-height: 68vh;
	}

	.hero-title {
		margin-top: -40px;
	}

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

	.intro-section-body {
		padding: 1rem 0 0;
	}

	/* Tighten the whitespace around the front-page horn symbol on phones. */
	.intro-section .intro-section-body .col-12.mt-5.mb-5 {
		margin-top: 1rem !important;
		margin-bottom: 1rem !important;
	}

	.feature-card {
		margin-bottom: 2rem;
	}
	
	.gallery-item {
		margin-bottom: 0;
	}
	
	.philosophy-inner {
		min-height: auto;
		padding: 1.5rem 0.5rem;
	}

	.philosophy-heading {
		/* Tighter clamp so the headline wraps cleanly on phones and
		   never balloons larger than ~3rem on small viewports. */
		font-size: clamp(1.85rem, 7vw, 3rem);
		line-height: 1.2;
		letter-spacing: -0.01em;
		margin-bottom: 1rem;
	}

	.philosophy-content {
		max-width: 100%;
		padding-left: 0.8rem;
		padding-right: 0.8rem;
	}

	.philosophy-text p {
		font-size: 0.95rem;
		line-height: 1.55;
	}

	.philosophy-bottle {
		position: relative;
		top: auto;
		right: auto;
		transform: none;
		width: 70%;
		max-width: 220px;
		margin: 1.5rem auto 0;
	}

	.philosophy-bottle-img,
	.product-bottles-img {
		transform: none;
	}
	
	.footer-content {
		padding: 3rem 0 !important;
	}
	
	.footer-content .col-lg-3 {
		margin-bottom: 2rem;
	}
	
	.scroll-to-top-btn {
		width: 100px;
    height: 100px;
    min-width: 48px;
    min-height: 48px;
    bottom: -50px;
    right: -50px;
		border-radius: 50%;
		-webkit-tap-highlight-color: transparent;
	}
	
	.scroll-to-top-btn svg {
		position: relative;
    top: -16px;
    left: -16px;
    width: 22px;
    height: 22px;
    margin: 0;
	}
	
	.scroll-to-top-btn.visible:hover,
	.scroll-to-top-btn.visible:active {
		transform: translateX(0) scale(1);
	}
	
	.scroll-to-top-btn:active {
		transform: translateX(0) scale(0.92);
	}
}

/* Phones: load small hero images (LCP fix). The full-size hero is ~440KB AVIF;
   these mobile variants are ~107KB (bg) + ~44KB (overlay). background-size:cover
   keeps a clean full-bleed crop, centred to match the desktop framing. */
@media (max-width: 767.98px) {
	.hero-background-img {
		background-image: url('../img/frontpage-hero-bg-mobile.webp');
		background-image: -webkit-image-set(
			url('../img/frontpage-hero-bg-mobile.avif') type('image/avif'),
			url('../img/frontpage-hero-bg-mobile.webp') type('image/webp')
		);
		background-image: image-set(
			url('../img/frontpage-hero-bg-mobile.avif') type('image/avif'),
			url('../img/frontpage-hero-bg-mobile.webp') type('image/webp')
		);
		background-size: cover;
	}
	.hero-image-overlay-img {
		background-image: url('../img/frontpage/hero-image-overlay-mobile.webp');
		background-image: -webkit-image-set(
			url('../img/frontpage/hero-image-overlay-mobile.avif') type('image/avif'),
			url('../img/frontpage/hero-image-overlay-mobile.webp') type('image/webp')
		);
		background-image: image-set(
			url('../img/frontpage/hero-image-overlay-mobile.avif') type('image/avif'),
			url('../img/frontpage/hero-image-overlay-mobile.webp') type('image/webp')
		);
		background-size: cover;
	}
}

@media (max-width: 575.98px) {
	/* Small phones: keep the hero compact but never shorter than ~440px. */
	:root {
		--zr-hero-row-min-height: max(64vh, 440px);
	}

	.hero-section {
		min-height: max(64vh, 440px);
	}

	.hero-title {
		font-size: 2rem;
		padding: 0 1rem;
		margin-top: -30px;
	}

	.front-intro-text {
		font-size: 1rem;
	}

	.btn-lg {
		padding: 0.75rem 1.5rem;
		font-size: inherit;
	}

	/* Philosophy section: shrink everything for very small phones so
	   the headline reads on 360-420px viewports without the bottle
	   overlapping the copy. */
	.philosophy-heading {
		font-size: clamp(1.6rem, 7.5vw, 2.4rem);
		line-height: 1.2;
		margin-bottom: 0.75rem;
	}

	.philosophy-text {
		margin-top: 0.5em;
		margin-bottom: 1.5em;
	}

	.philosophy-text p {
		font-size: 0.9rem;
		line-height: 1.5;
		margin-bottom: 0.75rem;
	}

	.philosophy-bottle {
		width: 65%;
		max-width: 180px;
		margin: 1rem auto 0;
	}
}

/*--------------------------------------------------------------
# WooCommerce: Toast Notices
--------------------------------------------------------------*/
@keyframes wcToastSlideIn {
	from {
		opacity: 0;
		transform: translateY(-100%);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes wcToastSlideOut {
	from {
		opacity: 1;
		transform: translateY(0);
	}
	to {
		opacity: 0;
		transform: translateY(-100%);
	}
}

/* Bottom-anchored toasts (success) rise up from below and drop back down. */
@keyframes wcToastRiseIn {
	from {
		opacity: 0;
		transform: translateY(100%);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes wcToastRiseOut {
	from {
		opacity: 1;
		transform: translateY(0);
	}
	to {
		opacity: 0;
		transform: translateY(100%);
	}
}

.wc-toast {
	position: fixed;
	top: 1.25rem;
	left: 0;
	right: 0;
	margin-left: auto;
	margin-right: auto;
	width: fit-content;
	z-index: 99999;
	display: flex;
	align-items: center;
	gap: 0.75rem;
	min-width: 320px;
	max-width: 680px;
	padding: 1rem 1.25rem;
	border-radius: 12px;
	color: #fff;
	font-size: 0.95rem;
	line-height: 1.45;
	box-shadow: 0 8px 30px rgba(0, 0, 0, 0.18);
	animation: wcToastSlideIn 0.45s cubic-bezier(0.22, 1, 0.36, 1) forwards;
	pointer-events: auto;
	text-align: center;
	justify-content: center;
	border-radius: 999px;
}

.wc-toast.is-hiding {
	animation: wcToastSlideOut 0.35s cubic-bezier(0.55, 0, 1, 0.45) forwards;
}

/* Notices that belong to inline UI (checkout login toggle, payment box)
   render in place, without the fixed overlay or auto-dismiss. */
.wc-toast--inline {
	position: static;
	animation: none;
	width: auto;
	max-width: none;
	z-index: auto;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}

.wc-toast--inline .wc-toast__close {
	display: none;
}

/* Stack multiple toasts */
.wc-toast + .wc-toast {
	margin-top: 0.5rem;
}

/* Pastel gradients */
.wc-toast--success {
	/* Bottom-left corner. top:auto overrides the inline top the stacking
	   script sets, so the circle stays pinned to the bottom. */
	top: auto !important;
	bottom: 1.25rem;
	left: 1.25rem;
	right: auto;
	margin: 0;
	background: linear-gradient(135deg, #2c2c2c, #0f0f0f);
	width: 60px;
	height: 60px;
	min-width: 0;
	padding: 0;
	gap: 0;
	border-radius: 50%;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
	animation: wcToastRiseIn 0.45s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.wc-toast--success.is-hiding {
	animation: wcToastRiseOut 0.35s cubic-bezier(0.55, 0, 1, 0.45) forwards;
}

.wc-toast--success .wc-toast__body,
.wc-toast--success .wc-toast__close {
	display: none;
}

.wc-toast--error {
	background: linear-gradient(135deg, #e07575, #e8546a);
}

.wc-toast--info {
	background: #302414;
}

.wc-toast__icon {
	flex-shrink: 0;
	display: block;
	width: 22px;
	height: 22px;
	opacity: 0.9;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}

/* Icons via CSS data URIs – immune to wp_kses sanitisation */
.wc-toast--success .wc-toast__icon {
	width: 30px;
	height: 30px;
	opacity: 1;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
}

.wc-toast--error .wc-toast__icon {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='15' y1='9' x2='9' y2='15'/%3E%3Cline x1='9' y1='9' x2='15' y2='15'/%3E%3C/svg%3E");
}

.wc-toast--info .wc-toast__icon {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='16' x2='12' y2='12'/%3E%3Cline x1='12' y1='8' x2='12.01' y2='8'/%3E%3C/svg%3E");
}

.wc-toast__body {
	flex: 1;
	min-width: 0;
}

.wc-toast__body a,
.wc-toast__body .wc-forward {
	display: inline-block;
	color: #fff;
	text-decoration: none;
	font-family: var(--font-secondary);
	font-weight: 600;
	font-size: 0.85rem;
	background: rgba(255, 255, 255, 0.2);
	padding: 0.3rem 1rem;
	border-radius: 9999px;
	margin-left: 0.5rem;
	transition: background 0.2s;
}

.wc-toast__body a:hover {
	background: rgba(255, 255, 255, 0.35);
	opacity: 1;
}

.wc-toast__close {
	flex-shrink: 0;
	background: none;
	border: none;
	color: #fff;
	font-size: 1.5rem;
	line-height: 1;
	cursor: pointer;
	opacity: 0.7;
	padding: 0 0 0 0.5rem;
	transition: opacity 0.2s;
}

.wc-toast__close:hover {
	opacity: 1;
}

/* WooCommerce action buttons – always use body font */
.wc-forward,
a.wc-forward,
.button.wc-forward {
	font-family: var(--font-secondary);
}

/* Hide the old inline notice wrappers when toasts are present */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
	display: none;
}

@media (max-width: 575px) {
	.wc-toast {
		left: 0.75rem;
		right: 0.75rem;
		width: auto;
		min-width: 0;
		max-width: none;
	}

	/* Success is a compact circle (checkmark only), not a full-width bar.
	   Re-assert it here so the generic mobile rule above does not stretch
	   it into an ellipse, and keep it pinned to the bottom-left. */
	.wc-toast--success {
		left: 1rem;
		right: auto;
		bottom: 1rem;
		width: 60px;
		min-width: 0;
	}
}

/*--------------------------------------------------------------
# WooCommerce: Full-width cart & checkout (override narrow page)
--------------------------------------------------------------*/
.woocommerce-cart .entry-body-narrow,
.woocommerce-checkout .entry-body-narrow,
.woocommerce-order-received .entry-body-narrow,
.woocommerce-account .entry-body-narrow {
	max-width: none;
}

.woocommerce-cart .entry-content.intro-text,
.woocommerce-checkout .entry-content.intro-text,
.woocommerce-order-received .entry-content.intro-text,
.woocommerce-account .entry-content.intro-text {
	font-size: inherit;
	line-height: inherit;
}

.woocommerce-cart .entry-header,
.woocommerce-checkout .entry-header {
	display: none; /* page title hidden – progress bar replaces it */
}

/*--------------------------------------------------------------
# My Account (/moj-ucet/) – clean layout, nav + forms
--------------------------------------------------------------*/
.zr-myaccount {
	background: #faf9f7;
	min-height: 50vh;
}

.zr-myaccount-content {
	background: #fff;
	border-radius: 12px;
	padding: 2rem 2.25rem;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
}

/* Navigation: no bullets, clean card links */
.zr-myaccount-nav {
	margin-bottom: 0;
}

.zr-myaccount-nav__list {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
}

.zr-myaccount-nav__list::before,
.zr-myaccount-nav__item::before {
	display: none !important;
}

.zr-myaccount-nav__item {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.zr-myaccount-nav__link {
	display: block;
	padding: 0.75rem 1.125rem;
	font-family: var(--font-secondary);
	font-size: 0.95rem;
	font-weight: 500;
	color: var(--color-dark);
	text-decoration: none;
	background: #fff;
	border-radius: 8px;
	border: 1px solid rgba(0, 0, 0, 0.08);
	transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.zr-myaccount-nav__link:hover {
	background: var(--color-beige);
	border-color: rgba(0, 0, 0, 0.1);
	color: var(--color-brown-dark);
}

.zr-myaccount-nav__item.is-active .zr-myaccount-nav__link,
.zr-myaccount-nav__link[aria-current="page"] {
	background: #fff;
	border-color: var(--color-gold);
	color: var(--color-brown-dark);
	box-shadow: 0 0 0 2px rgba(212, 175, 55, 0.15);
}

.zr-myaccount-nav__label {
	display: block;
}

/* Content: headings */
.woocommerce-account .zr-myaccount-content h2,
.woocommerce-account .zr-myaccount-content .woocommerce-Address-title h3 {
	font-family: var(--font-primary);
	font-size: 1.35rem;
	font-weight: 400;
	margin: 0 0 1.5rem;
	color: var(--color-dark);
}

/* Content: dashboard intro text */
.woocommerce-account .zr-myaccount-content > p {
	font-size: 0.95rem;
	line-height: 1.65;
	color: #555;
	margin-bottom: 1rem;
}

.woocommerce-account .zr-myaccount-content > p a {
	color: var(--color-gold-dark);
	text-decoration: none;
}

.woocommerce-account .zr-myaccount-content > p a:hover {
	text-decoration: underline;
}

/* Content: notices */
.woocommerce-account .zr-myaccount-content .woocommerce-info,
.woocommerce-account .zr-myaccount-content .woocommerce-message {
	padding: 1rem 1.25rem;
	border-radius: 8px;
	margin-bottom: 1.5rem;
	font-size: 0.95rem;
	border-left: 4px solid var(--color-gold);
}

/* Content: forms (edit account, addresses, etc.) */
.zr-myaccount-content .woocommerce-EditAccountForm,
.zr-myaccount-content .woocommerce-edit-address {
	max-width: 36rem;
}

.zr-myaccount-content .form-row {
	margin-bottom: 1.25rem;
	padding: 0;
}

.zr-myaccount-content .form-row label {
	display: block;
	font-size: 0.85rem;
	font-weight: 500;
	color: var(--color-dark);
	margin-bottom: 0.375rem;
	letter-spacing: 0.02em;
}

.zr-myaccount-content .form-row .required {
	color: var(--color-gold-dark);
}

.zr-myaccount-content .form-row .input-text,
.zr-myaccount-content .form-row input[type="text"],
.zr-myaccount-content .form-row input[type="email"],
.zr-myaccount-content .form-row input[type="password"] {
	width: 100%;
	max-width: 100%;
	/* Match canonical 48px form-control height (compensates for 1px border) */
	padding: calc(0.75rem - 1px) 0.875rem;
	min-height: 48px;
	box-sizing: border-box;
	font-size: 0.95rem;
	line-height: 1.5;
	font-family: var(--font-secondary);
	border: 1px solid #e2e0dc;
	border-radius: 8px;
	background: #fff;
	color: var(--color-dark);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.zr-myaccount-content .form-row .input-text:focus,
.zr-myaccount-content .form-row input:focus {
	outline: none;
	border-color: var(--color-gold);
	box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.12);
}

.zr-myaccount-content .form-row-wide + .form-row-wide,
.zr-myaccount-content .form-row-first,
.zr-myaccount-content .form-row-last {
	margin-bottom: 1.25rem;
}

.zr-myaccount-content .form-row em,
.zr-myaccount-content .form-row .description {
	display: block;
	font-size: 0.85rem;
	color: #777;
	margin-top: 0.375rem;
	font-style: normal;
}

/* Password change fieldset */
.zr-myaccount-content fieldset {
	margin: 2rem 0 1.5rem;
	padding: 1.5rem 0 0;
	border: none;
	border-top: 1px solid #ebe8e4;
}

.zr-myaccount-content fieldset legend {
	font-family: var(--font-primary);
	font-size: 1.1rem;
	font-weight: 400;
	color: var(--color-dark);
	padding: 0 0.75rem 0 0;
	margin-bottom: 1rem;
}

/* Save / Submit button */
.zr-myaccount-content .woocommerce-Button.button,
.zr-myaccount-content button[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.75rem 2rem;
	min-height: 48px; /* Aligns with .btn canonical height */
	box-sizing: border-box;
	font-family: var(--font-primary);
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.02em;
	color: #fff !important;
	background: linear-gradient(180deg, var(--color-gold) 0%, var(--color-gold-dark) 100%);
	border: none;
	border-radius: 8px;
	cursor: pointer;
	transition: opacity 0.2s ease, transform 0.1s ease;
	margin-top: 0.5rem;
}

.zr-myaccount-content .woocommerce-Button.button:hover,
.zr-myaccount-content button[type="submit"]:hover {
	opacity: 0.95;
	color: #fff !important;
}

.zr-myaccount-content .woocommerce-Button.button:active,
.zr-myaccount-content button[type="submit"]:active {
	transform: scale(0.98);
}

/* Orders table */
.zr-myaccount-content .woocommerce-orders-table {
	width: 100%;
	font-size: 0.95rem;
	border-collapse: collapse;
}

.zr-myaccount-content .woocommerce-orders-table th,
.zr-myaccount-content .woocommerce-orders-table td {
	padding: 0.75rem 1rem;
	text-align: left;
	border-bottom: 1px solid #ebe8e4;
}

.zr-myaccount-content .woocommerce-orders-table th {
	font-weight: 500;
	color: var(--color-dark);
}

.zr-myaccount-content .woocommerce-orders-table a:not(.button) {
	color: var(--color-gold-dark);
	text-decoration: none;
}

.zr-myaccount-content .woocommerce-orders-table a:not(.button):hover {
	text-decoration: underline;
}

/* Akcia column: stack the pill buttons cleanly instead of letting them overlap */
.zr-myaccount-content .woocommerce-orders-table__cell-order-actions {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.5rem;
}

/* Extra specificity beats the global .woocommerce a.button sizing so these
   action buttons stay compact instead of full size. */
.woocommerce .zr-myaccount-content .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-actions a.button {
	margin: 0;
	min-height: 0;
	width: auto;
	padding: 0.45rem 1.5rem;
	font-size: 0.85rem;
	line-height: 1.4;
	white-space: nowrap;
}

/* Addresses */
.zr-myaccount-content .u-columns {
	display: block;
}

.zr-myaccount-content .u-column1,
.zr-myaccount-content .u-column2 {
	margin-bottom: 2rem;
	width: 100%;
}

.zr-myaccount-content .woocommerce-Address .woocommerce-Button {
	margin-top: 0.5rem;
	font-size: 0.875rem;
	padding: 0.5rem 1.25rem;
}

@media (max-width: 991.98px) {
	.zr-myaccount-nav__list {
		flex-direction: row;
		flex-wrap: wrap;
		gap: 0.5rem;
	}
	.zr-myaccount-nav__link {
		padding: 0.6rem 0.9rem;
		font-size: 0.875rem;
	}
	.zr-myaccount-content {
		padding: 1.5rem 1.25rem;
	}
}

/*--------------------------------------------------------------
# Login / Register page (Môj účet when not logged in)
--------------------------------------------------------------*/
.woocommerce-account .site-main {
	background: #faf9f7;
	padding-top: 2rem;
	padding-bottom: 3rem;
}

.zr-login-register {
	max-width: 480px;
	margin-left: auto;
	margin-right: auto;
	padding: 0 1rem;
}

.zr-login-register__columns {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem;
	max-width: 900px;
	margin-left: auto;
	margin-right: auto;
	padding: 0 1rem;
}

.zr-login-register__col {
	min-width: 0;
}

.zr-login-register__card {
	background: #fff;
	border-radius: 12px;
	padding: 2rem 2.25rem;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
}

.zr-login-register__title {
	font-family: var(--font-primary);
	font-size: 1.35rem;
	font-weight: 400;
	color: var(--color-dark);
	margin: 0 0 1.5rem;
}

/* Login/Register form fields – same as account content */
.zr-login-register .form-row {
	margin-bottom: 1.25rem;
	padding: 0;
}

.zr-login-register .form-row label {
	display: block;
	font-size: 0.85rem;
	font-weight: 500;
	color: var(--color-dark);
	margin-bottom: 0.375rem;
	letter-spacing: 0.02em;
}

.zr-login-register .form-row .required {
	color: var(--color-gold-dark);
}

.zr-login-register .form-row .input-text,
.zr-login-register .form-row input[type="text"],
.zr-login-register .form-row input[type="email"],
.zr-login-register .form-row input[type="password"] {
	width: 100%;
	max-width: 100%;
	padding: calc(0.75rem - 1px) 0.875rem;
	min-height: 48px;
	box-sizing: border-box;
	font-size: 0.95rem;
	line-height: 1.5;
	font-family: var(--font-secondary);
	border: 1px solid #e2e0dc;
	border-radius: 8px;
	background: #fff;
	color: var(--color-dark);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.zr-login-register .form-row .input-text:focus,
.zr-login-register .form-row input:focus {
	outline: none;
	border-color: var(--color-gold);
	box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.12);
}

/* Remember me + Login button row */
.zr-login-register__row-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
	margin-top: 1.5rem;
	margin-bottom: 0.5rem;
}

.zr-login-register__row-actions .woocommerce-form-login__rememberme {
	margin: 0;
	font-size: 0.95rem;
	font-weight: 400;
}

.zr-login-register__row-actions .woocommerce-form__input-checkbox {
	margin-right: 0.35rem;
}

.zr-login-register .woocommerce-form-login__submit,
.zr-login-register .woocommerce-form-register__submit,
.zr-login-register .woocommerce-Button.button,
.zr-login-register .lost_reset_password .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.75rem 1.5rem;
	min-height: 48px;
	box-sizing: border-box;
	font-family: var(--font-primary);
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.02em;
	color: #fff !important;
	background: linear-gradient(180deg, var(--color-gold) 0%, var(--color-gold-dark) 100%);
	border: none;
	border-radius: 8px;
	cursor: pointer;
	transition: opacity 0.2s ease, transform 0.1s ease;
}

.zr-login-register .woocommerce-form-login__submit:hover,
.zr-login-register .woocommerce-form-register__submit:hover,
.zr-login-register .woocommerce-Button.button:hover,
.zr-login-register .lost_reset_password .button:hover {
	opacity: 0.95;
	color: #fff !important;
}

.zr-login-register .woocommerce-form-login__submit:active,
.zr-login-register .woocommerce-form-register__submit:active,
.zr-login-register .woocommerce-Button.button:active,
.zr-login-register .lost_reset_password .button:active {
	transform: scale(0.98);
}

.zr-login-register .lost_password {
	margin: 0;
	font-size: 0.95rem;
}

.zr-login-register .lost_password a {
	color: var(--color-gold-dark);
	text-decoration: none;
}

.zr-login-register .lost_password a:hover {
	text-decoration: underline;
}

.zr-login-register__hint {
	font-size: 0.875rem;
	color: #666;
	margin-bottom: 1rem;
}

.woocommerce-account .zr-login-register .woocommerce-info,
.woocommerce-account .zr-login-register .woocommerce-message {
	margin-bottom: 1.5rem;
	padding: 1rem 1.25rem;
	border-radius: 8px;
	border-left: 4px solid var(--color-gold);
}

@media (max-width: 767.98px) {
	.zr-login-register__columns {
		grid-template-columns: 1fr;
	}
}

/* Top gap on cart/checkout so content aligns with header (same as logo spacing) */
.has-cart-checkout-header .site-main {
	padding-top: 2rem;
}

/* Mobile: drop the top whitespace on cart/checkout (site-main gap + Bootstrap .py-5) */
@media (max-width: 767.98px) {
	.has-cart-checkout-header .site-main {
		padding-top: 0;
	}

	.has-cart-checkout-header .site-main .container.py-5 {
		padding-top: 0 !important;
	}
}

/* ── Ornament above progress bar (cart / checkout) ── */
.wc-progress-ornament {
	text-align: center;
	margin-bottom: 1.25rem;
}

.required{
	color: #aaa !important;
}

.wc-progress-ornament img {
	display: block;
	margin: 0 auto;
	width: auto;
	height: auto;
	max-width: 180px;
	margin-bottom: 2em;
}

/* ── Progress bar ── */
.wc-progress-bar {
	margin-bottom: 2.5rem;
}

.wc-progress-bar ol {
	display: flex;
	justify-content: center;
	align-items: center;
	list-style: none;
	padding: 0;
	margin: 0;
	gap: 0;
	counter-reset: step;
}

.wc-progress-step {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	position: relative;
	padding: 0 1.5rem;
}

.wc-progress-step + .wc-progress-step::before {
	content: "";
  position: absolute;
  left: -0.8rem;
  top: 50%;
  width: 1.5rem;
  height: 2px;
  background: #ddd;
  transform: translateY(-50%);
}

.wc-progress-step.is-completed + .wc-progress-step::before {
	background: #CEB58C;
}

.wc-progress-step__number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	font-weight: 600;
	font-size: 0.85rem;
	border: 2px solid #ddd;
	color: #999;
	background: #fff;
	flex-shrink: 0;
	position: relative;
	z-index: 1;
}

.wc-progress-step__label {
	font-size: 0.9rem;
	color: #999;
	text-decoration: none;
	white-space: nowrap;
}

.wc-progress-step__label:hover {
	color: var(--color-gold-dark);
}

.wc-progress-step.is-active .wc-progress-step__number {
	background: #ae8352;
	border-color: #ae8352;
	color: #fff;
}

.wc-progress-step.is-active .wc-progress-step__label {
	color: var(--color-dark);
	font-weight: 600;
}

.wc-progress-step.is-completed .wc-progress-step__number {
	background: #CEB58C;
	border-color: #CEB58C;
	color: #fff;
}

.wc-progress-step.is-completed .wc-progress-step__label {
	color: var(--color-brown);
}

/* ── Cart layout: items + sidebar ── */
.wc-cart-wrapper {
	display: grid;
	grid-template-columns: 1fr 380px;
	gap: 2.5rem;
	align-items: start;
}

/* Cart item cards */
.wc-cart-list {
	display: flex;
	flex-direction: column;
	gap: 1px;
	background: #f0ece4;
	border-radius: 12px;
	overflow: hidden;
}

.wc-cart-item {
	display: grid;
	grid-template-columns: 90px 1fr auto auto auto;
	gap: 1rem;
	align-items: center;
	padding: 1.25rem 1.5rem;
	background: #fff;
}

.wc-cart-item__thumb {
	width: 90px;
	height: 90px;
	border-radius: 8px;
	overflow: hidden;
	flex-shrink: 0;
}

.wc-cart-item__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.wc-cart-item__details {
	min-width: 0;
}

.wc-cart-item__name {
	font-weight: 500;
	color: var(--color-dark);
	line-height: 1.4;
}

.wc-cart-item__name a {
	color: inherit;
	text-decoration: none;
	font-size: 1.8em;
}

.wc-cart-item__name a:hover {
	color: var(--color-gold-dark);
}

/* Cart variation meta in simple custom rows */
.wc-cart-item__meta {
	margin-top: 0.35rem;
	font-size: 0.8em;
	color: #8a8a8a;
}

.wc-cart-item__meta-row {
	display: flex;
	align-items: baseline;
	gap: 0.35rem;
	line-height: 1.3;
}

.wc-cart-item__meta-label {
	font-weight: 700;
	color: inherit;
}

.wc-cart-item__meta-value {
	font-weight: 600;
	color: inherit;
}

.wc-cart-item__price {
	font-size: 0.9rem;
	color: #888;
	margin-top: 0.25rem;
}

.wc-cart-item__quantity .quantity {
	display: flex;
	align-items: center;
}

.wc-cart-item__quantity .quantity .qty {
	width: 3.5rem;
	text-align: center;
	border: 1px solid #ddd;
	border-radius: 6px;
	padding: 0.35rem 0.25rem;
	font-size: 0.95rem;
	-moz-appearance: textfield;
	border-radius: 999px;
}

.wc-cart-item__quantity .quantity .qty::-webkit-inner-spin-button,
.wc-cart-item__quantity .quantity .qty::-webkit-outer-spin-button {
	opacity: 1;
}

.wc-cart-item__subtotal {
	font-weight: 600;
	color: var(--color-dark);
	white-space: nowrap;
}

.wc-cart-item__remove .remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	color: #bbb;
	font-size: 1.25rem;
	text-decoration: none;
	transition: all 0.2s;
}

.wc-cart-item__remove .remove:hover {
	background: #fce4ec;
	color: #e53935;
}

/* Cart actions row */
.wc-cart-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 1.25rem;
	flex-wrap: wrap;
}

.wc-coupon {
	display: flex;
	gap: 0.5rem;
	align-items: center;
	flex: 0 0 auto;
}

.wc-coupon .input-text {
	width: 160px;
	border: 1px solid #ddd;
	border-radius: 9999px;
	/* Match .btn vertical box: 0.75rem padding − 1px border = 48px total to align with Apply / Update cart pills */
	padding: calc(0.75rem - 1px) 1.25rem;
	font-size: 0.95rem;
	line-height: 1.5;
	height: 48px;
	box-sizing: border-box;
	background: #fff;
	color: var(--color-dark);
	text-align: center;
}

.wc-coupon .input-text:focus {
	border-color: var(--color-gold);
	outline: none;
	box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.15);
}

.wc-update-cart {
	margin-left: auto;
}

.wc-update-cart:disabled {
	display: none;
}

/* Cart totals sidebar card */
.wc-cart-sidebar {
	position: sticky;
	top: 100px;
	align-self: start;
	z-index: 5;
}

.wc-totals-card {
	background: #fff;
	border: 0 none;
	border-radius: 12px;
	padding: 1.75rem;
	max-height: calc(100vh - 120px);
	overflow-y: auto;
}

.wc-totals-card h2 {
	font-family: var(--font-primary);
	font-size: 1.35rem;
	font-weight: 500;
	color: var(--color-dark);
	margin-bottom: 1.25rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid #f0ece4;
}

.wc-totals-card .shop_table {
	width: 100%;
	border: none;
	border-collapse: collapse;
}

.wc-totals-card .shop_table tr {
	border: none;
}

.wc-totals-card .shop_table th,
.wc-totals-card .shop_table td {
	padding: 0.6rem 0;
	border: none;
	font-size: 0.95rem;
}

.wc-totals-card .shop_table th {
	font-weight: 400;
	color: #666;
	text-align: left;
}

.wc-totals-card .shop_table td {
	text-align: right;
}

.wc-totals-card .order-total th,
.wc-totals-card .order-total td {
	padding-top: 1rem;
	border-top: 2px solid #f0ece4;
	font-size: 1.15rem;
	font-weight: 600;
	color: var(--color-dark);
}

.wc-totals-card .wc-proceed-to-checkout {
	margin-top: 1.5rem;
}

/* Checkout button – inherits .btn + .btn--violet via CSS */
.wc-totals-card .wc-proceed-to-checkout .checkout-button {
	display: block;
	width: 100%;
}

/* ── Empty cart ── */
.wc-empty-cart__icon {
	color: #ccc;
	margin-bottom: 1.5rem;
}

.wc-empty-cart__icon img {
	display: block;
	width: 180px;
	max-width: 60%;
	height: auto;
	margin: 0 auto;
}

.wc-empty-cart .woocommerce-info,
.wc-empty-cart .cart-empty {
	font-size: 1.15rem;
	color: #888;
	margin-bottom: 1.5rem;
}

.wc-empty-cart .return-to-shop {
	margin-top: 3rem;
}

/* ── Checkout promo banner ── */
.wc-checkout-promo {
	border-radius: 14px;
	overflow: hidden;
	margin-bottom: 1.5rem;
	max-height: 220px;
}

.wc-checkout-promo__link {
	display: block;
	height: 100%;
}

.wc-checkout-promo__img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	border-radius: 14px;
}

.wc-checkout-promo__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	padding: 1.25rem 2rem;
	background: var(--color-beige);
	border: 2px dashed #d5cfc2;
	border-radius: 14px;
	color: #a09682;
	font-size: 0.9rem;
}

/* ── Checkout two-column layout ── */
.wc-checkout-wrapper {
	display: grid;
	grid-template-columns: 1fr 420px;
	gap: 2.5rem;
	align-items: start;
}

/* Two columns under promo: left = Billing, right = Ship to different address? + order notes + shipping */
.wc-checkout-fields__columns {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem;
	align-items: start;
}

.wc-checkout-fields__col--billing .wc-checkout-section,
.wc-checkout-fields__col--shipping .wc-checkout-section {
	margin-top: 0;
}

.wc-checkout-fields__columns .wc-checkout-section + .wc-checkout-section {
	margin-top: 0;
}

@media (max-width: 767px) {
	.wc-checkout-fields__columns {
		grid-template-columns: 1fr;
	}
}

.wc-checkout-section + .wc-checkout-section {
	margin-top: 2rem;
}

.wc-checkout-sidebar {
	background: #fff;
	border: none;
	border-radius: 12px;
	padding: 1.75rem;
	position: sticky;
	top: 100px;
	padding-top: 0;
}

.wc-checkout-sidebar #order_review_heading {
	font-family: var(--font-primary);
	font-size: 1.35rem;
	font-weight: 500;
	color: var(--color-dark);
	margin-bottom: 1.25rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid #f0ece4;
}

/* Review order card inside checkout sidebar */
.wc-review-order-card .shop_table {
	width: 100%;
	border: none;
	border-collapse: collapse;
}

.wc-review-order-card .shop_table thead {
	display: none;
}

.wc-review-order-card .shop_table tbody tr {
	border: none;
}

.wc-review-order-card .shop_table tbody td {
	padding: 0.5rem 0;
	border: none;
	font-size: 0.9rem;
	vertical-align: top;
}

.wc-review-order-card .shop_table tbody .product-name {
	color: #555;
}

.product-name{
	max-width: 170px;
}

.shop_table.woocommerce-checkout-review-order-table{

}

/* Mini product thumbnail in checkout review (mirrors the cart thumb) */
.woocommerce-checkout-review-order-table .product-name {
	max-width: 340px;
}

.woocommerce-checkout-review-order-table .wc-checkout-item {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.woocommerce-checkout-review-order-table .wc-checkout-item__thumb {
	width: 48px;
	height: 48px;
	border-radius: 8px;
	overflow: hidden;
	flex-shrink: 0;
}

.woocommerce-checkout-review-order-table .wc-checkout-item__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.woocommerce-checkout-review-order-table .wc-checkout-item__text {
	flex: 1;
	min-width: 0;
}

/* Checkout variation meta in simple custom rows (same behavior as cart) */
.wc-review-order-card .wc-checkout-item__meta {
	margin-top: 0.35rem;
	font-size: 0.8em;
	color: #8a8a8a;
}

.wc-review-order-card .wc-checkout-item__meta-row {
	display: flex;
	align-items: baseline;
	gap: 0.35rem;
	line-height: 1.3;
}

.wc-review-order-card .wc-checkout-item__meta-label,
.wc-review-order-card .wc-checkout-item__meta-value {
	color: inherit;
}

.wc-review-order-card .wc-checkout-item__meta-label {
	font-weight: 700;
}

.wc-review-order-card .wc-checkout-item__meta-value {
	font-weight: 600;
}

.wc-review-order-card .shop_table tbody .product-total {
	text-align: right;
	font-weight: 500;
	white-space: nowrap;
}

.wc-review-order-card .shop_table tfoot tr {
	border: none;
}

.wc-review-order-card .shop_table tfoot th,
.wc-review-order-card .shop_table tfoot td {
	padding: 0.5rem 0;
	border: none;
	font-size: 0.9rem;
}

.wc-review-order-card .shop_table tfoot th {
	font-weight: 400;
	color: #666;
	text-align: left;
}

.wc-review-order-card .shop_table tfoot td {
	text-align: right;
}

.wc-review-order-card .shop_table tfoot .cart-subtotal {
	border-top: 1px solid #f0ece4;
}

.wc-review-order-card .shop_table tfoot .cart-subtotal th,
.wc-review-order-card .shop_table tfoot .cart-subtotal td {
	padding-top: 1rem;
}

.wc-review-order-card .shop_table tfoot .order-total th,
.wc-review-order-card .shop_table tfoot .order-total td {
	padding-top: 0.75rem;
	border-top: 2px solid #f0ece4;
	font-size: 1.1rem;
	font-weight: 600;
	color: var(--color-dark);
}

/* Payment card */
.wc-payment-card {
	margin-top: 1.25rem;
	padding-top: 1.25rem;
	border-top: 1px solid #f0ece4;
}

.wc-payment-card .payment_methods {
	list-style: none;
	padding: 0;
	margin: 0 0 1rem;
}

.wc-payment-card .payment_methods li {
	padding: 0.75rem 0;
	border-bottom: 1px solid #f5f2eb;
}

.wc-payment-card .payment_methods li:last-child {
	border-bottom: none;
}

.wc-payment-card .payment_methods label {
	font-weight: 500;
	cursor: pointer;
}

.wc-payment-card .place-order {
	padding: 0;
	margin: 0;
}

/* Place-order button – inherits .btn + .btn--red + .btn-lg + .btn-block */

/* Checkout form fields – clean look */
.woocommerce-checkout .form-row {
	margin-bottom: 1rem;
}

.woocommerce-checkout .form-row label {
	display: block;
	font-size: 0.85rem;
	font-weight: 500;
	color: #555;
	margin-bottom: 0.3rem;
}

.woocommerce-checkout .form-row .input-text,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea {
	width: 100%;
	border: 1px solid #ddd;
	border-radius: 8px;
	/* 48px tall to match .btn - compensates for 1px border so padding visually equals 0.75rem */
	padding: calc(0.75rem - 1px) 0.875rem;
	font-size: 0.95rem;
	line-height: 1.5;
	min-height: 48px;
	box-sizing: border-box;
	transition: border-color 0.2s, box-shadow 0.2s;
}

.woocommerce-checkout .form-row textarea {
	min-height: 96px;
}

.woocommerce-checkout .form-row .input-text:focus,
.woocommerce-checkout .form-row select:focus,
.woocommerce-checkout .form-row textarea:focus {
	border-color: var(--color-gold);
	outline: none;
	box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.15);
}

/* Select2 / SelectWoo – match checkout form inputs (Firefox, Safari, Chrome) */
.woocommerce-checkout .select2-container,
.woocommerce .select2-container {
	width: 100% !important;
}

.woocommerce-checkout .select2-container--default .select2-selection--single,
.woocommerce .select2-container--default .select2-selection--single {
	height: 48px; /* Match checkout inputs & .btn */
	min-height: 48px;
	/* No vertical padding: the rendered value is centered by its line-height
	   (set to the inner box height in woocommerce.css). Stacking top/bottom
	   padding on top of that pushed the text low and past the bottom edge. */
	padding: 0 2.25rem 0 0.875rem;
	border: 1px solid #ddd;
	border-radius: 8px;
	background-color: #fff;
	background-image: none;
	-webkit-appearance: none;
	appearance: none;
	box-sizing: border-box;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered,
.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 1.5;
	padding: 0;
	color: #333;
	font-family: var(--font-secondary);
	font-size: 0.95rem;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow,
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 100%;
	right: 0.5rem;
	background: none;
	border: none;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow b,
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow b {
	border-color: #666 transparent transparent transparent;
	border-width: 6px 5px 0 5px;
	margin-left: -5px;
	margin-top: -3px;
}

.woocommerce-checkout .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b,
.woocommerce .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
	border-color: transparent transparent #666 transparent;
	border-width: 0 5px 6px 5px;
	margin-top: -3px;
}

.woocommerce-checkout .select2-container--default.select2-container--focus .select2-selection--single,
.woocommerce-checkout .select2-container--default.select2-container--open .select2-selection--single,
.woocommerce .select2-container--default.select2-container--focus .select2-selection--single,
.woocommerce .select2-container--default.select2-container--open .select2-selection--single {
	border-color: var(--color-gold);
	outline: none;
	box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.15);
}

/* Select2 dropdown – open list */
.woocommerce-checkout .select2-container--default .select2-dropdown,
.woocommerce .select2-container--default .select2-dropdown {
	border: 1px solid #ddd;
	border-radius: 8px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.woocommerce-checkout .select2-container--default .select2-results__option--highlighted[aria-selected],
.woocommerce .select2-container--default .select2-results__option--highlighted[aria-selected] {
	background-color: var(--color-beige);
	color: var(--color-dark);
}

.woocommerce-checkout h3 {
	font-family: var(--font-primary);
	font-size: 1.25rem;
	font-weight: 500;
	color: var(--color-dark);
	margin-bottom: 1rem;
}

/* ── Thank you page (order received), markup in woocommerce/checkout/thankyou.php ──
   The global `p { line-height: var(--leading-p) !important; }` forces the airy
   body rhythm, so paragraph line-heights here need !important to win. */
.zr-ty {
	max-width: 620px;
	margin: 0 auto;
	padding: 1.5rem 0 2.5rem;
}

.zr-ty__head {
	text-align: center;
	margin-bottom: 2.5rem;
}

.zr-ty__title {
	font-family: var(--font-primary);
	font-size: clamp(2rem, 5vw, 2.6rem);
	color: var(--color-dark);
	margin-bottom: 0.75rem;
}

/* Unpaid order pill, sits between the glass and the title */
.zr-ty__status {
	display: inline-block;
	background: rgba(176, 74, 50, 0.12);
	color: #9c3f28;
	font-size: 0.78rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	padding: 0.4rem 1rem;
	border-radius: 999px;
	margin-bottom: 1.1rem;
}

.zr-ty__status--paid {
	background: rgba(63, 122, 70, 0.12);
	color: #3f7a46;
}

.zr-ty__sub {
	color: var(--color-text-muted);
	font-size: 1.05rem;
	line-height: 1.6 !important;
	max-width: 46ch;
	margin: 0 auto;
}

.zr-ty__photo {
	margin: 0 0 2.75rem;
}

.zr-ty__photo img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 16px;
}

/* Small caps section label */
.zr-ty__label {
	font-family: var(--font-secondary);
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: var(--color-gold-dark);
	margin-bottom: 1.1rem;
}

.zr-ty__label--pay {
	color: #9c3f28;
}

/* Payment first: the one solid block on the page */
.zr-ty__pay {
	background: var(--color-beige);
	border-radius: 16px;
	padding: 1.9rem 2rem;
	margin-bottom: 2.75rem;
}

.zr-ty__iban {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	flex-wrap: wrap;
	margin-bottom: 1.5rem;
}

.zr-ty__iban-num {
	font-size: clamp(1.15rem, 3.5vw, 1.4rem);
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--color-dark);
	overflow-wrap: anywhere;
}

/* Icon-only copy button, swaps to a checkmark once copied */
.zr-ty__copy {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: none;
	background: none;
	padding: 0.3rem;
	border-radius: 8px;
	color: var(--color-gold-dark);
	cursor: pointer;
	vertical-align: middle;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.zr-ty__copy:hover {
	background: rgba(174, 131, 82, 0.14);
}

.zr-ty__copy--done {
	color: var(--color-green-dark);
}

.zr-ty__copy-ic--done {
	display: none;
}

.zr-ty__copy--done .zr-ty__copy-ic {
	display: none;
}

.zr-ty__copy--done .zr-ty__copy-ic--done {
	display: inline;
}

.zr-ty__pay-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
	gap: 1.25rem 1.5rem;
	margin: 0 0 1.4rem;
}

.zr-ty__pay-cell {
	min-width: 0;
}

.zr-ty__k {
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--color-brown);
	margin-bottom: 0.25rem;
}

.zr-ty__v {
	font-weight: 600;
	color: var(--color-dark);
	margin: 0;
	overflow-wrap: anywhere;
	white-space: nowrap;
}

.zr-ty__note {
	font-size: 0.85rem;
	color: var(--color-text-soft);
	line-height: 1.55 !important;
	max-width: 56ch;
	margin: 0;
}

/* Items */
.zr-ty__items {
	margin-bottom: 2.5rem;
}

.zr-ty__item {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.4rem 0;
	color: var(--color-text-body);
}

.zr-ty__item-qty {
	color: var(--color-text-faint);
	font-size: 0.9em;
	margin-left: 0.25rem;
}

.zr-ty__item-total {
	white-space: nowrap;
	font-weight: 500;
	color: var(--color-dark);
}

.zr-ty__total {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 0.9rem;
	font-weight: 700;
	font-size: 1.1rem;
	color: var(--color-dark);
}

.zr-ty__total-price {
	color: var(--color-gold-dark);
}

.zr-ty__meta-line--failed {
	margin-top: 2.5rem;
	margin-bottom: 0;
}

.zr-ty__meta-line {
	text-align: center;
	font-size: 0.85rem;
	color: var(--color-text-faintest);
	line-height: 1.6 !important;
	margin-bottom: 3rem;
	white-space: pre-wrap;
}

.zr-ty__foot {
	text-align: center;
}

.zr-ty__email {
	color: var(--color-text-muted);
	font-size: 0.95rem;
	line-height: 1.6 !important;
	margin-bottom: 1.5rem;
}

.zr-ty__actions {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 1.25rem;
	margin-bottom: 0;
}

.zr-ty__link {
	color: var(--color-text-muted);
	text-decoration: underline;
}

.zr-ty__cheers {
	margin: 1.5rem 0 0;
	font-family: var(--font-primary);
	font-size: 1.15rem;
	color: var(--color-gold-dark);
	font-style: italic;
}

/* Order pay page (form-pay.php) shares the .zr-ty look */
.zr-ty .wc_payment_methods {
	list-style: none;
	margin: 0 0 1.75rem;
	padding: 0;
}

.zr-ty .wc_payment_methods li {
	list-style: none;
	margin: 0 0 0.9rem;
	padding: 0;
}

.zr-ty .wc_payment_methods li::before {
	content: none;
}

.zr-ty .wc_payment_methods input[type="radio"] {
	accent-color: var(--color-gold-dark);
}

.zr-ty .wc_payment_methods label {
	font-weight: 600;
	color: var(--color-dark);
	margin-left: 0.4rem;
	cursor: pointer;
}

.zr-ty .wc_payment_methods label img {
	max-height: 20px;
	width: auto;
	vertical-align: middle;
	margin-left: 0.4rem;
}

.zr-ty .payment_box {
	font-size: 0.88rem;
	color: var(--color-text-soft);
	margin: 0.3rem 0 0 1.65rem;
}

.zr-ty .payment_box p {
	line-height: 1.5 !important;
	margin: 0;
}

.zr-ty .woocommerce-terms-and-conditions-wrapper {
	font-size: 0.92rem;
	color: var(--color-text-muted);
	margin-bottom: 1.5rem;
}

/* Privacy note and the terms checkbox label must share one size. */
.zr-ty .woocommerce-terms-and-conditions-wrapper p,
.zr-ty .woocommerce-terms-and-conditions-wrapper label.checkbox {
	font-size: 0.92rem;
	color: var(--color-text-muted);
}

.zr-ty .woocommerce-terms-and-conditions-wrapper p {
	line-height: 1.55 !important;
}

.zr-ty #payment {
	background: transparent;
}

/* Order pay endpoint has the checkout body class; undo the checkout card chrome. */
.woocommerce-checkout .zr-ty #order_review {
	border: none;
	border-radius: 0;
	padding: 0;
}

.zr-ty #place_order {
	width: 100%;
}

@media (max-width: 575px) {
	.zr-ty__pay {
		padding: 1.4rem 1.25rem;
	}
}

/* ── Responsive ──
   Mobile/tablet uses grid-template-areas instead of column/row overrides
   so cart items can't overlap (the prior override had __details, __remove,
   __quantity, __subtotal all fighting for the same cells). Thumb spans
   two rows so the right side gets a clean two-row stack:
     [thumb] [details]  [×]
     [thumb] [qty]      [subtotal]
*/
@media (max-width: 991px) {
	.wc-cart-wrapper,
	.wc-checkout-wrapper {
		grid-template-columns: 1fr;
	}

	.wc-cart-sidebar,
	.wc-checkout-sidebar {
		position: static;
	}

	.wc-totals-card {
		max-height: none;
		overflow-y: visible;
	}

	.wc-cart-item {
		grid-template-columns: 80px 1fr auto;
		grid-template-rows: auto auto;
		grid-template-areas:
			"thumb details remove"
			"thumb qty     subtotal";
		row-gap: 0.75rem;
		align-items: start;
	}

	.wc-cart-item__thumb    { grid-area: thumb; align-self: start; }
	.wc-cart-item__details  { grid-area: details; }
	.wc-cart-item__remove   { grid-area: remove; justify-self: end; }
	.wc-cart-item__quantity { grid-area: qty; align-self: center; }
	.wc-cart-item__subtotal { grid-area: subtotal; align-self: center; text-align: right; }

	/* Title was 1.8em (~29px) - too big for narrow column, forcing per-word wrap. */
	.wc-cart-item__name a {
		font-size: 1.15rem;
		line-height: 1.35;
	}

	.wc-cart-item__name {
		overflow-wrap: break-word;
		word-break: normal;
		hyphens: auto;
	}
}

@media (max-width: 575px) {
	.wc-progress-step {
		padding: 0 0.75rem;
	}

	.wc-progress-step + .wc-progress-step::before {
		left: -0.75rem;
		width: 1.5rem;
	}

	.wc-progress-step__label {
		font-size: 0.8rem;
	}

	.wc-cart-item {
		grid-template-columns: 64px 1fr auto;
		gap: 0.5rem 0.75rem;
		padding: 1rem;
	}

	.wc-cart-item__thumb {
		width: 64px;
		height: 64px;
	}

	.wc-cart-item__name a {
		font-size: 1.05rem;
	}

	.wc-coupon {
		flex: 1 1 100%;
	}

	.wc-coupon .input-text {
		width: 100%;
		flex: 1;
	}
}

/*--------------------------------------------------------------
# Print Styles
--------------------------------------------------------------*/
@media print {
	.site-header,
	.site-footer {
		display: none;
	}
	
	.hero-section {
		min-height: auto;
		page-break-after: always;
	}
}

/*--------------------------------------------------------------
# Styleguide Page
--------------------------------------------------------------*/
.styleguide-page .sg-section {
	margin-bottom: 4rem;
	padding-bottom: 3rem;
	border-bottom: 1px solid #eee;
}

.styleguide-page .sg-section:last-child {
	border-bottom: none;
}

.styleguide-page .sg-heading {
	font-size: 2.5rem;
	margin-bottom: 0.25rem;
}

.styleguide-page .sg-subheading {
	font-size: 1.6rem;
	margin-bottom: 1.5rem;
	padding-bottom: 0.5rem;
	border-bottom: 2px solid var(--color-gold);
	display: inline-block;
}

.styleguide-page .sg-label {
	font-family: var(--font-secondary);
	font-size: 0.85rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: #999;
	margin-bottom: 0.75rem;
}

/* Color swatches */
.sg-swatches {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	gap: 1rem;
}

.sg-swatch {
	aspect-ratio: 1;
	border-radius: 12px;
	display: flex;
	align-items: flex-end;
	padding: 0.75rem;
	color: #fff;
	font-size: 0.8rem;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.sg-swatch code {
	display: block;
	font-size: 0.7rem;
	opacity: 0.8;
}

/* Button grid */
.sg-button-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 1.5rem;
}

.sg-btn-demo {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.5rem;
}

.sg-btn-demo code {
	font-size: 0.75rem;
	color: #999;
}

.sg-button-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
	margin-top: 0.75rem;
}

/* Form styles */
.sg-form {
	max-width: 500px;
}

.sg-form-row {
	margin-bottom: 1.25rem;
}

.sg-form-row > label:first-child {
	display: block;
	font-weight: 600;
	font-size: 0.9rem;
	margin-bottom: 0.35rem;
	color: #555;
}

.sg-form input[type="text"],
.sg-form input[type="email"],
.sg-form input[type="password"],
.sg-form input[type="number"],
.sg-form select,
.sg-form textarea {
	width: 100%;
	padding: calc(0.75rem - 1px) 0.875rem;
	min-height: 48px;
	box-sizing: border-box;
	border: 1px solid #ddd;
	border-radius: 12px;
	font-family: var(--font-secondary);
	font-size: 0.95rem;
	line-height: 1.5;
	color: #333;
	background: #fff;
	transition: border-color 0.2s;
}

.sg-form textarea {
	min-height: 96px;
}

.sg-form input:focus,
.sg-form select:focus,
.sg-form textarea:focus {
	outline: none;
	border-color: var(--color-gold);
	box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.15);
}

.sg-check-group {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
}

.sg-check-group label {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	font-weight: 400;
	cursor: pointer;
}

/* Image demos */
.sg-image-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 2rem;
}

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

.sg-img--circle {
	width: 180px;
	height: 180px;
	border-radius: 50%;
	object-fit: cover;
}

.sg-img-container {
	width: 100%;
	height: 200px;
	overflow: hidden;
	border-radius: 12px;
}

.sg-img-container img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Toast preview */
.sg-toast-preview .wc-toast {
	max-width: 100%;
	width: auto;
}

/* Table */
.sg-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9rem;
}

.sg-table th,
.sg-table td {
	padding: 0.65rem 1rem;
	text-align: left;
	border-bottom: 1px solid #eee;
}

.sg-table th {
	font-weight: 600;
	color: #555;
	border-bottom: 2px solid #ddd;
}

.sg-table code {
	font-size: 0.8rem;
}

/* Blockquote */
.styleguide-page blockquote {
	border-left: 4px solid var(--color-gold);
	padding: 1rem 1.5rem;
	margin: 0;
	background: var(--color-beige);
	border-radius: 0 8px 8px 0;
	font-style: italic;
	color: #555;
}

.styleguide-page blockquote p {
	margin: 0;
}

/* Misc spacing helpers used in template */
.styleguide-page .mt-4 {
	margin-top: 1.5rem;
}

.styleguide-page .mt-5 {
	margin-top: 2.5rem;
}

.styleguide-page .mb-4 {
	margin-bottom: 1.5rem;
}

.styleguide-page .mb-5 {
	margin-bottom: 2.5rem;
}

/*--------------------------------------------------------------
# ZR Page Templates (shared components)
--------------------------------------------------------------*/

/* ── Hero (two sizes: default large, --short for small) ── */
.zr-hero {
	position: relative;
	min-height: 75vh;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	margin-top: -80px;
	padding-top: 80px;
}

.zr-hero--short {
	min-height: 40vh;
}

/* Small hero: nudge the title/subtitle block upward */
.zr-hero--short .zr-hero__content {
	transform: translateY(-2rem);
}

/* Blog index: same hero treatment as kde-kupit (40vh + overlay) */
.zr-blog-hero {
	min-height: 40vh;
}
.zr-blog-hero .zr-hero__overlay { display: block; }

/* Author archive hero: small label above the name */
.zr-author-hero__label {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: rgba(255, 255, 255, 0.75);
	margin: 0 0 0.5rem;
	font-weight: 500;
}

.zr-hero__bg,
.zr-hero__video {
	position: absolute;
	inset: 0;
}

.zr-hero__bg {
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.zr-hero__video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.zr-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0.55) 100%);
	z-index: 1;
	/* Disabled by default. Enable it later per-page if/when needed. */
	display: none;
}

.zr-hero__bg,
.zr-hero__video {
	z-index: 0;
}

.zr-hero__content {
	position: relative;
	z-index: 2;
	text-align: center;
	max-width: 760px;
	padding: 2rem;
}

.zr-hero__title {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: clamp(2rem, 5vw, 3.2rem);
	color: #fff;
	line-height: 1.3;
	letter-spacing: 0.5px;
	margin: 0 0 1rem;
}

.zr-hero__subtitle {
	font-family: var(--font-secondary);
	font-size: clamp(1rem, 2vw, 1.15rem);
	color: rgba(255, 255, 255, 0.85);
	font-weight: 400;
	line-height: 1.65;
	margin: 0;
}

.zr-hero__subtitle--quote {
	font-family: var(--font-primary);
	font-style: italic;
	font-size: clamp(1.1rem, 2.5vw, 1.35rem);
	color: rgba(255, 255, 255, 0.9);
}

/* Filip Nagy page only: taller hero, photo/video aligned to top (not center-cropped) */
.zr-filip .zr-hero {
	min-height: 100vh;
	min-height: 100dvh;
}
.zr-filip .zr-hero__bg {
	background-position: center top;
}
.zr-filip .zr-hero__video {
	object-position: center top;
}

/* ── Blog index (home when Posts page is set) ── */
.zr-blog-body {
	/* White starts below sep-top so the paint-split strip stays transparent
	   and the hero image shows through behind the torn edge. */
	background: linear-gradient(to bottom, transparent 60px, #fff 60px);
	margin-top: -55px;
	position: relative;
	z-index: 3;
	padding-bottom: 4rem;
}

.zr-blog-body-inner {
	padding-top: 2rem;
}

/* Featured post: large card, image + content side by side */
.zr-blog-featured {
	margin-bottom: 3rem;
}

.zr-blog-featured__link {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem;
	align-items: center;
	text-decoration: none;
	color: inherit;
	border-radius: 16px;
	overflow: hidden;
	background: var(--color-beige);
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
	transition: box-shadow 0.3s ease, transform 0.2s ease;
}

.zr-blog-featured__link:hover {
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.1);
}

.zr-blog-featured__media {
	position: relative;
	aspect-ratio: 4 / 3;
	min-height: 220px;
	overflow: hidden;
}

.zr-blog-featured__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.zr-blog-featured__placeholder {
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, #e8e4dc 0%, #d4cfc4 100%);
}

.zr-blog-featured__badge {
	position: absolute;
	top: 1rem;
	left: 1rem;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	background: linear-gradient(180deg, #80082B, #570518);
	color: #fff;
	padding: 0.35rem 0.75rem;
	border-radius: 50px;
}

.zr-blog-featured__content {
	padding: 2rem 2rem 2rem 0;
}

.zr-blog-featured__title {
	font-family: var(--font-primary);
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	font-weight: 400;
	line-height: 1.3;
	color: var(--color-dark);
	margin: 0 0 0.75rem;
	transition: color 0.2s ease;
}

.zr-blog-featured__link:hover .zr-blog-featured__title {
	color: var(--color-gold-dark);
}

.zr-blog-featured__meta {
	font-size: 0.875rem;
	color: #777;
	margin-bottom: 1rem;
}

.zr-blog-featured__date {
	font-weight: 500;
}

.zr-blog-featured__author::before {
	content: ' · ';
}

.zr-blog-featured__excerpt {
	font-size: 1rem;
	line-height: 1.65;
	color: #555;
	margin-bottom: 1rem;
}

/* Inner <p> uses the excerpt line-height instead of the larger global p leading (which is !important) */
.zr-blog-featured__excerpt p {
	line-height: 1.65 !important;
}

.zr-blog-featured__read {
	font-size: 0.9rem;
	font-weight: 500;
	color: var(--color-gold-dark);
	transition: color 0.2s ease;
}

.zr-blog-featured__link:hover .zr-blog-featured__read {
	color: var(--color-gold);
}

/* Older posts section */
.zr-blog-more {
	margin-top: 2.5rem;
}

.zr-blog-more__title {
	font-family: var(--font-primary);
	font-size: 1.25rem;
	font-weight: 400;
	color: var(--color-dark);
	margin: 0 0 1.5rem;
	letter-spacing: 0.02em;
}

.zr-blog-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 1.5rem;
}

/* Blog card (smaller) */
.zr-blog-card__link {
	display: block;
	text-decoration: none;
	color: inherit;
	border-radius: 12px;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
	border: 1px solid rgba(0, 0, 0, 0.06);
	transition: box-shadow 0.3s ease, border-color 0.2s ease;
}

.zr-blog-card__link:hover {
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.08);
	border-color: transparent;
}

/* Novinky listing: drop the outer container (border/padding/bg) that leaks in from the
   media-page .zr-blog-card rule, so only the inner __link card shows. */
.zr-blog .zr-blog-card {
	background: transparent;
	border: none;
	border-radius: 0;
	padding: 0;
	box-shadow: none;
}

.zr-blog .zr-blog-card:hover {
	transform: none;
	background: transparent;
	border-color: transparent;
	box-shadow: none;
}

.zr-blog-card__media {
	aspect-ratio: 16 / 10;
	overflow: hidden;
}

.zr-blog-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.zr-blog-card__placeholder {
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, #f0ede6 0%, #e5e0d6 100%);
}

.zr-blog-card__content {
	padding: 1.25rem;
}

.zr-blog-card__title {
	font-family: var(--font-primary);
	font-size: 1.1rem;
	font-weight: 400;
	line-height: 1.35;
	color: var(--color-dark);
	margin: 0 0 0.5rem;
	transition: color 0.2s ease;
}

.zr-blog-card__link:hover .zr-blog-card__title {
	color: var(--color-gold-dark);
}

.zr-blog-card__date {
	font-size: 0.8rem;
	color: #888;
	display: block;
	margin-bottom: 0.5rem;
}

.zr-blog-card__excerpt {
	font-size: 0.9rem;
	line-height: 1.5;
	color: #666;
}

/* Blog nav (posts navigation) */
.zr-blog .posts-navigation {
	margin-top: 3rem;
	padding-top: 2rem;
	border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.zr-blog .nav-links {
	display: flex;
	justify-content: center;
	gap: 1rem;
	flex-wrap: wrap;
}

/* Blog responsive overrides. These must come after the base .zr-blog component
   rules above so the single column mobile layout wins the cascade (equal
   specificity, later source order). Earlier they sat in the top max-width
   767.98px block and were silently overridden by the base two column grid,
   which let the featured image (aspect-ratio + min-height) overflow its narrow
   column and cover the title on phones. */
@media (max-width: 767.98px) {
	.zr-blog-featured__link {
		grid-template-columns: 1fr;
		gap: 0;
	}
	.zr-blog-featured__content {
		padding: 1.5rem;
	}
	.zr-blog-grid {
		grid-template-columns: 1fr;
	}
}

/* ── Sections ── */
.zr-section {
	padding: 5rem 0;
}

.zr-section--beige {
	background-color: var(--color-beige);
}

/* Full-bleed split: text left (aligned to container), photo fills right half edge to edge */
.zr-section--bleed {
	padding: 0;
	overflow: hidden;
}
.zr-bleed-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: stretch;
}
.zr-bleed-split__text {
	display: flex;
	align-items: center;
	padding-top: 5rem;
	padding-bottom: 5rem;
	padding-right: 3.5rem;
	/* align left edge with the site container */
	padding-left: max(1.5rem, calc((100vw - 1320px) / 2 + 0.8rem));
}
.zr-bleed-split__text-inner {
	max-width: 620px;
}
.zr-bleed-split__media {
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	min-height: 100%;
}

/* Reverse: photo fills the left half, text on the right (aligned to container) */
.zr-bleed-split--reverse .zr-bleed-split__media {
	order: 1;
}
.zr-bleed-split--reverse .zr-bleed-split__text {
	order: 2;
	padding-left: 3.5rem;
	padding-right: max(1.5rem, calc((100vw - 1320px) / 2 + 0.8rem));
}
.zr-bleed-split--reverse .zr-bleed-split__text-inner {
	margin-left: auto;
}

@media (max-width: 991px) {
	.zr-bleed-split {
		grid-template-columns: 1fr;
	}
	.zr-bleed-split__text,
	.zr-bleed-split--reverse .zr-bleed-split__text {
		order: 0;
		padding: 3.5rem 1.5rem;
	}
	.zr-bleed-split__text-inner,
	.zr-bleed-split--reverse .zr-bleed-split__text-inner {
		max-width: none;
		margin-left: 0;
	}
	.zr-bleed-split__media,
	.zr-bleed-split--reverse .zr-bleed-split__media {
		min-height: 56vw;
		order: -1;
	}
}

/* Background photo layer (e.g. antique map behind II. Trate) */
.zr-section--map {
	position: relative;
	overflow: hidden;
}
.zr-section--map > .zr-section__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	z-index: 0;
}
.zr-section--map::after {
	content: "";
	position: absolute;
	inset: 0;
	/* dark black tint over the map */
	background: linear-gradient(
		rgba(0, 0, 0, 0.62),
		rgba(0, 0, 0, 0.7)
	);
	z-index: 1;
	pointer-events: none;
}
.zr-section--map > .container {
	position: relative;
	z-index: 2;
}
/* text sits directly on the dark map, so lighten it */
.zr-section--map .zr-pribeh-tracks__title {
	color: #f3ece0 !important;
	font-size: 4rem !important;
}
.zr-section--map .zr-pribeh-eyebrow {
	color: #d8c8a8 !important;
}
.zr-section--map .zr-pribeh-tracks__lead {
	color: #e2dccf !important;
}
.zr-section--map .zr-pribeh-track {
	background: rgba(255, 255, 255, 0.96);
	box-shadow: 0 14px 40px rgba(0, 0, 0, 0.45);
}

.zr-section--dark {
	background-color: #2a1f12;
	color: #fff;
}

.zr-section--dark .zr-pribeh-quotes .zr-pribeh-eyebrow {
	color: #fff;
}

.zr-section--dark .zr-pribeh-michelin .zr-pribeh-eyebrow {
	color: #fff;
}

.zr-section--dark h2 {
	color: #fff;
}

.zr-section--dark p {
	color: rgba(255, 255, 255, 0.8);
}

.zr-section--cta {
	padding: 4rem 0;
	background: linear-gradient(180deg, var(--color-beige) 0%, #ece6d8 100%);
}

.zr-section--cta h2 {
	margin-bottom: 0.75rem;
}

.zr-section--cta p {
	color: #666;
	max-width: 500px;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 2rem;
}

.zr-section h2 {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: 1.75rem;
	color: var(--color-dark);
	letter-spacing: 0.3px;
	margin-bottom: 1.25rem;
}

.zr-section p {
	font-size: 1rem;
	line-height: 2.3em !important;
	color: #555;
	margin-bottom: 2rem;
}

/* ── Split layout (text + image) ── */
.zr-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3rem;
	align-items: center;
}

.zr-split--reverse .zr-split__text {
	order: 2;
}

.zr-split--reverse .zr-split__media {
	order: 1;
}

.zr-img {
	width: 100%;
	height: auto;
	border-radius: 12px;
	display: block;
}

/* ── Kde kúpiť Zlatý Roh page ── */
.zr-kde-kupit-hero .zr-hero__bg {
	background-size: cover;
	background-position: center;
}

.zr-kde-kupit-stores__lead {
	max-width: 640px;
	margin: 0 auto 3rem;
	line-height: 1.65;
	font-size: 1.05rem;
}

.zr-kde-kupit-store {
	text-align: center;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.zr-kde-kupit-store__photo {
	margin: 0 0 1.25rem;
	width: 100%;
	max-width: 420px;
	border-radius: 14px;
	overflow: hidden;
	background: #f5f1eb;
}

.zr-kde-kupit-store__photo img {
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	display: block;
	vertical-align: middle;
}

.zr-kde-kupit-store__name {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: clamp(1.2rem, 2vw, 1.4rem);
	color: var(--color-dark);
	margin: 0 0 0.5rem;
	line-height: 1.3;
}

.zr-kde-kupit-store__address {
	font-family: var(--font-secondary);
	font-size: 0.92rem;
	font-style: normal;
	color: #666;
	margin: 0 0 1rem;
	line-height: 1.55;
}

.zr-kde-kupit-store__desc {
	font-family: var(--font-secondary);
	font-size: 0.95rem;
	color: #555;
	line-height: 1.65;
	margin: 0;
	max-width: 34ch;
}

@media (max-width: 991.98px) {
	.zr-kde-kupit-store__photo {
		max-width: 480px;
	}
}

/* ── Kontakt page ── */
.zr-kontakt-hero__bg {
	background: linear-gradient(135deg, var(--color-dark) 0%, var(--color-earth) 50%, var(--color-brown-dark) 100%);
	background-size: cover;
	background-position: center;
}

/* The contact hero sits under the fixed header, which is tall at the top of the page
   (logo-initial-spacing) and, on desktop, holds the open nav pills in the same band.
   The generic short hero only reserved 80px and centred its content, so on shorter
   viewports the title rode up under the header/menu. Reserve the full header height
   plus a pixel-floored min-height so the title always clears it, in any menu state.
   Higher specificity (.zr-hero.zr-kontakt-hero) beats the generic .zr-hero--short rules. */
.zr-hero.zr-kontakt-hero {
	padding-top: 232px;
	min-height: clamp(470px, 62vh, 580px);
}

@media (max-width: 1199.98px) {
	.zr-hero.zr-kontakt-hero {
		padding-top: 150px;
		min-height: clamp(360px, 46vh, 460px);
	}
}

@media (max-width: 575px) {
	.zr-hero.zr-kontakt-hero {
		padding-top: 132px;
		min-height: 340px;
	}
}

.zr-kontakt-info__heading {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: 1.75rem;
	color: var(--color-dark);
	margin-bottom: 2.5rem;
}

/* ──────────────────────────────────────────────────────────────────────
   Filozofia page — upgraded design
   - HERO: full-bleed image, dramatic dark veil, huge bold serif headline
   - MANIFESTO: horn separator + 3 paragraphs in front-page style
   - NUMBERS: 4 big-number facts strip on beige background
   - BENTO: image + text grid with eyebrow labels
   - FULL IMAGE: full-bleed break with caption
   - SPLIT: two-column text + materials photo + quote card
   - TERROIR: centered display heading + 2 columns
   - QUOTES STRIP: dark band, 3 quotes with attribution
   - CTA: shop + degustácia
   ──────────────────────────────────────────────────────────────────── */

.zr-filozofia-hero {
	position: relative;
	width: 100%;
	min-height: 100vh;
	overflow: hidden;
	color: #fff;
}
.zr-filozofia-hero__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	transform: scale(1.02);
	animation: zr-filo-hero-kenburns 18s ease-in-out infinite alternate;
}
@keyframes zr-filo-hero-kenburns {
	from { transform: scale(1.02); }
	to   { transform: scale(1.10); }
}
.zr-filozofia-hero__veil {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.20) 35%, rgba(0,0,0,0.30) 60%, rgba(0,0,0,0.75) 100%);
	z-index: 1;
}
.zr-filozofia-hero__content {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	min-height: 100vh;
	padding: 8rem 2rem;
}
.zr-filozofia-hero__content .container {
	text-align: left;
}
.zr-filozofia-hero__text {
	max-width: 1100px;
	margin-right: auto;
}
.zr-filozofia-hero__eyebrow {
	font-family: var(--font-secondary);
	font-size: 0.9rem;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--color-gold);
	margin: 0 0 1.25rem;
	font-weight: 500;
}
/* HUGE display title — keeps the original copy and makes it dominant (regular weight) */
.zr-filozofia-hero__title {
	font-family: var(--font-primary);
	font-size: clamp(2.2rem, 6.2vw, 5.75rem);
	font-weight: 400;
	line-height: 1.3em !important;
	letter-spacing: -0.02em;
	color: #fff;
	margin: 0 0 2rem;
	text-shadow: 0 4px 40px rgba(0,0,0,0.55);
	animation: fadeInUp 1s ease-out both;
}
.zr-filozofia-hero__scroll {
	font-family: var(--font-secondary);
	font-size: 0.78rem;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.78);
	margin: 0;
	display: inline-flex;
	align-items: center;
	gap: 0.85rem;
}
.zr-filozofia-hero__scroll::after {
	content: '';
	display: inline-block;
	width: 56px;
	height: 1px;
	background: rgba(255,255,255,0.6);
	transform-origin: left center;
	animation: zr-filo-scroll-grow 2s ease-in-out infinite;
}
@keyframes zr-filo-scroll-grow {
	0%, 100% { transform: scaleX(0.4); opacity: 0.5; }
	50%      { transform: scaleX(1); opacity: 1; }
}
.zr-filozofia .zr-page-body {
	margin-top: 0;
	background: #fff;
}
.container--narrow {
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
}
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0,0,0,0);
	white-space: nowrap;
	border: 0;
}

/* ── Manifesto block ── */
.zr-filo-manifesto {
	padding: 6rem 1.5rem 4rem;
}
.zr-filo-manifesto__lead {
	font-family: var(--font-primary);
	font-size: clamp(1.7rem, 3.6vw, 2.75rem);
	font-weight: 400;
	line-height: 1.35;
	color: var(--color-dark);
	text-align: center;
	max-width: 920px;
	margin: 0 auto 3.5rem;
	letter-spacing: -0.005em;
}
.zr-filo-manifesto__body {
	max-width: 720px;
	margin: 0 auto;
}
.zr-filo-manifesto__body p {
	font-family: var(--font-secondary);
	font-size: 1.125rem;
	line-height: 2rem !important;
	color: #4a4036;
	margin: 0 0 1.4rem;
	text-align: left;
}
.zr-filo-manifesto__body p:last-child {
	margin-bottom: 0;
}

/* ── Big numbers strip ── */
.zr-filo-numbers {
	background: var(--color-beige);
	padding: 5rem 1.5rem;
	margin: 3rem 0 0;
}
.zr-filo-numbers__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2.5rem;
	max-width: 1200px;
	margin: 0 auto;
}
.zr-filo-numbers__item {
	text-align: center;
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	position: relative;
}
.zr-filo-numbers__item:not(:last-child)::after {
	content: '';
	position: absolute;
	right: -1.25rem;
	top: 18%;
	bottom: 18%;
	width: 1px;
	background: rgba(62,39,35,0.15);
}
.zr-filo-numbers__big {
	font-family: var(--font-primary);
	font-size: clamp(2.6rem, 5.5vw, 4.5rem);
	font-weight: 600;
	color: var(--color-dark);
	line-height: 1;
	letter-spacing: -0.02em;
	display: block;
}
.zr-filo-numbers__big small {
	font-size: 0.42em;
	font-weight: 400;
	color: var(--color-gold);
	margin-left: 0.25rem;
	letter-spacing: 0;
}
.zr-filo-numbers__label {
	font-family: var(--font-secondary);
	font-size: 0.92rem;
	line-height: 1.45;
	color: #5b4a3f;
	letter-spacing: 0.02em;
	display: block;
	max-width: 220px;
	margin: 0 auto;
}

/* ── Bento grid ── */
.zr-filo-bento {
	padding: 6rem 0 5rem;
}
.zr-filo-bento__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-template-rows: auto auto;
	gap: 1.25rem;
}
.zr-filo-bento__cell {
	margin: 0;
	border-radius: 20px;
	overflow: hidden;
	background: #faf9f7;
}
.zr-filo-bento__cell--wide {
	grid-column: 1 / -1;
}
.zr-filo-bento__cell--wide img {
	width: 100%;
	height: 80vh;
	display: block;
	object-fit: cover;
}
.zr-filo-bento__cell--text {
	padding: 2.75rem 2.5rem;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	background: #f8f4ec;
}
.zr-filo-bento__eyebrow {
	font-family: var(--font-secondary);
	font-size: 0.78rem;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--color-gold);
	margin: 0 0 1.1rem;
	font-weight: 600;
}
.zr-filo-bento__cell--text h2 {
	font-family: var(--font-primary);
	font-size: clamp(1.75rem, 2.6vw, 2.2rem);
	font-weight: 500;
	color: var(--color-dark);
	line-height: 1.2;
	margin: 0 0 1.1rem;
	letter-spacing: -0.01em;
}
.zr-filo-bento__cell--text p {
	font-family: var(--font-secondary);
	font-size: 1.02rem;
	line-height: 1.85 !important;
	color: #5a4d44;
	margin: 0 0 1rem;
}
.zr-filo-bento__cell--text p:last-child {
	margin-bottom: 0;
}
.zr-filo-bento__cell--tall {
	overflow: hidden;
}
.zr-filo-bento__cell--tall img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	min-height: 320px;
	transition: transform 1.2s ease;
}
.zr-filo-bento__cell--tall:hover img {
	transform: scale(1.04);
}

/* ── Full bleed image break ── */
.zr-filo-fullimg {
	width: 100%;
	margin: 0;
	position: relative;
}
.zr-filo-fullimg img {
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
	max-height: 78vh;
}
/* Filip page: anchor the cropped full-bleed image to its top edge */
.zr-filo-fullimg--top img {
	object-position: top;
}
.zr-filo-fullimg__cap {
	position: absolute;
	left: 2rem;
	bottom: 1.5rem;
	font-family: var(--font-secondary);
	font-size: 0.8rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.92);
	background: rgba(0,0,0,0.45);
	padding: 0.55rem 1rem;
	border-radius: 999px;
	backdrop-filter: blur(6px);
}

/* ── Split: text + media quote card ── */
.zr-filo-split-quote {
	padding: 6rem 0;
	background: #fff;
}
.zr-filo-split-quote__grid {
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	gap: 4rem;
	align-items: start;
}
.zr-filo-split-quote__text h2 {
	font-family: var(--font-primary);
	font-size: clamp(1.8rem, 2.8vw, 2.4rem);
	font-weight: 500;
	color: var(--color-dark);
	line-height: 1.2;
	letter-spacing: -0.01em;
	margin: 0 0 1.1rem;
}
.zr-filo-split-quote__text h2:not(:first-of-type) {
	margin-top: 2.75rem;
}
.zr-filo-split-quote__text p {
	font-family: var(--font-secondary);
	font-size: 1.08rem;
	line-height: 1.9 !important;
	color: #4a4036;
	margin: 0 0 1rem;
}
.zr-filo-split-quote__media figure {
	margin: 0 0 1.75rem;
	border-radius: 20px;
	overflow: hidden;
}
.zr-filo-split-quote__media img {
	width: 100%;
	height: auto;
	display: block;
}
.zr-filo-quote-card {
	margin: 0;
	padding: 2.5rem 2.25rem;
	background: var(--color-beige);
	border-radius: 20px;
	position: relative;
}
.zr-filo-quote-card::before {
	content: '“';
	position: absolute;
	top: 0.25rem;
	right: 1.75rem;
	font-family: var(--font-primary);
	font-size: 7rem;
	line-height: 1;
	color: rgba(212,175,55,0.18);
	pointer-events: none;
}
.zr-filo-quote-card p {
	font-family: var(--font-primary);
	font-style: italic;
	font-size: 1.32rem;
	color: var(--color-dark);
	margin: 0 0 1rem;
	line-height: 1.5;
	letter-spacing: -0.005em;
	position: relative;
}
.zr-filo-quote-card cite {
	font-family: var(--font-secondary);
	font-size: 0.8rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--color-brown-dark);
	font-style: normal;
	font-weight: 500;
}

/* ── Kvevri (reversed split: image left, text right) ── */
.zr-filo-split-quote--reverse {
	background: #faf6ee;
}
.zr-filo-split-quote--reverse .zr-filo-split-quote__media {
	order: -1;
}
.zr-filo-kvevri__cap {
	font-family: var(--font-secondary);
	font-size: 0.8rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--color-brown-dark);
	text-align: center;
	margin: 1rem 0 0;
}

/* ── Terroir block ── */
.zr-filo-terroir {
	padding: 6rem 1.5rem 6rem;
	background: #faf6ee;
	background-image: linear-gradient(180deg, #fff 0%, #faf6ee 35%, #faf6ee 65%, #fff 100%);
}
.zr-filo-terroir__heading {
	font-family: var(--font-primary);
	font-weight: 600;
	font-size: clamp(2.4rem, 6.5vw, 5.5rem);
	line-height: 1.05;
	letter-spacing: -0.025em;
	color: var(--color-dark);
	text-align: center;
	margin: 0 auto 3.5rem;
	max-width: 1200px;
}
.zr-filo-terroir__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3rem;
	max-width: 1000px;
	margin: 0 auto;
}
.zr-filo-terroir__col p {
	font-family: var(--font-secondary);
	font-size: 1.08rem;
	line-height: 1.95 !important;
	color: #4a4036;
	margin: 0;
}

/* ── Dark quote strip ── */
.zr-filo-quotes-strip {
	background: var(--color-dark);
	background-image:
		radial-gradient(ellipse at top, rgba(212,175,55,0.08) 0%, transparent 60%),
		radial-gradient(ellipse at bottom, rgba(212,175,55,0.05) 0%, transparent 60%);
	color: #fff;
	padding: 6rem 2rem;
}
.zr-filo-quotes-strip__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 3rem;
	max-width: 1200px;
	margin: 0 auto;
}
.zr-filo-quote-mini {
	margin: 0;
	text-align: center;
	padding: 0 0.5rem;
	position: relative;
}
.zr-filo-quote-mini:not(:last-child)::after {
	content: '';
	position: absolute;
	right: -1.5rem;
	top: 10%;
	bottom: 10%;
	width: 1px;
	background: rgba(212,175,55,0.25);
}
.zr-filo-quote-mini p {
	font-family: var(--font-primary);
	font-style: italic;
	font-size: 1.18rem;
	line-height: 1.55 !important;
	color: rgba(255,255,255,0.96);
	margin: 0 0 1.25rem;
	letter-spacing: -0.005em;
}
.zr-filo-quote-mini cite {
	font-family: var(--font-secondary);
	font-size: 0.78rem;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--color-gold);
	font-style: normal;
	font-weight: 500;
}

/* ── CTA ── */
.zr-filo-cta {
	padding: 6rem 1.5rem 7rem;
	background: #fff;
}
.zr-filo-cta__heading {
	font-family: var(--font-primary);
	font-size: clamp(2rem, 4vw, 3.2rem);
	font-weight: 500;
	color: var(--color-dark);
	letter-spacing: -0.01em;
	line-height: 1.15;
	margin: 0 0 1.25rem;
}
.zr-filo-cta__lead {
	font-family: var(--font-secondary);
	font-size: 1.12rem;
	line-height: 1.8 !important;
	color: #5a4d44;
	max-width: 640px;
	margin: 0 auto 2.5rem;
}
.zr-filo-cta .zr-cta-buttons {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: center;
}

/* ── Responsive ── */
@media (max-width: 991.98px) {
	.zr-filozofia-hero__content { padding: 7rem 1.5rem; }
	.zr-filo-numbers__grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 3rem 2rem;
	}
	.zr-filo-numbers__item:nth-child(2n)::after { display: none; }
	.zr-filo-bento__grid { grid-template-columns: 1fr; }
	.zr-filo-bento__cell--tall img { min-height: 260px; }
	.zr-filo-split-quote__grid { grid-template-columns: 1fr; gap: 3rem; }
	.zr-filo-terroir__grid { grid-template-columns: 1fr; gap: 1.5rem; }
	.zr-filo-quotes-strip__grid { grid-template-columns: 1fr; gap: 3rem; }
	.zr-filo-quote-mini:not(:last-child)::after {
		right: auto; left: 50%; top: auto; bottom: -1.5rem;
		transform: translateX(-50%);
		width: 60px; height: 1px;
	}
}
@media (max-width: 575.98px) {
	.zr-filozofia-hero__content { padding: 6rem 1.25rem; }
	.zr-filozofia-hero__title { font-size: clamp(1.85rem, 10vw, 2.85rem); }
	.zr-filo-manifesto { padding: 4rem 1.25rem 2.5rem; }
	.zr-filo-manifesto__lead { margin-bottom: 2.5rem; }
	.zr-filo-numbers { padding: 3.5rem 1.25rem; }
	.zr-filo-numbers__grid { grid-template-columns: 1fr; gap: 2.5rem; }
	.zr-filo-numbers__item::after { display: none !important; }
	.zr-filo-bento { padding: 3.5rem 0 3rem; }
	.zr-filo-bento__cell--text { padding: 2rem 1.5rem; }
	.zr-filo-fullimg__cap { left: 1rem; bottom: 1rem; font-size: 0.7rem; }
	.zr-filo-split-quote { padding: 3.5rem 0; }
	.zr-filo-quote-card { padding: 2rem 1.5rem; }
	.zr-filo-terroir { padding: 3.5rem 1.25rem; }
	.zr-filo-quotes-strip { padding: 3.5rem 1.25rem; }
	.zr-filo-cta { padding: 3.5rem 1.25rem 4.5rem; }
}

/* ── Kontakt — minimal (flat map + labelled blocks + bold wordmark) ── */
.zr-kontakt-min {
	background: #fff;
	padding: clamp(3.5rem, 7vw, 6rem) 0 clamp(3rem, 6vw, 5rem);
	overflow: hidden;
	position: relative;
}

/* Reusable big offwhite logo-symbol background.
   Add an element with this class inside a position:relative,
   overflow:hidden container; keep sibling content at z-index >= 1. */
.zr-bg-logo-symbol {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: clamp(480px, 72vw, 1200px);
	height: clamp(480px, 72vw, 1200px);
	background: url("../img/logo-zlatyroh-symbol-gray-bg.svg") no-repeat center / contain;
	opacity: 0.55;
	z-index: 0;
	pointer-events: none;
}

.zr-kontakt-min__inner {
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 clamp(1.5rem, 5vw, 4rem);
	position: relative;
}

.zr-kontakt-min__grid {
	position: relative;
	z-index: 1;
}

.zr-kontakt-min__grid {
	display: grid;
	grid-template-columns: 1.15fr 0.85fr;
	gap: clamp(2.5rem, 6vw, 5.5rem);
	align-items: start;
}

.zr-kontakt-min__map {
	position: relative;
	aspect-ratio: 4 / 3;
	border: 1px solid rgba(62, 39, 35, 0.18);
	background: var(--color-beige);
	border-radius: 12px;
	overflow: hidden;
}

.zr-kontakt-min__map iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border-radius: 12px;
}

.zr-kontakt-min__info {
	display: flex;
	flex-direction: column;
	gap: clamp(1.75rem, 3vw, 2.5rem);
	padding-top: 0.25rem;
}

.zr-kontakt-block__label {
	display: block;
	font-family: var(--font-secondary);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--color-dark);
	margin: 0 0 0.85rem;
}

.zr-kontakt-block__text {
	font-family: var(--font-secondary);
	font-size: 1.12rem;
	font-weight: 500;
	line-height: 1.5;
	color: var(--color-dark);
	margin: 0;
	font-style: normal;
}

.zr-kontakt-link {
	display: block;
	width: fit-content;
	margin-top: 0.45rem;
	font-family: var(--font-secondary);
	font-size: 1.12rem;
	font-weight: 600;
	color: var(--color-dark);
	text-decoration: underline;
	text-underline-offset: 4px;
	text-decoration-thickness: 1px;
	transition: color 0.2s ease;
}

.zr-kontakt-link:hover {
	color: var(--color-gold-dark);
}

.zr-kontakt-social {
	display: flex;
	gap: 1.1rem;
}

.zr-kontakt-social a {
	display: inline-flex;
	color: var(--color-dark);
	transition: color 0.2s ease;
}

.zr-kontakt-social a:hover {
	color: var(--color-gold-dark);
}

.zr-kontakt-min__wordmark {
	position: absolute;
	bottom: 2%;
	left: 50%;
	transform: translateX(-50%);
	z-index: 0;
	font-family: var(--font-primary);
	font-weight: 800;
	font-size: clamp(7rem, 32vw, 28rem);
	line-height: 0.9;
	letter-spacing: -0.025em;
	color: #f6f6f6;
	margin: 0;
	white-space: nowrap;
	pointer-events: none;
	user-select: none;
	/* Very slow side-to-side drift around the centred position, eased at both ends. */
	animation: zr-wordmark-drift 26s cubic-bezier(0.45, 0, 0.55, 1) infinite alternate;
	will-change: transform;
}

@keyframes zr-wordmark-drift {
	from { transform: translateX(calc(-50% - 32px)) translateY(var(--wm-parallax, 0px)); }
	to   { transform: translateX(calc(-50% + 32px)) translateY(var(--wm-parallax, 0px)); }
}

@media (prefers-reduced-motion: reduce) {
	.zr-kontakt-min__wordmark {
		animation: none;
		transform: translateX(-50%);
	}
}

@media (max-width: 859.98px) {
	.zr-kontakt-min__grid {
		grid-template-columns: 1fr;
	}
	.zr-kontakt-min__map {
		aspect-ratio: 3 / 2;
	}
}

/* --------------------------------------------------------------
# Zážitky page
-------------------------------------------------------------- */

.zr-zazitky-hero {
	position: relative;
	min-height: 85vh;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	margin-top: -80px;
	padding-top: 80px;
}
.zr-zazitky-hero__fallback {
	position: absolute;
	inset: 0;
	background: #1c1916;
	z-index: 0;
}
.zr-zazitky-hero__video-wrap {
	position: absolute;
	inset: 0;
	z-index: 1;
}
.zr-zazitky-hero__video-wrap.is-failed {
	display: none;
}
.zr-zazitky-hero__video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.zr-zazitky-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,0.25) 0%, rgba(0,0,0,0.55) 100%);
	z-index: 2;
	display: none;
}
.zr-zazitky-hero__content {
	position: relative;
	z-index: 3;
	text-align: center;
	padding: 2rem;
}
.zr-zazitky-hero__title {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: clamp(2.5rem, 6vw, 4rem);
	color: #fff;
	line-height: 1.2;
	margin: 0 0 1rem;
}
.zr-zazitky-hero__subtitle {
	font-size: clamp(1rem, 2vw, 1.15rem);
	color: rgba(255,255,255,0.85);
	margin: 0;
}

.zr-zazitky-body {
	/* White starts below sep-top so paint-split strip is transparent over hero */
	background: linear-gradient(to bottom, transparent 60px, #fff 60px);
	margin-top: -55px;
	position: relative;
	z-index: 3;
}
.zr-zazitky-body > .sep-top {
	background-color: transparent;
}
.zr-zazitky .zr-zazitok-block,
.zr-zazitky .zr-zazitok-block__content,
.zr-zazitky .zr-zazitok-block__media,
.zr-zazitky .zr-zazitky-cta {
	border: none !important;
}
.zr-zazitky .zr-zazitok-block__img {
	border: none !important;
}

.zr-zazitok-block {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-areas: "content media";
	min-height: 60vh;
	align-items: stretch;
	background: #fff;
	border: none;
}
.zr-zazitok-block--img-left {
	grid-template-areas: "media content";
}
.zr-zazitok-block__content { grid-area: content; }
.zr-zazitok-block__media { grid-area: media; }

.zr-zazitok-block__content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 4rem;
	background: #fff;
	border: none;
}
.zr-zazitok-block__title {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: clamp(2.5rem, 6vw, 5rem);
	line-height: 1.05;
	color: var(--color-dark);
	margin: 0 0 1.25rem;
	letter-spacing: -0.02em;
}
.zr-zazitok-block__desc {
	font-size: 1.05rem;
	line-height: 1.65;
	color: #555;
	margin: 0;
	max-width: 42ch;
}
.zr-zazitok-block__btn {
	margin-top: 1.25rem;
	width: auto;
	align-self: flex-start;
}
.zr-zazitok-block__media {
	background: #fff;
	min-height: 320px;
	overflow: hidden;
	border: none;
}
.zr-zazitok-block__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	min-height: 320px;
	border: none;
	vertical-align: middle;
}
/* Teambuilding block: full-width content, background photo (zazitok1), no media column */
.zr-zazitok-block--2 {
	grid-template-columns: 1fr;
	grid-template-areas: "content";
}
.zr-zazitok-block--2 .zr-zazitok-block__content {
	background-size: 100% auto;
	background-position: top center;
	background-repeat: no-repeat;
	min-height: 60vh;
	position: relative;
	align-items: center;
	text-align: center;
}
.zr-zazitok-block--2 .zr-zazitok-block__btn {
	align-self: center;
}
.zr-zazitok-block--2 .zr-zazitok-block__title,
.zr-zazitok-block--2 .zr-zazitok-block__desc,
.zr-zazitok-block--2 .zr-zazitok-block__btn {
	position: relative;
	z-index: 1;
}
.zr-zazitok-block--2 .zr-zazitok-block__title {
	color: #fff;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
}
.zr-zazitok-block--2 .zr-zazitok-block__desc {
	color: #fff !important;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}

/* Degustácie: full-width text only, no background photo */
.zr-zazitok-block--1 {
	grid-template-columns: 1fr;
	grid-template-areas: "content";
}
.zr-zazitok-block--1 .zr-zazitok-block__content {
	background: #fff;
	align-items: center;
	text-align: center;
}
.zr-zazitok-block--1 .zr-zazitok-block__btn {
	align-self: center;
}

.zr-zazitok-block--5 .zr-zazitok-block__img {
	object-position: top left;
}

.zr-zazitky-cta {
	padding: 4rem 2rem;
	text-align: center;
	background: #fff;
}
.zr-zazitky-cta__text {
	font-size: 1.1rem;
	color: #555;
	margin: 0 0 1.5rem;
}

@media (max-width: 991.98px) {
	.zr-zazitok-block {
		grid-template-columns: 1fr;
		grid-template-areas: "content" "media";
		min-height: 0;
	}
	.zr-zazitok-block--1,
	.zr-zazitok-block--2 {
		grid-template-areas: "content";
	}
	.zr-zazitok-block--img-left {
		grid-template-areas: "content" "media";
	}
	.zr-zazitok-block__content {
		padding: 3rem 1.5rem 2rem;
	}
	.zr-zazitok-block__media {
		min-height: 280px;
	}
	.zr-zazitok-block__img {
		min-height: 280px;
	}
	.zr-zazitok-block__title {
		font-size: clamp(2rem, 8vw, 3.5rem);
	}
}

@media (max-width: 767.98px) {
	.zr-zazitky-hero {
		min-height: 75vh;
	}
}

/* --------------------------------------------------------------
# Shop archive (Vína z Devína)
-------------------------------------------------------------- */
.zr-archive-shop {
	padding-bottom: 0;
}

/* Hero: custom for shop */
.zr-shop-hero {
	position: relative;
	min-height: 55vh;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding-bottom: 2rem;
	overflow: hidden;
}
.zr-shop-hero__bg {
	position: absolute;
	inset: 0;
	background: linear-gradient(160deg, #2c2419 0%, #1a1512 50%, #0f0d0b 100%);
	z-index: 0;
}
.zr-shop-hero__bg::after {
	content: '';
	position: absolute;
	inset: 0;
	background-image: url('../img/frontpage/hero-image-overlay.webp');
	background-size: cover;
	background-position: center;
	opacity: 0.15;
	pointer-events: none;
}
.zr-shop-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0,0,0,0.5) 0%, transparent 50%);
	z-index: 1;
}
.zr-shop-hero__content {
	position: relative;
	z-index: 2;
	text-align: center;
	padding: 0 1rem 0;
	max-width: 720px;
	margin: 0 auto;
}
.zr-shop-hero__kicker {
	font-size: 0.85rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--color-gold);
	margin-bottom: 0.5rem;
	font-family: var(--font-secondary);
}
.zr-shop-hero__title {
	font-family: var(--font-primary);
	font-weight: 300;
	font-size: clamp(4rem, 6vw, 10rem);
	color: #fff;
	margin: 0 0 1rem;
	line-height: 1.15;
	text-shadow: 0 2px 20px rgba(0,0,0,0.3);
}
.zr-shop-hero__subtitle {
	font-size: 1.05rem;
	line-height: 1.65;
	color: rgba(255,255,255,0.85);
	margin: 0;
	max-width: 520px;
	margin-left: auto;
	margin-right: auto;
}
.zr-shop-hero .sep-wave {
	margin-bottom: -1px;
	flex-shrink: 0;
}

/* ── Shop Hero V2: immersive full-width ── */
.zr-shop-hero-v2 {
	position: relative;
	width: 100%;
	min-height: 90vh;
	display: flex;
	align-items: stretch;
	overflow: hidden;
}
.zr-shop-hero-v2__bg {
	position: absolute;
	inset: 0;
	background: #fff;
	z-index: 0;
}
.zr-shop-hero-v2__inner {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: 1fr 1fr;
	width: 100%;
	min-height: 90vh;
}
.zr-shop-hero-v2__text {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 6rem 4rem 6rem 6vw;
}
.zr-shop-hero-v2__title {
	font-family: var(--font-primary);
	font-weight: 300;
	font-size: clamp(5rem, 10vw, 12rem);
	line-height: 0.95;
	color: var(--color-dark);
	margin: 0 0 1.5rem;
	letter-spacing: -0.02em;
}
.zr-shop-hero-v2__subtitle {
	font-family: var(--font-secondary);
	font-size: clamp(1rem, 1.5vw, 1.2rem);
	line-height: 1.65;
	color: #444;
	max-width: 420px;
	margin: 0 0 2rem;
}
.zr-shop-hero-v2__text .btn {
	align-self: flex-start;
}
.zr-shop-hero-v2__bottles {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2rem 4vw 2rem 0;
}
.zr-shop-hero-v2__bottles-img {
	max-height: 82vh;
	width: auto;
	max-width: 100%;
	object-fit: contain;
}
.zr-shop-hero-v2__logo {
	position: absolute;
	top: 2rem;
	left: 50%;
	transform: translateX(-50%);
	z-index: 5;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.75rem 2.25rem;
	background: #fff;
	border-radius: 999px;
	box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.zr-shop-hero-v2__logo:hover,
.zr-shop-hero-v2__logo:focus-visible {
	box-shadow: 0 12px 36px rgba(0, 0, 0, 0.12);
}
.zr-shop-hero-v2__logo img {
	display: block;
	height: 48px;
	width: auto;
}

@media (max-width: 991.98px) {
	.zr-shop-hero-v2 {
		min-height: auto;
	}
	.zr-shop-hero-v2__inner {
		grid-template-columns: 1fr;
		min-height: auto;
	}
	.zr-shop-hero-v2__text {
		padding: 4rem 2rem 2rem;
		text-align: center;
		align-items: center;
	}
	.zr-shop-hero-v2__title {
		font-size: clamp(4rem, 16vw, 6.5rem);
	}
	.zr-shop-hero-v2__subtitle {
		margin-left: auto;
		margin-right: auto;
	}
	.zr-shop-hero-v2__text .btn {
		align-self: center;
	}
	.zr-shop-hero-v2__bottles {
		justify-content: center;
		padding: 0 2rem 2rem;
	}
	.zr-shop-hero-v2__bottles-img {
		max-height: 52vh;
	}
	.zr-shop-hero-v2__logo {
		top: 1rem;
		padding: 0.5rem 1.5rem;
	}
	.zr-shop-hero-v2__logo img {
		height: 36px;
	}
	.zr-shop-hero-v2__text {
		padding-top: 6rem;
	}
}
@media (max-width: 575.98px) {
	.zr-shop-hero-v2__text {
		padding: 5.5rem 1.25rem 2rem;
	}
	.zr-shop-hero-v2__title {
		font-size: clamp(4rem, 20vw, 6rem);
	}
	.zr-shop-hero-v2__bottles {
		padding: 0 1.25rem 2rem;
	}
	.zr-shop-hero-v2__bottles-img {
		max-height: 44vh;
	}
}

/* ── Shop connector line (right margin) ── */
.zr-shop-with-connector {
	position: relative;
}
.zr-shop-connector-line {
	position: absolute;
	top: 0;
	bottom: 0;
	right: 2.5rem;
	width: 1px;
	background: linear-gradient(180deg, transparent 0%, var(--color-gold-pastel) 15%, var(--color-gold-pastel) 85%, transparent 100%);
	opacity: 0.6;
	pointer-events: none;
}
.zr-shop-connector-line::before,
.zr-shop-connector-line::after {
	content: '';
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	width: 6px;
	height: 6px;
	background: var(--color-gold-pastel);
	border-radius: 50%;
	opacity: 0.8;
}
.zr-shop-connector-line::before {
	top: 25%;
}
.zr-shop-connector-line::after {
	top: 60%;
}
@media (max-width: 991.98px) {
	.zr-shop-connector-line {
		right: 1rem;
	}
}
@media (max-width: 575.98px) {
	.zr-shop-connector-line {
		display: none;
	}
}

/* ── Wine grape intro: photo container with wave-shaped top edge ──
   Two-layer mask: inline SVG wave for the top --zr-grape-wave-h, solid
   below. Lets the bg photo show through with a wavy top crop. */
.zr-shop-grape-intro {
	--zr-grape-wave-h: 140px;
	background-image: linear-gradient(rgba(0, 0, 0, 0.28), rgba(0, 0, 0, 0.28)), url('../img/frontpage/story1.jpg');
	background-image: linear-gradient(rgba(0, 0, 0, 0.28), rgba(0, 0, 0, 0.28)), -webkit-image-set(url('../img/frontpage/story1.avif') type('image/avif'), url('../img/frontpage/story1.webp') type('image/webp'));
	background-image: linear-gradient(rgba(0, 0, 0, 0.28), rgba(0, 0, 0, 0.28)), image-set(url('../img/frontpage/story1.avif') type('image/avif'), url('../img/frontpage/story1.webp') type('image/webp'));
	background-position: center center, center center;
	background-repeat: no-repeat, no-repeat;
	background-size: cover, cover;
	padding: calc(var(--zr-grape-wave-h) + 5rem) 0 6rem;
	position: relative;
	-webkit-mask-image:
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 100' preserveAspectRatio='none'><path d='M0,50 C360,0 1080,100 1440,50 L1440,100 L0,100 Z' fill='white'/></svg>"),
		linear-gradient(#fff, #fff);
	-webkit-mask-position: top, bottom;
	-webkit-mask-size: 100% var(--zr-grape-wave-h), 100% calc(100% - var(--zr-grape-wave-h));
	-webkit-mask-repeat: no-repeat, no-repeat;
	mask-image:
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 100' preserveAspectRatio='none'><path d='M0,50 C360,0 1080,100 1440,50 L1440,100 L0,100 Z' fill='white'/></svg>"),
		linear-gradient(#fff, #fff);
	mask-position: top, bottom;
	mask-size: 100% var(--zr-grape-wave-h), 100% calc(100% - var(--zr-grape-wave-h));
	mask-repeat: no-repeat, no-repeat;
}
.zr-shop-grape-intro__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 2rem;
}
.zr-shop-grape-intro__chevron {
	position: absolute;
	left: 50%;
	bottom: 1.5rem;
	transform: translateX(-50%);
	display: flex;
	line-height: 0;
	opacity: 0.7;
	filter: drop-shadow(0 1px 6px rgba(0, 0, 0, 0.4));
}
.zr-shop-grape-intro__chevron svg {
	width: 22px;
	height: 22px;
}
.zr-shop-grape-intro__text {
	max-width: 520px;
	margin: 0 auto;
	text-align: center;
}
.zr-shop-grape-intro__title {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: clamp(2rem, 3.5vw, 3rem);
	color: #fff;
	margin: 0 0 1rem;
	line-height: 1.2;
	text-shadow: 0 2px 18px rgba(0, 0, 0, 0.45);
}
.zr-shop-grape-intro__lead {
	font-size: 1.05rem;
	line-height: 1.75;
	color: #f5ece1;
	margin: 0 0 2rem;
	text-shadow: 0 1px 12px rgba(0, 0, 0, 0.45);
}
@media (max-width: 991.98px) {
	.zr-shop-grape-intro {
		--zr-grape-wave-h: 100px;
		padding: calc(var(--zr-grape-wave-h) + 3rem) 0 4rem;
	}
	.zr-shop-grape-intro__text {
		max-width: none;
	}
}
@media (max-width: 575.98px) {
	.zr-shop-grape-intro {
		--zr-grape-wave-h: 70px;
		padding: calc(var(--zr-grape-wave-h) + 2rem) 0 3rem;
	}
	.zr-shop-grape-intro__inner {
		padding: 0 1.25rem;
	}
}

/* ── Shop sells: 3-card grid ── */
.zr-shop-sells {
	background: #fff;
}
.zr-shop-sells__heading {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: clamp(1.75rem, 3vw, 2.25rem);
	color: var(--color-dark);
	text-align: center;
	margin: 0 0 3rem;
}
.zr-shop-sells__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
}
.zr-shop-sells__card {
	text-decoration: none;
	color: inherit;
	display: block;
	border-radius: 16px;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 4px 20px rgba(0,0,0,0.06);
	transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.zr-shop-sells__card:hover {
	box-shadow: 0 12px 40px rgba(0,0,0,0.1);
	color: inherit;
	text-decoration: none;
}
.zr-shop-sells__media {
	margin: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}
.zr-shop-sells__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.5s ease;
}
.zr-shop-sells__card:hover .zr-shop-sells__media img {
	transform: scale(1.04);
}
.zr-shop-sells__body {
	padding: 1.5rem 1.5rem 1.75rem;
}
.zr-shop-sells__title {
	font-family: var(--font-primary);
	font-size: 1.25rem;
	font-weight: 400;
	color: var(--color-dark);
	margin: 0 0 0.5rem;
	line-height: 1.3;
}
.zr-shop-sells__body p {
	font-size: 0.95rem;
	line-height: 1.65;
	color: #666;
	margin: 0 0 1rem;
}
.zr-shop-sells__link {
	font-size: 0.9rem;
	font-weight: 500;
	color: var(--color-gold-pastel);
	transition: color 0.2s ease;
}
.zr-shop-sells__card:hover .zr-shop-sells__link {
	color: var(--color-dark);
}
@media (max-width: 991.98px) {
	.zr-shop-sells__grid {
		grid-template-columns: 1fr 1fr;
	}
}
@media (max-width: 575.98px) {
	.zr-shop-sells__grid {
		grid-template-columns: 1fr;
	}
}

/* ── Wine showcase: editorial sections ── */
.zr-wine-showcase {
	background: #fff;
}
.zr-wine-feature {
	position: relative;
	padding: 6rem 0;
	border-bottom: 1px solid rgba(0,0,0,0.06);
}
.zr-wine-feature:last-child {
	border-bottom: none;
}
@media (min-width: 992px) {
	.zr-wine-feature {
		padding: 2rem 0;
		z-index: 1;
	}
	.zr-wine-feature__media {
		margin-top: -4rem;
		margin-bottom: -4rem;
	}
}
.zr-wine-feature__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 4rem;
	align-items: center;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 2rem;
}
.zr-wine-feature--reversed .zr-wine-feature__inner {
	direction: rtl;
}
.zr-wine-feature--reversed .zr-wine-feature__inner > * {
	direction: ltr;
}
.zr-wine-feature__number {
	display: block;
	font-family: var(--font-primary);
	font-size: 0.85rem;
	letter-spacing: 0.15em;
	color: var(--color-gold);
	margin-bottom: 1rem;
	font-weight: 400;
}
.zr-wine-feature__name {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: clamp(2rem, 3.5vw, 3rem);
	color: var(--color-dark);
	margin: 0 0 0.5rem;
	line-height: 1.15;
}
.zr-wine-feature__subtitle {
	font-family: var(--font-secondary);
	font-size: 0.85rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-gold-dark);
	margin: 0 0 1.5rem;
	font-weight: 500;
}
.zr-wine-feature__desc {
	font-size: 1.05rem;
	line-height: 1.75;
	color: #555;
	margin: 0 0 2rem;
	max-width: 460px;
}
.zr-wine-feature__footer {
	display: flex;
	align-items: center;
	gap: 1.5rem;
}
.zr-wine-feature__price {
	font-family: var(--font-primary);
	font-size: 1.5rem;
	font-weight: 400;
	color: var(--color-dark);
}
.zr-wine-feature__media {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2rem;
}
.zr-wine-feature__img {
	max-height: 1040px;
	width: auto;
	max-width: 100%;
	object-fit: contain;
	transition: transform 0.5s ease;
}
.zr-wine-feature__media:hover .zr-wine-feature__img {
	transform: scale(1.03);
}
.zr-wine-feature:nth-child(even) {
	background: #fff;
}
@media (max-width: 991.98px) {
	.zr-wine-feature {
		padding: 4rem 0;
	}
	.zr-wine-feature__inner {
		grid-template-columns: 1fr;
		gap: 2rem;
		text-align: center;
	}
	.zr-wine-feature--reversed .zr-wine-feature__inner {
		direction: ltr;
	}
	.zr-wine-feature__desc {
		max-width: none;
		margin-left: auto;
		margin-right: auto;
	}
	.zr-wine-feature__footer {
		justify-content: center;
	}
	.zr-wine-feature__media {
		order: -1;
	}
	.zr-wine-feature__img {
		max-height: 760px;
	}
}
@media (max-width: 575.98px) {
	.zr-wine-feature {
		padding: 3rem 0;
	}
	.zr-wine-feature__inner {
		padding: 0 1.25rem;
	}
	.zr-wine-feature__img {
		max-height: 560px;
	}
}

/* ── Shop gallery ── */
.zr-shop-gallery {
	background: #fff;
	padding: 3rem 0 5rem;
}
.zr-shop-gallery__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}
.zr-shop-gallery__item {
	margin: 0;
	border-radius: 16px;
	overflow: hidden;
	aspect-ratio: 4 / 3;
}
.zr-shop-gallery__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.5s ease;
}
.zr-shop-gallery__item:hover img {
	transform: scale(1.04);
}
@media (max-width: 767.98px) {
	.zr-shop-gallery__grid {
		grid-template-columns: 1fr;
		gap: 1rem;
	}
}

/* ── Shop story V2 ── */
.zr-shop-story-v2 {
	background: #fff;
}
.zr-shop-story-v2__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 4rem;
	align-items: center;
}
.zr-shop-story-v2__kicker {
	display: block;
	font-family: var(--font-secondary);
	font-size: 0.8rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--color-gold-dark);
	font-weight: 600;
	margin-bottom: 0.75rem;
}
.zr-shop-story-v2__title {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	color: var(--color-dark);
	margin: 0 0 1.25rem;
	line-height: 1.2;
}
.zr-shop-story-v2__text p {
	font-size: 1.05rem;
	line-height: 1.75;
	color: #555;
}
.zr-shop-story-v2__text .btn {
	margin-top: 0.5rem;
}
.zr-shop-story-v2__media {
	margin: 0;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 20px 60px rgba(0,0,0,0.1);
}
.zr-shop-story-v2__img {
	width: 100%;
	height: auto;
	display: block;
	transition: transform 0.5s ease;
}
.zr-shop-story-v2__media:hover .zr-shop-story-v2__img {
	transform: scale(1.02);
}
@media (max-width: 991.98px) {
	.zr-shop-story-v2__grid {
		grid-template-columns: 1fr;
		gap: 2.5rem;
	}
}


/* Wines section */
.zr-shop-wines {
	padding: 4rem 0 5rem;
	background: #fff;
}
.zr-shop-wines__header {
	margin-bottom: 3rem;
}
.zr-shop-wines__horn {
	margin-bottom: 1rem;
	opacity: 0.7;
}
.zr-shop-wines__horn img {
	display: inline-block;
}
.zr-shop-wines__title {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: clamp(1.75rem, 3vw, 2.25rem);
	color: var(--color-dark);
	margin: 0 0 1rem;
}
.zr-shop-wines__lead {
	font-size: 1.1rem;
	color: #666;
	max-width: 600px;
	margin: 0 auto;
	line-height: 1.65;
}
.zr-shop-wines-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 2rem 1.5rem;
}
.zr-wine-card {
	margin: 0;
}
.zr-wine-card__link {
	display: block;
	text-decoration: none;
	color: inherit;
	height: 100%;
	border-radius: 16px;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 4px 20px rgba(0,0,0,0.06);
	transition: box-shadow 0.35s ease, transform 0.35s ease;
}
.zr-wine-card__link:hover {
	box-shadow: 0 12px 40px rgba(0,0,0,0.1);
}
.zr-wine-card__img-wrap {
	aspect-ratio: 3 / 4;
	overflow: hidden;
	background: #fff;
}
.zr-wine-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}
.zr-wine-card__link:hover .zr-wine-card__img {
	transform: scale(1.03);
}
.zr-wine-card__placeholder {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #ccc;
}
.zr-wine-card__body {
	padding: 1.5rem 1.25rem;
}
.zr-wine-card__title {
	font-family: var(--font-primary);
	font-size: 1.25rem;
	font-weight: 400;
	color: var(--color-dark);
	margin: 0 0 0.5rem;
	line-height: 1.3;
	min-height: 2.6em;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}
.zr-wine-card__desc {
	font-size: 0.95rem;
	color: #666;
	line-height: 1.65;
	margin: 0 0 1rem;
}
.zr-wine-card__btn {
	display: inline-block;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--color-gold-dark);
	border-bottom: 2px solid var(--color-gold);
	transition: color 0.2s ease, border-color 0.2s ease;
}
.zr-wine-card__link:hover .zr-wine-card__btn {
	color: var(--color-brown-dark);
	border-bottom-color: var(--color-brown-dark);
}

/* Limitovaná edícia slamové */
.zr-shop-slamove {
	background: #fff;
	padding: 4rem 0 5rem;
}
.zr-shop-slamove__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3rem;
	align-items: center;
	max-width: 1000px;
	margin: 0 auto;
}
.zr-shop-slamove__content {
	order: 1;
}
.zr-shop-slamove__label {
	display: inline-block;
	font-size: 0.8rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--color-gold-dark);
	margin-bottom: 0.5rem;
	font-weight: 600;
}
.zr-shop-slamove__title {
	font-family: var(--font-primary);
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-weight: 400;
	color: var(--color-dark);
	margin: 0 0 1rem;
}
.zr-shop-slamove__text {
	font-size: 1.05rem;
	line-height: 1.75;
	color: #555;
	margin: 0 0 1.5rem;
}
.zr-shop-slamove__media {
	margin: 0;
	order: 2;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 20px 50px rgba(0,0,0,0.12);
}
.zr-shop-slamove__media img {
	width: 100%;
	height: auto;
	display: block;
}
@media (max-width: 767.98px) {
	.zr-shop-slamove__inner {
		grid-template-columns: 1fr;
		gap: 2rem;
	}
	.zr-shop-slamove__media {
		order: 0;
	}
}

/* Darčekové poukážky & Víno pre firmy: CTA blocks (each unique) */
.zr-shop-cta {
	text-align: center;
	padding: 3.5rem 2rem;
	max-width: 560px;
	margin: 0 auto 2rem;
	border-radius: 24px;
	background: #fff;
	box-shadow: 0 8px 40px rgba(0,0,0,0.08);
	border: 1px solid rgba(0,0,0,0.04);
}
.zr-shop-cta__icon {
	color: var(--color-gold);
	margin-bottom: 1rem;
}
.zr-shop-cta__icon--dark {
	color: var(--color-dark);
	opacity: 0.85;
}
.zr-shop-cta__title {
	font-family: var(--font-primary);
	font-size: 1.75rem;
	font-weight: 400;
	color: var(--color-dark);
	margin: 0 0 0.75rem;
}
.zr-shop-cta__text {
	font-size: 1rem;
	line-height: 1.65;
	color: #666;
	margin: 0 0 1.5rem;
}
.zr-shop-cta .btn {
	text-decoration: none;
}
.zr-shop-poukazky {
	background: #fff;
	padding: 4rem 0 3rem;
}
.zr-shop-cta--firmy {
	background: var(--color-dark);
	color: #fff;
	border: none;
	box-shadow: 0 12px 48px rgba(62,39,35,0.25);
}
.zr-shop-cta--firmy .zr-shop-cta__title {
	color: #fff;
}
.zr-shop-cta--firmy .zr-shop-cta__text {
	color: rgba(255,255,255,0.85);
}
.zr-shop-firmy {
	background: #fff;
	padding: 3rem 0 5rem;
}

/* ── Blockquote ── */
.zr-quote {
	border-left: 3px solid #ECE7E2;
	padding: 1rem 0 1rem 1.5rem;
	margin: 1.5rem 0 0;
}

.zr-quote p {
	font-family: var(--font-primary);
	font-style: italic;
	font-size: 1.1rem;
	color: var(--color-dark);
	line-height: 1.65;
	margin-bottom: 0.5rem;
}

.zr-quote cite {
	font-family: var(--font-secondary);
	font-style: normal;
	font-size: 0.85rem;
	color: #999;
}

/* Quote cards (grid of quotes) */
.zr-quotes-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.5rem;
}

.zr-quote--card {
	border-left: none;
	background: rgba(255, 255, 255, 0.06);
border 0 none;
	border-radius: 12px;
	padding: 2rem;
	margin: 0;
}

.zr-quote--card p {
	font-size: 1.05rem;
	color: rgba(255, 255, 255, 0.9);
	margin: 0;
}

/* ── CTA buttons row ── */
.zr-cta-buttons {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 1rem;
}

/* ── Features grid (Vinny klub) ── */
.zr-features {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2rem;
	margin-top: 2.5rem;
}

.zr-feature {
	text-align: center;
}

.zr-feature__icon {
	color: var(--color-gold);
	margin-bottom: 1rem;
}

.zr-feature h3 {
	font-family: var(--font-primary);
	font-size: 1.1rem;
	font-weight: 400;
	color: var(--color-dark);
	margin-bottom: 0.5rem;
}

.zr-feature p {
	font-size: 0.9rem;
	color: #666;
	line-height: 1.65;
}

/* ── Členský program (Vínny klub cards) ── */
.zr-program__head {
	text-align: center;
	margin-bottom: 3rem;
}

.zr-program__label {
	display: inline-block;
	font-family: var(--font-secondary);
	font-size: var(--text-xs);
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--color-gold);
	margin-bottom: 0.9rem;
}

.zr-program__title {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: clamp(2.5rem, 5.5vw, 3.75rem);
	line-height: 1.15;
	color: var(--color-dark);
	margin: 0;
}

.zr-program__sep {
	color: var(--color-gold);
	font-weight: 400;
	margin: 0 0.15em;
}

.zr-program-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.75rem;
	max-width: 980px;
	margin: 0 auto;
}

.zr-program-card {
	background: rgba(255, 255, 255, 0.04);
	border: none;
	border-radius: 14px;
	padding: 2.5rem 1.75rem;
	text-align: center;
	transition: background 0.25s ease;
}

.zr-program-card:hover {
	background: rgba(255, 255, 255, 0.10);
}

.zr-program-card__icon {
	color: var(--color-gold);
	margin-bottom: 1.25rem;
	display: flex;
	justify-content: center;
}

.zr-program-card__title {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: 1.4rem;
	color: var(--color-dark);
	margin: 0 0 0.75rem;
}

.zr-program-card__text {
	font-family: var(--font-secondary);
	font-size: 0.92rem;
	line-height: 1.7;
	color: var(--color-text-soft);
	margin: 0;
}

.zr-program__cta {
	text-align: center;
	margin-top: 3rem;
}

@media (max-width: 767px) {
	.zr-program-cards {
		grid-template-columns: 1fr;
		max-width: 420px;
	}
}

/* ── Testimonials ── */
.zr-testimonials {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
	margin-top: 2rem;
}

/* Phone: one testimonial per row (used on Registrácia + Pre firmy). */
@media (max-width: 767.98px) {
	.zr-testimonials {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}
}

.zr-testimonial {
	background: var(--color-beige);
	border-radius: 12px;
	padding: 2rem;
	margin: 0;
	border: none;
}

.zr-testimonial p {
	font-family: var(--font-primary);
	font-style: italic;
	font-size: 1rem;
	color: var(--color-dark);
	line-height: 1.65;
	margin-bottom: 0.75rem;
}

.zr-testimonial cite {
	font-family: var(--font-secondary);
	font-style: normal;
	font-size: 0.8rem;
	color: #999;
}

/* ── Pairing cards (Gastronómia) ── */
.zr-pairing-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
}

/* Phone: stack pairing cards (guards this grid in case the class gets used). */
@media (max-width: 767.98px) {
	.zr-pairing-grid {
		grid-template-columns: 1fr;
	}
}

.zr-pairing-card {
	background: #fff;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.zr-pairing-card:hover {
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.1);
}

.zr-pairing-card__img {
	aspect-ratio: 4/3;
	overflow: hidden;
}

.zr-pairing-card__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.zr-pairing-card h3 {
	font-family: var(--font-primary);
	font-size: 1.15rem;
	font-weight: 400;
	color: var(--color-dark);
	padding: 1.25rem 1.25rem 0.5rem;
	margin: 0;
}

.zr-pairing-card p {
	font-size: 0.9rem;
	color: #666;
	line-height: 1.65;
	padding: 0 1.25rem 1.5rem;
	margin: 0;
}

/* ── Media grid (Filip rozhovory) ── */
.zr-media-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
}

.zr-media-card {
	display: block;
	text-decoration: none;
	border-radius: 12px;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.zr-media-card:hover {
	text-decoration: none;
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.1);
}

.zr-media-card__thumb {
	aspect-ratio: 16/9;
	overflow: hidden;
}

.zr-media-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.zr-media-card h3 {
	font-family: var(--font-primary);
	font-size: 1rem;
	font-weight: 400;
	color: var(--color-dark);
	padding: 1rem 1.25rem 0.25rem;
	margin: 0;
	line-height: 1.4;
}

.zr-media-card p {
	font-size: 0.85rem;
	padding: 0 1.25rem 1.25rem;
	margin: 0;
}

/* ── Product grid (Shop) ── */
.zr-products-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
}

.zr-product-card {
	background: #fff;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	display: flex;
	flex-direction: column;
}

.zr-product-card:hover {
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.1);
}

.zr-product-card__link {
	text-decoration: none;
	color: inherit;
	display: block;
	flex: 1;
}

.zr-product-card__link:hover {
	text-decoration: none;
}

.zr-product-card__img {
	aspect-ratio: 3/4;
	overflow: hidden;
	background: var(--color-beige);
	display: flex;
	align-items: center;
	justify-content: center;
}

.zr-product-card__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.zr-product-card__placeholder {
	color: #ccc;
}

.zr-product-card__body {
	padding: 1.25rem;
}

.zr-product-card__title {
	font-family: var(--font-primary);
	font-size: 1.1rem;
	font-weight: 400;
	color: var(--color-dark);
	margin: 0 0 0.5rem;
	line-height: 1.3;
}

.zr-product-card__desc {
	font-size: 0.85rem;
	color: #888;
	line-height: 1.5;
	margin: 0 0 0.75rem;
}

.zr-product-card__price {
	font-family: var(--font-secondary);
	font-size: 1.1rem;
	font-weight: 600;
	color: var(--color-dark);
}

.zr-product-card__btn {
	margin: 0 1.25rem 1.25rem;
	text-align: center;
}

/* ── Responsive ── */
@media (max-width: 991px) {
	.zr-hero {
		min-height: 60vh;
	}

	.zr-filip .zr-hero {
		min-height: 88vh;
		min-height: 88dvh;
	}

	.zr-split {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	.zr-split--reverse .zr-split__text,
	.zr-split--reverse .zr-split__media {
		order: unset;
	}

	.zr-features {
		grid-template-columns: repeat(2, 1fr);
	}

	.zr-testimonials,
	.zr-pairing-grid,
	.zr-media-grid {
		grid-template-columns: 1fr;
	}

	.zr-quotes-grid {
		grid-template-columns: 1fr;
	}

	.zr-products-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 575px) {
	.zr-hero {
		min-height: 50vh;
	}

	.zr-filip .zr-hero {
		min-height: 78vh;
		min-height: 78dvh;
	}

	.zr-hero--short {
		min-height: 35vh;
	}

	.zr-hero__title {
		font-size: 1.75rem;
	}

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

	.zr-features {
		grid-template-columns: 1fr;
	}

	.zr-products-grid {
		grid-template-columns: 1fr;
	}
}

/* ── Page body (white content block under hero: sep-top + parallax) ── */
.zr-page-body {
	margin-top: -55px;
	position: relative;
	z-index: 3;
}

.zr-page-body-inner {
	background: #fff;
	padding-top: 0;
}

/*--------------------------------------------------------------
# Single Product (hero, gallery carousel, wine parameters)
--------------------------------------------------------------*/
body.single-product .woocommerce-variation-availability {
	display: none;
}

/* Hide quantity input on single product (simple + variable) */
body.single-product .quantity {
	display: none !important;
}

.zr-product-hero {
	margin-top: -80px;
	padding-top: 80px;
}

/* Non-wine single product: hero not positioned (see zlatyrohbypixelsorter_is_wine in single-product.php) */
body.single-product .zr-hero.zr-sp-hero--nonwine {
	position: inherit;
}

body.single-product .zr-product-hero .zr-hero__bg {
	background-position: center top;
}

/* Product hero: no in-hero text - nearly default .zr-hero height, slightly shorter (75/60/50vh → below) */
body.single-product .zr-sp-hero.zr-hero--short {
	min-height: 68vh;
}

@media (max-width: 991.98px) {
	body.single-product .zr-sp-hero.zr-hero--short {
		min-height: 56vh;
	}
}

@media (max-width: 575.98px) {
	body.single-product .zr-sp-hero.zr-hero--short {
		min-height: 46vh;
	}
}

/* Hide WooCommerce breadcrumb on single product */
body.single-product .woocommerce-breadcrumb {
	display: none !important;
}

/* Single product: less gap under hero - overlap body 40px more; wave SVG 2× height (same width, stretched vertically) */
body.single-product .zr-page-body.zr-sp-body {
	margin-top: -130px;
}

body.single-product .zr-sp-wave svg {
	height: 280px;
}

@media (max-width: 991.98px) {
	body.single-product .zr-sp-wave svg {
		height: 200px;
	}
}

@media (max-width: 575.98px) {
	body.single-product .zr-sp-wave svg {
		height: 150px;
	}
}

.single-product-layout {
	margin-top: 0;
}

.single-product__row {
	margin-bottom: 3rem;
}

/* Product gallery – Bootstrap carousel */
.wc-product-gallery-carousel {
	margin-bottom: 0;
}

.wc-product-gallery-carousel__slider {
	background: #f8f6f3;
	border-radius: 12px;
	overflow: hidden;
}

.wc-product-gallery-carousel .carousel-inner {
	max-height: 420px;
}

.wc-product-gallery-carousel .carousel-item img {
	object-fit: contain;
	width: 100%;
	height: 100%;
	min-height: 280px;
	max-height: 420px;
}

.wc-product-gallery-carousel .carousel-control-prev,
.wc-product-gallery-carousel .carousel-control-next {
	width: 48px;
	height: 48px;
	top: 50%;
	transform: translateY(-50%);
	opacity: 0.85;
	background: rgba(0, 0, 0, 0.2);
	border-radius: 50%;
}

.wc-product-gallery-carousel .carousel-control-prev { left: 0.5rem; }
.wc-product-gallery-carousel .carousel-control-next { right: 0.5rem; }

.wc-product-gallery-carousel .carousel-control-prev:hover,
.wc-product-gallery-carousel .carousel-control-next:hover {
	opacity: 1;
	background: rgba(0, 0, 0, 0.35);
}

.wc-product-gallery-carousel .carousel-indicators {
	bottom: 0.5rem;
}

.wc-product-gallery-carousel .carousel-indicators [data-bs-slide-to] {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background-color: rgba(255, 255, 255, 0.6);
	border: none;
}

.wc-product-gallery-carousel .carousel-indicators [data-bs-slide-to].active {
	background-color: var(--color-gold, #b8860b);
}

.wc-product-gallery-carousel__placeholder {
	background: #f8f6f3;
	border-radius: 12px;
	padding: 2rem;
	text-align: center;
}

.wc-product-gallery-carousel__placeholder img {
	max-height: 320px;
	width: auto;
	margin: 0 auto;
}

/* Wine parameters – wave separator blending into the dark section */
.wc-wine-parameters-wave {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	margin-bottom: -1px;
	line-height: 0;
	pointer-events: none;
}

.wc-wine-parameters-wave svg {
	display: block;
	width: 100%;
	height: 280px;
}

@media (max-width: 991.98px) {
	.wc-wine-parameters-wave svg {
		height: 200px;
	}
}

@media (max-width: 575.98px) {
	.wc-wine-parameters-wave svg {
		height: 150px;
	}
}

/* Wine parameters – full-width editorial radar section */
.wc-wine-parameters--radar {
	background: #0f0b12;
	color: rgba(255, 255, 255, 0.9);
	width: 100vw;
	margin-top: 0rem;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: 0 clamp(1rem, 3vw, 2rem) 8rem;
}

.wc-wine-parameters__inner {
	max-width: 1280px;
	margin: 0 auto;
}

.wc-wine-parameters__title {
	font-family: var(--font-primary) !important;
	font-size: clamp(2rem, 3vw, 3rem) !important;
	font-weight: 400;
	color: #d7b07a !important;
	text-align: center;
	margin: 0 0 0.35rem;
}

.wc-wine-parameters__subtitle {
	font-family: var(--font-secondary);
  font-size: 0.95rem;
  line-height: 2.4em !important;
  color: rgba(255, 255, 255, 0.65);
  text-align: center;
  max-width: 24rem;
  margin: 0 auto 2rem;
}

.wc-wine-parameters__symbol {
	display: flex;
	justify-content: center;
	margin: 0 0 2.5rem;
}

.wc-wine-parameters__symbol img {
	width: 22px;
	height: auto;
	display: block;
	opacity: 0.9;
}

.wc-wine-radar {
	display: grid;
	grid-template-columns: minmax(240px, 1fr) minmax(320px, 520px) minmax(240px, 1fr);
	gap: clamp(1rem, 2.5vw, 2rem);
	align-items: center;
}

.wc-wine-radar__col {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.wc-wine-radar__col--right {
	text-align: right;
}

.wc-wine-radar__blurb {
	font-size: 0.95rem;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.82);
	margin: 0 0 0.75rem;
}

.wc-wine-radar__stat {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	padding: 0.35rem 0;
}

.wc-wine-radar__stat-label {
	font-family: var(--font-secondary);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #c59d67;
}

.wc-wine-radar__stat-value {
	font-family: var(--font-secondary);
	font-size: clamp(1.15rem, 1.8vw, 1.65rem);
	font-weight: 400;
	color: #f2e2ca;
	line-height: 1.2;
}

.wc-wine-radar__center {
	display: flex;
	justify-content: center;
}

.wc-wine-radar__disc {
	position: relative;
	width: clamp(320px, 42vw, 520px);
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	background: transparent;
}

/* Partial gold segmented gauge arc (left side of the disc) */
.wc-wine-radar__disc::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: conic-gradient(
		from 0deg,
		transparent 0deg 180deg,
		#E5CCA9 180deg 215.25deg,
		transparent 215.25deg 216deg,
		#D2A676 216deg 251.25deg,
		transparent 251.25deg 252deg,
		#C1956A 252deg 287.25deg,
		transparent 287.25deg 288deg,
		#9F724C 288deg 323.25deg,
		transparent 323.25deg 360deg
	);
	-webkit-mask: radial-gradient(circle closest-side, transparent 0 78%, #000 79% 95%, transparent 96% 100%);
	        mask: radial-gradient(circle closest-side, transparent 0 78%, #000 79% 95%, transparent 96% 100%);
	z-index: 1;
	pointer-events: none;
}

/* Thin gold orbit ring, gently off-centre */
.wc-wine-radar__disc::after {
	content: "";
	position: absolute;
	inset: 1.5%;
	border-radius: 50%;
	border: 1.5px solid rgba(224, 206, 168, 0.2);
	z-index: 0;
	pointer-events: none;
}

.wc-wine-radar__disc-vine {
	position: absolute;
	top: 10%;
	left: 10%;
	width: 80%;
	height: 80%;
	border-radius: 50%;
	object-fit: cover;
	border: 0 none;
	z-index: 2;
	pointer-events: none;
	transform-origin: center center;
}

.wc-wine-parameters--radar.is-vine-in-view .wc-wine-radar__disc-vine {
	animation: wc-wine-vine-disc-spin 1.5s cubic-bezier(0.14, 1, 0.36, 1) forwards;
}

@keyframes wc-wine-vine-disc-spin {
	from {
		transform: rotate(180deg);
	}
	to {
		transform: rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.wc-wine-parameters--radar.is-vine-in-view .wc-wine-radar__disc-vine {
		animation: none;
	}
}

.wc-wine-radar__disc-image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 2;
	transform: scale(1.5);
	transform-origin: center center;
}

@media (max-width: 1199px) {
	.wc-wine-radar {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}

	.wc-wine-radar__center {
		order: 1;
	}

	.wc-wine-radar__col--left {
		order: 2;
	}

	.wc-wine-radar__col--right {
		order: 3;
		text-align: left;
	}

	.wc-wine-radar__stat-value {
		font-size: 1.25rem;
	}
}

/* ── Single product: related products (Mohlo by sa vám páčiť) ── */
.zr-related {
	padding: 4.5rem 0 5rem;
	text-align: center;
}

.zr-related__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding-left: 1.25rem;
	padding-right: 1.25rem;
}

.zr-related__heading,
.related.products > h2 {
	text-align: center;
	margin: 0 0 3rem;
	font-size: clamp(1.75rem, 2.4vw, 2.25rem);
	font-weight: 500;
	color: var(--color-dark, #3E2723);
}

/* Strip the underline that browsers add to the product-wrapping <a>
   (.woocommerce-LoopProduct-link wraps image + title + price). */
.zr-related .woocommerce-LoopProduct-link,
.zr-related .woocommerce-LoopProduct-link:hover,
.zr-related .woocommerce-LoopProduct-link:focus,
.zr-related .woocommerce-LoopProduct-link:visited,
.zr-related a.woocommerce-loop-product__link,
.zr-related a.woocommerce-loop-product__link:hover,
.zr-related .woocommerce-loop-product__title,
.zr-related .woocommerce-loop-product__title a,
.zr-related .woocommerce-loop-product__title a:hover,
.zr-related .woocommerce-loop-product__title a:focus,
.zr-related .price,
.zr-related .price a,
.zr-related .price a:hover {
	text-decoration: none !important;
	color: inherit;
}

/* Card layout */
.zr-related ul.products,
.zr-related .products {
	display: flex;
	flex-wrap: wrap;
	gap: 2.5rem 2rem;
	justify-content: center;
	margin: 0;
	padding: 0;
	list-style: none;
}

.zr-related ul.products li.product,
.zr-related .products li.product {
	float: none !important;
	width: calc((100% - 4rem) / 3);
	max-width: 320px;
	margin: 0 !important;
	padding: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

/* Image area */
.zr-related li.product .woocommerce-LoopProduct-link {
	display: block;
	width: 100%;
}

.zr-related li.product .woocommerce-LoopProduct-link img,
.zr-related li.product img {
	display: block;
	margin: 0 auto 1.25rem;
	width: auto;
	max-width: 220px;
	height: auto;
	border-radius: 18px;
	background: transparent;
}

/* Title */
.zr-related li.product .woocommerce-loop-product__title {
	font-size: 1.35rem;
	font-weight: 500;
	line-height: 1.25;
	margin: 0 0 0.5rem;
	color: var(--color-dark, #3E2723);
}

/* Price */
.zr-related li.product .price {
	display: block;
	margin: 0 0 1.25rem;
	font-size: 1rem;
	color: var(--color-brown, #6b4226);
	font-weight: 500;
}

.zr-related li.product .price ins {
	background: transparent;
	text-decoration: none;
}

.zr-related li.product .price del {
	opacity: 0.55;
	margin-right: 0.4rem;
}

/* Hide star ratings in this section (we don't use them) */
.zr-related li.product .star-rating {
	display: none;
}

/* CTA – ensure it inherits the site's standard pill button size */
.zr-related li.product .related-product__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: auto;
	text-decoration: none;
}

/* Responsive – 2 cols on tablet, 1 col on mobile */
@media (max-width: 991px) {
	.zr-related ul.products li.product,
	.zr-related .products li.product {
		width: calc((100% - 2rem) / 2);
	}
}

@media (max-width: 600px) {
	.zr-related {
		padding: 3rem 0 3.5rem;
	}

	.zr-related__heading,
	.related.products > h2 {
		margin-bottom: 2rem;
	}

	.zr-related ul.products,
	.zr-related .products {
		gap: 2.5rem 1rem;
	}

	.zr-related ul.products li.product,
	.zr-related .products li.product {
		width: 100%;
		max-width: 320px;
	}
}

/* ── Zlatý Roh v médiách ── */
.zr-section-lead {
	max-width: 560px;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 2.5rem;
}

.zr-press-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.75rem;
	margin-top: 2rem;
}

.zr-media-feature .zr-press-grid {
	grid-template-columns: repeat(3, 1fr);
	max-width: 1080px;
	margin-left: auto;
	margin-right: auto;
}

.zr-press-card {
	background: #fff;
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: 12px;
	padding: 1.5rem;
	display: flex;
	flex-direction: column;
	transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.zr-press-card:hover {
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.08);
	border-color: rgba(0, 0, 0, 0.12);
}

.zr-press-card__logo {
	height: 36px;
	display: flex;
	align-items: center;
	margin-bottom: 1rem;
}

.zr-press-card__logo img {
	max-height: 28px;
	width: auto;
	object-fit: contain;
	object-position: left center;
	filter: grayscale(0.4);
	opacity: 0.9;
}

.zr-press-card:hover .zr-press-card__logo img {
	filter: grayscale(0);
	opacity: 1;
}

.zr-press-card__title {
	font-family: var(--font-primary);
	font-size: 1rem;
	font-weight: 400;
	color: var(--color-dark);
	line-height: 1.4;
	margin: 0 0 0.5rem;
}

.zr-press-card__excerpt {
	font-size: 0.9rem;
	color: #666;
	line-height: 1.5;
	margin: 0 0 0.75rem;
	flex: 1;
}

.zr-press-card__year {
	font-family: var(--font-secondary);
	font-size: 0.8rem;
	color: #999;
	margin-bottom: 1rem;
}

.zr-press-card__btn {
	align-self: flex-start;
}

.zr-video-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
	margin-top: 2rem;
}

.zr-video-card {
	display: block;
	text-decoration: none;
	color: inherit;
	border-radius: 12px;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.zr-video-card:hover {
	text-decoration: none;
	color: inherit;
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.1);
}

.zr-video-card__thumb {
	position: relative;
	aspect-ratio: 16/9;
	overflow: hidden;
	background: var(--color-beige);
}

.zr-video-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.zr-video-card__duration {
	position: absolute;
	bottom: 8px;
	right: 8px;
	background: rgba(0, 0, 0, 0.75);
	color: #fff;
	font-family: var(--font-secondary);
	font-size: 0.75rem;
	padding: 0.2rem 0.5rem;
	border-radius: 4px;
}

.zr-video-card__title {
	font-family: var(--font-primary);
	font-size: 1rem;
	font-weight: 400;
	color: var(--color-dark);
	padding: 1rem 1.25rem 0.25rem;
	margin: 0;
	line-height: 1.4;
}

.zr-video-card__meta {
	font-size: 0.85rem;
	color: #999;
	padding: 0 1.25rem;
	margin: 0 0 1rem;
}

.zr-video-card__btn {
	display: inline-block;
	margin: 0 1.25rem 1.25rem;
}

.zr-awards {
	display: grid;
	gap: 0;
	margin-top: 2.5rem;
	max-width: 640px;
	margin-left: auto;
	margin-right: auto;
}

.zr-award {
	display: grid;
	grid-template-columns: 4rem 1fr;
	gap: 1.5rem;
	align-items: start;
	padding: 1.25rem 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.zr-award:last-child {
	border-bottom: none;
}

.zr-award__year {
	font-family: var(--font-primary);
	font-weight: 500;
	font-size: 1rem;
	color: var(--color-gold);
}

.zr-award__content h3 {
	font-family: var(--font-primary);
	font-size: 1.05rem;
	font-weight: 400;
	color: var(--color-dark);
	margin: 0 0 0.25rem;
	line-height: 1.4;
}

.zr-award__content p {
	font-size: 0.9rem;
	color: #666;
	margin: 0;
}

.zr-media-quotes {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
	margin-top: 2.5rem;
}

.zr-media-quote {
	border: none;
	margin: 0;
	padding: 2rem;
	background: rgba(255, 255, 255, 0.05);
	border-radius: 12px;
}

.zr-media-quote p {
	font-family: var(--font-primary);
	font-style: italic;
	font-size: 1.2rem;
	line-height: 1.65;
	color: rgba(255, 255, 255, 0.95);
	margin: 0 0 1rem;
}

.zr-media-quote cite {
	font-family: var(--font-secondary);
	font-style: normal;
	font-size: 0.9rem;
	color: rgba(255, 255, 255, 0.7);
}

@media (max-width: 991px) {
	.zr-press-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.zr-media-feature .zr-press-grid {
		grid-template-columns: repeat(2, 1fr);
		max-width: 720px;
	}
	.zr-video-grid {
		grid-template-columns: 1fr;
	}
	.zr-media-quotes {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 575px) {
	.zr-press-grid {
		grid-template-columns: 1fr;
	}
	.zr-media-feature .zr-press-grid {
		grid-template-columns: 1fr;
		max-width: 420px;
	}
	.zr-award {
		grid-template-columns: 1fr;
		gap: 0.5rem;
	}
}

/* ── Zlatý Roh v médiách — upgrade 2026 ── */

/* Intro block (front-page voice) */
.zr-media-intro {
	padding-top: 3rem;
	padding-bottom: 1.5rem;
}

/* — Video & podcasty (3-column, real YouTube thumbs) — */
.zr-media-video .zr-video-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
	margin-top: 2rem;
}

.zr-media-video .zr-video-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border-radius: 14px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	box-shadow: 0 2px 14px rgba(0, 0, 0, 0.05);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.zr-media-video .zr-video-card:hover {
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12);
	color: inherit;
	text-decoration: none;
}

.zr-media-video .zr-video-card__thumb {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--color-beige);
}

.zr-media-video .zr-video-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.zr-media-video .zr-video-card__thumb--fallback {
	background-size: cover;
	background-position: center;
}

.zr-video-card__play {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(0, 0, 0, 0.04);
	transition: background 0.3s ease;
	font-size: 0;
}

/* Hide the literal ▶ glyph (text node + any element children); yt.png is drawn below. */
.zr-video-card__play > * {
	display: none;
}

/* YouTube play badge. Path is relative to this stylesheet (css/ -> img/). */
.zr-video-card__play::after {
	content: "";
	display: block;
	width: 70px;
	height: 49px;
	background: url("../img/yt.png") center / contain no-repeat;
	background-image: -webkit-image-set(url("../img/yt.avif") type("image/avif"), url("../img/yt.webp") type("image/webp"), url("../img/yt.png") type("image/png"));
	background-image: image-set(url("../img/yt.avif") type("image/avif"), url("../img/yt.webp") type("image/webp"), url("../img/yt.png") type("image/png"));
	filter: drop-shadow(0 3px 8px rgba(0, 0, 0, 0.45));
	transition: transform 0.3s ease, filter 0.3s ease;
}

.zr-media-video .zr-video-card:hover .zr-video-card__play {
	background: rgba(0, 0, 0, 0.1);
}

.zr-media-video .zr-video-card:hover .zr-video-card__play::after {
	background-image: url("../img/yt-hover.png");
	background-image: -webkit-image-set(url("../img/yt-hover.avif") type("image/avif"), url("../img/yt-hover.webp") type("image/webp"), url("../img/yt-hover.png") type("image/png"));
	background-image: image-set(url("../img/yt-hover.avif") type("image/avif"), url("../img/yt-hover.webp") type("image/webp"), url("../img/yt-hover.png") type("image/png"));
	transform: scale(1.08);
	filter: drop-shadow(0 5px 12px rgba(0, 0, 0, 0.5));
}

.zr-video-card__body {
	padding: 1.4rem 1.5rem 1.6rem;
	display: flex;
	flex-direction: column;
	flex: 1;
}

.zr-video-card__channel {
	font-family: var(--font-secondary);
	font-size: 0.78rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--color-gold);
	margin-bottom: 0.5rem;
}

.zr-media-video .zr-video-card__title {
	font-family: var(--font-primary);
	font-size: 1.15rem;
	font-weight: 400;
	color: var(--color-dark);
	margin: 0 0 0.6rem;
	line-height: 1.35;
	padding: 0;
}

.zr-media-video .zr-video-card__meta {
	font-size: 0.92rem;
	color: #666;
	line-height: 1.55;
	margin: 0 0 1.1rem;
	padding: 0;
	flex: 1;
}

.zr-video-card__cta {
	font-family: var(--font-secondary);
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--color-dark);
	align-self: flex-start;
	transition: color 0.2s ease;
}

.zr-media-video .zr-video-card:hover .zr-video-card__cta {
	color: var(--color-gold-dark);
}

/* ── Video lightbox modal ──────────────────────────────── */
.zr-video-modal {
	position: fixed;
	inset: 0;
	z-index: 99990;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 24px;
}

.zr-video-modal.is-open {
	display: flex;
}

.zr-video-modal__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.82);
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
	cursor: pointer;
	animation: zrVideoFade 0.2s ease;
}

.zr-video-modal__dialog {
	position: relative;
	z-index: 1;
	width: min(980px, 100%);
	animation: zrVideoPop 0.25s ease;
}

.zr-video-modal__frame {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	background: #000;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0 24px 70px rgba(0, 0, 0, 0.55);
}

.zr-video-modal__frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.zr-video-modal__close {
	position: absolute;
	top: -46px;
	right: 0;
	width: 38px;
	height: 38px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.8rem;
	line-height: 1;
	color: #fff;
	background: transparent;
	border: 0;
	cursor: pointer;
	opacity: 0.85;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.zr-video-modal__close:hover {
	opacity: 1;
	transform: scale(1.1);
}

@keyframes zrVideoFade {
	from { opacity: 0; }
	to   { opacity: 1; }
}

@keyframes zrVideoPop {
	from { opacity: 0; transform: translateY(12px) scale(0.98); }
	to   { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 480px) {
	.zr-video-modal { padding: 16px; }
	.zr-video-modal__close { top: -40px; }
}

/* — V tlači & online médiách (press cards with brand badge) — */
.zr-media-press .zr-press-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.75rem;
	margin-top: 2rem;
}

.zr-media-press .zr-press-card {
	background: #fff;
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: 14px;
	padding: 1.75rem 1.5rem 1.6rem;
	display: flex;
	flex-direction: column;
	transition: box-shadow 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}

.zr-media-press .zr-press-card:hover {
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.08);
	border-color: rgba(212, 175, 55, 0.5);
}

.zr-press-card__brand {
	font-family: var(--font-secondary);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--color-gold-dark);
	margin-bottom: 0.45rem;
	padding-bottom: 0.7rem;
	border-bottom: 1px solid rgba(212, 175, 55, 0.35);
}

.zr-press-card__type {
	font-family: var(--font-secondary);
	font-size: 0.75rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: #888;
	margin: 0.75rem 0 0.45rem;
}

.zr-media-press .zr-press-card__title {
	font-family: var(--font-primary);
	font-size: 1.08rem;
	font-weight: 400;
	color: var(--color-dark);
	line-height: 1.4;
	margin: 0 0 0.6rem;
}

.zr-media-press .zr-press-card__excerpt {
	font-size: 0.92rem;
	color: #666;
	line-height: 1.55;
	margin: 0 0 1.1rem;
	flex: 1;
}

.zr-media-press .zr-press-card__btn {
	align-self: flex-start;
}

/* — Blogy & portály — */
.zr-blog-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.75rem;
	margin-top: 2rem;
}

/* Podcasty section has only 2 cards, center them instead of left-filling 3 columns */
.zr-media-podcast .zr-blog-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
}

.zr-blog-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: 14px;
	padding: 1.6rem 1.5rem;
	text-decoration: none;
	color: inherit;
	transition: box-shadow 0.25s ease, transform 0.25s ease, border-color 0.25s ease;
}

.zr-blog-card:hover {
	color: inherit;
	text-decoration: none;
	box-shadow: 0 10px 26px rgba(0, 0, 0, 0.07);
	border-color: rgba(212, 175, 55, 0.5);
}

.zr-blog-card__brand {
	font-family: var(--font-secondary);
	font-size: 0.78rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--color-gold-dark);
	margin-bottom: 0.85rem;
}

.zr-blog-card__title {
	font-family: var(--font-primary);
	font-size: 1.15rem;
	font-weight: 400;
	color: var(--color-dark);
	line-height: 1.4;
	margin: 0 0 0.7rem;
}

.zr-blog-card__excerpt {
	font-size: 0.93rem;
	color: #666;
	line-height: 1.55;
	margin: 0 0 1.1rem;
	flex: 1;
}

.zr-blog-card__cta {
	font-family: var(--font-secondary);
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--color-dark);
	border-bottom: 1px solid var(--color-gold);
	align-self: flex-start;
	padding-bottom: 2px;
}

.zr-blog-card:hover .zr-blog-card__cta {
	color: var(--color-gold-dark);
	border-color: var(--color-gold-dark);
}

/* — Quotes section spacing tweak + fix dark h2 cascade (.zr-section h2 declared later wins) — */
.zr-media-quotes-section .zr-media-quotes {
	margin-top: 0.5rem;
}

.zr-media-quotes-section .zr-pribeh-eyebrow--light {
	color: rgba(255, 255, 255, 0.85);
}

.zr-section.zr-section--dark h2,
.zr-section.zr-section--dark .display-5 {
	color: #fff;
}

.zr-section.zr-section--dark .zr-section-lead,
.zr-section.zr-section--dark .text-muted {
	color: rgba(255, 255, 255, 0.78) !important;
}

/* — Responsive — */
@media (max-width: 1199px) {
	.zr-media-press .zr-press-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 991px) {
	.zr-media-video .zr-video-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.zr-media-press .zr-press-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.zr-blog-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 640px) {
	.zr-media-video .zr-video-grid {
		grid-template-columns: 1fr;
	}
	.zr-media-press .zr-press-grid {
		grid-template-columns: 1fr;
	}
	.zr-blog-grid {
		grid-template-columns: 1fr;
	}
	.zr-media-podcast .zr-blog-grid {
		grid-template-columns: 1fr;
		max-width: 420px;
	}
}

/* ── Mailing list page ── */
.zr-mailing-wrapper {
	max-width: 440px;
	margin: 0 auto;
	text-align: center;
}

.zr-mailing-intro h2 {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: 1.7rem;
	color: var(--color-dark);
	margin: 0 0 0.65rem;
}

.zr-mailing-intro p {
	font-size: 0.98rem;
	line-height: 2em !important;
	color: #777;
	margin: 1em auto 0;
	max-width: 360px;
}

/* Form card */
.zr-mailing-form {
	margin-top: 1.9rem;
	text-align: left;
	background: #fff;
	border: 1px solid #eee;
	border-radius: 14px;
	padding: 1.6rem;
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.05);
	margin-bottom: 3em;
}

.zr-mailing-form .mc4wp-form-fields {
	display: flex;
	flex-wrap: wrap;
	gap: 0.7rem;
}

.zr-mailing-form .mc4wp-form-fields > * {
	flex: 1 1 100%;
	margin: 0;
}

/* Name fields sit side by side */
.zr-mc-field:has(input[name="FNAME"]),
.zr-mc-field:has(input[name="LNAME"]) {
	flex: 1 1 calc(50% - 0.35rem);
}

/* Labels are visually hidden; placeholders carry the meaning */
.zr-mc-field label {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

.zr-mc-required {
	color: var(--color-gold);
}

.zr-mc-field input {
	width: 100%;
	padding: 0 1rem;
	min-height: 46px;
	box-sizing: border-box;
	border: 1px solid #e3e3e3;
	border-radius: 10px;
	font-family: var(--font-secondary);
	font-size: 0.95rem;
	line-height: 1.5;
	color: #333;
	background: #fafafa;
	transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
}

.zr-mc-field input::placeholder {
	color: #a0a0a0;
}

.zr-mc-field input:focus {
	outline: none;
	border-color: var(--color-gold);
	background: #fff;
	box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.15);
}

.zr-mailing-form button[type="submit"] {
	width: 100%;
	margin-top: 1em;
}

.zr-mc-note {
	font-size: 0.72rem;
	color: #aaa;
	text-align: center;
	margin: 0.7rem 0 0;
	line-height: 1.5em !important;
}

.zr-section p.zr-mc-note {line-height: 1.7em !important; font-size: 0.85rem !important; color: #aaa !important;padding-top: 8px;}

/*--------------------------------------------------------------
# Kde kúpiť Zlatý Roh - distribution page (zr-kk-*)
--------------------------------------------------------------*/

/* Hero accents reused on this page */
.zr-kde-kupit-hero .zr-hero__overlay { display: block; }
.zr-kde-kupit-hero .zr-hero__eyebrow {
	font-family: var(--font-secondary);
	font-size: 0.78rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.85);
	margin: 0 0 1rem;
}

/* Eyebrow label (shared building block) */
.zr-kk-eyebrow {
	font-family: var(--font-secondary);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--color-gold-dark);
	margin: 0 0 1rem;
}

.zr-kk-eyebrow--light { color: rgba(212, 175, 55, 0.95); }

/* ── Intro section ── */
.zr-kk-intro { padding-top: 4.5rem; padding-bottom: 2.5rem; text-align: center; }
.zr-kk-intro .container { max-width: 820px; }

.zr-kk-intro__title {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: clamp(1.7rem, 3.4vw, 2.5rem);
	color: var(--color-dark);
	line-height: 1.25;
	margin: 0 0 1.25rem;
	letter-spacing: 0.3px;
}
.zr-kk-intro__title em {
	font-style: italic;
	color: var(--color-gold-dark);
}

.zr-kk-intro__lead {
	font-family: var(--font-secondary);
	font-size: 1.05rem;
	line-height: 1.8;
	color: #555;
	margin: 0 auto 2rem;
	max-width: 680px;
}

.zr-kk-chips {
	list-style: none;
	margin: 1.5rem 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem 0.55rem;
}
.zr-kk-chips a {
	display: inline-block;
	padding: 0.45rem 0.9rem;
	border: 1px solid rgba(139, 115, 85, 0.25);
	border-radius: 999px;
	font-size: 0.82rem;
	letter-spacing: 0.05em;
	color: var(--color-earth);
	background: #fff;
	text-decoration: none;
	transition: all 0.2s ease;
}
.zr-kk-chips a:hover {
	background: var(--color-gold);
	color: #fff;
	border-color: var(--color-gold);
}

/* ── Featured section (winery / direct source) ── */
.zr-kk-featured {
	background: var(--color-beige);
	padding: 5rem 0;
}
.zr-kk-featured__grid {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: 3rem;
	align-items: center;
}
.zr-kk-featured__media {
	margin: 0;
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 30px 60px -30px rgba(62, 39, 35, 0.35);
	position: relative;
}
.zr-kk-featured__media img {
	width: 100%;
	height: auto;
	aspect-ratio: 4/5;
	object-fit: cover;
	display: block;
}
.zr-kk-featured__caption {
	position: absolute;
	left: 1rem;
	bottom: 1rem;
	padding: 0.4rem 0.75rem;
	background: rgba(62, 39, 35, 0.75);
	color: #fff;
	font-family: var(--font-secondary);
	font-size: 0.78rem;
	letter-spacing: 0.06em;
	border-radius: 4px;
	backdrop-filter: blur(4px);
}
.zr-kk-featured__title {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: clamp(1.8rem, 3.2vw, 2.4rem);
	color: var(--color-dark);
	margin: 0 0 1rem;
	line-height: 1.2;
}
.zr-kk-featured__title em {
	font-style: italic;
	color: var(--color-gold-dark);
}
.zr-kk-featured__lead {
	font-family: var(--font-secondary);
	font-size: 1.02rem;
	color: #555;
	line-height: 1.7;
	margin: 0 0 1.5rem;
}

.zr-kk-options {
	margin: 0 0 1.75rem;
	padding: 0;
	display: grid;
	gap: 1rem;
}
.zr-kk-option {
	border-left: 2px solid var(--color-gold);
	padding: 0.2rem 0 0.2rem 1rem;
}
.zr-kk-option__name {
	font-family: var(--font-primary);
	font-weight: 500;
	font-size: 1.05rem;
	color: var(--color-dark);
	margin: 0 0 0.25rem;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
}
.zr-kk-option__badge {
	display: inline-block;
	font-family: var(--font-secondary);
	font-size: 0.65rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--color-gold-dark);
	border: 1px solid var(--color-gold);
	padding: 0.15rem 0.45rem;
	border-radius: 999px;
	font-weight: 500;
}
.zr-kk-option__desc {
	margin: 0;
	font-family: var(--font-secondary);
	font-size: 0.95rem !important;
	line-height: 1.6 !important;
	color: #5a5a5a;
}

.zr-kk-cta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin: 0 0 1.5rem;
}

.zr-kk-address {
	display: block;
	font-style: normal;
	border-top: 1px solid rgba(139, 115, 85, 0.2);
	padding-top: 1rem;
	font-family: var(--font-secondary);
	font-size: 0.9rem;
	color: #6a6a6a;
	line-height: 1.6;
}
.zr-kk-address__line { display: block; }
.zr-kk-address a { color: var(--color-gold-dark); text-decoration: none; border-bottom: 1px solid rgba(184, 148, 31, 0.3); }
.zr-kk-address a:hover { color: var(--color-dark); border-bottom-color: var(--color-dark); }

/* ── Channel sections (shared head) ── */
.zr-kk-channel { padding: 4.5rem 0; }
.zr-kk-channel--soft { background: linear-gradient(180deg, #fff 0%, #faf7ef 100%); }

.zr-kk-channel__head {
	max-width: 760px;
	margin: 0 0 2.5rem;
}
.zr-kk-channel__head--center {
	margin: 0 auto 2.5rem;
	text-align: center;
}
.zr-kk-channel__title {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: clamp(1.55rem, 2.8vw, 2.05rem);
	color: var(--color-dark);
	margin: 0 0 0.75rem;
	line-height: 1.25;
}
.zr-kk-channel__sub {
	font-family: var(--font-secondary);
	font-size: 1rem;
	color: #666;
	line-height: 1.7;
	margin: 0;
	max-width: 640px;
}
.zr-kk-channel__head--center .zr-kk-channel__sub { margin-left: auto; margin-right: auto; }

/* ── Online grid (e-shops) ── */
.zr-kk-online-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 1.25rem;
}
.zr-kk-online {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid rgba(139, 115, 85, 0.16);
	border-radius: 12px;
	padding: 1.5rem 1.4rem;
	text-decoration: none;
	color: inherit;
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
	position: relative;
	overflow: hidden;
}
.zr-kk-online:hover {
	box-shadow: 0 16px 40px -20px rgba(62, 39, 35, 0.3);
	border-color: rgba(212, 175, 55, 0.4);
}

.zr-kk-online--feature {
	background: linear-gradient(135deg, #fff 0%, #faf4e3 100%);
	border-color: rgba(212, 175, 55, 0.4);
	grid-column: span 2;
}

@media (max-width: 720px) {
	.zr-kk-online--feature { grid-column: span 1; }
}

.zr-kk-online__type {
	font-family: var(--font-secondary);
	font-size: 0.7rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--color-gold-dark);
	font-weight: 600;
	margin: 0 0 0.6rem;
}
.zr-kk-online__name {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: 1.45rem;
	color: var(--color-dark);
	margin: 0 0 0.75rem;
	line-height: 1.2;
}
.zr-kk-online__desc {
	font-family: var(--font-secondary);
	font-size: 0.92rem !important;
	line-height: 1.65 !important;
	color: #555;
	margin: 0 0 1.1rem;
	flex: 1;
}
.zr-kk-online__meta {
	list-style: none;
	padding: 0;
	margin: 0 0 1.1rem;
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}
.zr-kk-online__meta li {
	font-size: 0.72rem;
	letter-spacing: 0.05em;
	background: rgba(212, 175, 55, 0.12);
	color: var(--color-earth);
	padding: 0.25rem 0.55rem;
	border-radius: 999px;
}
.zr-kk-online__link {
	display: inline-block;
	font-family: var(--font-secondary);
	font-size: 0.88rem;
	font-weight: 500;
	color: var(--color-gold-dark);
	letter-spacing: 0.02em;
	transition: color 0.2s, transform 0.2s;
}
.zr-kk-online:hover .zr-kk-online__link {
	color: var(--color-dark);
	transform: translateX(2px);
}

/* ── Shops grid (BABA / Od našich) ── */
.zr-kk-shops { padding: 4.5rem 0; background: #FBFFFC; }
.zr-kk-shop-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 1.5rem;
}
.zr-kk-shop {
	background: #fff;
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 14px 40px -28px rgba(62, 39, 35, 0.45);
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: inherit;
}
.zr-kk-shop__media {
	margin: 0;
	background: #efe6d3;
	aspect-ratio: 4/3;
	overflow: hidden;
}
.zr-kk-shop__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: filter 0.25s ease;
}
.zr-kk-shop:hover .zr-kk-shop__media img {
	filter: brightness(1.1);
}

.zr-kk-shop__body { padding: 1.4rem 1.4rem 1.6rem; }
.zr-kk-shop__tag {
	font-family: var(--font-secondary);
	font-size: 0.7rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--color-gold-dark);
	font-weight: 600;
	margin: 0 0 0.55rem;
}
.zr-kk-shop__name {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: 1.5rem;
	color: var(--color-dark);
	margin: 0 0 0.75rem;
}
.zr-kk-shop__desc {
	font-family: var(--font-secondary);
	font-size: 0.95rem !important;
	color: #555;
	line-height: 1.65 !important;
	margin: 0 0 1rem;
}
.zr-kk-shop__loc {
	font-family: var(--font-secondary);
	font-size: 0.85rem !important;
	color: #7a7a7a;
	margin: 0 0 0.85rem !important;
	display: flex;
	align-items: center;
	gap: 0.35rem;
	line-height: 1.4 !important;
}
.zr-kk-shop__pin {
	color: var(--color-gold);
	font-size: 1rem;
	line-height: 1;
}
.zr-kk-shop__link {
	display: inline-block;
	font-family: var(--font-secondary);
	font-size: 0.88rem;
	font-weight: 500;
	color: var(--color-gold-dark);
	text-decoration: none;
	border-bottom: 1px solid rgba(184, 148, 31, 0.4);
	padding-bottom: 1px;
	transition: color 0.2s, border-color 0.2s;
}
.zr-kk-shop:hover .zr-kk-shop__link {
	color: var(--color-dark);
	border-bottom-color: var(--color-dark);
}

/* ── Slovak gastronomy (places) ── */
.zr-kk-places {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 1.25rem;
}
.zr-kk-place {
	background: #fff;
	border: 1px solid rgba(139, 115, 85, 0.15);
	border-radius: 12px;
	padding: 1.6rem 1.5rem;
	position: relative;
	overflow: hidden;
	transition: border-color 0.25s, box-shadow 0.25s;
}
.zr-kk-place:hover {
	border-color: rgba(212, 175, 55, 0.4);
	box-shadow: 0 14px 36px -22px rgba(62, 39, 35, 0.35);
}
.zr-kk-place--feature {
	grid-column: span 2;
	background: linear-gradient(135deg, var(--color-dark) 0%, #2a1816 100%);
	color: #fff;
	border-color: transparent;
}
.zr-kk-place--feature::before {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 90% 10%, rgba(212, 175, 55, 0.15) 0%, transparent 50%);
	pointer-events: none;
}
.zr-kk-place--feature > * { position: relative; }
@media (max-width: 720px) {
	.zr-kk-place--feature { grid-column: span 1; }
}

.zr-kk-place__role {
	font-family: var(--font-secondary);
	font-size: 0.7rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--color-gold-dark);
	font-weight: 600;
	margin: 0 0 0.55rem;
}
.zr-kk-place--feature .zr-kk-place__role { color: var(--color-gold); }

.zr-kk-place__name {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: 1.55rem;
	color: var(--color-dark);
	margin: 0 0 0.75rem;
	line-height: 1.2;
}
.zr-kk-place--feature .zr-kk-place__name { color: #fff; }
.zr-kk-place__name em { font-style: italic; color: var(--color-gold); }

.zr-kk-place__desc {
	font-family: var(--font-secondary);
	font-size: 0.95rem !important;
	line-height: 1.7 !important;
	color: #555;
	margin: 0 0 1rem;
}
.zr-kk-place--feature .zr-kk-place__desc { color: rgba(255,255,255,0.85); }

.zr-kk-place__loc {
	font-family: var(--font-secondary);
	font-size: 0.85rem !important;
	color: #7a7a7a;
	display: flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0 0 0.5rem !important;
	line-height: 1.4 !important;
}
.zr-kk-place--feature .zr-kk-place__loc { color: rgba(255,255,255,0.7); }
.zr-kk-place__pin { color: var(--color-gold); font-size: 1rem; line-height: 1; }
.zr-kk-place__links {
	margin: 0.5rem 0 0 !important;
	font-family: var(--font-secondary);
	font-size: 0.85rem !important;
	line-height: 1.5 !important;
	color: rgba(255,255,255,0.75);
}
.zr-kk-place__links a {
	color: var(--color-gold);
	text-decoration: none;
	border-bottom: 1px solid rgba(212, 175, 55, 0.4);
}
.zr-kk-place__links a:hover { color: #fff; border-bottom-color: #fff; }

/* ── Michelin section ── */
.zr-kk-michelin {
	padding: 5rem 0;
	background: var(--color-dark);
	color: #fff;
	background-image: radial-gradient(circle at 15% 20%, rgba(212, 175, 55, 0.08) 0%, transparent 40%),
	                  radial-gradient(circle at 85% 80%, rgba(212, 175, 55, 0.06) 0%, transparent 50%);
}
.zr-kk-michelin .zr-kk-channel__title { color: #fff; }
.zr-kk-michelin .zr-kk-channel__sub { color: rgba(255,255,255,0.7); }

.zr-kk-cities {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 1.5rem;
}
.zr-kk-city {
	border: 1px solid rgba(212, 175, 55, 0.2);
	border-radius: 10px;
	padding: 1.5rem 1.4rem;
	background: rgba(255,255,255,0.02);
	transition: background 0.25s, border-color 0.25s;
}
.zr-kk-city:hover {
	background: rgba(212, 175, 55, 0.05);
	border-color: rgba(212, 175, 55, 0.4);
}
.zr-kk-city__head { margin: 0 0 1rem; }
.zr-kk-city__country {
	font-family: var(--font-secondary);
	font-size: 0.7rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--color-gold);
	margin: 0 0 0.3rem;
}
.zr-kk-city__name {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: 1.4rem;
	color: #fff;
	margin: 0;
}
.zr-kk-city__list {
	list-style: none;
	padding: 0;
	margin: 0;
	border-top: 1px solid rgba(212, 175, 55, 0.15);
	padding-top: 1rem;
}
.zr-kk-city__list li {
	font-family: var(--font-secondary);
	font-size: 0.95rem;
	color: rgba(255,255,255,0.85);
	padding: 0.4rem 0;
	border-bottom: 1px dashed rgba(255,255,255,0.08);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 0.5rem;
}
.zr-kk-city__list li:last-child { border-bottom: none; }
.zr-kk-city__stars {
	color: var(--color-gold);
	font-size: 0.85rem;
	letter-spacing: 0.05em;
	flex-shrink: 0;
}

/* ── Distributors grid ── */
.zr-kk-distributors {
	padding: 4.5rem 0;
	background: linear-gradient(180deg, #fff 0%, var(--color-beige) 100%);
}
.zr-kk-dist-grid {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 1rem 1.25rem;
}
.zr-kk-dist {
	background: #fff;
	border: 1px solid rgba(139, 115, 85, 0.15);
	border-radius: 10px;
	padding: 1.25rem 1.3rem;
	transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
}
.zr-kk-dist:hover {
	box-shadow: 0 12px 32px -18px rgba(62, 39, 35, 0.3);
	border-color: rgba(212, 175, 55, 0.35);
}
.zr-kk-dist__country {
	font-family: var(--font-secondary);
	font-size: 0.75rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-earth);
	margin: 0 0 0.5rem;
	display: flex;
	align-items: center;
	gap: 0.4rem;
}
.zr-kk-dist__name {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: 1.2rem;
	color: var(--color-dark);
	margin: 0 0 0.4rem;
	line-height: 1.25;
}
.zr-kk-dist__addr {
	font-family: var(--font-secondary);
	font-size: 0.85rem !important;
	color: #6e6e6e;
	margin: 0 0 0.55rem !important;
	line-height: 1.5 !important;
}
.zr-kk-dist__meta {
	font-family: var(--font-secondary);
	font-size: 0.8rem !important;
	color: #888;
	margin: 0 !important;
	line-height: 1.6 !important;
}
.zr-kk-dist__meta a {
	color: var(--color-gold-dark);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: border-color 0.2s, color 0.2s;
}
.zr-kk-dist__meta a:hover {
	color: var(--color-dark);
	border-bottom-color: var(--color-dark);
}

/* ── Production stat block ── */
.zr-kk-stat {
	padding: 5rem 0;
	background: var(--color-dark);
	color: #fff;
	text-align: center;
	background-image: linear-gradient(180deg, rgba(212,175,55,0.04) 0%, transparent 100%);
}
.zr-kk-stat__inner { max-width: 700px; margin: 0 auto; }
.zr-kk-stat__num {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: clamp(2.2rem, 5.5vw, 3.6rem);
	color: var(--color-gold);
	letter-spacing: 0.02em;
	line-height: 1.1;
	margin: 0 0 0.5rem !important;
}
.zr-kk-stat__label {
	font-family: var(--font-secondary);
	font-size: 0.78rem;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.7);
	margin: 0 0 1.5rem !important;
}
.zr-kk-stat__desc {
	font-family: var(--font-secondary);
	font-size: 1.02rem !important;
	color: rgba(255,255,255,0.8);
	line-height: 1.75 !important;
	margin: 0 !important;
}

/* ── FAQ ── */
.zr-kk-faq { padding: 4.5rem 0; }
.zr-kk-faq__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: 0.85rem 1.25rem;
}
.zr-kk-faq__item {
	border: 1px solid rgba(139, 115, 85, 0.18);
	border-radius: 10px;
	background: #fff;
	padding: 1rem 1.25rem;
	transition: border-color 0.2s, box-shadow 0.2s;
}
.zr-kk-faq__item[open] {
	border-color: rgba(212, 175, 55, 0.45);
	box-shadow: 0 10px 28px -18px rgba(62, 39, 35, 0.25);
}
.zr-kk-faq__q {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: 1.05rem;
	color: var(--color-dark);
	cursor: pointer;
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.4rem 0;
	line-height: 1.4;
}
.zr-kk-faq__q::-webkit-details-marker { display: none; }
.zr-kk-faq__q::after {
	content: '+';
	font-family: var(--font-secondary);
	font-weight: 300;
	font-size: 1.5rem;
	color: var(--color-gold-dark);
	line-height: 1;
	transition: transform 0.25s ease;
	flex-shrink: 0;
}
.zr-kk-faq__item[open] .zr-kk-faq__q::after { transform: rotate(45deg); }

.zr-kk-faq__a {
	font-family: var(--font-secondary);
	font-size: 0.95rem !important;
	color: #555;
	line-height: 1.7 !important;
	margin: 0.5rem 0 0.25rem !important;
	padding-top: 0.5rem;
	border-top: 1px dashed rgba(139, 115, 85, 0.18);
}

/* ── Bottom CTA block ── */
.zr-kk-cta-bottom {
	padding: 5rem 0;
	background: #050505;
	color: #fff;
	position: relative;
	overflow: hidden;
}
.zr-kk-cta-bottom::before {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 20% 30%, rgba(212, 175, 55, 0.1) 0%, transparent 50%),
	            radial-gradient(circle at 80% 70%, rgba(212, 175, 55, 0.08) 0%, transparent 55%);
	pointer-events: none;
}
.zr-kk-cta-bottom__inner {
	position: relative;
	max-width: 720px;
	margin: 0 auto;
	text-align: center;
}
.zr-kk-cta-bottom__title {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: clamp(1.6rem, 3vw, 2.2rem);
	color: #fff !important;
	line-height: 1.3;
	margin: 0 0 1rem !important;
	letter-spacing: 0.3px;
}
.zr-kk-cta-bottom__lead {
	font-family: var(--font-secondary);
	font-size: 1.05rem !important;
	color: rgba(255,255,255,0.8) !important;
	line-height: 1.7 !important;
	max-width: 540px;
	margin: 0 auto 2rem !important;
}
/* B2B button on the bottom CTA: white pill with dark label */
.zr-kk-cta-bottom .btn--dark {
	background: #fff;
	color: #1a1a1a;
	border-color: #fff;
}
.zr-kk-cta-bottom .btn--dark:hover {
	color: #1a1a1a;
}
.zr-kk-cta-bottom__btns {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.8rem;
}

/* ── Responsive ── */
@media (max-width: 991.98px) {
	.zr-kk-featured__grid {
		grid-template-columns: 1fr;
		gap: 2rem;
	}
	.zr-kk-featured__media img { aspect-ratio: 16/10; }
	.zr-kk-place--feature { grid-column: span 1; }
}

@media (max-width: 720px) {
	.zr-kk-intro { padding-top: 3rem; }
	.zr-kk-featured,
	.zr-kk-shops,
	.zr-kk-channel,
	.zr-kk-michelin,
	.zr-kk-distributors,
	.zr-kk-stat,
	.zr-kk-faq,
	.zr-kk-cta-bottom { padding: 3.5rem 0; }
	.zr-kk-online,
	.zr-kk-shop__body,
	.zr-kk-place,
	.zr-kk-dist,
	.zr-kk-city { padding: 1.25rem 1.1rem; }
	.zr-kk-chips a { font-size: 0.78rem; padding: 0.4rem 0.75rem; }
}

/* ── Specificity overrides for kde-kupit page (counter .zr-section p) ── */
.zr-kde-kupit .zr-section p.zr-kk-eyebrow {
	color: var(--color-gold-dark) !important;
	font-size: 0.72rem !important;
	line-height: 1.5 !important;
	margin: 0 0 1rem !important;
}
.zr-kde-kupit .zr-section p.zr-kk-eyebrow--light { color: var(--color-gold) !important; }

.zr-kde-kupit .zr-section p.zr-kk-intro__lead { color: #555 !important; font-size: 1.05rem !important; line-height: 1.8 !important; }
.zr-kde-kupit .zr-section p.zr-kk-channel__sub { color: #666 !important; font-size: 1rem !important; line-height: 1.7 !important; }
.zr-kde-kupit .zr-kk-michelin p.zr-kk-channel__sub { color: rgba(255,255,255,0.72) !important; }

.zr-kde-kupit .zr-section p.zr-kk-online__type,
.zr-kde-kupit .zr-section p.zr-kk-shop__tag,
.zr-kde-kupit .zr-section p.zr-kk-place__role,
.zr-kde-kupit .zr-section p.zr-kk-dist__country {
	color: var(--color-gold-dark) !important;
	font-size: 0.7rem !important;
	line-height: 1.5 !important;
	margin: 0 0 0.55rem !important;
}
.zr-kde-kupit .zr-section .zr-kk-place--feature p.zr-kk-place__role { color: var(--color-gold) !important; }

/* Stat block - beat .zr-section p */
.zr-kde-kupit .zr-section p.zr-kk-stat__num {
	color: var(--color-gold) !important;
	font-size: clamp(2.2rem, 5.5vw, 3.6rem) !important;
	line-height: 1.1 !important;
	margin: 0 0 0.5rem !important;
	letter-spacing: 0.02em;
}
.zr-kde-kupit .zr-section p.zr-kk-stat__label {
	color: rgba(255,255,255,0.7) !important;
	font-size: 0.78rem !important;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	margin: 0 0 1.5rem !important;
}
.zr-kde-kupit .zr-section p.zr-kk-stat__desc { color: rgba(255,255,255,0.8) !important; font-size: 1.02rem !important; line-height: 1.75 !important; margin: 0 !important; }

.zr-kde-kupit .zr-section p.zr-kk-cta-bottom__lead { color: rgba(255,255,255,0.8) !important; font-size: 1.05rem !important; line-height: 1.7 !important; }

/* Address paragraphs in shop / place / distributor cards */
.zr-kde-kupit .zr-section p.zr-kk-shop__desc,
.zr-kde-kupit .zr-section p.zr-kk-place__desc { color: #555 !important; font-size: 0.95rem !important; line-height: 1.7 !important; margin: 0 0 1rem !important; }
.zr-kde-kupit .zr-section .zr-kk-place--feature p.zr-kk-place__desc { color: rgba(255,255,255,0.85) !important; }

.zr-kde-kupit .zr-section p.zr-kk-shop__loc,
.zr-kde-kupit .zr-section p.zr-kk-place__loc { color: #7a7a7a !important; font-size: 0.85rem !important; margin: 0 0 0.6rem !important; line-height: 1.4 !important; }
.zr-kde-kupit .zr-section .zr-kk-place--feature p.zr-kk-place__loc { color: rgba(255,255,255,0.7) !important; }

.zr-kde-kupit .zr-section p.zr-kk-place__links { color: rgba(255,255,255,0.75) !important; font-size: 0.85rem !important; margin: 0.5rem 0 0 !important; line-height: 1.5 !important; }

.zr-kde-kupit .zr-section p.zr-kk-dist__addr { color: #6e6e6e !important; font-size: 0.85rem !important; line-height: 1.5 !important; margin: 0 0 0.55rem !important; }
.zr-kde-kupit .zr-section p.zr-kk-dist__meta { color: #888 !important; font-size: 0.8rem !important; line-height: 1.6 !important; margin: 0 !important; }

.zr-kde-kupit .zr-section p.zr-kk-online__desc { color: #555 !important; font-size: 0.92rem !important; line-height: 1.65 !important; margin: 0 0 1.1rem !important; }
.zr-kde-kupit .zr-section p.zr-kk-faq__a { color: #555 !important; font-size: 0.95rem !important; line-height: 1.7 !important; margin: 0.5rem 0 0.25rem !important; }

/* h2 in dark sections */
.zr-kde-kupit .zr-kk-michelin .zr-section h2,
.zr-kde-kupit .zr-kk-michelin h2.zr-kk-channel__title,
.zr-kde-kupit .zr-kk-cta-bottom h2.zr-kk-cta-bottom__title { color: #fff !important; }

/* Featured intro lead override */
.zr-kde-kupit .zr-section p.zr-kk-featured__lead { color: #555 !important; font-size: 1.02rem !important; line-height: 1.7 !important; margin: 0 0 1.5rem !important; }
.zr-kde-kupit .zr-section dd.zr-kk-option__desc { color: #5a5a5a !important; font-size: 0.95rem !important; line-height: 1.6 !important; }

/* ============================================================
   New subpages - base styles (added in subpage-consistency pass)
   Pages: kde-nas-najdete, pre-firmy, recepty, registracia,
          obchodne-podmienky, ochrana-sukromia, reklamacie, cookies
   ============================================================ */

/* ── Typography helpers ── */
.zr-lead { font-size: 1.15rem; line-height: 1.65; color: #3a2a1a; }
.zr-section__lead { max-width: 720px; margin: 0 auto 1.5rem; color: #5a4a3a; }
.zr-img--rounded { border-radius: 14px; box-shadow: 0 12px 30px rgba(0,0,0,.12); }
.zr-knn-figure { margin: 0; }
.zr-knn-figure__caption { font-size: .9rem; color: #7a6a5a; margin-top: .5rem; font-style: italic; }
.zr-list-check { list-style: none; padding-left: 0; margin: 1rem 0; }
.zr-list-check li { position: relative; padding-left: 1.75rem; margin-bottom: .6rem; line-height: 1.6; }
.zr-list-check li::before { content: "✓"; position: absolute; left: 0; top: 0; color: #8b3a2f; font-weight: 700; }

/* ── Generic 4-column "what awaits" / "why us" grid ── */
.zr-knn-await__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 2rem;
	margin-top: 1.5rem;
}
.zr-knn-await__item {
	background: rgba(255,255,255,.55);
	padding: 1.5rem 1.25rem;
	border-radius: 12px;
	backdrop-filter: blur(2px);
}
.zr-knn-await__num {
	display: inline-block;
	font-size: .85rem;
	font-weight: 700;
	letter-spacing: .15em;
	color: #b04a32;
	margin-bottom: .5rem;
}
.zr-knn-await__item h3 { font-size: 1.15rem; margin: 0 0 .5rem; color: #2b1b10; }
.zr-knn-await__item p { font-size: .96rem; line-height: 1.6; color: #4a3a2a; margin: 0; }

/* ── How-to-get-here / service-category cards ── */
.zr-knn-modes {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 1.5rem;
}
.zr-knn-mode {
	background: #fff;
	padding: 1.75rem 1.5rem;
	border-radius: 14px;
	box-shadow: 0 4px 18px rgba(0,0,0,.06);
	border: 1px solid rgba(0,0,0,.05);
}
.zr-knn-mode__icon { color: #8b3a2f; margin-bottom: .75rem; }
.zr-knn-mode h3 { font-size: 1.2rem; margin: 0 0 .5rem; color: #2b1b10; }
.zr-knn-mode p { font-size: .95rem; line-height: 1.6; color: #4a3a2a; margin: 0 0 .5rem; }

/* ── B2B services & pricing tiers ── */
.zr-b2b-services {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 1.75rem;
}
.zr-b2b-service { background: #fff; padding: 2rem 1.5rem; border-radius: 14px; box-shadow: 0 4px 18px rgba(0,0,0,.06); }
.zr-b2b-service__icon { color: #8b3a2f; margin-bottom: 1rem; }
.zr-b2b-service h3 { font-size: 1.3rem; margin: 0 0 .75rem; }

.zr-b2b-pricing {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 1.5rem;
	align-items: stretch;
}
.zr-b2b-tier {
	position: relative;
	background: #fff;
	border-radius: 14px;
	padding: 2rem 1.5rem;
	box-shadow: 0 4px 18px rgba(0,0,0,.06);
	display: flex;
	flex-direction: column;
}
.zr-b2b-tier--featured { border: 2px solid #b04a32; transform: translateY(-8px); }
.zr-b2b-tier__badge { position: absolute; top: -14px; left: 50%; transform: translateX(-50%); background: #b04a32; color: #fff; padding: .3rem .9rem; border-radius: 50px; font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; }
.zr-b2b-tier__name { font-size: 1.4rem; margin: 0 0 1rem; }
.zr-b2b-tier__price { margin: 0 0 1rem; line-height: 1; }
.zr-b2b-tier__from { font-size: .85rem; color: #7a6a5a; display: block; margin-bottom: .25rem; }
.zr-b2b-tier__amount { font-size: 2.4rem; font-weight: 700; color: #b04a32; }
.zr-b2b-tier__unit { font-size: .95rem; color: #5a4a3a; margin-left: .25rem; }
.zr-b2b-tier__desc { font-size: .92rem; line-height: 1.6; color: #4a3a2a; margin-bottom: 1rem; }

.zr-b2b-process { list-style: none; padding-left: 0; counter-reset: pcount; max-width: 720px; margin: 1rem auto; }
.zr-b2b-process li { padding: 1rem 0 1rem 3.5rem; position: relative; border-bottom: 1px dashed rgba(0,0,0,.12); }
.zr-b2b-process li:last-child { border-bottom: none; }
.zr-b2b-process li strong { display: block; font-size: 1.1rem; color: #2b1b10; margin-bottom: .25rem; }
.zr-b2b-process li p { margin: 0; font-size: .95rem; color: #4a3a2a; line-height: 1.6; }

.zr-b2b-form button { margin-top: 1rem; }

/* ── Benefits grid (registrácia) ── */
.zr-benefits-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 1.5rem;
}
.zr-benefit { background: rgba(255,255,255,.65); padding: 1.5rem 1.25rem; border-radius: 12px; }
.zr-benefit__icon { color: #8b3a2f; margin-bottom: .75rem; }
.zr-benefit h3 { font-size: 1.1rem; margin: 0 0 .5rem; color: #2b1b10; }
.zr-benefit p { font-size: .95rem; line-height: 1.6; color: #4a3a2a; margin: 0; }

/* ── Step list (registrácia, reklamácie) ── */
.zr-steps { list-style: none; padding-left: 0; counter-reset: scount; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.5rem; }
.zr-step { background: #fff; padding: 1.5rem 1.25rem 1.5rem 3.75rem; border-radius: 12px; box-shadow: 0 4px 14px rgba(0,0,0,.05); position: relative; }
.zr-step__num {
	position: absolute;
	left: 1rem;
	top: 1.25rem;
	width: 2rem; height: 2rem; line-height: 2rem;
	border-radius: 50%;
	background: #b04a32; color: #fff;
	text-align: center; font-weight: 700; font-size: .95rem;
}
.zr-step h3 { font-size: 1.1rem; margin: 0 0 .5rem; }
.zr-step p { font-size: .95rem; line-height: 1.6; margin: 0; color: #4a3a2a; }

/* ── FAQ accordion (registrácia) ── */
.zr-faq { max-width: 760px; margin: 0 auto; }
.zr-faq__item { background: #fff; border-radius: 10px; margin-bottom: .75rem; padding: 0 1.25rem; box-shadow: 0 2px 8px rgba(0,0,0,.04); }
.zr-faq__item summary { padding: 1rem 0; font-weight: 600; cursor: pointer; list-style: none; position: relative; padding-right: 2rem; }
.zr-faq__item summary::-webkit-details-marker { display: none; }
.zr-faq__item summary::after { content: "+"; position: absolute; right: 0; top: 50%; transform: translateY(-50%); font-size: 1.4rem; color: #b04a32; transition: transform .2s; }
.zr-faq__item[open] summary::after { content: "−"; }
.zr-faq__item p { padding: 0 0 1rem; margin: 0; font-size: .95rem; line-height: 1.65; color: #4a3a2a; }

/* ── Recepty filter pills + cards ── */
.zr-recepty-pills { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; margin-top: 1rem; }
.zr-pill { padding: .5rem 1.1rem; border-radius: 50px; border: 1.5px solid #b04a32; background: transparent; color: #b04a32; font-weight: 600; cursor: pointer; transition: all .15s; }
.zr-pill:hover { background: rgba(176,74,50,.1); }
.zr-pill.is-active { background: #b04a32; color: #fff; }

.zr-recepty-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.75rem; }
.zr-recept-card { background: #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 4px 18px rgba(0,0,0,.08); display: flex; flex-direction: column; }
.zr-recept-card__media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; }
.zr-recept-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.zr-recept-card__wine { position: absolute; top: .75rem; left: .75rem; background: rgba(255,255,255,.92); padding: .25rem .75rem; border-radius: 50px; font-size: .75rem; font-weight: 600; letter-spacing: .05em; }
.zr-recept-card__wine--biele { color: #b89a3a; }
.zr-recept-card__wine--cervene { color: #8b1a1f; }
.zr-recept-card__wine--ruzove { color: #c4566a; }
.zr-recept-card__wine--oranzove { color: #c47a2a; }
.zr-recept-card__body { padding: 1.25rem 1.25rem 1.5rem; display: flex; flex-direction: column; flex: 1; }
.zr-recept-card__title { font-size: 1.1rem; margin: 0 0 .75rem; line-height: 1.3; }
.zr-recept-card__meta { list-style: none; padding-left: 0; display: flex; flex-wrap: wrap; gap: .75rem; font-size: .85rem; color: #6a5a4a; margin: 0 0 .75rem; }
.zr-recept-card__meta li { display: flex; align-items: center; gap: .25rem; }
.zr-recept-card__note { font-size: .92rem; line-height: 1.6; color: #4a3a2a; font-style: italic; flex: 1; margin: 0 0 .75rem; }
.zr-recept-card__cta { margin: 0; font-size: .9rem; }

/* ── Cookies card ── */
.zr-cookie-card { background: #fff; padding: 1.75rem; border-radius: 14px; text-align: center; box-shadow: 0 4px 18px rgba(0,0,0,.06); }
.zr-cookie-card__icon { color: #b89a3a; margin-bottom: 1rem; }
.zr-cookie-card__text { font-size: 1rem; line-height: 1.6; color: #4a3a2a; margin: 0; }

/* ── Legal pages (obchodné podmienky, ochrana súkromia, reklamácie, cookies) ── */
.zr-legal-container {
	display: grid;
	/* minmax(0, 1fr) lets the text column shrink below its min-content width, so a
	   long unbreakable token (e.g. a dotted fill-in line) can no longer blow the
	   grid wider than the screen. */
	grid-template-columns: 240px minmax(0, 1fr);
	gap: 3rem;
	align-items: start;
}
/* Long tokens (dotted lines, URLs, IBANs) wrap instead of forcing overflow. */
.zr-legal-body,
.zr-legal-toc {
	overflow-wrap: anywhere;
}
.zr-legal-toc {
	position: sticky;
	top: 100px;
	background: rgba(255,255,255,.6);
	padding: 1.25rem;
	border-radius: 12px;
	font-size: .9rem;
}
.zr-legal-toc__title { font-size: 1rem; font-weight: 700; margin: 0 0 .75rem; color: #2b1b10; letter-spacing: .05em; text-transform: uppercase; }
.zr-legal-toc ol { padding-left: 1.25rem; margin: 0; }
.zr-legal-toc li { margin-bottom: .35rem; }
.zr-legal-toc a { color: #5a4a3a; text-decoration: none; }
.zr-legal-toc a:hover { color: #b04a32; }

/* Phone gutter guard: a Bootstrap .row.g-5 has -24px side margins (3rem gutter),
   but .container only has 12px padding, so the row spills 12px past each edge and
   causes a sliver of horizontal scroll on phones (seen on /cookies/ and the
   /reklamacie/ hero). Columns stack full-width on phones anyway, so narrowing the
   horizontal gutter here is invisible and removes the overflow. Vertical spacing
   (--bs-gutter-y) is untouched. */
@media (max-width: 767.98px) {
	.row.g-5,
	.row.gx-5 {
		--bs-gutter-x: 1.5rem;
	}
}

.zr-legal-body { max-width: 760px; }
.zr-legal-body h2 { font-size: 1.4rem; margin-top: 2.5rem; margin-bottom: 1rem; color: #2b1b10; }
.zr-legal-body h2:first-child { margin-top: 0; }
.zr-legal-body h3 { font-size: 1.15rem; margin-top: 1.5rem; margin-bottom: .75rem; color: #3a2a1a; }
.zr-legal-body p { line-height: 1.7; color: #3a2a1a; }
.zr-legal-body ul, .zr-legal-body ol { line-height: 1.7; color: #3a2a1a; }
.zr-legal-body dt { font-weight: 700; margin-top: .75rem; color: #2b1b10; }
.zr-legal-body dd { margin-left: 0; padding-left: 1rem; border-left: 3px solid #ecdcc4; line-height: 1.6; }
.zr-legal-meta { font-size: .85rem; color: #7a6a5a; font-family: ui-monospace, "SF Mono", Menlo, monospace; }
.zr-legal-divider { border: none; border-top: 1px dashed rgba(0,0,0,.18); margin: 2.5rem 0 1.5rem; }

.zr-legal-tldr { background: #fffbeb; border-left: 4px solid var(--color-gold); padding: 1.5rem 1.75rem; border-radius: 0 12px 12px 0; margin-bottom: 2rem; }
.zr-legal-tldr h2 { margin-top: 0; font-size: 1.1rem; letter-spacing: .1em; text-transform: uppercase; }
.zr-legal-tldr__list { padding-left: 1.5rem; margin: 0; }
.zr-legal-tldr__list li { margin-bottom: .5rem; }

.zr-legal-table-wrap { overflow-x: auto; margin: 1rem 0; }
.zr-legal-table { width: 100%; border-collapse: collapse; font-size: .92rem; background: #fff; border-radius: 8px; overflow: hidden; }
.zr-legal-table th, .zr-legal-table td { padding: .65rem .8rem; text-align: left; border-bottom: 1px solid #eee; vertical-align: top; }
.zr-legal-table th { background: #f7f1e8; font-weight: 700; }

.zr-legal-form {
	background: #fbf6ed;
	padding: 1.25rem 1.5rem;
	border-radius: 10px;
	font-family: ui-monospace, "SF Mono", Menlo, monospace;
	font-size: .88rem;
	line-height: 1.6;
	white-space: pre-wrap;
	overflow-x: auto;
}

/* ── Responsive ── */
@media (max-width: 992px) {
	.zr-legal-container { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
	.zr-legal-toc { position: static; }
	.zr-b2b-tier--featured { transform: none; }
}
@media (max-width: 576px) {
	.zr-knn-await__grid, .zr-knn-modes, .zr-benefits-grid, .zr-b2b-services, .zr-b2b-pricing, .zr-recepty-grid, .zr-steps { grid-template-columns: 1fr; }
	.zr-b2b-tier__amount { font-size: 2rem; }
}

/* ============================================================================
 * E-SHOP - Limitované edície, Darčekové poukážky, Pre firmy
 * Pridané: nové sekcie page-shop.php
 * ============================================================================ */

/* Quick-nav v hero časti */
.zr-shop-hero-v2__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 1.5rem;
	align-items: center;
	margin-top: 1.25rem;
}
.zr-shop-hero-v2__quicklink {
	color: var(--color-dark);
	font-size: 0.92rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	border-bottom: 1px solid rgba(62, 39, 35, 0.25);
	padding-bottom: 2px;
	transition: border-color 0.2s ease, color 0.2s ease;
}
.zr-shop-hero-v2__quicklink:hover,
.zr-shop-hero-v2__quicklink:focus {
	color: var(--color-gold-dark);
	border-bottom-color: var(--color-gold);
}

/* Spoločná hlavička sekcie */
.zr-shop-limited__header,
.zr-shop-giftcards__header {
	text-align: center;
	max-width: 760px;
	margin: 0 auto 3rem;
}
.zr-shop-limited__kicker,
.zr-shop-giftcards__kicker,
.zr-shop-b2b__kicker {
	display: inline-block;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--color-gold-dark);
	margin-bottom: 0.6rem;
}
.zr-shop-limited__title,
.zr-shop-giftcards__title,
.zr-shop-b2b__title {
	font-family: "Platypi", serif;
	font-size: clamp(1.8rem, 3.2vw, 2.6rem);
	font-weight: 500;
	color: var(--color-dark);
	margin-bottom: 0.6rem;
	line-height: 1.2;
}
.zr-shop-limited__lead,
.zr-shop-giftcards__lead,
.zr-shop-b2b__lead {
	color: var(--color-earth);
	font-size: 1.05rem;
	line-height: 1.65;
	margin-bottom: 0;
}

/* ── Limitované edície ── */
.zr-shop-limited {
	background: #fbf6ed;
	padding-top: 5rem;
	padding-bottom: 5rem;
}
.zr-shop-product-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 1.75rem;
}
.zr-shop-product-card {
	background: #fff;
	border-radius: 6px;
	overflow: hidden;
	box-shadow: 0 2px 14px rgba(62, 39, 35, 0.06);
	display: flex;
	flex-direction: column;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.zr-shop-product-card:hover {
	box-shadow: 0 8px 24px rgba(62, 39, 35, 0.12);
}
.zr-shop-product-card__media {
	display: block;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: #f5f1e8;
}
.zr-shop-product-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}
.zr-shop-product-card:hover .zr-shop-product-card__media img {
	transform: scale(1.04);
}
.zr-shop-product-card__body {
	padding: 1.25rem 1.4rem 1.5rem;
	display: flex;
	flex-direction: column;
	flex: 1;
}
.zr-shop-product-card__title {
	font-family: "Platypi", serif;
	font-size: 1.2rem;
	font-weight: 500;
	margin-bottom: 0.5rem;
	line-height: 1.3;
}
.zr-shop-product-card__title a {
	color: var(--color-dark);
	text-decoration: none;
}
.zr-shop-product-card__title a:hover {
	color: var(--color-gold-dark);
}
.zr-shop-product-card__desc {
	color: var(--color-brown-dark);
	font-size: 0.92rem;
	line-height: 1.55;
	margin-bottom: 1rem;
	flex: 1;
}
.zr-shop-product-card__footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 0.75rem;
}
.zr-shop-product-card__price {
	font-weight: 600;
	font-size: 1.05rem;
	color: var(--color-dark);
}

/* Limitované edície - empty state */
.zr-shop-limited__empty {
	max-width: 640px;
	margin: 0 auto;
	text-align: center;
	padding: 3rem 1.5rem;
	background: #fff;
	border-radius: 10px;
	border: 1px solid rgba(212, 175, 55, 0.25);
}
.zr-shop-limited__empty-text {
	color: var(--color-earth);
	font-size: 1.05rem;
	line-height: 1.7;
	margin-bottom: 1.5rem;
}
.zr-shop-limited__empty-cta {
	display: flex;
	gap: 0.75rem;
	justify-content: center;
	flex-wrap: wrap;
}

/* ── Darčekové poukážky ── */
.zr-shop-giftcards {
	background: #1c120d;
	padding-top: 5rem;
	padding-bottom: 5rem;
}
/* Dark-section overrides for the shared header typography */
.zr-shop-giftcards .zr-shop-giftcards__kicker {
	color: #e6bd5c;
}
.zr-shop-giftcards .zr-shop-giftcards__title {
	color: #fff;
}
.zr-shop-giftcards .zr-shop-giftcards__lead {
	color: rgba(255, 255, 255, 0.74);
}
.zr-shop-giftcards__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 1.5rem;
	max-width: 1080px;
	margin: 0 auto;
}
.zr-shop-giftcard {
	position: relative;
	background: #2a1c14;
	border: none;
	border-radius: 14px;
	padding: 2.5rem 1.75rem 2rem;
	text-align: center;
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
}
.zr-shop-giftcard--featured {
	background: #32221a;
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.45);
}
.zr-shop-giftcard__badge {
	position: absolute;
	top: -12px;
	left: 50%;
	transform: translateX(-50%);
	background: #e6bd5c;
	color: #1c120d;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 5px 12px;
	border-radius: 999px;
}
.zr-shop-giftcard__emblem {
	color: #e6bd5c;
	display: flex;
	justify-content: center;
	margin-bottom: 0.25rem;
}
.zr-shop-giftcard__media {
	display: block;
	width: 100%;
	max-width: 220px;
	margin: 0 auto 0.5rem;
	line-height: 0;
	border-radius: 12px;
	overflow: hidden;
}
.zr-shop-giftcard__img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 12px;
}
.zr-shop-giftcard__title {
	font-family: "Platypi", serif;
	font-size: 1.1rem;
	font-weight: 500;
	color: #fff;
	line-height: 1.3;
	margin: 0;
}
.zr-shop-giftcard__title a {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s ease;
}
.zr-shop-giftcard__title a:hover,
.zr-shop-giftcard__title a:focus-visible {
	color: #e6bd5c;
	text-decoration: underline;
}
.zr-shop-giftcard__price {
	font-family: "Platypi", serif;
	font-size: 2.15rem;
	font-weight: 600;
	color: var(--color-gold);
	display: block;
}
.zr-shop-giftcard__desc {
	color: #eee !important;
	font-size: 0.9rem;
	line-height: 1.55;
	margin: 0;
	min-height: 64px;
}
.zr-shop-giftcard__actions {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	margin-top: auto;
	align-items: center;
}
.zr-shop-giftcard__actions .btn {
	width: 100%;
}

/* Desktop: half width, the full stretch stays mobile only. */
@media (min-width: 992px) {
	.zr-shop-giftcard__actions .btn {
		width: 50%;
	}
}
.zr-shop-giftcard__detail {
	color: #e6bd5c;
	font-size: 0.88rem;
	text-decoration: none;
	letter-spacing: 0.04em;
}
.zr-shop-giftcard__detail:hover {
	text-decoration: underline;
}
.zr-shop-giftcards__note {
	margin-top: 2rem;
	color: rgba(255, 255, 255, 0.6);
	font-size: 0.9rem;
}
.zr-shop-giftcards__note a {
	color: #e6bd5c;
}

/* ── Pre firmy (B2B) ── */
.zr-shop-b2b {
	padding-top: 5rem;
	padding-bottom: 5rem;
	background: #fff;
}
.zr-shop-b2b__grid {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: 3rem;
	align-items: center;
	max-width: 1140px;
	margin: 0 auto;
}
.zr-shop-b2b__text {
	max-width: 540px;
}
.zr-shop-b2b__features {
	list-style: none;
	padding: 0;
	margin: 1.5rem 0;
}
.zr-shop-b2b__features li {
	position: relative;
	padding: 0.45rem 0 0.45rem 1.6rem;
	color: var(--color-earth);
	line-height: 1.5;
	border-bottom: 1px solid rgba(62, 39, 35, 0.08);
}
.zr-shop-b2b__features li:before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--color-gold);
}
.zr-shop-b2b__cta {
	display: flex;
	gap: 0.75rem;
	align-items: center;
	flex-wrap: wrap;
	margin: 1.5rem 0 1rem;
}
.zr-shop-b2b__price {
	font-family: "Platypi", serif;
	font-size: 1.65rem;
	font-weight: 600;
	color: var(--color-dark);
}
.zr-shop-b2b__price-note {
	font-size: 0.85rem;
	font-weight: 400;
	color: var(--color-brown-dark);
}
.zr-shop-b2b__bulk {
	font-size: 0.92rem;
	color: var(--color-earth);
	line-height: 1.55;
	background: #fbf6ed;
	padding: 0.85rem 1.1rem;
	border-radius: 6px;
	border-left: 3px solid var(--color-gold);
	margin: 1rem 0 0;
}
.zr-shop-b2b__bulk a {
	color: var(--color-gold-dark);
}
.zr-shop-b2b__media img {
	width: 100%;
	max-width: 480px;
	height: auto;
	border-radius: 8px;
	box-shadow: 0 12px 36px rgba(62, 39, 35, 0.14);
	display: block;
	margin: 0 auto;
}

/* Responsive */
@media (max-width: 768px) {
	.zr-shop-b2b__grid {
		grid-template-columns: 1fr;
		gap: 2rem;
	}
	.zr-shop-b2b__media {
		order: -1;
	}
	.zr-shop-hero-v2__nav {
		gap: 0.85rem 1.25rem;
		display: none;
	}
	.zr-shop-giftcard__desc {
		min-height: 0;
	}
}

/* ── Anchor scroll offset (kvôli sticky header) ── */
#limitovane,
#darcekove-poukazky,
#pre-firmy {
	scroll-margin-top: 90px;
}

/* =============================================================
   PRÍBEH a HISTÓRIA – page-specific premium styles
   ============================================================= */

/* Hero — Kraj vína od nepamäti, big & bold */
.zr-pribeh-hero {
	min-height: 100vh;
	min-height: 100dvh;
}
.zr-pribeh-hero .zr-hero__bg {
	background-position: center;
	background-size: cover;
}
.zr-pribeh-hero .zr-hero__content {
	max-width: 1200px;
}
.zr-pribeh-hero__title {
	font-family: var(--font-primary);
	font-weight: 100;
	font-size: 5.25rem;
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: #fff;
	text-shadow: 2px 4px 28px rgba(0, 0, 0, 0.55);
	margin: 0 0 1.4rem;
	max-width: 14ch;
	margin-left: auto;
	margin-right: auto;
	animation: fadeInUp 1s ease-out forwards, heroTitleFloat 5s ease-in-out 1.2s infinite;
}

@media (max-width: 991.98px) {
	.zr-pribeh-hero__title {
		font-size: clamp(2.25rem, 5.5vw, 3.75rem);
		line-height: 1.18;
		letter-spacing: -0.015em;
	}
}

@media (max-width: 767.98px) {
	.zr-pribeh-hero__title {
		font-size: clamp(1.85rem, 7vw, 3rem);
		line-height: 1.2;
		letter-spacing: -0.01em;
		margin-bottom: 1rem;
	}
}

@media (max-width: 575.98px) {
	.zr-pribeh-hero__title {
		font-size: clamp(1.6rem, 7.5vw, 2.4rem);
		line-height: 1.2;
		margin-bottom: 0.75rem;
	}
}
.zr-pribeh-hero__subtitle {
	font-family: var(--font-secondary);
	font-size: clamp(1rem, 1.6vw, 1.2rem);
	color: rgba(255, 255, 255, 0.92);
	max-width: 620px;
	margin: 0 auto;
	line-height: 1.65;
	text-shadow: 1px 2px 12px rgba(0, 0, 0, 0.55);
	animation: fadeInUp 1.2s ease-out 0.3s both;
}
.zr-pribeh-hero .zr-hero__overlay {
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.15) 0%, rgba(0, 0, 0, 0.55) 100%);
}

/* Intro block matching front-page */
.zr-pribeh-intro {
	background: #fff;
	padding: 1rem 0 2rem;
}
.zr-pribeh-intro .horn-separator {
	display: inline-block;
}
.zr-pribeh-intro .front-intro-text p {
	font-size: 1.125rem;
	line-height: 2rem;
}

.site-main.zr-pribeh:not(.zr-filip):not(.zr-udrzatelnost) .front-intro-text.text-center {
	margin-bottom: 3.2em;
}

/* Eyebrow labels */
.zr-pribeh-eyebrow {
	font-family: var(--font-secondary);
	font-size: 0.72rem;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--color-gold);
	margin-bottom: 0.9rem;
	display: block;
}
.zr-pribeh-eyebrow--center {
	text-align: center;
}
.zr-pribeh-eyebrow--light {
	color: #d8b87a;
}

/* Lead block */
.zr-pribeh-lead {
	padding-top: 4rem !important;
	padding-bottom: 1.5rem !important;
}
.zr-pribeh-lead__inner {
	max-width: 760px;
	margin: 0 auto;
	text-align: center;
}
.zr-pribeh-lead__eyebrow {
	font-family: var(--font-secondary);
	font-size: 0.72rem;
	letter-spacing: 4px;
	text-transform: uppercase;
	color: var(--color-gold);
	margin-bottom: 1.5rem;
}
.zr-pribeh-lead__text {
	font-family: var(--font-primary);
	font-size: 1.35rem;
	line-height: 1.7;
	color: var(--color-dark);
	font-weight: 400;
	margin: 0;
}

/* Stat band */
.zr-pribeh-stats {
	padding-top: 3rem !important;
	padding-bottom: 3rem !important;
	margin-top: 3em;
}
.zr-pribeh-stats__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2rem;
	text-align: center;
}
.zr-pribeh-stats--3 .zr-pribeh-stats__grid {
	grid-template-columns: repeat(3, auto);
	justify-content: center;
	gap: 8rem;
	max-width: 1000px;
	margin-left: auto;
	margin-right: auto;
}
/* Phone: the 3-up variant (Filip Nagy) stacks; the 8rem desktop gap would
   crush the columns otherwise. Higher specificity than the base grid rule,
   so it needs its own breakpoint. */
@media (max-width: 768px) {
	.zr-pribeh-stats--3 .zr-pribeh-stats__grid {
		grid-template-columns: 1fr;
		gap: 2rem;
	}
}
.zr-pribeh-stat__num {
	font-family: var(--font-primary);
	font-size: 2.6rem;
	color: var(--color-gold-dark);
	margin-bottom: 0.4rem;
	font-weight: 400;
	letter-spacing: 0.5px;
}
.zr-pribeh-stat__label {
	font-family: var(--font-secondary);
	font-size: 0.86rem;
	color: var(--color-dark);
	line-height: 1.4;
	opacity: 0.78;
}

/* Pribeh image + caption */
.zr-pribeh-img {
	box-shadow: 0 18px 50px rgba(0, 0, 0, 0.14);
}
.zr-pribeh-caption {
	font-family: var(--font-secondary);
	font-size: 0.85rem;
	color: #777;
	font-style: italic;
	line-height: 1.55;
	margin-top: 0.9rem;
	max-width: 90%;
}

/* Tracks block (Goldeck & Purweg) */
.zr-pribeh-tracks {
	max-width: 1040px;
	margin: 0 auto;
	text-align: center;
}
.zr-pribeh-tracks__title {
	font-size: 2.4rem !important;
	margin-bottom: 1rem;
}
.zr-pribeh-tracks__lead {
	max-width: 640px;
	margin: 0 auto 3em !important;
	font-size: 1.05rem !important;
	color: #555 !important;
}
.zr-pribeh-tracks__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2.5rem;
}
.zr-pribeh-track {
	background: #fff;
	border: 1px solid rgba(0, 0, 0, 0.06);
	border-radius: 14px;
	padding: 2.5rem 2rem;
	text-align: left;
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.05);
}
.zr-pribeh-track__name {
	font-family: var(--font-primary);
	font-size: 2rem;
	color: var(--color-dark);
	margin-bottom: 0.2rem;
	letter-spacing: 0.5px;
}
.zr-pribeh-track__translation {
	font-family: var(--font-secondary);
	font-size: 0.85rem;
	color: var(--color-gold-dark);
	letter-spacing: 1.4px;
	text-transform: uppercase;
	margin-bottom: 1.4rem;
}
.zr-pribeh-track__desc {
	font-size: 1rem !important;
	line-height: 1.75 !important;
	color: #555 !important;
	margin: 0 !important;
}

/* Narrative block (Patrik Tkáč SMS) */
.zr-pribeh-narrative {
	max-width: 760px;
	margin: 0 auto;
	text-align: center;
}
.zr-pribeh-narrative__title {
	font-size: 2.2rem !important;
	margin-bottom: 2.2rem;
}
.zr-pribeh-place__title {
	font-size: 4rem !important;
}
.zr-pribeh-narrative__body {
	text-align: left;
}
.zr-pribeh-narrative__body p {
	font-size: 1.08rem !important;
	line-height: 1.8 !important;
	color: #444 !important;
}
.zr-pribeh-quote-center {
	border-left: none;
	text-align: center;
	margin: 2.5rem auto !important;
	padding: 1.5rem 0 !important;
	max-width: 520px;
	border-top: 1px solid rgba(0, 0, 0, 0.1);
	border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
.zr-pribeh-quote-center p {
	font-family: var(--font-primary);
	font-size: 5.6rem !important;
	color: var(--color-dark) !important;
	font-style: italic;
	margin: 0 0 0.6rem !important;
}
.zr-pribeh-quote-center cite {
	font-family: var(--font-secondary);
	font-size: 0.78rem !important;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	color: #999 !important;
}

/* Michelin grid */
.zr-pribeh-michelin {
	text-align: center;
	max-width: 1000px;
	margin: 0 auto;
}
.zr-pribeh-michelin__title {
	color: #fff !important;
	font-size: 2.4rem !important;
	margin-bottom: 0.8rem;
}
.zr-pribeh-michelin__lead {
	color: rgba(255, 255, 255, 0.78) !important;
	max-width: 620px;
	margin: 0 auto 2.4em !important;
	font-size: 1.05rem !important;
	line-height: 1.7 !important;
}
.zr-pribeh-michelin__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;
}
.zr-pribeh-michelin__note {
	color: rgba(255, 255, 255, 0.6) !important;
	max-width: 620px;
	margin: 2.5rem auto 0;
	text-align: center;
	font-size: 0.95rem !important;
	line-height: 1.7 !important;
}
.zr-pribeh-michelin__note a {
	color: #fff !important;
}
.zr-pribeh-michelin__city {
	padding: 2rem 1rem;
	background: #fff;
	border-radius: 12px;
	display: flex;
	flex-direction: column;
}
.zr-pribeh-michelin__cityname {
	font-family: var(--font-secondary);
	font-size: 0.78rem;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--color-gold);
	margin-bottom: 1rem;
}
.zr-pribeh-michelin__places {
	font-family: var(--font-primary);
	font-size: 1.15rem;
	color: #2a1f12;
	line-height: 1.55;
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

/* Triade (Čas, miesto, človek) */
.zr-pribeh-triade {
	text-align: center;
	max-width: 1100px;
	margin: 0 auto;
}
.zr-pribeh-triade__title {
	font-size: 2.4rem !important;
	margin-bottom: 0.6rem;
}
.zr-pribeh-triade__lead {
	max-width: 540px;
	margin: 0 auto 3rem !important;
	font-size: 1.05rem !important;
	color: #555 !important;
}
.zr-pribeh-triade__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2.5rem;
}
.zr-pribeh-triade__col {
	text-align: center;
}
.zr-pribeh-triade__word {
	font-family: var(--font-primary);
	font-size: 2.4rem;
	color: var(--color-gold-dark);
	margin-bottom: 1rem;
	letter-spacing: 1px;
}
.zr-pribeh-triade__col p {
	font-size: 1rem !important;
	line-height: 1.75 !important;
	color: #555 !important;
	max-width: 280px;
	margin: 0 auto !important;
}

/* Quotes block */
.zr-pribeh-quotes {
	max-width: 1040px;
	margin: 0 auto;
}
.zr-pribeh-quotes .zr-pribeh-eyebrow {
	margin-bottom: 2.5rem;
}

/* Biodynamické preparáty */
.zr-pribeh-preparaty {
	background: #fff;
	padding: 5.5rem 0 !important;
}
.zr-pribeh-preparaty__inner {
	max-width: 1080px;
	margin: 0 auto;
	text-align: center;
}
.zr-pribeh-preparaty__title {
	margin-bottom: 1rem;
	font-size: 2.4rem !important;
}
.zr-pribeh-preparaty__lead {
	max-width: 680px;
	margin: 0 auto 3.5rem !important;
	color: #555 !important;
	font-size: 1.05rem !important;
	line-height: 1.75 !important;
}
.zr-pribeh-preparaty__sublead {
	max-width: 620px;
	margin: 3.5rem auto 2rem !important;
	color: #777 !important;
	font-size: 0.98rem !important;
	font-style: italic;
}
.zr-pribeh-preparaty__footnote {
	max-width: 560px;
	margin: 0 auto 2.5rem !important;
	color: #888 !important;
	font-size: 0.95rem !important;
	font-style: italic;
}

/* Featured cow horn preparations (500, 501) */
.zr-pribeh-preparaty__hero-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem;
	margin-bottom: 1rem;
}
.zr-pribeh-prep--feature {
	background: #f5f1e8;
	border: none;
	border-radius: 14px;
	padding: 2.5rem 2rem;
	text-align: left;
	position: relative;
	overflow: hidden;
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.05);
}
.zr-pribeh-prep__num {
	font-family: var(--font-primary);
	font-weight: 700;
	font-size: 3.6rem;
	color: var(--color-gold-dark);
	line-height: 1;
	letter-spacing: -1px;
	margin-bottom: 0.3rem;
}
.zr-pribeh-prep__name {
	font-family: var(--font-primary);
	font-size: 1.7rem;
	color: var(--color-dark);
	margin-bottom: 1rem;
	letter-spacing: 0.3px;
}
.zr-pribeh-prep__desc {
	font-size: 1rem !important;
	line-height: 1.75 !important;
	color: #555 !important;
	margin: 0 !important;
}

/* Mini-grid: compost preparations 502-507 */
.zr-pribeh-preparaty__grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 1rem;
}
.zr-pribeh-prep-mini {
	background: #fafaf7;
	border: none;
	border-radius: 10px;
	padding: 1.4rem 0.8rem;
	text-align: center;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.zr-pribeh-prep-mini:hover {
	transform: translateY(-3px);
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
}
.zr-pribeh-prep-mini__num {
	font-family: var(--font-primary);
	font-weight: 700;
	font-size: 1.5rem;
	color: var(--color-gold-dark);
	line-height: 1;
	margin-bottom: 0.5rem;
}
.zr-pribeh-prep-mini__name {
	font-family: var(--font-primary);
	font-size: 0.98rem;
	color: var(--color-dark);
	margin-bottom: 0.25rem;
	font-weight: 400;
	line-height: 1.2;
}
.zr-pribeh-prep-mini__plant {
	font-family: var(--font-secondary);
	font-size: 0.72rem;
	color: #888;
	text-transform: lowercase;
	letter-spacing: 0.4px;
	line-height: 1.3;
}

@media (max-width: 900px) {
	.zr-pribeh-preparaty__hero-grid {
		grid-template-columns: 1fr;
		gap: 1.2rem;
	}
	.zr-pribeh-preparaty__grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 0.8rem;
	}
	.zr-pribeh-prep__num {
		font-size: 3rem;
	}
}
@media (max-width: 520px) {
	.zr-pribeh-preparaty__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* Pravokorenná Frankovka experiment */
.zr-pribeh-experiment__inner {
	max-width: 760px;
	margin: 0 auto;
	text-align: center;
}
.zr-pribeh-experiment__title {
	margin-bottom: 1.5rem;
	font-size: 2.2rem !important;
}
.zr-pribeh-experiment__lead {
	font-family: var(--font-primary);
	font-size: 1.2rem !important;
	line-height: 1.75 !important;
	color: var(--color-dark) !important;
	margin: 0 !important;
	font-style: italic;
}

/* Responsive */
@media (max-width: 900px) {
	.zr-pribeh-stats__grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 2rem 1.5rem;
	}
	.zr-pribeh-tracks__grid {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}
	.zr-pribeh-michelin__grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 1rem;
	}
	.zr-pribeh-triade__grid {
		grid-template-columns: 1fr;
		gap: 2.5rem;
	}
	.zr-pribeh-lead__text {
		font-size: 1.15rem;
	}
	.zr-pribeh-quote-center p {
		font-size: 2rem !important;
	}
	.zr-pribeh-tracks__title,
	.zr-pribeh-narrative__title,
	.zr-pribeh-place__title,
	.zr-pribeh-michelin__title,
	.zr-pribeh-triade__title {
		font-size: 1.9rem !important;
	}
}
@media (max-width: 560px) {
	/* One clean column on phones so the long labels stop fighting for ~170px each. */
	.zr-pribeh-stats__grid {
		grid-template-columns: 1fr;
		gap: 1.75rem;
	}
	/* Let the labels wrap to the column width instead of the desktop hard breaks. */
	.zr-pribeh-stat__label br {
		display: none;
	}
	.zr-pribeh-stat__num {
		font-size: 2.4rem;
	}
	.zr-pribeh-track {
		padding: 2rem 1.4rem;
	}
}

/* ============================================================
   Udržateľnosť — hero override (large, confident, fw-light)
   ============================================================ */
.zr-udr-hero {
	min-height: 70vh;
}
/* 30% flat black tint over the hero image */
.zr-udr-hero .zr-hero__overlay {
	display: block;
	background: rgba(0, 0, 0, 0.30);
}
/* Smaller monitors (14" MacBooks and below): give the hero a bit more height */
@media (max-width: 1536px) {
	.zr-udr-hero { min-height: 80vh; }
}
.zr-udr-hero__title {
	font-size: clamp(2.6rem, 6.4vw, 5.6rem);
	line-height: 1.05;
	font-weight: 300; /* not bold, but BIG */
	letter-spacing: -0.01em;
	color: #fff;
	margin: 0 auto 1.25rem; /* auto keeps the max-width title block centered at all widths */
	text-shadow: 0 4px 28px rgba(0,0,0,.45);
}
.zr-udr-hero__subtitle {
	font-size: clamp(1rem, 1.5vw, 1.25rem);
	line-height: 1.55;
	max-width: 720px;
	margin-left: auto; /* center the capped subtitle block */
	margin-right: auto;
	color: rgba(255,255,255,.92);
	font-style: italic;
	text-shadow: 0 2px 14px rgba(0,0,0,.35);
}

.zr-kontakt .zr-udr-hero__subtitle,
.zr-gastronomia .zr-udr-hero__subtitle,
.zr-kde-kupit .zr-udr-hero__subtitle {
	font-style: normal;
}

.zr-udrzatelnost .zr-udr-hero__subtitle {
	font-style: normal;
}
@media (max-width: 576px) {
	.zr-udr-hero { min-height: 60vh; }
}

/* Pribeh-historia → Udržateľnosť teaser */
.zr-pribeh-udr-teaser__inner { max-width: 760px; margin: 0 auto; text-align: center; padding: 1.5rem 0; }
.zr-pribeh-udr-teaser__title { margin-bottom: 1.5rem; }
.zr-pribeh-udr-teaser__lead { font-size: 1.05rem; line-height: 1.7; color: #4a3a2a; }
/* Match "Goldeck a Purweg" title size (4rem) for "Začiatky na kopci" and "Kameň života" */
.zr-pribeh-begin__title,
.zr-pribeh-udr-teaser__title { font-size: clamp(2.1rem, 7vw, 4rem) !important; }

/* ─────────────────────────────────────────────────────────────
   E-shop: wine feature enhancements (tagline + notes + origin)
   ───────────────────────────────────────────────────────────── */

/* Number row: "01 · Devín" */
.zr-wine-feature__numdivider {
	display: inline-block;
	margin: 0 0.4em;
	color: rgba(212, 175, 55, 0.6);
	font-weight: 400;
}
.zr-wine-feature__origin {
	font-family: var(--font-secondary);
	font-size: 0.78rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--color-gold-dark);
	font-weight: 600;
}

/* Italic tagline between name and subtitle */
.zr-wine-feature__tagline {
	font-family: "Platypi", serif;
	font-style: italic;
	font-size: 1.15rem;
	line-height: 1.5;
	color: var(--color-gold-dark);
	margin: 0.25rem 0 1rem;
	max-width: 460px;
}

/* Sensory tasting-note chips */
.zr-wine-feature__notes {
	margin: 0 0 2rem;
	padding: 1rem 0 0;
	border-top: 1px solid rgba(212, 175, 55, 0.25);
	max-width: 460px;
}
.zr-wine-feature__notes-label {
	display: block;
	font-family: var(--font-secondary);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--color-gold-dark);
	margin-bottom: 0.65rem;
}
.zr-wine-feature__notes-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 0.5rem;
}
.zr-wine-feature__notes-list li {
	font-family: "Platypi", serif;
	font-size: 0.85rem;
	font-weight: 400;
	color: var(--color-earth);
	padding: 0.35rem 0.85rem;
	background: #faf6ec;
	border: 1px solid rgba(212, 175, 55, 0.3);
	border-radius: 999px;
	line-height: 1.2;
	letter-spacing: 0.01em;
}
@media (max-width: 991.98px) {
	.zr-wine-feature__tagline { max-width: none; }
	.zr-wine-feature__notes { max-width: none; }
	.zr-wine-feature__notes-list { justify-content: center; }
}

/* ─────────────────────────────────────────────────────────────
   E-shop: Terroir strip (after wine showcase)
   ───────────────────────────────────────────────────────────── */
.zr-shop-terroir {
	background: #f4ecdc;
	padding: 4rem 0 4.5rem;
}
.zr-shop-terroir__inner {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2rem;
	max-width: 1080px;
	margin: 0 auto;
	text-align: center;
}
.zr-shop-terroir__stat {
	margin: 0;
	position: relative;
}
.zr-shop-terroir__stat + .zr-shop-terroir__stat::before {
	content: "";
	position: absolute;
	top: 12%;
	left: -1rem;
	height: 76%;
	width: 1px;
	background: rgba(62, 39, 35, 0.12);
}
.zr-shop-terroir__num {
	display: block;
	font-family: "Platypi", serif;
	font-size: clamp(2.4rem, 4.2vw, 3.4rem);
	font-weight: 400;
	color: var(--color-gold-dark);
	line-height: 1;
	margin-bottom: 0.6rem;
	letter-spacing: -0.01em;
}
.zr-shop-terroir__cap {
	font-size: 0.92rem;
	line-height: 1.55;
	color: var(--color-earth);
	max-width: 220px;
	margin: 0 auto;
}
.zr-shop-terroir__line {
	margin: 2.5rem auto 0;
	max-width: 700px;
	text-align: center;
	font-family: "Platypi", serif;
	font-style: italic;
	font-size: 1.1rem;
	line-height: 1.6;
	color: var(--color-earth);
}
@media (max-width: 767.98px) {
	.zr-shop-terroir__inner {
		grid-template-columns: repeat(2, 1fr);
		gap: 2.5rem 1.5rem;
	}
	.zr-shop-terroir__stat + .zr-shop-terroir__stat::before {
		display: none;
	}
}
@media (max-width: 420px) {
	.zr-shop-terroir__inner { grid-template-columns: 1fr; }
}

/* ─────────────────────────────────────────────────────────────
   E-shop: "Nielen víno" subtitle
   ───────────────────────────────────────────────────────────── */
.zr-shop-sells__sub {
	text-align: center;
	max-width: 580px;
	margin: -0.5rem auto 2.5rem;
	font-family: "Platypi", serif;
	font-style: italic;
	font-size: 1.05rem;
	color: var(--color-brown-dark);
	line-height: 1.55;
}

/* ─────────────────────────────────────────────────────────────
   E-shop: Limited editions empty state — decorative mark
   ───────────────────────────────────────────────────────────── */
.zr-shop-limited__empty-mark {
	display: block;
	font-family: "Platypi", serif;
	font-size: 3rem;
	color: var(--color-gold);
	line-height: 0.6;
	margin-bottom: 1.25rem;
	opacity: 0.7;
}

/* ─────────────────────────────────────────────────────────────
   Filip Nagy page — hero refinements, 3-col tracks, bento tweaks
   ───────────────────────────────────────────────────────────── */
.zr-filip-hero {
	min-height: 100vh;
	min-height: 100dvh;
}
.zr-filip-hero .zr-hero__bg,
.zr-filip-hero .zr-hero__video {
	background-position: center top;
	object-position: center top;
}
.zr-filip-hero .zr-hero__overlay {
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.10) 0%, rgba(0, 0, 0, 0.55) 70%, rgba(0, 0, 0, 0.7) 100%);
}
.zr-filip-hero .zr-hero__content {
	max-width: 1100px;
	padding-bottom: 2.5rem;
}
.zr-filip-hero__eyebrow {
	margin: 0 auto 1.5rem;
	display: inline-block;
	color: #fff;
}
.zr-filip-hero__title {
	margin-top: 0;
	margin-bottom: 1.8rem;
	max-width: none;
	font-size: clamp(3rem, 9vw, 7.2rem);
	letter-spacing: -1px;
}
.zr-filip-hero__quote {
	max-width: 720px;
	margin: 0 auto;
	font-style: italic;
	font-size: clamp(1rem, 1.55vw, 1.25rem);
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.92);
}

/* Three-column tracks for Filip — Rakúsko / Burgundsko / Gruzínsko */
.zr-filip-tracks__grid {
	grid-template-columns: repeat(3, 1fr);
	gap: 1.75rem;
}
/* Phone: stack the three travel cards (this override re-forces 3 columns over
   the base .zr-pribeh-tracks__grid collapse, so it needs its own phone rule). */
@media (max-width: 768px) {
	.zr-filip-tracks__grid {
		grid-template-columns: 1fr;
	}
}

/* Filip bento: same grid as filozofia, tightened spacing under heading */
.zr-filip-bento {
	margin-top: 3rem;
}
.zr-filip-bento .zr-filo-bento__cell--text h2 {
	font-size: 1.55rem;
}

/* Outline button used in V médiách section CTA */
.zr-filip .btn--outline {
	background: transparent;
	color: var(--color-dark);
	border: 1px solid var(--color-dark);
	transition: background 0.25s ease, color 0.25s ease;
}
.zr-filip .btn--outline:hover {
	background: var(--color-dark);
	color: #fff;
}

/* Caption alignment on reversed split (image on left) */
.zr-filip .zr-split--reverse .zr-pribeh-caption {
	margin-left: 0;
	margin-right: auto;
}

/* Filip "Mimo vinice" personal grid — share track styling but flag for tweaks */
.zr-filip-personal__grid {
	grid-template-columns: repeat(3, 1fr);
	gap: 1.75rem;
}
.zr-filip-personal__footnote {
	font-family: var(--font-primary);
	font-style: italic;
	font-size: 1.05rem;
	color: var(--color-gold-dark);
	max-width: 620px;
	margin-left: auto;
	margin-right: auto;
}

/* Responsive: collapse 3-track grid */
@media (max-width: 900px) {
	.zr-filip-tracks__grid,
	.zr-filip-personal__grid {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}
	.zr-filip-hero__title {
		font-size: clamp(2.6rem, 10vw, 4.5rem);
	}
}


/* ──────────────────────────────────────────────
   Gastronómia a párovanie  (redesign)
   ────────────────────────────────────────────── */

.zr-eyebrow,
.zr-gastro-intro__eyebrow,
.zr-gastro-principles__eyebrow,
.zr-gastro-pairings__eyebrow,
.zr-gastro-board__eyebrow,
.zr-gastro-seasons__eyebrow {
	font-family: var(--font-secondary);
	text-transform: uppercase;
	letter-spacing: 0.18em;
	font-size: 0.72rem;
	color: var(--color-gold-dark);
	margin: 0 0 1rem;
}

/* Intro / manifesto */
.zr-gastro-intro {
	padding-top: 4.5rem;
	padding-bottom: 2.5rem;
}
.zr-gastro-intro__inner {
	max-width: 780px;
	margin: 0 auto;
	text-align: center;
}
.zr-gastro-intro__title {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: clamp(2rem, 4.2vw, 3rem);
	line-height: 1.12;
	color: var(--color-dark);
	margin: 0 0 1.5rem;
}
.zr-gastro-intro__lead {
	font-family: var(--font-secondary);
	font-size: 1.05rem;
	line-height: 1.75;
	color: #4a3a30;
}

/* Päť pravidiel */
.zr-gastro-principles {
	padding: 5rem 0;
}
.zr-gastro-principles__header {
	text-align: center;
	max-width: 700px;
	margin: 0 auto 3rem;
}
.zr-gastro-principles__header h2 {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: clamp(1.75rem, 3.2vw, 2.4rem);
	line-height: 1.2;
	color: var(--color-dark);
	margin: 0;
}
.zr-gastro-principles__grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 1.5rem;
}
.zr-principle {
	background: #fff;
	border-radius: 14px;
	padding: 1.75rem 1.5rem;
	box-shadow: 0 1px 4px rgba(62, 39, 35, 0.04);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.zr-principle:hover {
	transform: translateY(-3px);
	box-shadow: 0 8px 24px rgba(62, 39, 35, 0.08);
}
.zr-principle__num {
	display: inline-block;
	font-family: var(--font-primary);
	font-size: 1.6rem;
	color: var(--color-gold-dark);
	margin-bottom: 0.5rem;
}
.zr-principle__title {
	font-family: var(--font-primary);
	font-weight: 500;
	font-size: 1.15rem;
	color: var(--color-dark);
	margin: 0 0 0.65rem;
	line-height: 1.25;
}
.zr-principle__body {
	font-family: var(--font-secondary);
	font-size: 0.92rem;
	line-height: 1.6;
	color: #5a4a40;
	margin: 0;
}
.zr-gastro-principles__footnote {
	text-align: center;
	margin: 2.5rem auto 0;
	font-family: var(--font-secondary);
	font-size: 0.95rem;
	color: var(--color-brown-dark);
}
.zr-gastro-principles__footnote a {
	color: var(--color-gold-dark);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Per-wine pairing rows */
.zr-gastro-pairings {
	padding: 5.5rem 0 4rem;
}
.zr-gastro-pairings__header {
	text-align: center;
	max-width: 760px;
	margin: 0 auto 4rem;
}
.zr-gastro-pairings__header h2 {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: clamp(1.9rem, 3.4vw, 2.6rem);
	line-height: 1.18;
	color: var(--color-dark);
	margin: 0 0 1rem;
}
.zr-gastro-pairings__lead {
	font-family: var(--font-secondary);
	color: #5a4a40;
	font-size: 1.02rem;
	line-height: 1.7;
}

.zr-wine-pair {
	display: grid;
	grid-template-columns: 1fr 1.4fr;
	gap: 3.5rem;
	align-items: center;
	padding: 3rem 0;
}
.zr-wine-pair:first-of-type {
	border-top: none;
}
.zr-wine-pair--alt {
	direction: rtl;
}
.zr-wine-pair--alt > * {
	direction: ltr;
}
.zr-wine-pair__media {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 1rem;
	min-height: 320px;
}
.zr-wine-pair__media-link {
	display: inline-block;
	line-height: 0;
	border-radius: 18px;
}
.zr-wine-pair__media img {
	max-width: 300px;
	max-height: 300px;
	width: 100%;
	height: auto;
	object-fit: contain;
	border-radius: 18px;
	box-shadow: 0 14px 28px rgba(62, 39, 35, 0.18);
	transition: box-shadow 0.4s ease;
}
.zr-wine-pair__media-link:hover img,
.zr-wine-pair__media-link:focus-visible img {
	box-shadow: 0 20px 38px rgba(62, 39, 35, 0.28);
}
.zr-wine-pair__kicker {
	font-family: var(--font-secondary);
	text-transform: uppercase;
	letter-spacing: 0.16em;
	font-size: 0.72rem;
	color: var(--color-gold-dark);
	margin: 0 0 0.5rem;
}
.zr-wine-pair__name {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: clamp(1.6rem, 2.6vw, 2.1rem);
	color: var(--color-dark);
	line-height: 1.15;
	margin: 0 0 0.4rem;
}
.zr-wine-pair__tagline {
	font-family: var(--font-primary);
	font-style: italic;
	color: var(--color-brown);
	font-size: 1.05rem;
	margin: 0 0 1.5rem;
}
.zr-wine-pair__profile {
	margin: 0 0 1.5rem;
}
.zr-wine-pair__profile > div {
	margin-bottom: 1rem;
}
.zr-wine-pair__profile dt {
	font-family: var(--font-secondary);
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-size: 0.7rem;
	color: var(--color-gold-dark);
	margin-bottom: 0.35rem;
}
.zr-wine-pair__profile dd {
	font-family: var(--font-secondary);
	font-size: 0.98rem;
	line-height: 1.65;
	color: #4a3a30;
	margin: 0;
}
.zr-wine-pair__meta {
	list-style: none;
	padding: 0;
	margin: 0 0 1.5rem;
	display: flex;
	gap: 2rem;
	flex-wrap: wrap;
	padding: 0.9rem 0;
}
.zr-wine-pair__meta li {
	font-family: var(--font-secondary);
	font-size: 0.95rem;
	color: var(--color-dark);
}
.zr-wine-pair__meta li span {
	display: block;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-size: 0.68rem;
	color: var(--color-gold-dark);
	margin-bottom: 0.2rem;
}
.zr-wine-pair__link {
	font-family: var(--font-secondary);
	font-size: 0.92rem;
	letter-spacing: 0.06em;
	color: var(--color-dark);
	text-decoration: none;
	border-bottom: 1px solid var(--color-gold-dark);
	padding-bottom: 2px;
	transition: color 0.2s ease, border-color 0.2s ease;
}
.zr-wine-pair__link:hover {
	color: var(--color-gold-dark);
}

/* Doska syrov */
.zr-gastro-board {
	padding: 5rem 0;
}
.zr-gastro-board__inner {
	display: grid;
	grid-template-columns: 1fr 1.4fr;
	gap: 3.5rem;
	align-items: start;
}
.zr-gastro-board__text h2 {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: clamp(1.75rem, 3vw, 2.3rem);
	line-height: 1.18;
	color: var(--color-dark);
	margin: 0 0 1.25rem;
}
.zr-gastro-board__text p {
	font-family: var(--font-secondary);
	font-size: 1rem;
	line-height: 1.75;
	color: #4a3a30;
	margin: 0;
}
.zr-gastro-board__steps {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.5rem;
}
.zr-gastro-board__steps li {
	background: #fff;
	border-radius: 14px;
	padding: 1.75rem 1.5rem;
	position: relative;
	box-shadow: 0 1px 4px rgba(62, 39, 35, 0.04);
}
.zr-gastro-board__step {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--color-gold);
	color: #fff;
	font-family: var(--font-primary);
	font-size: 1.1rem;
	margin-bottom: 0.9rem;
}
.zr-gastro-board__steps h3 {
	font-family: var(--font-primary);
	font-weight: 500;
	font-size: 1.15rem;
	color: var(--color-dark);
	margin: 0 0 0.5rem;
}
.zr-gastro-board__steps p {
	font-family: var(--font-secondary);
	font-size: 0.92rem;
	line-height: 1.6;
	color: #5a4a40;
	margin: 0;
}

/* Sezónne ladenie */
.zr-gastro-seasons {
	padding: 5rem 0;
}
.zr-gastro-seasons__header {
	text-align: center;
	max-width: 640px;
	margin: 0 auto 3rem;
}
.zr-gastro-seasons__header h2 {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: clamp(1.8rem, 3.2vw, 2.4rem);
	line-height: 1.18;
	color: var(--color-dark);
	margin: 0 0 0.5rem;
}
.zr-gastro-seasons__header p {
	font-family: var(--font-primary);
	font-style: italic;
	color: var(--color-brown);
	margin: 0;
}
.zr-gastro-seasons__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;
}
.zr-season {
	padding: 1.75rem 1.5rem;
	border-top: 2px solid var(--color-gold);
	background: transparent;
}
.zr-season__name {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: 1.4rem;
	color: var(--color-dark);
	margin: 0 0 0.65rem;
}
.zr-season__wine {
	font-family: var(--font-secondary);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-size: 0.75rem;
	color: var(--color-gold-dark);
	margin: 0 0 0.9rem;
}
.zr-season__food {
	font-family: var(--font-secondary);
	font-size: 0.95rem;
	line-height: 1.6;
	color: #4a3a30;
	margin: 0;
}

/* XL quote */
.zr-gastro-quote {
	padding: 4rem 0 5.5rem;
}
.zr-quote--xl {
	max-width: 820px;
	margin: 0 auto;
	text-align: center;
	border: none;
	padding: 0;
}
.zr-quote--xl p {
	font-family: var(--font-primary);
	font-style: italic;
	font-size: clamp(1.4rem, 2.4vw, 1.9rem);
	line-height: 1.45;
	color: var(--color-dark);
	margin: 0 0 1rem;
}
.zr-quote--xl cite {
	font-family: var(--font-secondary);
	font-style: normal;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-size: 0.78rem;
	color: var(--color-gold-dark);
}

/* Responsive */
@media (max-width: 1099px) {
	.zr-gastro-principles__grid {
		grid-template-columns: repeat(3, 1fr);
	}
	.zr-gastro-seasons__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 900px) {
	.zr-wine-pair {
		grid-template-columns: 1fr;
		gap: 1.5rem;
		padding: 2.25rem 0;
	}
	.zr-wine-pair--alt {
		direction: ltr;
	}
	.zr-wine-pair__media {
		min-height: 220px;
	}
	.zr-wine-pair__media img {
		max-width: 220px;
	}
	.zr-gastro-board__inner {
		grid-template-columns: 1fr;
		gap: 2rem;
	}
}
@media (max-width: 640px) {
	.zr-gastro-principles__grid {
		grid-template-columns: 1fr;
	}
	.zr-gastro-board__steps {
		grid-template-columns: 1fr;
	}
	.zr-gastro-seasons__grid {
		grid-template-columns: 1fr;
	}
	.zr-wine-pair__meta {
		gap: 1.25rem;
	}
}

/* Gastronómia hero: dark fallback so title is readable even without bg image */
.zr-gastro-hero {
	background: linear-gradient(135deg, #2c1810 0%, var(--color-earth) 100%);
}
.zr-gastro-hero .zr-hero__bg {
	opacity: 0.55;
}
.zr-gastro-hero .zr-hero__overlay {
	background: linear-gradient(180deg, rgba(20, 10, 5, 0.45) 0%, rgba(20, 10, 5, 0.7) 100%);
}

/* ============================================================
   Wine grid (eshop) — compact gallery of bottles
   Replaces editorial .zr-wine-feature rows with a 4-col gallery.
   ============================================================ */
.zr-wine-grid-section {
	background: #F5F1E8;
	padding: 5rem 0 6rem;
}
.zr-wine-grid-section__inner {
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 2rem;
}
.zr-wine-grid-section__header {
	text-align: center;
	margin-bottom: 3.25rem;
}
.zr-wine-grid-section__title {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: clamp(2.2rem, 4vw, 3.4rem);
	line-height: 1.05;
	color: #1c1a17;
	margin: 0;
	letter-spacing: -0.01em;
}
.zr-wine-grid-section__title-sep {
	color: var(--color-dark);
	font-weight: 300;
	margin: 0 0.15em;
	opacity: 0.85;
}
.zr-wine-grid-section__title-alt {
	color: var(--color-dark);
}

/* Grid.
   Flex, nie grid: posledny neuplny riadok sa tak vycentruje.
   Sirka karty sa rata z poctu stlpcov a medzery, plny riadok vyzera
   presne ako predtym pri grid-template-columns: repeat(N, 1fr). */
.zr-wine-grid {
	--zr-wine-cols: 4;
	--zr-wine-gap: 1.5rem;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--zr-wine-gap);
}
.zr-wine-grid > .zr-wine-card {
	flex: 0 0 calc((100% - (var(--zr-wine-cols) - 1) * var(--zr-wine-gap)) / var(--zr-wine-cols));
	max-width: calc((100% - (var(--zr-wine-cols) - 1) * var(--zr-wine-gap)) / var(--zr-wine-cols));
	min-width: 0;
}
@media (max-width: 991.98px) {
	.zr-wine-grid { --zr-wine-cols: 3; --zr-wine-gap: 1.25rem; }
}
@media (max-width: 767.98px) {
	.zr-wine-grid { --zr-wine-cols: 2; --zr-wine-gap: 1rem; }
}
@media (max-width: 419.98px) {
	.zr-wine-grid { --zr-wine-cols: 1; }
}

/* Card */
.zr-wine-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	background: #FBF7EC;
	border-radius: 16px;
	padding: 1.75rem 1rem 1.5rem;
	text-decoration: none;
	color: inherit;
	transition: transform 0.35s ease, box-shadow 0.35s ease, background 0.35s ease;
	position: relative;
	overflow: hidden;
}
.zr-wine-card:hover,
.zr-wine-card:focus-visible {
	box-shadow: 0 14px 30px -16px rgba(60, 39, 35, 0.25);
	background: #FFFBF1;
	text-decoration: none;
	color: inherit;
}
.zr-wine-card:focus-visible {
	outline: 2px solid var(--color-gold, var(--color-gold));
	outline-offset: 3px;
}

/* Media */
.zr-wine-card__media {
	margin: 0 0 1.25rem;
	width: 100%;
	height: 220px;
	display: flex;
	align-items: flex-end;
	justify-content: center;
}
.zr-wine-card__img {
	max-height: 100%;
	max-width: 70%;
	width: auto;
	height: auto;
	object-fit: contain;
	transition: transform 0.4s ease;
}
.zr-wine-card:hover .zr-wine-card__img {
	transform: none;
}
@media (max-width: 767.98px) {
	.zr-wine-card { padding: 1.25rem 0.75rem 1.1rem; }
	.zr-wine-card__media { height: 180px; margin-bottom: 1rem; }
}

/* Body */
.zr-wine-card__body {
	width: 100%;
	text-align: center;
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
}
.zr-wine-card__name {
	font-family: var(--font-primary);
	font-weight: 400;
	font-size: 1.35rem;
	line-height: 1.15;
	color: #1c1a17;
	margin: 0 0 0.35rem;
	letter-spacing: -0.005em;
	/* Reserve two lines so cards of single- and double-line names stay aligned */
	min-height: 2.3em;
	display: flex;
	align-items: center;
	justify-content: center;
}
@media (max-width: 767.98px) {
	.zr-wine-card__name { font-size: 1.15rem; }
}
.zr-wine-card__sub {
	font-family: var(--font-secondary);
	font-size: 0.72rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(60, 39, 35, 0.65);
	margin: 0 0 1rem;
	line-height: 1.3;
}
.zr-wine-card__detail {
	font-family: var(--font-primary);
	font-style: italic;
	font-size: 1rem;
	color: var(--color-dark);
	display: inline-block;
	margin-top: auto;
	padding-bottom: 2px;
	border-bottom: 1px solid rgba(60, 39, 35, 0.35);
	transition: border-color 0.25s ease, color 0.25s ease;
}
.zr-wine-card:hover .zr-wine-card__detail,
.zr-wine-card:focus-visible .zr-wine-card__detail {
	color: var(--color-gold-dark, #AE8352);
	border-bottom-color: var(--color-gold, var(--color-gold));
}

/* Kontakt hero: very subtle 10% black tint over the background image */
.zr-kontakt .zr-hero__overlay {
	display: block;
	background: rgba(0, 0, 0, 0.10);
}

/* Hide WooCommerce product meta (SKU, categories, tags) on product pages */
.product_meta {
	display: none;
}

/* Hide WooCommerce product tabs navigation */
.wc-tabs {
	display: none;
}

/* Constrain product description width for readability */
#tab-description {
	max-width: 800px;
	margin-left: auto;
	margin-right: auto;
}

/* Block image dragging and grabbing (paired with js/protect-images.js) */
img,
svg,
picture {
	-webkit-user-drag: none;
	-khtml-user-drag: none;
	-moz-user-drag: none;
	-o-user-drag: none;
	user-drag: none;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	-webkit-touch-callout: none;
}
