/*
 * Vinařství Pod Zámkem Břeclav
 * Global site skin for Joomla 5 + YOOtheme Pro 5 + PxShop
 * Version 1.1.3 — 2026-09-03
 *
 * Typography intentionally uses Public Sans with system fallbacks. The font is
 * not fetched from a third party, so the site remains fast and GDPR-friendly.
 */

:root {
  --pz-cellar: #0b0b09;
  --pz-charcoal: #171815;
  --pz-charcoal-soft: #24251f;
  --pz-paper: #f2eee5;
  --pz-paper-soft: #e3ddd1;
  --pz-white: #fffdf8;
  --pz-ink: #20211e;
  --pz-muted: #77756f;
  --pz-wine: #7c1738;
  --pz-wine-dark: #541027;
  --pz-teal: #00a99f;
  --pz-blue: #286bbd;
  --pz-orange: #f58612;
  --pz-magenta: #ec008b;
  --pz-violet: #5b258d;
  --pz-cyan: #41a1df;
  --pz-line: rgba(32, 33, 30, 0.14);
  --pz-line-light: rgba(255, 253, 248, 0.2);
  --pz-glass: rgba(255, 253, 248, 0.7);
  --pz-glass-soft: rgba(255, 253, 248, 0.54);
  --pz-glass-dark: rgba(11, 11, 9, 0.66);
  --pz-glass-dark-soft: rgba(11, 11, 9, 0.48);
  --pz-radius: 30px;
  --pz-radius-inner: 22px;
  --pz-radius-small: 15px;
  --pz-pill: 999px;
  --pz-blur: 22px;
  --pz-shadow: 0 24px 70px rgba(19, 16, 12, 0.14);
  --pz-shadow-strong: 0 30px 90px rgba(0, 0, 0, 0.3);
  --pz-font: "Public Sans", "Work Sans", Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --pz-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --pz-speed: 420ms;
  --pz-content: 1320px;
}

/* --------------------------------------------------------------------------
   Base / YOOtheme contract
   -------------------------------------------------------------------------- */

html {
  background: var(--pz-paper);
  scroll-behavior: smooth;
}

body {
  margin: 0;
  overflow-x: clip;
  background:
    radial-gradient(circle at 8% 8%, rgba(245, 134, 18, 0.07), transparent 24rem),
    radial-gradient(circle at 94% 28%, rgba(0, 169, 159, 0.06), transparent 28rem),
    var(--pz-paper);
  color: var(--pz-ink);
  font-family: var(--pz-font);
  font-size: 17px;
  font-weight: 440;
  line-height: 1.68;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body :where(button, input, select, textarea) {
  font-family: inherit;
}

body :where(h1, h2, h3, h4, h5, h6),
.pz-heading,
.pz-heading :where(.el-title, h1, h2, h3, h4, h5, h6),
.pz-hero-title,
.pz-hero-title .el-title,
.pz-inner-hero-title,
.pz-inner-hero-title .el-title,
.pz-legal-title,
.pz-legal-title .el-title,
.pxshop h1,
.pxshop h2,
.pxshop-age-gate__panel h2 {
  margin-top: 0;
  color: inherit;
  font-family: var(--pz-font);
  font-weight: 780;
  letter-spacing: -0.045em;
  line-height: 1.04;
  text-wrap: balance;
}

body :where(p, li),
.pz-copy,
.pz-copy .el-content,
.pz-hero-lead,
.pz-hero-lead .el-content,
.pz-inner-hero-lead,
.pz-inner-hero-lead .el-content,
.pz-legal-lead,
.pz-legal-lead .el-content {
  color: inherit;
}

body a {
  text-underline-offset: 0.2em;
  text-decoration-thickness: 1px;
}

body a,
body button,
body input,
body textarea,
body select {
  transition:
    color var(--pz-speed) var(--pz-ease),
    background-color var(--pz-speed) var(--pz-ease),
    border-color var(--pz-speed) var(--pz-ease),
    box-shadow var(--pz-speed) var(--pz-ease),
    opacity var(--pz-speed) var(--pz-ease),
    transform var(--pz-speed) var(--pz-ease);
}

body :focus-visible,
.pxshop-age-gate :focus-visible {
  outline: 3px solid rgba(0, 169, 159, 0.72);
  outline-offset: 4px;
}

.pz-section {
  position: relative;
  isolation: isolate;
  overflow: clip;
}

.pz-section > .uk-container,
.pz-site-header > .uk-container,
.pz-site-footer > .uk-container {
  width: min(100%, var(--pz-content));
  box-sizing: border-box;
}

.pz-section.uk-section-default {
  background-color: transparent;
}

.pz-section.uk-section-muted {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.42), transparent 48%),
    var(--pz-paper-soft);
}

.pz-section.uk-section-secondary {
  background:
    radial-gradient(circle at 82% 14%, rgba(91, 37, 141, 0.2), transparent 25rem),
    radial-gradient(circle at 12% 90%, rgba(0, 169, 159, 0.12), transparent 27rem),
    var(--pz-cellar);
  color: var(--pz-paper);
}

.pz-section.uk-section-primary {
  background:
    radial-gradient(circle at 7% 10%, rgba(245, 134, 18, 0.18), transparent 20rem),
    radial-gradient(circle at 94% 85%, rgba(236, 0, 139, 0.16), transparent 22rem),
    linear-gradient(135deg, var(--pz-wine-dark), var(--pz-wine));
  color: var(--pz-white);
}

.pz-section-heading-row,
.pz-program-row,
.pz-cta-row {
  justify-content: center;
}

.pz-section-heading,
.pz-section-heading :where(.pz-heading, .pz-copy),
.pz-program-card,
.pz-cta-card {
  text-align: center;
}

.pz-section-heading {
  max-width: 900px;
  margin-inline: auto;
}

.pz-section-heading .pz-copy,
.pz-section-heading .el-content {
  max-width: 760px;
  margin-inline: auto;
}

.pz-eyebrow,
.pz-hero-eyebrow,
.pz-inner-hero-eyebrow,
.pz-legal-eyebrow,
.pz-event-status,
.pz-program-status {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0 0 1rem;
  color: var(--pz-wine);
  font-size: 0.72rem;
  font-weight: 780;
  letter-spacing: 0.18em;
  line-height: 1.35;
  text-transform: uppercase;
}

.pz-eyebrow::before,
.pz-hero-eyebrow::before,
.pz-inner-hero-eyebrow::before,
.pz-legal-eyebrow::before {
  display: none;
  content: none;
}

.uk-section-secondary :where(.pz-eyebrow, .pz-event-status, .pz-program-status),
.uk-section-primary :where(.pz-eyebrow, .pz-event-status, .pz-program-status) {
  color: var(--pz-paper);
}

/* --------------------------------------------------------------------------
   Buttons — soft glass controls, never generic template pills
   -------------------------------------------------------------------------- */

body :where(.uk-button, .pz-action),
.pxshop :where(.uk-button),
.pxshop-age-gate :where(.uk-button) {
  display: inline-flex;
  min-height: 52px;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  padding: 0.35rem 1.45rem;
  border: 1px solid rgba(32, 33, 30, 0.14);
  border-radius: var(--pz-pill);
  box-shadow: 0 12px 34px rgba(19, 16, 12, 0.1);
  font-size: 0.79rem;
  font-weight: 750;
  letter-spacing: 0.08em;
  line-height: 1.1;
  text-transform: uppercase;
  backdrop-filter: blur(16px) saturate(145%);
  -webkit-backdrop-filter: blur(16px) saturate(145%);
}

body :where(.uk-button-default),
.pxshop :where(.uk-button-default) {
  background: rgba(255, 253, 248, 0.58);
  color: var(--pz-ink);
}

body :where(.uk-button-primary),
.pxshop :where(.uk-button-primary),
.pxshop-age-gate :where(.uk-button-primary) {
  border-color: rgba(124, 23, 56, 0.38);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.1), transparent 50%),
    linear-gradient(135deg, var(--pz-wine), var(--pz-wine-dark));
  color: var(--pz-white);
  box-shadow: 0 16px 38px rgba(84, 16, 39, 0.22);
}

body :where(.uk-button-secondary),
.pxshop :where(.uk-button-secondary) {
  border-color: rgba(255, 253, 248, 0.16);
  background: rgba(11, 11, 9, 0.88);
  color: var(--pz-white);
}

body :where(.uk-button-text),
.pxshop :where(.uk-button-text) {
  min-height: auto;
  padding: 0.25rem 0;
  border: 0;
  border-bottom: 1px solid currentColor;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--pz-wine);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

body :where(.uk-button):hover,
body :where(.uk-button):focus-visible,
.pxshop :where(.uk-button):hover,
.pxshop :where(.uk-button):focus-visible,
.pxshop-age-gate :where(.uk-button):hover,
.pxshop-age-gate :where(.uk-button):focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 20px 44px rgba(19, 16, 12, 0.2);
}

body :where(.uk-button-primary):hover,
.pxshop :where(.uk-button-primary):hover,
.pxshop-age-gate :where(.uk-button-primary):hover {
  border-color: rgba(255, 255, 255, 0.24);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.16), transparent 55%),
    linear-gradient(135deg, #921d45, var(--pz-wine-dark));
  color: #fff;
}

body :where(.uk-button-text):hover,
.pxshop :where(.uk-button-text):hover {
  box-shadow: none;
  color: var(--pz-wine-dark);
  transform: translateX(0.3rem);
}

/* Pixelhouse signature: a restrained, two-pixel light orbit exactly on CTA. */
@property --pz-border-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}

@supports ((-webkit-mask: none) or (mask: none)) {
  body :where(.uk-button-primary:not([disabled])),
  .pz-hero-actions :where(.uk-button-default:not([disabled])),
  .pz-cta-card :where(.uk-button-default:not([disabled])),
  .pz-program-card :where(.uk-button-default:not([disabled])),
  .pxshop-cart-trigger {
    position: relative;
    isolation: isolate;
  }

  body :where(.uk-button-primary:not([disabled]))::before,
  .pz-hero-actions :where(.uk-button-default:not([disabled]))::before,
  .pz-cta-card :where(.uk-button-default:not([disabled]))::before,
  .pz-program-card :where(.uk-button-default:not([disabled]))::before,
  .pxshop-cart-trigger::before {
    position: absolute;
    z-index: 2;
    inset: -1px;
    box-sizing: border-box;
    padding: 2px;
    border-radius: inherit;
    background: conic-gradient(
      from var(--pz-border-angle),
      rgba(255, 255, 255, 0.08) 0 43%,
      rgba(255, 255, 255, 0.88) 51%,
      rgba(245, 134, 18, 0.72) 57%,
      rgba(0, 169, 159, 0.56) 62%,
      rgba(255, 255, 255, 0.08) 70% 100%
    );
    content: "";
    opacity: 0.58;
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    animation:
      pz-border-orbit 6s linear infinite,
      pz-border-breathe 3s ease-in-out infinite;
    pointer-events: none;
  }
}

@keyframes pz-border-orbit {
  to { --pz-border-angle: 360deg; }
}

@keyframes pz-border-breathe {
  50% { opacity: 0.9; }
}

.pz-actions,
.pz-hero-actions,
.pz-header-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
}

/* --------------------------------------------------------------------------
   Sticky site header — transparent over imagery, glass after scroll
   -------------------------------------------------------------------------- */

.tm-header,
.tm-header-mobile {
  z-index: 1100;
}

.tm-header .uk-navbar-container,
.tm-header-mobile .uk-navbar-container,
.tm-header.uk-sticky-fixed,
.tm-header-mobile.uk-sticky-fixed,
.pz-site-header {
  border-bottom: 1px solid transparent;
  background: rgba(11, 11, 9, 0.22) !important;
  color: var(--pz-white);
  box-shadow: none;
  backdrop-filter: blur(5px) saturate(115%);
  -webkit-backdrop-filter: blur(5px) saturate(115%);
  transition:
    background-color 450ms var(--pz-ease),
    border-color 450ms var(--pz-ease),
    box-shadow 450ms var(--pz-ease),
    backdrop-filter 450ms var(--pz-ease);
}

body:not(.pz-is-scrolled) .tm-header:not(.uk-sticky-fixed) .uk-navbar-container,
body:not(.pz-is-scrolled) .tm-header-mobile:not(.uk-sticky-fixed) .uk-navbar-container {
  background: linear-gradient(180deg, rgba(11, 11, 9, 0.74), rgba(11, 11, 9, 0.08)) !important;
}

body.pz-is-scrolled .tm-header .uk-navbar-container,
body.pz-is-scrolled .tm-header-mobile .uk-navbar-container,
.tm-header.uk-sticky-fixed,
.tm-header-mobile.uk-sticky-fixed,
.pz-site-header.uk-sticky-fixed {
  border-bottom-color: rgba(255, 253, 248, 0.13);
  background: rgba(11, 11, 9, 0.78) !important;
  box-shadow: 0 18px 55px rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(24px) saturate(140%);
  -webkit-backdrop-filter: blur(24px) saturate(140%);
}

.tm-header :where(.uk-navbar-nav > li > a, .uk-navbar-toggle, .uk-navbar-item, .uk-logo),
.tm-header-mobile :where(.uk-navbar-nav > li > a, .uk-navbar-toggle, .uk-navbar-item, .uk-logo),
.pz-site-header :where(a, .uk-button-text) {
  color: var(--pz-white);
}

.tm-header .uk-logo :where(img, svg),
.tm-header-mobile .uk-logo :where(img, svg) {
  filter: grayscale(1) brightness(0) invert(1);
}

.tm-header .uk-navbar-nav > li > a,
.tm-header-mobile .uk-navbar-nav > li > a {
  position: relative;
  min-height: 82px;
  font-size: 0.76rem;
  font-weight: 730;
  letter-spacing: 0.095em;
  text-transform: uppercase;
}

.tm-header .uk-navbar-nav > li > a::after {
  position: absolute;
  right: 20px;
  bottom: 20px;
  left: 20px;
  height: 1px;
  background: var(--pz-paper);
  content: "";
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform var(--pz-speed) var(--pz-ease);
}

.tm-header .uk-navbar-nav > li:hover > a::after,
.tm-header .uk-navbar-nav > li.uk-active > a::after {
  transform: scaleX(1);
  transform-origin: left center;
}

.pz-site-header {
  width: 100%;
  background: var(--pz-cellar) !important;
}

.pz-site-header .pz-row {
  align-items: center;
}

.pz-header-logo,
.pz-footer-logo {
  display: inline-block;
}

.pz-header-logo :where(img, svg),
.pz-header-logo:is(img, svg) {
  width: auto;
  max-height: 54px;
  filter: grayscale(1) brightness(0) invert(1);
}

.pz-header-actions {
  justify-content: flex-end;
}

.pz-header-actions .uk-button {
  min-height: 44px;
  padding-inline: 1.15rem;
  border-color: rgba(255, 253, 248, 0.18);
  background: rgba(255, 253, 248, 0.12);
  color: var(--pz-white);
}

.pz-cart-link {
  position: relative;
  display: inline-grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border: 1px solid rgba(255, 253, 248, 0.2);
  border-radius: 50%;
  background: rgba(255, 253, 248, 0.12);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.16);
  color: var(--pz-white);
  text-decoration: none;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.pz-cart-link:hover {
  background: rgba(255, 253, 248, 0.22);
  color: var(--pz-white);
  transform: translateY(-2px);
}

.pxshop-cart-count,
[data-pxshop-count],
[data-pxshop-cart-count] {
  position: absolute;
  top: -5px;
  right: -5px;
  display: grid;
  min-width: 21px;
  height: 21px;
  box-sizing: border-box;
  place-items: center;
  padding-inline: 5px;
  border: 2px solid var(--pz-cellar);
  border-radius: var(--pz-pill);
  background: var(--pz-orange);
  color: var(--pz-cellar);
  font-size: 0.67rem;
  font-weight: 820;
  line-height: 1;
}

.pz-cart-pulse {
  animation: pz-cart-pulse 560ms var(--pz-ease);
}

@keyframes pz-cart-pulse {
  45% { transform: translateY(-3px) scale(1.09); }
}

/* --------------------------------------------------------------------------
   Hero and compact inner-page headers
   -------------------------------------------------------------------------- */

.pz-hero,
.pz-inner-hero,
.pz-program-head,
.pz-contact-head,
.pz-gallery-head {
  overflow: hidden;
  border-radius: 0 0 42px 42px;
  color: var(--pz-white);
  background-color: var(--pz-cellar);
  box-shadow: var(--pz-shadow-strong);
}

.pz-hero {
  min-height: clamp(680px, 91svh, 980px);
}

.pz-hero::before,
.pz-inner-hero::before,
.pz-program-head::before,
.pz-contact-head::before,
.pz-gallery-head::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(8, 8, 7, 0.78) 0%, rgba(8, 8, 7, 0.42) 50%, rgba(8, 8, 7, 0.12) 78%),
    linear-gradient(0deg, rgba(8, 8, 7, 0.66), transparent 48%);
  content: "";
  pointer-events: none;
}

.pz-hero::after {
  position: absolute;
  z-index: -1;
  right: -9rem;
  bottom: -10rem;
  width: 31rem;
  aspect-ratio: 1;
  border: 1px solid rgba(255, 253, 248, 0.2);
  border-radius: 50%;
  box-shadow:
    0 0 0 3rem rgba(255, 253, 248, 0.025),
    0 0 0 7rem rgba(255, 253, 248, 0.018);
  content: "";
  pointer-events: none;
}

.pz-hero-row {
  min-height: clamp(590px, 82svh, 880px);
  align-items: flex-end;
}

.pz-hero-card {
  width: min(100%, 780px);
  box-sizing: border-box;
  margin-top: clamp(6rem, 12vh, 10rem);
  padding: clamp(1.65rem, 4vw, 3.35rem);
  border: 1px solid rgba(255, 253, 248, 0.22);
  border-radius: var(--pz-radius);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.13), rgba(255, 255, 255, 0.035)),
    rgba(11, 11, 9, 0.42);
  box-shadow: var(--pz-shadow-strong);
  color: var(--pz-white);
  backdrop-filter: blur(24px) saturate(135%);
  -webkit-backdrop-filter: blur(24px) saturate(135%);
}

.pz-hero-eyebrow,
.pz-inner-hero-eyebrow,
.pz-legal-eyebrow {
  color: var(--pz-paper);
}

.pz-hero-title,
.pz-hero-title .el-title {
  max-width: 12ch;
  margin-bottom: 1.1rem;
  color: var(--pz-white);
  font-size: clamp(3rem, 5vw, 4.5rem);
  font-weight: 790;
  letter-spacing: -0.065em;
  line-height: 0.92;
}

.pz-hero-lead,
.pz-hero-lead .el-content {
  max-width: 59ch;
  margin-bottom: 1.6rem;
  color: rgba(255, 253, 248, 0.88);
  font-size: clamp(1.04rem, 1.6vw, 1.28rem);
  line-height: 1.58;
}

.pz-hero .uk-button-default,
.pz-inner-hero .uk-button-default,
.pz-program-head .uk-button-default,
.pz-contact-head .uk-button-default,
.pz-gallery-head .uk-button-default {
  border-color: rgba(255, 253, 248, 0.24);
  background: rgba(255, 253, 248, 0.12);
  color: var(--pz-white);
}

.pz-hero .uk-button-primary,
.pz-inner-hero .uk-button-primary {
  border-color: rgba(255, 253, 248, 0.24);
  background: rgba(255, 253, 248, 0.88);
  color: var(--pz-wine-dark);
  box-shadow: 0 16px 42px rgba(0, 0, 0, 0.18);
}

.pz-hero .uk-button-primary:hover,
.pz-inner-hero .uk-button-primary:hover {
  background: #fff;
  color: var(--pz-wine-dark);
}

.pz-inner-hero,
.pz-program-head,
.pz-contact-head,
.pz-gallery-head {
  min-height: clamp(430px, 58svh, 610px);
}

.pz-inner-hero-row {
  min-height: clamp(350px, 49svh, 530px);
  align-items: flex-end;
}

.pz-inner-hero-card {
  width: min(100%, 760px);
  box-sizing: border-box;
  margin-top: clamp(5rem, 9vh, 8rem);
  padding: clamp(1.5rem, 3.5vw, 2.7rem);
  border: 1px solid rgba(255, 253, 248, 0.2);
  border-radius: var(--pz-radius);
  background: var(--pz-glass-dark-soft);
  box-shadow: var(--pz-shadow-strong);
  color: var(--pz-white);
  backdrop-filter: blur(22px) saturate(130%);
  -webkit-backdrop-filter: blur(22px) saturate(130%);
}

.pz-inner-hero-title,
.pz-inner-hero-title .el-title {
  max-width: 16ch;
  margin-bottom: 0.9rem;
  color: var(--pz-white);
  font-size: clamp(2.65rem, 4.5vw, 4.5rem);
  letter-spacing: -0.06em;
  line-height: 0.96;
}

.pz-inner-hero-lead,
.pz-inner-hero-lead .el-content {
  max-width: 58ch;
  margin-bottom: 0;
  color: rgba(255, 253, 248, 0.86);
  font-size: clamp(1rem, 1.45vw, 1.2rem);
}

.pz-legal-hero {
  min-height: clamp(285px, 38svh, 380px);
}

.pz-legal-hero .pz-inner-hero-row {
  min-height: clamp(230px, 31svh, 325px);
}

.pz-legal-hero-card {
  width: min(100%, 850px);
  margin-top: 4.5rem;
  padding: clamp(1.3rem, 3vw, 2.1rem);
}

.pz-legal-title,
.pz-legal-title .el-title {
  margin-bottom: 0.6rem;
  color: var(--pz-white);
  font-size: clamp(2.15rem, 4.4vw, 4.15rem);
  letter-spacing: -0.055em;
  line-height: 0.98;
}

.pz-legal-lead,
.pz-legal-lead .el-content {
  max-width: 70ch;
  color: rgba(255, 253, 248, 0.82);
  font-size: 1rem;
}

/* --------------------------------------------------------------------------
   Cards, glass surfaces and editorial splits
   -------------------------------------------------------------------------- */

.pz-card,
.pz-glass-panel,
.pz-cta-card,
.pz-editorial-copy--glass,
.pz-legal-card,
.pz-legal-contact-card,
.pz-program-card,
.pz-wine-stats .uk-card,
.pz-wine-stats .el-item {
  overflow: hidden;
  box-sizing: border-box;
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: var(--pz-radius);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.62), rgba(255, 255, 255, 0.22)),
    rgba(242, 238, 229, 0.52);
  box-shadow: var(--pz-shadow);
  backdrop-filter: blur(var(--pz-blur)) saturate(135%);
  -webkit-backdrop-filter: blur(var(--pz-blur)) saturate(135%);
}

.uk-section-secondary :where(.pz-card, .pz-glass-panel, .pz-program-card, .pz-editorial-copy--glass),
.uk-section-primary :where(.pz-card, .pz-glass-panel, .pz-cta-card) {
  border-color: rgba(255, 253, 248, 0.19);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.025)),
    rgba(11, 11, 9, 0.5);
  color: var(--pz-white);
  box-shadow: var(--pz-shadow-strong);
}

.pz-card,
.pz-glass-panel,
.pz-cta-card,
.pz-editorial-copy,
.pz-legal-card,
.pz-legal-contact-card,
.pz-program-card {
  padding: clamp(1.45rem, 3.5vw, 3rem);
}

.pz-card > :last-child,
.pz-glass-panel > :last-child,
.pz-cta-card > :last-child,
.pz-editorial-copy > :last-child,
.pz-legal-card > :last-child,
.pz-program-card > :last-child {
  margin-bottom: 0;
}

.pz-split-row {
  align-items: center;
}

.pz-editorial-media {
  position: relative;
}

.pz-editorial-media::before {
  position: absolute;
  z-index: -1;
  top: -5%;
  right: -5%;
  width: 54%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--pz-orange);
  content: "";
  filter: blur(65px);
  opacity: 0.16;
}

.pz-editorial-image,
.pz-image,
.pz-gallery-card,
.pz-product-image {
  overflow: hidden;
  border-radius: var(--pz-radius);
}

.pz-editorial-image :where(img, picture),
.pz-editorial-image:is(img, picture),
.pz-image :where(img, picture),
.pz-image:is(img, picture),
.pz-gallery-card :where(img, picture),
.pz-gallery-card:is(img, picture) {
  border-radius: inherit;
}

.pz-editorial-media .pz-editorial-image :where(img),
.pz-editorial-image:is(img) {
  width: 100%;
  min-height: clamp(390px, 47vw, 650px);
  object-fit: cover;
  box-shadow: var(--pz-shadow);
}

.pz-editorial-copy:not(.pz-editorial-copy--glass) {
  position: relative;
}

.pz-editorial-copy:not(.pz-editorial-copy--glass)::after {
  position: absolute;
  top: 0;
  left: 0;
  width: 70px;
  height: 4px;
  border-radius: var(--pz-pill);
  background: linear-gradient(90deg, var(--pz-wine), var(--pz-orange));
  content: "";
}

.pz-story .pz-editorial-copy,
.pz-cellar .pz-editorial-copy,
.pz-collection .pz-editorial-copy,
.pz-kapr-intro .pz-editorial-copy,
.pz-kapr-info .pz-editorial-copy,
.pz-contact-data .pz-editorial-copy {
  padding-top: clamp(2rem, 4vw, 3.1rem);
}

.pz-two-worlds {
  background-position: center !important;
}

.pz-two-worlds::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(11, 11, 9, 0.16), rgba(11, 11, 9, 0.82) 66%),
    linear-gradient(0deg, rgba(11, 11, 9, 0.4), transparent 50%);
  content: "";
}

.pz-two-worlds .pz-editorial-copy--glass {
  margin-left: auto;
}

.pz-contact-cta {
  border-radius: 42px 42px 0 0;
}

.pz-cta-card {
  max-width: 900px;
  margin-inline: auto;
}

.pz-cta-card .pz-actions,
.pz-program-card .pz-actions {
  justify-content: center;
}

/* --------------------------------------------------------------------------
   Label-derived colour system / motif blocks
   -------------------------------------------------------------------------- */

.pz-wines {
  background:
    radial-gradient(circle at 15% 20%, rgba(245, 134, 18, 0.14), transparent 23rem),
    radial-gradient(circle at 84% 76%, rgba(40, 107, 189, 0.13), transparent 24rem),
    var(--pz-paper-soft) !important;
}

.pz-motif-grid,
.pz-label-gallery {
  align-items: stretch;
}

.pz-motif-card {
  position: relative;
  overflow: hidden;
  min-height: 490px;
  box-sizing: border-box;
  padding: 1rem;
  border: 1px solid rgba(32, 33, 30, 0.1);
  border-radius: var(--pz-radius);
  background: rgba(255, 253, 248, 0.63);
  box-shadow: var(--pz-shadow);
  transition:
    transform 560ms var(--pz-ease),
    box-shadow 560ms var(--pz-ease);
}

.pz-motif-card::before {
  position: absolute;
  z-index: 0;
  top: -5rem;
  right: -5rem;
  width: 15rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--pz-card-accent, var(--pz-orange));
  content: "";
  filter: blur(55px);
  opacity: 0.22;
}

.pz-motif-card--orange { --pz-card-accent: var(--pz-orange); }
.pz-motif-card--violet { --pz-card-accent: var(--pz-violet); }
.pz-motif-card--blue { --pz-card-accent: var(--pz-blue); }

.pz-motif-card:hover {
  box-shadow: 0 34px 90px rgba(19, 16, 12, 0.2);
  transform: translateY(-9px) rotate(-0.35deg);
}

.pz-motif {
  position: relative;
  z-index: 1;
  display: block;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 1.05;
  border-radius: var(--pz-radius-inner);
  background: #fff;
  mix-blend-mode: multiply;
  object-fit: cover;
  transition: transform 760ms var(--pz-ease);
}

.pz-motif :where(img),
.pz-motif:is(img) {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.pz-motif-card:hover .pz-motif,
.pz-motif-card:hover .pz-motif img {
  transform: scale(1.04) rotate(1deg);
}

.pz-motif--small {
  width: min(100%, 290px);
  aspect-ratio: 1;
  margin-inline: auto;
}

.pz-motif-caption {
  position: relative;
  z-index: 2;
  margin: -1.3rem 0 0 !important;
  padding: 1.25rem 1.35rem !important;
  border: 1px solid rgba(255, 255, 255, 0.7) !important;
  border-radius: var(--pz-radius-inner) !important;
  background: rgba(255, 253, 248, 0.75) !important;
  box-shadow: 0 16px 40px rgba(19, 16, 12, 0.12) !important;
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
}

.pz-labels {
  background:
    radial-gradient(circle at 12% 22%, rgba(236, 0, 139, 0.12), transparent 21rem),
    radial-gradient(circle at 90% 80%, rgba(0, 169, 159, 0.11), transparent 25rem),
    var(--pz-cellar) !important;
  color: var(--pz-paper);
}

/* --------------------------------------------------------------------------
   Galleries — editorial rhythm without fighting UIkit layout
   -------------------------------------------------------------------------- */

.pz-gallery-grid .el-item,
.pz-gallery-card {
  position: relative;
  overflow: hidden;
  border-radius: var(--pz-radius);
  background: var(--pz-charcoal);
  box-shadow: var(--pz-shadow);
}

.pz-gallery-grid .el-image,
.pz-gallery-grid .el-item img,
.pz-gallery-card img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  transition: transform 900ms var(--pz-ease), filter 600ms var(--pz-ease);
}

.pz-gallery-grid .el-item:hover img,
.pz-gallery-card:hover img {
  filter: saturate(1.06) contrast(1.03);
  transform: scale(1.045);
}

/* Printed labels need one calm, repeatable frame. Their varying source
   dimensions may never change the height or crop the artwork. */
.pz-label-gallery .el-item,
.pz-label-gallery .pz-gallery-card {
  display: grid;
  aspect-ratio: 4 / 5;
  box-sizing: border-box;
  place-items: center;
  padding: clamp(0.7rem, 1.5vw, 1.1rem);
  border: 1px solid rgba(32, 33, 30, 0.08);
  border-radius: 22px;
  background: #fffdf8;
  box-shadow: 0 12px 34px rgba(19, 16, 12, 0.08);
}

.pz-label-gallery .el-item :where(a, picture),
.pz-label-gallery .pz-gallery-card :where(a, picture) {
  display: block;
  width: 100%;
  height: 100%;
}

.pz-label-gallery .el-image,
.pz-label-gallery .el-item img,
.pz-label-gallery .pz-gallery-card img {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: contain;
  object-position: center;
  filter: none;
  transform: none;
  transition: none;
}

.pz-label-gallery .el-item:hover img,
.pz-label-gallery .pz-gallery-card:hover img {
  filter: none;
  transform: none;
}

.pz-gallery-teaser,
.pz-kapr-gallery,
.pz-gallery-winery,
.pz-gallery-kapr {
  background-color: var(--pz-paper);
}

/* --------------------------------------------------------------------------
   U Kapra, programme and event pages
   -------------------------------------------------------------------------- */

.pz-kapr-music,
.pz-program-teaser {
  background-position: center !important;
}

.pz-kapr-music::before,
.pz-program-teaser::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    linear-gradient(120deg, rgba(11, 11, 9, 0.86), rgba(11, 11, 9, 0.35)),
    radial-gradient(circle at 85% 15%, rgba(245, 134, 18, 0.25), transparent 22rem);
  content: "";
}

.pz-program-card {
  max-width: 850px;
  margin-inline: auto;
}

.pz-program-list-template {
  position: relative;
}

.pz-program-slot {
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
  padding: clamp(1.3rem, 2.8vw, 2rem);
  border: 1px solid rgba(32, 33, 30, 0.1);
  border-radius: var(--pz-radius);
  background: rgba(255, 253, 248, 0.68);
  box-shadow: var(--pz-shadow);
  backdrop-filter: blur(18px) saturate(125%);
  -webkit-backdrop-filter: blur(18px) saturate(125%);
}

.pz-program-slot::before,
.pz-event-content::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 5px;
  background: linear-gradient(90deg, var(--pz-orange), var(--pz-magenta), var(--pz-violet));
  content: "";
}

.pz-events-archive-section {
  background: var(--pz-paper-soft);
}

.pz-empty,
.pz-alert,
.pz-draft,
.pz-test-mode {
  box-sizing: border-box;
  padding: 1rem 1.2rem;
  border: 1px solid rgba(124, 23, 56, 0.18);
  border-radius: var(--pz-radius-inner);
  background: rgba(124, 23, 56, 0.07);
  color: var(--pz-wine-dark);
}

.pz-test-mode {
  border-color: rgba(245, 134, 18, 0.35);
  background: rgba(245, 134, 18, 0.12);
  color: #572a00;
}

/* --------------------------------------------------------------------------
   Wine catalogue — 3 / 2 / 1 columns, no display:grid conflict on root
   -------------------------------------------------------------------------- */

.pz-shop-catalog,
.pz-shop-head {
  background:
    radial-gradient(circle at 5% 16%, rgba(245, 134, 18, 0.1), transparent 20rem),
    radial-gradient(circle at 96% 82%, rgba(91, 37, 141, 0.1), transparent 24rem),
    var(--pz-paper);
}

.pz-products-grid {
  align-items: stretch;
}

/* YOOtheme may place the custom class directly on .uk-grid or one wrapper up. */
.pz-products-grid.uk-grid > *,
.pz-products-grid > .uk-grid > * {
  width: 33.333333% !important;
  box-sizing: border-box;
}

.pz-products-grid .el-item {
  position: relative;
  display: flex;
  min-height: 100%;
  overflow: hidden;
  flex-direction: column;
  border: 1px solid rgba(32, 33, 30, 0.1);
  border-radius: var(--pz-radius);
  background: rgba(255, 253, 248, 0.86);
  box-shadow: var(--pz-shadow);
  transition:
    transform 560ms var(--pz-ease),
    box-shadow 560ms var(--pz-ease),
    border-color 560ms var(--pz-ease);
}

.pz-products-grid .el-item::after {
  position: absolute;
  z-index: 0;
  right: -4rem;
  bottom: -4rem;
  width: 11rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--pz-card-colour, var(--pz-wine));
  content: "";
  filter: blur(52px);
  opacity: 0.12;
  pointer-events: none;
}

.pz-products-grid > :nth-child(6n + 1) .el-item { --pz-card-colour: var(--pz-teal); }
.pz-products-grid > :nth-child(6n + 2) .el-item { --pz-card-colour: var(--pz-blue); }
.pz-products-grid > :nth-child(6n + 3) .el-item { --pz-card-colour: var(--pz-orange); }
.pz-products-grid > :nth-child(6n + 4) .el-item { --pz-card-colour: var(--pz-magenta); }
.pz-products-grid > :nth-child(6n + 5) .el-item { --pz-card-colour: var(--pz-violet); }
.pz-products-grid > :nth-child(6n + 6) .el-item { --pz-card-colour: var(--pz-cyan); }

.pz-products-grid .el-item:hover {
  border-color: rgba(124, 23, 56, 0.2);
  box-shadow: 0 32px 86px rgba(19, 16, 12, 0.2);
  transform: translateY(-9px);
}

.pz-products-grid .el-image,
.pz-products-grid .el-item > a:first-child img,
.pz-products-grid .el-item > img {
  width: 100%;
  height: clamp(340px, 39vw, 510px);
  box-sizing: border-box;
  border-radius: var(--pz-radius) var(--pz-radius) 0 0;
  background: var(--pz-cellar);
  object-fit: contain;
  transition: transform 850ms var(--pz-ease), filter 600ms var(--pz-ease);
}

.pz-products-grid .el-item:hover .el-image,
.pz-products-grid .el-item:hover img {
  filter: saturate(1.05) contrast(1.04);
  transform: scale(1.025);
}

.pz-products-grid .uk-card-body,
.pz-products-grid .el-content,
.pz-products-grid .el-meta,
.pz-products-grid .el-title {
  position: relative;
  z-index: 1;
}

.pz-products-grid .uk-card-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: clamp(1.25rem, 2.4vw, 1.8rem);
}

.pz-products-grid .el-title {
  margin-bottom: 0.55rem;
  color: var(--pz-ink);
  font-size: clamp(1.35rem, 2vw, 1.75rem);
  font-weight: 770;
  letter-spacing: -0.035em;
  line-height: 1.08;
}

.pz-products-grid .el-meta {
  margin-bottom: 0.8rem;
  color: var(--pz-wine);
  font-size: 0.72rem;
  font-weight: 760;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.pz-products-grid .el-content {
  color: var(--pz-muted);
}

.pz-products-grid .el-link {
  margin-top: auto;
  color: var(--pz-wine);
  font-size: 0.76rem;
  font-weight: 780;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.pxshop-catalog [data-pxshop-product-actions],
.pz-products-grid [data-pxshop-product-actions] {
  position: relative;
  z-index: 2;
  margin-top: 1.1rem;
}

.pxshop-catalog [data-pxshop-add],
.pz-products-grid [data-pxshop-add] {
  width: 100%;
}

.pz-shop-assurance,
.pz-shop-help {
  border-radius: var(--pz-radius);
}

.pz-shop-assurance .pz-card,
.pz-shop-help .pz-card {
  min-height: 100%;
}

/* --------------------------------------------------------------------------
   Product detail
   -------------------------------------------------------------------------- */

.pz-wine-detail {
  background:
    radial-gradient(circle at 5% 15%, rgba(40, 107, 189, 0.09), transparent 22rem),
    var(--pz-paper);
}

.pz-wine-detail .pz-row {
  align-items: start;
}

.pz-product-image {
  position: relative;
  overflow: hidden;
  min-height: clamp(480px, 57vw, 760px);
  border: 1px solid rgba(32, 33, 30, 0.07);
  background:
    radial-gradient(circle at 50% 38%, rgba(255, 255, 255, 0.96), transparent 18rem),
    linear-gradient(145deg, #fffdf8, #f1ede5);
  box-shadow: 0 14px 38px rgba(19, 16, 12, 0.07);
}

.pz-product-image :where(img),
.pz-product-image:is(img) {
  width: 100%;
  height: clamp(480px, 57vw, 760px);
  padding: clamp(1rem, 3vw, 2rem);
  box-sizing: border-box;
  object-fit: contain;
}

.pz-wine-detail .pz-heading:first-of-type,
.pz-wine-detail h1 {
  font-size: clamp(2.7rem, 5vw, 4.5rem);
  letter-spacing: -0.06em;
  line-height: 0.95;
}

.pz-wine-detail .pxshop-product-actions:not(.pxshop-buybox) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.8rem;
  margin: 1.6rem 0;
  padding: 1rem;
  border: 1px solid rgba(32, 33, 30, 0.1);
  border-radius: var(--pz-radius-inner);
  background: rgba(255, 253, 248, 0.65);
  box-shadow: 0 16px 44px rgba(19, 16, 12, 0.08);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.pz-wine-detail .pxshop-product-actions .uk-button {
  min-width: min(100%, 250px);
}

.pz-wine-stats {
  margin-top: 1.5rem;
}

.pz-wine-stats .uk-card,
.pz-wine-stats .el-item {
  min-height: 100%;
  padding: 1.05rem 1.15rem;
  box-shadow: 0 12px 38px rgba(19, 16, 12, 0.08);
}

.pz-wine-stats :where(h3, .el-title) {
  margin: 0 0 0.3rem;
  color: var(--pz-muted);
  font-size: 0.68rem;
  font-weight: 760;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.pz-wine-stats :where(p, .el-content) {
  margin: 0;
  color: var(--pz-ink);
  font-size: 1rem;
  font-weight: 700;
}

.pz-wine-more {
  /* Keep the Builder background photograph intact; a background shorthand
     here would erase its inline background-image. */
  background-color: var(--pz-cellar) !important;
}

/* --------------------------------------------------------------------------
   Real com_pxshop cart, checkout and return views
   -------------------------------------------------------------------------- */

.pxshop {
  --pxshop-border: var(--pz-line);
  width: min(calc(100% - 2rem), 1080px);
  max-width: 1080px;
  box-sizing: border-box;
  margin: clamp(7.5rem, 13vw, 10rem) auto clamp(4rem, 9vw, 8rem);
  padding: clamp(1.35rem, 4vw, 3.5rem);
  border: 1px solid rgba(255, 255, 255, 0.65);
  border-radius: var(--pz-radius);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.68), rgba(255, 255, 255, 0.24)),
    rgba(242, 238, 229, 0.72);
  box-shadow: var(--pz-shadow);
  color: var(--pz-ink);
  font-family: var(--pz-font);
  backdrop-filter: blur(var(--pz-blur)) saturate(135%);
  -webkit-backdrop-filter: blur(var(--pz-blur)) saturate(135%);
}

.pxshop > h1 {
  margin-bottom: clamp(1.5rem, 4vw, 2.8rem);
  font-size: clamp(2.45rem, 5vw, 4.5rem);
}

.pxshop-message:not(:empty),
.pxshop .uk-alert-danger,
.pxshop .uk-alert-success {
  margin-block: 1.25rem;
  padding: 1rem 1.2rem;
  border: 1px solid rgba(124, 23, 56, 0.18);
  border-radius: var(--pz-radius-inner);
  background: rgba(124, 23, 56, 0.07);
  color: var(--pz-wine-dark);
}

.pxshop-line {
  display: grid;
  grid-template-columns: 92px minmax(12rem, 1fr) auto auto auto;
  gap: clamp(0.75rem, 2.5vw, 1.35rem);
  align-items: center;
  margin-bottom: 0.75rem;
  padding: 0.8rem;
  border: 1px solid rgba(32, 33, 30, 0.1);
  border-radius: var(--pz-radius-inner);
  background: rgba(255, 253, 248, 0.54);
  box-shadow: 0 10px 34px rgba(19, 16, 12, 0.06);
}

.pxshop-line > img {
  width: 92px;
  height: 116px;
  border-radius: var(--pz-radius-small);
  background: var(--pz-cellar);
  object-fit: contain;
}

.pxshop-line > div:first-of-type {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 0.2rem;
}

.pxshop-line > div:first-of-type strong {
  font-size: 1.06rem;
  letter-spacing: -0.02em;
}

.pxshop-line small {
  color: var(--pz-muted);
  font-size: 0.7rem;
  font-weight: 680;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.pxshop-line > strong:last-child {
  color: var(--pz-wine-dark);
  white-space: nowrap;
}

.pxshop-quantity {
  width: 5.2rem;
}

.pxshop :where(.uk-input, .uk-textarea, .uk-select) {
  border: 1px solid rgba(32, 33, 30, 0.16);
  border-radius: var(--pz-radius-small);
  background: rgba(255, 253, 248, 0.7);
  color: var(--pz-ink);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.pxshop :where(.uk-input, .uk-select) {
  min-height: 52px;
}

.pxshop .pxshop-quantity {
  min-height: 46px;
  text-align: center;
}

.pxshop :where(.uk-input, .uk-textarea, .uk-select):focus {
  border-color: rgba(124, 23, 56, 0.5);
  background: var(--pz-white);
  box-shadow: 0 0 0 4px rgba(124, 23, 56, 0.09);
}

.pxshop label {
  display: grid;
  gap: 0.48rem;
  color: var(--pz-charcoal);
  font-size: 0.82rem;
  font-weight: 720;
  letter-spacing: 0.025em;
}

.pxshop [data-pxshop-checkout-form] {
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 1px solid var(--pz-line);
}

.pxshop [data-pxshop-checkout-form] > p {
  margin-block: 1rem;
}

.pxshop [data-pxshop-checkout-form] > p label {
  display: block;
  font-weight: 560;
}

.pxshop .uk-checkbox {
  width: 21px;
  height: 21px;
  margin-right: 0.45rem;
  border-radius: 6px;
}

.pxshop-totals {
  display: grid;
  width: min(100%, 390px);
  justify-content: stretch;
  gap: 0.45rem;
  margin: 1.5rem 0 1.5rem auto;
  padding: 1.3rem 1.45rem;
  border: 1px solid rgba(124, 23, 56, 0.14);
  border-radius: var(--pz-radius-inner);
  background: rgba(124, 23, 56, 0.06);
  text-align: right;
}

.pxshop-totals strong {
  margin-top: 0.45rem;
  padding-top: 0.65rem;
  border-top: 1px solid rgba(124, 23, 56, 0.16);
  color: var(--pz-wine-dark);
  font-size: 1.3rem;
}

.pxshop-return {
  text-align: center;
}

.pxshop-return::before {
  display: grid;
  width: 76px;
  height: 76px;
  place-items: center;
  margin: 0 auto 1.3rem;
  border-radius: 50%;
  background: rgba(0, 169, 159, 0.12);
  color: #04756e;
  content: "✓";
  font-size: 2rem;
  font-weight: 800;
}

/* 18+ gate is emitted directly by PxShop and must sit above Joomla/UIkit. */
.pxshop-age-locked,
.pxshop-age-locked body {
  overflow: hidden;
}

.pxshop-age-gate {
  position: fixed;
  z-index: 2147483000;
  inset: 0;
  display: grid;
  overflow: auto;
  place-items: center;
  padding: 1.25rem;
  background:
    radial-gradient(circle at 14% 16%, rgba(245, 134, 18, 0.22), transparent 28rem),
    radial-gradient(circle at 88% 82%, rgba(91, 37, 141, 0.25), transparent 31rem),
    rgba(7, 7, 6, 0.92);
  font-family: var(--pz-font);
  backdrop-filter: blur(24px) saturate(125%);
  -webkit-backdrop-filter: blur(24px) saturate(125%);
}

.pxshop-age-gate::before {
  position: fixed;
  width: min(70vw, 700px);
  aspect-ratio: 1;
  border: 1px solid rgba(255, 253, 248, 0.08);
  border-radius: 50%;
  box-shadow:
    0 0 0 5vw rgba(255, 253, 248, 0.016),
    0 0 0 11vw rgba(255, 253, 248, 0.012);
  content: "";
  pointer-events: none;
}

.pxshop-age-gate__panel {
  position: relative;
  width: min(100%, 590px);
  box-sizing: border-box;
  padding: clamp(1.6rem, 5vw, 3.6rem);
  border: 1px solid rgba(255, 253, 248, 0.2);
  border-radius: var(--pz-radius);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.025)),
    rgba(11, 11, 9, 0.64);
  color: var(--pz-paper);
  text-align: center;
  box-shadow: 0 36px 120px rgba(0, 0, 0, 0.48);
  backdrop-filter: blur(28px) saturate(140%);
  -webkit-backdrop-filter: blur(28px) saturate(140%);
}

.pxshop-age-gate__panel::before {
  display: grid;
  width: 72px;
  height: 72px;
  place-items: center;
  margin: 0 auto 1.35rem;
  border: 1px solid rgba(255, 253, 248, 0.2);
  border-radius: 50%;
  background: rgba(255, 253, 248, 0.1);
  color: var(--pz-paper);
  content: "18+";
  font-size: 1.08rem;
  font-weight: 820;
  letter-spacing: 0.05em;
}

.pxshop-age-gate__panel h2 {
  margin-bottom: 1rem;
  color: var(--pz-white);
  font-size: clamp(2rem, 5vw, 3.5rem);
}

.pxshop-age-gate__panel p {
  color: rgba(255, 253, 248, 0.76);
  font-size: 1rem;
  line-height: 1.65;
}

.pxshop-age-gate__panel .uk-button {
  width: 100%;
  margin-top: 0.6rem;
}

/* --------------------------------------------------------------------------
   Legal pages
   -------------------------------------------------------------------------- */

.pz-legal {
  background:
    radial-gradient(circle at 92% 8%, rgba(40, 107, 189, 0.08), transparent 24rem),
    var(--pz-paper);
}

.pz-legal-row {
  align-items: start;
}

.pz-legal-content {
  max-width: 860px;
}

.pz-legal-body .pz-legal-card + .pz-legal-card {
  margin-top: 1rem;
}

.pz-legal-card {
  padding: clamp(1.35rem, 3vw, 2.4rem);
}

.pz-legal-card :where(h2, h3, h4) {
  margin-top: 1.4em;
  color: var(--pz-charcoal);
}

.pz-legal-card :where(h2, h3, h4):first-child {
  margin-top: 0;
}

.pz-legal-card :where(a) {
  color: var(--pz-wine);
}

.pz-legal-aside {
  position: sticky;
  top: 112px;
}

.pz-legal-contact-card {
  background:
    radial-gradient(circle at 90% 12%, rgba(245, 134, 18, 0.16), transparent 12rem),
    rgba(255, 253, 248, 0.68);
}

.pz-legal-motif {
  overflow: hidden;
  max-width: 250px;
  margin: 0 auto 1rem;
  border-radius: 50%;
  background: white;
  mix-blend-mode: multiply;
}

/* --------------------------------------------------------------------------
   Forms outside checkout
   -------------------------------------------------------------------------- */

.pz-contact-form-section :where(.uk-input, .uk-textarea, .uk-select) {
  border: 1px solid rgba(32, 33, 30, 0.14);
  border-radius: var(--pz-radius-small);
  background: rgba(255, 253, 248, 0.72);
}

.pz-contact-form-section :where(.uk-input, .uk-select) {
  min-height: 54px;
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

.pz-site-footer {
  position: relative;
  overflow: hidden;
  border-radius: 42px 42px 0 0;
  background:
    radial-gradient(circle at 5% 15%, rgba(245, 134, 18, 0.14), transparent 24rem),
    radial-gradient(circle at 92% 82%, rgba(0, 169, 159, 0.11), transparent 29rem),
    var(--pz-cellar) !important;
  color: rgba(255, 253, 248, 0.74);
}

.pz-site-footer::after {
  position: absolute;
  right: -10rem;
  bottom: -12rem;
  width: 32rem;
  aspect-ratio: 1;
  border: 1px solid rgba(255, 253, 248, 0.09);
  border-radius: 50%;
  box-shadow:
    0 0 0 4rem rgba(255, 253, 248, 0.015),
    0 0 0 9rem rgba(255, 253, 248, 0.01);
  content: "";
  pointer-events: none;
}

.pz-site-footer :where(h2, h3, h4, strong, .el-title) {
  color: var(--pz-white);
}

.pz-site-footer a {
  color: rgba(255, 253, 248, 0.82);
}

.pz-site-footer a:hover {
  color: var(--pz-white);
}

.pz-site-footer hr,
.pz-site-footer .uk-divider-small::after {
  border-color: rgba(255, 253, 248, 0.14);
}

.pz-footer-logo :where(img, svg),
.pz-footer-logo:is(img, svg) {
  width: min(100%, 230px);
  height: auto;
  filter: grayscale(1) brightness(0) invert(1);
  opacity: 0.94;
}

/* --------------------------------------------------------------------------
   Broken image state from pod-zamkem-site.js
   -------------------------------------------------------------------------- */

.pz-has-missing-image {
  position: relative;
  min-height: 250px;
  overflow: hidden;
  border-radius: var(--pz-radius);
  background:
    radial-gradient(circle at 28% 26%, rgba(245, 134, 18, 0.24), transparent 12rem),
    radial-gradient(circle at 82% 78%, rgba(0, 169, 159, 0.18), transparent 14rem),
    repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.028) 0 1px, transparent 1px 14px),
    var(--pz-charcoal);
}

.pz-has-missing-image::after {
  position: absolute;
  z-index: 4;
  top: 50%;
  left: 50%;
  width: max-content;
  max-width: calc(100% - 3rem);
  padding: 0.65rem 0.9rem;
  border: 1px solid rgba(255, 253, 248, 0.16);
  border-radius: var(--pz-pill);
  background: rgba(11, 11, 9, 0.5);
  color: rgba(255, 253, 248, 0.8);
  content: "Obrázek připravujeme";
  font-size: 0.69rem;
  font-weight: 750;
  letter-spacing: 0.1em;
  text-align: center;
  text-transform: uppercase;
  transform: translate(-50%, -50%);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  pointer-events: none;
}

.pz-image-missing {
  min-height: 250px;
  opacity: 0;
}

/* --------------------------------------------------------------------------
   Complete generator class contract (wrappers and specialised cards)
   -------------------------------------------------------------------------- */

.pz-row,
.pz-column,
.pz-html,
.pz-products-row,
.pz-events-row,
.pz-gallery-row,
.pz-contact-row,
.pz-contact-form-row,
.pz-delivery-row {
  position: relative;
  min-width: 0;
}

.pz-products-shell,
.pz-events-shell,
.pz-gallery-shell,
.pz-contact-form-position {
  width: 100%;
  min-width: 0;
}

.pz-divider {
  height: 1px;
  margin-block: clamp(1.5rem, 4vw, 3rem);
  border: 0;
  background: linear-gradient(90deg, transparent, var(--pz-line), transparent);
}

.pz-hero--layered > .uk-container {
  position: relative;
  z-index: 1;
}

.pz-hero .pz-hero-card.pz-glass-panel,
.pz-inner-hero .pz-inner-hero-card.pz-glass-panel {
  border-color: rgba(255, 253, 248, 0.21);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.13), rgba(255, 255, 255, 0.025)),
    rgba(11, 11, 9, 0.48);
  color: var(--pz-white);
  box-shadow: var(--pz-shadow-strong);
}

.pz-product-card,
.pz-wine-card-template,
.pz-event-card {
  border-radius: var(--pz-radius);
}

.pz-products-shell,
.pz-events-shell,
.pz-gallery-shell {
  box-sizing: border-box;
}

.pz-shop-help-row {
  min-height: 390px;
  align-items: center;
}

.pz-shop-help-copy {
  position: relative;
  z-index: 2;
  max-width: 760px;
  padding: clamp(1.5rem, 4vw, 3.5rem);
}

.pz-shop-help-art {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
}

.pz-shop-help-art::before {
  position: absolute;
  z-index: -1;
  width: min(84%, 330px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--pz-orange), var(--pz-magenta), var(--pz-violet));
  content: "";
  filter: blur(52px);
  opacity: 0.22;
}

.pz-stat-card {
  min-width: 0;
  border-radius: var(--pz-radius);
}

.pz-event-card,
.pz-event-empty-card,
.pz-events {
  overflow: hidden;
  box-sizing: border-box;
  border-radius: var(--pz-radius);
}

.pz-events-upcoming {
  background:
    radial-gradient(circle at 91% 18%, rgba(245, 134, 18, 0.1), transparent 22rem),
    var(--pz-paper);
}

.pz-events-archive,
.pz-events-grid {
  align-items: stretch;
}

.pz-events-grid .el-item,
.pz-event-card {
  min-height: 100%;
  overflow: hidden;
  border: 1px solid rgba(32, 33, 30, 0.1);
  border-radius: var(--pz-radius);
  background: rgba(255, 253, 248, 0.74);
  box-shadow: var(--pz-shadow);
  transition: transform 560ms var(--pz-ease), box-shadow 560ms var(--pz-ease);
}

.pz-events-grid .el-item:hover,
.pz-event-card:hover {
  box-shadow: 0 30px 82px rgba(19, 16, 12, 0.19);
  transform: translateY(-7px);
}

.pz-events-grid :where(.el-image, img) {
  width: 100%;
  max-height: 390px;
  object-fit: cover;
}

.pz-events-grid .el-meta {
  color: var(--pz-wine);
  font-size: 0.72rem;
  font-weight: 780;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.pz-event-empty-card,
.pz-events.pz-empty {
  min-height: 310px;
  display: grid;
  place-items: center;
  align-content: center;
  padding: clamp(1.5rem, 5vw, 3.5rem);
  border: 1px solid rgba(124, 23, 56, 0.14);
  background:
    radial-gradient(circle at 15% 15%, rgba(245, 134, 18, 0.12), transparent 18rem),
    rgba(255, 253, 248, 0.66);
  box-shadow: var(--pz-shadow);
  text-align: center;
}

.pz-event-content,
.pz-event-detail {
  min-height: 100%;
}

.pz-gallery-shell > .pz-heading,
.pz-gallery-shell > .pz-copy {
  max-width: 830px;
}

.pz-gallery-kapr .pz-gallery-shell {
  color: var(--pz-paper);
}

.pz-contact-card,
.pz-contact-form-card {
  overflow: hidden;
  box-sizing: border-box;
  padding: clamp(1.5rem, 4vw, 3.25rem);
  border: 1px solid rgba(255, 255, 255, 0.58);
  border-radius: var(--pz-radius);
  background: rgba(255, 253, 248, 0.62);
  box-shadow: var(--pz-shadow);
  backdrop-filter: blur(22px) saturate(130%);
  -webkit-backdrop-filter: blur(22px) saturate(130%);
}

.pz-contact-form-card {
  margin-inline: auto;
}

.pz-contact-form-position {
  margin-top: 1.5rem;
}

.pz-legal-body,
.pz-delivery-body,
.pz-claims-body,
.pz-privacy-body,
.pz-cookies-body,
.pz-terms-body {
  background:
    radial-gradient(circle at 92% 8%, rgba(40, 107, 189, 0.07), transparent 23rem),
    var(--pz-paper);
}

.pz-delivery-row {
  align-items: stretch;
}

.pz-delivery-column,
.pz-payment-column {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.pz-info-card {
  position: relative;
  flex: 1;
  overflow: hidden;
  margin-top: 1rem !important;
  padding: 1.35rem 1.45rem !important;
  border: 1px solid rgba(32, 33, 30, 0.1) !important;
  border-radius: var(--pz-radius) !important;
  background: rgba(255, 253, 248, 0.68) !important;
  box-shadow: 0 16px 46px rgba(19, 16, 12, 0.08) !important;
}

.pz-info-card--age,
.pz-legal-card--age {
  border-color: rgba(245, 134, 18, 0.32) !important;
  background:
    radial-gradient(circle at 95% 10%, rgba(245, 134, 18, 0.16), transparent 12rem),
    rgba(255, 253, 248, 0.72) !important;
}

.pz-cookie-card {
  border-left: 5px solid var(--pz-cookie-colour, var(--pz-wine));
}

.pz-cookie-card--necessary { --pz-cookie-colour: var(--pz-teal); }
.pz-cookie-card--analytics { --pz-cookie-colour: var(--pz-blue); }
.pz-cookie-card--marketing { --pz-cookie-colour: var(--pz-magenta); }

.pz-cookie-settings-card {
  background:
    radial-gradient(circle at 91% 12%, rgba(0, 169, 159, 0.14), transparent 15rem),
    rgba(255, 253, 248, 0.7);
}

/* Product template contract. */
.pz-product-layout,
.pz-product-more-row,
.pz-assurance-row {
  position: relative;
  align-items: stretch;
}

.pz-product-media {
  position: sticky;
  top: 112px;
  align-self: start;
}

.pz-product-info {
  min-width: 0;
  box-sizing: border-box;
  padding: clamp(0.5rem, 2vw, 1.5rem);
}

.pz-product-kicker,
.pz-event-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  margin-bottom: 0.85rem;
  color: var(--pz-wine);
  font-size: 0.7rem;
  font-weight: 790;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.pz-product-kicker::before,
.pz-event-kicker::before {
  display: none;
  content: none;
}

.pz-product-title,
.pz-product-title .el-title {
  max-width: 12ch;
  margin-bottom: 1rem;
  color: var(--pz-ink);
  font-size: clamp(2.7rem, 5vw, 4.5rem);
  letter-spacing: -0.06em;
  line-height: 0.95;
}

.pz-product-lead,
.pz-product-lead .el-content {
  max-width: 52ch;
  color: var(--pz-muted);
  font-size: clamp(1rem, 1.6vw, 1.2rem);
}

.pz-product-purchase {
  margin-block: 1.4rem;
}

.pz-product-allergens {
  margin-top: 1rem !important;
  padding: 1rem 1.15rem !important;
  border: 1px solid rgba(245, 134, 18, 0.25) !important;
  border-radius: var(--pz-radius-inner) !important;
  background: rgba(245, 134, 18, 0.075) !important;
  box-shadow: none !important;
}

.pz-product-note-card {
  min-height: 100%;
  box-sizing: border-box;
  padding: clamp(1.45rem, 3.5vw, 2.6rem);
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: var(--pz-radius);
  background: rgba(255, 253, 248, 0.62);
  box-shadow: var(--pz-shadow);
  backdrop-filter: blur(20px) saturate(125%);
  -webkit-backdrop-filter: blur(20px) saturate(125%);
}

.pz-product-pairing {
  background:
    radial-gradient(circle at 93% 12%, rgba(0, 169, 159, 0.12), transparent 15rem),
    rgba(255, 253, 248, 0.64);
}

.pz-product-description {
  background:
    radial-gradient(circle at 93% 12%, rgba(245, 134, 18, 0.13), transparent 15rem),
    rgba(255, 253, 248, 0.64);
}

.pz-assurance-card {
  max-width: 960px;
  box-sizing: border-box;
  margin-inline: auto;
  padding: clamp(1rem, 2.5vw, 1.55rem);
  border: 1px solid rgba(255, 253, 248, 0.16);
  border-radius: var(--pz-radius);
  background: rgba(255, 253, 248, 0.07);
  color: rgba(255, 253, 248, 0.82);
  text-align: center;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.pz-assurance-card .pz-actions {
  justify-content: center;
}

/* Programme template and event detail contract. */
.pz-program-title,
.pz-program-title .el-title {
  max-width: 14ch;
  margin-bottom: 0.9rem;
  font-size: clamp(2.6rem, 5vw, 4.5rem);
  letter-spacing: -0.06em;
  line-height: 0.96;
}

.pz-program-lead {
  max-width: 62ch;
  margin-bottom: 2.2rem;
  color: var(--pz-muted);
  font-size: clamp(1rem, 1.5vw, 1.2rem);
}

.pz-event-grid.pz-events-grid {
  align-items: stretch;
}

.pz-event-detail,
.pz-event-content {
  overflow: clip;
}

.pz-event-detail-row,
.pz-event-content-row {
  position: relative;
  align-items: center;
}

.pz-event-info {
  min-width: 0;
  box-sizing: border-box;
  padding: clamp(1.35rem, 4vw, 3.2rem);
}

.pz-event-title,
.pz-event-title .el-title {
  max-width: 13ch;
  margin-bottom: 1rem;
  font-size: clamp(2.65rem, 5vw, 4.5rem);
  letter-spacing: -0.06em;
  line-height: 0.95;
}

.pz-event-lead {
  max-width: 55ch;
  color: var(--pz-muted);
  font-size: clamp(1rem, 1.5vw, 1.18rem);
}

.pz-event-media {
  position: relative;
}

.pz-event-media::before {
  position: absolute;
  z-index: -1;
  right: -7%;
  bottom: -7%;
  width: 55%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--pz-orange), var(--pz-magenta));
  content: "";
  filter: blur(58px);
  opacity: 0.17;
}

.pz-event-image,
.pz-event-image :where(img),
.pz-event-image:is(img) {
  width: 100%;
  min-height: clamp(400px, 48vw, 650px);
  border-radius: var(--pz-radius);
  object-fit: cover;
  box-shadow: var(--pz-shadow);
}

.pz-event-status {
  box-sizing: border-box;
  padding: 0.55rem 0.75rem;
  border-radius: var(--pz-pill);
  background: rgba(0, 169, 159, 0.09);
  color: #06766f;
}

.pz-event-facebook-action {
  margin-top: 1.35rem;
}

.pz-event-article {
  max-width: 850px;
  box-sizing: border-box;
  margin-inline: auto;
  padding: clamp(1.5rem, 4vw, 3.1rem);
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: var(--pz-radius);
  background: rgba(255, 253, 248, 0.64);
  box-shadow: var(--pz-shadow);
}

/* Footer's concrete YOOtheme hierarchy. */
.pz-footer {
  isolation: isolate;
}

.pz-footer-cta {
  align-items: center;
  padding: clamp(1.4rem, 4vw, 2.8rem);
  border: 1px solid rgba(255, 253, 248, 0.14);
  border-radius: var(--pz-radius);
  background:
    radial-gradient(circle at 92% 18%, rgba(245, 134, 18, 0.14), transparent 18rem),
    rgba(255, 253, 248, 0.06);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.pz-footer-cta-copy,
.pz-footer-cta-buttons {
  min-width: 0;
}

.pz-footer-cta-title,
.pz-footer-cta-title .el-title {
  max-width: 18ch;
  margin-bottom: 0;
  color: var(--pz-white);
  font-size: clamp(2rem, 4vw, 3.5rem);
  letter-spacing: -0.055em;
  line-height: 0.98;
}

.pz-footer-cta-actions {
  justify-content: flex-end;
}

.pz-footer-divider {
  border-color: rgba(255, 253, 248, 0.13) !important;
}

.pz-footer-grid {
  position: relative;
  z-index: 1;
  align-items: start;
}

.pz-footer-brand,
.pz-footer-contact,
.pz-footer-nav {
  min-width: 0;
}

.pz-brand-mark {
  display: inline-block;
  margin-bottom: 1.2rem;
}

.pz-footer-brand-title,
.pz-footer-title {
  color: var(--pz-white);
  font-weight: 730;
  letter-spacing: -0.025em;
}

.pz-footer-copy,
.pz-footer-contact-list,
.pz-footer-links,
.pz-footer-legal {
  color: rgba(255, 253, 248, 0.66);
}

.pz-footer-contact-list p {
  margin-top: 0;
}

.pz-footer-links .uk-list > li {
  margin-top: 0.55rem;
}

.pz-footer-bottom,
.pz-footer-bottom-copy,
.pz-footer-legal {
  position: relative;
  z-index: 1;
}

.pz-footer-bottom {
  margin-top: 1.2rem;
}

/* --------------------------------------------------------------------------
   Current PxShop markup — deliberately stronger than its neutral component CSS
   -------------------------------------------------------------------------- */

.pxshop {
  --pxshop-ink: var(--pz-ink);
  --pxshop-muted: var(--pz-muted);
  --pxshop-paper: var(--pz-paper);
  --pxshop-white: var(--pz-white);
  --pxshop-green: var(--pz-wine);
  --pxshop-pink: var(--pz-magenta);
  --pxshop-orange: var(--pz-orange);
  --pxshop-line: var(--pz-line);
  --pxshop-glass: var(--pz-glass);
  --pxshop-radius: var(--pz-radius);
  --pxshop-radius-small: var(--pz-radius-small);
  --pxshop-shadow: var(--pz-shadow);
}

#pxshop-cart.pxshop-page,
#pxshop-checkout.pxshop-page {
  width: min(1180px, calc(100% - 32px));
  max-width: 1180px;
  min-height: 0;
  margin: clamp(7.5rem, 13vw, 10rem) auto clamp(4rem, 9vw, 8rem);
  padding: clamp(18px, 3vw, 42px);
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.pxshop-page__ambient span {
  opacity: 0.15;
  filter: blur(8px);
}

.pxshop-page__ambient span:nth-child(1) { background: var(--pz-magenta); }
.pxshop-page__ambient span:nth-child(2) { background: var(--pz-teal); }
.pxshop-page__ambient span:nth-child(3) { background: var(--pz-orange); }

body .pxshop-page__header h1,
body .pxshop-checkout-layout h2,
body .pxshop-empty h2,
body .pxshop-line__title,
body .pxshop-buybox__price strong,
body .pxshop-empty__icon {
  font-family: var(--pz-font) !important;
  font-weight: 780;
}

.pxshop-page__header {
  max-width: 790px;
  margin-bottom: clamp(2rem, 5vw, 3.6rem);
}

.pxshop-page__header h1 {
  font-size: clamp(2.8rem, 5vw, 4.5rem);
  letter-spacing: -0.06em;
  line-height: 0.95;
}

.pxshop-page__header > p:last-child {
  max-width: 650px;
  margin-top: 1rem;
  color: var(--pz-muted);
  font-size: clamp(1rem, 2vw, 1.2rem);
}

.pxshop-eyebrow {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  margin: 0 0 0.8rem;
  color: var(--pz-wine);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.17em;
  text-transform: uppercase;
}

#pxshop-cart .pxshop-glass,
#pxshop-checkout .pxshop-glass {
  border: 1px solid rgba(255, 255, 255, 0.72);
  border-radius: var(--pz-radius);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.74), rgba(255, 255, 255, 0.3)),
    rgba(242, 238, 229, 0.66);
  box-shadow: var(--pz-shadow);
  backdrop-filter: blur(26px) saturate(135%);
  -webkit-backdrop-filter: blur(26px) saturate(135%);
}

.pxshop-cart-card,
.pxshop-checkout-summary,
.pxshop-checkout-form-card {
  overflow: hidden;
  padding: clamp(1.4rem, 4vw, 3rem);
}

.pxshop-cart-items {
  display: grid;
  gap: 0.75rem;
}

#pxshop-cart .pxshop-line,
#pxshop-checkout .pxshop-line {
  display: grid;
  grid-template-columns: 92px minmax(180px, 1fr) auto minmax(110px, auto);
  gap: clamp(0.75rem, 2.5vw, 1.35rem);
  align-items: center;
  margin: 0;
  padding: 0.8rem;
  border: 1px solid rgba(32, 33, 30, 0.09);
  border-radius: var(--pz-radius-inner);
  background: rgba(255, 253, 248, 0.54);
  box-shadow: 0 10px 34px rgba(19, 16, 12, 0.055);
}

.pxshop-line__media,
.pxshop-line > .pxshop-line__media:first-of-type {
  display: grid;
  width: 92px;
  height: 116px;
  place-items: center;
  overflow: hidden;
  border-radius: var(--pz-radius-small);
  background:
    radial-gradient(circle at 50% 34%, rgba(255, 255, 255, 0.1), transparent 5rem),
    var(--pz-cellar);
}

.pxshop-line__media img {
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  padding: 0.45rem;
  object-fit: contain;
}

.pxshop-line__info {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 0.18rem;
}

.pxshop-line__title {
  overflow-wrap: anywhere;
  color: var(--pz-ink);
  font-size: clamp(1.05rem, 2vw, 1.35rem);
  letter-spacing: -0.025em;
  line-height: 1.12;
}

.pxshop-line__sku,
.pxshop-line__unit-price {
  color: var(--pz-muted);
}

.pxshop-line__sku {
  font-size: 0.65rem;
  font-weight: 760;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.pxshop-line__unit-price {
  margin-top: 0.25rem;
  font-size: 0.78rem;
}

.pxshop-line__controls {
  display: grid;
  justify-items: center;
  gap: 0.4rem;
}

.pxshop-stepper {
  display: grid;
  overflow: hidden;
  grid-template-columns: 38px 54px 38px;
  border: 1px solid var(--pz-line);
  border-radius: var(--pz-pill);
  background: rgba(255, 253, 248, 0.78);
}

.pxshop-stepper__button {
  min-width: 0;
  height: 42px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--pz-ink);
  cursor: pointer;
  font-size: 1.2rem;
}

.pxshop-stepper__button:hover {
  background: var(--pz-wine);
  color: var(--pz-white);
}

.pxshop .pxshop-quantity.uk-input {
  width: 54px;
  min-height: 42px;
  height: 42px;
  padding: 0 4px;
  border: 0;
  border-right: 1px solid var(--pz-line);
  border-left: 1px solid var(--pz-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  text-align: center;
}

.pxshop-line__remove,
.pxshop-link {
  padding: 0;
  border: 0;
  background: none;
  color: var(--pz-muted);
  cursor: pointer;
  font-size: 0.76rem;
  font-weight: 720;
  text-decoration: none;
}

.pxshop-line__remove:hover,
.pxshop-link:hover {
  color: var(--pz-wine);
  text-decoration: none;
}

.pxshop-line__total {
  display: grid;
  justify-items: end;
  gap: 0.1rem;
  text-align: right;
}

.pxshop-line__total span {
  color: var(--pz-muted);
  font-size: 0.64rem;
  font-weight: 720;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.pxshop-line__total strong {
  color: var(--pz-wine-dark);
  font-size: 1rem;
  white-space: nowrap;
}

.pxshop-line__quantity-summary {
  justify-self: end;
  padding: 0.45rem 0.75rem;
  border-radius: var(--pz-pill);
  background: rgba(124, 23, 56, 0.08);
  color: var(--pz-wine);
  font-size: 0.76rem;
  font-weight: 760;
}

.pxshop-cart-card__footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 370px);
  align-items: end;
  gap: 2rem;
  padding-top: 1.8rem;
}

.pxshop-cart-card__footer > .pxshop-totals {
  grid-column: 2;
}

.pxshop-totals {
  display: grid;
  width: auto;
  justify-content: stretch;
  gap: 0.55rem;
  margin: 0;
  padding: 1.25rem 1.35rem;
  border: 1px solid rgba(124, 23, 56, 0.12);
  border-radius: var(--pz-radius-inner);
  background: rgba(124, 23, 56, 0.055);
  text-align: initial;
}

.pxshop-totals__row {
  display: flex;
  justify-content: space-between;
  gap: 2rem;
  color: var(--pz-muted);
  font-size: 0.82rem;
}

.pxshop-totals__row--final {
  margin-top: 0.25rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(124, 23, 56, 0.15);
  color: var(--pz-ink);
  font-size: 1.12rem;
}

.pxshop-cart-card__actions {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.pxshop-primary-action.uk-button-primary {
  display: inline-flex;
  min-height: 54px;
  align-items: center;
  justify-content: center;
  gap: 1rem;
}

.pxshop-primary-action--wide {
  width: 100%;
}

.pxshop-assurance {
  display: flex;
  max-width: 790px;
  align-items: flex-start;
  justify-content: center;
  gap: 0.6rem;
  margin: 1.4rem auto 0;
  color: var(--pz-muted);
  font-size: 0.75rem;
  line-height: 1.55;
  text-align: center;
}

.pxshop-assurance > span {
  display: grid;
  width: 21px;
  height: 21px;
  flex: 0 0 21px;
  place-items: center;
  border-radius: 50%;
  background: rgba(0, 169, 159, 0.12);
  color: #06766f;
}

.pxshop-empty {
  display: grid;
  min-height: 290px;
  place-items: center;
  align-content: center;
  gap: 0.65rem;
  padding: 2.4rem 1.25rem;
  text-align: center;
}

.pxshop-empty__icon {
  display: grid;
  width: 72px;
  height: 72px;
  place-items: center;
  margin-bottom: 0.4rem;
  border: 1px solid rgba(124, 23, 56, 0.2);
  border-radius: 50%;
  background: rgba(124, 23, 56, 0.07);
  color: var(--pz-wine);
}

.pxshop-empty p {
  max-width: 510px;
  margin: 0;
  color: var(--pz-muted);
}

.pxshop-checkout-layout {
  display: grid;
  grid-template-columns: minmax(300px, 0.85fr) minmax(420px, 1.25fr);
  align-items: start;
  gap: clamp(1.4rem, 3vw, 2.5rem);
}

.pxshop-checkout-summary {
  position: sticky;
  top: 112px;
}

.pxshop-checkout-layout h2 {
  margin-bottom: 1.5rem;
  font-size: clamp(1.8rem, 3vw, 2.65rem);
  letter-spacing: -0.045em;
}

#pxshop-checkout .pxshop-checkout-summary .pxshop-line {
  grid-template-columns: 66px minmax(120px, 1fr) auto;
  gap: 0.75rem;
}

.pxshop-checkout-summary .pxshop-line__media {
  width: 66px;
  height: 84px;
  border-radius: 14px;
}

.pxshop-checkout-summary .pxshop-line__quantity-summary {
  display: none;
}

.pxshop-checkout-summary .pxshop-totals {
  margin: 1.4rem 0;
}

.pxshop-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.pxshop-field {
  display: grid;
  gap: 0.45rem;
}

.pxshop-field--wide {
  grid-column: 1 / -1;
}

.pxshop-field > span {
  color: var(--pz-ink);
  font-size: 0.74rem;
  font-weight: 750;
  letter-spacing: 0.035em;
}

.pxshop-field em,
.pxshop-confirmations em {
  color: var(--pz-magenta);
  font-style: normal;
}

.pxshop-confirmations {
  display: grid;
  gap: 0.75rem;
  margin: 1.6rem 0;
  padding: 1.2rem;
  border-radius: var(--pz-radius-inner);
  background: rgba(124, 23, 56, 0.055);
}

.pxshop-confirmations label {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  color: var(--pz-muted);
  cursor: pointer;
  font-size: 0.78rem;
  font-weight: 560;
  line-height: 1.5;
}

.pxshop-form-note {
  margin: 0.75rem 0 0;
  color: var(--pz-muted);
  font-size: 0.73rem;
  text-align: center;
}

.pxshop-alert {
  margin-bottom: 1.5rem;
  padding: 1rem 1.2rem;
  border-radius: var(--pz-radius-inner);
  font-weight: 650;
}

.pxshop-alert--danger {
  border: 1px solid rgba(174, 41, 57, 0.22);
  background: rgba(174, 41, 57, 0.08);
  color: #8f2432;
}

/* Product detail and catalogue purchase controls emitted by shop.js. */
.pxshop-buybox {
  display: grid;
  max-width: 640px;
  gap: 1.1rem;
  margin: 1.7rem 0;
  padding: clamp(1.25rem, 3vw, 1.8rem);
  border: 1px solid rgba(255, 255, 255, 0.72);
  border-radius: var(--pz-radius);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.72), rgba(255, 255, 255, 0.3)),
    rgba(242, 238, 229, 0.7);
  box-shadow: 0 20px 60px rgba(19, 16, 12, 0.1);
  backdrop-filter: blur(22px) saturate(125%);
  -webkit-backdrop-filter: blur(22px) saturate(125%);
}

.pxshop-buybox--compact {
  margin: 0.9rem 0 0;
  padding: 1rem;
  border-radius: var(--pz-radius-inner);
}

.pxshop-buybox__loading {
  display: grid;
  min-height: 72px;
  place-items: center;
  color: var(--pz-muted);
  font-size: 0.78rem;
}

.pxshop-buybox__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
}

.pxshop-buybox__price {
  display: grid;
  gap: 0.12rem;
}

.pxshop-buybox__price > span {
  color: var(--pz-muted);
  font-size: 0.65rem;
  font-weight: 760;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.pxshop-buybox__price strong {
  color: var(--pz-wine-dark);
  font-size: clamp(1.9rem, 4vw, 2.7rem);
  letter-spacing: -0.04em;
  line-height: 1;
}

.pxshop-buybox__availability {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.48rem 0.72rem;
  border-radius: var(--pz-pill);
  background: rgba(0, 169, 159, 0.1);
  color: #06766f;
  font-size: 0.65rem;
  font-weight: 790;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.pxshop-buybox__availability::before {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
  content: "";
}

.pxshop-buybox__availability.is-on_request {
  background: rgba(245, 134, 18, 0.11);
  color: #98530e;
}

.pxshop-buybox__availability.is-out_of_stock {
  background: rgba(174, 41, 57, 0.09);
  color: #8f2432;
}

.pxshop-buybox__actions {
  display: grid;
  grid-template-columns: 100px minmax(180px, 1fr);
  align-items: end;
  gap: 0.75rem;
}

.pxshop-buybox__quantity {
  display: grid;
  gap: 0.38rem;
}

.pxshop-buybox__quantity-label {
  color: var(--pz-muted);
  font-size: 0.65rem;
  font-weight: 760;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.pxshop-buybox__quantity-input.uk-input {
  width: 100%;
  height: 52px;
  border-radius: var(--pz-pill);
  text-align: center;
}

.pxshop-buybox__add.uk-button-primary {
  min-height: 52px;
}

.pxshop-buybox__add:disabled {
  border-color: #999;
  background: #999;
  box-shadow: none;
  cursor: not-allowed;
  opacity: 0.72;
  transform: none;
}

.pxshop-buybox__feedback {
  min-height: 20px;
  margin: 0;
  color: #06766f;
  font-size: 0.78rem;
  font-weight: 650;
}

.pxshop-buybox__unavailable {
  display: grid;
  gap: 0.25rem;
  padding: 1rem 1.1rem;
  border-radius: var(--pz-radius-inner);
  background: rgba(174, 41, 57, 0.07);
  color: #8f2432;
}

/* Native module placed in a real YOOtheme module position. */
.pxshop-cart-module {
  display: flex;
  align-items: center;
}

.pxshop-cart-trigger {
  position: relative;
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  padding: 0.5rem 0.85rem;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: var(--pz-pill);
  background: rgba(255, 255, 255, 0.12);
  box-shadow: 0 8px 30px rgba(10, 15, 12, 0.1);
  color: inherit;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-decoration: none;
  text-transform: uppercase;
  backdrop-filter: blur(16px) saturate(135%);
  -webkit-backdrop-filter: blur(16px) saturate(135%);
}

.pxshop-cart-trigger:hover {
  border-color: rgba(255, 255, 255, 0.5);
  background: rgba(255, 255, 255, 0.22);
  color: inherit;
  text-decoration: none;
  transform: translateY(-2px);
}

.pxshop-cart-trigger__icon {
  display: grid;
  width: 20px;
  height: 20px;
  place-items: center;
}

.pxshop-cart-trigger__icon svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.6;
}

.pxshop-cart-trigger__count {
  position: absolute;
  top: -7px;
  right: -7px;
  display: grid;
  min-width: 23px;
  height: 23px;
  place-items: center;
  padding: 0 5px;
  border: 2px solid var(--pz-cellar);
  border-radius: var(--pz-pill);
  background: var(--pz-orange);
  color: var(--pz-cellar);
  font-size: 0.62rem;
  font-weight: 900;
  line-height: 1;
}

/* --------------------------------------------------------------------------
   Responsive adjustments
   -------------------------------------------------------------------------- */

@media (max-width: 1199px) {
  :root {
    --pz-content: 1120px;
  }

  .pz-hero-card {
    width: min(100%, 720px);
  }

  .pz-hero-title,
  .pz-hero-title .el-title {
    font-size: clamp(3rem, 5vw, 4.5rem);
  }
}

@media (max-width: 959px) {
  body {
    font-size: 16px;
  }

  .pz-products-grid.uk-grid > *,
  .pz-products-grid > .uk-grid > * {
    width: 50% !important;
  }

  .pz-editorial-copy,
  .pz-editorial-copy--glass {
    margin-top: 0;
  }

  .pz-split-row--reverse {
    flex-direction: column-reverse;
  }

  .pz-editorial-media .pz-editorial-image :where(img),
  .pz-editorial-image:is(img) {
    min-height: clamp(340px, 68vw, 560px);
  }

  .pz-two-worlds::before {
    background: linear-gradient(0deg, rgba(11, 11, 9, 0.88), rgba(11, 11, 9, 0.26));
  }

  .pz-legal-aside {
    position: static;
  }

  .pz-site-header .pz-row {
    gap: 0.85rem;
  }

  .pz-header-actions {
    justify-content: center;
  }

  #pxshop-cart .pxshop-line {
    grid-template-columns: 76px minmax(10rem, 1fr) auto;
  }

  .pxshop-line__media {
    width: 76px;
    height: 100px;
  }

  .pxshop-line__controls {
    grid-row: 2;
    grid-column: 2;
    justify-items: start;
  }

  .pxshop-line__total {
    grid-row: 1 / span 2;
    grid-column: 3;
  }

  .pxshop-checkout-layout {
    grid-template-columns: 1fr;
  }

  .pxshop-checkout-summary {
    position: static;
  }
}

@media (max-width: 639px) {
  :root {
    --pz-radius: 30px;
    --pz-radius-inner: 20px;
  }

  .pz-section.uk-section-large,
  .pz-site-footer.uk-section-large {
    padding-top: 68px;
    padding-bottom: 68px;
  }

  body :where(.uk-button, .pz-action),
  .pxshop :where(.uk-button),
  .pxshop-age-gate :where(.uk-button) {
    min-height: 50px;
    padding-inline: 1.15rem;
    font-size: 0.73rem;
  }

  .pz-actions,
  .pz-hero-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .pz-actions .uk-button,
  .pz-hero-actions .uk-button {
    width: 100%;
  }

  .pz-hero,
  .pz-inner-hero,
  .pz-program-head,
  .pz-contact-head,
  .pz-gallery-head {
    border-radius: 0 0 32px 32px;
  }

  .pz-hero {
    min-height: 720px;
    background-position: 60% center !important;
  }

  .pz-hero--responsive {
    background-position: center center !important;
  }

  .pz-hero::before,
  .pz-inner-hero::before,
  .pz-program-head::before,
  .pz-contact-head::before,
  .pz-gallery-head::before {
    background:
      linear-gradient(0deg, rgba(8, 8, 7, 0.88), rgba(8, 8, 7, 0.23) 75%),
      linear-gradient(90deg, rgba(8, 8, 7, 0.3), transparent);
  }

  .pz-hero-row {
    min-height: 650px;
    align-items: flex-end;
  }

  .pz-hero-card,
  .pz-inner-hero-card,
  .pz-legal-hero-card {
    margin-top: 5rem;
    padding: 1.35rem;
    border-radius: 24px;
  }

  .pz-hero-title,
  .pz-hero-title .el-title {
    font-size: clamp(2.25rem, 10vw, 2.75rem);
    line-height: 0.94;
  }

  .pz-inner-hero,
  .pz-program-head,
  .pz-contact-head,
  .pz-gallery-head {
    min-height: 410px;
  }

  .pz-inner-hero-row {
    min-height: 340px;
  }

  .pz-inner-hero-title,
  .pz-inner-hero-title .el-title {
    font-size: clamp(2.25rem, 10vw, 2.75rem);
  }

  .pz-legal-hero {
    min-height: 300px;
  }

  .pz-legal-hero .pz-inner-hero-row {
    min-height: 245px;
  }

  .pz-legal-title,
  .pz-legal-title .el-title {
    font-size: clamp(2.15rem, 10vw, 2.75rem);
  }

  .pz-motif-card {
    min-height: 0;
  }

  .pz-products-grid.uk-grid > *,
  .pz-products-grid > .uk-grid > * {
    width: 100% !important;
  }

  .pz-products-grid .el-image,
  .pz-products-grid .el-item > a:first-child img,
  .pz-products-grid .el-item > img {
    height: min(132vw, 570px);
  }

  .pz-product-image,
  .pz-product-image :where(img),
  .pz-product-image:is(img) {
    min-height: min(126vw, 590px);
    height: min(126vw, 590px);
  }

  #pxshop-cart.pxshop-page,
  #pxshop-checkout.pxshop-page {
    width: calc(100% - 1rem);
    margin-top: 6.5rem;
    padding: 1rem;
  }

  #pxshop-cart .pxshop-line,
  #pxshop-checkout .pxshop-line {
    grid-template-columns: 64px minmax(0, 1fr) auto;
    gap: 0.65rem;
    padding: 0.65rem;
  }

  .pxshop-line__media {
    width: 64px;
    height: 88px;
  }

  .pxshop-line__controls {
    grid-row: 2;
    grid-column: 2;
    justify-items: start;
  }

  .pxshop-line__total {
    grid-row: 1 / span 2;
    grid-column: 3;
  }

  .pxshop-totals {
    width: auto;
  }

  .pxshop [data-pxshop-checkout-form] .uk-button[type="submit"] {
    width: 100%;
  }

  .pxshop-cart-card__footer {
    grid-template-columns: 1fr;
  }

  .pxshop-cart-card__footer > .pxshop-totals {
    grid-column: 1;
  }

  .pxshop-cart-card__actions {
    align-items: stretch;
    flex-direction: column-reverse;
  }

  .pxshop-cart-card__actions .pxshop-link {
    align-self: center;
  }

  .pxshop-primary-action {
    width: 100%;
  }

  .pxshop-form-grid,
  .pxshop-buybox__actions {
    grid-template-columns: 1fr;
  }

  .pxshop-field--wide {
    grid-column: auto;
  }

  .pxshop-buybox__head {
    align-items: flex-start;
    flex-direction: column;
  }

  .pxshop-cart-trigger__label {
    display: none;
  }

  .pxshop-cart-trigger {
    width: 44px;
    box-sizing: border-box;
    padding: 0.5rem;
  }

  .pz-site-footer,
  .pz-contact-cta {
    border-radius: 32px 32px 0 0;
  }
}

@media (max-width: 519px) {
  .pxshop-cart-card,
  .pxshop-checkout-summary,
  .pxshop-checkout-form-card {
    padding: 1.15rem;
    border-radius: 24px;
  }

  #pxshop-cart .pxshop-line,
  #pxshop-checkout .pxshop-line,
  #pxshop-checkout .pxshop-checkout-summary .pxshop-line {
    grid-template-columns: 58px minmax(0, 1fr);
  }

  .pxshop-line__media,
  .pxshop-checkout-summary .pxshop-line__media {
    width: 58px;
    height: 78px;
    border-radius: 12px;
  }

  .pxshop-line__controls {
    grid-row: auto;
    grid-column: 1 / -1;
  }

  .pxshop-line__total,
  .pxshop-checkout-summary .pxshop-line__total {
    grid-row: auto;
    grid-column: 2;
  }

  .pxshop-line__quantity-summary {
    display: none;
  }
}

/* --------------------------------------------------------------------------
   1.1.2 visual direction — editorial homepage, compact heroes and footer
   -------------------------------------------------------------------------- */

/* Buttons must read as deliberate controls and keep their labels optically
   centred even when YOOtheme adds icons or inherited line-height. */
body :where(.uk-button, .pz-action),
.pxshop :where(.uk-button),
.pxshop-age-gate :where(.uk-button) {
  display: inline-flex;
  min-height: 54px;
  align-items: center;
  justify-content: center;
  padding-block: 0.78rem;
  line-height: 1.05;
}

body :where(.uk-button-primary),
.pxshop :where(.uk-button-primary),
.pxshop-age-gate :where(.uk-button-primary) {
  border-color: rgba(255, 255, 255, 0.2);
  background:
    linear-gradient(120deg, rgba(255, 255, 255, 0.13), transparent 52%),
    linear-gradient(135deg, #971d4a, var(--pz-wine-dark));
  box-shadow: 0 17px 42px rgba(84, 16, 39, 0.28);
}

/* The short line was useful in an early direction, but became a repeated
   alignment error across sections. Eyebrows now stand on typography alone. */
.pz-eyebrow::before,
.pz-hero-eyebrow::before,
.pz-inner-hero-eyebrow::before,
.pz-legal-eyebrow::before,
.pz-product-kicker::before,
.pz-event-kicker::before,
.pz-editorial-copy:not(.pz-editorial-copy--glass)::after {
  display: none;
  content: none;
}

.pz-section-heading .pz-eyebrow,
.pz-gallery-heading > .pz-eyebrow,
.pz-cta-card > .pz-eyebrow {
  display: flex;
  width: max-content;
  max-width: 100%;
  margin-inline: auto;
  justify-content: center;
  text-align: center;
}

.pz-section-heading {
  width: min(100%, 980px);
}

.pz-section-heading .pz-copy,
.pz-section-heading .el-content {
  max-width: 62ch;
}

/* Interior section titles stay editorial, but never grow into oversized
   template typography. Hero titles are sized independently below. */
.pz-section:not(.pz-hero):not(.pz-inner-hero):not(.pz-legal-hero) h2 {
  font-size: clamp(2.25rem, 4vw, 3.5rem);
  line-height: 1;
}

/* Inner heroes use the photograph and a controlled edge gradient for
   legibility. There is no longer a giant frosted rectangle over the image. */
.pz-inner-hero-card,
.pz-legal-hero-card,
.pz-inner-hero .pz-inner-hero-card.pz-glass-panel {
  width: min(100%, 720px);
  padding: clamp(1rem, 2.4vw, 1.8rem) 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.pz-inner-hero-title,
.pz-inner-hero-title .el-title {
  max-width: 14ch;
  text-shadow: 0 4px 28px rgba(0, 0, 0, 0.36);
}

.pz-inner-hero-lead,
.pz-inner-hero-lead .el-content {
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.34);
}

/* Native YOOtheme Slideshow hero. The overlay is deliberately compact and
   transparent; visual depth comes from the image, vignette and slow zoom. */
.pz-home-hero {
  min-height: 0;
  overflow: hidden;
  border-radius: 0 0 42px 42px;
  background: var(--pz-cellar) !important;
  box-shadow: var(--pz-shadow-strong);
}

.pz-home-hero::before,
.pz-home-hero::after,
.pz-hero-section--slideshow::before,
.pz-hero-section--slideshow::after {
  display: none;
}

.pz-hero.pz-hero-section--slideshow,
.pz-inner-hero.pz-hero-section--slideshow,
.pz-hero-section--slideshow {
  min-height: 0;
  overflow: hidden;
  background: var(--pz-cellar) !important;
}

.pz-home-hero > .uk-container,
.pz-home-hero > .tm-grid-expand,
.pz-hero-section--slideshow > .uk-container,
.pz-hero-section--slideshow > .tm-grid-expand,
.pz-hero-slideshow-row,
.pz-hero-slideshow-column,
.pz-hero-slideshow-shell {
  width: 100%;
  max-width: none;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
}

.pz-hero-slideshow-row.uk-grid > *,
.pz-hero-slideshow-row > .uk-grid > * {
  padding-left: 0 !important;
}

.pz-hero-slideshow-column {
  flex: 1 1 100%;
}

.pz-hero-slideshow-column > * {
  width: 100%;
  max-width: none;
}

.pz-hero-slideshow {
  position: relative;
  overflow: hidden;
  width: 100%;
  color: var(--pz-white);
  background: var(--pz-cellar);
}

.pz-home-hero .pz-hero-slideshow .uk-slideshow-items {
  min-height: clamp(680px, 100svh, 920px) !important;
}

.pz-hero-slideshow .el-item {
  isolation: isolate;
  overflow: hidden;
  background: var(--pz-cellar);
}

.pz-hero-slideshow .el-item::before {
  position: absolute;
  z-index: 1;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(6, 6, 5, 0.82) 0%, rgba(6, 6, 5, 0.48) 43%, rgba(6, 6, 5, 0.08) 74%),
    linear-gradient(0deg, rgba(6, 6, 5, 0.58), transparent 48%);
  content: "";
  pointer-events: none;
}

.pz-hero-slideshow .el-image,
.pz-hero-slideshow .el-item > img,
.pz-hero-slideshow .el-item picture,
.pz-hero-slideshow .el-item picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.pz-hero-slide--cellar :where(.el-image, img) {
  background-position: center 52%;
  object-position: center 52%;
}

.pz-hero-slide--wine :where(.el-image, img) {
  background-position: center 58%;
  object-position: center 58%;
}

.pz-hero-slide--kapr :where(.el-image, img) {
  background-position: center 44%;
  object-position: center 44%;
}

.pz-hero-slideshow .el-overlay {
  z-index: 2;
  width: min(100%, 690px);
  box-sizing: border-box;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  text-shadow: 0 3px 26px rgba(0, 0, 0, 0.34);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.pz-hero-slideshow .el-meta {
  display: inline-block;
  margin-bottom: 1.1rem;
  color: rgba(255, 253, 248, 0.82) !important;
  font-size: 0.72rem;
  font-weight: 780;
  letter-spacing: 0.18em;
  line-height: 1.35;
  text-transform: uppercase;
}

.pz-hero-slideshow .el-title {
  max-width: 11.5ch;
  margin: 0 0 1.15rem;
  color: var(--pz-white) !important;
  font-size: clamp(2.7rem, 4.4vw, 3.5rem);
  font-weight: 790;
  letter-spacing: -0.067em;
  line-height: 0.91;
  text-wrap: balance;
}

.pz-hero-slideshow--inner .el-title {
  font-size: clamp(2.45rem, 4vw, 3.5rem);
}

.pz-hero-slideshow--legal .el-title {
  font-size: clamp(2.15rem, 3.5vw, 3.2rem);
}

.pz-hero-slideshow .el-content {
  max-width: 52ch;
  margin: 0 0 1.6rem;
  color: rgba(255, 253, 248, 0.88) !important;
  font-size: clamp(1.02rem, 1.6vw, 1.28rem);
  line-height: 1.55;
}

.pz-hero-slideshow .el-link {
  min-width: 168px;
  text-shadow: none;
}

.pz-hero-slideshow .uk-dotnav {
  gap: 0.55rem;
}

.pz-hero-slideshow .uk-dotnav > * > * {
  width: 28px;
  height: 4px;
  border: 0;
  border-radius: var(--pz-pill);
  background: rgba(255, 253, 248, 0.38);
  transition: width 420ms var(--pz-ease), background-color 420ms var(--pz-ease);
}

.pz-hero-slideshow .uk-dotnav > .uk-active > * {
  width: 54px;
  background: var(--pz-white);
}

.pz-hero-slideshow .uk-slidenav {
  display: inline-grid;
  width: 48px;
  height: 48px;
  box-sizing: border-box;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255, 253, 248, 0.24);
  border-radius: 50%;
  background: rgba(11, 11, 9, 0.22);
  color: var(--pz-white);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.pz-hero-slideshow .uk-slidenav:hover,
.pz-hero-slideshow .uk-slidenav:focus-visible {
  border-color: rgba(255, 253, 248, 0.5);
  background: rgba(11, 11, 9, 0.42);
  color: var(--pz-white);
  transform: scale(1.04);
}

/* Homepage wine selection: cellar photograph behind three translucent cards,
   real bottle cut-outs in front, and each label motif as a quiet watermark. */
.pz-wines--photo {
  background-position: center !important;
  background-size: cover !important;
  color: var(--pz-white);
}

.pz-wines--photo .pz-section-heading {
  margin-bottom: clamp(2.2rem, 5vw, 4rem);
}

.pz-wines--photo .pz-section-heading :where(.pz-heading, .pz-copy, .el-content) {
  color: var(--pz-white);
}

.pz-wines--photo .pz-section-heading .pz-copy,
.pz-wines--photo .pz-section-heading .el-content {
  max-width: 66ch;
}

.pz-wines--photo .pz-motif-grid {
  align-items: stretch;
}

.pz-wines--photo .pz-motif-card {
  display: grid;
  min-height: 520px;
  grid-template-rows: minmax(0, 1fr) auto;
  padding: 0.8rem;
  border-color: rgba(255, 255, 255, 0.42);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.76), rgba(255, 255, 255, 0.45)),
    rgba(242, 238, 229, 0.56);
  box-shadow: 0 28px 75px rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(17px) saturate(125%);
  -webkit-backdrop-filter: blur(17px) saturate(125%);
}

.pz-wines--photo .pz-motif-card::before {
  top: -4rem;
  right: -3rem;
  width: 18rem;
  filter: blur(75px);
  opacity: 0.22;
}

.pz-wines--photo .pz-motif-card::after {
  position: absolute;
  z-index: 0;
  top: 1.2rem;
  right: -7%;
  width: 72%;
  aspect-ratio: 1;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  opacity: 0.13;
  pointer-events: none;
  transform: rotate(7deg);
}

.pz-wines--photo .pz-motif-card--orange::after {
  background-image: url("/images/pod-zamkem/motifs/motif-06-palava.png");
}

.pz-wines--photo .pz-motif-card--violet::after {
  background-image: url("/images/pod-zamkem/motifs/motif-08-neronet.png");
}

.pz-wines--photo .pz-motif-card--blue::after {
  background-image: url("/images/pod-zamkem/motifs/motif-12-frizzante.png");
}

.pz-wines--photo .pz-motif-card > * {
  position: relative;
  z-index: 1;
}

.pz-wines--photo .pz-wine-teaser-bottle {
  display: block;
  overflow: visible;
  width: 100%;
  height: 390px;
  aspect-ratio: auto;
  border-radius: calc(var(--pz-radius) - 8px);
  background: transparent;
  mix-blend-mode: normal;
}

.pz-wines--photo .pz-wine-teaser-bottle :where(a, picture),
.pz-wines--photo .pz-wine-teaser-bottle:is(a, picture) {
  display: block;
  width: 100%;
  height: 100%;
}

.pz-wines--photo .pz-wine-teaser-bottle :where(img),
.pz-wines--photo .pz-wine-teaser-bottle:is(img) {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
  filter: drop-shadow(0 22px 24px rgba(0, 0, 0, 0.22));
}

.pz-wines--photo .pz-motif-card:hover .pz-wine-teaser-bottle,
.pz-wines--photo .pz-motif-card:hover .pz-wine-teaser-bottle img {
  transform: translateY(-4px) scale(1.025);
}

.pz-wines--photo .pz-motif-caption {
  min-height: 116px;
  margin: 0 !important;
  padding: 1.15rem 1.25rem !important;
  border: 1px solid rgba(255, 255, 255, 0.72) !important;
  border-radius: calc(var(--pz-radius) - 8px) !important;
  background: rgba(255, 253, 248, 0.82) !important;
  color: var(--pz-ink);
  box-shadow: 0 12px 32px rgba(19, 16, 12, 0.1) !important;
  backdrop-filter: blur(14px) saturate(125%);
  -webkit-backdrop-filter: blur(14px) saturate(125%);
}

.pz-wines--photo .pz-motif-caption :where(.el-title, h3) {
  margin-bottom: 0.35rem;
  color: var(--pz-ink);
  font-size: clamp(1.25rem, 2vw, 1.6rem);
}

.pz-wines--photo .pz-motif-caption :where(.el-content, p) {
  margin-bottom: 0;
  color: #52534e;
  font-size: 0.92rem;
}

.pz-wines--photo .pz-motif-caption .el-link {
  margin-top: 0.8rem;
}

.pz-wines-actions {
  width: 100%;
  justify-content: center;
}

.pz-wines-actions .uk-button {
  min-width: 190px;
}

/* Two worlds now reads as one coherent dark composition rather than a pale
   card sitting on an unrelated grey-to-black transition. */
.pz-two-worlds {
  background:
    radial-gradient(circle at 10% 20%, rgba(245, 134, 18, 0.2), transparent 26rem),
    radial-gradient(circle at 92% 80%, rgba(0, 169, 159, 0.14), transparent 30rem),
    linear-gradient(135deg, #17120f, #071917 74%, #0b0b09) !important;
}

.pz-two-worlds::before {
  background: linear-gradient(115deg, rgba(255, 255, 255, 0.025), transparent 56%);
}

.pz-two-worlds .pz-editorial-image,
.pz-two-worlds .pz-editorial-image :where(img),
.pz-two-worlds .pz-editorial-image:is(img) {
  width: 100%;
  min-height: 0;
  height: clamp(440px, 46vw, 620px);
  object-fit: cover;
}

.pz-two-worlds-copy,
.uk-section-secondary .pz-two-worlds-copy.pz-editorial-copy--glass {
  padding: clamp(1.8rem, 4vw, 3.4rem);
  border: 1px solid rgba(255, 253, 248, 0.15);
  background: rgba(255, 253, 248, 0.075);
  box-shadow: 0 28px 78px rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(12px) saturate(115%);
  -webkit-backdrop-filter: blur(12px) saturate(115%);
}

.pz-two-worlds-copy :where(.pz-heading, .pz-copy, .el-content) {
  color: var(--pz-white);
}

.pz-two-worlds-copy .pz-eyebrow {
  color: #f7c275;
}

.pz-two-worlds-copy .uk-button-text {
  color: var(--pz-white);
}

/* Programme is a real editorial split: message on the photograph, one small
   utility glass card alongside it. */
.pz-program-teaser {
  min-height: 560px;
  background-position: center 42% !important;
}

.pz-program-teaser::before {
  background:
    linear-gradient(90deg, rgba(7, 8, 7, 0.86) 0%, rgba(7, 8, 7, 0.6) 55%, rgba(7, 8, 7, 0.3)),
    linear-gradient(0deg, rgba(7, 8, 7, 0.55), transparent 55%);
}

.pz-program-row {
  align-items: center;
  justify-content: initial;
}

.pz-program-intro {
  max-width: 700px;
  text-align: left;
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.34);
}

.pz-program-intro .pz-heading,
.pz-program-intro .pz-copy,
.pz-program-intro .el-content {
  color: var(--pz-white);
}

.pz-program-intro .pz-eyebrow {
  color: #f7c275;
}

.pz-program-card--compact,
.uk-section-secondary .pz-program-card--compact {
  max-width: 490px;
  margin-left: auto;
  padding: clamp(1.35rem, 2.8vw, 2rem);
  border-color: rgba(255, 253, 248, 0.18);
  background: rgba(8, 9, 8, 0.7);
  text-align: left;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(14px) saturate(120%);
  -webkit-backdrop-filter: blur(14px) saturate(120%);
}

.pz-program-card--compact .pz-program-slot {
  overflow: visible;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: rgba(255, 253, 248, 0.78);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.pz-program-card--compact .pz-program-slot::before {
  display: none;
}

.pz-program-slot__label {
  display: inline-flex;
  margin-bottom: 0.85rem;
  padding: 0.42rem 0.7rem;
  border: 1px solid rgba(255, 253, 248, 0.16);
  border-radius: var(--pz-pill);
  background: rgba(255, 253, 248, 0.08);
  color: #f7c275;
  font-size: 0.68rem;
  font-weight: 780;
  letter-spacing: 0.14em;
  line-height: 1.25;
  text-transform: uppercase;
}

.pz-program-card--compact .pz-program-slot p {
  margin: 0;
  color: rgba(255, 253, 248, 0.78);
  font-size: 0.98rem;
  line-height: 1.65;
}

.pz-program-card--compact .pz-program-slot strong {
  display: block;
  margin-bottom: 0.28rem;
  color: var(--pz-white);
  font-size: 1.12rem;
}

.pz-program-actions {
  margin-top: 1.35rem;
  justify-content: flex-start;
}

.pz-program-card--compact .uk-button-default {
  border-color: rgba(255, 253, 248, 0.22);
  background: rgba(255, 253, 248, 0.1);
  color: var(--pz-white);
}

/* A strict 3 × 2 editorial grid replaces the previous masonry-like zigzag.
   The lightbox remains, but no generated “Read more” control can leak in. */
.pz-gallery-teaser--balanced .pz-gallery-heading > .pz-heading {
  text-align: center;
}

.pz-gallery-teaser--balanced .pz-gallery-grid {
  margin-top: clamp(2rem, 4vw, 3.25rem);
}

.pz-gallery-teaser--balanced .pz-gallery-grid .el-item,
.pz-gallery-teaser--balanced .pz-gallery-card {
  border-radius: 24px;
  box-shadow: 0 18px 48px rgba(19, 16, 12, 0.14);
}

.pz-gallery-teaser--balanced .pz-gallery-grid .el-image,
.pz-gallery-teaser--balanced .pz-gallery-grid .el-item img,
.pz-gallery-teaser--balanced .pz-gallery-card img,
.pz-gallery-teaser--balanced .pz-gallery-grid.uk-grid > :nth-child(4n + 1) .el-image,
.pz-gallery-teaser--balanced .pz-gallery-grid.uk-grid > :nth-child(4n + 1) img,
.pz-gallery-teaser--balanced .pz-gallery-grid > .uk-grid > :nth-child(4n + 1) .el-image,
.pz-gallery-teaser--balanced .pz-gallery-grid > .uk-grid > :nth-child(4n + 1) img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.pz-gallery-teaser--balanced .pz-gallery-grid :where(.el-link, .uk-button) {
  display: none !important;
}

.pz-gallery-teaser--balanced .pz-actions {
  justify-content: center;
}

/* Final CTA is one atmospheric photograph and a strong message, not another
   nested rounded rectangle immediately above the footer. */
.pz-contact-cta,
.pz-contact-cta--photo {
  min-height: 420px;
  border-radius: 0;
  background-position: center 58% !important;
}

.pz-cta-card--photo,
.uk-section-secondary .pz-cta-card--photo {
  max-width: 980px;
  padding: clamp(3.4rem, 8vw, 6.4rem) 1rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.pz-cta-card--photo .pz-heading,
.pz-cta-card--photo .pz-copy,
.pz-cta-card--photo .el-content {
  color: var(--pz-white);
  text-shadow: 0 3px 24px rgba(0, 0, 0, 0.4);
}

.pz-cta-card--photo > .pz-heading:not(.pz-eyebrow),
.pz-cta-card--photo > .pz-heading:not(.pz-eyebrow) .el-title {
  max-width: 18ch;
  margin-inline: auto;
  font-size: clamp(2.5rem, 4vw, 3.5rem);
  line-height: 0.96;
}

.pz-cta-card--photo .pz-copy,
.pz-cta-card--photo .el-content {
  max-width: 58ch;
  margin-inline: auto;
}

.pz-cta-card--photo .pz-actions {
  margin-top: 1.6rem;
  justify-content: center;
}

.pz-cta-card--photo .uk-button-default {
  border-color: rgba(255, 253, 248, 0.3);
  background: rgba(255, 253, 248, 0.12);
  color: var(--pz-white);
}

/* Compact footer. It deliberately follows the rectangular CTA without a
   second oversized rounded block. */
.pz-site-footer,
.pz-footer--compact {
  border-radius: 0;
}

.pz-footer--compact.uk-section,
.pz-footer--compact.uk-section-small,
.pz-footer--compact.uk-section-large {
  padding-block: clamp(3.2rem, 6vw, 5rem);
}

.pz-footer--compact::after {
  right: -13rem;
  bottom: -17rem;
  width: 29rem;
  opacity: 0.62;
}

.pz-footer-cta--slim {
  padding: 0 0 clamp(1.8rem, 4vw, 2.8rem);
  border: 0;
  border-bottom: 1px solid rgba(255, 253, 248, 0.13);
  border-radius: 0;
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.pz-footer-cta--slim .pz-eyebrow {
  color: #f7c275;
}

.pz-footer-cta--slim .pz-footer-cta-title,
.pz-footer-cta--slim .pz-footer-cta-title .el-title {
  max-width: 22ch;
  font-size: clamp(1.8rem, 3vw, 3rem);
  line-height: 1;
}

.pz-footer--compact .pz-footer-divider {
  display: none;
}

.pz-footer--compact .pz-footer-grid {
  margin-top: clamp(1.9rem, 4vw, 3rem);
}

.pz-footer--compact .pz-footer-logo :where(img, svg),
.pz-footer--compact .pz-footer-logo:is(img, svg),
.pz-footer--compact .pz-brand-mark :where(img, svg),
.pz-footer--compact .pz-brand-mark:is(img, svg) {
  width: 82px;
  max-width: 82px;
  max-height: 82px;
}

.pz-footer--compact .pz-brand-mark {
  margin-bottom: 0.8rem;
}

.pz-footer--compact .pz-footer-brand-title,
.pz-footer--compact .pz-footer-title {
  margin-bottom: 0.75rem;
  font-size: 1.04rem;
  letter-spacing: -0.01em;
}

.pz-footer--compact :where(.pz-footer-copy, .pz-footer-contact-list, .pz-footer-links) {
  font-size: 0.94rem;
  line-height: 1.62;
}

.pz-footer--compact .pz-footer-contact-list p,
.pz-footer--compact .pz-footer-links .uk-list > li {
  margin-block: 0 0.32rem;
}

.pz-footer--compact .pz-footer-bottom {
  margin-top: 0.7rem;
}

.pz-footer--compact .pz-footer-legal .el-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 2rem;
  text-align: left;
}

.pz-footer--compact .pz-footer-legal p {
  margin: 0;
}

.pz-js .pz-reveal {
  opacity: 0;
  transform: translateY(22px);
  transition:
    opacity 720ms var(--pz-ease) var(--pz-reveal-delay, 0ms),
    transform 720ms var(--pz-ease) var(--pz-reveal-delay, 0ms),
    box-shadow 560ms var(--pz-ease);
}

.pz-js .pz-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.pz-wines--photo .pz-motif-card:hover {
  transform:
    perspective(900px)
    translateY(-8px)
    rotateX(var(--pz-tilt-x, 0deg))
    rotateY(var(--pz-tilt-y, 0deg));
}

@media (max-width: 959px) {
  .pz-home-hero .pz-hero-slideshow .uk-slideshow-items {
    min-height: clamp(650px, 92svh, 820px) !important;
  }

  .pz-hero-slideshow .el-title {
    font-size: clamp(2.65rem, 6.5vw, 3.5rem);
  }

  .pz-wines--photo .pz-motif-card {
    min-height: 470px;
  }

  .pz-wines--photo .pz-wine-teaser-bottle {
    height: 335px;
  }

  .pz-two-worlds-copy,
  .uk-section-secondary .pz-two-worlds-copy.pz-editorial-copy--glass,
  .pz-program-card--compact,
  .uk-section-secondary .pz-program-card--compact {
    width: 100%;
    max-width: none;
    margin-inline: 0;
  }

  .pz-program-teaser {
    min-height: 0;
  }

  .pz-footer--compact .pz-footer-legal .el-content {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 639px) {
  .pz-section:not(.pz-hero):not(.pz-inner-hero):not(.pz-legal-hero) h2,
  .pz-wine-detail .pz-heading:first-of-type,
  .pz-wine-detail h1,
  .pz-product-title,
  .pz-product-title .el-title,
  .pz-program-title,
  .pz-program-title .el-title,
  .pz-event-title,
  .pz-event-title .el-title,
  .pxshop > h1,
  .pxshop-page__header h1 {
    font-size: clamp(2.25rem, 10vw, 2.75rem);
  }

  body :where(.uk-button, .pz-action),
  .pxshop :where(.uk-button),
  .pxshop-age-gate :where(.uk-button) {
    min-height: 50px;
    padding-block: 0.72rem;
    line-height: 1.08;
  }

  .pz-home-hero {
    min-height: 0;
    border-radius: 0 0 28px 28px;
  }

  .pz-home-hero .pz-hero-slideshow .uk-slideshow-items {
    min-height: clamp(610px, 88svh, 730px) !important;
  }

  .pz-hero-slideshow .el-item::before {
    background:
      linear-gradient(0deg, rgba(6, 6, 5, 0.9) 0%, rgba(6, 6, 5, 0.56) 54%, rgba(6, 6, 5, 0.18) 100%),
      linear-gradient(90deg, rgba(6, 6, 5, 0.38), transparent 76%);
  }

  .pz-hero-slideshow .el-overlay {
    width: 100%;
    max-width: 520px;
    padding-right: 0.4rem;
  }

  .pz-hero-slideshow .el-meta {
    margin-bottom: 0.75rem;
    font-size: 0.64rem;
    letter-spacing: 0.14em;
  }

  .pz-hero-slideshow .el-title {
    max-width: 12ch;
    margin-bottom: 0.85rem;
    font-size: clamp(2.25rem, 10vw, 2.75rem);
    line-height: 0.94;
  }

  .pz-hero-slideshow .el-content {
    max-width: 39ch;
    margin-bottom: 1.15rem;
    font-size: 0.96rem;
    line-height: 1.5;
  }

  .pz-hero-slideshow .el-link {
    width: auto;
    min-width: 152px;
  }

  .pz-hero-slideshow .uk-dotnav > * > * {
    width: 20px;
  }

  .pz-hero-slideshow .uk-dotnav > .uk-active > * {
    width: 38px;
  }

  .pz-hero-slideshow .uk-slidenav {
    width: 42px;
    height: 42px;
  }

  .pz-section-heading .pz-eyebrow,
  .pz-gallery-heading > .pz-eyebrow,
  .pz-cta-card > .pz-eyebrow {
    width: auto;
  }

  .pz-wines--photo .pz-section-heading {
    margin-bottom: 1.8rem;
  }

  .pz-wines--photo .pz-motif-card {
    min-height: 0;
  }

  .pz-wines--photo .pz-wine-teaser-bottle {
    height: min(102vw, 390px);
  }

  .pz-wines--photo .pz-motif-caption {
    min-height: 0;
  }

  .pz-two-worlds .pz-editorial-image,
  .pz-two-worlds .pz-editorial-image :where(img),
  .pz-two-worlds .pz-editorial-image:is(img) {
    height: min(116vw, 510px);
  }

  .pz-two-worlds-copy,
  .uk-section-secondary .pz-two-worlds-copy.pz-editorial-copy--glass {
    padding: 1.45rem;
  }

  .pz-program-intro {
    text-align: center;
  }

  .pz-program-intro .pz-eyebrow {
    display: block;
    text-align: center;
  }

  .pz-program-card--compact,
  .uk-section-secondary .pz-program-card--compact {
    padding: 1.25rem;
  }

  .pz-program-actions {
    align-items: stretch;
  }

  .pz-contact-cta,
  .pz-contact-cta--photo {
    min-height: 0;
  }

  .pz-cta-card--photo,
  .uk-section-secondary .pz-cta-card--photo {
    padding: 3.5rem 0;
  }

  .pz-cta-card--photo > .pz-heading:not(.pz-eyebrow),
  .pz-cta-card--photo > .pz-heading:not(.pz-eyebrow) .el-title {
    font-size: clamp(2.25rem, 10vw, 2.75rem);
  }

  .pz-footer--compact.uk-section,
  .pz-footer--compact.uk-section-small,
  .pz-footer--compact.uk-section-large {
    padding-block: 3rem;
  }

  .pz-footer-cta--slim {
    padding-bottom: 2rem;
    text-align: center;
  }

  .pz-footer-cta--slim .pz-eyebrow {
    display: block;
    text-align: center;
  }

  .pz-footer-cta--slim .pz-footer-cta-title,
  .pz-footer-cta--slim .pz-footer-cta-title .el-title {
    margin-inline: auto;
  }

  .pz-footer-cta--slim .pz-footer-cta-actions {
    justify-content: center;
  }

  .pz-footer--compact .pz-footer-grid {
    text-align: center;
  }

  .pz-footer--compact .pz-footer-logo,
  .pz-footer--compact .pz-brand-mark {
    margin-inline: auto;
  }

  .pz-footer--compact .pz-footer-legal .el-content {
    align-items: center;
    text-align: center;
  }
}

/* --------------------------------------------------------------------------
   Storefront refinement 1.1.2
   -------------------------------------------------------------------------- */

/* Catalogue: centred, stable cards with a real wine-colour accent. */
.pz-products-grid,
.pz-products-grid.uk-grid,
.pz-products-grid > .uk-grid {
  justify-content: center;
}

.pz-products-grid .el-item {
  width: 100%;
  max-width: 390px;
  height: 100%;
  margin-inline: auto;
  border-radius: 26px;
  --pz-wine-accent: #b49654;
}

.pz-products-grid .el-item.is-wine-white { --pz-wine-accent: #b49654; }
.pz-products-grid .el-item.is-wine-rose { --pz-wine-accent: #c87287; }
.pz-products-grid .el-item.is-wine-red { --pz-wine-accent: #781b39; }
.pz-products-grid .el-item.is-wine-sparkling { --pz-wine-accent: #087c75; }

.pz-products-grid .el-item::after {
  z-index: 3;
  top: 0;
  right: 22px;
  bottom: auto;
  left: 22px;
  width: auto;
  height: 4px;
  aspect-ratio: auto;
  border-radius: 0 0 999px 999px;
  background: var(--pz-wine-accent);
  filter: none;
  opacity: 1;
}

.pz-products-grid .el-image,
.pz-products-grid .el-item > a:first-child img,
.pz-products-grid .el-item > img {
  height: clamp(290px, 29vw, 390px);
  border-radius: 26px 26px 0 0;
}

.pz-products-grid .uk-card-body {
  min-height: 310px;
  align-items: center;
  padding: 1.35rem 1.25rem 1.25rem;
  text-align: center;
}

.pz-products-grid .el-title {
  max-width: 15ch;
  margin-inline: auto;
  font-size: clamp(1.25rem, 1.7vw, 1.55rem);
}

.pz-products-grid .el-meta {
  color: var(--pz-wine-accent);
}

.pz-products-grid .el-content {
  width: 100%;
  max-width: 31ch;
  min-height: 4.6em;
  display: -webkit-box;
  overflow: hidden;
  margin-inline: auto;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.pz-products-grid [data-pxshop-product-actions] {
  width: 100%;
  margin-top: auto;
  padding-top: 0.9rem;
}

.pz-products-grid .pxshop-buybox--compact {
  width: 100%;
  max-width: none;
  gap: 0.75rem;
  margin: 0;
  padding: 0.95rem 0 0;
  border: 0;
  border-top: 1px solid rgba(32, 33, 30, 0.1);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.pz-products-grid .pxshop-buybox--compact .pxshop-buybox__head {
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.65rem 1rem;
}

.pz-products-grid .pxshop-buybox--compact .pxshop-buybox__price {
  display: flex;
  align-items: baseline;
  gap: 0.45rem;
}

.pz-products-grid .pxshop-buybox--compact .pxshop-buybox__price strong {
  color: var(--pz-ink);
  font-size: 1.55rem;
}

.pxshop-buybox__badges {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.45rem;
}

.pxshop-buybox__wine-type {
  display: inline-flex;
  align-items: center;
  padding: 0.42rem 0.65rem;
  border: 1px solid color-mix(in srgb, var(--pz-wine-accent, var(--pz-wine)) 24%, transparent);
  border-radius: var(--pz-pill);
  background: color-mix(in srgb, var(--pz-wine-accent, var(--pz-wine)) 9%, transparent);
  color: var(--pz-wine-accent, var(--pz-wine));
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  line-height: 1.2;
  text-transform: uppercase;
}

.pxshop-buybox__actions--compact {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.72fr);
  gap: 0.55rem;
}

.pxshop-buybox__detail.uk-button {
  min-height: 50px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.55rem 1rem;
  border: 1px solid rgba(32, 33, 30, 0.18);
  border-radius: var(--pz-pill);
  background: transparent;
  color: var(--pz-ink);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  line-height: 1.2;
  text-decoration: none;
  text-transform: uppercase;
}

.pxshop-buybox__detail.uk-button:hover,
.pxshop-buybox__detail.uk-button:focus {
  border-color: var(--pz-wine-accent, var(--pz-wine));
  background: color-mix(in srgb, var(--pz-wine-accent, var(--pz-wine)) 8%, transparent);
  color: var(--pz-wine-accent, var(--pz-wine));
}

.pz-products-grid .pxshop-buybox__availability {
  padding: 0.4rem 0.62rem;
  font-size: 0.6rem;
}

.pz-products-grid .pxshop-buybox__feedback {
  min-height: 1.2em;
  text-align: center;
}

/* Product detail: quieter hierarchy, compact analytics and editorial cards. */
.pz-product-media {
  border: 0;
}

.pz-product-image {
  overflow: hidden;
  min-height: clamp(430px, 48vw, 650px);
  border: 0 !important;
  border-radius: var(--pz-radius);
  background: transparent;
  box-shadow: 0 18px 50px rgba(19, 16, 12, 0.12);
}

.pz-product-image :where(img),
.pz-product-image:is(img) {
  height: clamp(430px, 48vw, 650px);
  padding: 0;
  border: 0;
  border-radius: var(--pz-radius);
}

.pz-wine-detail .pz-heading:first-of-type,
.pz-wine-detail h1,
.pz-product-title,
.pz-product-title .el-title {
  max-width: 16ch;
  font-size: clamp(2.3rem, 4vw, 4.15rem);
  letter-spacing: -0.052em;
  line-height: 1;
}

.pz-product-kicker::before,
.pz-product-info > .pz-divider {
  display: none;
}

.pz-product-info > .pz-heading:not(.pz-product-kicker):not(.pz-product-title) {
  margin-top: 1.7rem;
  font-size: clamp(1.45rem, 2.2vw, 2rem);
}

.pz-product-purchase .pxshop-buybox {
  max-width: 650px;
  gap: 0.9rem;
  margin-block: 1.2rem;
  padding: clamp(1.1rem, 2.3vw, 1.45rem);
  border-radius: 24px;
  box-shadow: 0 16px 48px rgba(19, 16, 12, 0.09);
}

.pxshop-buybox__links {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.45rem 1rem;
  padding-top: 0.8rem;
  border-top: 1px solid rgba(32, 33, 30, 0.1);
}

.pxshop-buybox__links a {
  position: relative;
  color: var(--pz-muted);
  font-size: 0.72rem;
  font-weight: 720;
  text-decoration: underline;
  text-decoration-color: rgba(124, 23, 56, 0.3);
  text-underline-offset: 0.22em;
}

.pxshop-buybox__links a:hover,
.pxshop-buybox__links a:focus,
.pxshop-buybox__qr {
  color: var(--pz-wine) !important;
}

.pz-wine-stats,
.pz-wine-stats.uk-grid {
  display: flex;
  overflow: hidden;
  flex-wrap: wrap;
  gap: 0;
  margin-top: 0.85rem;
  margin-left: 0;
  padding: 0.45rem;
  border: 1px solid rgba(32, 33, 30, 0.1);
  border-radius: 22px;
  background: rgba(255, 253, 248, 0.67);
  box-shadow: 0 12px 38px rgba(19, 16, 12, 0.065);
}

.pz-wine-stats.uk-grid > *,
.pz-wine-stats > .uk-grid > * {
  width: 25% !important;
  flex: 1 1 25%;
  padding: 0;
}

.pz-wine-stats .uk-card,
.pz-wine-stats .el-item {
  min-height: 76px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.75rem 0.6rem;
  border: 0;
  border-right: 1px solid rgba(32, 33, 30, 0.09);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  text-align: center;
}

.pz-wine-stats.uk-grid > :nth-child(4n) .el-item,
.pz-wine-stats.uk-grid > :last-child .el-item {
  border-right: 0;
}

.pz-wine-stats :where(h3, .el-title) {
  margin: 0;
  color: var(--pz-muted);
  font-size: 0.62rem;
}

.pz-wine-stats :where(p, .el-content) {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 760;
}

.pz-product-more-row {
  gap: clamp(1rem, 2vw, 1.6rem);
}

.pz-product-note-card {
  min-height: 0;
  padding: clamp(1.35rem, 2.6vw, 2rem);
  border-radius: 24px;
  box-shadow: 0 14px 42px rgba(19, 16, 12, 0.08);
}

.pz-product-pairing {
  border-color: rgba(255, 253, 248, 0.12);
  background:
    radial-gradient(circle at 88% 15%, rgba(245, 134, 18, 0.23), transparent 15rem),
    var(--pz-cellar);
  color: var(--pz-paper);
}

.pz-product-pairing :where(h2, h3, .el-title),
.pz-product-pairing :where(p, .el-content) {
  color: inherit;
}

.pz-product-description {
  border-left: 4px solid var(--pz-orange);
  background: rgba(255, 253, 248, 0.78);
}

/* Cart and checkout: less dead space, cleaner summary and real payment cards. */
#pxshop-cart.pxshop-page,
#pxshop-checkout.pxshop-page,
.pxshop-page--return {
  min-height: 0;
  margin-top: clamp(6rem, 9vw, 7.5rem);
  margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

#pxshop-cart .pxshop-page__ambient,
#pxshop-checkout .pxshop-page__ambient,
.pxshop-page--return .pxshop-page__ambient {
  display: none;
}

.pxshop-page__header {
  margin-bottom: clamp(1.55rem, 3vw, 2.5rem);
}

.pxshop-page__header h1 {
  font-size: clamp(2.25rem, 4.8vw, 4.15rem);
  line-height: 1;
}

.pxshop-cart-card,
.pxshop-checkout-summary,
.pxshop-checkout-form-card {
  padding: clamp(1.25rem, 2.8vw, 2.25rem);
}

.pxshop-checkout-layout {
  grid-template-columns: minmax(300px, 0.92fr) minmax(430px, 1.28fr);
  gap: clamp(1rem, 2.4vw, 1.8rem);
}

.pxshop-checkout-layout h2 {
  margin-bottom: 1.15rem;
  font-size: clamp(1.55rem, 2.4vw, 2.15rem);
}

.pxshop-confirmations {
  margin-block: 1.15rem;
  padding: 0.95rem 1rem;
}

.pxshop-confirmations .uk-checkbox {
  width: 20px;
  height: 20px;
  margin-top: 0;
  border: 1px solid rgba(32, 33, 30, 0.25);
  background-color: rgba(255, 253, 248, 0.85);
}

.pxshop-payment-methods {
  min-width: 0;
  margin: 1.4rem 0 0;
  padding: 0;
  border: 0;
}

.pxshop-payment-methods legend {
  width: 100%;
  margin-bottom: 0.65rem;
  color: var(--pz-ink);
  font-size: 0.74rem;
  font-weight: 780;
  letter-spacing: 0.035em;
}

.pxshop-payment-methods__grid {
  display: grid;
  gap: 0.65rem;
}

.pxshop-payment-method {
  position: relative;
  min-height: 72px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 22px;
  align-items: center;
  gap: 0.8rem;
  padding: 0.85rem 1rem;
  border: 1px solid rgba(32, 33, 30, 0.12);
  border-radius: 17px;
  background: rgba(255, 253, 248, 0.64);
  cursor: pointer;
  transition: border-color 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

.pxshop-payment-method:hover {
  border-color: rgba(124, 23, 56, 0.3);
}

.pxshop-payment-method:has(input:checked) {
  border-color: rgba(124, 23, 56, 0.46);
  background: rgba(124, 23, 56, 0.055);
  box-shadow: 0 0 0 3px rgba(124, 23, 56, 0.055);
}

.pxshop-payment-method:focus-within {
  outline: 3px solid rgba(124, 23, 56, 0.24);
  outline-offset: 3px;
}

.pxshop-payment-method > input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
}

.pxshop-payment-method__body {
  min-width: 0;
  display: grid;
  gap: 0.18rem;
}

.pxshop-payment-method__body strong {
  color: var(--pz-ink);
  font-size: 0.9rem;
}

.pxshop-payment-method__body small {
  color: var(--pz-muted);
  font-size: 0.73rem;
  line-height: 1.4;
}

.pxshop-payment-method__mark {
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(32, 33, 30, 0.25);
  border-radius: 50%;
  background: rgba(255, 253, 248, 0.9);
}

.pxshop-payment-method__mark::after {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--pz-wine);
  content: "";
  opacity: 0;
  transform: scale(0.3);
  transition: opacity 180ms ease, transform 180ms ease;
}

.pxshop-payment-method:has(input:checked) .pxshop-payment-method__mark::after {
  opacity: 1;
  transform: scale(1);
}

/* Keep non-hero storefront headers readable on their pale backgrounds. */
body:has(#pxshop-cart) .tm-header .uk-navbar-container,
body:has(#pxshop-checkout) .tm-header .uk-navbar-container,
body:has(.pz-wine-detail) .tm-header .uk-navbar-container,
body:has(#pxshop-cart) .tm-header-mobile .uk-navbar-container,
body:has(#pxshop-checkout) .tm-header-mobile .uk-navbar-container,
body:has(.pz-wine-detail) .tm-header-mobile .uk-navbar-container {
  background: rgba(11, 11, 9, 0.88) !important;
  backdrop-filter: blur(22px) saturate(135%);
  -webkit-backdrop-filter: blur(22px) saturate(135%);
}

.uk-offcanvas-bar {
  background: rgba(11, 11, 9, 0.97);
  color: var(--pz-paper);
}

.uk-offcanvas-bar .uk-logo :where(img, svg) {
  filter: grayscale(1) brightness(0) invert(1);
}

/* Definitive gate layer after the neutral component fallback. */
body .pxshop-age-gate__panel {
  border-color: rgba(255, 253, 248, 0.2);
  background:
    radial-gradient(circle at 90% 10%, rgba(245, 134, 18, 0.13), transparent 14rem),
    rgba(11, 11, 9, 0.91);
  color: var(--pz-paper);
}

body .pxshop-age-gate__panel::before {
  display: none;
}

body .pxshop-age-gate__panel h2 {
  color: var(--pz-white);
}

body .pxshop-age-gate__panel p {
  color: rgba(255, 253, 248, 0.76);
}

.pxshop-age-gate__logo {
  width: min(78%, 250px);
  height: auto;
  display: block;
  margin: 0 auto 1.25rem;
}

.pxshop-age-gate__actions {
  display: grid;
  justify-items: center;
  gap: 0.9rem;
}

.pxshop-age-gate__actions .uk-button-primary {
  width: 100%;
}

.pxshop-age-gate__exit {
  color: rgba(255, 253, 248, 0.7);
  font-size: 0.76rem;
  font-weight: 680;
  text-decoration: underline;
  text-decoration-color: rgba(255, 253, 248, 0.3);
  text-underline-offset: 0.25em;
}

.pxshop-age-gate__exit:hover,
.pxshop-age-gate__exit:focus {
  color: var(--pz-white);
}

@media (max-width: 959px) {
  .pxshop-checkout-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .pz-product-media {
    position: static;
    top: auto;
    align-self: stretch;
  }

  .pz-wine-stats.uk-grid > *,
  .pz-wine-stats > .uk-grid > * {
    width: 50% !important;
    flex-basis: 50%;
  }

  .pz-wine-stats.uk-grid > :nth-child(2n) .el-item {
    border-right: 0;
  }

}

@media (max-width: 639px) {
  .pz-products-grid .el-image,
  .pz-products-grid .el-item > a:first-child img,
  .pz-products-grid .el-item > img {
    height: min(108vw, 470px);
  }

  .pz-product-image,
  .pz-product-image :where(img),
  .pz-product-image:is(img) {
    min-height: min(110vw, 500px);
    height: min(110vw, 500px);
  }

  .pz-wine-stats.uk-grid > *,
  .pz-wine-stats > .uk-grid > * {
    width: 100% !important;
    flex-basis: 100%;
  }

  .pz-wine-stats .uk-card,
  .pz-wine-stats .el-item {
    min-height: 64px;
    border-right: 0;
    border-bottom: 1px solid rgba(32, 33, 30, 0.09);
  }

  .pz-wine-stats.uk-grid > :last-child .el-item {
    border-bottom: 0;
  }

  .pxshop-buybox__badges {
    justify-content: flex-start;
  }

  .pxshop-buybox__actions--compact {
    grid-template-columns: 1fr 0.72fr;
  }

  #pxshop-cart.pxshop-page,
  #pxshop-checkout.pxshop-page,
  .pxshop-page--return {
    margin-top: 5.8rem;
    margin-bottom: 2.5rem;
  }
}

@media (max-width: 420px) {
  .pxshop-buybox__actions--compact {
    grid-template-columns: 1fr;
  }
}

/* --------------------------------------------------------------------------
   Inner layouts 1.1.2 — precise responsive contracts for imported JSON
   -------------------------------------------------------------------------- */

/* Asymmetric editorial splits keep a deliberate rhythm without leaving the
   copy marooned in a narrow half-column. Native YOOtheme widths remain the
   source of truth; these rules only tune measure and media treatment. */
.pz-split-row--asymmetric {
  align-items: center;
}

.pz-split-row--asymmetric .pz-editorial-copy {
  max-width: 650px;
  box-sizing: border-box;
  padding-block: clamp(1rem, 2.5vw, 2rem);
}

.pz-split-row--asymmetric .pz-editorial-media {
  min-width: 0;
}

.pz-split-row--asymmetric .pz-editorial-image {
  width: 100%;
  min-width: 0;
}

.pz-split-row--asymmetric .pz-editorial-image :where(img),
.pz-split-row--asymmetric .pz-editorial-image:is(img) {
  width: 100%;
  min-height: 0;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center;
}

/* Label artwork has a known 917 × 1288 ratio. A matching frame prevents the
   accidental crop, overflow and mismatched card heights visible previously. */
.pz-label-gallery--uniform,
.pz-label-gallery--uniform.uk-grid {
  align-items: stretch;
}

.pz-label-gallery--uniform.uk-grid > *,
.pz-label-gallery--uniform > .uk-grid > * {
  display: flex;
  align-items: stretch;
}

.pz-label-gallery--uniform .el-item,
.pz-label-gallery--uniform .pz-gallery-card {
  width: 100%;
  max-width: 360px;
  aspect-ratio: 917 / 1288;
  margin-inline: auto;
  padding: 0;
  border: 1px solid rgba(255, 253, 248, 0.18);
  border-radius: 22px;
  background: #fffdf8;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.2);
}

.pz-label-gallery--uniform .el-item :where(a, picture),
.pz-label-gallery--uniform .pz-gallery-card :where(a, picture) {
  display: block;
  width: 100%;
  height: 100%;
}

.pz-label-gallery--uniform .el-image,
.pz-label-gallery--uniform .el-item img,
.pz-label-gallery--uniform .pz-gallery-card img {
  width: 100%;
  height: 100%;
  aspect-ratio: 917 / 1288;
  border-radius: inherit;
  object-fit: contain;
  object-position: center;
}

/* Every editorial gallery is a strict 4:3 grid. This neutralises inherited
   masonry-like sizing while preserving YOOtheme lightbox behaviour. */
.pz-gallery-grid--uniform.uk-grid > *,
.pz-gallery-grid--uniform > .uk-grid > * {
  display: flex;
  align-items: stretch;
}

.pz-gallery-grid--uniform .el-item,
.pz-gallery-grid--uniform .pz-gallery-card {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 24px;
}

.pz-gallery-grid--uniform .el-item :where(a, picture),
.pz-gallery-grid--uniform .pz-gallery-card :where(a, picture) {
  display: block;
  width: 100%;
  height: 100%;
}

.pz-gallery-grid--uniform .el-image,
.pz-gallery-grid--uniform .el-item img,
.pz-gallery-grid--uniform .pz-gallery-card img {
  width: 100%;
  height: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center;
}

.pz-gallery-grid--winery .el-item {
  box-shadow: 0 18px 50px rgba(19, 16, 12, 0.14);
}

.pz-gallery-grid--kapr .el-item {
  box-shadow: 0 20px 54px rgba(0, 0, 0, 0.24);
}

/* Programme listing: the empty state is a concise information strip and the
   reusable cards read like an editorial calendar, not a generic card kit. */
.pz-event-empty-card--compact {
  width: min(100%, 980px);
  min-height: 0;
  margin-inline: auto;
  padding: clamp(1.2rem, 3vw, 1.8rem);
  border-radius: 24px;
  text-align: left;
}

.pz-event-empty-card--compact .pz-event-empty-card__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem 2rem;
}

.pz-event-empty-card--compact .pz-event-empty-card__eyebrow {
  display: block;
  margin-bottom: 0.35rem;
  color: var(--pz-wine);
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  line-height: 1.3;
  text-transform: uppercase;
}

.pz-event-empty-card--compact h2 {
  max-width: 19ch;
  margin: 0 0 0.35rem;
  font-size: clamp(1.55rem, 2.8vw, 2.35rem);
  line-height: 1.04;
}

.pz-event-empty-card--compact p {
  margin: 0;
  color: var(--pz-muted);
}

.pz-event-empty-card--compact .pz-event-empty-card__cta {
  white-space: nowrap;
}

.pz-events-row--editorial .pz-events-shell {
  width: 100%;
}

.pz-section-title,
.pz-section-title .el-title {
  max-width: 18ch;
  margin-inline: auto;
  font-size: clamp(2.25rem, 4vw, 3.5rem);
}

.pz-section-lead,
.pz-section-lead .el-content {
  max-width: 62ch;
  margin-inline: auto;
}

.pz-events-grid--editorial {
  margin-top: clamp(2rem, 4vw, 3rem);
}

.pz-events-grid--editorial .el-item,
.pz-events-grid--editorial .pz-event-card {
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.pz-events-grid--editorial .el-item:hover,
.pz-events-grid--editorial .pz-event-card:hover {
  box-shadow: none;
  transform: none;
}

.pz-events-grid--editorial :where(.el-image, .el-item img) {
  width: 100%;
  height: auto;
  max-height: none;
  aspect-ratio: 3 / 2;
  border-radius: 22px;
  object-fit: cover;
  box-shadow: 0 18px 50px rgba(19, 16, 12, 0.16);
  transition: transform 700ms var(--pz-ease), box-shadow 500ms var(--pz-ease);
}

.pz-events-grid--editorial .el-item:hover :where(.el-image, img) {
  box-shadow: 0 24px 64px rgba(19, 16, 12, 0.2);
  transform: translateY(-4px);
}

.pz-events-grid--editorial :where(.uk-card-body, .el-content) {
  padding-inline: 0.2rem;
}

.pz-events-grid--editorial .el-title {
  font-size: clamp(1.3rem, 2vw, 1.7rem);
  line-height: 1.08;
}

/* Event detail facts are one compact, scannable system. The second section
   then becomes a calm editorial article rather than another large card. */
.pz-event-facts-section {
  background:
    radial-gradient(circle at 92% 10%, rgba(245, 134, 18, 0.09), transparent 22rem),
    var(--pz-paper);
}

.pz-event-facts-row {
  justify-content: center;
}

.pz-event-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  box-sizing: border-box;
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid rgba(32, 33, 30, 0.1);
  border-radius: 28px;
  background: rgba(255, 253, 248, 0.7);
  box-shadow: 0 18px 52px rgba(19, 16, 12, 0.08);
}

.pz-event-facts > * {
  min-width: 0;
  margin-top: 0 !important;
}

.pz-event-facts-title,
.pz-event-facts-title .el-title {
  grid-column: 1 / -1;
  max-width: 18ch;
  margin: 0 auto;
  font-size: clamp(2rem, 3.6vw, 3.2rem);
  text-align: center;
}

.pz-event-fact--date {
  grid-column: 1 / -1;
  width: max-content;
  max-width: 100%;
  min-height: 0;
  margin: 0 auto 0.25rem !important;
  padding: 0.52rem 0.78rem;
  border: 0;
  border-radius: var(--pz-pill);
  background: rgba(124, 23, 56, 0.08);
  color: var(--pz-wine);
  text-align: center;
}

.pz-event-fact:not(.pz-event-fact--date) {
  min-height: 96px;
  display: flex;
  justify-content: center;
  flex-direction: column;
  box-sizing: border-box;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(32, 33, 30, 0.085);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.48);
  color: var(--pz-ink);
}

.pz-event-fact :where(.el-content, p) {
  margin: 0;
}

.pz-event-fact strong {
  display: block;
  margin-bottom: 0.2rem;
  color: var(--pz-muted);
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.pz-event-fact-action {
  grid-column: 1 / -1;
  margin-top: 0.35rem !important;
  justify-content: center;
}

.pz-event-content-row--editorial {
  align-items: flex-start;
  justify-content: center;
}

.pz-event-article--editorial {
  width: 100%;
  max-width: 980px;
  padding: clamp(1.4rem, 4vw, 3rem);
  border-radius: 28px;
  background: rgba(255, 253, 248, 0.76);
  box-shadow: 0 18px 50px rgba(19, 16, 12, 0.08);
  backdrop-filter: blur(12px) saturate(115%);
  -webkit-backdrop-filter: blur(12px) saturate(115%);
}

.pz-event-content-title,
.pz-event-content-title .el-title {
  max-width: 18ch;
  margin-bottom: clamp(1.2rem, 3vw, 2rem);
  font-size: clamp(2rem, 3.6vw, 3.2rem);
}

/* Legal documents are a readable continuous article. The orientation block
   is physically second in JSON, so mobile needs no fragile CSS reordering. */
.pz-legal-row--content-first {
  align-items: flex-start;
}

.pz-legal-row--content-first .pz-legal-content {
  max-width: none;
}

.pz-legal-row--content-first .pz-legal-card {
  margin-top: 0 !important;
  padding: clamp(1.25rem, 2.8vw, 2rem) 0;
  border: 0;
  border-bottom: 1px solid rgba(32, 33, 30, 0.12);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.pz-legal-row--content-first .pz-legal-card:first-child {
  padding-top: 0;
}

.pz-legal-row--content-first .pz-legal-card:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.pz-legal-row--content-first .pz-legal-card--age {
  margin-block: 1rem !important;
  padding: clamp(1.15rem, 2.5vw, 1.6rem) !important;
  border: 1px solid rgba(245, 134, 18, 0.28) !important;
  border-radius: 18px !important;
}

.pz-legal-row--content-first .pz-legal-aside {
  max-width: 270px;
  margin-left: auto;
}

.pz-legal-row--content-first .pz-legal-motif,
.pz-legal-row--content-first .pz-legal-motif :where(img),
.pz-legal-row--content-first .pz-legal-motif:is(img) {
  width: min(100%, 210px);
  height: auto;
  aspect-ratio: 697 / 751;
  border-radius: 0;
  background: transparent;
  mix-blend-mode: normal;
  object-fit: contain;
  object-position: center;
}

.pz-legal-row--content-first .pz-legal-contact-card {
  padding: 1.15rem;
  border-radius: 20px;
  box-shadow: 0 12px 36px rgba(19, 16, 12, 0.08);
}

/* Catalogue modifiers keep the existing praised three-column rhythm. The
   note is clamped independently so the nested PX Shop host remains visible. */
.pz-products-grid--shop,
.pz-products-grid--shop.uk-grid,
.pz-products-grid--shop > .uk-grid,
.pz-products-grid--template,
.pz-products-grid--template.uk-grid,
.pz-products-grid--template > .uk-grid {
  justify-content: center;
}

.pz-products-grid--shop .el-item,
.pz-products-grid--template .el-item {
  text-align: center;
}

.pz-products-grid--shop .el-content,
.pz-products-grid--template .el-content {
  width: 100%;
  max-width: none;
  min-height: 0;
  display: flex;
  flex: 1;
  flex-direction: column;
  overflow: visible;
  -webkit-box-orient: initial;
  -webkit-line-clamp: initial;
}

.pz-product-card__note {
  width: 100%;
  max-width: 31ch;
  min-height: 4.6em;
  display: -webkit-box;
  overflow: hidden;
  margin-inline: auto;
  color: var(--pz-muted);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.pz-product-card__shop {
  width: 100%;
  display: block;
  margin-top: auto;
  padding-top: 0.9rem;
}

.pz-product-card__shop:empty::before {
  display: block;
  min-height: 1.25rem;
  color: var(--pz-muted);
  content: "Načítám cenu…";
  font-size: 0.72rem;
  text-align: center;
}

/* Product detail modifiers remove the redundant dark frame and make the
   analytical link and lower content feel like one considered composition. */
.pz-product-media--clean {
  overflow: visible;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.pz-product-image--clean,
.pz-product-image--clean :where(img),
.pz-product-image--clean:is(img) {
  border: 0 !important;
  background: transparent;
  box-shadow: none;
}

.pz-wine-stats--compact {
  margin-top: 0.75rem;
  border-radius: 20px;
}

.pz-wine-stats--compact .uk-card,
.pz-wine-stats--compact .el-item {
  min-height: 72px;
  padding: 0.7rem 0.55rem;
}

.pz-product-qr-action {
  margin-top: 0.85rem !important;
}

.pz-product-qr-action .uk-button-text,
.pz-product-qr-link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  box-sizing: border-box;
  padding: 0.62rem 0.9rem;
  border: 1px solid rgba(124, 23, 56, 0.18);
  border-radius: var(--pz-pill);
  background: rgba(124, 23, 56, 0.055);
  color: var(--pz-wine);
  box-shadow: none;
  text-decoration: none;
}

.pz-product-qr-action .uk-button-text::before,
.pz-product-qr-link::before {
  display: none;
}

.pz-product-qr-action .uk-button-text:hover,
.pz-product-qr-action .uk-button-text:focus-visible,
.pz-product-qr-link:hover,
.pz-product-qr-link:focus-visible {
  border-color: rgba(124, 23, 56, 0.38);
  background: rgba(124, 23, 56, 0.1);
  color: var(--pz-wine-dark);
}

.pz-product-allergens--compact {
  margin-top: 0.8rem !important;
  padding: 0.85rem 1rem !important;
  border-radius: 18px !important;
}

.pz-product-more-row--editorial {
  overflow: hidden;
  gap: 0;
  margin-left: 0 !important;
  border: 1px solid rgba(255, 253, 248, 0.2);
  border-radius: 28px;
  background: rgba(11, 11, 9, 0.24);
  box-shadow: 0 22px 62px rgba(0, 0, 0, 0.18);
}

.pz-product-more-row--editorial.uk-grid > *,
.pz-product-more-row--editorial > .uk-grid > * {
  padding-left: 0;
}

.pz-product-more-row--editorial .pz-product-note-card {
  min-height: 100%;
  margin: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.pz-product-more-row--editorial .pz-product-pairing {
  background:
    radial-gradient(circle at 88% 12%, rgba(0, 169, 159, 0.2), transparent 15rem),
    rgba(9, 12, 10, 0.9);
}

.pz-product-more-row--editorial .pz-product-description {
  border-left: 0;
  background: rgba(255, 253, 248, 0.9);
  color: var(--pz-ink) !important;
}

.pz-product-more-row--editorial .pz-product-description :where(h2, h3, h4, .el-title) {
  color: var(--pz-ink) !important;
}

.pz-product-more-row--editorial .pz-product-description :where(p, li, .el-content) {
  color: var(--pz-muted) !important;
}

.pz-glass-panel--compact {
  padding: clamp(1.25rem, 2.8vw, 2rem);
  backdrop-filter: blur(12px) saturate(115%);
  -webkit-backdrop-filter: blur(12px) saturate(115%);
}

/* The real Joomla form remains primary; mailto is a visible, dependable
   fallback and must never leave the section looking unfinished. */
.pz-contact-mail-action {
  justify-content: center;
  margin-top: 1rem;
  margin-bottom: 0.25rem;
}

.pz-contact-mail-action .uk-button {
  min-width: 210px;
}

@media (max-width: 959px) {
  .pz-split-row--asymmetric .pz-editorial-media {
    width: 100%;
  }

  .pz-split-row--asymmetric .pz-editorial-copy {
    width: 100%;
    max-width: none;
    padding-block: 0.5rem;
  }

  .pz-split-row--asymmetric .pz-editorial-image :where(img),
  .pz-split-row--asymmetric .pz-editorial-image:is(img) {
    aspect-ratio: 16 / 10;
  }

  .pz-event-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pz-legal-row--content-first .pz-legal-aside {
    position: static;
    width: 100%;
    max-width: none;
    margin: clamp(2rem, 6vw, 3rem) 0 0;
    padding-top: clamp(1.5rem, 4vw, 2rem);
    border-top: 1px solid rgba(32, 33, 30, 0.12);
  }

  .pz-legal-row--content-first .pz-legal-content {
    width: 100%;
  }

  .pz-legal-row--content-first .pz-legal-motif,
  .pz-legal-row--content-first .pz-legal-motif :where(img),
  .pz-legal-row--content-first .pz-legal-motif:is(img) {
    width: min(100%, 170px);
    margin-inline: 0;
  }

  .pz-product-more-row--editorial {
    border-radius: 24px;
  }
}

@media (max-width: 639px) {
  .pz-label-gallery--uniform .el-item,
  .pz-label-gallery--uniform .pz-gallery-card {
    max-width: 320px;
    border-radius: 18px;
  }

  .pz-gallery-grid--uniform .el-item,
  .pz-gallery-grid--uniform .pz-gallery-card {
    border-radius: 20px;
  }

  .pz-event-empty-card--compact {
    padding: 1.15rem;
    text-align: center;
  }

  .pz-event-empty-card--compact .pz-event-empty-card__inner {
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
  }

  .pz-event-empty-card--compact h2 {
    margin-inline: auto;
  }

  .pz-event-facts {
    grid-template-columns: minmax(0, 1fr);
    padding: 1rem;
    border-radius: 22px;
  }

  .pz-event-fact:not(.pz-event-fact--date) {
    min-height: 76px;
  }

  .pz-event-fact-action,
  .pz-event-fact-action .uk-button {
    width: 100%;
  }

  .pz-event-article--editorial {
    padding: 1.2rem;
    border-radius: 22px;
  }

  .pz-legal-row--content-first .pz-legal-card {
    padding-block: 1.15rem;
  }

  .pz-product-card__note {
    min-height: 0;
  }

  .pz-product-qr-action,
  .pz-product-qr-action .uk-button-text,
  .pz-product-qr-link {
    width: 100%;
  }

  .pz-product-more-row--editorial {
    border-radius: 20px;
  }

  .pz-product-more-row--editorial .pz-product-note-card,
  .pz-glass-panel--compact {
    padding: 1.2rem;
  }

  .pz-contact-mail-action .uk-button {
    width: 100%;
    min-width: 0;
  }
}


/* --------------------------------------------------------------------------
   Final client visual QA 1.1.3
   CSS-only corrections; no YOOtheme layout/JSON dependency.
   -------------------------------------------------------------------------- */

/* A one-column UIkit grid does not need its negative gutter. On a glass card
   the gutter moved the painted left edge outside the clipped section. */
body.pz-site .pz-contact-cta .pz-cta-row.uk-grid,
body.pz-site .pz-contact-cta .pz-cta-row > .uk-grid {
  margin-left: 0 !important;
  margin-inline-start: 0 !important;
}

body.pz-site .pz-contact-cta .pz-cta-row.uk-grid > .pz-cta-card {
  min-width: 0;
  margin-inline: auto !important;
  box-sizing: border-box;
}

/* UIkit changes classes on the inner sticky wrapper rather than on
   .tm-header. Cover both states and keep controls legible during the return
   transition to the top of the page. */
body.pz-site.pz-is-scrolled :is(.tm-header, .tm-header-mobile) .uk-navbar-container,
body.pz-site :is(.tm-header, .tm-header-mobile) :is(.uk-sticky.uk-sticky-fixed, .uk-sticky.uk-sticky-below) > .uk-navbar-container,
body.pz-site :is(.tm-header, .tm-header-mobile) .uk-navbar-container.uk-navbar-sticky {
  border-bottom-color: rgba(255, 253, 248, 0.18) !important;
  background: rgba(11, 11, 9, 0.92) !important;
  box-shadow: 0 18px 55px rgba(0, 0, 0, 0.24) !important;
  backdrop-filter: blur(24px) saturate(140%);
  -webkit-backdrop-filter: blur(24px) saturate(140%);
}

body.pz-site :is(.tm-header, .tm-header-mobile) .uk-navbar-container :is(
  .uk-navbar-nav > li > a,
  .uk-navbar-toggle,
  .uk-navbar-item,
  .pxshop-cart-trigger
) {
  color: rgba(255, 253, 248, 0.88) !important;
}

body.pz-site :is(.tm-header, .tm-header-mobile) .uk-navbar-container .uk-navbar-nav > li.uk-active > a {
  color: #72ded7 !important;
}

body.pz-site :is(.tm-header, .tm-header-mobile) .uk-navbar-container .uk-navbar-nav > li > a:hover,
body.pz-site :is(.tm-header, .tm-header-mobile) .uk-navbar-container .uk-navbar-nav > li > a:focus-visible {
  color: #ffffff !important;
}

body.pz-site :is(.tm-header, .tm-header-mobile) .uk-navbar-container .pxshop-cart-trigger {
  border-color: rgba(255, 253, 248, 0.46) !important;
  background: rgba(255, 253, 248, 0.14) !important;
  color: #ffffff !important;
}

body.pz-site :is(.tm-header, .tm-header-mobile) .uk-navbar-container .pxshop-cart-trigger:hover,
body.pz-site :is(.tm-header, .tm-header-mobile) .uk-navbar-container .pxshop-cart-trigger:focus-visible {
  border-color: rgba(255, 253, 248, 0.76) !important;
  background: rgba(255, 253, 248, 0.24) !important;
  color: #ffffff !important;
}

/* These storefront pages begin on a pale surface, so their unscrolled header
   must outrank the generic transparent-header gradient. */
body.pz-site:has(.pz-wine-detail):not(.pz-is-scrolled) :is(.tm-header, .tm-header-mobile) .uk-navbar-container,
body.pz-site:has(#pxshop-cart):not(.pz-is-scrolled) :is(.tm-header, .tm-header-mobile) .uk-navbar-container,
body.pz-site:has(#pxshop-checkout):not(.pz-is-scrolled) :is(.tm-header, .tm-header-mobile) .uk-navbar-container,
body.pz-site:has(.pxshop-page--return):not(.pz-is-scrolled) :is(.tm-header, .tm-header-mobile) .uk-navbar-container {
  border-bottom-color: rgba(255, 253, 248, 0.18) !important;
  background: rgba(11, 11, 9, 0.92) !important;
}

/* Catalogue buy box: restore the grid suppressed by the content host, remove
   the duplicated wine-colour badge and separate price/status from actions. */
body.pz-site .pz-products-grid .pz-product-card__shop.pxshop-buybox--compact {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
  padding-top: 1rem;
}

body.pz-site .pz-products-grid .pxshop-buybox__wine-type {
  display: none !important;
}

body.pz-site .pz-products-grid .pxshop-buybox--compact .pxshop-buybox__head {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.75rem 1.15rem;
}

body.pz-site .pz-products-grid .pxshop-buybox--compact .pxshop-buybox__price {
  justify-content: flex-start;
  text-align: left;
}

body.pz-site .pz-products-grid .pxshop-buybox--compact .pxshop-buybox__badges {
  min-width: 0;
  justify-content: flex-end;
}

body.pz-site .pz-products-grid .pxshop-buybox__actions--compact {
  gap: 0.75rem;
}

body.pz-site .pz-products-grid .pxshop-buybox__feedback:empty {
  display: none;
}

/* Outrank the general mobile section-h2 scale without changing other pages. */
body.pz-site .pz-products-grid .el-item .el-title {
  max-width: 19ch;
  margin-inline: auto;
  font-size: clamp(1.15rem, 1.55vw, 1.45rem) !important;
  line-height: 1.12 !important;
  overflow-wrap: anywhere;
  hyphens: auto;
}

/* The clean product photograph is intentionally rectangular. */
body.pz-site .pz-wine-detail .pz-product-image--clean {
  overflow: visible !important;
  border-radius: 0 !important;
  clip-path: none !important;
}

body.pz-site .pz-wine-detail .pz-product-image--clean :where(img, picture),
body.pz-site .pz-wine-detail .pz-product-image--clean:is(img, picture) {
  border-radius: 0 !important;
  clip-path: none !important;
}

/* The summary thumbnail and its grid track must always share one width. */
body.pz-site #pxshop-checkout .pxshop-checkout-summary .pxshop-line {
  grid-template-columns: 66px minmax(0, 1fr) max-content;
  align-items: center;
}

body.pz-site #pxshop-checkout .pxshop-checkout-summary .pxshop-line > .pxshop-line__media:first-of-type {
  width: 66px;
  max-width: 66px;
  height: 84px;
  min-width: 0;
  grid-column: 1;
  overflow: hidden;
}

body.pz-site #pxshop-checkout .pxshop-checkout-summary .pxshop-line__media img {
  width: 100%;
  max-width: 100%;
}

body.pz-site #pxshop-checkout .pxshop-checkout-summary .pxshop-line__info {
  width: 100%;
  min-width: 0;
  grid-column: 2;
}

body.pz-site #pxshop-checkout .pxshop-checkout-summary .pxshop-line__title {
  max-width: 100%;
  overflow-wrap: anywhere;
}

body.pz-site #pxshop-checkout .pxshop-checkout-summary .pxshop-line__total {
  min-width: max-content;
  grid-column: 3;
}

/* Avoid stacking YOOtheme main padding, page margin and card padding. */
body.pz-site:has(#pxshop-cart) #tm-main,
body.pz-site:has(#pxshop-checkout) #tm-main,
body.pz-site:has(.pxshop-page--return) #tm-main {
  padding-top: clamp(1.5rem, 3vw, 2.5rem) !important;
}

body.pz-site #pxshop-cart.pxshop-page,
body.pz-site #pxshop-checkout.pxshop-page,
body.pz-site .pxshop-page--return {
  margin-top: 0 !important;
}

@media (max-width: 699px) {
  body.pz-site #pxshop-checkout .pxshop-checkout-summary .pxshop-line {
    grid-template-columns: 64px minmax(0, 1fr);
    align-items: start;
  }

  body.pz-site #pxshop-checkout .pxshop-checkout-summary .pxshop-line > .pxshop-line__media:first-of-type {
    width: 64px;
    max-width: 64px;
    height: 82px;
    grid-row: 1 / span 2;
  }

  body.pz-site #pxshop-checkout .pxshop-checkout-summary .pxshop-line__info {
    grid-row: 1;
    grid-column: 2;
  }

  body.pz-site #pxshop-checkout .pxshop-checkout-summary .pxshop-line__total {
    min-width: 0;
    grid-row: 2;
    grid-column: 2;
    justify-self: start;
    margin-top: 0.35rem;
    text-align: left;
  }
}

@media (max-width: 519px) {
  body.pz-site #pxshop-checkout .pxshop-checkout-summary .pxshop-line {
    grid-template-columns: 58px minmax(0, 1fr);
  }

  body.pz-site #pxshop-checkout .pxshop-checkout-summary .pxshop-line > .pxshop-line__media:first-of-type {
    width: 58px;
    max-width: 58px;
    height: 78px;
  }
}

@media (max-width: 380px) {
  body.pz-site .pz-products-grid .pxshop-buybox--compact .pxshop-buybox__head {
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
  }

  body.pz-site .pz-products-grid .pxshop-buybox--compact :is(.pxshop-buybox__price, .pxshop-buybox__badges) {
    justify-content: center;
    text-align: center;
  }
}

/* --------------------------------------------------------------------------
   Motion and printing
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  body :where(.uk-button, .pz-action):hover,
  .pz-products-grid .el-item:hover,
  .pz-motif-card:hover,
  .pz-gallery-card:hover img,
  .pz-gallery-grid .el-item:hover img {
    transform: none;
  }

  body :where(.uk-button-primary:not([disabled]))::before,
  .pz-hero-actions :where(.uk-button-default:not([disabled]))::before,
  .pz-cta-card :where(.uk-button-default:not([disabled]))::before,
  .pz-program-card :where(.uk-button-default:not([disabled]))::before,
  .pxshop-cart-trigger::before {
    animation: none !important;
    opacity: 0.5;
  }
}

@media print {
  .tm-header,
  .tm-header-mobile,
  .pz-site-header,
  .pz-site-footer,
  .pxshop-age-gate,
  .pz-actions,
  .pz-hero-actions,
  .pxshop .uk-button {
    display: none !important;
  }

  body,
  .pz-section,
  .pxshop {
    background: #fff !important;
    color: #000 !important;
    box-shadow: none !important;
  }

  .pxshop,
  .pz-card,
  .pz-legal-card {
    width: 100%;
    margin: 0;
    border: 1px solid #bbb;
    box-shadow: none;
  }
}
