:root {
  --eshop-fialova: #4c1d95;
  --eshop-cerna: #2b2b2b;
}
body {
  margin: 0;
  background: #fff;
  color: #222;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  line-height: 1.5;
}
.layout-container { max-width: 1280px; margin: 0 auto; padding: 0 1.5rem; }

/* hlavička v jednom řádku */
.site-top__main {
  display: flex; align-items: center; gap: 2rem;
  padding: 1.25rem 0; border-bottom: 2px solid var(--eshop-cerna);
}
.site-top__main .region { display: flex; align-items: center; gap: 2rem; flex: 1 1 auto; }
.site-top__menus { display: flex; align-items: center; gap: 1.5rem; margin-left: auto; }
.site-top__menus .region { flex: 0 0 auto; gap: 1.5rem; }
.site-top__menus ul { display: flex; gap: 1.5rem; list-style: none; margin: 0; padding: 0; }
.site-top__menus a { color: var(--eshop-cerna); font-weight: 600; text-decoration: none; }
.site-top__menus a:hover { text-decoration: underline; }

/* název obchodu (logo-odkaz „Home“ skryjeme) */
.block-system-branding-block > a:first-child:not(:last-child) { display: none; }
.block-system-branding-block a {
  color: var(--eshop-fialova); font-size: 2rem; font-weight: 700;
  text-decoration: none; white-space: nowrap;
}
.block-eshop-katalog-hledat { flex: 1 1 360px; max-width: 620px; }

/* drobečky vlevo, košík vpravo */
.site-sub { padding: .75rem 0; }
.site-sub .region { display: flex; justify-content: space-between; align-items: center; width: 100%; }
.site-sub ol { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 0; padding: 0; }
.site-sub li + li::before { content: "›"; margin-right: .5rem; }
.site-sub a { color: var(--eshop-fialova); font-weight: 600; text-decoration: none; }
.site-sub a:hover { text-decoration: underline; }
.block-commerce-cart a { font-weight: 700; }

h1 { font-size: 2.5rem; margin: 1rem 0; }

.messages {
  border: 2px solid var(--eshop-cerna);
  padding: 1rem 1.25rem; margin: 1rem 0;
}

.tabs ul, .region-highlighted ul { display: flex; gap: 1rem; list-style: none; padding: 0; }

.site-footer { border-top: 2px solid var(--eshop-cerna); margin-top: 2rem; padding: 1rem 0; }

/* ---------- čára pod hlavičkou: hodnoty z vzhled.css (--ek-cara-*) ---------- */
.site-top__main {
  padding: 1.25rem 0 1rem;
  border-bottom: 0;
  border-style: solid;
  border-width: 0 0 var(--ek-cara-sirka, 5px) 0;
  border-image: linear-gradient(to right,
      transparent 0%,
      var(--ek-cara-barva, #2b2b2b) var(--ek-cara-rozplynuti, 25%),
      var(--ek-cara-barva, #2b2b2b) calc(100% - var(--ek-cara-rozplynuti, 25%)),
      transparent 100%) 1;
}

/* drobečky a košík těsně pod čárou */
.site-sub { padding: .4rem 0 .75rem; }

/* ---------- barvy odkazů: hodnoty z barvy.css (--ek-odkaz*, --ek-nazev-webu) ---------- */
.block-system-branding-block a,
.block-system-branding-block a:visited { color: var(--ek-nazev-webu, #1f5f99); }

.site-sub a,
.site-sub a:visited,
main a:not(.button):link,
main a:not(.button):visited { color: var(--ek-odkaz, #1f5f99); }

.site-sub a:hover,
main a:not(.button):hover { color: var(--ek-odkaz-hover, #174a78); }

.site-sub a:active,
main a:not(.button):active { color: var(--ek-odkaz-aktivni, #c0392b); }

/* ---------- patička: odkazy a pod nimi čára nad logem Drupal ---------- */
.site-footer { border-top: 0; margin-top: 2rem; padding: 0 0 1.5rem; }
.site-footer ol { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 0; padding: 0; }
.site-footer li + li::before { content: "›"; margin-right: .5rem; }
.site-footer ol a,
.site-footer ol a:visited { color: var(--ek-odkaz, #1f5f99); font-weight: 600; text-decoration: none; }
.site-footer ol a:hover { color: var(--ek-odkaz-hover, #174a78); text-decoration: underline; }

.block-system-powered-by-block {
  margin-top: 1rem;
  padding-top: .75rem;
  border-style: solid;
  border-width: var(--ek-cara-paticka-sirka, 5px) 0 0 0;
  border-image: linear-gradient(to right,
      transparent 0%,
      var(--ek-cara-paticka-barva, #2b2b2b) var(--ek-cara-paticka-rozplynuti, 25%),
      var(--ek-cara-paticka-barva, #2b2b2b) calc(100% - var(--ek-cara-paticka-rozplynuti, 25%)),
      transparent 100%) 1;
}

/* ---------- pevná horní část: karty mizí těsně pod drobečky ---------- */
.site-sticky {
  position: sticky;
  top: var(--drupal-displace-offset-top, 0px);
  z-index: 50;
  background: #fff;
}
.site-sub { padding: .4rem 0 .35rem; }
.site-body { padding-top: var(--ek-mezera-pod-drobecky, 54px); }

/* ---------- řádek drobečků pod čárou (upravujte jen tady) ---------- */
:root {
  --ek-drobecky-nahore: 0.4px;  /* mezera mezi čárou a textem */
  --ek-drobecky-dole:   0.6px;  /* mezera pod textem = tady se rolované karty schovávají */
}
.site-sub { padding: var(--ek-drobecky-nahore) 0 var(--ek-drobecky-dole); }

/* ---------- košík v řádku drobečků nesmí zvětšovat řádek ---------- */
.site-sub .region { align-items: flex-start; }
.site-sub .block-commerce-cart,
.site-sub .block-commerce-cart * {
  margin: 0;
  padding: 0;
  min-height: 0;
  line-height: 1.5;
}
.site-sub .block-commerce-cart a { display: inline; }

/* ---------- zúžení pruhu pod textem drobečků (upravujte jen tady) ---------- */
:root {
  --ek-drobecky-zuzeni: -3px;   /* záporné číslo = užší pruh pod textem, 0 = původní */
}
.site-sticky { display: flow-root; }
.site-sub { margin-bottom: var(--ek-drobecky-zuzeni, -3px); }

/* ---------- levý sloupec: strom kategorií (upravujte jen tady) ---------- */
:root {
  --ek-strom-sirka: 270px;   /* šířka levého sloupce */
  --ek-strom-top: 140px;     /* kolik místa nahoře zabírá pevná hlavička (aby sloupec nezajížděl pod ni) */
  --ek-strom-vodici: #d0d0d0; /* svislá čára u podkategorií */
}
main:has(.layout-sidebar-first) {
  display: grid;
  grid-template-columns: var(--ek-strom-sirka) minmax(0, 1fr);
  gap: 2rem;
  align-items: start;
}
main:has(.layout-sidebar-first) > #main-content { position: absolute; }
main:has(.layout-sidebar-first) .layout-sidebar-first { grid-column: 1; grid-row: 1; }
main:has(.layout-sidebar-first) .layout-content { grid-column: 2; grid-row: 1; min-width: 0; }
.layout-sidebar-first {
  position: sticky;
  top: calc(var(--drupal-displace-offset-top, 0px) + var(--ek-strom-top));
  max-height: calc(100vh - var(--ek-strom-top) - 1rem);
  overflow-y: auto;
}
.block-eshop-katalog-strom h2 { font-size: 1.125rem; margin: 0 0 .5rem; }

.ek-strom__seznam { list-style: none; margin: 0; padding: 0; }
.ek-strom__seznam .ek-strom__seznam {
  margin: 0 0 .25rem .5rem; padding-left: .9rem;
  border-left: 2px solid var(--ek-strom-vodici);
}
.ek-strom__polozka { margin: 0; }
.ek-strom a { display: inline-block; padding: .2rem 0; text-decoration: none; line-height: 1.3; }
.ek-strom a:hover { text-decoration: underline; }
.ek-strom__list { padding-left: 1.2rem; }
.ek-strom summary { display: flex; align-items: center; gap: .3rem; cursor: pointer; list-style: none; }
.ek-strom summary::-webkit-details-marker { display: none; }
.ek-strom summary::marker { content: ""; }
.ek-strom summary::before { content: "▸"; width: .9rem; flex: none; transition: transform .15s; }
.ek-strom details[open] > summary::before { transform: rotate(90deg); }
.ek-strom .is-trail > details > summary a,
.ek-strom .is-active > a,
.ek-strom .is-active > details > summary a { font-weight: 700; }

/* podkategorie jako dlaždice nad kartami už nejsou potřeba (jsou vlevo) – smažte řádek, pokud je chcete mít zpět */
.ek-subcats { display: none; }

@media (max-width: 900px) {
  main:has(.layout-sidebar-first) { display: block; }
  .layout-sidebar-first { position: static; max-height: none; margin-bottom: 1rem; }
}

/* logo Drupalu v hlavičce skrýt i pro přihlášeného správce (kontextové menu mění pořadí prvků) */
.block-system-branding-block a:has(> img) { display: none; }

/* podkategorie nad kartami nepotřebujeme, jsou ve stromu vlevo */
ul.ek-subcats { display: none !important; }
.item-list:has(> ul.ek-subcats) { display: none !important; }

/* ---------- místo pro tlačítko košíku rezervované předem (karty pak při načítání necukají) ---------- */
:root {
  --ek-kosik-oblast-vyska: 3rem;   /* zhruba výška tlačítka včetně okrajů; změnit, pokud karty stále cukají nebo je pod nimi mezera */
}
.ek-card .field--name-variations { min-height: var(--ek-kosik-oblast-vyska); }

/* ---------- pevná plocha pro obrázek v kartě (karty pak při načítání necukají) ---------- */
:root {
  --ek-obrazek-vyska: 180px;   /* výška plochy pro fotku; obrázek se do ní vejde celý */
}
.ek-card > a:first-child {
  display: flex;
  align-items: center;
  justify-content: center;
  height: var(--ek-obrazek-vyska);
  overflow: hidden;
}
.ek-card > a:first-child img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}

/* podkategorie jako bubliny nad kartami (jsou ve stromu vlevo) – skrýt bez ohledu na značku, na které je třída */
.ek-subcats,
.ek-subcats * { display: none !important; }
.item-list:has(.ek-subcats) { display: none !important; }

/* ===== Stránkování: horizontálně, jako tlačítka ===== */
:root {
  --ek-pager-barva: #2b2b2b;          /* rámeček a text */
  --ek-pager-sirka: 2px;              /* tloušťka rámečku */
  --ek-pager-aktivni: var(--eshop-fialova, #6b2c91);  /* aktuální stránka a hover */
  --ek-pager-zaobleni: 6px;
  --ek-pager-mezera: .45rem;
  --ek-pager-nahore: 1.6rem;          /* odstup od karet */
}
nav.pager,
.pager {
  margin: var(--ek-pager-nahore) 0 1rem;
  display: flex;
  justify-content: center;
}
.pager ul,
.pager__items,
.pager .item-list ul {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: var(--ek-pager-mezera);
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.pager li,
.pager__item {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.pager li::marker,
.pager__item::marker { content: none; }
.pager li a,
.pager__item a,
.pager__item--ellipsis,
.pager li.pager__item--ellipsis {
  display: inline-block;
  min-width: 2.5rem;
  padding: .5rem .8rem;
  text-align: center;
  line-height: 1.2;
  font-weight: 600;
  text-decoration: none !important;
  color: var(--ek-pager-barva) !important;
  background: #fff;
  border: var(--ek-pager-sirka) solid var(--ek-pager-barva);
  border-radius: var(--ek-pager-zaobleni);
  transition: background .15s, color .15s, border-color .15s;
}
.pager li.pager__item--ellipsis {
  border-color: transparent;
  background: none;
  min-width: 0;
  padding-left: .2rem;
  padding-right: .2rem;
}
.pager li a:hover,
.pager li a:focus-visible,
.pager__item a:hover,
.pager__item a:focus-visible {
  background: var(--ek-pager-aktivni);
  border-color: var(--ek-pager-aktivni);
  color: #fff !important;
}
/* aktuální stránka */
.pager__item--current,
.pager li.is-active,
.pager li.pager__item--current a,
.pager li a[aria-current="page"],
.pager li a.is-active {
  background: var(--ek-pager-aktivni) !important;
  border-color: var(--ek-pager-aktivni) !important;
  color: #fff !important;
}
.pager__item--current { display: inline-block; padding: .5rem .8rem; min-width: 2.5rem; text-align: center; border: var(--ek-pager-sirka) solid var(--ek-pager-aktivni); border-radius: var(--ek-pager-zaobleni); font-weight: 600; }

/* ===== Stránkování: menší tlačítka, aby se vešla do jedné řady ===== */
:root {
  --ek-pager-sirka: 1.5px;
  --ek-pager-mezera: .25rem;
}
.pager li a,
.pager__item a,
.pager__item--current {
  min-width: 2rem;
  padding: .3rem .55rem !important;
  font-size: 1rem;
}
@media (min-width: 700px) {
  .pager ul,
  .pager__items,
  .pager .item-list ul { flex-wrap: nowrap; }
}

/* ===== Karta: vlevo sklad, vpravo cena ===== */
:root {
  --ek-sklad-ano: #1e7e34;
  --ek-sklad-malo: #b9770e;
  --ek-sklad-nic: #c0392b;
  --ek-sklad-velikost: 1rem;
}
.ek-card .ek-radek {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: .25rem .75rem;
}
.ek-card .ek-radek .ek-price {
  margin-left: auto;
  text-align: right;
  white-space: nowrap;
}
.ek-card .ek-sklad {
  font-size: var(--ek-sklad-velikost);
  font-weight: 600;
}
.ek-sklad--ano  { color: var(--ek-sklad-ano); }
.ek-sklad--malo { color: var(--ek-sklad-malo); }
.ek-sklad--nic  { color: var(--ek-sklad-nic); }

/* ===== Karta: počet kusů vedle tlačítka Vložit do košíku ===== */
:root {
  --ek-mnozstvi-sirka: 4.2rem;
}
.ek-card form {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
}
.ek-card form .form-item,
.ek-card form [class*="field--name-quantity"] {
  display: flex;
  align-items: center;
  gap: .35rem;
  margin: 0;
}
.ek-card form label { font-size: 1rem; margin: 0; }
.ek-card form input[type="number"] {
  width: var(--ek-mnozstvi-sirka);
  padding: .3rem .4rem;
  font-size: 1rem;
  text-align: center;
  border: 1.5px solid #2b2b2b;
  border-radius: 4px;
}

/* ===== Počet kusů: malý výběr s šipkami ===== */
:root { --ek-mnozstvi-sirka: 3.4rem; }
.ek-card form input[type="number"] {
  width: var(--ek-mnozstvi-sirka);
  min-width: 0;
  padding: .25rem .2rem .25rem .4rem;
  text-align: center;
  -moz-appearance: number-input;
  appearance: auto;
}
.ek-card form input[type="number"]::-webkit-inner-spin-button,
.ek-card form input[type="number"]::-webkit-outer-spin-button {
  opacity: 1;
  height: 1.6rem;
}

/* ===== Karta: tlačítko vlevo, počet kusů vpravo ===== */
.ek-card form .form-actions,
.ek-card form [data-drupal-selector="edit-actions"] { order: 1; }
.ek-card form [class*="field--name-quantity"],
.ek-card form .form-item-quantity-0-value {
  order: 2;
  margin-left: auto;
}

/* ===== Počet kusů: bez textu "Množství" ===== */
.ek-card form [class*="quantity"] label,
.ek-card form [class*="quantity"] legend,
.ek-card form [class*="quantity"] .form-item__label,
.ek-card form [class*="quantity"] .field__label {
  position: absolute !important;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* ===== Tlačítko košíku a počet kusů: stejná výška a rámeček ===== */
:root {
  --ek-ovladac-vyska: 2.4rem;
  --ek-ovladac-zaobleni: 4px;
}
.ek-card form .form-submit,
.ek-card form input[type="number"] {
  box-sizing: border-box !important;
  height: var(--ek-ovladac-vyska) !important;
  min-height: 0 !important;
  border: var(--ek-ramecek-kosik-sirka, 2px) solid var(--ek-ramecek-kosik-barva, #2b2b2b) !important;
  border-radius: var(--ek-ovladac-zaobleni) !important;
  margin: 0 !important;
  line-height: 1.2;
}
.ek-card form .form-submit { padding-top: 0 !important; padding-bottom: 0 !important; }

/* ===== Rámeček tlačítka košíku a počtu kusů: červený ===== */
:root { --ek-ovladac-barva: var(--ek-ramecek-kosik-barva, #c0392b); }
.ek-card form .form-submit,
.ek-card form input[type="number"] {
  border-color: var(--ek-ovladac-barva) !important;
}

/* ===== Karta: popis zboží na střed, sklad a tlačítko na jedné svislé čáře ===== */
.ek-card .ek-title,
.ek-card .ek-title a {
  text-align: center;
}
.ek-card .ek-sklad,
.ek-card form,
.ek-card .field--name-variations {
  margin-left: 0 !important;
  padding-left: 0 !important;
}
.ek-card form .form-submit { margin-left: 0 !important; }

/* ===== Formulář košíku: bez mezery před tlačítkem (zarovnání levého okraje) ===== */
.ek-card form {
  gap: 0 !important;
  column-gap: 0 !important;
}

/* ===== Šířka stránky (menu víc vlevo, víc místa pro karty) ===== */
:root { --ek-sirka-stranky: 1560px; }
.layout-container { max-width: var(--ek-sirka-stranky) !important; }

/* ===== Šířka stránky: menu těsně u okraje ===== */
:root { --ek-sirka-stranky: 1800px; }

/* ===== Mřížka: vždy tři karty, menší, větší mezery ===== */
:root {
  --ek-karta-max-sirka: 280px;   /* šířka karty */
  --ek-karta-mezera: 4rem;       /* mezera mezi kartami */
}
.ek-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, var(--ek-karta-max-sirka))) !important;
  justify-content: center !important;
  gap: var(--ek-karta-mezera) !important;
}
@media (max-width: 900px) {
  .ek-grid {
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)) !important;
  }
}

/* ===== Mezera mezi kartami: +20 px ===== */
:root { --ek-karta-mezera: 74px; }

/* ===== Stránka přes celou šířku: menu u okraje ===== */
:root {
  --ek-sirka-stranky: 100%;
  --ek-okraj-stranky: 1rem;     /* odstup od okraje okna vlevo i vpravo */
}
.layout-container {
  max-width: var(--ek-sirka-stranky) !important;
  padding-left: var(--ek-okraj-stranky) !important;
  padding-right: var(--ek-okraj-stranky) !important;
}

/* ===== Karty: posun doleva, aby mezera od menu a od pravého okraje byla podobná ===== */
:root { --ek-karty-posun: 30px; }   /* o kolik px se karty posunou doleva */
.ek-grid { padding-right: calc(2 * var(--ek-karty-posun)) !important; }

/* ===== Řádek s drobečky a košíkem: odsazení od okrajů ===== */
:root {
  --ek-drobecky-vlevo: 100px;    /* "Katalog › …" od levého okraje */
  --ek-kosik-vpravo: 100px;      /* "0 položek" od pravého okraje */
}
.site-sub {
  padding-left: var(--ek-drobecky-vlevo) !important;
  padding-right: var(--ek-kosik-vpravo) !important;
}

/* ===== Drobečky a košík: odsazení jako dřív (~320 px od okrajů) ===== */
:root {
  --ek-drobecky-vlevo: 300px;
  --ek-kosik-vpravo: 300px;
}

/* ===== Drobečky: víc doprava ===== */
:root { --ek-drobecky-vlevo: 500px; }

/* ===== Nadpis kategorie: na střed nad kartami ===== */
.block-page-title-block {
  padding-left: var(--ek-strom-sirka, 270px);
  padding-right: calc(2 * var(--ek-karty-posun, 30px));
  text-align: center;
}
.block-page-title-block h1,
h1.page-title { text-align: center; }

/* ===== Drobečky zarovnané s levým okrajem první karty ===== */
:root { --ek-drobecky-vlevo: 571px; }

/* ===== "0 položek" zarovnané s pravým okrajem třetí karty ===== */
:root { --ek-kosik-vpravo: 329px; }

/* ===== Stránka výrobku ===== */
article:has(> .field--name-field-obrazek) {
  display: grid;
  grid-template-columns: minmax(240px, 380px) minmax(260px, 1fr);
  grid-auto-rows: min-content;
  align-content: start;
  column-gap: 3rem;
  row-gap: .5rem;
  padding: 2rem;
  box-sizing: border-box;
  border: var(--ek-ramecek-karty-sirka, 2px) solid var(--ek-ramecek-karty-barva, #2b2b2b);
  border-radius: 8px;
}
article:has(> .field--name-field-obrazek) > span { display: none; }
article:has(> .field--name-field-obrazek) > .field--name-field-obrazek {
  grid-column: 1; grid-row: 1 / span 6; align-self: start; text-align: center;
}
article:has(> .field--name-field-obrazek) > .field--name-field-obrazek img { max-width: 100%; height: auto; }
article:has(> .field--name-field-obrazek) > .field--name-price { grid-column: 2; grid-row: 1; }
article:has(> .field--name-field-obrazek) > .ek-sklad { grid-column: 2; grid-row: 2; font-size: 1rem; font-weight: 600; }
article:has(> .field--name-field-obrazek) > .field--name-variations { grid-column: 2; grid-row: 3; margin: .8rem 0 1rem; }
article:has(> .field--name-field-obrazek) > .field--name-field-mj { grid-column: 2; grid-row: 4; }
article:has(> .field--name-field-obrazek) > .field--name-field-kategorie { grid-column: 2; grid-row: 5; }

/* cena: velká, štítek malý a šedý */
article:has(> .field--name-field-obrazek) .field--name-price .field__label {
  font-size: 1rem; color: #666; text-transform: uppercase; letter-spacing: .05em;
}
article:has(> .field--name-field-obrazek) .field--name-price .field__item {
  font-size: 2rem; font-weight: 700; line-height: 1.1;
}
article:has(> .field--name-field-obrazek) .field--name-price .field__item::after {
  content: " vč. DPH"; font-size: 1rem; font-weight: 400; color: #666;
}

/* drobné údaje: měrná jednotka, kategorie */
article:has(> .field--name-field-obrazek) .field--label-inline { display: flex; gap: .4rem; font-size: 1rem; color: #555; }
article:has(> .field--name-field-obrazek) .field--label-inline .field__label::after { content: ":"; }

/* počet kusů a tlačítko: v jedné řadě, stejná výška a rámeček jako v katalogu */
article:has(> .field--name-field-obrazek) form.commerce-order-item-add-to-cart-form {
  display: flex; flex-wrap: nowrap; align-items: center; gap: 0;
}
article:has(> .field--name-field-obrazek) form .field--name-purchased-entity { display: none; }
article:has(> .field--name-field-obrazek) form .field--name-quantity { margin-right: .8rem; }
article:has(> .field--name-field-obrazek) form .form-item { display: flex; align-items: center; gap: .4rem; margin: 0; }
article:has(> .field--name-field-obrazek) form input[type="number"] {
  box-sizing: border-box; width: 4.5rem; height: 2.8rem; padding: .3rem .4rem; font-size: 1rem; text-align: center;
  border: var(--ek-ramecek-kosik-sirka, 2px) solid var(--ek-ovladac-barva, #c0392b);
  border-radius: var(--ek-ovladac-zaobleni, 4px);
}
article:has(> .field--name-field-obrazek) form .form-submit {
  box-sizing: border-box; height: 2.8rem; padding: 0 1.6rem; font-size: 1rem; font-weight: 600; cursor: pointer;
  background: var(--ek-kosik-pozadi, #fff); color: var(--ek-kosik-text, #111);
  border: var(--ek-ramecek-kosik-sirka, 2px) solid var(--ek-ovladac-barva, #c0392b);
  border-radius: var(--ek-ovladac-zaobleni, 4px);
}

/* nadpis a kód zboží zleva, v jedné linii s rámečkem */
body:has(article > .field--name-field-obrazek) .block-page-title-block,
body:has(article > .field--name-field-obrazek) .block-page-title-block h1 { text-align: left; }
.block-eshop-katalog-kod { padding-left: var(--ek-strom-sirka, 270px); }

@media (max-width: 900px) {
  article:has(> .field--name-field-obrazek) { grid-template-columns: 1fr; }
  article:has(> .field--name-field-obrazek) > * { grid-column: 1 !important; grid-row: auto !important; }
}

/* ===== Stránka výrobku: název a kód v pravém sloupci ===== */
article:has(> .field--name-field-obrazek) > .field--name-field-obrazek { grid-row: 1 / span 8; }
article:has(> .field--name-field-obrazek) > .ek-produkt-nazev { grid-column: 2; grid-row: 1; margin: 0; font-size: 2rem; line-height: 1.2; text-align: left; }
article:has(> .field--name-field-obrazek) > .ek-produkt-kod { grid-column: 2; grid-row: 2; margin: 0 0 1rem; color: #555; }
article:has(> .field--name-field-obrazek) > .field--name-price { grid-column: 2; grid-row: 3; }
article:has(> .field--name-field-obrazek) > .ek-sklad { grid-column: 2; grid-row: 4; }
article:has(> .field--name-field-obrazek) > .field--name-variations { grid-column: 2; grid-row: 5; }
article:has(> .field--name-field-obrazek) > .field--name-field-mj { grid-column: 2; grid-row: 6; }
article:has(> .field--name-field-obrazek) > .field--name-field-kategorie { grid-column: 2; grid-row: 7; }

/* starý nadpis a starý blok s kódem na stránce výrobku už nejsou potřeba */
body:has(article > .ek-produkt-nazev) .block-page-title-block,
body:has(article > .ek-produkt-nazev) .block-eshop-katalog-kod { display: none; }

/* ===== Stránka výrobku: větší fotka ===== */
:root { --ek-detail-obrazek: 300px; }   /* šířka fotky na stránce výrobku */
article:has(> .field--name-field-obrazek) > .field--name-field-obrazek img {
  width: var(--ek-detail-obrazek);
  max-width: 100%;
  height: auto;
}
article:has(> .field--name-field-obrazek) { grid-template-columns: minmax(240px, var(--ek-detail-obrazek)) minmax(260px, 1fr); }

/* ===== Stránka výrobku: fotka menší ===== */
:root { --ek-detail-obrazek: 240px; }

/* ===== Stránka výrobku: rámeček v šířce tří karet, název nad čárou ===== */
:root { --ek-nazev-misto: 3rem; }   /* volné místo nad rámečkem pro název */

/* stejný střed jako u karet */
.block-system-main-block:has(> article > .field--name-field-obrazek) {
  padding-right: calc(2 * var(--ek-karty-posun, 30px));
}
article:has(> .field--name-field-obrazek) {
  position: relative;
  box-sizing: border-box;
  max-width: calc(3 * var(--ek-karta-max-sirka, 280px) + 2 * var(--ek-karta-mezera, 84px));
  margin: var(--ek-nazev-misto) auto 0;
  padding: 1.5rem 2rem;
  grid-template-columns: 1fr 1fr;
  column-gap: 2rem;
}
article:has(> .field--name-field-obrazek) > .field--name-field-obrazek { justify-self: center; grid-row: 1 / span 7; }

/* název: na střed, těsně nad horní čárou rámečku (mimo mřížku) */
article:has(> .field--name-field-obrazek) > .ek-produkt-nazev {
  position: absolute;
  left: 0; right: 0;
  bottom: calc(100% + .4rem);
  margin: 0;
  text-align: center;
  font-size: 1.5rem;
  line-height: 1.2;
}

/* pravý sloupec: řádky se posunou o jedna nahoru */
article:has(> .field--name-field-obrazek) > .ek-produkt-kod { grid-row: 1; }
article:has(> .field--name-field-obrazek) > .field--name-price { grid-row: 2; }
article:has(> .field--name-field-obrazek) > .ek-sklad { grid-row: 3; }
article:has(> .field--name-field-obrazek) > .field--name-variations { grid-row: 4; }
article:has(> .field--name-field-obrazek) > .field--name-field-mj { grid-row: 5; }
article:has(> .field--name-field-obrazek) > .field--name-field-kategorie { grid-row: 6; }

/* ===== Název výrobku: uvolnit z mřížky, aby se usadil nad rámečkem ===== */
article:has(> .field--name-field-obrazek) > .ek-produkt-nazev {
  grid-column: auto !important;
  grid-row: auto !important;
}

/* ===== Svislá čára: vlastní barva (zelená jako "Skladem") ===== */
:root { --ek-delic-barva: var(--ek-sklad-ano, #1e7e34); }
article:has(> .field--name-field-obrazek)::before {
  background: linear-gradient(to bottom,
    transparent 0,
    var(--ek-delic-barva) var(--ek-cara-rozplynuti, 25%),
    var(--ek-delic-barva) calc(100% - var(--ek-cara-rozplynuti, 25%)),
    transparent 100%);
}

/* ===== Stránka výrobku: svislá zelená čára mezi fotkou a textem ===== */
:root {
  --ek-delic-sirka: 4px;                                   /* tloušťka čáry */
  --ek-delic-barva: var(--ek-sklad-ano, #1e7e34);          /* barva (zelená jako "Skladem") */
}
article:has(> .field--name-field-obrazek)::before {
  content: "";
  position: absolute;
  top: 1.5rem;
  bottom: 1.5rem;
  left: 50%;
  width: var(--ek-delic-sirka);
  transform: translateX(-50%);
  background: linear-gradient(to bottom,
    transparent 0,
    var(--ek-delic-barva) var(--ek-cara-rozplynuti, 25%),
    var(--ek-delic-barva) calc(100% - var(--ek-cara-rozplynuti, 25%)),
    transparent 100%);
  pointer-events: none;
}
@media (max-width: 900px) {
  article:has(> .field--name-field-obrazek)::before { display: none; }
}

/* ===== Stránka výrobku: pevné místo pro oznámení, rámeček výrobku se nehýbe ===== */
:root { --ek-zpravy-misto: 5rem; }   /* vyhrazená výška nad rámečkem pro oznámení */

.layout-content:has(article > .field--name-field-obrazek) {
  position: relative;
  padding-top: var(--ek-zpravy-misto);
}
.layout-content:has(article > .field--name-field-obrazek) .block-system-messages-block {
  position: absolute;
  top: 0;
  left: 0;
  right: calc(2 * var(--ek-karty-posun, 30px));   /* stejný střed jako rámeček */
  max-width: calc(3 * var(--ek-karta-max-sirka, 280px) + 2 * var(--ek-karta-mezera, 84px));
  margin: 0 auto;
}

/* ===== Stránka výrobku: oznámení v rezervovaném místě (správný selektor) ===== */
.layout-content:has(article > .field--name-field-obrazek) div:has(> .messages) {
  position: absolute;
  top: 0;
  left: 0;
  right: calc(2 * var(--ek-karty-posun, 30px));
  max-width: calc(3 * var(--ek-karta-max-sirka, 280px) + 2 * var(--ek-karta-mezera, 84px));
  margin: 0 auto;
}
.layout-content:has(article > .field--name-field-obrazek) div:has(> .messages) > .messages {
  margin: 0;
}

/* ===== Oznámení: posun doprava, aby bylo přesně nad rámečkem výrobku ===== */
.layout-content:has(article > .field--name-field-obrazek) div:has(> .messages) {
  transform: translateX(var(--ek-karty-posun, 30px));
}

/* ===== Oznámení: text na střed ===== */
.messages { text-align: center; }

/* ===== Oznámení: patkové písmo, tučně ===== */
:root { --ek-zpravy-pismo: Georgia, "DejaVu Serif", "Times New Roman", serif; }
.messages {
  font-family: var(--ek-zpravy-pismo);
  font-weight: 700;
  font-size: 1.125rem;
}

/* ===== Oznámení: menší písmo ===== */
.messages { font-size: 1rem; }

/* ===== Oznámení: název zboží a zbytek věty různou barvou ===== */
:root {
  --ek-zpravy-text: #444;                              /* zbytek věty */
  --ek-zpravy-nazev: var(--ek-sklad-ano, #1e7e34);     /* název zboží */
}
.messages { color: var(--ek-zpravy-text); }
.messages strong { color: var(--ek-zpravy-nazev); }

/* ===== Oznámení: název zboží tmavě zelený ===== */
:root { --ek-zpravy-nazev: #14532d; }

/* ===== Oznámení: vždy přesně na střed ===== */
.messages {
  text-align: center;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  background-image: none;
}
.messages .ek-zprava {
  width: 100%;
  justify-content: center;
}
.messages .ek-zprava > * { flex-shrink: 0; }
.messages .ek-zprava-1 { flex-shrink: 1; }

/* mezera mezi názvem zboží a následujícím textem */
.messages .ek-zprava { gap: .6em !important; }
.messages .ek-zprava-1 { padding-right: .4em !important; }

/* barvy oznámení po vložení do košíku */
:root {
  --ek-zpravy-nazev: #0b3d91;  /* název zboží */
  --ek-zpravy-text: #7a1f1f;   /* doprovodný text */
}

/* mezera mezi "vloženo:" a názvem zboží */
.messages .ek-zprava-0 { padding-right: .4em !important; }

/* oznámení o vložení do košíku: o 10 px dál od horního rámečku */
:root { --ek-zpravy-misto: calc(5rem + 10px); --ek-zpravy-posun: 10px; }
.layout-content:has(article > .field--name-field-obrazek) div:has(> .messages) { top: var(--ek-zpravy-posun) !important; }

/* levé menu: vždy zobrazit všechny položky, posouvá se s celou stránkou */
.layout-sidebar-first {
  position: static !important;
  max-height: none !important;
  overflow: visible !important;
}

/* levé menu: znovu přilepené, o 50 px výš, aby se vešlo víc položek */
:root { --ek-strom-top: 90px; }
.layout-sidebar-first {
  position: sticky !important;
  top: calc(var(--drupal-displace-offset-top, 0px) + var(--ek-strom-top)) !important;
  max-height: calc(100vh - var(--ek-strom-top) - 1rem) !important;
  overflow-y: auto !important;
}

/* levé menu: začátek o 50 px výš */
:root { --ek-strom-nahoru: 100px; }
.layout-sidebar-first { margin-top: calc(-1 * var(--ek-strom-nahoru)) !important; }

/* plovoucí tlačítko košíku: pravý okraj, svisle uprostřed okna */
.ek-kosik-plovouci {
  position: fixed; right: 0; top: 50%; transform: translateY(-50%); z-index: 900;
  display: flex; flex-direction: column; align-items: center; gap: .25rem;
  min-width: 6.5rem; padding: 1.2rem 1rem;
  background: var(--ek-ovladac-barva, #c0392b); color: #fff !important;
  text-decoration: none !important; text-align: center;
  border-radius: .7rem 0 0 .7rem; box-shadow: -2px 2px 10px rgba(0,0,0,.25);
}
.ek-kosik-plovouci:hover { filter: brightness(1.15); }
.ek-kosik-plovouci__nadpis { font-size: 1.125rem; font-weight: 700; letter-spacing: .06em; }
.ek-kosik-plovouci__pocet { font-size: 1rem; font-weight: 400; }

/* ===== Košík ve stylu moderního e-shopu (upravujte proměnné zde) ===== */
:root {
  --ek-kosik-ramecek: #e3e3e3;
  --ek-kosik-radius: 12px;
  --ek-kosik-souhrn: 22rem;
  --ek-kosik-akcent: var(--ek-ramecek-kosik-barva, #04193a);
}
.cart-form { max-width: 1100px; margin: 1.5rem auto; padding: 0 1rem; }
.view-commerce-cart-form form {
  display: grid; grid-template-columns: minmax(0, 1fr) var(--ek-kosik-souhrn);
  column-gap: 1.5rem; row-gap: 0; align-items: start;
}
.view-commerce-cart-form form > table { grid-column: 1; grid-row: 1 / span 2; }
.view-commerce-cart-form form > div:not(.form-actions) { grid-column: 2; grid-row: 1; }
.view-commerce-cart-form form > .form-actions { grid-column: 2; grid-row: 2; }

/* karta s výrobky */
.view-commerce-cart-form table {
  display: block; width: 100%; margin: 0; padding: .5rem 1.25rem 1rem;
  background: #fff; border: 1px solid var(--ek-kosik-ramecek); border-radius: var(--ek-kosik-radius);
}
.view-commerce-cart-form thead, .view-commerce-cart-form tbody { display: block; }
.view-commerce-cart-form tr {
  display: grid; align-items: center; column-gap: 1rem;
  grid-template-columns: minmax(0, 1fr) 7rem 6.5rem 6.5rem 3rem;
  border: 0; background: none;
}
.view-commerce-cart-form thead tr { border-bottom: 1px solid #eee; }
.view-commerce-cart-form tbody tr { border-bottom: 1px solid #eee; }
.view-commerce-cart-form tbody tr:last-child { border-bottom: 0; }
.view-commerce-cart-form th, .view-commerce-cart-form td {
  display: block; padding: .9rem 0; border: 0; background: none;
}
.view-commerce-cart-form th { font-size: 1rem; font-weight: 600; color: #666; }
.view-commerce-cart-form .views-field-purchased-entity { order: 1; text-align: left; font-weight: 600; }
.view-commerce-cart-form .views-field-edit-quantity { order: 2; }
.view-commerce-cart-form .views-field-unit-price__number { order: 3; text-align: right; color: #555; }
.view-commerce-cart-form .views-field-total-price__number { order: 4; text-align: right; font-weight: 700; }
.view-commerce-cart-form .views-field-remove-button { order: 5; text-align: right; }
.view-commerce-cart-form th.views-field-remove-button { font-size: 0; }
.view-commerce-cart-form td a { color: inherit; text-decoration: none; }
.view-commerce-cart-form td a:hover { text-decoration: underline; }
.view-commerce-cart-form input[type="number"] {
  width: 5.5rem; padding: .45rem .5rem; font: inherit; text-align: center;
  border: 1px solid #ccc; border-radius: 8px;
}
.view-commerce-cart-form .delete-order-item {
  width: 2rem; height: 2rem; padding: 0; border: 0; cursor: pointer;
  font-size: 0; color: transparent; opacity: .55;
  background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23444' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18M8 6V4h8v2M6 6l1 14h10l1-14M10 10v7M14 10v7'/%3E%3C/svg%3E") center / 1.2rem no-repeat;
}
.view-commerce-cart-form .delete-order-item:hover { opacity: 1; }

/* karta Souhrn */
.view-commerce-cart-form form > div:not(.form-actions) {
  background: #fff; border: 1px solid var(--ek-kosik-ramecek); border-bottom: 0;
  border-radius: var(--ek-kosik-radius) var(--ek-kosik-radius) 0 0; padding: 1.25rem 1.5rem .5rem;
}
.view-commerce-cart-form .field--name-total-price::before {
  content: "Souhrn"; display: block; margin-bottom: .9rem; font-size: 1.25rem; font-weight: 700;
}
.view-commerce-cart-form .order-total-line { display: flex; justify-content: space-between; padding: .35rem 0; color: #555; }
.view-commerce-cart-form .order-total-line__total {
  margin-top: .7rem; padding-top: .9rem; border-top: 1px solid var(--ek-kosik-ramecek);
  font-size: 1.5rem; font-weight: 700; color: var(--ek-kosik-akcent);
}
.view-commerce-cart-form .form-actions {
  display: flex; flex-direction: column; gap: .6rem; margin: 0; padding: .5rem 1.5rem 1.5rem;
  background: #fff; border: 1px solid var(--ek-kosik-ramecek); border-top: 0;
  border-radius: 0 0 var(--ek-kosik-radius) var(--ek-kosik-radius);
}
.view-commerce-cart-form #edit-checkout {
  order: 1; width: 100%; margin: 0; padding: .95rem 1rem; cursor: pointer;
  font-size: 1.125rem; font-weight: 700; color: #fff; background: var(--ek-kosik-akcent);
  border: 0; border-radius: 10px;
}
.view-commerce-cart-form #edit-submit {
  order: 2; width: 100%; margin: 0; padding: .6rem 1rem; cursor: pointer;
  color: var(--ek-kosik-akcent); background: transparent;
  border: 1px solid var(--ek-kosik-akcent); border-radius: 10px;
}
.view-commerce-cart-form #edit-checkout:hover { filter: brightness(1.2); }

@media (max-width: 900px) {
  .view-commerce-cart-form form { grid-template-columns: 1fr; }
  .view-commerce-cart-form form > table,
  .view-commerce-cart-form form > div:not(.form-actions),
  .view-commerce-cart-form form > .form-actions { grid-column: 1; grid-row: auto; }
  .view-commerce-cart-form thead { display: none; }
  .view-commerce-cart-form tr { grid-template-columns: 1fr 1fr 2.5rem; }
  .view-commerce-cart-form .views-field-purchased-entity { grid-column: 1 / -1; padding-bottom: 0; }
}

/* ===== Košík: doladění podle vzoru ===== */
:root { --ek-kosik-max: 1360px; --ek-kosik-souhrn: 25rem; }
.cart-form { max-width: var(--ek-kosik-max); }
body:has(.view-commerce-cart-form) .block-page-title-block {
  max-width: var(--ek-kosik-max); margin: 1.5rem auto 0; padding: 0 1rem; text-align: left;
}
body:has(.view-commerce-cart-form) .block-page-title-block h1 { font-size: 2rem; margin: 0; }
@media (min-width: 901px) {
  .view-commerce-cart-form tr { grid-template-columns: minmax(0, 1fr) 8.5rem 7rem 7rem 3rem; }
}
.ek-kosik-polozka { display: flex; align-items: center; gap: 1rem; }
.ek-kosik-obr { width: 76px; height: 76px; flex: none; object-fit: contain; border-radius: 8px; background: #fff; }
.ek-kosik-text { display: flex; flex-direction: column; gap: .15rem; min-width: 0; }
.ek-kosik-kod { font-size: 1rem; font-weight: 400; color: #777; }
.view-commerce-cart-form td.views-field-purchased-entity a { font-weight: 600; color: #111; }
.ek-pokracovat { max-width: var(--ek-kosik-max); margin: 1.25rem auto; padding: 0 1rem; }
.ek-pokracovat a { color: var(--ek-kosik-akcent); font-weight: 600; text-decoration: none; }
.ek-mnozstvi { display: inline-flex; align-items: stretch; background: #fff; border: 1px solid #ccc; border-radius: 10px; overflow: hidden; }
.ek-mnozstvi button { width: 2.1rem; border: 0; background: #fff; color: #333; font-size: 1.125rem; cursor: pointer; }
.ek-mnozstvi button:hover { background: #f2f2f2; }
.ek-mnozstvi input[type="number"] { width: 3rem !important; border: 0 !important; border-radius: 0 !important; text-align: center; -moz-appearance: textfield; appearance: textfield; }
.ek-mnozstvi input::-webkit-outer-spin-button, .ek-mnozstvi input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* ===== Košík: tmavší pozadí, bílé karty bez rámečků, nižší řádky ===== */
:root { --ek-kosik-pozadi: #ebebeb; }
body:has(.view-commerce-cart-form),
body:has(.view-commerce-cart-form) main,
body:has(.view-commerce-cart-form) .site-body,
body:has(.view-commerce-cart-form) .layout-container,
body:has(.view-commerce-cart-form) .layout-content { background: var(--ek-kosik-pozadi); }
.view-commerce-cart-form table,
.view-commerce-cart-form form > div:not(.form-actions),
.view-commerce-cart-form .form-actions { border: 0; }
.view-commerce-cart-form thead tr { border-bottom: 1px solid #eee; }
.view-commerce-cart-form th, .view-commerce-cart-form td { padding: .3rem 0; font-size: 1rem; }
.view-commerce-cart-form th { font-size: 1rem; }
.ek-kosik-obr { width: 44px; height: 44px; border-radius: 6px; }
.ek-kosik-polozka { gap: .75rem; }
.ek-kosik-kod { font-size: 1rem; }
.ek-mnozstvi button { width: 1.8rem; font-size: 1.125rem; }
.ek-mnozstvi input[type="number"] { width: 2.6rem !important; padding: .2rem 0 !important; }

/* ===== Košík: v hlavičce jen logo vlevo a kroky objednávky uprostřed ===== */
body:has(.view-commerce-cart-form) #block-eshop-theme-eshop-hledat,
body:has(.view-commerce-cart-form) .site-top__menus { display: none !important; }
body:has(.view-commerce-cart-form) .site-top__main { position: relative; }
.ek-kroky {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  display: flex; align-items: center; margin: 0; padding: 0; list-style: none;
}
.ek-kroky li { display: flex; align-items: center; gap: .5rem; color: #777; font-size: 1rem; white-space: nowrap; }
.ek-kroky li + li::before { content: ""; width: 3.5rem; height: 1px; margin: 0 .9rem; background: #ccc; }
.ek-kroky__cislo {
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.7rem; height: 1.7rem; border: 1.5px solid #bbb; border-radius: 50%;
  background: #fff; font-size: 1rem; font-weight: 600;
}
.ek-kroky .je-aktivni { color: #111; font-weight: 600; }
.ek-kroky .je-aktivni .ek-kroky__cislo { color: #fff; background: var(--ek-kosik-akcent, #04193a); border-color: var(--ek-kosik-akcent, #04193a); }
@media (max-width: 900px) {
  .ek-kroky { position: static; transform: none; justify-content: center; padding: .5rem 0; }
  .ek-kroky li + li::before { width: 1.2rem; margin: 0 .4rem; }
  .ek-kroky li span:last-child { display: none; }
  .ek-kroky .je-aktivni span:last-child { display: inline; }
}

/* ===== Košík: souhrn a tlačítka u sebe, nadpis vlevo ===== */
.view-commerce-cart-form form { grid-template-rows: auto auto 1fr; }
.view-commerce-cart-form form > table { grid-row: 1 / span 3; }
body:has(.view-commerce-cart-form) .block-page-title-block,
body:has(.view-commerce-cart-form) .block-page-title-block h1 { text-align: left !important; }
@media (max-width: 900px) {
  .view-commerce-cart-form form { grid-template-rows: none; }
  .view-commerce-cart-form form > table { grid-row: auto; }
}

/* Košík: odkaz Pokračovat v nákupu pod nadpisem */
.ek-pokracovat--nahore { max-width: none; margin: .4rem 0 0; padding: 0; }

/* horní odkaz Pokračovat v nákupu: stejná barva a vzhled jako dolní */
.ek-pokracovat--nahore a {
  color: var(--ek-kosik-akcent, #04193a) !important;
  font-size: 1rem; font-weight: 600; text-decoration: none;
}

/* horní odkaz Pokračovat v nákupu: stejná barva jako dolní (modrá z motivu) */
.ek-pokracovat--nahore a { color: #1f5f99 !important; }

/* ===== Košík: pruh minimální objednávky a Vysypat košík ===== */
.ek-min-obj {
  display: flex; gap: .8rem; align-items: flex-start;
  max-width: calc(100% - var(--ek-kosik-souhrn) - 1.5rem); margin: 0 0 1rem; padding: 1.1rem 1.25rem;
  color: #b4161b; background: #fbe9e9; border-radius: 12px;
}
.ek-min-obj svg { flex: none; width: 1.4rem; height: 1.4rem; margin-top: .1rem; }
.ek-min-obj strong { display: block; }
.ek-min-obj span { display: block; color: #333; }
.view-commerce-cart-form #edit-checkout.ek-nelze, .view-commerce-cart-form #edit-checkout[disabled] { opacity: .45; cursor: not-allowed; filter: none; }
.ek-vysypat { display: inline-flex; align-items: center; gap: .45rem; color: #444 !important; font-size: 1rem; text-decoration: none; }
.ek-vysypat:hover { color: #000 !important; }
.ek-vysypat__ikona {
  width: 1.1rem; height: 1.1rem;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23444' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18M8 6V4h8v2M6 6l1 14h10l1-14M10 10v7M14 10v7'/%3E%3C/svg%3E") center / contain no-repeat;
}
body:has(.view-commerce-cart-form) .block-page-title-block { position: relative; }
body:has(.view-commerce-cart-form) .block-page-title-block .ek-vysypat {
  position: absolute; top: .75rem; right: calc(1rem + var(--ek-kosik-souhrn) + 1.5rem);
}
@media (max-width: 900px) {
  .ek-min-obj { max-width: none; }
  body:has(.view-commerce-cart-form) .block-page-title-block .ek-vysypat { position: static; margin-top: .5rem; }
}

/* pruh minimální objednávky: vlastní ikona místo nakreslené */
.ek-min-obj svg { display: none; }
.ek-min-obj::before {
  content: ""; flex: none; width: 1.1rem; height: 1.1rem; margin-top: .15rem;
  background: url("/modules/custom/eshop_katalog/img/varovani.webp") center / contain no-repeat;
}

/* pruh minimální objednávky: šířka včetně okrajů, aby lícoval s kartou pod ním */
.ek-min-obj { box-sizing: border-box; }

/* ===== Patička: odkazy v barvě tlačítka Košík, nad nimi čára s rozplývajícími se okraji ===== */
.site-footer { position: relative; padding-top: 1.4rem; }
.site-footer::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(to right, transparent, var(--ek-ovladac-barva, #04193a) 18%, var(--ek-ovladac-barva, #04193a) 82%, transparent);
}
.site-footer .region-footer { display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; gap: .5rem 2rem; }
.ek-patka-odkazy { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 2rem; }
.site-footer a { color: var(--ek-ovladac-barva, #04193a) !important; text-decoration: none; font-weight: 600; }
.site-footer a:hover { text-decoration: underline; }

/* ===== Patička: drobečky, čára, pod ní jeden vycentrovaný blok ===== */
.site-footer::before { display: none; }
.site-footer { padding-top: .6rem; }
.site-footer .region-footer { display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; gap: .5rem 2.2rem; }
.site-footer .region-footer::before {
  content: ""; order: 2; flex: 0 0 100%; height: 3px; margin: .6rem 0 .8rem;
  background: linear-gradient(to right, transparent, var(--ek-ovladac-barva, #04193a) 18%, var(--ek-ovladac-barva, #04193a) 82%, transparent);
}
#block-eshop-theme-drobky-dole { order: 1; flex: 0 0 100%; }
.ek-patka-odkazy { display: contents; }
.ek-patka-odkazy a:nth-child(1) { order: 3; }
#block-eshop-theme-powered { order: 4; border: 0 !important; margin: 0 !important; padding: 0 !important; }
#block-eshop-theme-powered::before, #block-eshop-theme-powered::after { display: none !important; }
.ek-patka-odkazy a:nth-child(2) { order: 5; }
.ek-patka-odkazy a:nth-child(3) { order: 6; }
#block-eshop-theme-powered, #block-eshop-theme-powered span { color: var(--ek-ovladac-barva, #04193a) !important; }

/* ===== Patička: tmavě modrý blok, odkazy vedle sebe ===== */
:root { --ek-patka-odkaz: #9fd0ff; --ek-patka-text: #ffffff; }
.site-footer { background: var(--ek-ovladac-barva, #04193a); padding: .5rem 0 .6rem; color: var(--ek-patka-text); }
.site-footer .region-footer::before {
  margin: .3rem 0 .6rem;
  background: linear-gradient(to right, transparent, rgba(255,255,255,.85) 18%, rgba(255,255,255,.85) 82%, transparent);
}
.ek-patka-odkazy a { flex: 0 0 auto; }
#block-eshop-theme-powered { flex: 0 0 auto !important; width: auto !important; }
.site-footer a, #block-eshop-theme-powered a { color: var(--ek-patka-odkaz) !important; }
#block-eshop-theme-powered, #block-eshop-theme-powered span,
.site-footer nav.breadcrumb, .site-footer nav.breadcrumb li { color: var(--ek-patka-text) !important; }

/* ===== Patička: drobečky na bílém, světle modrá čára, pod ní tmavě modrý pruh s odkazy ===== */
:root { --ek-patka-cara: #7fb6ff; }
.site-footer { background: transparent !important; padding: 0 !important; }
.site-footer .region-footer {
  position: relative; isolation: isolate;
  display: grid !important;
  grid-template-columns: 1fr auto auto auto auto 1fr;
  column-gap: 2.2rem; row-gap: 0; align-items: center; justify-items: center;
}
#block-eshop-theme-drobky-dole { grid-column: 1 / -1; grid-row: 1; justify-self: stretch; padding: .5rem 0 .7rem; }
.site-footer .region-footer::before {
  content: ""; grid-column: 1 / -1; grid-row: 2; justify-self: stretch; height: 3px; margin: 0;
  background: linear-gradient(to right, transparent, var(--ek-patka-cara) 18%, var(--ek-patka-cara) 82%, transparent);
}
.site-footer .region-footer::after {
  content: ""; grid-column: 1 / -1; grid-row: 3; justify-self: stretch; align-self: stretch; z-index: -1;
  background: var(--ek-ovladac-barva, #04193a);
}
.ek-patka-odkazy { display: contents; }
.ek-patka-odkazy a { grid-row: 3; padding: .6rem 0; }
.ek-patka-odkazy a:nth-child(1) { grid-column: 2; }
#block-eshop-theme-powered { grid-column: 3; grid-row: 3; padding: .6rem 0 !important; }
.ek-patka-odkazy a:nth-child(2) { grid-column: 4; }
.ek-patka-odkazy a:nth-child(3) { grid-column: 5; }
.site-footer nav.breadcrumb, .site-footer nav.breadcrumb li { color: #333 !important; }
.site-footer nav.breadcrumb a { color: #1f5f99 !important; }

/* ===== Patička až do krajů stránky ===== */
html, body { overflow-x: clip; }
.site-footer .region-footer::after {
  box-shadow: 0 0 0 100vmax var(--ek-ovladac-barva, #04193a);
  clip-path: inset(0 -100vmax);
}
.site-footer .region-footer::before { width: 100vw; justify-self: start; margin-left: calc(50% - 50vw); }

/* patička: pozadí kolem drobečků průhledné, aby sedělo k pozadí stránky (např. šedý košík) */
html body footer.site-footer.site-footer { background: transparent !important; }

/* ===== Hlavička až do krajů stránky (bílé pozadí i čára) ===== */
.site-sticky { box-shadow: 0 0 0 100vmax #fff; clip-path: inset(0 -100vmax); }
.site-top__main {
  position: relative;
  border: 0 !important; border-image: none !important;
  padding-bottom: calc(1rem + var(--ek-cara-sirka, 5px));
}
.site-top__main::after {
  content: ""; position: absolute; bottom: 0; left: calc(50% - 50vw); width: 100vw;
  height: var(--ek-cara-sirka, 5px); pointer-events: none;
  background: linear-gradient(to right,
    transparent 0%,
    var(--ek-cara-barva, #2b2b2b) var(--ek-cara-rozplynuti, 25%),
    var(--ek-cara-barva, #2b2b2b) calc(100% - var(--ek-cara-rozplynuti, 25%)),
    transparent 100%);
}

/* košík: tmavší pozadí až těsně k čáře pod hlavičkou (řádek s drobečky a počtem položek) */
body:has(.view-commerce-cart-form) .site-sub {
  background: var(--ek-kosik-pozadi, #ebebeb);
  box-shadow: 0 0 0 100vmax var(--ek-kosik-pozadi, #ebebeb);
  clip-path: inset(0 -100vmax);
}

/* košík: tmavší pozadí až těsně k čáře pod hlavičkou (řádek s drobečky a počtem položek) */
body:has(.view-commerce-cart-form) .site-sub {
  background: var(--ek-kosik-pozadi, #ebebeb);
  box-shadow: 0 0 0 100vmax var(--ek-kosik-pozadi, #ebebeb);
  clip-path: inset(0 -100vmax);
}

/* ===== Patička vždy úplně dole i na krátkých stránkách ===== */
.layout-container { display: flex; flex-direction: column; min-height: 100vh; min-height: 100dvh; }
.layout-container > .site-body { flex: 1 0 auto; }
.layout-container > .site-footer { margin-top: auto; }

/* ===== Prázdný košík: karta s ikonou a seznamem kategorií ===== */
.ek-prazdny { max-width: 920px; margin: 1rem auto 3rem; padding: 2rem 2rem 2.2rem; background: #fff; border-radius: 16px; text-align: center; }
.ek-prazdny__ikona { display: flex; align-items: center; justify-content: center; width: 5.5rem; height: 5.5rem; margin: 0 auto 1rem; border-radius: 50%; background: #eef1f6; }
.ek-prazdny__ikona svg { width: 2.6rem; height: 2.6rem; color: var(--ek-ovladac-barva, #04193a); }
.ek-prazdny h2 { margin: .3rem 0 .4rem; font-size: 1.5rem; }
.ek-prazdny p { margin: 0 0 1.5rem; color: #666; }
.ek-prazdny__seznam { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem 1rem; margin: 0; padding: 0; list-style: none; text-align: left; }
.ek-prazdny__seznam a {
  display: flex; align-items: center; gap: .7rem; padding: .8rem 1rem;
  color: #111 !important; font-weight: 600; text-decoration: none;
  background: #fff; border: 1px solid #e3e3e3; border-radius: 10px;
}
.ek-prazdny__seznam a:hover { background: #f6f6f6; }
.ek-prazdny__tecka { flex: none; width: .7rem; height: .7rem; border-radius: 50%; }
.ek-prazdny__nazev { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ek-prazdny__sipka { color: #777; font-size: 1.125rem; }
body:has(.ek-prazdny) .block-page-title-block { max-width: 920px; }
@media (max-width: 700px) { .ek-prazdny__seznam { grid-template-columns: 1fr; } }

/* ===== Prázdný košík: tři sloupce, šířka se dolaďuje skriptem ===== */
.ek-prazdny { width: 100%; max-width: 1000px; margin-left: auto; margin-right: auto; }
.ek-prazdny__seznam { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body:has(.ek-prazdny) .block-page-title-block { max-width: none; margin-left: 0; margin-right: 0; }
@media (max-width: 900px) { .ek-prazdny__seznam { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .ek-prazdny__seznam { grid-template-columns: 1fr; } }

/* ===== Pokladna: Doprava a platba ===== */
body:has(form.ek-pokladna), body:has(form.ek-pokladna) main, body:has(form.ek-pokladna) .site-main { background: var(--ek-kosik-pozadi, #ebebeb) !important; }
form.ek-pokladna .layout-checkout-form { display: grid; grid-template-columns: minmax(0, 1fr) var(--ek-kosik-souhrn, 25rem); gap: 2rem; align-items: start; max-width: var(--ek-kosik-max, 1360px); margin: 1.5rem auto 3rem; padding: 0 1rem; }
form.ek-pokladna .layout-checkout-form .layout-region { float: none; width: auto; margin: 0; padding: 0; }
form.ek-pokladna .layout-region-checkout-footer { display: none; }
form.ek-pokladna .layout-region-checkout-secondary > h3 { display: none; }
form.ek-pokladna .layout-region-checkout-secondary { position: sticky; top: 7rem; }
form.ek-pokladna .checkout-pane { background: #fff; border: 0; border-radius: 14px; padding: 1.5rem 1.75rem; margin: 0 0 1.25rem; }
form.ek-pokladna .checkout-pane > legend, form.ek-pokladna .checkout-pane > legend .fieldset-legend { font-size: 1.5rem; font-weight: 700; color: #111; padding: 0; }
form.ek-pokladna .checkout-pane fieldset.fieldgroup { border: 0; padding: 0; margin: 0; }
form.ek-pokladna .checkout-pane fieldset.fieldgroup > legend { display: none; }
form.ek-pokladna .ek-doprava-napoveda { margin: .25rem 0 1rem; color: #555; font-size: 1rem; }
form.ek-pokladna .ek-skupina { margin: 1.25rem 0 .5rem; font-size: 1rem; font-weight: 700; letter-spacing: .08em; color: #777; }
form.ek-pokladna .form-radios .form-type-radio { display: flex; align-items: center; gap: .85rem; margin: .5rem 0; padding: .8rem 1rem; border: 1px solid #dcdcdc; border-radius: 10px; background: #fff; cursor: pointer; }
form.ek-pokladna .form-radios .form-type-radio:has(input:checked) { border-color: var(--ek-kosik-akcent, #04193a); box-shadow: 0 0 0 1px var(--ek-kosik-akcent, #04193a); background: #f6f9fd; }
form.ek-pokladna .form-radios .form-type-radio input { margin: 0; flex: none; accent-color: var(--ek-kosik-akcent, #04193a); width: 1.15rem; height: 1.15rem; }
form.ek-pokladna .form-radios .form-type-radio label { flex: 1; margin: 0; cursor: pointer; font-weight: 500; }
form.ek-pokladna .form-radios .form-type-radio .description { display: none; }
form.ek-pokladna .ek-radek { display: flex; align-items: center; gap: .85rem; }
form.ek-pokladna .ek-logo { flex: none; width: 2.4rem; height: 2.4rem; border-radius: 8px; color: #fff; font-weight: 700; display: grid; place-items: center; }
form.ek-pokladna .ek-nazev { flex: 1; display: flex; flex-direction: column; font-weight: 600; color: #111; }
form.ek-pokladna .ek-nazev small { font-weight: 400; color: #777; font-size: 1rem; }
form.ek-pokladna .ek-cena { margin-left: auto; font-weight: 700; color: #111; white-space: nowrap; }
form.ek-pokladna #edit-payment-information .form-type-radio label { font-weight: 600; }
.ek-souhrn { background: #fff; border-radius: 14px; padding: 1.5rem; }
.ek-souhrn__hlava h2 { margin: 0 0 1rem; font-size: 1.5rem; }
.ek-souhrn__zbozi { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-bottom: 1rem; border-bottom: 1px solid #e6e6e6; }
.ek-souhrn__obr { display: flex; gap: .5rem; }
.ek-souhrn__obr img { width: 3.2rem; height: 3.2rem; object-fit: contain; border: 1px solid #e6e6e6; border-radius: 8px; background: #fff; }
.ek-souhrn__upravit, .ek-souhrn__zpet { color: var(--ek-kosik-akcent, #04193a); font-weight: 600; }
.ek-souhrn__radky { margin: 1rem 0; }
.ek-souhrn__radky > div { display: flex; justify-content: space-between; gap: 1rem; padding: .35rem 0; }
.ek-souhrn__radky dt { color: #555; margin: 0; }
.ek-souhrn__radky dd { margin: 0; font-weight: 600; text-align: right; }
.ek-souhrn__celkem { display: flex; justify-content: space-between; align-items: baseline; padding-top: 1rem; border-top: 1px solid #e6e6e6; font-weight: 600; }
.ek-souhrn__celkem strong { font-size: 1.5rem; color: #111; }
.ek-souhrn__bezdph { display: flex; justify-content: space-between; color: #777; font-size: 1rem; margin-top: .25rem; }
.ek-souhrn__tlacitko { margin-top: 1.25rem; }
.ek-souhrn__tlacitko .form-actions { margin: 0; }
.ek-souhrn__tlacitko input.button { width: 100%; padding: 1rem; border: 0; border-radius: 10px; background: var(--ek-kosik-akcent, #04193a); color: #fff; font-size: 1rem; font-weight: 700; cursor: pointer; }
.ek-souhrn__tlacitko input.button:hover { filter: brightness(1.2); }
.ek-souhrn__zpet { display: block; margin-top: 1rem; text-align: center; }
@media (max-width: 900px) { form.ek-pokladna .layout-checkout-form { grid-template-columns: 1fr; } form.ek-pokladna .layout-region-checkout-secondary { position: static; } }
body:has(form.ek-pokladna) .block-page-title-block { display: none; }
form.ek-pokladna .checkout-pane > legend { float: left; width: 100%; margin: 0 0 .75rem; }
form.ek-pokladna .checkout-pane > legend + * { clear: both; }
body:has(form.ek-pokladna) #block-eshop-theme-eshop-hledat { display: none; }
body:has(form.ek-pokladna) .site-top__menus { display: none; }
form.ek-pokladna:not(:has(.ek-souhrn)) .layout-region-checkout-footer { display: block; }
form.ek-pokladna .layout-region-checkout-footer .form-actions { display: flex; gap: 1rem; align-items: center; }
form.ek-pokladna .layout-region-checkout-footer input.button--primary { padding: .9rem 2rem; border: 0; border-radius: 10px; background: var(--ek-kosik-akcent, #04193a); color: #fff; font-weight: 700; cursor: pointer; }
form.ek-pokladna .layout-region-checkout-footer a.link--previous { color: var(--ek-kosik-akcent, #04193a); font-weight: 600; }
form.ek-pokladna #edit-eshop-udaje > .fieldset-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.25rem; }
form.ek-pokladna #edit-eshop-udaje .ek-pole { margin: 0; }
form.ek-pokladna #edit-eshop-udaje .ek-pole--address_line1, form.ek-pokladna #edit-eshop-udaje .ek-pole--email { grid-column: 1 / -1; }
form.ek-pokladna #edit-eshop-udaje label { display: block; margin-bottom: .3rem; font-weight: 600; color: #333; }
form.ek-pokladna #edit-eshop-udaje input { width: 100%; box-sizing: border-box; padding: .75rem .9rem; border: 1px solid #cfcfcf; border-radius: 10px; font-size: 1rem; background: #fff; }
form.ek-pokladna #edit-eshop-udaje input:focus { outline: 2px solid var(--ek-kosik-akcent, #04193a); border-color: transparent; }
@media (max-width: 600px) { form.ek-pokladna #edit-eshop-udaje > .fieldset-wrapper { grid-template-columns: 1fr; } }
.ek-souhrn__tlacitko .link--previous { display: none; }
form.ek-pokladna .checkout-pane-review > .fieldset-wrapper > fieldset { border: 0; border-bottom: 1px solid #e6e6e6; padding: 1rem 0; margin: 0; }
form.ek-pokladna .checkout-pane-review > .fieldset-wrapper > fieldset:last-child { border-bottom: 0; }
form.ek-pokladna .checkout-pane-review legend { font-weight: 700; font-size: 1.125rem; }
form.ek-pokladna .checkout-pane-review legend a { margin-left: .5rem; font-size: 1rem; font-weight: 600; }
.ek-kroky .je-hotovo { color: #111; }
.ek-kroky .je-hotovo .ek-kroky__cislo { color: var(--ek-kosik-akcent, #04193a); border-color: var(--ek-kosik-akcent, #04193a); font-weight: 700; background: #fff; }
.ek-kroky li.je-prosel + li::before { background: var(--ek-kosik-akcent, #04193a); }
form.ek-pokladna .layout-region-checkout-main fieldset:not(.fieldgroup):not(.checkout-pane) { background: #fff; border: 0; border-radius: 14px; padding: 1.5rem 1.75rem; margin: 0 0 1.25rem; }
form.ek-pokladna .layout-region-checkout-main fieldset:not(.fieldgroup):not(.checkout-pane) > legend { float: left; width: 100%; margin: 0 0 .75rem; padding: 0; font-size: 1.5rem; font-weight: 700; color: #111; }
form.ek-pokladna .layout-region-checkout-main fieldset:not(.fieldgroup):not(.checkout-pane) > legend + * { clear: both; }
form.ek-pokladna .layout-region-checkout-main fieldset:not(.fieldgroup):not(.checkout-pane) > legend a { font-size: 1rem; font-weight: 600; margin-left: .75rem; }
.ek-kroky .je-hotovo { color: #111; }
.ek-kroky .je-hotovo .ek-kroky__cislo { color: var(--ek-kosik-akcent, #04193a); border-color: var(--ek-kosik-akcent, #04193a); font-weight: 700; background: #fff; }
.ek-kroky li.je-prosel + li::before { background: var(--ek-kosik-akcent, #04193a); }
form.ek-pokladna .layout-region-checkout-main fieldset:not(.fieldgroup):not(.checkout-pane) { background: #fff; border: 0; border-radius: 14px; padding: 1.5rem 1.75rem; margin: 0 0 1.25rem; }
form.ek-pokladna .layout-region-checkout-main fieldset:not(.fieldgroup):not(.checkout-pane) > legend { float: left; width: 100%; margin: 0 0 .75rem; padding: 0; font-size: 1.5rem; font-weight: 700; color: #111; }
form.ek-pokladna .layout-region-checkout-main fieldset:not(.fieldgroup):not(.checkout-pane) > legend + * { clear: both; }
form.ek-pokladna .layout-region-checkout-main fieldset:not(.fieldgroup):not(.checkout-pane) > legend a { font-size: 1rem; font-weight: 600; margin-left: .75rem; }
.ek-kroky .je-aktivni .ek-kroky__cislo { background: #2e9e5b !important; border-color: #2e9e5b !important; color: #fff !important; }
.ek-kroky .je-aktivni .ek-kroky__text { color: #2e9e5b; font-weight: 600; }
.ek-kroky .je-hotovo .ek-kroky__cislo { background: #1a6fe0 !important; border-color: #1a6fe0 !important; color: #fff !important; }
.ek-kroky .je-hotovo { color: #1a6fe0; font-weight: 600; }
.ek-kroky li.je-prosel + li::before { background: #1a6fe0 !important; height: 2px; }
.ek-kroky .je-hotovo .ek-kroky__cislo { background: #04193a !important; border-color: #04193a !important; color: #fff !important; }
.ek-kroky .je-hotovo { color: #04193a; font-weight: 600; }
.ek-kroky li.je-prosel + li::before { background: #04193a !important; height: 2px; }
.ek-kroky .je-hotovo .ek-kroky__cislo { background: var(--ek-kosik-akcent, #04193a) !important; border-color: var(--ek-kosik-akcent, #04193a) !important; color: #fff !important; }
.ek-kroky .je-hotovo { color: var(--ek-kosik-akcent, #04193a); }
.ek-kroky li.je-prosel + li::before { background: var(--ek-kosik-akcent, #04193a) !important; }
.ek-patka-odkazy a { padding: calc(.6rem + 7.5px) 0; }
#block-eshop-theme-powered { padding: calc(.6rem + 7.5px) 0 !important; }
.ek-nedostupne { color: #8a1f1f; font-weight: 600; padding: .6rem 0; }
.ek-nedostupne { font-size: 1rem; line-height: 1.4; font-weight: 400; color: #8a1f1f; }
.ek-nedostupne strong { color: #04193a; }
.ek-kod-karta { margin-top: .5rem; font-size: 1rem; color: #555; }
.ek-sklad.ek-sklad--nic { display: block; text-align: center; font-size: 1.25rem; font-weight: 700; color: #d32f2f; letter-spacing: .02em; text-transform: uppercase; padding: .3rem 0; }
.ek-nedostupne { text-align: center; }
.ek-nedostupne a { color: #04193a; text-decoration: none; }
.ek-nedostupne a:hover { text-decoration: underline; }
.ek-sklad.ek-sklad--nic { font-family: Georgia, "Times New Roman", serif; text-align: center !important; width: 100%; display: block; margin-left: auto; margin-right: auto; align-self: center; }
.ek-po-vlozeni .messages--status { position: fixed; top: 90px; left: 50%; transform: translateX(-50%); z-index: 1000; max-width: 92vw; background: #fff; box-shadow: 0 6px 24px rgba(0,0,0,.25); animation: ekToast 5s forwards; }
@keyframes ekToast { 0%, 85% { opacity: 1; } 100% { opacity: 0; visibility: hidden; } }
.ek-toast { position: fixed; top: 90px; left: 50%; transform: translateX(-50%); z-index: 1000; max-width: 92vw; background: #fff; box-shadow: 0 6px 24px rgba(0,0,0,.25); animation: ekToast 5s forwards; }
.ek-toast .messages { margin: 0; }
.ek-toast { background: transparent !important; box-shadow: none !important; border: 0 !important; padding: 0 !important; }
.ek-toast .messages { background: #fff; box-shadow: 0 6px 24px rgba(0,0,0,.25); margin: 0; }
.ek-toast .messages .messages { box-shadow: none; border: 0; margin: 0; padding: 0; background: transparent; }
.ek-kontakty { max-width: 640px; margin: 1rem auto; background: #fff; border-radius: 12px; padding: 1rem 1.5rem; box-shadow: 0 1px 4px rgba(0,0,0,.08); }
.ek-kontakty__radek { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid #e5e5e5; }
.ek-kontakty__radek:last-child { border-bottom: 0; }
.ek-kontakty__radek span { color: #666; }
.ek-kontakty__radek a { color: #04193a; }
.ek-odeslano, .ek-odeslano-souhrn { background: #fff; border-radius: 12px; padding: 1.5rem 1.8rem; box-shadow: 0 1px 4px rgba(0,0,0,.08); }
.ek-odeslano__nadpis { margin: 0 0 .3rem; font-size: 1.5rem; color: #04193a; }
.ek-odeslano__cislo { font-size: 1.125rem; margin-bottom: 1rem; color: #333; }
.ek-odeslano__blok { border-top: 1px solid #e5e5e5; padding: .9rem 0 .2rem; }
.ek-odeslano__blok h3 { margin: 0 0 .3rem; font-size: 1rem; letter-spacing: .06em; text-transform: uppercase; color: #777; }
.ek-odeslano__blok p { margin: 0 0 .6rem; line-height: 1.5; }
.ek-odeslano__blok a { color: #04193a; }
.ek-odeslano__tlacitko { display: inline-block; margin-top: 1rem; padding: .8rem 1.6rem; background: #04193a; color: #fff !important; border-radius: 10px; font-weight: 600; text-decoration: none; }
.ek-odeslano-souhrn h3 { margin: 0 0 1rem; font-size: 1.5rem; color: #04193a; }
.ek-odeslano-souhrn__polozka { display: grid; grid-template-columns: 56px 1fr auto; gap: .8rem; align-items: center; padding: .6rem 0; border-bottom: 1px solid #eee; }
.ek-odeslano-souhrn__obr img { width: 56px; height: 56px; object-fit: contain; border: 1px solid #eee; border-radius: 8px; background: #fff; }
.ek-odeslano-souhrn__nazev span { display: block; color: #777; font-size: 1rem; }
.ek-odeslano-souhrn__cena { font-weight: 600; white-space: nowrap; }
.ek-odeslano-souhrn dl { display: flex; justify-content: space-between; margin: .8rem 0 0; color: #555; }
.ek-odeslano-souhrn dd { margin: 0; }
.ek-odeslano-souhrn__celkem { display: flex; justify-content: space-between; align-items: baseline; margin-top: 1rem; padding-top: .8rem; border-top: 1px solid #ddd; }
.ek-odeslano-souhrn__celkem strong { font-size: 1.5rem; color: #04193a; }
.ek-odeslano-souhrn__bezdph { text-align: right; color: #777; font-size: 1rem; margin-top: .2rem; }
.ek-kod-karta strong, .ek-produkt-kod strong, .ek-kosik-kod strong { color: var(--ek-sklad-ano, #1e7e34) !important; font-weight: 700; }
.ek-card { position: relative; }
.ek-card:has(.ek-sklad--nic) { padding-top: 2.8rem; }
.ek-card .ek-sklad.ek-sklad--nic { position: absolute; top: .6rem; left: 0; right: 0; width: auto; margin: 0; padding: 0; line-height: 1.6; }
.ek-grid { align-items: stretch; }
.ek-card { display: flex; flex-direction: column; }
.ek-card > .ek-title { margin-top: auto; }
@media (min-width: 900px) {
  .layout-sidebar-first { position: sticky; top: 1rem; align-self: flex-start; max-height: calc(100vh - 2rem); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
}
.messages--error { border: 0 !important; background: none !important; background-image: none !important; box-shadow: none !important; padding: .25rem 0 !important; color: #a12b2b; font-size: 1.25rem; line-height: 1.5; }
.messages--error *, .messages--error li, .messages--error p { font-size: 1.25rem; color: #a12b2b; }
.messages--error ul { margin: 0; padding-left: 1.2rem; }
.messages--error { border: 0 !important; background: none !important; background-image: none !important; box-shadow: none !important; padding: .25rem 0 !important; color: #a12b2b; font-size: 1.25rem; line-height: 1.5; }
.messages--error *, .messages--error li, .messages--error p { font-size: 1.25rem; color: #a12b2b; }
.messages--error ul { margin: 0; padding-left: 1.2rem; }
.messages--error, .messages--error *, .messages--error::before, .messages--error::after,
.messages__wrapper:has(.messages--error), [data-drupal-messages]:has(.messages--error) { border: 0 !important; border-image: none !important; outline: 0 !important; box-shadow: none !important; background: none !important; }
.messages--error { padding: .5rem 0 !important; margin: 1rem 0 !important; }
.messages--error, .messages--error * { color: #d90000 !important; font-size: 1.5rem !important; font-weight: 700 !important; line-height: 1.4 !important; }
div.messages.messages--error { border: 6px solid var(--ek-kosik-akcent, #04193a) !important; border-radius: 10px !important; padding: .75rem 1.25rem !important; background: #fff !important; }
div.messages.messages--error { border-width: 10px !important; }

/* pokladna: bez bileho pruhu pod hlavickou */
body.path-checkout .cart-block,
body.path-checkout .block-commerce-cart,
body.path-checkout [id*="cart"].block,
body.path-checkout .site-body > .region:not(:has(.ek-odeslano)):not(:has(form)) .cart-block{display:none !important}
body.path-checkout .site-body,body.path-checkout .site-body > *{background:rgb(235,235,235)}

/* vlastni bublina validace */
.ek-bublina { position: absolute; z-index: 10000; background: var(--ek-kosik-akcent, #04193a); color: #fff; font-size: 18px; font-weight: 700; line-height: 1.4; padding: .7rem 1.1rem; border-radius: 10px; max-width: min(90vw, 420px); box-shadow: 0 6px 18px rgba(0,0,0,.25); }
.ek-bublina::before { content: ''; position: absolute; top: -8px; left: 22px; border: 8px solid transparent; border-top: 0; border-bottom-color: var(--ek-kosik-akcent, #04193a); }

/* e-mail male pismena pri psani */
body.path-checkout input[type=email] { text-transform: lowercase; }

/* Skladem / Posledni kusy: stejne misto a pismo jako "Neni skladem", jen barva zustava */
.ek-card:has(.ek-sklad) { padding-top: 2.8rem; }
.ek-card .ek-sklad { display: block; position: absolute; top: .6rem; left: 0; right: 0; width: auto; margin: 0; padding: 0; line-height: 1.6; font-family: Georgia, "Times New Roman", serif; text-align: center !important; font-size: 1.25rem; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; }
.ek-card .ek-sklad.ek-sklad--ano { color: var(--ek-sklad-ano, #1e7e34); }
.ek-card .ek-sklad.ek-sklad--malo { color: var(--ek-sklad-malo, #b9770e); }

/* odkaz Pokracovat v nakupu v pokladne */
.ek-pokracovat { width: min(1360px, calc(100% - 2rem)); margin: 0 auto; height: 0; position: relative; top: 1.6rem; }
.ek-pokracovat a { font-size: 18px; font-weight: 700; color: var(--ek-kosik-akcent, #04193a); text-decoration: underline; }

/* sipka u Pokracovat v nakupu */
.ek-pokracovat { top: 1.1rem; }
.ek-pokracovat a { display: inline-flex; align-items: center; gap: .8rem; text-decoration: none; }
.ek-pokracovat a:hover span { text-decoration: underline; }

/* sipka: stred nad kartami, 200px */
.ek-pokracovat { top: 40px; display: flex; justify-content: center; }
.ek-pokracovat a { gap: 1rem; }
.ek-pokracovat svg { width: 200px; height: 44px; flex: none; }

/* sipka: text vlevo, delsi cara, blize k care */
.ek-pokracovat { top: 12px; }
.ek-pokracovat svg { width: 320px; height: 44px; }
.ek-pokracovat span { order: -1; font-size: 20px; font-weight: 700; }
.ek-pokracovat a, .ek-pokracovat a span { color: var(--ek-kosik-akcent, #04193a) !important; }

/* Zdarma v souhrnu */
.ek-zdarma { color: var(--ek-sklad-ano, #1e7e34) !important; font-weight: 700; }

/* kosik: bez drobeckove navigace (Home) */
body.path-cart nav.breadcrumb, body.path-cart .breadcrumb, body.path-cart [class*="breadcrumb"] { display: none !important; }

/* vydejni mista: mapa */
.ek-misto { background: #fff; border: 3px solid var(--ek-kosik-akcent, #04193a); border-radius: 12px; padding: 1rem 1.25rem; margin: .75rem 0 1.25rem; }
.ek-misto h3 { font-size: 24px; margin: 0 0 .25rem; color: var(--ek-kosik-akcent, #04193a); }
.ek-misto p { font-size: 18px; margin: 0 0 .75rem; }
.ek-misto__hledat { display: flex; gap: .5rem; margin-bottom: .5rem; }
.ek-misto__hledat input { flex: 1; font-size: 18px; padding: .6rem .8rem; border: 1px solid #bbb; border-radius: 8px; }
.ek-misto__hledat button, .ek-misto__btn { background: var(--ek-kosik-akcent, #04193a); color: #fff; font-size: 18px; font-weight: 700; border: 0; border-radius: 8px; padding: .6rem 1.1rem; cursor: pointer; }
.ek-misto__btn { margin-top: .5rem; }
.ek-misto__zprava { font-size: 18px; color: #b00020; }
.ek-misto__mapa { height: 420px; border-radius: 8px; z-index: 0; }
.ek-misto__vybrano { font-size: 18px; margin-top: .75rem; color: var(--ek-sklad-ano, #1e7e34); }
.ek-misto .leaflet-container { font: inherit; }
.ek-misto .leaflet-popup-content { font-size: 16px; line-height: 1.4; }
.ek-misto .leaflet-control-attribution { font-size: 14px; }
.ek-pin span { display: block; width: 26px; height: 26px; background: var(--ek-kosik-akcent, #04193a); border: 3px solid #fff; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); }

/* souhrn: vydejni misto */
.ek-souhrn__radky .ek-souhrn__misto { display: block; }
.ek-souhrn__radky .ek-souhrn__misto dt { margin-bottom: .15rem; }
.ek-souhrn__radky .ek-souhrn__misto dd { text-align: left; font-weight: 600; font-size: 16px; margin: 0; }

/* sipka jeste vyse */
.ek-pokracovat { top: -42px; }

/* sipka: text vlevo od poloviny, sipka vpravo, karty o 40px nize */
.ek-pokracovat { position: relative; top: 0; display: block; height: 40px; width: min(1360px, calc(100% - 2rem)); margin: 0 auto; }
.ek-pokracovat a { display: grid !important; grid-template-columns: 1fr 1fr; column-gap: 1rem; align-items: center; position: relative; top: 5px; height: 44px; width: 100%; }
.ek-pokracovat span { justify-self: end; text-align: right; }
.ek-pokracovat svg { justify-self: start; width: min(320px, 100%); height: 44px; }

/* sipka presne doprostred */
.ek-pokracovat a { top: -17px; }

/* sipka: stred nad levou kartou, text vlevo pred sipkou */
.ek-pokracovat a { grid-template-columns: 1fr 320px 1fr; width: calc(100% - 432px); column-gap: 1rem; }
.ek-pokracovat span { grid-column: 1; justify-self: end; text-align: right; }
.ek-pokracovat svg { grid-column: 2; justify-self: center; width: 320px; }
@media (max-width: 899px) {
  .ek-pokracovat a { width: 100%; grid-template-columns: 1fr auto; }
  .ek-pokracovat svg { grid-column: 2; width: min(240px, 45vw); }
}

/* text nad sipkou, vystredeny */
.ek-pokracovat span { position: absolute; left: 0; right: 0; top: -34px; grid-column: auto; justify-self: auto; text-align: center; }

.ek-skryt { display: none !important; }

/* plovouci hlasky */
.ek-plovouci-hlasky { position: fixed; top: 110px; left: 50%; transform: translateX(-50%); width: min(980px, 92vw); z-index: 10000; display: flex; flex-direction: column; gap: .75rem; pointer-events: none; }
.ek-plovouci-hlasky .messages { pointer-events: auto; position: static !important; left: auto !important; transform: none !important; width: auto !important; max-width: none !important; margin: 0 !important; box-shadow: 0 12px 36px rgba(0,0,0,.4); }

/* predvolba s vlajkou */
.ek-tel { position: relative; display: flex; gap: .5rem; align-items: stretch; }
.ek-tel input { flex: 1; min-width: 0; }
.ek-tel__volba { display: flex; align-items: center; gap: .5rem; font-size: 18px; font-weight: 700; padding: 0 .8rem; border: 1px solid #bbb; border-radius: 8px; background: #fff; cursor: pointer; color: var(--ek-kosik-akcent, #04193a); }
.ek-tel__volba b { font-size: 16px; }
.ek-tel__volba img, .ek-tel__seznam img { border-radius: 3px; box-shadow: 0 0 0 1px rgba(0,0,0,.15); }
.ek-tel__seznam { position: absolute; top: 100%; left: 0; z-index: 10001; margin: .25rem 0 0; padding: .25rem; list-style: none; background: #fff; border: 2px solid var(--ek-kosik-akcent, #04193a); border-radius: 10px; max-height: 320px; overflow-y: auto; width: min(360px, 92vw); box-shadow: 0 12px 30px rgba(0,0,0,.3); }
.ek-tel__seznam[hidden] { display: none; }
.ek-tel__seznam li { display: flex; align-items: center; gap: .7rem; padding: .5rem .6rem; font-size: 18px; cursor: pointer; border-radius: 6px; }
.ek-tel__seznam li:hover { background: #eef1f6; }
.ek-tel__seznam .n { flex: 1; }
.ek-tel__seznam .k { font-weight: 700; color: var(--ek-kosik-akcent, #04193a); }

/* hlaska pod tlacitkem */
.ek-chyba-pod { margin-top: 14px; font-family: Georgia, 'Times New Roman', serif; font-size: 20px; font-weight: 700; color: var(--ek-sklad-ano, #1e7e34); }

/* Souhrn: ramecek s obrazky v pravem pruhu */
.ek-souhrn.ek-obr-vpravo .ek-souhrn__obr { display: none; }
.ek-obrazky { position: absolute; z-index: 5; display: none; flex-direction: column; align-items: center; gap: 12px; width: 96px; box-sizing: border-box; padding: 14px; background: #fff; border-radius: 16px; }
.ek-obrazky > * { margin: 0; }
.ek-obrazky img { max-width: 100%; height: auto; display: block; }

/* Review: karta Udaje ve stylu stranky Odeslano */
#edit-review-eshop-udaje { border: 0; padding: 0; margin: 0; min-width: 0; }
#edit-review-eshop-udaje > legend { float: left; width: 100%; padding: 0; margin: 0 0 14px; }
#edit-review-eshop-udaje .fieldset-legend { display: flex; justify-content: space-between; align-items: baseline; width: 100%; font-size: 18px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #6b7280; }
#edit-review-eshop-udaje .checkout-review-edit-link { text-transform: none; letter-spacing: 0; font-size: 18px; font-weight: 400; }
#edit-review-eshop-udaje .checkout-review-edit-link a { color: var(--ek-kosik-akcent, #04193a); text-decoration: underline; }
#edit-review-eshop-udaje .fieldset-wrapper { clear: both; font-size: 20px; line-height: 1.6; color: var(--ek-kosik-akcent, #04193a); }

/* Review: radky Udaju */
.ek-radky { margin: 0; }
.ek-radky > div { display: grid; grid-template-columns: 220px 1fr; gap: 16px; align-items: baseline; padding: 16px 0; border-top: 1px solid #e5e7eb; }
.ek-radky dt { margin: 0; font-size: 18px; color: #6b7280; }
.ek-radky dd { margin: 0; font-size: 20px; font-weight: 600; color: var(--ek-kosik-akcent, #04193a); overflow-wrap: anywhere; }
@media (max-width: 600px) { .ek-radky > div { grid-template-columns: 1fr; gap: 4px; } }

/* Review: odsazeni radku zleva */
.ek-radky > div { padding-left: 20px; padding-right: 20px; }

/* Review: popisky v leve polovine, hodnoty od poloviny */
.ek-radky > div { grid-template-columns: 1fr 1fr; }
@media (max-width: 600px) { .ek-radky > div { grid-template-columns: 1fr; } }

/* Review: nadpis Udaje a odkaz Upravit odsazene jako radky */
#edit-review-eshop-udaje > legend { box-sizing: border-box; padding: 0 20px; }

/* Review: bez zavorek kolem Upravit */
#edit-review-eshop-udaje .fieldset-legend::before,
#edit-review-eshop-udaje .fieldset-legend::after,
#edit-review-eshop-udaje .checkout-review-edit-link::before,
#edit-review-eshop-udaje .checkout-review-edit-link::after { content: none !important; display: none !important; }

/* hlaska pod tlacitkem: na stred a mensi */
.ek-chyba-pod { text-align: center; font-size: 18px; }

/* hlaska o skladu: tmave modre pozadi, bile pismo */
div.messages.messages--error:has(.ek-sklad-hlaska) { background: var(--ek-kosik-akcent, #04193a) !important; border: 0 !important; border-radius: 12px !important; padding: 14px 24px !important; box-shadow: 0 8px 24px rgba(0,0,0,.25) !important; }
div.messages.messages--error:has(.ek-sklad-hlaska), div.messages.messages--error:has(.ek-sklad-hlaska) * { color: #fff !important; font-size: 18px !important; font-weight: 600 !important; }

/* katalog: pocet kusu na sklade vpravo na radku s kodem */
.ek-kod-karta { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.ek-kod-sklad { font-weight: 700; color: var(--ek-sklad-ano, #1e7e34); white-space: nowrap; }
.ek-kod-sklad--malo { color: var(--ek-sklad-malo, #b45309); }
.ek-kod-sklad--nic { color: #a12b2b; }

/* katalog: kod a sklad vzdy na jednom radku */
.ek-kod-karta { flex-wrap: wrap; gap: .25rem .75rem; }
.ek-kod-karta > span { white-space: nowrap; flex: 0 0 auto; }

/* kosik: pocet kusu na sklade vpravo na radku s kodem */
.ek-kosik-kod { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; width: 100%; }
.ek-kosik-sklad { font-weight: 700; color: var(--ek-sklad-ano, #1e7e34); white-space: nowrap; }
.ek-kosik-sklad--malo { color: var(--ek-sklad-malo, #b45309); }

/* Souhrn: ramecek vpravo s nazvem, kusy a cenou */
.ek-obrazky { width: 210px; align-items: stretch; gap: 14px; }
.ek-pol { display: flex; align-items: center; gap: 10px; }
.ek-pol img { width: 52px; height: auto; flex: 0 0 52px; max-width: none; }
.ek-pol__txt { display: flex; flex-direction: column; font-size: 16px; line-height: 1.3; color: var(--ek-kosik-akcent, #04193a); min-width: 0; }
.ek-pol__nazev { font-weight: 600; overflow-wrap: anywhere; }
.ek-pol__info { color: #6b7280; }

/* Souhrn vpravo: mezera a cara mezi druhy zbozi */
.ek-obrazky { gap: 16px; }
.ek-pol + .ek-pol { padding-top: 16px; border-top: 1px solid #d9dee6; }
