/* ============================================================
   Centrum Květinové Vazby — child theme Hummingbird 2.0
   PrestaShop 9.1 | Smuteční floristika
   Paleta: --ckv-* (forest × cream × rose)
   Typografie: Lora + Source Sans 3
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400&family=Source+Sans+3:ital,wght@0,300..700;1,400&display=swap');

/* ==========================================================
   DESIGN TOKENS
   ========================================================== */
:root {
  --ckv-forest:      #394435;
  --ckv-forest-deep: #202C1E;
  /* RGB složky pro průhledné odstíny: rgba(var(--ckv-forest-rgb), .12).
     Dřív se rgba(57,68,53,…) opakovalo ~80× natvrdo (#147). */
  --ckv-forest-rgb:  57, 68, 53;
  --ckv-cream-rgb:   250, 247, 245;
  --ckv-white:       #fff;
  --ckv-white-rgb:   255, 255, 255;
  --ckv-forest-tint: rgba(var(--ckv-forest-rgb), 0.07);
  --ckv-sage:        #8E8877;
  --ckv-olive:       #696A5B;
  --ckv-rose:        #EAC2BD;
  --ckv-rose-dusty:  #C79A96;
  --ckv-blush:       #FBF1F0;
  --ckv-cream:       #FAF7F5;

  --ckv-primary:     var(--ckv-forest);
  --ckv-accent:      var(--ckv-rose-dusty);
  --ckv-bg:          var(--ckv-cream);
  --ckv-bg-soft:     var(--ckv-blush);
  --ckv-text:        var(--ckv-forest-deep);
  --ckv-text-muted:  var(--ckv-olive);

  --ckv-ease: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --ckv-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ckv-duration: 0.4s;

  /* Písma. Načítají se jen tahle dvě (@import výš). 'Cormorant Garamond'
     a 'Lato' tu dřív stály v ~10 pravidlech, ale nikdy se nenačetly — text
     padal na Georgia / systémový sans-serif (#147). Obě mají plnou českou
     diakritiku. */
  --ckv-font-heading: 'Lora', 'Georgia', 'Times New Roman', serif;
  --ckv-font-body: 'Source Sans 3', -apple-system, sans-serif;

  /* Výška horní lišty PO scrollu (.ck-topnav.is-scrolled; app.js přepíná
     od 40 px). Sticky galerie na produktu se od ní odsazuje — v okamžiku,
     kdy se sticky uplatní, je lišta vždycky už zmenšená. */
  --ckv-nav-height: 58px;

  /* Jemný rámeček — rgba(57,68,53,.1) se v souboru opakuje. */
  --ckv-border: rgba(var(--ckv-forest-rgb), 0.1);

  /* Stavové barvy (ARES: ok / chyba) */
  --ckv-success: #3a7d44;
  --ckv-danger:  #b54a4a;

  --bs-primary: var(--ckv-forest);
  --bs-primary-rgb: 57, 68, 53;
  --bs-secondary: var(--ckv-cream);
  --bs-body-color: var(--ckv-forest-deep);
  --bs-body-bg: var(--ckv-cream);
  --bs-body-font-family: var(--ckv-font-body);
  --bs-link-color: var(--ckv-forest);
  --bs-link-hover-color: var(--ckv-rose-dusty);

  /* Layout widths */
  --ckv-container: 1600px;
  --ckv-gutter: 2.5rem;
}

/* ==========================================================
   BASE & TYPOGRAPHY
   ========================================================== */
*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  font-family: var(--ckv-font-body);
  font-size: clamp(15px, 0.85rem + 0.3vw, 18px);
  font-weight: 400;
  line-height: 1.7;
  color: var(--ckv-forest-deep);
  background-color: var(--ckv-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, .h1, .h2, .h3, .h4,
.product-title,
.card-title {
  font-family: var(--ckv-font-heading);
  color: var(--ckv-forest);
  font-weight: 600;
  line-height: 1.25;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

h1, .h1 { font-size: clamp(2rem, 1.5rem + 1.6vw, 3rem); }
h2, .h2 { font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.25rem); }
h3, .h3 { font-size: clamp(1.125rem, 1rem + 0.5vw, 1.5rem); }

p {
  line-height: 1.75;
  color: var(--ckv-forest-deep);
}

a {
  color: var(--ckv-forest);
  text-decoration: none;
  transition: color var(--ckv-duration) var(--ckv-ease);
}

a:hover {
  color: var(--ckv-rose-dusty);
}

::selection {
  background-color: var(--ckv-forest);
  color: var(--ckv-cream);
}

/* ==========================================================
   ANNOUNCEMENT BAR
   ========================================================== */
.header-banner,
#header-banner {
  display: none !important;
}

/* ==========================================================
   TOP NAVIGATION (horizontal — Canva-inspired)
   ========================================================== */

/* Override default PrestaShop header — remove default padding/styling */
#header.header {
  background: none;
  box-shadow: none;
  padding: 0;
  border: none;
  position: sticky;
  top: 0;
  z-index: 1040;
}

/* Hide default PS header internals we don't use */
.header-top__right,
.header-nav-full-width {
  display: none !important;
}

/* Desktop top nav */
.ck-topnav {
  display: none;
  background-color: var(--ckv-cream);
  border-bottom: 1px solid rgba(var(--ckv-forest-rgb), 0.08);
  transition: background-color 0.35s ease, box-shadow 0.35s ease;
}

.ck-topnav.is-scrolled {
  box-shadow: 0 2px 16px rgba(var(--ckv-forest-rgb), 0.1);
}

@media (min-width: 992px) {
  .ck-topnav {
    display: block;
  }
}

/* ── Homepage: navbar plave přes hero ── */
body.page-index .ck-topnav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 200;
  background-color: transparent;
  border-bottom: 1px solid transparent;
}

body.page-index .ck-topnav__brand,
body.page-index .ck-topnav__link,
body.page-index .ck-topnav__cart,
body.page-index .ck-topnav__search svg {
  color: var(--ckv-white) !important;
}

body.page-index .ck-topnav__link::after {
  background-color: rgba(var(--ckv-white-rgb), 0.6);
}

body.page-index .ck-topnav__dropdown-menu {
  background-color: var(--ckv-forest-deep);
  border: none;
}

body.page-index .ck-topnav__dropdown-menu li a {
  color: rgba(var(--ckv-white-rgb), 0.85);
}

body.page-index .ck-topnav__dropdown-menu li a:hover {
  color: var(--ckv-white);
  background-color: rgba(var(--ckv-white-rgb), 0.08);
}

/* Scrolled: solidní krémové pozadí */
body.page-index .ck-topnav.is-scrolled {
  background-color: var(--ckv-cream);
  border-bottom-color: rgba(var(--ckv-forest-rgb), 0.08);
}

body.page-index .ck-topnav.is-scrolled .ck-topnav__brand,
body.page-index .ck-topnav.is-scrolled .ck-topnav__link,
body.page-index .ck-topnav.is-scrolled .ck-topnav__cart,
body.page-index .ck-topnav.is-scrolled .ck-topnav__search svg {
  color: var(--ckv-forest) !important;
}

body.page-index .ck-topnav.is-scrolled .ck-topnav__link::after {
  background-color: var(--ckv-forest);
}

body.page-index .ck-topnav.is-scrolled .ck-topnav__dropdown-menu {
  background-color: var(--ckv-cream);
  border: 1px solid rgba(var(--ckv-forest-rgb), 0.08);
}

body.page-index .ck-topnav.is-scrolled .ck-topnav__dropdown-menu li a {
  color: var(--ckv-forest);
}

body.page-index .ck-topnav.is-scrolled .ck-topnav__dropdown-menu li a:hover {
  color: var(--ckv-forest-deep);
  background-color: var(--ckv-blush);
}

/* Announcement bar skrytý na homepage */
body.page-index .header-banner,
body.page-index #header_nav,
body.page-index .header-top {
  display: none !important;
}

/* Mobile navbar overlay na homepage */
body.page-index .ck-header-mobile {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 200;
  background-color: transparent;
  border-bottom: 1px solid transparent;
  transition: background-color 0.35s ease;
}

body.page-index .ck-header-mobile__hamburger,
body.page-index .ck-header-mobile__cart-link,
body.page-index .ck-header-mobile__search-link {
  color: var(--ckv-white);
}

body.page-index .ck-topnav.is-scrolled ~ * .ck-header-mobile,
body.page-index .ck-header-mobile.is-scrolled {
  background-color: var(--ckv-cream);
  border-bottom-color: var(--ckv-blush);
}

body.page-index .ck-header-mobile.is-scrolled .ck-header-mobile__hamburger,
body.page-index .ck-header-mobile.is-scrolled .ck-header-mobile__cart-link,
body.page-index .ck-header-mobile.is-scrolled .ck-header-mobile__search-link {
  color: var(--ckv-forest);
}

.ck-topnav__inner {
  max-width: var(--ckv-container);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 var(--ckv-gutter);
  height: 80px;
  transition: height 0.3s ease;
}

.ck-topnav.is-scrolled .ck-topnav__inner {
  height: 58px;
}

.ck-topnav__brand {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  text-decoration: none !important;
  color: var(--ckv-forest) !important;
  flex-shrink: 0;
}

.ck-topnav__logo {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  transition: width 0.3s ease, height 0.3s ease, opacity 0.3s ease;
}

.ck-topnav.is-scrolled .ck-topnav__logo {
  width: 30px;
  height: 30px;
}

/* Default (non-homepage): show dark logo, hide light logo */
.ck-topnav__logo--on-dark {
  display: none;
}

/* Homepage: nav over dark hero → show light logo, hide dark */
body.page-index .ck-topnav__logo--on-dark {
  display: block;
}
body.page-index .ck-topnav__logo--on-light {
  display: none;
}

/* Homepage scrolled: back to dark logo */
body.page-index .ck-topnav.is-scrolled .ck-topnav__logo--on-dark {
  display: none;
}
body.page-index .ck-topnav.is-scrolled .ck-topnav__logo--on-light {
  display: block;
}

.ck-topnav__name {
  font-family: var(--ckv-font-heading);
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.04em;
}

.ck-topnav__nav {
  display: flex;
  align-items: center;
  gap: 2.5rem;
}

.ck-topnav__link {
  font-family: var(--ckv-font-body);
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ckv-forest);
  text-decoration: none;
  padding: 0.5rem 0;
  position: relative;
  transition: color var(--ckv-duration) var(--ckv-ease);
}

.ck-topnav__link::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 1.5px;
  background-color: var(--ckv-rose-dusty);
  transition: width var(--ckv-duration) var(--ckv-ease);
}

.ck-topnav__link:hover {
  color: var(--ckv-rose-dusty);
}

.ck-topnav__link:hover::after {
  width: 100%;
}

/* Dropdown (hover-based) */
.ck-topnav__dropdown {
  position: relative;
}

.ck-topnav__link--has-dropdown {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  background: none;
  border: none;
  cursor: pointer;
  text-decoration: none;
  color: inherit;
}

.ck-topnav__chevron {
  transition: transform var(--ckv-duration) var(--ckv-ease);
}

.ck-topnav__dropdown:hover .ck-topnav__chevron,
.ck-topnav__dropdown.is-open .ck-topnav__chevron {
  transform: rotate(180deg);
}

.ck-topnav__dropdown-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  background: var(--ckv-cream);
  border: 1px solid rgba(var(--ckv-forest-rgb), 0.08);
  border-radius: 0.5rem;
  box-shadow: 0 12px 32px rgba(32, 44, 30, 0.14);
  list-style: none;
  margin: 0;
  padding: 0.5rem 0;
  min-width: 210px;
  z-index: 1000;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s var(--ckv-ease), transform 0.25s var(--ckv-ease), visibility 0.25s;
}

.ck-topnav__dropdown:hover .ck-topnav__dropdown-menu,
.ck-topnav__dropdown.is-open .ck-topnav__dropdown-menu {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}

.ck-topnav__dropdown-menu li a {
  display: block;
  padding: 0.625rem 1.25rem;
  font-family: var(--ckv-font-body);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--ckv-forest);
  text-decoration: none;
  transition: background 0.2s var(--ckv-ease), color 0.2s var(--ckv-ease), padding-left 0.2s var(--ckv-ease);
}

.ck-topnav__dropdown-menu li a:hover {
  background: var(--ckv-blush);
  color: var(--ckv-rose-dusty);
  padding-left: 1.5rem;
}

.ck-topnav__actions {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-shrink: 0;
}

/* Search */
.ck-topnav__search {
  position: relative;
  display: flex;
  align-items: center;
}

.ck-topnav__search-btn {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--ckv-forest);
  display: flex;
  align-items: center;
  padding: 0.5rem;
  transition: color var(--ckv-duration) var(--ckv-ease);
}
.ck-topnav__search-btn:hover { color: var(--ckv-rose-dusty); }

.ck-topnav__search-form {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  background: var(--ckv-white);
  border: 1px solid rgba(var(--ckv-forest-rgb), 0.2);
  border-radius: 2px;
  overflow: hidden;
  width: 0;
  opacity: 0;
  pointer-events: none;
  transition: width 0.3s ease, opacity 0.25s ease;
  z-index: 100;
}
.ck-topnav__search-form.is-open {
  width: 240px;
  opacity: 1;
  pointer-events: all;
}
.ck-topnav__search-input {
  flex: 1;
  border: none;
  outline: none;
  padding: 0.4rem 0.75rem;
  font-family: var(--ckv-font-body);
  font-size: 0.8125rem;
  color: var(--ckv-forest);
  background: transparent;
}
.ck-topnav__search-form button[type="submit"] {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.4rem 0.6rem;
  color: var(--ckv-forest);
  display: flex;
  align-items: center;
}

/* Mobile search link (now a button) */
.ck-header-mobile__search-link {
  display: flex;
  align-items: center;
  color: var(--ckv-forest);
  padding: 0.5rem;
  background: none;
  border: none;
  cursor: pointer;
}

/* Mobile search overlay */
.ck-mobile-search {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 10001;
  background: var(--ckv-cream);
  padding: 0.75rem 1rem;
  box-shadow: 0 2px 12px rgba(0,0,0,0.15);
  transform: translateY(-100%);
  opacity: 0;
  transition: transform 0.3s ease, opacity 0.25s ease;
  pointer-events: none;
}
.ck-mobile-search.is-open {
  transform: translateY(0);
  opacity: 1;
  pointer-events: all;
}
.ck-mobile-search__form {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.ck-mobile-search__input {
  flex: 1;
  border: 1px solid rgba(var(--ckv-forest-rgb), 0.2);
  border-radius: 0.25rem;
  padding: 0.6rem 0.75rem;
  font-family: var(--ckv-font-body);
  font-size: 0.9375rem;
  color: var(--ckv-forest);
  background: var(--ckv-white);
  outline: none;
}
.ck-mobile-search__input:focus {
  border-color: var(--ckv-forest);
}
.ck-mobile-search__submit {
  background: var(--ckv-forest);
  border: none;
  border-radius: 0.25rem;
  color: var(--ckv-cream);
  padding: 0.55rem 0.65rem;
  cursor: pointer;
  display: flex;
  align-items: center;
}
.ck-mobile-search__close {
  background: none;
  border: none;
  color: var(--ckv-forest);
  padding: 0.4rem;
  cursor: pointer;
  display: flex;
  align-items: center;
}

/* Floating call button */
.ck-call-float {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  z-index: 999;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--ckv-forest);
  color: var(--ckv-cream) !important;
  text-decoration: none;
  padding: 0.75rem 1.25rem;
  border-radius: 2rem;
  box-shadow: 0 4px 20px rgba(var(--ckv-forest-rgb), 0.25);
  font-family: var(--ckv-font-body);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
  white-space: nowrap;
}
.ck-call-float:hover {
  background: var(--ckv-rose-dusty);
  transform: translateY(-2px);
  box-shadow: 0 6px 24px rgba(var(--ckv-forest-rgb), 0.3);
}
@media (max-width: 767px) {
  .ck-call-float span { display: none; }
  .ck-call-float {
    padding: 0.875rem;
    border-radius: 50%;
    bottom: 1.25rem;
    right: 1.25rem;
  }
}

.ck-topnav__cart {
  position: relative;
  color: var(--ckv-forest);
  display: flex;
  align-items: center;
  padding: 0.5rem;
  transition: color var(--ckv-duration) var(--ckv-ease);
}

.ck-topnav__cart:hover {
  color: var(--ckv-rose-dusty);
}

.ck-topnav__badge {
  position: absolute;
  top: 0;
  right: -4px;
  background-color: var(--ckv-rose-dusty);
  color: var(--ckv-white);
  font-size: 0.5625rem;
  font-weight: 700;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ==========================================================
   MOBILE HEADER
   ========================================================== */
.ck-header-mobile {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 56px;
  padding: 0 1rem;
  background-color: var(--ckv-cream);
  border-bottom: 1px solid var(--ckv-blush);
}

@media (min-width: 992px) {
  .ck-header-mobile {
    display: none !important;
  }
}

.ck-header-mobile__hamburger {
  background: none;
  border: none;
  color: var(--ckv-forest);
  cursor: pointer;
  padding: 0.5rem;
  line-height: 1;
}

.ck-header-mobile__hamburger:hover {
  color: var(--ckv-rose-dusty);
}

.ck-header-mobile__logo {
  text-decoration: none !important;
  flex-shrink: 0;
}

.ck-header-mobile__logo-img {
  width: 36px;
  height: 36px;
  object-fit: contain;
  transition: width 0.3s ease, height 0.3s ease;
}

/* Na homepage s průhledným headerem — větší logo */
body.page-index .ck-header-mobile:not(.is-scrolled) .ck-header-mobile__logo-img {
  width: 64px;
  height: 64px;
}

body.page-index .ck-header-mobile:not(.is-scrolled) .ck-header-mobile__logo {
  position: relative;
  top: 12px;
}

/* Přepínání varianty loga podle podkladu.
   Mimo homepage je header vždy krémový → tmavé logo. */
.ck-header-mobile__logo-img--on-dark {
  display: none;
}

body.page-index .ck-header-mobile__logo-img--on-dark {
  display: block;
}

body.page-index .ck-header-mobile__logo-img--on-light {
  display: none;
}

/* Po odscrollování má header krémové pozadí → zpět tmavé logo */
body.page-index .ck-header-mobile.is-scrolled .ck-header-mobile__logo-img--on-dark {
  display: none;
}

body.page-index .ck-header-mobile.is-scrolled .ck-header-mobile__logo-img--on-light {
  display: block;
}

.ck-header-mobile__cart {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.ck-header-mobile__cart-link {
  color: var(--ckv-forest);
  padding: 0.5rem;
  display: flex;
}

.ck-header-mobile__badge {
  position: absolute;
  top: 0;
  right: 0;
  background-color: var(--ckv-rose-dusty);
  color: var(--ckv-white);
  font-size: 0.5625rem;
  font-weight: 700;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ==========================================================
   SIDEBAR (mobile-only overlay)
   ========================================================== */
.ck-sidebar {
  position: fixed;
  top: 0;
  left: 0;
  width: 280px;
  height: 100vh;
  background-color: var(--ckv-cream);
  border-right: 1px solid var(--ckv-blush);
  display: flex;
  flex-direction: column;
  padding: 2rem 0;
  z-index: 1050;
  overflow-y: auto;
  transform: translateX(-100%);
  transition: transform var(--ckv-duration) var(--ckv-ease-out);
}

.ck-sidebar.is-open {
  transform: translateX(0);
  box-shadow: 4px 0 24px rgba(32, 44, 30, 0.15);
}

/* Hide sidebar on desktop — top nav replaces it */
@media (min-width: 992px) {
  .ck-sidebar {
    display: none !important;
  }
  .ck-sidebar-backdrop {
    display: none !important;
  }
}

.ck-sidebar__close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: none;
  border: none;
  color: var(--ckv-forest);
  cursor: pointer;
  padding: 0.25rem;
  line-height: 1;
  font-size: 1.5rem;
}

.ck-sidebar__close:hover {
  color: var(--ckv-rose-dusty);
}

.ck-sidebar__logo {
  padding: 0 1.5rem;
  text-align: center;
}

.ck-sidebar__logo-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none !important;
}

.ck-sidebar__logo-link img {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: contain;
}

.ck-sidebar__brand {
  font-family: var(--ckv-font-heading);
  font-size: 1rem;
  font-weight: 600;
  color: var(--ckv-forest);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-align: center;
}

.ck-sidebar__subtitle {
  font-family: var(--ckv-font-body);
  font-size: 0.5625rem;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--ckv-olive);
  font-weight: 700;
}

.ck-sidebar__divider {
  border: none;
  height: 1px;
  background-color: var(--ckv-blush);
  margin: 1.5rem 1.5rem;
}

.ck-sidebar__nav {
  display: flex;
  flex-direction: column;
  padding: 0 1.5rem;
}

.ck-sidebar__link {
  display: block;
  padding: 0.75rem 0;
  font-family: var(--ckv-font-body);
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ckv-forest);
  text-decoration: none;
  border-bottom: 1px solid var(--ckv-blush);
  transition: color var(--ckv-duration) var(--ckv-ease);
}

.ck-sidebar__link:hover {
  color: var(--ckv-rose-dusty);
}

.ck-sidebar__link.is-active {
  color: var(--ckv-rose-dusty);
  font-weight: 700;
}

/* Submenu link row — link + chevron toggle side by side */
.ck-sidebar__link-row {
  display: flex;
  align-items: center;
  gap: 0;
}

.ck-sidebar__link-row .ck-sidebar__link {
  flex: 1;
}

.ck-sidebar__link--toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  color: inherit;
}

.ck-sidebar__chevron {
  margin-left: auto;
  transition: transform 0.25s ease;
}

.ck-sidebar__submenu.is-open .ck-sidebar__chevron {
  transform: rotate(180deg);
}

.ck-sidebar__submenu-list {
  list-style: none;
  padding: 0;
  margin: 0;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}

.ck-sidebar__submenu.is-open .ck-sidebar__submenu-list {
  max-height: 200px;
  overflow-y: auto;
}

.ck-sidebar__submenu-list .ck-sidebar__link {
  padding-left: 1rem;
  font-size: 0.9em;
  opacity: 0.85;
}

.ck-sidebar__spacer {
  flex: 1;
}

.ck-sidebar__contact {
  padding: 0 1.5rem;
}

.ck-sidebar__contact p {
  font-size: 0.75rem;
  color: var(--ckv-olive);
  display: flex;
  align-items: center;
  gap: 0.375rem;
  margin-bottom: 0.375rem;
}

/* Telefon a e-mail jsou na mobilu klikací (tel:/mailto:) */
.ck-sidebar__contact-link,
.ck-sidebar__contact-address {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: inherit;
  text-decoration: none;
  min-height: 32px;
  transition: color var(--ckv-duration) var(--ckv-ease);
}

.ck-sidebar__contact-link:hover,
.ck-sidebar__contact-link:focus-visible {
  color: var(--ckv-forest);
}

.ck-sidebar__contact svg {
  flex-shrink: 0;
  opacity: 0.75;
}

.ck-sidebar-backdrop {
  position: fixed;
  inset: 0;
  background-color: rgba(32, 44, 30, 0.35);
  z-index: 1045;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--ckv-duration) var(--ckv-ease);
}

.ck-sidebar-backdrop.is-visible {
  opacity: 1;
  pointer-events: auto;
}

/* ==========================================================
   LAYOUT WRAPPER (full-width)
   ========================================================== */
.ck-layout {
  display: block;
  min-height: 100vh;
}

.ck-layout--fullwidth .ck-main {
  width: 100%;
}

.ck-main--fullwidth {
  max-width: 100%;
}

/* ==========================================================
   HERO (full viewport, Canva-inspired)
   ========================================================== */
.ck-hero {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  /* Hero vyplní první obrazovku na každém zařízení.
     svh = výška bez adresního řádku mobilu, takže hero neskáče při scrollu.
     min-height (ne height) → obsah smí hero přerůst na nízkých displejích. */
  min-height: 100vh;
  min-height: 100svh;
}

/* Obrázek leží pod obsahem — výšku hera určuje overlay */
.ck-hero__media {
  position: absolute;
  inset: 0;
}

.ck-hero__media img {
  display: block;
  object-fit: cover;
  width: 100%;
  height: 100%;
  filter: brightness(0.78) contrast(1.05);
  /* Subjekt fotky je vpravo — držíme ho v záběru i při ořezu */
  object-position: 68% center;
}

/* Gradient overlay on hero image */
.ck-hero__media::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      to top,
      rgba(24, 34, 22, 0.72) 0%,
      rgba(24, 34, 22, 0.28) 22%,
      rgba(24, 34, 22, 0) 45%
    ),
    linear-gradient(
      160deg,
      rgba(32, 44, 30, 0.85) 0%,
      rgba(var(--ckv-forest-rgb), 0.5) 45%,
      rgba(var(--ckv-forest-rgb), 0.15) 100%
    );
  pointer-events: none;
  z-index: 1;
  backface-visibility: hidden;
}

/* Hero overlay (static content) */
.ck-hero__overlay {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  max-width: var(--ckv-container);
  margin-inline: auto;
  padding: 4.5rem var(--ckv-gutter);
  border: none;
}

/* Textový sloupec zůstává úzký, kategorie využijí plnou šířku */
.ck-hero__eyebrow,
.ck-hero__title,
.ck-hero__actions {
  max-width: 34rem;
}

.ck-hero__eyebrow {
  font-family: var(--ckv-font-body);
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ckv-cream);
  margin-bottom: 0.5rem;
  opacity: 0.8;
}

.ck-hero__title {
  font-family: var(--ckv-font-heading);
  font-size: clamp(2rem, 1.1rem + 2.9vw, 4rem);
  font-weight: 600;
  color: var(--ckv-white);
  line-height: 1.15;
  margin-bottom: 0.75rem;
  text-transform: none;
  letter-spacing: 0.02em;
}

.ck-hero__desc {
  font-family: var(--ckv-font-body);
  font-size: clamp(1rem, 0.9rem + 0.4vw, 1.25rem);
  font-weight: 400;
  color: var(--ckv-cream);
  line-height: 1.6;
  margin-bottom: 1.25rem;
  opacity: 0.9;
  max-width: 500px; /* na ≥1600px 34rem, viz sekce velký desktop */
  text-transform: none;
  letter-spacing: normal;
}

.ck-hero__actions {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

.ck-hero__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.625rem 1.5rem;
  font-family: var(--ckv-font-body);
  font-size: clamp(0.625rem, 0.55rem + 0.3vw, 0.8125rem);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-radius: 0;
  flex-shrink: 0;
  text-decoration: none;
  transition: background-color var(--ckv-duration) var(--ckv-ease),
              border-color var(--ckv-duration) var(--ckv-ease),
              color var(--ckv-duration) var(--ckv-ease),
              transform 0.2s var(--ckv-ease);
}

.ck-hero__btn--primary {
  background-color: transparent;
  border: 1px solid rgba(var(--ckv-white-rgb), 0.7);
  color: var(--ckv-white);
}

.ck-hero__btn--primary:hover {
  background-color: rgba(var(--ckv-white-rgb), 0.12);
  border-color: var(--ckv-white);
  color: var(--ckv-white);
  transform: translateY(-1px);
}

.ck-hero__btn--outline {
  background-color: transparent;
  border: 1px solid rgba(var(--ckv-white-rgb), 0.7);
  color: var(--ckv-white);
}

.ck-hero__btn--outline:hover {
  background-color: rgba(var(--ckv-white-rgb), 0.1);
  border-color: var(--ckv-white);
  color: var(--ckv-white);
  transform: translateY(-1px);
}

@media (max-width: 767px) {
  /* Úzký výřez by růži odřízl — posuneme ho na ni */
  .ck-hero__media img {
    object-position: 45% center;
  }
}

/* ==========================================================
   INTRO SECTION (company description with bg image)
   ========================================================== */
.ck-section--intro {
  position: relative;
  overflow: hidden;
  padding: 0 !important;
  margin-bottom: 0 !important;
  background-color: var(--ckv-forest-deep);
  margin: 0;
}

.ck-intro__bg {
  position: absolute;
  inset: -12% 0;
  z-index: 0;
}

.ck-intro__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(0.72) contrast(1.05) saturate(0.85);
}

.ck-intro__overlay {
  position: relative;
  z-index: 1;
  padding: 5rem var(--ckv-gutter);
  background: linear-gradient(
    160deg,
    rgba(20, 30, 18, 0.78) 0%,
    rgba(var(--ckv-forest-rgb), 0.45) 55%,
    rgba(20, 30, 18, 0.65) 100%
  );
}

.ck-intro {
  max-width: 800px;
  margin: 0 auto;
  text-align: center;
}

.ck-intro .ck-eyebrow {
  color: var(--ckv-rose);
  margin-bottom: 0.5rem;
}

.ck-intro .ck-heading {
  color: var(--ckv-white);
  margin-bottom: 2rem;
}

.ck-intro__text {
  text-align: left;
}

.ck-intro__text p {
  font-size: clamp(0.875rem, 0.8rem + 0.4vw, 1.0625rem);
  color: rgba(var(--ckv-white-rgb), 0.88);
  line-height: 1.85;
  margin-bottom: 1.125rem;
}

.ck-intro__text p:last-child {
  margin-bottom: 0;
}

.ck-intro__text strong {
  color: var(--ckv-white);
}

.ck-intro__payment {
  font-weight: 700;
  color: var(--ckv-rose) !important;
}

/* ==========================================================
   SHARED SECTION UTILITIES
   ========================================================== */
.ck-section {
  padding: 5rem var(--ckv-gutter);
}

.ck-eyebrow {
  font-family: var(--ckv-font-body);
  font-size: clamp(0.625rem, 0.55rem + 0.25vw, 0.75rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--ckv-olive);
}

.ck-heading {
  font-family: var(--ckv-font-heading);
  font-size: clamp(1.25rem, 1rem + 1.5vw, 2rem);
  font-weight: 600;
  color: var(--ckv-forest);
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.ck-subtext {
  font-size: 0.9375rem;
  color: var(--ckv-olive);
  line-height: 1.75;
}

.ck-link {
  display: inline-block;
  font-family: var(--ckv-font-body);
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ckv-forest);
  text-decoration: none;
  transition: color var(--ckv-duration) var(--ckv-ease);
}

.ck-link:hover {
  color: var(--ckv-rose-dusty);
}

/* ==========================================================
   PRODUCT CAROUSEL
   ========================================================== */
.ck-section--products {
  padding: 2rem 0 1.5rem;
  /* Bez vlastního pozadí. Dřív tu bylo var(--body-bg) — token nikdy
     neexistoval, deklarace byla neplatná a sekce ležela průhledná na bílém
     #wrapper. Tak to klient viděl a odsouhlasil; ponecháno záměrně (#147). */
  margin-top: 0;
  margin-bottom: 2.5rem;
}

.ck-products-carousel {
  position: relative;
}

.ck-products-carousel__track {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding: 1rem 1rem 1.5rem;
  flex: 1;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 3rem, #000 calc(100% - 3rem), transparent);
  mask-image: linear-gradient(to right, transparent, #000 3rem, #000 calc(100% - 3rem), transparent);
}

.ck-products-carousel__track::-webkit-scrollbar {
  display: none;
}

.ck-products-carousel__track.no-overflow {
  justify-content: center;
}

.ck-product-card {
  position: relative;
  text-decoration: none !important;
  color: inherit;
  display: flex;
  flex-direction: column;
  flex: 0 0 168px;
  min-width: 0;
  max-width: 168px;
  scroll-snap-align: start;
  background-color: var(--bs-body-bg);
  overflow: hidden;
}

.ck-product-card__link {
  display: flex;
  flex-direction: column;
  width: 100%;
  text-decoration: none;
  color: inherit;
  flex: 1;
}

.ck-product-card__image {
  overflow: hidden;
  width: 168px;
  height: 168px;
  flex-shrink: 0;
  /* Bílá, ne forest-tint: PrestaShop dopadá čtvercové náhledy bílou (JPG),
     takže na zeleném podkladu vznikal bílý rámeček kolem fotky a každá
     karta vypadala jinak podle toho, jak byl originál vysoký (#104). */
  background-color: var(--ckv-white);
  display: flex;
  align-items: center;
  justify-content: center;
}

.ck-product-card__image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* Zoom na hoveru zrušen — uvnitř overflow: hidden ořezával fotku (#104). */

.ck-product-card__body {
  padding: 0.5rem 0.125rem 0;
  display: flex;
  flex-direction: column;
}

.ck-product-card__title {
  font-family: var(--ckv-font-heading);
  font-size: clamp(0.8125rem, 0.75rem + 0.3vw, 1rem);
  font-weight: 600;
  color: var(--ckv-forest);
  margin-bottom: 0.25rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: calc(1.35em * 2);
}

.ck-product-card__price {
  font-family: var(--ckv-font-body);
  font-size: clamp(0.8125rem, 0.75rem + 0.3vw, 1rem);
  font-weight: 700;
  color: var(--ckv-olive);
  letter-spacing: 0.02em;
}

.ck-product-card__qv-icon {
  position: absolute;
  top: 0.375rem;
  right: 0.375rem;
  z-index: 2;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 50%;
  background: rgba(var(--ckv-white-rgb), 0.85);
  backdrop-filter: blur(4px);
  color: var(--ckv-forest);
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.25s ease, background 0.25s ease;
}

.ck-product-card:hover .ck-product-card__qv-icon {
  opacity: 1;
}

.ck-product-card__qv-icon:hover {
  background: var(--ckv-blush);
}

.ck-product-card__qv-icon:focus-visible {
  opacity: 1;
  outline: 2px solid var(--ckv-rose);
  outline-offset: 2px;
}

.ck-products-carousel__btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(var(--ckv-forest-rgb), 0.15);
  border-radius: 50%;
  background: rgba(var(--ckv-white-rgb), 0.85);
  backdrop-filter: blur(4px);
  cursor: pointer;
  color: var(--ckv-forest);
  transition: border-color 0.2s, background 0.2s;
}

.ck-products-carousel__btn--prev { left: 0.5rem; }
.ck-products-carousel__btn--next { right: 0.5rem; }

.ck-products-carousel__btn:hover {
  background: var(--ckv-blush);
  border-color: var(--ckv-forest);
}

@media (max-width: 767px) {
  .ck-products-carousel__track {
    display: grid !important;
    grid-auto-flow: column !important;
    grid-auto-columns: 100% !important;
    gap: 0 !important;
    justify-content: start !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    padding: 0 !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
  }
  .ck-products-carousel__track.no-overflow {
    justify-content: start !important;
  }
  .ck-product-card {
    flex: none !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    scroll-snap-align: start !important;
    padding: 0 1.5rem !important;
    box-sizing: border-box !important;
  }
  .ck-product-card__qv-icon {
    opacity: 1;
  }
  .ck-product-card__image {
    width: 100%;
    height: auto;
    aspect-ratio: 1;
  }
  .ck-product-card__title {
    font-size: 1rem;
    text-align: center;
    margin-bottom: 0.25rem;
  }
  .ck-product-card__price {
    font-size: 0.9375rem;
    text-align: center;
  }
  .ck-product-card__body {
    padding: 0.5rem 1rem 0;
    align-items: center;
  }
}

.ck-products-more {
  text-align: center;
  padding: 0.5rem 0 0;
}

/* ==========================================================
   BUTTONS
   ========================================================== */
/* Třída .add-to-cart je z classic šablony — v Hummingbirdu ji nemá žádný
   prvek (tlačítko je .product__add-to-cart-button.btn.btn-primary), proto
   tu není. Produktová stránka a quickview mají vlastní vrstvu níž. */
.btn-primary,
.btn-primary:active {
  background-color: var(--ckv-forest);
  border: 1px solid var(--ckv-forest);
  color: var(--ckv-cream);
  border-radius: 0;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.75rem;
  font-weight: 700;
  font-family: var(--ckv-font-body);
  padding: 0.875rem 2rem;
  position: relative;
  overflow: hidden;
  transition: background-color var(--ckv-duration) var(--ckv-ease),
              border-color var(--ckv-duration) var(--ckv-ease),
              transform 0.2s var(--ckv-ease);
}

.btn-primary:hover,
.btn-primary:focus {
  background-color: var(--ckv-forest-deep);
  border-color: var(--ckv-forest-deep);
  color: var(--ckv-cream);
  transform: translateY(-1px);
}

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

.btn-secondary,
.btn-outline-primary {
  background-color: transparent;
  border: 1px solid var(--ckv-forest);
  color: var(--ckv-forest);
  border-radius: 0;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.75rem;
  font-weight: 700;
  font-family: var(--ckv-font-body);
  padding: 0.875rem 2rem;
  transition: background-color var(--ckv-duration) var(--ckv-ease),
              color var(--ckv-duration) var(--ckv-ease),
              transform 0.2s var(--ckv-ease);
}

.btn-secondary:hover,
.btn-outline-primary:hover {
  background-color: var(--ckv-forest);
  color: var(--ckv-cream);
  transform: translateY(-1px);
}

.btn-light {
  background-color: transparent;
  border: 1px solid rgba(var(--ckv-white-rgb), 0.95);
  color: var(--ckv-white);
  border-radius: 0;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.875rem 2rem;
}

.btn-light:hover {
  background-color: var(--ckv-white);
  color: var(--ckv-forest);
}

/* ==========================================================
   PRESTASHOP OVERRIDES
   ========================================================== */

/* Hide default PrestaShop sections on homepage */
.featured-products,
.new-products,
[id^="products"],
#new-products,
#featured-products,
.products-section-title {
  display: none !important;
}

/* Hide default footer (but not checkout buttons-wrapper which uses <footer> tag) */
.footer,
#footer,
footer:not(.ck-footer):not(.buttons-wrapper) {
  display: none !important;
}

/* Search bar styling */
.search-widget form input[type="text"] {
  border: 1px solid rgba(var(--ckv-forest-rgb), 0.15);
  border-radius: 0;
  padding: 0.5rem 1rem;
  font-size: 0.8125rem;
  font-family: var(--ckv-font-body);
  background-color: var(--ckv-white);
  color: var(--ckv-forest);
  transition: border-color var(--ckv-duration) var(--ckv-ease);
}

.search-widget form input[type="text"]:focus {
  border-color: var(--ckv-forest);
  outline: none;
  box-shadow: none;
}

.search-widget form button {
  background: none;
  border: none;
  color: var(--ckv-forest);
}

/* Karty produktů (.product-miniature) — jediná definice je v sekci
   CATALOG PAGES / „Product card refinement" níž. */

/* Category pages */
#category-description {
  font-family: var(--ckv-font-body);
  color: var(--ckv-olive);
  max-width: 700px;
}

/* Product detail page */
.product-container h1 {
  font-family: var(--ckv-font-heading);
  font-size: 2rem;
  color: var(--ckv-forest);
}

/* ==========================================================
   CKPRODUCTS MODULE (homepage carousel)
   ========================================================== */

/* ==========================================================
   FOOTER
   ========================================================== */
/* Footer accordion — desktop overrides */
@media (min-width: 768px) {
  .ck-footer__toggle {
    cursor: default;
    pointer-events: none;
    background: none;
    border: none;
    outline: none;
    padding: 0;
    margin-bottom: 0.75rem;
    width: auto;
    justify-content: flex-start;
  }
  .ck-footer__toggle-icon { display: none; }
  .ck-footer__accordion { border-top: none; }
  .ck-footer__collapsible.is-collapsed {
    max-width: none !important;
    max-height: none !important;
    visibility: visible !important;
    padding-bottom: 0 !important;
  }
}

.ck-footer {
  background-color: var(--ckv-forest-deep);
  color: var(--ckv-cream);
  padding: 4rem var(--ckv-gutter) 0;
  margin: 0;
}

.ck-footer__inner {
  max-width: var(--ckv-container);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.6fr 1.2fr 0.8fr 1fr;
  gap: 2rem 2.5rem;
  align-items: start;
}

.ck-footer__brand-logo {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  margin-bottom: 0.75rem;
}

.ck-footer__brand-logo img {
  flex-shrink: 0;
  opacity: 0.85;
  width: 34px;
  height: 34px;
}

.ck-footer__name {
  font-family: var(--ckv-font-heading);
  font-size: 1.0625rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--ckv-cream);
  text-transform: uppercase;
  margin-bottom: 0;
}

.ck-footer__tagline {
  font-family: var(--ckv-font-heading);
  font-size: 0.9375rem;
  font-style: italic;
  color: rgba(var(--ckv-cream-rgb), 0.4);
  line-height: 1.6;
  max-width: 260px;
  margin-top: 0.25rem;
}

.ck-footer__heading {
  font-family: var(--ckv-font-body);
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--ckv-rose);
  margin-bottom: 1.125rem;
}

/* --- Nabídka: two columns (4 + 3) --- */
.ck-footer__nav[aria-label="Nabídka"] .ck-footer__list {
  list-style: none;
  padding: 0;
  margin: 0;
  columns: 2;
  column-gap: 1.25rem;
}

/* --- Informace: single column, prevent breaks --- */
.ck-footer__nav[aria-label="Informace"] .ck-footer__list {
  list-style: none;
  padding: 0;
  margin: 0;
  columns: 1;
  column-count: 1 !important;
}

.ck-footer__list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.ck-footer__list li {
  break-inside: avoid;
}

.ck-footer__list li + li {
  margin-top: 0.4375rem;
}

.ck-footer__list a {
  font-family: var(--ckv-font-body);
  font-size: 0.8125rem;
  color: rgba(var(--ckv-cream-rgb), 0.55);
  text-decoration: none;
  transition: color 0.3s ease;
}

.ck-footer__list a:hover {
  color: var(--ckv-rose);
}

.ck-footer__contact p {
  font-family: var(--ckv-font-body);
  font-size: 0.8125rem;
  color: rgba(var(--ckv-cream-rgb), 0.55);
  margin-bottom: 0.4375rem;
  line-height: 1.5;
}
.ck-footer__contact a {
  color: rgba(var(--ckv-cream-rgb), 0.6);
  text-decoration: none;
  transition: color 0.25s ease;
}
.ck-footer__contact a:hover {
  color: var(--ckv-rose);
}

.ck-footer__social-icons {
  display: flex;
  gap: 0.625rem;
  margin-top: 1rem;
}

.ck-footer__social-icons a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid rgba(var(--ckv-cream-rgb), 0.15);
  background: transparent;
  color: rgba(var(--ckv-cream-rgb), 0.5);
  transition: border-color 0.3s ease, color 0.3s ease, background-color 0.3s ease, transform 0.3s ease;
}
.ck-footer__social-icons a svg { width: 15px; height: 15px; }

.ck-footer__social-icons a:hover {
  border-color: var(--ckv-rose);
  color: var(--ckv-cream);
  background-color: rgba(234, 194, 189, 0.1);
  transform: translateY(-1px);
}

.ck-footer__bottom {
  max-width: var(--ckv-container);
  margin: 3rem auto 0;
  padding: 1.125rem 0 1.25rem;
  border-top: 1px solid rgba(var(--ckv-cream-rgb), 0.06);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.ck-footer__bottom p {
  font-family: var(--ckv-font-body);
  font-size: 0.6875rem;
  color: rgba(var(--ckv-cream-rgb), 0.25);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin: 0;
}

.ck-footer__motto {
  font-family: var(--ckv-font-heading);
  font-style: italic;
  font-size: 0.8125rem;
  letter-spacing: 0.03em;
  color: rgba(var(--ckv-cream-rgb), 0.3);
  text-transform: none;
}

/* Právní odkazy v liště pod patičkou — místo ve sloupci Informace. */
.ck-footer__legal {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem 1.5rem;
}
.ck-footer__legal a {
  font-family: var(--ckv-font-body);
  font-size: 0.6875rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(var(--ckv-cream-rgb), 0.45);
  text-decoration: none;
  transition: color 0.25s ease;
}
.ck-footer__legal a:hover,
.ck-footer__legal a:focus-visible {
  color: var(--ckv-rose);
}

/* ==========================================================
   CHECKOUT — PI step = "Fakturační údaje" (visible),
   addresses step = hidden (auto-submitted by JS)
   ========================================================== */
/* Addresses step always hidden — JS auto-fills + auto-submits it */
#checkout-addresses-step {
  display: none !important;
}
/* PI step: hide the default step title (we set it via TPL block) */
#checkout-personal-information-step .step__title .page-title-section {
  font-family: var(--ckv-font-heading);
}
/* Hide id_gender if it somehow renders */
#checkout-personal-information-step [name="id_gender"] {
  display: none !important;
}
/* Hide ALL PS-generated checkboxes in step 1 (psgdpr, terms, VOP) — moved to payment step */
#checkout-personal-information-step .form-fields .form-group:has(input[type="checkbox"]),
#checkout-personal-information-step .form-fields > .form-group > .custom-checkbox,
#checkout-personal-information-step .form-fields > .form-group > span.custom-checkbox,
#checkout-personal-information-step .form-fields input[type="checkbox"],
#checkout-personal-information-step .form-fields label[for*="conditions"],
#checkout-personal-information-step .form-fields label[for*="gdpr"],
#checkout-personal-information-step .form-fields .custom-checkbox,
#checkout-personal-information-step .mb-3:has(#field-psgdpr),
#checkout-personal-information-step #field-psgdpr,
#checkout-personal-information-step label[for="field-psgdpr"] {
  display: none !important;
}
#checkout-personal-information-step .gdpr_consent,
#checkout-personal-information-step .gdpr_module_consent {
  display: none !important;
}
/* Hide PS form-informations hints under name fields */
#checkout-personal-information-step .form-informations,
#checkout-personal-information-step .form-control-comment:not(.ckv-addr-fields .form-control-comment) {
  display: none;
}
/* Custom address fields — full width, matching PS form fields */
.ckv-addr-fields {
  margin-top: 0.25rem;
}
.ckv-addr-fields .form-group {
  margin-bottom: 1rem;
}
.ckv-addr-fields .form-control {
  width: 100%;
}
/* Button — right-aligned */
#checkout-personal-information-step .buttons-wrapper--end {
  display: flex;
  justify-content: flex-end;
}

/* ==========================================================
   CHECKOUT — Summary sidebar (same design as cart)
   ========================================================== */
body.page-order .cart-summary .ckv-cart-items,
body.page-order .js-checkout-summary .ckv-cart-items {
  border-bottom: 1px solid rgba(var(--ckv-forest-rgb), 0.12);
  padding-bottom: 0.75rem;
  margin-bottom: 0.75rem;
}
body.page-order .cart-summary .cart-summary__line {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-family: var(--ckv-font-body);
  font-size: 0.875rem;
  color: var(--ckv-forest);
  padding: 0.3125rem 0;
}
body.page-order .cart-summary .cart-summary__label { font-weight: 400; }
body.page-order .cart-summary .cart-summary__value { font-weight: 600; }
body.page-order .cart-summary__total .cart-summary__line--bold {
  font-weight: 700;
  font-size: 1.0625rem;
  border-top: none;
  padding-top: 0;
  margin-top: 0;
}
body.page-order .cart-summary__total {
  border-top: 1px solid rgba(var(--ckv-forest-rgb), 0.15);
  padding-top: 0.625rem;
  margin-top: 0.25rem;
}
/* ==========================================================
   CHECKOUT — Shipping: ceremony info + delivery variants
   ========================================================== */
.ckv-ceremony-info {
  margin-bottom: 2rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid rgba(var(--ckv-forest-rgb), 0.1);
}
.ckv-ceremony-info__heading,
.ckv-shipping__heading {
  font-family: var(--ckv-font-heading);
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--ckv-forest);
  margin-bottom: 1rem;
  letter-spacing: 0.02em;
}
.ckv-shipping__heading {
  margin-top: 0.5rem;
}
.ckv-ceremony-info__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
.ckv-ceremony-info .form-group {
  margin-bottom: 1rem;
}
/* Shipping variants */
.ckv-shipping__option {
  border: 1px solid rgba(var(--ckv-forest-rgb), 0.12);
  border-radius: 4px;
  margin-bottom: 0.75rem;
  overflow: hidden;
  transition: border-color 0.2s ease;
}
.ckv-shipping__option:has(.ckv-shipping__radio:checked) {
  border-color: var(--ckv-forest);
}
.ckv-shipping__label {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.875rem 1rem;
  cursor: pointer;
  margin: 0;
}
.ckv-shipping__radio { flex-shrink: 0; }
.ckv-shipping__label-text { flex: 1; }
.ckv-shipping__name {
  display: block;
  font-family: var(--ckv-font-body);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ckv-forest);
}
.ckv-shipping__desc {
  display: block;
  font-size: 0.75rem;
  color: var(--ckv-olive);
  margin-top: 0.125rem;
}
.ckv-shipping__price {
  font-family: var(--ckv-font-body);
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--ckv-forest);
  white-space: nowrap;
  flex-shrink: 0;
}
.ckv-shipping__detail {
  padding: 0 1rem 1rem 2.75rem;
}
.ckv-shipping__detail .form-group { margin-bottom: 0.75rem; }
.ckv-shipping__calc {
  font-size: 0.8125rem;
  color: var(--ckv-olive);
  padding: 0.5rem 0;
}
.ckv-shipping__blocked {
  background: var(--ckv-blush);
  border: 1px solid var(--ckv-rose);
  border-radius: 4px;
  padding: 1rem;
  font-size: 0.8125rem;
  color: var(--ckv-forest);
  margin-top: 0.5rem;
}
.ckv-shipping__blocked p { margin: 0 0 0.5rem; }
.ckv-shipping__blocked-options {
  list-style: none;
  padding: 0;
  margin: 0.5rem 0 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.ckv-shipping__blocked-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--ckv-forest);
  font-weight: 600;
  text-decoration: none;
  font-size: 0.875rem;
}
.ckv-shipping__blocked-link:hover { color: var(--ckv-rose-dusty); }
.ckv-shipping__blocked-hours {
  font-size: 0.75rem;
  color: var(--ckv-olive);
  margin-left: 1.5rem;
}
.ckv-shipping__other-address { display: flex; flex-direction: column; gap: 0.75rem; }
.ckv-shipping__other-address .form-group { margin: 0; }
.ckv-shipping__other-row {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 0.75rem;
}
@media (max-width: 767px) {
  .ckv-ceremony-info__row,
  .ckv-shipping__other-row { grid-template-columns: 1fr; }
  .ckv-shipping__detail { padding-left: 1rem; }
}

/* GDPR consent checkbox in address form */
.ckv-gdpr-field {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--ckv-border);
}
.ckv-gdpr-field .form-check-label {
  font-size: 0.8125rem;
  color: var(--ckv-forest);
  line-height: 1.4;
}

/* ==========================================================
   CHECKOUT — "Nakoupit na IČO" dropdown + ARES
   ========================================================== */
.ckv-ico-toggle {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  background: var(--ckv-cream);
  border: 1px solid var(--ckv-rose);
  border-radius: 4px;
  padding: 0.6rem 1.15rem;
  margin: 0.75rem 0 0.25rem;
  font-family: var(--ckv-font-body);
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: var(--ckv-forest);
  cursor: pointer;
  transition: background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}
.ckv-ico-toggle:hover {
  background-color: var(--ckv-blush);
  border-color: var(--ckv-rose);
  box-shadow: 0 1px 4px rgba(var(--ckv-forest-rgb), 0.08);
}
.ckv-ico-toggle.is-open {
  background-color: var(--ckv-blush);
  border-color: var(--ckv-forest);
  box-shadow: 0 1px 4px rgba(var(--ckv-forest-rgb), 0.1);
}
.ckv-ico-toggle svg {
  flex-shrink: 0;
  opacity: 0.7;
}

.ckv-ico-container {
  border-left: 2px solid rgba(var(--ckv-forest-rgb), 0.1);
  margin-left: 0.5rem;
  padding: 0.75rem 0 0.5rem 1rem;
}

.ckv-ares-row {
  margin-bottom: 0.75rem;
}
.ckv-ares-label {
  display: block;
  font-family: var(--ckv-font-body);
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--ckv-forest);
  margin-bottom: 0.25rem;
}
.ckv-ares-field {
  display: flex;
  gap: 0.5rem;
}
.ckv-ares-ico-input {
  flex: 1;
  padding: 0.5rem 0.75rem;
  border: 1px solid rgba(var(--ckv-forest-rgb), 0.2);
  border-radius: 4px;
  font-family: var(--ckv-font-body);
  font-size: 0.875rem;
  color: var(--ckv-forest);
  transition: border-color 0.25s ease;
}
.ckv-ares-ico-input:focus {
  outline: none;
  border-color: var(--ckv-forest);
}
.ckv-ares-btn {
  padding: 0.5rem 1rem;
  background-color: var(--ckv-forest);
  color: var(--ckv-cream);
  border: none;
  border-radius: 4px;
  font-family: var(--ckv-font-body);
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity 0.25s ease;
}
.ckv-ares-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.ckv-ares-btn:not(:disabled):hover {
  background-color: #4a5a45;
}

.ckv-ares-status {
  font-family: var(--ckv-font-body);
  font-size: 0.75rem;
  margin-top: 0.375rem;
  min-height: 1rem;
}
.ckv-ares-status--ok {
  color: var(--ckv-success);
}
.ckv-ares-status--err {
  color: var(--ckv-danger);
}

/* ==========================================================
   ANIMATIONS
   ========================================================== */
@keyframes ck-fade-up {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes ck-fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

body.page-index .product-miniature {
  animation: ck-fade-up 0.6s var(--ckv-ease-out) both;
}

body.page-index .product-miniature:nth-child(1) { animation-delay: 0s; }
body.page-index .product-miniature:nth-child(2) { animation-delay: 0.08s; }
body.page-index .product-miniature:nth-child(3) { animation-delay: 0.08s; }
body.page-index .product-miniature:nth-child(4) { animation-delay: 0.24s; }
body.page-index .product-miniature:nth-child(5) { animation-delay: 0.32s; }
body.page-index .product-miniature:nth-child(6) { animation-delay: 0.4s; }
body.page-index .product-miniature:nth-child(7) { animation-delay: 0.48s; }
body.page-index .product-miniature:nth-child(8) { animation-delay: 0.56s; }

.featured-products h2,
.new-products h2,
.products-section-title {
  animation: ck-fade-up 0.5s var(--ckv-ease-out) both;
}

/* ==========================================================
   REDUCED MOTION
   ========================================================== */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* ==========================================================
   RESPONSIVE
   ========================================================== */
@media (max-width: 991px) {
  h1, .h1 { font-size: 1.75rem; }
  h2, .h2 { font-size: 1.375rem; }

  /* výšku řeší 100svh v základním pravidle */
  .ck-hero__overlay {
    padding: 3.5rem var(--ckv-gutter);
  }

  .ck-hero__categories {
    margin-top: 2.25rem;
    padding-top: 1.5rem;
  }

  .ck-hero__title {
    font-size: 1.5rem;
  }

  .ck-hero__desc {
    font-size: 0.8125rem;
    margin-bottom: 1rem;
  }

  .ck-product-card {
    flex: 0 0 calc(33.333% - 1rem);
  }

  .ck-footer__inner {
    grid-template-columns: 1fr 1fr;
    gap: 2.5rem;
  }

  .ck-section {
    padding: 4rem var(--ckv-gutter);
  }
  .ck-section--products {
    padding: 2rem 0 0 !important;
    background-color: var(--ckv-white) !important;
  }
}

@media (max-width: 767px) {
  body {
    font-size: 14px;
  }

  :root {
    --ckv-gutter: 1.25rem;
  }

  h1, .h1 { font-size: 1.375rem; }

  /* výšku řeší 100svh v základním pravidle */
  .ck-hero__overlay {
    padding: 2.75rem var(--ckv-gutter);
    max-width: 100%;
  }

  .ck-hero__categories {
    margin-top: 2rem;
    padding-top: 1.25rem;
  }

  .ck-hero__eyebrow {
    font-size: 0.5625rem;
    margin-bottom: 0.375rem;
  }

  .ck-hero__title {
    font-size: 1.375rem;
    margin-bottom: 0.5rem;
  }

  .ck-hero__desc {
    font-size: 0.8125rem;
    line-height: 1.5;
    margin-bottom: 0.875rem;
    max-width: 100%;
  }

  .ck-hero__actions {
    gap: 0.625rem;
  }

  .ck-hero__btn {
    padding: 0.5rem 1.1rem;
    font-size: 0.625rem;
    letter-spacing: 0.08em;
  }

  .ck-product-card {
    flex: none !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .ck-products-carousel__btn {
    display: none;
  }

  .ck-footer {
    padding: 2rem 1rem 0;
  }

  .ck-footer__brand {
    grid-column: 1 / -1;
    text-align: center;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid rgba(var(--ckv-cream-rgb), 0.08);
  }

  .ck-footer__brand-logo { justify-content: center; gap: 0.5rem; }
  .ck-footer__brand-logo img { width: 28px; height: 28px; }

  .ck-footer__name { font-size: 0.875rem; }

  .ck-footer__tagline {
    margin: 0 auto;
    font-size: 0.6875rem;
    line-height: 1.4;
  }

  /* Accordion nav */
  .ck-footer__inner {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .ck-footer__accordion {
    border-top: 1px solid rgba(var(--ckv-cream-rgb), 0.1);
    margin-top: 0;
  }
  .ck-footer__toggle {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.6rem 0;
    font-family: var(--ckv-font-body);
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(var(--ckv-cream-rgb), 0.5);
    margin-bottom: 0;
  }
  .ck-footer__toggle-icon {
    font-size: 1rem;
    font-weight: 300;
    line-height: 1;
    transition: transform 0.25s ease;
    color: rgba(var(--ckv-cream-rgb), 0.4);
  }
  .ck-footer__toggle[aria-expanded="true"] .ck-footer__toggle-icon {
    transform: rotate(45deg);
  }
  .ck-footer__collapsible {
    overflow: hidden;
    max-height: 300px;
    transition: max-height 0.3s ease;
    padding-bottom: 0.75rem;
  }
  .ck-footer__collapsible.is-collapsed {
    max-height: 0;
    padding-bottom: 0;
    visibility: hidden;
  }
  .ck-footer__heading { margin-bottom: 0.375rem; font-size: 0.5625rem; }
  .ck-footer__nav[aria-label="Nabídka"] .ck-footer__list,
  .ck-footer__nav[aria-label="Informace"] .ck-footer__list,
  .ck-footer__list { columns: 1; }
  .ck-footer__list a { font-size: 0.75rem; }
  .ck-footer__list li + li { margin-top: 0.375rem; }
  .ck-footer__contact {
    grid-column: 1 / -1;
    text-align: center;
    border-top: 1px solid rgba(var(--ckv-cream-rgb), 0.08);
    padding-top: 0.75rem;
  }
  .ck-footer__contact p { font-size: 0.75rem; margin-bottom: 0.25rem; }

  .ck-footer__social-icons {
    justify-content: center;
    margin-top: 0.5rem;
  }
  .ck-footer__social-icons a { width: 32px; height: 32px; }

  .ck-footer__bottom {
    flex-direction: column;
    gap: 0.5rem;
    text-align: center;
    margin-top: 1rem;
    padding: 0.75rem 0;
  }
  .ck-footer__bottom p { font-size: 0.625rem; }
  .ck-footer__legal a { font-size: 0.625rem; padding: 0.25rem 0; }

  .ck-section {
    padding: 3rem var(--ckv-gutter);
  }
  .ck-section--products {
    padding: 1.5rem 0 0 !important;
    background-color: var(--ckv-white) !important;
  }

  .ck-heading {
    font-size: 1.5rem;
  }

  .btn-primary,
  .btn-secondary {
    padding: 0.75rem 1.5rem;
    font-size: 0.6875rem;
  }
}

/* ==========================================================
   CATALOG PAGES — Category listing + Product detail
   ========================================================== */

/* Hide sidebars on pages without filters (homepage etc.). Vyhledávání má
   sloupec s filtry stejně jako kategorie (#176/#178) — dřív ho tohle
   pravidlo schovalo, ačkoli ps_facetedsearch filtry vykreslil. */
body:not(#category):not(#search) #left-column,
body:not(#category):not(#search) #right-column { display: none !important; }
body:not(#category):not(#search) #center-column.center-column { max-width: 100% !important; flex: 0 0 100% !important; width: 100% !important; }

/* Force products visible on category + search pages (faceted search JS hides it) */
#category #products,
#search #products { display: block !important; }
.columns-container .row { --bs-gutter-x: 0; }
#wrapper.wrapper { background: var(--ckv-white); min-height: 0; padding: 0; }
body.page-index #wrapper.wrapper { padding: 0 !important; }
body.page-index .columns-container .row { margin: 0 !important; }
body.page-index #content { padding-bottom: 0 !important; margin-bottom: 0 !important; }
body.page-index .page-content--home { padding-bottom: 0 !important; margin-bottom: 0 !important; gap: 0 !important; }
body.page-index .ck-main { padding-bottom: 0 !important; }
body.page-index .ck-section--intro { margin-bottom: 0 !important; }
body.page-index .ck-footer { margin-top: 0 !important; }

/* Category header */
.category__header { background: var(--ckv-forest); color: var(--ckv-cream); padding: 3rem var(--ckv-gutter); text-align: center; }
.page-title-section h1, .category__header h1, .page-title-section .h1 { font-family: var(--ckv-font-heading); font-size: clamp(1.75rem, 4vw, 3rem); font-weight: 300; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ckv-cream); margin-bottom: 1rem; }
.category__description { max-width: 680px; margin: 0 auto 1.5rem; font-family: var(--ckv-font-body); font-size: 1rem; line-height: 1.7; color: rgba(var(--ckv-cream-rgb), 0.85); }
.category__description p { color: rgba(var(--ckv-cream-rgb), 0.85); }
.category__cover { max-height: 320px; overflow: hidden; border-radius: 0.5rem; margin-top: 2rem; }
.category__cover-image { width: 100%; height: 320px; object-fit: cover; }

/* Product grid */
#js-product-list .products, .products { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.5rem; padding: 2rem var(--ckv-gutter); max-width: 1200px; margin: 0 auto; list-style: none; }
/* ── Produktová miniatura: celá fotka, bez ořezu a zoomu (#104) ──────────
 *
 * Proč to dřív ořezávalo (a proč `object-fit: contain` z PR #76 nepomohl):
 *
 * PrestaShop náhledy NEOŘEZÁVÁ — ImageManager::resize() vejde fotku celou do
 * cílového rámečku a zbytek dopadne (bílou u JPG, průhlednou u PNG). Všechny
 * formáty v config/theme.yml jsou čtvercové (default_sm 216, default_md 261,
 * default_lg 336), takže vygenerovaný soubor je VŽDY čtverec. Ořez tedy
 * nevznikal v souboru, ale tady v CSS:
 *
 *   1. .thumbnail-container měl vynucený aspect-ratio 4/3 + overflow: hidden
 *   2. `height: 100%` na <img> se ale nikdy neuplatnilo — mezi kontejnerem
 *      a obrázkem stojí <a class="…__image-link"> a <picture>, oba s výškou
 *      auto, takže procentní výška nemá k čemu se vztáhnout a spadne na auto
 *   3. obrázek se tedy vykreslil ve svém přirozeném poměru (čtverec), byl
 *      vyšší než 4/3 rámeček a spodek se uřízl
 *   4. `object-fit` je v takové situaci mrtvý zápis — nemá co dopočítávat,
 *      když má box přirozený poměr obrázku
 *
 * Oprava: rámeček na 1/1 (shodně s vygenerovanými čtvercovými náhledy) a
 * dopojení výškového řetězu přes <a> i <picture>, aby object-fit reálně
 * fungoval. Čtverec v čtverci = fotka celá, bez ořezu i bez bílých pruhů.
 */
.product-miniature .thumbnail-container,
.product-miniature__image-container { aspect-ratio: 1 / 1; overflow: hidden; background: var(--ckv-white); }

/* Bez těchhle dvou řádků je `height: 100%` na <img> k ničemu — viz bod 2 výš. */
.product-miniature__image-link,
.product-miniature .thumbnail-container picture { display: block; width: 100%; height: 100%; }

.product-miniature .thumbnail-container img,
.product-miniature__image { width: 100%; height: 100%; object-fit: contain; transition: transform 0.5s var(--ckv-ease); }

/* Hummingbird dává na hoveru `transform: scale(1.1)` uvnitř overflow: hidden —
 * to je ten "zoom" z #104. Ruší se pro obě varianty markupu; parent pravidlo
 * je v @media (hover: hover), proto !important. */
.product-miniature:hover .thumbnail-container img,
.product-miniature__inner:hover .product-miniature__image,
.product-miniature__inner:has(*:focus-visible) .product-miniature__image { transform: none !important; }

/* Sjednocení pozadí fotek (#104, #214): část fotek jsou JPG na bílé, novější
   jsou PNG s průhledným pozadím. Na bílé kartě vypadají stejně, ale všude,
   kde má podklad fotky krémovou (doporučené na detailu, „Doporučené produkty"
   v košíku), JPG ukáže bílý čtverec a PNG splyne. multiply bílou JPG
   „přimíchá" do podkladu (bílá × krémová = krémová), fotka sama zůstává;
   na bílém podkladu nemění nic. */
.product-miniature__image,
.product-miniature .thumbnail-container img,
.ck-product-card__image img,
body.page-product .ps-categoryproducts .product-miniature__image-link img,
body.page-product .ps-viewedproduct .product-miniature__image-link img,
.ck-cart-similar__products .product-miniature img {
  mix-blend-mode: multiply;
}
.product-miniature .product-title a { font-family: var(--ckv-font-heading); font-size: 1.0625rem; font-weight: 600; text-transform: uppercase; color: var(--ckv-forest); text-decoration: none; letter-spacing: 0.02em; display: block; margin-bottom: 0.5rem; }
.product-miniature .product-title a:hover { color: var(--ckv-rose-dusty); }
.product-miniature .price { font-family: var(--ckv-font-body); font-size: 1rem; font-weight: 700; color: var(--ckv-forest); margin-top: auto; }
#js-product-list-top { max-width: 1200px; margin: 1rem auto 0; padding: 0 var(--ckv-gutter); font-family: var(--ckv-font-body); font-size: 0.875rem; color: var(--ckv-forest); }

/* Product detail */
.product__container.product-container { max-width: 1100px; margin: 2rem auto; padding: 0 var(--ckv-gutter); }
.product__description-short { font-family: var(--ckv-font-body); font-size: 0.9375rem; line-height: 1.7; color: var(--ckv-forest); opacity: 0.85; margin-bottom: 1.5rem; }
.product__price .price { font-family: var(--ckv-font-body); font-size: 1.75rem; font-weight: 700; color: var(--ckv-forest); }

/* Mobile catalog */
@media (max-width: 991px) {
  #js-product-list .products, .products { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1rem; padding: 1rem var(--ckv-gutter); }
  .category__header { padding: 2rem var(--ckv-gutter); }
}
@media (max-width: 575px) {
  #js-product-list .products, .products { grid-template-columns: 1fr 1fr; gap: 0.75rem; }
  .product-miniature .product-title a { font-size: 0.9375rem; }
}

/* ==========================================================
   CATEGORY PAGE — Professional layout
   ========================================================== */

/* Custom header — centered, elegant */
.ck-category-header {
  text-align: center;
  padding: 2.5rem var(--ckv-gutter) 1rem;
}
.ck-category-header .ck-eyebrow { margin-bottom: 0.5rem; }
.ck-category-header .ck-heading { margin-bottom: 0.25rem; }
.ck-category-subtitle {
  font-family: var(--ckv-font-body);
  font-size: 0.9375rem;
  line-height: 1.6;
  color: rgba(var(--ckv-forest-rgb), 0.65);
  max-width: 36rem;
  margin: 0.5rem auto 0;
}

/* Hide "Nové" flag */
:is(#category, #search) .product-flags .badge.new { display: none !important; }

/* Hide "Počet produktů" counter + items shown */
:is(#category, #search) .products__count { display: none; }
:is(#category, #search) .pagination__number { display: none; }

/* ── Category footer — detailed description below products ── */
.ck-category-footer {
  margin: 2.5rem 0 1rem;
  padding: 2.5rem 0;
  border-top: 1px solid rgba(var(--ckv-forest-rgb), 0.08);
}
.ck-category-footer__inner {
  max-width: 42rem;
}
.ck-category-footer .ck-eyebrow {
  margin-bottom: 1rem;
}
.ck-category-footer__text {
  font-family: var(--ckv-font-body);
  font-size: 0.9375rem;
  line-height: 1.75;
  color: var(--ckv-forest);
}
.ck-category-footer__text p {
  margin-bottom: 1rem;
}
.ck-category-footer__text p:last-child {
  margin-bottom: 0;
}
.ck-category-footer__text .ck-cat-disclaimer {
  font-size: 0.8125rem;
  font-style: italic;
  color: rgba(var(--ckv-forest-rgb), 0.5);
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(var(--ckv-forest-rgb), 0.06);
}

/* ── Sidebar — category tree as direct subcategory nav ──
   :is(#category, #search): stejný sloupec s filtry má i stránka vyhledávání. */
:is(#category, #search) #left-column {
  padding-top: 0.5rem;
}

/* Hide "Domů" title */
:is(#category, #search) .ps-categorytree .left-block__title { display: none; }

/* Expand subcategories by default, hide collapse mechanics */
:is(#category, #search) .ps-categorytree .accordion-collapse { display: block !important; }
:is(#category, #search) .ps-categorytree .accordion-button { display: none; }

/* Hide parent "Smuteční květiny" link — show only children */
:is(#category, #search) .ps-categorytree .category-tree__list[data-depth="0"] > .category-tree__item > .category-tree__item-header > .category-tree__item-link {
  display: none;
}

/* Style subcategory links as clean nav items */
:is(#category, #search) .ps-categorytree .category-tree__list[data-depth="1"] {
  list-style: none;
  padding: 0;
  margin: 0;
}
:is(#category, #search) .ps-categorytree .category-tree__list[data-depth="1"] .category-tree__item-link {
  display: block;
  font-family: var(--ckv-font-body);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ckv-forest);
  text-decoration: none;
  padding: 0.625rem 0;
  border-bottom: 1px solid rgba(var(--ckv-forest-rgb), 0.08);
  transition: color var(--ckv-duration) var(--ckv-ease), padding-left var(--ckv-duration) var(--ckv-ease);
}
:is(#category, #search) .ps-categorytree .category-tree__list[data-depth="1"] .category-tree__item-link:hover {
  color: var(--ckv-rose-dusty);
  padding-left: 0.5rem;
}
:is(#category, #search) .ps-categorytree .category-tree__list[data-depth="1"] .category-tree__item:last-child .category-tree__item-link {
  border-bottom: none;
}

/* Category tree hidden on desktop — categories are in PS faceted search checkboxes */
:is(#category, #search) #left-column .ps-categorytree {
  display: none !important;
}

/* Dimmed facet items (0 results after filtering) */
.ck-facet-dimmed {
  opacity: 0.4;
  pointer-events: none;
}

/* No products message */
.ck-no-products {
  text-align: center;
  padding: 3rem 1rem;
}
.ck-no-products__text {
  font-family: var(--ckv-font-body);
  font-size: 0.95rem;
  color: var(--ckv-forest);
  opacity: 0.7;
}

/* ── Faceted search filters styling ── */
:is(#category, #search) .search-filters {
  margin-top: 0;
}
:is(#category, #search) .search-filters > p {
  font-family: var(--ckv-font-heading);
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--ckv-forest);
  letter-spacing: 0.03em;
  margin-bottom: 0.75rem;
}
:is(#category, #search) .accordion-item {
  border-color: rgba(var(--ckv-forest-rgb), 0.08);
  background: transparent;
}
:is(#category, #search) .accordion-button {
  font-family: var(--ckv-font-body);
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--ckv-forest);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.75rem 0;
  background: transparent;
  box-shadow: none;
}
:is(#category, #search) .accordion-button:not(.collapsed) {
  color: var(--ckv-forest);
}
:is(#category, #search) .accordion-body {
  padding: 0 0 0.75rem;
}
:is(#category, #search) .search-filters__item {
  font-family: var(--ckv-font-body);
  font-size: 0.8125rem;
  color: var(--ckv-forest);
}
:is(#category, #search) .search-filters__magnitude {
  color: rgba(var(--ckv-forest-rgb), 0.45);
  font-size: 0.75rem;
}
/* Hodnota z celé nabídky, která v aktuálním výběru není (modul ckv_filters):
   tlumeně, ale dál zaškrtnutelná jako ostatní. */
:is(#category, #search) .ckv-facet-zero .search-filters__form-label,
:is(#category, #search) .ckv-facet-zero .search-filters__link {
  color: rgba(var(--ckv-forest-rgb), 0.5);
}

/* ── Product grid — professional layout ── */
#category #content-wrapper {
  padding-top: 0;
}
:is(#category, #search) .layout-left-column .products {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
  padding: 0.5rem 0 2rem;
}
@media (min-width: 1400px) {
  :is(#category, #search) .layout-left-column .products {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* Product card refinement — NOT scoped to #category: this same
   .product-miniature markup is reused on the cart page cross-sell
   ("Doporučené produkty"), product detail related products, and
   search results. Scoping this to #category only left those other
   places with unstyled default Hummingbird spacing (price/quantity
   stepper visually overlapping). */
.product-miniature {
  display: flex;
  flex-direction: column;
  text-align: center;
  padding: 0;
  margin-bottom: 2rem;
  background: var(--ckv-white);
  border: none !important;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.product-miniature:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(var(--ckv-forest-rgb), 0.10);
}

/* Product title */
.product-miniature__title {
  font-family: var(--ckv-font-heading);
  font-size: 1rem;
  font-weight: 600;
  color: var(--ckv-forest);
  text-decoration: none;
  line-height: 1.3;
}
.product-miniature__title:hover {
  color: var(--ckv-rose-dusty);
}

/* Price */
.product-miniature__price {
  font-family: var(--ckv-font-body);
  font-weight: 700;
  color: var(--ckv-forest);
  font-size: 1rem;
}

/* Hide reviews (no data) */
.product-list-review { display: none; }

/* Add-to-cart button — show text, branded style */
.product-miniature__add {
  flex: 1;
  min-width: 0;
  height: 1.75rem;
  padding: 0 0.5rem !important;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  background: var(--ckv-forest) !important;
  border-color: var(--ckv-forest) !important;
  border-radius: 6px !important;
  color: var(--ckv-white) !important;
  font-size: 0.625rem !important;
}
.product-miniature__add:hover {
  background: var(--ckv-rose-dusty) !important;
  border-color: var(--ckv-rose-dusty) !important;
}
.product-miniature__add .material-icons {
  font-size: 0.875rem;
}
.product-miniature__add-text {
  display: inline !important;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* Quantity stepper — compact inline row */
.quantity-button__group {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  flex-shrink: 0;
  width: auto;
}
.quantity-button__group .btn {
  border-color: rgba(var(--ckv-forest-rgb), 0.15);
  color: var(--ckv-forest);
  width: 1.75rem;
  height: 1.75rem;
  padding: 0;
  font-size: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.quantity-button__group .form-control {
  border-color: rgba(var(--ckv-forest-rgb), 0.15);
  color: var(--ckv-forest);
  font-family: var(--ckv-font-body);
  width: 2rem;
  height: 1.75rem;
  padding: 0;
  text-align: center;
  font-size: 0.75rem;
}
/* Quick view — hide the floating eye icon on product cards */
.product-miniature__quickview-touch {
  display: none !important;
}
/* Hide ribbon color swatches on product cards everywhere */
.product-miniature__variants {
  display: none !important;
}
.product-miniature__quickview-button {
  font-family: var(--ckv-font-body);
  font-size: 0.75rem;
}

/* Sort bar — compact, right-aligned */
:is(#category, #search) .products__selection {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding: 0.25rem 0 0.75rem;
  border-bottom: 1px solid rgba(var(--ckv-forest-rgb), 0.06);
  margin-bottom: 0.5rem;
}
:is(#category, #search) .products__sort {
  display: flex;
  align-items: center;
  gap: 0.375rem;
}
:is(#category, #search) .products__sort-label {
  font-family: var(--ckv-font-body);
  font-size: 0.75rem;
  color: rgba(var(--ckv-forest-rgb), 0.55);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
:is(#category, #search) .products__sort-dropdown .btn {
  font-family: var(--ckv-font-body);
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--ckv-forest);
  border-color: rgba(var(--ckv-forest-rgb), 0.12);
  border-radius: 5px;
  padding: 0.3rem 0.75rem;
  line-height: 1.4;
}
:is(#category, #search) .products__sort-dropdown .dropdown-menu {
  border-radius: 8px;
  box-shadow: 0 4px 16px rgba(var(--ckv-forest-rgb), 0.12);
  border-color: rgba(var(--ckv-forest-rgb), 0.08);
  padding: 0.25rem 0;
  min-width: 10rem;
}
:is(#category, #search) .products__sort-dropdown .dropdown-item {
  font-family: var(--ckv-font-body);
  font-size: 0.8125rem;
  color: var(--ckv-forest);
  padding: 0.45rem 1rem;
}
:is(#category, #search) .products__sort-dropdown .dropdown-item:hover {
  background: var(--ckv-cream);
  color: var(--ckv-forest);
}
/* Hide irrelevant sort options (Kód, Prodej) */
:is(#category, #search) .products__sort-dropdown .dropdown-item[href*="reference"] { display: none; }
:is(#category, #search) .products__sort-dropdown .dropdown-item[href*="sales"] { display: none; }

/* Pagination styling */
:is(#category, #search) .pagination {
  padding: 1.5rem 0;
}
:is(#category, #search) .page-link {
  font-family: var(--ckv-font-body);
  color: var(--ckv-forest);
  border-color: rgba(var(--ckv-forest-rgb), 0.15);
}
:is(#category, #search) .page-item.active .page-link {
  background: var(--ckv-forest);
  border-color: var(--ckv-forest);
  color: var(--ckv-white);
}

/* ── Mobile category adjustments ── */
@media (max-width: 991px) {
  :is(#category, #search) .layout-left-column .products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    padding-left: var(--ckv-gutter);
    padding-right: var(--ckv-gutter);
  }
  .ck-category-header {
    padding: 1.5rem var(--ckv-gutter) 0.75rem;
  }
}
@media (max-width: 575px) {
  :is(#category, #search) .layout-left-column .products {
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
  }
}

/* =================================================================
   MOBILE FILTER DRAWER - category page
   Hummingbird Bootstrap offcanvas-start, branded for kvetiny-kaplan
   ================================================================= */

/* ==========================================================
   COLLAPSIBLE DESKTOP FILTER SIDEBAR (issue #7)
   ========================================================== */

/* Collapsible sidebar toggle removed — sidebar always visible */

/* --- Trigger button --- */
#search_filter_toggler {
  border-radius: 0 !important;
  font-family: var(--ckv-font-body) !important;
  font-size: 0.6875rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
}
@media (min-width: 992px) {
  #search_filter_toggler { display: none !important; }
}
@media (max-width: 991px) {
  #search_filter_toggler {
    background: var(--ckv-forest) !important;
    border-color: var(--ckv-forest) !important;
    color: var(--ckv-cream) !important;
    padding: 0.4375rem 0.875rem !important;
    display: inline-flex !important;
    align-items: center;
    gap: 0.3125rem;
  }
  #search_filter_toggler .material-icons { font-size: 1rem; }
  :is(#category, #search) #left-column {
    position: absolute !important;
    width: 0 !important;
    height: 0 !important;
    overflow: visible !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
  }
  :is(#category, #search) #left-column > *:not(#offcanvas-faceted) {
    display: none !important;
  }
}

/* Active-filter badge */
.ck-filter-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 16px;
  height: 16px;
  border-radius: 8px;
  background: var(--ckv-rose);
  color: var(--ckv-forest);
  font-size: 0.4375rem;
  font-weight: 700;
  padding: 0 4px;
}

/* --- Offcanvas drawer --- */
#offcanvas-faceted {
  width: min(300px, 88vw) !important;
  box-shadow: 6px 0 40px rgba(var(--ckv-forest-rgb), 0.15) !important;
  border-right: none !important;
}
#offcanvas-faceted .offcanvas-header {
  background: var(--ckv-forest) !important;
  padding: 1.125rem 1.25rem !important;
  border-bottom: none !important;
  align-items: center;
}
#offcanvas-faceted .offcanvas-title {
  font-family: var(--ckv-font-heading) !important;
  font-size: 1.1875rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.06em !important;
  color: var(--ckv-cream) !important;
  margin: 0 !important;
}
#offcanvas-faceted .btn-close {
  filter: invert(1) opacity(0.7) !important;
}
#offcanvas-faceted .offcanvas-body {
  padding: 1.25rem 1.25rem 2rem !important;
  overflow-y: auto;
}

/* --- Category section inside offcanvas --- */
.ck-mob-cats {
  margin-bottom: 1.375rem;
  padding-bottom: 1.375rem;
  border-bottom: 1px solid rgba(var(--ckv-forest-rgb), 0.1);
}
.ck-mob-cats__heading {
  font-family: var(--ckv-font-body);
  font-size: 0.4375rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(var(--ckv-forest-rgb), 0.38);
  margin-bottom: 0.5rem;
}
.ck-mob-cats .ps-categorytree { margin: 0; padding: 0; border: none; }
.ck-mob-cats .left-block__title { display: none; }
.ck-mob-cats .accordion { --bs-accordion-border-color: transparent; }
.ck-mob-cats .accordion-collapse { display: block !important; }
.ck-mob-cats .accordion-button { display: none !important; }
.ck-mob-cats .category-tree__list { list-style: none; padding: 0; margin: 0; }
.ck-mob-cats .category-tree__list[data-depth="0"] > .category-tree__item > .category-tree__item-header > .category-tree__item-link {
  display: none;
}
.ck-mob-cats .category-tree__item-link {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--ckv-font-body);
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--ckv-forest);
  text-decoration: none;
  padding: 0.625rem 0;
  border-bottom: 1px solid var(--ckv-forest-tint);
  transition: color 0.15s ease, padding-left 0.15s ease;
}
.ck-mob-cats .category-tree__item-link::before {
  content: '';
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--ckv-rose);
  flex-shrink: 0;
  opacity: 0;
  transition: opacity 0.15s ease;
}
.ck-mob-cats .category-tree__item-link:hover { color: var(--ckv-rose-dusty); padding-left: 0.25rem; }
.ck-mob-cats .category-tree__item-link:hover::before { opacity: 1; }
.ck-mob-cats .category-tree__item:last-child .category-tree__item-link { border-bottom: none; }

/* --- Facet filters inside offcanvas --- */
#offcanvas-faceted .left-block__title { display: none; }
#offcanvas-faceted .accordion-button {
  font-family: var(--ckv-font-body) !important;
  font-size: 0.8125rem !important;
  font-weight: 700 !important;
  color: var(--ckv-forest) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  background: none !important;
  box-shadow: none !important;
  padding: 0.75rem 0 !important;
}
#offcanvas-faceted .accordion-item { border-color: rgba(var(--ckv-forest-rgb), 0.08) !important; background: transparent !important; }
#offcanvas-faceted .accordion-body { padding: 0 0 0.75rem !important; }

/* ==========================================================
   GLOBAL BREADCRUMB — brand colors, no blue links
   ========================================================== */
.breadcrumb { font-family: var(--ckv-font-body); font-size: 0.75rem; background: none; padding: 0.75rem var(--ckv-gutter); margin-bottom: 0; text-transform: uppercase; letter-spacing: 0.03em; }
.breadcrumb-item a { color: var(--ckv-olive); text-decoration: none; }
.breadcrumb-item a:hover { color: var(--ckv-rose-dusty); }
.breadcrumb-item.active, .breadcrumb-item.active a { color: var(--ckv-forest); }
.breadcrumb-item + .breadcrumb-item::before { color: var(--ckv-olive); opacity: 0.4; }

/* ==========================================================
   PRODUCT DETAIL PAGE  (body.page-product)
   ========================================================== */

/* Wrapper */
body.page-product #wrapper.wrapper { background: var(--ckv-white); }

/* Main container — full width hero layout */
body.page-product .product__container {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  align-items: start;
  max-width: 100%;
  margin: 0 auto;
  padding: 0 0 3rem;
}

/* LEFT — gallery */
body.page-product .product__left {
  position: sticky;
  top: calc(var(--ckv-nav-height) + 1rem);
  background: var(--ckv-white);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
body.page-product .product__carousel { border: none; border-radius: 0; flex: 1; overflow: hidden; }
body.page-product .product__carousel .carousel-inner { height: 100%; }
body.page-product .product__carousel .carousel-item {
  background: transparent;
  min-height: 420px;
}
body.page-product .product__carousel .carousel-item img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  cursor: zoom-in; /* lightbox, viz sekce CKV Lightbox */
  object-position: center center;
  padding: 1.5rem;
  transform: none; /* CKV: bylo scale(1.65) – přibližovalo fotku, Tom chce originál */
  transform-origin: center center;
}
body.page-product .product__zoom { display: none !important; }
body.page-product .product__thumbnails { padding: 0.75rem 1.5rem 1rem; background: var(--ckv-white); }
body.page-product .product__thumbnails-list { display: flex; gap: 0.5rem; flex-wrap: wrap; padding: 0; margin: 0; }
body.page-product .product__thumbnail {
  width: 56px; height: 56px;
  border: 1.5px solid rgba(var(--ckv-forest-rgb), 0.12);
  background: var(--ckv-white);
  border-radius: 0;
  overflow: hidden;
  transition: border-color var(--ckv-duration) var(--ckv-ease);
}
body.page-product .product__thumbnail.active,
body.page-product .product__thumbnail:hover { border-color: var(--ckv-forest); }
body.page-product .product__thumbnail-image { width: 100%; height: 100%; object-fit: contain; border-radius: 0 !important; }
body.page-product .carousel-control-prev,
body.page-product .carousel-control-next {
  width: 36px;
  height: 36px;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(var(--ckv-white-rgb), 0.85);
  border: 1px solid rgba(var(--ckv-forest-rgb), 0.15);
  border-radius: 0;
  opacity: 0;
  transition: opacity 0.25s, background 0.25s, border-color 0.25s;
}
body.page-product .product__carousel:hover .carousel-control-prev,
body.page-product .product__carousel:hover .carousel-control-next { opacity: 1; }
body.page-product .carousel-control-prev { left: 0.5rem; }
body.page-product .carousel-control-next { right: 0.5rem; }
body.page-product .carousel-control-prev:hover,
body.page-product .carousel-control-next:hover {
  background: var(--ckv-blush);
  border-color: var(--ckv-forest);
}
body.page-product .carousel-control-prev-icon,
body.page-product .carousel-control-next-icon {
  width: 14px;
  height: 14px;
  filter: invert(22%) sepia(8%) saturate(1200%) hue-rotate(70deg);
}

/* RIGHT — info */
body.page-product .product__right {
  padding: 2.5rem 3rem 2.5rem 2.5rem;
}
body.page-product .product__name {
  font-family: var(--ckv-font-heading) !important;
  font-size: clamp(1.5rem, 2.5vw, 2rem) !important;
  font-weight: 500 !important;
  letter-spacing: 0.04em !important;
  color: var(--ckv-forest) !important;
  margin: 0 0 1rem !important;
  line-height: 1.2 !important;
}

/* Price */
body.page-product .product__prices { margin-bottom: 1.25rem; }
body.page-product .product__price { font-family: var(--ckv-font-body); font-size: 1.625rem; font-weight: 700; color: var(--ckv-forest); }
body.page-product .product__tax-infos { font-size: 0.75rem; color: var(--ckv-olive); margin-top: 0.125rem; }

/* Short description */
body.page-product .product__description-short {
  font-family: var(--ckv-font-body);
  font-size: 0.9375rem;
  line-height: 1.75;
  color: var(--ckv-forest);
  opacity: 0.85;
  border-top: 1px solid rgba(var(--ckv-forest-rgb), 0.08);
  padding-top: 1.25rem;
  margin-bottom: 1.5rem;
}

/* Add to cart */
body.page-product .product__actions-qty-add { display: flex; gap: 0.75rem; align-items: stretch; }
body.page-product .product__add-to-cart-button {
  flex: 1;
  background: var(--ckv-forest) !important;
  color: var(--ckv-cream) !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0.875rem 1.5rem !important;
  font-family: var(--ckv-font-body) !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  transition: background var(--ckv-duration) var(--ckv-ease) !important;
}
body.page-product .product__add-to-cart-button:hover { background: var(--ckv-forest-deep) !important; }

/* Kód produktu (reference) jako štítek — dnes jen na kartě ve výpisu
   (miniatures/product.tpl, modifikátor --card). V detailu je kód
   v parametrech, v quick view pod názvem (.ckv-qv-code). */
.ckv-product-code {
  display: inline-flex;
  align-items: center;
  align-self: center;
  padding: 0.4rem 0.75rem;
  border: 1px solid var(--ckv-border);
  border-radius: 999px;
  background: var(--ckv-white);
  font-family: var(--ckv-font-body);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-variant-numeric: tabular-nums;
  color: var(--ckv-text-muted);
  white-space: nowrap;
  line-height: 1;
}
/* Na kartě ve výpisu: menší, vlevo od tlačítka. */
.product-miniature__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.ckv-product-code--card {
  font-size: 0.625rem;
  padding: 0.3rem 0.55rem;
  letter-spacing: 0.08em;
}
body.page-product .product__quantity { border: none; background: transparent; }
body.page-product .qty-input {
  border: none;
  text-align: center;
  font-family: var(--ckv-font-body);
  font-size: 0.875rem;
  font-weight: 600;
  background: transparent;
  color: var(--ckv-forest);
  width: 2rem;
}

/* =================================================================
   KONFIGURATOR SMUTECNI STUHY (ckr-*)
   PS customization section is hidden; JS drives it via our UI.
   Native PS elements hidden via CSS to prevent FOUC before JS loads.
   ================================================================= */
body.page-product .js-product-customization { display: none !important; }
/* Hide native PS color/radio list for ribbon group — prevents FOUC before JS loads custom swatches */
.product-variant__colors { display: none !important; }
.product-variant:has(input[name="group[11]"]) .product-variant__radios { display: none !important; }

/* ---------- Swatch row ---------- */
/* Swatch row — circles only, no labels */
.ckr-swatches {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0.5rem 0 0.25rem;
}
.ckr-swatch {
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.1875rem;
  transition: transform 0.18s ease;
}
.ckr-swatch:hover { transform: scale(1.12); }
.ckr-swatch__dot {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 1.5px solid rgba(var(--ckv-forest-rgb), 0.18);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: box-shadow 0.2s ease;
  flex-shrink: 0;
}
.ckr-swatch--none .ckr-swatch__dot {
  background: #f4f1ee;
  border-style: dashed;
  border-color: rgba(var(--ckv-forest-rgb), 0.3);
}
.ckr-swatch__x {
  font-size: 0.8125rem;
  line-height: 1;
  color: rgba(var(--ckv-forest-rgb), 0.35);
}
.ckr-swatch.is-active .ckr-swatch__dot {
  box-shadow: 0 0 0 2px var(--ckv-cream), 0 0 0 3.5px var(--ckv-forest);
}
/* Hide text labels — color circles are self-explanatory */
.ckr-swatch__label { display: none; }

/* ---------- Configurator panel ---------- */
.ckr-panel {
  margin-top: 0.75rem;
  margin-bottom: 1.25rem;
  animation: ckrIn 0.38s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes ckrIn {
  from { opacity: 0; transform: translateY(-8px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ---------- Topbar (potisk toggle + info) ---------- */
.ckr-topbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.25rem;
}
.ckr-info {
  display: flex;
  align-items: flex-start;
  gap: 0.375rem;
  flex-shrink: 1;
  min-width: 0;
}
.ckr-info__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 1px solid rgba(var(--ckv-forest-rgb), 0.25);
  font-family: var(--ckv-font-body);
  font-size: 0.5625rem;
  font-weight: 700;
  font-style: italic;
  color: rgba(var(--ckv-forest-rgb), 0.45);
  flex-shrink: 0;
  line-height: 1;
  margin-top: 0.0625rem;
}
.ckr-info__tip {
  font-family: var(--ckv-font-body);
  font-size: 0.6875rem;
  color: rgba(var(--ckv-forest-rgb), 0.45);
  line-height: 1.5;
  font-style: italic;
}

/* ---------- Ribbon preview strip ---------- */
.ckr-preview { position: relative; margin-bottom: 0.875rem; }
.ckr-preview__strip {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: 0.375rem 0;
  background: #f2ede5;
  color: #222;
  position: relative;
  overflow: visible;
  transition: color 0.35s ease, background 0.35s ease;
}
/* Entlované vroubky (pinking shears) — malé zuby 4×6px */
.ckr-preview__strip::before,
.ckr-preview__strip::after {
  content: '';
  position: absolute;
  top: 0;
  width: 5px;
  height: 100%;
  z-index: 2;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='5' height='6' viewBox='0 0 5 6'%3E%3Cpolygon points='0,0 5,3 0,6' fill='%23FAF7F5'/%3E%3C/svg%3E");
  background-size: 5px 6px;
  background-repeat: repeat-y;
}
.ckr-preview__strip::before {
  left: 0;
}
.ckr-preview__strip::after {
  right: 0;
  transform: scaleX(-1);
}
/* Texty uvnitř pásu */
.ckr-preview__line {
  font-family: var(--ckv-font-heading);
  font-size: 0.875rem;
  font-style: italic;
  letter-spacing: 0.03em;
  flex: 1 1 0;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-shadow: 0 1px 2px rgba(0,0,0,0.25);
}
.ckr-preview__line--left  { text-align: left;  padding-left: 1rem; }
.ckr-preview__line--right { text-align: right; padding-right: 1rem; }
/* badge removed — print color now has dedicated toggle */

/* ---------- Print color toggle ---------- */
.ckr-print-toggle {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  margin-bottom: 1rem;
}
.ckr-print-toggle__label {
  font-family: var(--ckv-font-body);
  font-size: 0.5625rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ckv-forest);
}
.ckr-print-toggle__btn {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.3125rem 0.75rem;
  border: 1px solid rgba(var(--ckv-forest-rgb), 0.2);
  background: none;
  font-family: var(--ckv-font-body);
  font-size: 0.6875rem;
  color: var(--ckv-forest);
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.ckr-print-toggle__btn.is-active {
  border-color: var(--ckv-forest);
  background: var(--ckv-forest);
  color: var(--ckv-cream);
}

/* Černý potisk na tmavé stuze (černá, tmavě modrá) — zamčeno, viz app.js */
.ckr-print-toggle__btn.is-disabled,
.ckr-print-toggle__btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  text-decoration: line-through;
}
.ckr-print-toggle__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1px solid rgba(var(--ckv-forest-rgb), 0.25);
  flex-shrink: 0;
}
.ckr-print-toggle__dot--gold { background: #c9a84c; border-color: #a8882c; }
.ckr-print-toggle__dot--black { background: #1c1c1c; border-color: #000; }

/* ---------- Text inputs ---------- */
.ckr-inputs {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
  margin-bottom: 0.75rem;
}
.ckr-input-wrap { position: relative; }
.ckr-input-label {
  display: flex;
  align-items: center;
  gap: 0.4375rem;
  margin-bottom: 0.3125rem;
}
.ckr-input-label__num {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  border: 1px solid var(--ckv-forest);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ckv-font-body);
  font-size: 0.5rem;
  font-weight: 700;
  color: var(--ckv-forest);
  flex-shrink: 0;
  line-height: 1;
}
.ckr-input-label__text {
  font-family: var(--ckv-font-body);
  font-size: 0.5625rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ckv-forest);
}
.ckr-input {
  width: 100%;
  background: none;
  border: none;
  border-bottom: 1px solid rgba(var(--ckv-forest-rgb), 0.2);
  padding: 0.4375rem 2.25rem 0.4375rem 0;
  font-family: var(--ckv-font-heading);
  font-size: 1.0625rem;
  color: var(--ckv-forest);
  outline: none;
  border-radius: 0;
  transition: border-color 0.2s ease;
}
.ckr-input:focus { border-color: var(--ckv-forest); }
.ckr-counter {
  position: absolute;
  right: 0;
  bottom: 0.4375rem;
  font-family: var(--ckv-font-body);
  font-size: 0.4375rem;
  letter-spacing: 0.06em;
  color: rgba(var(--ckv-forest-rgb), 0.28);
  pointer-events: none;
}

/* ---------- Mobile ---------- */
@media (max-width: 767px) {
  .ckr-swatches { gap: 0.375rem; }
  .ckr-swatch { padding: 0.125rem; }
  .ckr-swatch__dot { width: 22px; height: 22px; }
  .ckr-topbar { flex-direction: column; gap: 0.375rem; }
  .ckr-info__tip { font-size: 0.625rem; }
  .ckr-print-toggle { margin-bottom: 0.625rem; }
  .ckr-preview__strip {
    min-height: auto;
    flex-direction: column;
    align-items: stretch;
    padding: 0.5rem 0;
  }
  .ckr-preview__line {
    font-size: 0.6875rem;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    padding: 0.125rem 0.875rem;
  }
  .ckr-preview__line--left  { text-align: left;  padding-left: 0.875rem; }
  .ckr-preview__line--right { text-align: right; padding-right: 0.875rem; }
  .ckr-inputs { gap: 0.625rem; }
  .ckr-input { font-size: 0.9375rem; }
}

/* Bottom — description accordion */
body.page-product .product__bottom {
  max-width: var(--ckv-container);
  margin: 0 auto;
  padding: 0 var(--ckv-gutter) 3rem;
}
body.page-product .product__accordion { border-top: 1px solid rgba(var(--ckv-forest-rgb), 0.1); }
body.page-product .accordion-item { border: none; border-bottom: 1px solid rgba(var(--ckv-forest-rgb), 0.1); background: none; }
body.page-product .accordion-button {
  font-family: var(--ckv-font-body);
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ckv-forest) !important;
  background: none !important;
  box-shadow: none !important;
  padding: 1.25rem 0;
}
body.page-product .accordion-button::after { filter: opacity(0.5); }
body.page-product .accordion-body {
  font-family: var(--ckv-font-body);
  font-size: 0.9375rem;
  line-height: 1.75;
  color: var(--ckv-forest);
  opacity: 0.85;
  padding: 0 0 1.5rem;
}

/* Disclaimer note */
.ckv-disclaimer {
  font-family: var(--ckv-font-body);
  font-size: 0.8125rem;
  line-height: 1.75;
  color: var(--ckv-forest);
  opacity: 0.65;
  font-style: italic;
  margin: 0;
}

/* Reassurance block */
body.page-product .blockreassurance { font-family: var(--ckv-font-body); font-size: 0.8125rem; color: var(--ckv-forest); }

/* Variant selector polish — works on product page AND quickview */
body.page-product .product-variant,
.quickview .product-variant {
  margin-bottom: 0.75rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--ckv-forest-tint);
}
body.page-product .product-variant:last-child,
.quickview .product-variant:last-child { border-bottom: none; }
body.page-product .product-variant__label,
.quickview .product-variant__label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.375rem;
}
body.page-product .product-variant__legend,
.quickview .product-variant__legend {
  font-family: var(--ckv-font-body);
  font-size: 0.5625rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ckv-forest);
  margin-bottom: 0;
}
body.page-product .product-variant__selected,
.quickview .product-variant__selected {
  display: none;
}
body.page-product .product-variant__radios,
.quickview .product-variant__radios {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.5rem;
  margin-top: 0.375rem;
  align-items: center;
}
body.page-product .product-variant__radio,
.quickview .product-variant__radio { margin: 0; }
body.page-product .product-variant__radio .form-check-input,
.quickview .product-variant__radio .form-check-input { display: none; }
body.page-product .product-variant__radio .form-check-label,
.quickview .product-variant__radio .form-check-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ckv-font-body);
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: 0.375rem 1rem;
  min-width: 5.5rem;
  text-align: center;
  border: 1px solid rgba(var(--ckv-forest-rgb), 0.2);
  color: var(--ckv-forest);
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
  user-select: none;
}
body.page-product .product-variant__radio .form-check-label:hover,
.quickview .product-variant__radio .form-check-label:hover {
  border-color: rgba(var(--ckv-forest-rgb), 0.45);
  background: rgba(var(--ckv-forest-rgb), 0.03);
}
body.page-product .product-variant__radio .form-check-input:checked + label .form-check-label,
body.page-product .product-variant__radio .form-check-input:checked ~ label,
.quickview .product-variant__radio .form-check-input:checked + label .form-check-label,
.quickview .product-variant__radio .form-check-input:checked ~ label {
  border-color: var(--ckv-forest);
  background: var(--ckv-forest);
  color: var(--ckv-cream);
}

/* Tablet */
@media (max-width: 991px) {
  body.page-product .product__container { grid-template-columns: 1fr 1fr; gap: 0; padding: 0 0 2rem; }
  body.page-product .product__left { position: static; }
  body.page-product .product__right { padding: 1.5rem var(--ckv-gutter); }
  body.page-product .product__carousel .carousel-item { min-height: 380px; }
  body.page-product .product__carousel .carousel-item img { padding: 1.5rem; transform: none; }
}

/* Mobile */
@media (max-width: 767px) {
  body.page-product .product__container { grid-template-columns: 1fr !important; gap: 1.25rem; padding: 0 0 2rem; }
  body.page-product .product__left { position: static; }
  body.page-product .product__right { padding: 1rem var(--ckv-gutter); }
  body.page-product .product__name { font-size: 1.375rem !important; }
  body.page-product .product__carousel .carousel-item { min-height: 300px; }
  body.page-product .product__carousel .carousel-item img { padding: 1rem; transform: none; }
  body.page-product .carousel-control-prev,
  body.page-product .carousel-control-next { opacity: 1; width: 32px; height: 32px; }
  body.page-product .product__price { font-size: 1.25rem; }
  body.page-product .product-variant__radios { flex-wrap: wrap; }
  body.page-product .product-variant__radio .form-check-label { font-size: 0.625rem; padding: 0.25rem 0.625rem; min-width: auto; }
  body.page-product .product__actions-qty-add { flex-wrap: wrap; }
  body.page-product .product__add-to-cart-button { width: 100%; }
  /* Na mobilu: tlačítko pod množstvím přes celou šířku. */
  body.page-product .product__add-to-cart { order: 1; flex-basis: 100%; }
  body.page-product .product__bottom { padding: 0 var(--ckv-gutter) 2rem; }
  .ckr-panel { margin-top: 0.5rem; }
}

/* ==========================================================
   KAM DORUČUJEME — minimalistická mapa
   ========================================================== */
.ck-section--delivery {
  background: var(--ckv-cream);
  padding: 0;
}

.ck-delivery__inner {
  max-width: 860px;
  margin: 0 auto;
  padding: 3.5rem var(--ckv-gutter) 3rem;
}

/* ---- Header: eyebrow s dekorativní linkou ---- */
.ck-delivery__header {
  margin-bottom: 1.75rem;
  text-align: center;
}

.ck-delivery__header .ck-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
}

.ck-delivery__header .ck-eyebrow::before,
.ck-delivery__header .ck-eyebrow::after {
  content: '';
  display: block;
  width: 2.5rem;
  height: 1px;
  background: var(--ckv-rose);
  opacity: 0.7;
}

/* ---- Responsive ---- */
@media (max-width: 767px) {
  .ck-delivery__inner { padding: 2.5rem var(--ckv-gutter) 2.25rem; }
}

/* ==========================================================
   CMS PAGES — shared styles (ck-cms)
   ========================================================== */
.ck-cms {
  background: var(--ckv-cream);
  padding: 0;
}

/* ---- Header ---- */
.ck-cms__header {
  text-align: center;
  max-width: 680px;
  margin: 0 auto;
  padding: 3.5rem var(--ckv-gutter) 2.5rem;
}

.ck-cms__header .ck-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
}

.ck-cms__header .ck-eyebrow::before,
.ck-cms__header .ck-eyebrow::after {
  content: '';
  display: block;
  width: 2.5rem;
  height: 1px;
  background: var(--ckv-rose);
  opacity: 0.7;
}

.ck-cms__title {
  font-family: var(--ckv-font-heading);
  font-size: clamp(1.5rem, 3.5vw, 2.25rem);
  font-weight: 500;
  color: var(--ckv-forest);
  letter-spacing: 0.02em;
  line-height: 1.3;
  margin: 0 0 0.75rem;
}

.ck-cms__lead {
  font-family: var(--ckv-font-body);
  font-size: 0.9rem;
  color: var(--ckv-forest);
  opacity: 0.6;
  line-height: 1.65;
  margin: 0;
}

/* ---- Body variants ---- */
.ck-cms__body {
  max-width: 960px;
  margin: 0 auto;
  padding: 0 var(--ckv-gutter) 3.5rem;
}

.ck-cms__body--narrow {
  max-width: 720px;
}

.ck-cms__body--cols {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 2.5rem;
  align-items: start;
}

/* ---- Main content typography ---- */
.ck-cms__main h2,
.ck-cms__body--narrow h2 {
  font-family: var(--ckv-font-heading);
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--ckv-forest);
  margin: 2rem 0 0.65rem;
  letter-spacing: 0.02em;
}

.ck-cms__main h2:first-child,
.ck-cms__body--narrow h2:first-child {
  margin-top: 0;
}

.ck-cms__main p,
.ck-cms__body--narrow p {
  font-family: var(--ckv-font-body);
  font-size: 0.85rem;
  color: var(--ckv-forest);
  opacity: 0.75;
  line-height: 1.75;
  margin: 0 0 0.75rem;
}

.ck-cms__main ul,
.ck-cms__body--narrow ul {
  list-style: none;
  padding: 0;
  margin: 0 0 1.25rem;
}

.ck-cms__main li,
.ck-cms__body--narrow li {
  font-family: var(--ckv-font-body);
  font-size: 0.85rem;
  color: var(--ckv-forest);
  opacity: 0.75;
  line-height: 1.75;
  padding-left: 1.1rem;
  position: relative;
}

.ck-cms__main li::before,
.ck-cms__body--narrow li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--ckv-rose);
  opacity: 0.7;
}

.ck-cms__main li strong,
.ck-cms__body--narrow li strong {
  opacity: 1;
  font-weight: 600;
}

.ck-cms__effective,
.ck-cms__updated {
  font-size: 0.75rem !important;
  opacity: 0.4 !important;
  font-style: italic;
  margin-top: 2rem !important;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(var(--ckv-forest-rgb), 0.08);
}

/* ---- Právní stránky (obchodní podmínky, ochrana údajů) ----
   Obsah vlevo (na desktopu přilepený), text v čitelné šířce vpravo,
   kotvy na nadpisech s odsazením pod horní lištu, tisk bez navigace. */
.ck-legal__meta {
  font-family: var(--ckv-font-body);
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  color: var(--ckv-text-muted);
  margin: 0.75rem 0 0;
}
.ck-legal__layout {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 var(--ckv-gutter) 3.5rem;
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 3rem;
  align-items: start;
}
.ck-legal__layout .ck-cms__body {
  padding: 0;
  margin: 0;
}
.ck-legal__toc {
  position: sticky;
  top: calc(var(--ckv-nav-height) + 1.5rem);
  font-family: var(--ckv-font-body);
}
.ck-legal__toc-title {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--ckv-rose-dusty);
  margin: 0 0 0.75rem;
}
.ck-legal__toc ol {
  list-style: none;
  margin: 0;
  padding: 0;
  border-left: 1px solid var(--ckv-border);
}
.ck-legal__toc li a {
  display: block;
  padding: 0.35rem 0 0.35rem 0.9rem;
  margin-left: -1px;
  border-left: 2px solid transparent;
  font-size: 0.8125rem;
  line-height: 1.4;
  color: var(--ckv-text-muted);
  text-decoration: none;
  transition: color 0.2s ease, border-color 0.2s ease;
}
.ck-legal__toc li a:hover,
.ck-legal__toc li a:focus-visible {
  color: var(--ckv-forest);
  border-left-color: var(--ckv-rose-dusty);
}
.ck-legal__article h2 {
  scroll-margin-top: calc(var(--ckv-nav-height) + 1.5rem);
}
.ck-legal__related {
  margin-top: 2rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
  font-family: var(--ckv-font-body);
  font-size: 0.8125rem;
}
.ck-legal__related a {
  color: var(--ckv-forest);
  text-decoration: none;
  border-bottom: 1px solid var(--ckv-rose);
  padding-bottom: 0.1rem;
}
.ck-legal__related a:hover { border-bottom-color: var(--ckv-forest); }

@media (max-width: 991px) {
  .ck-legal__layout {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  .ck-legal__toc { position: static; }
  .ck-legal__toc ol { columns: 2; column-gap: 1.5rem; }
  .ck-legal__toc li { break-inside: avoid; }
}
@media (max-width: 575px) {
  .ck-legal__toc ol { columns: 1; }
}
@media print {
  .ck-topnav,
  .ck-header-mobile,
  .ck-footer,
  .ck-legal__toc,
  .ck-legal__related,
  #ckCallFloat { display: none !important; }
  .ck-legal__layout { display: block; padding: 0; max-width: none; }
  .ck-cms__body--narrow p,
  .ck-cms__body--narrow li,
  .ck-cms__lead { opacity: 1; color: #000; }
  .ck-cms__body--narrow a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 0.8em; }
}

/* ---- Sidebar card ---- */
.ck-cms__card {
  background: rgba(var(--ckv-forest-rgb), 0.035);
  border-radius: 6px;
  padding: 1.35rem 1.5rem;
  border: 1px solid rgba(var(--ckv-forest-rgb), 0.06);
  position: sticky;
  top: 6rem;
}

.ck-cms__card h3 {
  font-family: var(--ckv-font-heading);
  font-size: 1rem;
  font-weight: 600;
  color: var(--ckv-forest);
  margin: 0 0 0.85rem;
  letter-spacing: 0.02em;
}

/* ---- Definition list ---- */
.ck-cms__dl {
  margin: 0;
}

.ck-cms__dl dt {
  font-family: var(--ckv-font-body);
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--ckv-forest);
  opacity: 0.4;
  margin-top: 0.75rem;
}

.ck-cms__dl dt:first-child { margin-top: 0; }

.ck-cms__dl dd {
  font-family: var(--ckv-font-body);
  font-size: 0.82rem;
  color: var(--ckv-forest);
  opacity: 0.8;
  margin: 0.15rem 0 0;
}

.ck-cms__dl dd a {
  color: var(--ckv-forest);
  text-decoration: none;
  border-bottom: 1px solid var(--ckv-rose);
  transition: opacity 0.2s ease;
}

.ck-cms__dl dd a:hover { opacity: 0.6; }

.ck-cms__dl--inline {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 0.15rem 1rem;
  align-items: baseline;
}

.ck-cms__dl--inline dt { margin-top: 0.5rem; }
.ck-cms__dl--inline dt:first-child { margin-top: 0; }
.ck-cms__dl--inline dd { margin-top: 0.5rem; }

/* ==========================================================
   O FIRMĚ — timeline
   ========================================================== */
.ck-timeline {
  position: relative;
  padding-left: 2.5rem;
  margin-bottom: 2.5rem;
}

.ck-timeline::before {
  content: '';
  position: absolute;
  left: 0.45rem;
  top: 0.4rem;
  bottom: 0.4rem;
  width: 1px;
  background: var(--ckv-rose);
  opacity: 0.4;
}

.ck-timeline__item {
  position: relative;
  padding-bottom: 1.5rem;
}

.ck-timeline__item:last-child { padding-bottom: 0; }

.ck-timeline__item::before {
  content: '';
  position: absolute;
  left: -2.15rem;
  top: 0.45rem;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--ckv-rose);
  border: 2px solid var(--ckv-cream);
}

.ck-timeline__year {
  display: block;
  font-family: var(--ckv-font-heading);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--ckv-forest);
  letter-spacing: 0.04em;
  margin-bottom: 0.2rem;
}

.ck-timeline__item p {
  font-family: var(--ckv-font-body);
  font-size: 0.82rem;
  color: var(--ckv-forest);
  opacity: 0.65;
  line-height: 1.7;
  margin: 0;
}

/* ==========================================================
   KONTAKTY — grid
   ========================================================== */
.ck-contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}

.ck-contact-block h2 {
  font-family: var(--ckv-font-heading);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--ckv-forest);
  margin: 0 0 0.75rem;
  letter-spacing: 0.02em;
}

.ck-contact-block address {
  font-style: normal;
  font-family: var(--ckv-font-body);
  font-size: 0.85rem;
  color: var(--ckv-forest);
  opacity: 0.7;
  line-height: 1.7;
  margin-bottom: 0.75rem;
}

.ck-contact-block p {
  font-family: var(--ckv-font-body);
  font-size: 0.85rem;
  color: var(--ckv-forest);
  opacity: 0.7;
  line-height: 1.7;
  margin: 0 0 0.5rem;
}

.ck-contact-block ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.ck-contact-block li {
  font-family: var(--ckv-font-body);
  font-size: 0.82rem;
  color: var(--ckv-forest);
  opacity: 0.7;
  line-height: 1.9;
  padding-left: 1rem;
  position: relative;
}

.ck-contact-block li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--ckv-rose);
  opacity: 0.7;
}

.ck-hours {
  border-collapse: collapse;
  width: 100%;
}

.ck-hours td {
  font-family: var(--ckv-font-body);
  font-size: 0.85rem;
  color: var(--ckv-forest);
  opacity: 0.7;
  padding: 0.35rem 0;
  border-bottom: 1px solid rgba(var(--ckv-forest-rgb), 0.06);
}

.ck-hours td:last-child {
  text-align: right;
  font-weight: 600;
  opacity: 0.85;
}

/* ---- Contact map ---- */
/* Mapa je pod obsahem stránky Kontakty jako samostatný blok (šablona
   cms/_partials/contact-map.tpl), obsah z administrace už má spodní
   odsazení — nepřidávat další. */
.ck-cms-page--kontakty .ck-cms .ck-cms__body {
  padding-bottom: 1rem;
}

.ck-cms--contact-map .ck-contact-map {
  margin-top: 0;
}

.ck-contact-map {
  margin-top: 2.5rem;
  grid-column: 1 / -1;
}
.ck-contact-map__link {
  display: block;
  position: relative;
  border: 1px solid rgba(var(--ckv-forest-rgb), 0.1);
  overflow: hidden;
  cursor: pointer;
}
.ck-contact-map__link iframe {
  display: block;
  width: 100%;
  height: 350px;
}
.ck-contact-map__overlay {
  position: absolute;
  bottom: 1rem;
  left: 50%;
  transform: translateX(-50%);
  background: var(--ckv-forest);
  color: var(--ckv-cream);
  font-family: var(--ckv-font-body);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.5rem 1.25rem;
  opacity: 0;
  transition: opacity 0.25s;
}
.ck-contact-map__link:hover .ck-contact-map__overlay { opacity: 1; }
@media (max-width: 767px) {
  .ck-contact-map__link iframe { height: 250px; }
  .ck-contact-map__overlay { opacity: 1; font-size: 0.7rem; }
}

/* ---- CMS responsive ---- */
@media (max-width: 767px) {
  .ck-cms__header { padding: 2.5rem var(--ckv-gutter) 1.5rem; }
  .ck-cms__body { padding-bottom: 2.5rem; }
  .ck-cms__body--cols {
    grid-template-columns: 1fr;
    gap: 1.75rem;
  }
  .ck-cms__card { position: static; }
  .ck-contact-grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .ck-cms__dl--inline {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .ck-timeline { padding-left: 2rem; }
}

/* ==========================================================
   KAM DORUČUJEME — standalone CMS page (ckp- prefix)
   ========================================================== */
.ckp-delivery {
  background: var(--ckv-cream);
  padding: 0;
}

/* ---- Header ---- */
.ckp-delivery__header {
  text-align: center;
  max-width: 680px;
  margin: 0 auto;
  padding: 3.5rem var(--ckv-gutter) 2rem;
}

.ckp-delivery__header .ck-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
}

.ckp-delivery__header .ck-eyebrow::before,
.ckp-delivery__header .ck-eyebrow::after {
  content: '';
  display: block;
  width: 2.5rem;
  height: 1px;
  background: var(--ckv-rose);
  opacity: 0.7;
}

.ckp-delivery__title {
  font-family: var(--ckv-font-heading);
  font-size: clamp(1.5rem, 3.5vw, 2.25rem);
  font-weight: 500;
  color: var(--ckv-forest);
  letter-spacing: 0.02em;
  line-height: 1.3;
  margin: 0 0 1rem;
}

.ckp-delivery__subtitle {
  font-family: var(--ckv-font-body);
  font-size: 0.9rem;
  color: var(--ckv-forest);
  opacity: 0.65;
  line-height: 1.65;
  margin: 0;
}

/* ---- Responsive ---- */
@media (max-width: 767px) {
  .ckp-delivery__header { padding: 2.5rem var(--ckv-gutter) 1.5rem; }
}

/* Hide default CMS page wrapper on delivery page */
#cms .page-cms #content {
  padding: 0;
}

/* ==========================================================
   HIDE — English policy placeholders + reviews + share
   ========================================================== */
.product-reassurance,
.blockreassurance,
#product-comments,
#product-comments-list-header,
.product-comments-wrapper,
.product-comments-section,
.product-comments,
.product-comment-modal { display: none !important; }

body.page-product .product__additional-info { display: none !important; }

/* Product detail bottom — full width when reviews hidden */
body.page-product .product__bottom-right { display: none !important; }
body.page-product .product__bottom .row { display: block !important; }
body.page-product .product__bottom .col-md-6,
body.page-product .product__bottom .col-lg-6 { max-width: 100%; flex: 0 0 100%; }

/* ==========================================================
   RELATED PRODUCTS — category + viewed
   ========================================================== */
body.page-product .ps-categoryproducts,
body.page-product .ps-viewedproduct {
  max-width: var(--ckv-container);
  margin: 0 auto;
  padding: 0 var(--ckv-gutter) 2.5rem;
}

body.page-product .ps-categoryproducts .section-title,
body.page-product .ps-viewedproduct .section-title {
  font-family: var(--ckv-font-body);
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--ckv-forest);
  opacity: 0.5;
  margin-bottom: 1.25rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid rgba(var(--ckv-forest-rgb), 0.1);
}

/* Related product cards — 4-column grid */
body.page-product .ps-categoryproducts .products,
body.page-product .ps-viewedproduct .products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

/* Related product card styling */
body.page-product .ps-categoryproducts .product-miniature,
body.page-product .ps-viewedproduct .product-miniature {
  text-align: center;
}

body.page-product .ps-categoryproducts .product-miniature__image-link,
body.page-product .ps-viewedproduct .product-miniature__image-link {
  aspect-ratio: 1;
  overflow: hidden;
  background: var(--ckv-cream);
  display: block;
  margin-bottom: 0.75rem;
}

body.page-product .ps-categoryproducts .product-miniature__image-link img,
body.page-product .ps-viewedproduct .product-miniature__image-link img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 0.5rem;
}

body.page-product .ps-categoryproducts .product-miniature__title,
body.page-product .ps-viewedproduct .product-miniature__title {
  font-family: var(--ckv-font-heading);
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--ckv-forest);
  text-decoration: none;
  line-height: 1.3;
}

body.page-product .ps-categoryproducts .product-miniature__prices,
body.page-product .ps-viewedproduct .product-miniature__prices {
  font-family: var(--ckv-font-body);
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--ckv-forest);
  margin-top: 0.25rem;
}

/* Hide quantity + add-to-cart + color swatches in related products — cleaner look */
body.page-product .ps-categoryproducts .product-miniature__actions,
body.page-product .ps-viewedproduct .product-miniature__actions,
body.page-product .ps-categoryproducts .product-miniature__quickview-button,
body.page-product .ps-viewedproduct .product-miniature__quickview-button,
body.page-product .ps-categoryproducts .product-miniature__quickview-touch,
body.page-product .ps-viewedproduct .product-miniature__quickview-touch,
body.page-product .ps-categoryproducts .product-miniature__variants,
body.page-product .ps-viewedproduct .product-miniature__variants {
  display: none !important;
}

/* Responsive: 2 cols on tablet, 2 on mobile */
@media (max-width: 991px) {
  body.page-product .ps-categoryproducts .products,
  body.page-product .ps-viewedproduct .products {
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
  }
}
@media (max-width: 767px) {
  body.page-product .ps-categoryproducts,
  body.page-product .ps-viewedproduct {
    padding: 0 var(--ckv-gutter) 2rem;
  }
  body.page-product .ps-categoryproducts .products,
  body.page-product .ps-viewedproduct .products {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
  }
}

/* ==========================================================
   QUICKVIEW MODAL — refined funeral floristry aesthetic
   ========================================================== */

/* --- Backdrop & dialog --- */
.quickview.modal { --bs-backdrop-opacity: 0.45; }
.quickview .quickview__dialog {
  max-width: 880px;
}
.quickview .quickview__content {
  border: none;
  border-radius: 0;
  background: var(--ckv-cream);
  box-shadow: 0 24px 80px rgba(32, 44, 30, 0.18), 0 2px 12px rgba(32, 44, 30, 0.08);
  overflow: hidden;
}

/* --- Header (close button area) --- */
.quickview .quickview__header {
  border: none;
  padding: 0.75rem 1rem 0;
  background: transparent;
  position: absolute;
  top: 0;
  right: 0;
  z-index: 10;
}
.quickview .btn-close {
  width: 2.25rem;
  height: 2.25rem;
  opacity: 0.35;
  transition: opacity 0.25s var(--ckv-ease);
  background-size: 0.65rem;
}
.quickview .btn-close:hover { opacity: 0.7; }

/* --- Body layout --- */
.quickview .quickview__body {
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  min-height: 400px;
}

/* --- Left: product image --- */
.quickview .product__left {
  background: var(--ckv-white);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  min-height: 420px;
}
.quickview .ckv-qv-cover {
  object-fit: contain;
  padding: 0;
  width: 100%;
  height: 100%;
  min-height: 440px;
  max-height: 560px;
  transform: none;
}

/* --- Right: product info --- */
.quickview .product__right {
  padding: 2.75rem 2.25rem 2rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0;
}
.quickview .product__name {
  font-family: var(--ckv-font-heading) !important;
  font-size: clamp(1.35rem, 2.2vw, 1.75rem) !important;
  font-weight: 500 !important;
  letter-spacing: 0.04em !important;
  color: var(--ckv-forest) !important;
  line-height: 1.2 !important;
  margin-bottom: 1rem !important;
  text-transform: none;
}

/* Kód produktu pod názvem — tichý řádek, ne štítek (přesunuto od tlačítka). */
.quickview .ckv-qv-code {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  margin: -0.5rem 0 1rem;
  font-family: var(--ckv-font-body);
  font-size: 0.6875rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ckv-text-muted);
}
.quickview .ckv-qv-code__value {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--ckv-forest);
}

/* Price */
.quickview .product__price {
  font-family: var(--ckv-font-body);
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--ckv-forest);
  margin-bottom: 0.25rem;
}

/* Description short */
.quickview .product__description-short {
  font-family: var(--ckv-font-heading);
  font-size: 0.95rem;
  font-style: italic;
  line-height: 1.5;
  color: var(--ckv-olive);
  margin-bottom: 1.5rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(var(--ckv-forest-rgb), 0.08);
}

/* --- Quantity + Add to cart --- */
.quickview .product__actions {
  margin-top: auto;
  padding-top: 1rem;
}
.quickview .product__add-to-cart-button {
  background: var(--ckv-forest) !important;
  color: var(--ckv-cream) !important;
  border: none !important;
  border-radius: 0 !important;
  font-family: var(--ckv-font-body) !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  padding: 0.875rem 1.75rem !important;
  transition: background 0.3s var(--ckv-ease), transform 0.15s ease !important;
  flex-grow: 1;
}
.quickview .product__add-to-cart-button:hover {
  background: var(--ckv-forest-deep) !important;
}
.quickview .product__add-to-cart-button:active {
  transform: scale(0.98);
}

/* --- Footer --- */
.quickview .quickview__footer {
  border-top: 1px solid rgba(var(--ckv-forest-rgb), 0.08);
  padding: 0.75rem 2rem;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.quickview .quickview__details-link {
  font-family: var(--ckv-font-body);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--ckv-forest);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 0.25rem;
  transition: color 0.25s;
  text-transform: uppercase;
}
.quickview .quickview__details-link:hover { color: var(--ckv-forest-deep); }
.quickview .quickview__details-link .material-icons { font-size: 1rem; }

/* Hide elements not needed in quickview */
.quickview .breadcrumb { display: none !important; }
.quickview .product__manufacturer { display: none !important; }
.quickview .product-flags { display: none !important; }

/* --- Ribbon configurator in quickview ---
   Záměrně těsnější než na produktové stránce (sdílený základ výš):
   menší rozestupy variant a radia zalamují, quickview je užší. */
.quickview .product-variant { margin-bottom: 0.625rem; padding-bottom: 0.625rem; }
.quickview .product-variant__radios { flex-wrap: wrap; }
.quickview .ckr-swatches { gap: 0.5rem; padding: 0.5rem 0 0.25rem; }
.quickview .ckr-swatch__dot { width: 24px; height: 24px; }
.quickview .ckr-panel { margin-top: 0.625rem; margin-bottom: 1rem; }
.quickview .ckr-preview { margin-bottom: 0.75rem; }
.quickview .ckr-preview__strip { min-height: 42px; }
.quickview .ckr-inputs { gap: 0.75rem; }
.quickview .ckr-input { font-size: 1rem; }

/* --- Responsive: stack on mobile --- */
@media (max-width: 767px) {
  .quickview .quickview__body {
    grid-template-columns: 1fr;
  }
  .quickview .product__left {
    min-height: 260px;
    max-height: 320px;
  }
  .quickview .ckv-qv-cover {
    min-height: 240px;
    max-height: 300px;
    padding: 1rem;
  }
  .quickview .product__right {
    padding: 1.5rem 1.25rem;
  }
  .quickview .quickview__footer {
    padding: 0.75rem 1.25rem;
  }
}

/* ==========================================================
   HIDE — "Nové" badge on product cards globally
   ========================================================== */
.product-flags .new { display: none !important; }

/* ==========================================================
   CART PAGE  (body.page-cart)
   ========================================================== */

/* Page title */
body.page-cart .page-title-section {
  font-family: var(--ckv-font-heading);
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--ckv-forest);
  margin-bottom: 1.5rem;
}

/* Grid layout */
body.page-cart .cart-grid { max-width: var(--ckv-container); margin: 0 auto; padding: 1.5rem var(--ckv-gutter) 3rem; display: flex; flex-wrap: wrap; gap: 1rem; }
body.page-cart .cart-grid__content { flex: 1 1 0; min-width: 0; }
body.page-cart .cart-grid__aside { flex: 0 0 320px; }

/* Cart item row */
body.page-cart .cart__item { border-bottom: 1px solid rgba(var(--ckv-forest-rgb), 0.08); padding: 1.25rem 0; }
body.page-cart .cart__item:last-child { border-bottom: none; }

/* Product image in cart */
body.page-cart .product-line__image { width: 80px; min-width: 80px; }
body.page-cart .product-line__img { border-radius: 0; border: 1px solid rgba(var(--ckv-forest-rgb), 0.1); }

/* Product title */
body.page-cart .product-line__title {
  font-family: var(--ckv-font-heading);
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--ckv-forest);
  text-decoration: none;
}
body.page-cart .product-line__title:hover { color: var(--ckv-rose-dusty); }

/* Variant labels */
body.page-cart .product-line__item-label {
  font-family: var(--ckv-font-body);
  font-size: 0.75rem;
  color: var(--ckv-olive);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
body.page-cart .product-line__item-value { font-family: var(--ckv-font-body); font-size: 0.8125rem; color: var(--ckv-forest); }

/* Price in cart */
body.page-cart .product-line__price,
body.page-cart .product-line__item-price {
  font-family: var(--ckv-font-body);
  font-weight: 700;
  color: var(--ckv-forest);
}

/* Quantity buttons */
body.page-cart .quantity-button__group {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: center;
  border: 1px solid rgba(var(--ckv-forest-rgb), 0.2);
  border-radius: 0;
  overflow: hidden;
  width: auto;
}
body.page-cart .quantity-button__group > button.btn {
  width: 32px;
  height: 32px;
  min-width: 32px;
  background: none;
  border: none;
  color: var(--ckv-forest);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
body.page-cart .quantity-button__group > button.btn:hover { background: var(--ckv-cream); }
body.page-cart .js-cart-line-product-quantity {
  width: 40px;
  height: 32px;
  border: none;
  border-left: 1px solid rgba(var(--ckv-forest-rgb), 0.2);
  border-right: 1px solid rgba(var(--ckv-forest-rgb), 0.2);
  text-align: center;
  font-family: var(--ckv-font-body);
  font-size: 0.875rem;
  color: var(--ckv-forest);
  background: var(--ckv-white);
}
/* Prevent parent container from inheriting button sizing */
body.page-cart .product-line__quantity-button { width: auto; }

/* Product attributes (variant, ribbon) — compact inline display */
body.page-cart .product-line__item--info {
  display: inline;
  font-size: 0.8125rem;
  color: var(--ckv-olive);
}
body.page-cart .product-line__item--info + .product-line__item--info::before {
  content: "·";
  margin: 0 0.4em;
  color: rgba(var(--ckv-forest-rgb), 0.3);
}
body.page-cart .product-line__item--info .product-line__item-label {
  font-size: 0.75rem;
  text-transform: none;
  letter-spacing: 0;
  color: var(--ckv-olive);
  opacity: 0.7;
}
body.page-cart .product-line__item--info .product-line__item-value {
  font-size: 0.8125rem;
  color: var(--ckv-forest);
}

/* Customization button — subtle inline tag */
body.page-cart .product-customization-modal__content .btn {
  font-family: var(--ckv-font-body);
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ckv-olive);
  border-color: rgba(var(--ckv-forest-rgb), 0.15);
  padding: 0.2rem 0.6rem;
  margin-top: 0.25rem;
}
body.page-cart .product-customization-modal__content .btn:hover {
  background: var(--ckv-cream);
  border-color: var(--ckv-forest);
  color: var(--ckv-forest);
}

/* Text stuhy pod variantami — na vlastním řádku, bez oddělovací tečky (#203) */
body.page-cart .product-line__customization {
  display: block;
  margin-top: 0.25rem;
}
body.page-cart .product-line__item--info + .product-line__customization::before {
  content: none;
}

/* Ribbon price badge inline */
body.page-cart .product-line__ribbon-price {
  font-size: 0.75rem;
  color: var(--ckv-olive);
  opacity: 0.8;
}

/* Actions (edit + remove) */
body.page-cart .product-line__actions { display: flex; gap: 1rem; align-items: center; }

/* Edit link */
body.page-cart .product-line__edit-link {
  font-family: var(--ckv-font-body);
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ckv-forest);
  opacity: 0.7;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.3em;
  transition: opacity var(--ckv-duration) var(--ckv-ease), color var(--ckv-duration) var(--ckv-ease);
}
body.page-cart .product-line__edit-link:hover { opacity: 1; color: var(--ckv-rose-dusty); }

/* Lišta režimu úpravy položky z košíku na produktu (#208) */
body.page-product .ckv-cart-edit-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  margin: 0 0 1rem;
  padding: 0.625rem 0.875rem;
  border: 1px solid rgba(var(--ckv-forest-rgb), 0.2);
  border-left: 3px solid var(--ckv-forest);
  background: var(--ckv-cream);
  font-family: var(--ckv-font-body);
  font-size: 0.8125rem;
  color: var(--ckv-forest);
}
body.page-product .ckv-cart-edit-bar__back {
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ckv-forest);
  text-decoration: underline;
  text-underline-offset: 0.2em;
  white-space: nowrap;
}
body.page-product .ckv-cart-edit-bar__back:hover { color: var(--ckv-rose-dusty); }

/* Remove link */
body.page-cart .js-remove-from-cart {
  font-family: var(--ckv-font-body);
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ckv-olive);
  opacity: 0.7;
  transition: opacity var(--ckv-duration) var(--ckv-ease), color var(--ckv-duration) var(--ckv-ease);
}
body.page-cart .js-remove-from-cart:hover { opacity: 1; color: #c0392b; }

/* Continue shopping */
body.page-cart .cart__continue-shopping {
  font-family: var(--ckv-font-body);
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ckv-forest);
  border: 1px solid var(--ckv-forest);
  border-radius: 0;
  padding: 0.625rem 1.5rem;
  text-decoration: none;
  transition: background var(--ckv-duration) var(--ckv-ease), color var(--ckv-duration) var(--ckv-ease);
}
body.page-cart .cart__continue-shopping:hover { background: var(--ckv-forest); color: var(--ckv-cream); }

/* === Similar products (cart) === */
.ck-cart-similar {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(var(--ckv-forest-rgb), 0.10);
}
.ck-cart-similar__title {
  font-family: var(--ckv-font-heading);
  font-size: 1.25rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ckv-forest);
  margin-bottom: 1.5rem;
}
/* Hide widget's own heading */
.ck-cart-similar__products .section-title {
  display: none !important;
}
/* Hide duplicate featured products from parent cart-grid__footer */
.cart-grid__footer .ps-featuredproducts {
  display: none !important;
}
/* Grid — sekce žije v levém sloupci košíku (col-lg-8), ne v plné šířce.
   Globální `.products` (výš) přidává padding 2rem + gutter, max-width 1200
   a pevné počty sloupců; tady se to všechno ruší a sloupce si mřížka
   spočítá sama z dostupné šířky (tester, #237). */
.ck-cart-similar__products .products {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 1rem;
  padding: 0;
  margin: 0;
  max-width: none;
}
/* Card — clean, no border */
.ck-cart-similar__products .product-miniature {
  background: transparent;
  border: none;
  box-shadow: none;
  overflow: hidden;
  text-align: center;
  margin-bottom: 0;
  min-width: 0;
}
.ck-cart-similar__products .product-miniature__inner {
  border: none;
  box-shadow: none;
}
/* Image */
.ck-cart-similar__products .product-miniature__top {
  border: none;
  background: var(--ckv-cream);
  border-radius: 2px;
  overflow: hidden;
  transition: opacity var(--ckv-duration) var(--ckv-ease);
}
.ck-cart-similar__products .product-miniature:hover .product-miniature__top {
  opacity: 0.88;
}
.ck-cart-similar__products .product-miniature img {
  width: 100%;
  height: auto;
  display: block;
}
/* Title */
.ck-cart-similar__products .product-miniature__title {
  font-family: var(--ckv-font-heading);
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--ckv-forest);
  text-decoration: none;
  display: block;
  margin-top: 0.75rem;
  line-height: 1.3;
}
.ck-cart-similar__products .product-miniature__title:hover {
  color: var(--ckv-olive);
}
/* Price */
.ck-cart-similar__products .product-miniature__price {
  font-family: var(--ckv-font-body);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ckv-forest);
  margin-top: 0.25rem;
}
/* Hide add-to-cart form, quantity, flags — show quickview as primary action */
.ck-cart-similar__products .product-miniature__form,
.ck-cart-similar__products .quantity-button,
.ck-cart-similar__products .product-flags,
.ck-cart-similar__products .product-miniature__variants,
.ck-cart-similar__products .product-miniature__discount-price {
  display: none !important;
}
/* Hoverové „Rychlý náhled“ z rodiče (absolutně v obrázku, na mobilu bez
   hoveru neviditelné nebo oříznuté) tu nemá smysl — karta má vlastní tlačítko
   „Přidat do košíku“ (.product-miniature__add), které otevírá quick view. */
.ck-cart-similar__products .product-miniature__quickview-button,
.ck-cart-similar__products .product-miniature__quickview-touch,
.ck-cart-similar__products .ckv-product-code--card {
  display: none !important;
}
/* Tlačítko přes celou šířku karty; v úzké buňce se dřív text lámal a ořezával
   („vidět jen DO“, #224). */
.ck-cart-similar__products .product-miniature__actions {
  display: block;
  margin-top: 0.5rem;
}
.ck-cart-similar__products .product-miniature__add {
  width: 100%;
  height: auto;
  min-height: 2rem;
  padding: 0.5rem 0.5rem !important;
  justify-content: center;
  white-space: nowrap;
  overflow: visible;
}
.ck-cart-similar__products .product-miniature__add-text {
  font-size: 0.625rem;
  letter-spacing: 0.06em;
}
@media (max-width: 575px) {
  .ck-cart-similar__products .products {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
  }
  .ck-cart-similar__title {
    font-size: 1.1rem;
  }
}

/* === Summary sidebar === */
body.page-cart .cart-summary {
  background: var(--ckv-cream);
  padding: 1.75rem 1.5rem;
}
body.page-cart .cart-summary h2,
body.page-cart .cart-grid__aside h2 {
  font-family: var(--ckv-font-heading);
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--ckv-forest);
  margin-bottom: 1.25rem;
}

/* ── Collapsible product list ── */
.ckv-cart-items {
  border-bottom: 1px solid rgba(var(--ckv-forest-rgb), 0.12);
  padding-bottom: 0.75rem;
  margin-bottom: 0.75rem;
}
.ckv-cart-items__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  background: none;
  border: none;
  padding: 0.375rem 0;
  cursor: pointer;
  font-family: var(--ckv-font-body);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ckv-forest);
  letter-spacing: 0.01em;
}
.ckv-cart-items__toggle:hover {
  color: var(--ckv-forest-deep);
}
.ckv-cart-items__chevron {
  transition: transform 0.3s ease;
  flex-shrink: 0;
  opacity: 0.6;
}
.ckv-cart-items__toggle[aria-expanded="true"] .ckv-cart-items__chevron {
  transform: rotate(180deg);
}
.ckv-cart-items__list {
  list-style: none;
  margin: 0;
  padding: 0.5rem 0 0;
}
.ckv-cart-items__product {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  padding: 0.5rem 0;
}
.ckv-cart-items__product + .ckv-cart-items__product {
  border-top: 1px solid rgba(var(--ckv-forest-rgb), 0.06);
}
.ckv-cart-items__thumb {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: 4px;
  overflow: hidden;
  /* Bílá kvůli sjednocení pozadí s dopadanými náhledy (#104). */
  background: var(--ckv-white);
}
.ckv-cart-items__thumb img {
  width: 100%;
  height: 100%;
  /* contain, ne cover — i u 48px náhledu v košíku má být vazba celá (#104). */
  object-fit: contain;
}
.ckv-cart-items__info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
}
.ckv-cart-items__name {
  font-family: var(--ckv-font-body);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--ckv-forest);
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.ckv-cart-items__attrs {
  font-family: var(--ckv-font-body);
  font-size: 0.6875rem;
  color: var(--ckv-olive);
  font-style: italic;
  line-height: 1.3;
}
.ckv-cart-items__ribbon-price {
  display: block;
  font-family: var(--ckv-font-body);
  font-size: 0.625rem;
  color: var(--ckv-rose-dusty);
  font-weight: 600;
  margin-top: 0.1rem;
}
.ckv-cart-items__qty {
  font-family: var(--ckv-font-body);
  font-size: 0.6875rem;
  color: var(--ckv-olive);
}
.ckv-cart-items__price {
  flex-shrink: 0;
  font-family: var(--ckv-font-body);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--ckv-forest);
  white-space: nowrap;
  padding-top: 0.0625rem;
}

/* ── Subtotals ── */
body.page-cart .cart-summary__subtotals {
  padding-bottom: 0.5rem;
}
body.page-cart .cart-summary__line {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-family: var(--ckv-font-body);
  font-size: 0.875rem;
  color: var(--ckv-forest);
  padding: 0.3125rem 0;
}
body.page-cart .cart-summary__line--bold {
  font-weight: 700;
  font-size: 0.9375rem;
  border-top: 1px solid rgba(var(--ckv-forest-rgb), 0.15);
  padding-top: 0.625rem;
  margin-top: 0.25rem;
}
body.page-cart .cart-summary__label { font-weight: 400; }
body.page-cart .cart-summary__value { font-weight: 600; }

/* Shipping note */
body.page-cart .cart-summary__shipping-note {
  font-size: 0.75rem;
  font-style: italic;
  font-weight: 400;
  color: var(--ckv-olive);
}

/* ── VAT totals refinement ── */
body.page-cart .cart-summary__total {
  border-top: 1px solid rgba(var(--ckv-forest-rgb), 0.15);
  margin-top: 0.25rem;
  padding-top: 0.5rem;
}
body.page-cart .cart-summary__total .cart-summary__line--bold:first-child {
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--ckv-olive);
  border-top: none;
  padding-top: 0;
  margin-top: 0;
}
body.page-cart .cart-summary__total .cart-summary__line--bold:last-of-type {
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--ckv-forest);
}

/* ── Checkout button ── */
body.page-cart .checkout a,
body.page-cart .cart-summary__actions a {
  display: block;
  width: 100%;
  background: var(--ckv-forest) !important;
  color: var(--ckv-cream) !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0.875rem 1.5rem !important;
  font-family: var(--ckv-font-body) !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  text-align: center !important;
  text-decoration: none !important;
  transition: background var(--ckv-duration) var(--ckv-ease) !important;
}
body.page-cart .checkout a:hover,
body.page-cart .cart-summary__actions a:hover { background: var(--ckv-forest-deep) !important; }

/* Recommended products section */
body.page-cart .module-products .section-title {
  font-family: var(--ckv-font-heading);
  font-size: 1.375rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--ckv-forest);
  text-transform: none;
}

/* "Všechny doporučené produkty" button */
body.page-cart .module-products__buttons a {
  font-family: var(--ckv-font-body);
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ckv-forest);
  border: 1px solid var(--ckv-forest);
  border-radius: 0;
}
body.page-cart .module-products__buttons a:hover { background: var(--ckv-forest); color: var(--ckv-cream); }

/* ==========================================================
   CART PAGE — Mobile responsiveness
   ========================================================== */
@media (max-width: 767px) {
  /* Grid — stack vertically */
  body.page-cart .cart-grid {
    flex-direction: column;
    padding: 1rem;
  }
  body.page-cart .cart-grid__content {
    flex: 1 1 auto;
    width: 100%;
  }
  body.page-cart .cart-grid__aside {
    flex: 1 1 auto;
    width: 100%;
    max-width: 100%;
  }

  /* Page title */
  body.page-cart .page-title-section {
    font-size: 1.375rem;
    margin-bottom: 1rem;
  }

  /* Product line — compact layout */
  body.page-cart .product-line__image {
    width: 60px;
    min-width: 60px;
  }
  body.page-cart .product-line__title {
    font-size: 0.8125rem;
  }
  body.page-cart .product-line__price,
  body.page-cart .product-line__item-price {
    font-size: 0.8125rem;
  }

  /* Quantity buttons */
  body.page-cart .quantity-button__group > button.btn {
    width: 28px;
    height: 28px;
  }
  body.page-cart .js-cart-line-product-quantity {
    width: 36px;
    height: 28px;
    font-size: 0.75rem;
  }

  /* Actions row */
  body.page-cart .product-line__actions {
    gap: 0.5rem;
  }

  /* Continue shopping button */
  body.page-cart .cart__continue-shopping {
    width: 100%;
    text-align: center;
    justify-content: center;
  }

  /* Summary sidebar */
  body.page-cart .cart-summary {
    padding: 1.25rem 1rem;
  }

  /* Similar products grid */
  .ck-cart-similar__products .products {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 0.75rem;
  }
  .ck-cart-similar__title {
    font-size: 1rem;
  }

  /* Checkout button */
  body.page-cart .checkout a,
  body.page-cart .cart-summary__actions a {
    padding: 0.75rem 1rem !important;
  }
}

@media (max-width: 375px) {
  body.page-cart .product-line__image {
    width: 48px;
    min-width: 48px;
  }
  body.page-cart .product-line__item--info {
    font-size: 0.6875rem;
  }
}

/* ==========================================================
   BREADCRUMB WRAPPER — override Hummingbird blue/grey bg
   ========================================================== */
.breadcrumb__wrapper {
  background-color: var(--bs-body-bg) !important;
  border-bottom: 1px solid var(--ckv-forest-tint);
}

/* ==========================================================
   DESKTOP CATEGORY SIDEBAR — "Filtrovat podle" heading
   ========================================================== */
@media (min-width: 992px) {
  :is(#category, #search) #left-column::before {
    display: none;
  }
}

/* Hide PS faceted search own "Filtrovat podle" label — toggle button serves this role */
:is(#category, #search) .search-filters > p:first-child { display: none !important; }

/* "Zobrazit vše" item injected by initDesktopSidebar() */
:is(#category, #search) .ck-all-link .category-tree__item-link {
  font-style: italic;
  opacity: 0.65;
}
:is(#category, #search) .ck-all-link .category-tree__item-link:hover {
  opacity: 1;
}

/* Desktop sidebar — always visible, no toggle */
@media (min-width: 992px) {
  :is(#category, #search) #left-column {
    flex: 0 0 260px;
    max-width: 260px;
  }
}

/* Střední sloupec má z Bootstrapu col-lg-9 (75 %). S pevným levým sloupcem
   260 px se to v kontejneru 960 px (992–1199 px) do řádku nevejde a výpis
   produktů spadl pod filtry (#194). Od 1200 px se vejde, tam se nic nemění. */
@media (min-width: 992px) and (max-width: 1199.98px) {
  /* 1199.98 jako Bootstrap: při zlomkové šířce okna (posuvník, škálování 125 %)
     nespadalo okno do žádného z intervalů a výpis šel pod sloupec (#198). */
  :is(#category, #search) #center-column {
    flex: 1 1 0;
    max-width: calc(100% - 260px);
  }
}

/* ==========================================================
   ACTIVE FILTERS — brand-styled chips (PS actual classes)
   ========================================================== */
#left-column #js-active-search-filters {
  margin-bottom: 0.5rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid rgba(var(--ckv-forest-rgb), 0.12);
}
/* Hide when no active filters */
#js-active-search-filters.hide {
  display: none !important;
}
#js-active-search-filters ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
  list-style: none;
  padding: 0;
  margin: 0;
}
#js-active-search-filters li.filter-block {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-family: var(--ckv-font-body);
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--ckv-forest);
  background: rgba(var(--ckv-forest-rgb), 0.06);
  border: 1px solid rgba(var(--ckv-forest-rgb), 0.18);
  padding: 0.25rem 0.375rem 0.25rem 0.5rem;
  line-height: 1.4;
}
/* Remove link (× icon) inside each chip */
#js-active-search-filters li.filter-block a.js-search-link {
  display: inline-flex;
  align-items: center;
  color: var(--ckv-forest);
  opacity: 0.5;
  text-decoration: none;
  margin-left: 0.1875rem;
  transition: opacity var(--ckv-duration) var(--ckv-ease);
}
#js-active-search-filters li.filter-block a.js-search-link:hover {
  opacity: 1;
}
#js-active-search-filters li.filter-block a.js-search-link .material-icons {
  font-size: 0.75rem;
  line-height: 1;
}

/* ==========================================================
   FACET FILTER PANEL — sidebar desktop styles
   ========================================================== */
/* Facet list items */
#search_filters .facet ul,
#search_filters .facet .collapse { list-style: none; padding: 0; margin: 0 0 0.5rem; }
#search_filters .facet li { padding: 0.1875rem 0; }
#search_filters .facet-label {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  cursor: pointer;
}
#search_filters .facet-label a.js-search-link {
  font-family: var(--ckv-font-body);
  font-size: 0.8125rem;
  color: var(--ckv-forest);
  text-decoration: none;
  line-height: 1.4;
}
#search_filters .facet-label a.js-search-link:hover { color: var(--ckv-rose-dusty); }
#search_filters .facet-label.active a.js-search-link { font-weight: 700; color: var(--ckv-forest); }
#search_filters .facet { border-bottom: 1px solid rgba(var(--ckv-forest-rgb), 0.08); padding-bottom: 0.875rem; margin-bottom: 0.875rem; }
#search_filters .facet:last-child { border-bottom: none; }

/* Chip link — brand style */
#js-active-search-filters .js-search-link {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.25rem !important;
  font-family: var(--ckv-font-body) !important;
  font-size: 0.5625rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  color: var(--ckv-forest) !important;
  background: none !important;
  border: 1px solid rgba(var(--ckv-forest-rgb), 0.3) !important;
  border-radius: 0 !important;
  padding: 0.3125rem 0.625rem !important;
  cursor: pointer !important;
  text-decoration: none !important;
  margin-bottom: 0.875rem !important;
  box-shadow: none !important;
  transition: background var(--ckv-duration) var(--ckv-ease),
              border-color var(--ckv-duration) var(--ckv-ease) !important;
}
#js-active-search-filters .js-search-link:hover {
  background: rgba(var(--ckv-forest-rgb), 0.12) !important;
  color: var(--ckv-forest) !important;
}
#js-active-search-filters .js-search-link .material-icons {
  font-size: 0.8125rem !important;
  line-height: 1 !important;
  opacity: 0.6;
}

/* ==========================================================
   CATEGORY PAGE CLEANUP — hide Hummingbird default elements
   ========================================================== */
/* Hide Hummingbird category header (subcategory grid + cover) */
#category .category__header { display: none !important; }
/* Hide category-tree "Domů" block title */
:is(#category, #search) #left-column .ps-categorytree .left-block__title,
:is(#category, #search) #left-column .ps-categorytree .left-block__title.d-md-block { display: none !important; }
/* Style the faceted-search "Filtrovat podle" heading */
:is(#category, #search) #left-column .left-block__title,
:is(#category, #search) #left-column .left-block__title.d-md-block {
  display: block !important;
  font-family: var(--ckv-font-body);
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--ckv-forest);
  opacity: 0.5;
  margin-bottom: 1.125rem;
  padding-bottom: 0.625rem;
  border-bottom: 1px solid rgba(var(--ckv-forest-rgb), 0.1);
}
/* Hide the secondary facets heading inside #search_filters */
#search_filters > p.h6.hidden-sm-down {
  display: none !important;
}
/* Hide "Aktivní filtry:" label — chips speak for themselves */
#js-active-search-filters .active-filter-title { display: none !important; }

/* ==========================================================
   FACET SECTION HEADINGS (TYP KVĚTIN, BARVA, CENA, KATEGORIE)
   Override Hummingbird .facet-title in desktop sidebar
   ========================================================== */
#search_filters .facet-title,
#search_filters .h6.facet-title {
  margin: 0 0 0.5rem;
  font-family: var(--ckv-font-body) !important;
  font-size: 0.6875rem !important;
  font-weight: 700 !important;
  color: var(--ckv-forest) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
}

/* ==========================================================
   SMAZAT VŠE — brand button to clear all active filters
   ========================================================== */
#_desktop_search_filters_clear_all {
  margin-bottom: 0.75rem;
}
.js-search-filters-clear-all {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.3rem !important;
  font-family: var(--ckv-font-body) !important;
  font-size: 0.625rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.09em !important;
  color: var(--ckv-rose) !important;
  background: transparent !important;
  border: 1px solid rgba(234,194,189,0.45) !important;
  border-radius: 0 !important;
  padding: 0.3rem 0.625rem !important;
  box-shadow: none !important;
  line-height: 1.4 !important;
  transition: background var(--ckv-duration) var(--ckv-ease),
              color var(--ckv-duration) var(--ckv-ease),
              border-color var(--ckv-duration) var(--ckv-ease) !important;
}
.js-search-filters-clear-all:hover,
.js-search-filters-clear-all:focus {
  color: var(--ckv-forest) !important;
  background: rgba(234,194,189,0.18) !important;
  border-color: var(--ckv-rose) !important;
  box-shadow: none !important;
}
.js-search-filters-clear-all .material-icons {
  font-size: 0.875rem !important;
  line-height: 1 !important;
}

/* ==========================================================
   CHECKOUT PAGE  (body.page-order)
   ========================================================== */

/* --- Step navigation bar --- */
body.page-order .checkout-steps {
  background: var(--ckv-cream);
  border-bottom: 1px solid rgba(var(--ckv-forest-rgb), 0.08);
  padding: 1.5rem 0 1.25rem;
}
body.page-order .checkout-steps__list {
  display: flex;
  justify-content: center;
  gap: 2rem;
  list-style: none;
  padding: 0;
  max-width: var(--ckv-container);
  margin: 0 auto;
}
body.page-order .checkout-steps__step {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  opacity: 0.4;
  transition: opacity 0.3s ease;
}
body.page-order .checkout-steps__step--current { opacity: 1; }

/* Step number circles */
body.page-order .checkout-steps__number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  border: 1.5px solid var(--ckv-forest);
  background: transparent;
  font-family: var(--ckv-font-heading);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ckv-forest);
  flex-shrink: 0;
  transition: background 0.3s ease, color 0.3s ease;
}
body.page-order .checkout-steps__step--current .checkout-steps__number {
  background: var(--ckv-forest);
  color: var(--ckv-cream);
}

/* Step labels */
body.page-order .checkout-steps__btn {
  font-family: var(--ckv-font-body);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ckv-forest);
  text-decoration: none;
  padding: 0;
  border: none;
  background: none;
}
body.page-order .checkout-steps__btn:hover,
body.page-order .checkout-steps__btn:focus { color: var(--ckv-rose-dusty); text-decoration: none; }
body.page-order .checkout-steps__btn.active { font-weight: 700; }

/* Connector line between steps */
body.page-order .checkout-steps__step + .checkout-steps__step::before {
  content: "";
  display: block;
  width: 2rem;
  height: 1px;
  background: rgba(var(--ckv-forest-rgb), 0.2);
  margin-right: 0.5rem;
}

/* --- Layout --- */
body.page-order .checkout-grid { max-width: var(--ckv-container); margin: 0 auto; padding: 2rem var(--ckv-gutter) 3rem; }
body.page-order .checkout-grid.row { --bs-gutter-x: 1.5rem; display: flex; flex-wrap: nowrap; }

/* --- Page title (h1) --- */
body.page-order .page-title-section {
  font-family: var(--ckv-font-heading);
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--ckv-forest);
  text-transform: none;
  margin-bottom: 1.5rem;
}

/* --- Form labels --- */
body.page-order label:not(.form-check-label) {
  font-family: var(--ckv-font-body);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--ckv-forest);
  letter-spacing: 0.02em;
  margin-bottom: 0.375rem;
}
body.page-order .form-check-label {
  font-family: var(--ckv-font-body);
  font-size: 0.8125rem;
  color: var(--ckv-forest);
  line-height: 1.5;
}

/* Required asterisk */
body.page-order .form-control-label::after,
body.page-order label .required { color: var(--ckv-rose-dusty); }

/* --- Form inputs --- */
body.page-order .form-control {
  font-family: var(--ckv-font-body);
  font-size: 0.875rem;
  color: var(--ckv-forest);
  background: var(--ckv-white);
  border: 1px solid rgba(var(--ckv-forest-rgb), 0.15);
  border-radius: 0.25rem;
  padding: 0.625rem 0.75rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
body.page-order .form-control:focus {
  border-color: var(--ckv-forest);
  box-shadow: 0 0 0 2px rgba(var(--ckv-forest-rgb), 0.08);
  outline: none;
}
body.page-order .form-control::placeholder {
  color: rgba(var(--ckv-forest-rgb), 0.35);
  font-style: italic;
}

/* Select dropdowns */
body.page-order select.form-control,
body.page-order .form-select {
  font-family: var(--ckv-font-body);
  font-size: 0.875rem;
  color: var(--ckv-forest);
  border: 1px solid rgba(var(--ckv-forest-rgb), 0.15);
  border-radius: 0.25rem;
  padding: 0.625rem 0.75rem;
}
body.page-order select.form-control:focus,
body.page-order .form-select:focus {
  border-color: var(--ckv-forest);
  box-shadow: 0 0 0 2px rgba(var(--ckv-forest-rgb), 0.08);
}

/* Radio + checkbox custom styling */
body.page-order .form-check-input {
  border-color: rgba(var(--ckv-forest-rgb), 0.3);
}
body.page-order .form-check-input:checked {
  background-color: var(--ckv-forest);
  border-color: var(--ckv-forest);
}
body.page-order .form-check-input:focus {
  box-shadow: 0 0 0 2px rgba(var(--ckv-forest-rgb), 0.12);
  border-color: var(--ckv-forest);
}

/* Help text below inputs */
body.page-order .form-text,
body.page-order .form-informations,
body.page-order .form-control-comment {
  font-family: var(--ckv-font-body);
  font-size: 0.75rem;
  color: var(--ckv-olive);
  opacity: 0.7;
}

/* --- Buttons --- */
body.page-order .btn-primary,
body.page-order .continue,
body.page-order [name="continue"] {
  background: var(--ckv-forest) !important;
  color: var(--ckv-cream) !important;
  border: none !important;
  border-radius: 0.25rem !important;
  padding: 0.75rem 2rem !important;
  font-family: var(--ckv-font-body) !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  transition: background 0.2s ease !important;
}
body.page-order .btn-primary:hover,
body.page-order .continue:hover,
body.page-order [name="continue"]:hover {
  background: var(--ckv-forest-deep) !important;
}

/* Secondary/outline buttons */
body.page-order .btn-outline-primary {
  color: var(--ckv-forest);
  border-color: var(--ckv-forest);
  background: transparent;
  font-family: var(--ckv-font-body);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-radius: 0.25rem;
}
body.page-order .btn-outline-primary:hover {
  background: var(--ckv-forest);
  color: var(--ckv-cream);
}

/* --- Summary sidebar --- */
body.page-order .checkout-grid__aside {
  position: sticky;
  top: 1.5rem;
}
body.page-order .checkout__summary-accordion-wrapper {
  background: var(--ckv-cream);
  padding: 1.25rem;
  border: 1px solid rgba(var(--ckv-forest-rgb), 0.06);
}
body.page-order .checkout__summary-accordion-wrapper h2,
body.page-order .cart-summary h2 {
  font-family: var(--ckv-font-heading);
  font-size: 1.125rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: var(--ckv-forest);
}
body.page-order .cart-summary__line {
  font-family: var(--ckv-font-body);
  font-size: 0.8125rem;
  color: var(--ckv-forest);
  padding: 0.25rem 0;
}
body.page-order .cart-summary__value { font-weight: 600; }

/* Shipping note in checkout summary */
body.page-order .cart-summary__shipping-note {
  font-size: 0.75rem;
  font-style: italic;
  font-weight: 400;
  color: var(--ckv-olive);
}

/* Delivery date/time in summary sidebar */
.cart-summary__delivery-info {
  border-top: 1px dashed rgba(var(--ckv-forest-rgb), 0.15);
  margin-top: 0.5rem;
  padding-top: 0.5rem;
}
.cart-summary__delivery-info .cart-summary__label {
  font-size: 0.75rem;
  color: var(--ckv-olive);
}
.cart-summary__delivery-info .cart-summary__value {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--ckv-forest);
}

/* Totals */
body.page-order .cart-summary__line--bold {
  font-weight: 700;
  font-size: 0.9375rem;
  border-top: 1px solid rgba(var(--ckv-forest-rgb), 0.12);
  padding-top: 0.625rem;
  margin-top: 0.25rem;
}

/* Show details toggle */
body.page-order .accordion-button,
body.page-order [data-bs-toggle="collapse"] {
  font-family: var(--ckv-font-body);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--ckv-forest);
}

/* Checkout action button */
body.page-order .checkout a.btn,
body.page-order .cart-summary__actions a {
  display: block;
  width: 100%;
  background: var(--ckv-forest) !important;
  color: var(--ckv-cream) !important;
  border: none !important;
  border-radius: 0.25rem !important;
  padding: 0.75rem 1.5rem !important;
  font-family: var(--ckv-font-body) !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  text-align: center !important;
  text-decoration: none !important;
  transition: background 0.2s ease !important;
}
body.page-order .checkout a.btn:hover,
body.page-order .cart-summary__actions a:hover {
  background: var(--ckv-forest-deep) !important;
}

/* --- Payment options --- */
body.page-order .payment-option {
  border: 1px solid rgba(var(--ckv-forest-rgb), 0.12);
  border-radius: 0.25rem;
  padding: 0.875rem 1rem;
  margin-bottom: 0.5rem;
  transition: border-color 0.2s ease;
}
body.page-order .payment-option:hover { border-color: rgba(var(--ckv-forest-rgb), 0.3); }
body.page-order .payment-option label {
  font-family: var(--ckv-font-body);
  font-weight: 600;
  color: var(--ckv-forest);
}
body.page-order .payment-option__input:checked + .payment-option__label {
  color: var(--ckv-forest);
}
body.page-order .payment-option .form-check {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
body.page-order .payment-option .form-check-input {
  flex-shrink: 0;
}
body.page-order .payment-option__label img {
  max-height: 28px;
  margin-right: 0.5rem;
}
body.page-order .payment-option__additional-information {
  padding: 0.75rem 1rem;
  font-size: 0.8125rem;
  color: var(--ckv-forest);
  opacity: 0.8;
  border-top: 1px solid rgba(var(--ckv-forest-rgb), 0.06);
  margin-top: 0.5rem;
}
body.page-order .payment-options__free {
  text-align: center;
  font-family: var(--ckv-font-heading);
  font-size: 1.125rem;
  color: var(--ckv-forest);
  padding: 2rem 1rem;
}
body.page-order #conditions-to-approve .form-check-label {
  font-size: 0.8125rem;
  color: var(--ckv-forest);
}
body.page-order #conditions-to-approve .form-check-label a {
  color: var(--ckv-rose);
  text-decoration: underline;
}
body.page-order .js-alert-payment-conditions {
  font-size: 0.8125rem;
}

/* --- Mobile responsive --- */
@media (max-width: 991px) {
  body.page-order .checkout-steps__list { gap: 0.75rem; padding: 0 1rem; }
  body.page-order .checkout-steps__btn { font-size: 0.625rem; }
  body.page-order .checkout-steps__number { width: 1.625rem; height: 1.625rem; font-size: 0.75rem; }
  body.page-order .checkout-steps__step + .checkout-steps__step::before { width: 1rem; }
  body.page-order .checkout-grid__aside { position: static; }
}

@media (max-width: 767px) {
  /* Step navigation — compact */
  body.page-order .checkout-steps__list {
    gap: 0.5rem;
    padding: 0 1rem;
  }
  body.page-order .checkout-steps__step + .checkout-steps__step::before {
    width: 1rem;
  }
  body.page-order .checkout-steps__btn {
    font-size: 0.625rem;
    letter-spacing: 0.04em;
  }
  body.page-order .checkout-steps__number {
    width: 1.5rem;
    height: 1.5rem;
    font-size: 0.75rem;
  }

  /* Layout — stack vertically */
  body.page-order .checkout-grid.row {
    flex-wrap: wrap !important;
  }
  body.page-order .checkout-grid__content {
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }
  body.page-order .checkout-grid__aside {
    position: static !important;
    width: 100% !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
    margin-top: 1.5rem;
  }

  /* Page title */
  body.page-order .page-title-section {
    font-size: 1.375rem;
  }

  /* Buttons — stack on mobile */
  body.page-order .buttons-wrapper--split {
    flex-direction: column;
    gap: 0.5rem;
  }
  body.page-order .buttons-wrapper--split .btn {
    width: 100%;
    justify-content: center;
  }

  /* Form grid padding */
  body.page-order .checkout-grid {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

/* --- Customer reassurance module — remove placeholder English text --- */
body.page-order .blockreassurance_product { display: none; }

/* ==========================================================
   HERO KATEGORIE — ikony v kroužku + volný popisek (dle návrhu)
   ========================================================== */
.ck-hero__categories {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-evenly;
  align-items: center;
  width: 100%;
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(var(--ckv-white-rgb), 0.18);
}

.ck-hero__cat {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 0.625rem;
  min-height: 44px;
  text-decoration: none;
  color: rgba(var(--ckv-white-rgb), 0.92);
  transition: color 0.3s ease;
}

.ck-hero__cat:hover { color: var(--ckv-white); }

.ck-hero__cat:focus-visible {
  outline: 2px solid var(--ckv-rose);
  outline-offset: 3px;
  border-radius: 999px;
}

.ck-hero__cat-icon {
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  border-radius: 50%;
  overflow: hidden;
  border: 1px solid rgba(var(--ckv-white-rgb), 0.5);
  transition: border-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}

.ck-hero__cat:hover .ck-hero__cat-icon {
  border-color: var(--ckv-rose);
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
}

.ck-hero__cat-icon img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}

.ck-hero__cat-label {
  font-family: var(--ckv-font-body);
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  white-space: nowrap;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}

@media (max-width: 767px) {
  /* Bez popisků se všech 7 ikon vejde do dvou zarovnaných řad,
     takže horizontální scroll (a s ním skrytý obsah) už není potřeba. */
  .ck-hero__categories {
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.875rem 1rem;
    overflow-x: visible;
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
  }

  .ck-hero__cat { flex: 0 0 auto; gap: 0; }
  .ck-hero__cat-icon { width: 46px; height: 46px; }
  .ck-hero__cat-icon img { width: 100%; height: 100%; object-fit: cover; }

  /* Popisek skrýváme jen vizuálně — obrázek ikony má alt="",
     takže bez textu by odkaz neměl pro čtečky žádný název. */
  .ck-hero__cat-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
  }
}

/* ==========================================================
   KAM DORUCUJEME — SVG radiusova mapa (ckd__*)
   ========================================================== */

/* --- Chips (legend) --- */
.ckd__chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem;
  margin-bottom: 1.75rem;
}
.ckd__chip {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 1rem;
  font-family: var(--ckv-font-body);
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--ckv-forest);
  background: var(--ckv-white);
  border: 1px solid rgba(var(--ckv-forest-rgb), 0.18);
  border-radius: 999px;
  cursor: pointer;
  transition: border-color 0.25s ease, background 0.25s ease, transform 0.25s ease;
}
.ckd__chip:hover { border-color: var(--ckv-rose-dusty); transform: translateY(-1px); }
.ckd__chip.is-active { background: var(--ckv-blush); border-color: var(--ckv-rose-dusty); }
.ckd__chip:focus-visible { outline: 2px solid var(--ckv-rose); outline-offset: 2px; }
.ckd__chip--info {
  cursor: default;
  border-style: dashed;
  color: var(--ckv-olive);
  font-style: italic;
}
.ckd__chip--info:hover { border-color: rgba(var(--ckv-forest-rgb), 0.12); transform: none; }
.ckd__chip-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }

/* --- Body: map + search side by side --- */
.ckd__body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5rem;
  align-items: start;
}

/* --- SVG map --- */
.ckd__map-col { position: relative; }
.ckd__map-wrap {
  position: relative;
  overflow: hidden;
  border-radius: 50%;
  max-width: 400px;
  margin: 0 auto;
  aspect-ratio: 1 / 1;
  background: var(--ckv-cream);
  box-shadow: 0 2px 24px rgba(var(--ckv-forest-rgb), 0.08);
}
.ckd__map-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background-repeat: no-repeat;
  filter: grayscale(0.8) sepia(0.2) opacity(0.35);
  pointer-events: none;
  z-index: 0;
  transition: opacity 0.5s ease;
}
/* Close-up — zoom 12, Brno-Komín detail (default) */
.ckd__map-bg--close {
  background-image: url('https://tile.openstreetmap.org/12/2236/1403.png');
  background-size: 200%;
  background-position: 64% 8%;
  opacity: 1;
}
/* Far — zoom 9, Brno region, covers full circle */
.ckd__map-bg--far {
  background-image: url('https://tile.openstreetmap.org/9/279/175.png');
  background-size: 135%;
  background-position: 80% 11%;
  opacity: 0;
}
/* Crossfade when a zone is active */
.ckd.is-zoomed .ckd__map-bg--close { opacity: 0; }
.ckd.is-zoomed .ckd__map-bg--far { opacity: 1; }
.ckd__svg {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  display: block;
}
.ckd__ring {
  transition: fill-opacity 0.3s ease, stroke-width 0.3s ease, stroke-opacity 0.3s ease;
}
.ckd__zone-label {
  font-family: var(--ckv-font-body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  fill: rgba(var(--ckv-forest-rgb), 0.6);
  text-transform: uppercase;
  transition: opacity 0.3s ease;
}
.ckd__shop-label {
  font-family: var(--ckv-font-heading);
  font-size: 10px;
  font-weight: 600;
  fill: var(--ckv-forest);
}
.ckd__shop-sublabel {
  font-family: var(--ckv-font-body);
  font-size: 7.5px;
  fill: rgba(var(--ckv-forest-rgb), 0.5);
  letter-spacing: 0.04em;
}
.ckd__caption {
  text-align: center;
  font-family: var(--ckv-font-body);
  font-size: 0.75rem;
  color: rgba(var(--ckv-forest-rgb), 0.45);
  margin-top: 0.75rem;
  font-style: italic;
}

/* --- Search column --- */
.ckd__search-col {
  padding-top: 1rem;
  padding-right: 1rem;
}
.ckd__label {
  display: block;
  font-family: var(--ckv-font-body);
  font-size: 0.5625rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ckv-forest);
  margin-bottom: 0.5rem;
}
.ckd__search-row { display: flex; gap: 0.5rem; }
.ckd__input {
  flex: 1;
  padding: 0.625rem 0.875rem;
  font-family: var(--ckv-font-heading);
  font-size: 0.9375rem;
  color: var(--ckv-forest);
  border: 1px solid rgba(var(--ckv-forest-rgb), 0.2);
  border-radius: 0;
  background: var(--ckv-white);
  outline: none;
  transition: border-color 0.2s ease;
}
.ckd__input:focus { border-color: var(--ckv-forest); }
.ckd__input::placeholder { color: rgba(var(--ckv-forest-rgb), 0.3); font-style: italic; }
.ckd__btn {
  flex-shrink: 0;
  padding: 0.625rem 1.25rem;
  font-family: var(--ckv-font-body);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ckv-cream);
  background: var(--ckv-forest);
  border: none;
  cursor: pointer;
  transition: background 0.2s ease;
}
.ckd__btn:hover { background: var(--ckv-forest-deep); }

/* --- Result box --- */
.ckd__result {
  margin-top: 1rem;
  padding: 1rem 1.25rem;
  font-family: var(--ckv-font-body);
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--ckv-forest);
  background: var(--ckv-blush);
  border-left: 3px solid var(--ckv-rose-dusty);
}
.ckd__result.is-error { background: #fdf6f0; border-left-color: var(--ckv-olive); }
.ckd__result-note { display: block; margin-top: 0.375rem; font-size: 0.78rem; opacity: 0.65; }

/* --- Info note --- */
/* Ceník pásem pod hledáním obce (#243) */
.ckd__pricing {
  list-style: none;
  margin: 1.25rem 0 0;
  padding: 0;
  font-family: var(--ckv-font-body);
  font-size: 0.875rem;
  color: rgba(var(--ckv-forest-rgb), 0.8);
  line-height: 1.7;
}
.ckd__pricing li {
  padding-left: 1rem;
  position: relative;
}
.ckd__pricing li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.7em;
  width: 0.375rem;
  height: 0.375rem;
  border-radius: 50%;
  background: rgba(var(--ckv-forest-rgb), 0.35);
}
.ckd__pricing strong { color: var(--ckv-forest); font-weight: 600; }
.ckd__note {
  font-family: var(--ckv-font-body);
  font-size: 0.8125rem;
  color: rgba(var(--ckv-forest-rgb), 0.55);
  line-height: 1.6;
  margin-top: 1.25rem;
}
.ckd__note:last-child { margin-top: 0.625rem; }
.ckd__link {
  color: var(--ckv-forest);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid rgba(var(--ckv-forest-rgb), 0.2);
  transition: border-color 0.2s ease;
}
.ckd__link:hover { border-color: var(--ckv-forest); }

/* --- Responsive --- */
@media (max-width: 767px) {
  .ckd__chips {
    justify-content: flex-start;
    overflow-x: auto;
    flex-wrap: nowrap;
    scrollbar-width: none;
    padding-bottom: 0.25rem;
    gap: 0.375rem;
  }
  .ckd__chips::-webkit-scrollbar { display: none; }
  .ckd__chip { flex: 0 0 auto; font-size: 0.75rem; padding: 0.3125rem 0.75rem; }
  .ckd__body { grid-template-columns: 1fr; gap: 1.5rem; }
  .ckd__map-wrap { max-width: 320px; }
  .ckd__search-col { padding-top: 0; padding-right: 0; }
  .ckd__input { font-size: 0.875rem; }
}

/* ==========================================================
   VELKÝ DESKTOP (>=1600px) — vzdušnější hero
   ========================================================== */
@media (min-width: 1600px) {
  .ck-hero__desc { max-width: 34rem; }
  .ck-hero__cat-icon { width: 48px; height: 48px; }
  .ck-hero__cat-icon img { width: 100%; height: 100%; object-fit: cover; }
  .ck-hero__cat-label { font-size: 0.875rem; }
}

/* ==========================================================
   FLATPICKR — CKV brand override
   ========================================================== */
.flatpickr-calendar {
  font-family: var(--ckv-font-body);
  border: 1px solid var(--ckv-forest-tint);
  border-radius: 0.5rem;
  box-shadow: 0 4px 20px rgba(var(--ckv-forest-rgb), 0.12);
}
.flatpickr-months .flatpickr-month,
.flatpickr-current-month .flatpickr-monthDropdown-months {
  color: var(--ckv-forest);
}
.flatpickr-current-month input.cur-year { color: var(--ckv-forest); }
span.flatpickr-weekday { color: var(--ckv-olive); font-weight: 600; }
.flatpickr-day {
  color: var(--ckv-text);
  border-radius: 0.25rem;
}
.flatpickr-day.today {
  border-color: var(--ckv-rose-dusty);
}
.flatpickr-day.selected,
.flatpickr-day.selected:hover {
  background: var(--ckv-forest);
  border-color: var(--ckv-forest);
  color: var(--ckv-white);
}
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover {
  color: var(--ckv-sage);
  opacity: 0.35;
  text-decoration: line-through;
}

/* ===== CKV Lightbox – zvětšení produktové fotky ===== */
.ckv-lightbox { position: fixed; inset: 0; z-index: 10000; display: none; align-items: center; justify-content: center; background: rgba(20,24,20,0.92); padding: 2rem; cursor: zoom-out; }
.ckv-lightbox.is-open { display: flex; }
.ckv-lightbox__img { max-width: 92vw; max-height: 88vh; object-fit: contain; background: var(--ckv-white); box-shadow: 0 12px 48px rgba(0,0,0,0.45); }
.ckv-lightbox__close { position: absolute; top: 0.75rem; right: 1.1rem; background: none; border: none; color: var(--ckv-white); font-size: 2.6rem; line-height: 1; cursor: pointer; }

/* Šipky pro překlikávání fotek — záměrně bez brandového (zeleného) podkladu,
   jen samotný symbol nad ztmavenou plochou. */
.ckv-lightbox__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem;
  background: none;
  border: none;
  color: var(--ckv-white);
  cursor: pointer;
  opacity: 0.75;
  transition: opacity 0.2s ease;
}
.ckv-lightbox__nav:hover,
.ckv-lightbox__nav:focus-visible { opacity: 1; }
.ckv-lightbox__nav--prev { left: 0.5rem; }
.ckv-lightbox__nav--next { right: 0.5rem; }
.ckv-lightbox__counter {
  position: absolute;
  top: 1.1rem;
  left: 1.25rem;
  font-family: var(--ckv-font-body);
  font-size: 0.8125rem;
  letter-spacing: 0.06em;
  color: var(--ckv-white);
  opacity: 0.7;
}
@media (max-width: 575px) {
  .ckv-lightbox__nav { padding: 0.5rem; }
  .ckv-lightbox__nav--prev { left: 0; }
  .ckv-lightbox__nav--next { right: 0; }
}

/* ===== Stránka po objednávce (order-confirmation) – sladění s brandem ===== */
body.page-order-confirmation #content-wrapper,
body.page-order-confirmation #content {
  max-width: 760px;
  margin: 2.5rem auto;
  padding: 0 var(--ckv-gutter);
}
.ckv-oc-header {
  display: flex; flex-direction: column; align-items: center; text-align: center;
  gap: 0.5rem; padding: 2.5rem 1.5rem 2rem;
  background: var(--ckv-cream); border: 1px solid rgba(var(--ckv-forest-rgb), 0.08);
  border-radius: 0.75rem; margin-bottom: 1.75rem;
}
.ckv-oc-check {
  display: inline-flex; align-items: center; justify-content: center;
  width: 76px; height: 76px; border-radius: 50%; background: var(--ckv-white);
  color: var(--ckv-forest); box-shadow: 0 4px 18px rgba(var(--ckv-forest-rgb), 0.12); margin-bottom: 0.5rem;
}
.ckv-oc-head-text h1, .ckv-oc-head-text .h1,
body.page-order-confirmation #content h1 {
  font-family: var(--ckv-font-heading) !important;
  font-size: clamp(1.5rem, 3vw, 2.1rem) !important; font-weight: 300 !important;
  letter-spacing: 0.04em; color: var(--ckv-forest) !important; margin: 0.25rem 0 0.5rem;
}
.ckv-oc-sub {
  font-family: var(--ckv-font-body); font-size: 0.95rem; line-height: 1.7;
  color: var(--ckv-forest); opacity: 0.8; max-width: 520px; margin: 0 auto;
}
body.page-order-confirmation .card,
body.page-order-confirmation .order-confirmation-table {
  background: var(--ckv-white); border: 1px solid rgba(var(--ckv-forest-rgb), 0.08) !important;
  border-radius: 0.75rem; box-shadow: 0 2px 12px rgba(var(--ckv-forest-rgb), 0.06);
  padding: 1.5rem; margin-bottom: 1.25rem;
}
body.page-order-confirmation .card-title,
body.page-order-confirmation h3, body.page-order-confirmation h4 {
  font-family: var(--ckv-font-heading); font-weight: 400; color: var(--ckv-forest);
}
body.page-order-confirmation table, body.page-order-confirmation .table {
  font-family: var(--ckv-font-body); color: var(--ckv-forest);
}
body.page-order-confirmation .additional-information {
  background: var(--ckv-cream); border: 1px solid rgba(var(--ckv-forest-rgb), 0.08);
  border-radius: 0.75rem; padding: 1.25rem 1.5rem;
  font-family: var(--ckv-font-body); color: var(--ckv-forest); line-height: 1.7;
}
body.page-order-confirmation .btn-primary, body.page-order-confirmation .btn {
  background: var(--ckv-forest); border: none; color: var(--ckv-cream) !important;
  border-radius: 0.375rem; font-family: var(--ckv-font-body);
  letter-spacing: 0.06em; text-transform: uppercase; font-size: 0.8rem; font-weight: 700;
}
body.page-order-confirmation .btn-primary:hover, body.page-order-confirmation .btn:hover {
  background: var(--ckv-rose-dusty);
}

/* QR kód platby (modul ckv_qrplatba) – jen u platby převodem */
.ckv-qrplatba {
  background: var(--ckv-white); border: 1px solid rgba(var(--ckv-forest-rgb), 0.08);
  border-radius: 0.75rem; box-shadow: 0 2px 12px rgba(var(--ckv-forest-rgb), 0.06);
  padding: 1.5rem; margin-bottom: 1.25rem;
  font-family: var(--ckv-font-body); color: var(--ckv-forest);
}
.ckv-qrplatba__title {
  font-family: var(--ckv-font-heading); font-weight: 400; font-size: 1.25rem;
  color: var(--ckv-forest); margin: 0 0 1rem;
}
.ckv-qrplatba__body { display: flex; flex-wrap: wrap; gap: 1.5rem; align-items: flex-start; }
.ckv-qrplatba__qr { margin: 0; text-align: center; flex: 0 0 auto; }
.ckv-qrplatba__qr img {
  display: block; width: 220px; max-width: 100%; height: auto;
  border: 1px solid rgba(var(--ckv-forest-rgb), 0.12); border-radius: 0.5rem; background: var(--ckv-white);
}
.ckv-qrplatba__qr figcaption { font-size: 0.85rem; opacity: 0.75; margin-top: 0.5rem; }
.ckv-qrplatba__details {
  display: grid; grid-template-columns: auto 1fr; gap: 0.35rem 1rem;
  margin: 0; flex: 1 1 260px; font-size: 1rem; line-height: 1.5;
}
.ckv-qrplatba__details dt { font-weight: 600; margin: 0; }
.ckv-qrplatba__details dd { margin: 0; overflow-wrap: anywhere; }
.ckv-qrplatba__note { margin: 1rem 0 0; font-size: 0.9rem; line-height: 1.6; opacity: 0.85; }
@media (max-width: 575px) {
  .ckv-qrplatba__body { flex-direction: column; align-items: center; }
  .ckv-qrplatba__details { width: 100%; }
}

/* === WebP přes <picture> (#234) ============================================
   Logo, hero, sekce O nás, karty na úvodní stránce a quick view mají obrázek
   zabalený v <picture> (WebP + původní soubor jako záloha). Aby se layout
   nezměnil, chová se obal, jako by tam nebyl — pravidla cílí na <img> dál. */
.ck-topnav__brand picture,
.ck-header-mobile__logo picture,
.ck-footer__brand-logo picture,
.ck-sidebar__logo-link picture,
.ck-hero__media picture,
.ck-intro__bg picture,
.ck-product-card__image picture,
.quickview .product__left picture {
  display: contents;
}

/* === Lišta „Máte nezaplacenou objednávku" (gpwebpay 1.1.0) ==================
   Košík a pokladna, hook displayContentWrapperTop. Objednávka placená kartou
   vzniká před přesměrováním na bránu a košík se k ní uzavře — kdo z brány
   odejde bez zaplacení, viděl prázdný košík bez vysvětlení. */
.ckv-pending-payment {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.5rem;
  margin: 0 0 1.5rem;
  padding: 1rem 1.25rem;
  border: 1px solid var(--ckv-rose-dusty);
  border-left-width: 4px;
  border-radius: 6px;
  background: var(--ckv-blush);
  color: var(--ckv-text);
}
.ckv-pending-payment__body { flex: 1 1 320px; min-width: 0; }
.ckv-pending-payment__title { margin: 0 0 0.25rem; font-weight: 700; }
.ckv-pending-payment__total { font-weight: 400; color: var(--ckv-text-muted); }
.ckv-pending-payment__text { margin: 0; font-size: 0.9rem; line-height: 1.6; }
.ckv-pending-payment__text a { color: inherit; text-decoration: underline; }
.ckv-pending-payment__btn { flex: 0 0 auto; white-space: nowrap; }
@media (max-width: 575px) {
  .ckv-pending-payment__btn { flex-basis: 100%; text-align: center; }
}
/* Z hooku displayWrapperTop (pokladna, #303) stojí lišta nad .container
   layoutu — obal drží stejný odsazený sloupec jako obsah pod ní. */
.ckv-pending-payment__container { padding-top: 1.5rem; }
