/* custom-combined byl od 20260622-2126 sbaleny do ne-adamin-derived.css a tento soubor byl no-op stub.
   Od 2026-07-07 tu ZIJE fix NE-CAROUSEL-FLAGS-COMPACT-20260707 (viz nize) - soubor uz NENI no-op!
   Duvod: headless session nemuze bumpnout ?v= bundlu v admin Zahlavi; tenhle soubor se busti pres
   template-include API POST. Az nekdo pristi edituje NE-BM-CARD v bundlu, blok presunout tam. */

/* === FIX START: NE-CAROUSEL-FLAGS-COMPACT-20260707 === */
/*
 * Priznaky v karouselech (slick: homepage, detail produktu souvisejici/
 * alternativni, kosik "Nezapomneli jste na neco?", advanced order).
 * v1: chipy mini + pod slevou (top:34) -> zasahovaly do obrazku (feedback).
 * v2: OBRAZEK MA PREDNOST - vsechny chipy (Mnozstevni sleva, Novinka, Tip,
 * Akce) jsou v LEVEM DOLNIM rohu dlazdice (dole je ~40px padding zona pod
 * obrazkem), sleva -N % zustava vpravo nahore. Quick-view oko (hover,
 * desktop) se presouva do volneho LEVEHO HORNIHO rohu. V uzkych kartach
 * (<186px: related na detailu ~142px, mobilni carousel ~132px) by QD chip
 * (~100-118px) kolidoval s quick-add "+" (40px vpravo dole) -> skryva se
 * pres container query (query na .p; fallback bez CQ = chip dole vlevo).
 *
 * Dale plati z v1: dlouhe priznaky (Vyhodne baleni, Original z Italie/
 * Nemecka) v karouselech skryte i na desktopu; "Akce" skryta pri slevovem
 * chipu (duplicita); chipy desktop mini 11px/20px, sleva 12px/20px
 * (mobilni metriky 12px/22px nechava NE-BM-CARD).
 *
 * KASKADOVE GOTCHAS (stale platne):
 * - display:block v media bloku (0,7,2) NESMI prebit skryvaci pravidla ->
 *   vsechna display:none az ZA media blokem se specificitou >= (0,8,2);
 *   patri sem i posila .ne-flag-hidden (prune JS v NE-BM-QUICKADD).
 * - route-product (NE-QD-FLAG-STYLE) prejmenovava QD flag na detailu pres
 *   font-size:0 + ::after content:"Mnozstevni sleva"; vlastni font-size
 *   na flagu by odkryl surovy text DVAKRAT -> na detailu fs 0 + ::after.
 * - Tento soubor se nacita PRED bundlem -> body/html prefixy + !important.
 * TODO pri pristi editaci bundlu: presunout blok do NE-BM-CARD.
 */

/* .p jako container pro sirkove queries (inline-size: .p je block-level,
   sirku bere z .product, na obsahu nezavisi -> bezpecne) */
body .products-block.slick-initialized .product .p {
  container-type: inline-size;
}

/* v3 20260709 (Lubos): chip cluster ZPET NAHORU (flex column ->
   flex-start = levy horni roh); QD chip zustava posledni v poradi */
body .products-block.slick-initialized .product .p .flags-default {
  justify-content: flex-start !important;
}
html body .products-block.slick-initialized .product .p .flags.flags-default .flag.flag-quantity-discount {
  order: 99 !important;
  margin-top: 0 !important;
}

/* v3: chipy jsou nahore -> quick-view oko do volneho LEVEHO DOLNIHO rohu
   (BM-CARD :has(QD+long) bottom:44 ma (0,8,1) < nase (0,8,2) -> nase
   bottom:10 vyhrava). */
html body .products-block.slick-initialized .product .p a.image .quick-view-btn,
html body #products.products-block.slick-initialized .product .p a.image .quick-view-btn {
  top: auto !important;
  bottom: 10px !important;
  left: 10px !important;
}

@media (min-width: 768px) {
  body .products-block.slick-initialized .product .p .flags-default {
    gap: 3px !important;
    right: 10px !important;
  }
  html body .products-block.slick-initialized .product .p .flags.flags-default .flag {
    /* display:block kvuli text-overflow (inline-flex ellipsis neumi);
       flex-item sirku drzi align-items:flex-start; min/max-height prebiji
       route-product pill vrstvu (min-height 24px) */
    display: block !important;
    font-size: 11px !important;
    line-height: 20px !important;
    height: 20px !important;
    min-height: 20px !important;
    max-height: 20px !important;
    padding: 0 7px !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  html body .products-block.slick-initialized .product .p .flags.flags-default .flag.flag-quantity-discount {
    /* NE-QD-FLAG-STYLE ma .5px !important; 0 + mensi padding, aby se
       "Mnozstevni sleva" vesla cela. Specificita (0,8,2) > (0,7,2). */
    letter-spacing: 0 !important;
    padding: 0 6px !important;
  }
  /* DETAIL produktu: route-product (NE-QD-FLAG-STYLE) dela QD flagu
     "rename" pres font-size:0 + ::after content:"Mnozstevni sleva" 12px
     a pill vzhled (radius 999, min-height 24) - selektor
     body.type-product .flag.flag-quantity-discount chyta i karty
     v karouselech. Nase fs:11px z metrickeho pravidla by ODKRYLO surovy
     text vedle ::after (duplicitni text) -> na detailu drzime fs 0
     a stylujeme ::after; radius zpet 4px kvuli konzistenci chipu. */
  html body.type-product .products-block.slick-initialized .product .p .flags.flags-default .flag.flag-quantity-discount,
  html body.type-detail .products-block.slick-initialized .product .p .flags.flags-default .flag.flag-quantity-discount {
    font-size: 0 !important;
    border-radius: 4px !important;
  }
  html body.type-product .products-block.slick-initialized .product .p .flags.flags-default .flag.flag-quantity-discount::after,
  html body.type-detail .products-block.slick-initialized .product .p .flags.flags-default .flag.flag-quantity-discount::after {
    font-size: 11px !important;
    line-height: 20px !important;
    letter-spacing: 0 !important;
  }
  html body .products-block.slick-initialized .product .flags.flags-extra .flag {
    height: 20px !important;
    min-height: 20px !important;
    max-height: 20px !important;
    padding: 0 6px !important;
  }
  html body .products-block.slick-initialized .product .flags.flags-extra .flag > span.price-save {
    font-size: 12px !important;
    letter-spacing: -.3px !important;
  }
}

/* skryvaci pravidla AZ ZA media blokem a s vyssi specificitou (0,8,2)
   nez display:block metricke pravidlo (0,7,2) - jinak by je block prebil
   (remiza trid -> rozhoduji elementy) a dlouhe flagy by zustaly videt */
html body .products-block.slick-initialized .product .p .flags.flags-default .flag.flag-custom1,
html body .products-block.slick-initialized .product .p .flags.flags-default .flag.flag-original-z-italie,
html body .products-block.slick-initialized .product .p .flags.flags-default .flag.flag-original-z-nemecka,
html body .products-block.slick-initialized .product .p .flags.flags-default .flag.ne-flag-hidden {
  display: none !important;
}
html body .products-block.slick-initialized .product .p:has(.flags-extra .flag-discount) .flags.flags-default .flag.flag-action {
  display: none !important;
}

/* uzka karta (<186px): QD chip (~100-118px) by dole kolidoval s quick-add
   "+" (40px + okraje vpravo dole) -> skryt; kratke chipy (Novinka/Tip,
   do ~70px) se vedle "+" vejdou i v mobilni 132px karte */
@container (max-width: 185px) {
  html body .products-block.slick-initialized .product .p .flags.flags-default .flag.flag-quantity-discount {
    display: none !important;
  }
}
/* === FIX END: NE-CAROUSEL-FLAGS-COMPACT-20260707 === */

/* === FIX START: NE-STICKY-OVERLAY-GUARD-20260708 ===
   KRITICKE: sticky buy-bar na PDP nesmi prekryvat kosikovy popup / login /
   menu overlay ("Pokracovat do kosiku" bylo prekryto -> zakaznik nemohl
   do kosiku). Zije v GLOBALNIM custom-combined (template-include bust),
   protoze route-CSS verze fixu nedorazi ke klientum s nacachovanym
   starsim loaderem. Duplikat pravidla z ne-route-product.css - nevadi. */
body.cart-window-visible .ne-sticky-buybar,
body.user-action-visible .ne-sticky-buybar,
body.navigation-window-visible .ne-sticky-buybar,
body.ne-login-popup-open .ne-sticky-buybar {
  display: none !important;
}
/* === FIX END: NE-STICKY-OVERLAY-GUARD-20260708 === */

/* === NE-CHECKOUT-LOGIN-POPUP GLOBAL COPY 20260708 ===
   Duplikat popup+callout+skeleton CSS z ne-route-ne-ux-cart-checkout.css.
   Az pujde admin: bump primeho linku (orderFinale) a duplikat smazat. */
/* === FIX START: NE-CHECKOUT-LOGIN-POPUP-20260708 ===
   Login popup na kroku 2 (BM vzor): centrovany modal + backdrop, korporatni
   formular, benefity registrace v tmave karte. Scope jen ordering-process,
   header dropdown na ostatnich strankach nedotcen. */
body.ordering-process.ne-login-popup-open::before {
  content: "";
  position: fixed;
  inset: 0;
  background: rgba(24, 18, 12, 0.55);
  z-index: 9998;
}
html body.ordering-process.ne-login-popup-open .user-action-login.popup-widget {
  display: block !important;
  position: fixed !important;
  left: 50% !important;
  top: 6vh !important;
  right: auto !important;
  bottom: auto !important;
  transform: translateX(-50%) !important;
  width: min(430px, calc(100vw - 24px)) !important;
  max-width: min(430px, calc(100vw - 24px)) !important;
  min-width: 0 !important;
  max-height: 88vh !important;
  overflow: auto !important;
  z-index: 9999 !important;
  margin: 0 !important;
  background: #fff !important;
  border: 0 !important;
  border-radius: 14px !important;
  box-shadow: 0 24px 64px rgba(24, 18, 12, 0.35) !important;
}
body.ordering-process .user-action-login.popup-widget .popup-widget-inner {
  position: relative !important;
  padding: 22px 20px 0 !important;
  max-height: none !important;
}
body.ordering-process .user-action-login.popup-widget h2 {
  font-family: Ubuntu, Arial, sans-serif !important;
  font-size: 21px !important;
  font-weight: 700 !important;
  color: #241d14 !important;
  margin: 0 34px 16px 0 !important;
  text-align: left !important;
}
body.ordering-process .ne-login-close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 999px;
  background: #f4f1ee;
  color: #241d14;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 2;
}
body.ordering-process .ne-login-close:hover { background: #e9e4df; }
body.ordering-process .user-action-login .form-control {
  height: 46px !important;
  border: 1px solid #ddd6cf !important;
  border-radius: 10px !important;
  font-size: 14px !important;
}
html body.ordering-process .user-action-login .btn-login {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 48px !important;
  background: #81b90e !important;
  border-color: #81b90e !important;
  color: #fff !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  border-radius: 10px !important;
  box-shadow: none !important;
}
body.ordering-process .user-action-login .btn-login:hover {
  background: #469021 !important;
  border-color: #469021 !important;
}
body.ordering-process .user-action-login .login-wrapper {
  display: block !important;
}
html body.ordering-process .user-action-login .password-helper {
  display: flex !important;
  justify-content: space-between !important;
  gap: 14px !important;
  width: 100% !important;
  margin-top: 10px !important;
}
body.ordering-process .user-action-login .password-helper a {
  font-size: 13px !important;
  color: #7a736e !important;
  text-decoration: underline !important;
}
body.ordering-process .user-action-login .social-login-buttons-divider {
  text-align: center !important;
  color: #7a736e !important;
  font-size: 13px !important;
  margin: 14px 0 10px !important;
}
/* benefity registrace - tmava karta (BM vzor, nase barvy) */
body.ordering-process .ne-login-benefits {
  margin: 18px -20px 0;
  padding: 20px;
  background: #241d14;
  border-radius: 0 0 14px 14px;
}
body.ordering-process .ne-login-benefits__title {
  display: block;
  color: #fff;
  font-family: Ubuntu, Arial, sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.35;
  margin: 0 0 12px;
}
body.ordering-process .ne-login-benefits__list {
  list-style: none;
  margin: 0 0 16px;
  padding: 0;
}
body.ordering-process .ne-login-benefits__list li {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #e8e2da;
  font-size: 13.5px;
  line-height: 1.4;
  padding: 5px 0;
}
body.ordering-process .ne-lb-ico {
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 20px 20px;
}
body.ordering-process .ne-lb-ico--box { background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f2b705' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z'/%3E%3Cpath d='m3.3 7 8.7 5 8.7-5'/%3E%3Cpath d='M12 22V12'/%3E%3C/svg%3E"); }
body.ordering-process .ne-lb-ico--bolt { background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2381b90e' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2 3 14h9l-1 8 10-12h-9l1-8z'/%3E%3C/svg%3E"); }
body.ordering-process .ne-lb-ico--shield { background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d80a1b' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E"); }
body.ordering-process .ne-lb-ico--tag { background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f2b705' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z'/%3E%3Ccircle cx='7.5' cy='7.5' r='.5' fill='%23f2b705'/%3E%3C/svg%3E"); }
body.ordering-process .ne-login-benefits__btn {
  display: block;
  text-align: center;
  background: #fff;
  color: #241d14 !important;
  font-weight: 700;
  font-size: 14.5px;
  border-radius: 999px;
  padding: 12px 18px;
  text-decoration: none !important;
}
body.ordering-process .ne-login-benefits__btn:hover { background: #f2ede7; }
@media (max-width: 600px) {
  html body.ordering-process.ne-login-popup-open .user-action-login.popup-widget {
    top: 3vh !important;
    max-height: 92vh !important;
  }
}
/* === FIX END: NE-CHECKOUT-LOGIN-POPUP-20260708 === */


/* === FIX START: NE-CHECKOUT-LOGIN-POPUP-V2-20260708 ===
   1) sticky CTA lista (#ne-cart-sticky-cta, z-index 2147483000) prekryvala
      popup -> pri otevrenem popupu se skryva + popup/backdrop nad ni
   2) mobil: popup vyssi (96vh), vnitrni scroll, scroll-lock body */
body.ordering-process.ne-login-popup-open #ne-cart-sticky-cta {
  display: none !important;
}
html body.ordering-process.ne-login-popup-open::before {
  z-index: 2147483050 !important;
}
html body.ordering-process.ne-login-popup-open .user-action-login.popup-widget {
  z-index: 2147483100 !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}
body.ordering-process.ne-login-popup-open {
  overflow: hidden !important;
}
@media (max-width: 600px) {
  html body.ordering-process.ne-login-popup-open .user-action-login.popup-widget {
    top: 2vh !important;
    max-height: 96vh !important;
  }
}
/* === FIX END: NE-CHECKOUT-LOGIN-POPUP-V2-20260708 === */

/* === FIX START: NE-CHECKOUT-LOGIN-POPUP-V3-20260708 ===
   1) FB/Seznam ikony: theme je pozicuje ABSOLUTNE do leveho rohu pilulky
      (Google je inline) -> position:static, jednotna velikost 20px, v toku
   2) iOS: vh nepocita s chrome Safari -> dvh + safe-area, tlacitko
      Zaregistrovat se uz neni oriznute */
html body.ordering-process .user-action-login .login-btn span[class*="login-"],
html body.ordering-process .user-action-login .login-btn .login-facebook-icon,
html body.ordering-process .user-action-login .login-btn .login-google-icon,
@supports (height: 100dvh) {
  html body.ordering-process.ne-login-popup-open .user-action-login.popup-widget {
    top: 1dvh !important;
    max-height: 98dvh !important;
  }
}
html body.ordering-process .ne-login-benefits {
  padding-bottom: calc(22px + env(safe-area-inset-bottom, 0px)) !important;
}
/* === FIX END: NE-CHECKOUT-LOGIN-POPUP-V3-20260708 === */

/* === FIX START: NE-LOGIN-CALLOUT-20260708 ===
   Krok 2: blok "Zakaznicky ucet / Prihlasit se" -> jemna karta dle BM vzoru
   v nasich barvach; odkaz otevira login popup (hook v ne-route-cart.js). */
body.ordering-process .ne-login-callout {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: #f7f4ef;
  border-radius: 12px;
  padding: 14px 16px;
  margin: 2px 0 6px;
}
body.ordering-process .ne-login-callout__ico {
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  margin-top: 1px;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23241d14' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='5'/%3E%3Cpath d='M20 21a8 8 0 0 0-16 0'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 22px 22px;
}
body.ordering-process .ne-login-callout__txt {
  margin: 0 !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
  color: #241d14 !important;
  font-weight: 500;
}
html body.ordering-process #content .ne-login-callout__link,
html body.ordering-process .ne-login-callout__link {
  color: #469021 !important;
  font-weight: 700 !important;
  text-decoration: underline !important;
}
html body.ordering-process #content .ne-login-callout__link:hover,
html body.ordering-process .ne-login-callout__link:hover {
  color: #35701a !important;
}
/* === FIX END: NE-LOGIN-CALLOUT-20260708 === */

/* === FIX START: NE-LOGIN-CALLOUT-NONBLOCKING-20260815 ===
   Skeleton po dobu 5 s blokoval prihlaseni a pri zmene Shoptet login markup
   odkryl az puvodni odkaz. Obsah zustava vzdy dostupny; rychly checkout JS
   ho bez cekani nahradi kartou. */
html body.ordering-process.in-krok-2 #checkoutContent .cart-content .form-group:has(a.btn-secondary[href^="/login/"]):not(.ne-callout-done) {
  position: relative;
  min-height: 0;
  border-radius: 12px;
}
html body.ordering-process.in-krok-2 #checkoutContent .cart-content .form-group:has(a.btn-secondary[href^="/login/"]):not(.ne-callout-done) > * {
  visibility: visible;
  animation: none;
}
html body.ordering-process.in-krok-2 #checkoutContent .cart-content .form-group:has(a.btn-secondary[href^="/login/"]):not(.ne-callout-done)::before {
  content: none;
  display: none;
  animation: none;
}
/* === FIX END: NE-LOGIN-CALLOUT-NONBLOCKING-20260815 === */

/* === FIX START: NE-CTA-UNIFY-20260708 ===
   Jednotny styl zelenych CTA na celem eshopu (pozadavek 2026-07-08):
   #81b90e / hover #469021 / radius 10 / weight 700 / bez stinu.
   Pokryva: Pokracovat do kosiku (popup+sidebar), Pridat do kosiku (PDP),
   kroky kosiku, sticky listy (PDP i checkout), masterpack Pridat, karty. */
html a.btn-conversion, html button.btn-conversion, html .btn.btn-conversion,
html .btn-cart, html .add-to-cart-button, html button.add-to-cart-button,
html #ratingWrapper .btn-primary, html .add-comment .btn-primary,
html .ne-cart-sticky-cta__button,
html .ne-sticky-buybar__btn,
html .cart-widget-button .btn,
html .up-product-add-to-cart a {
  background: #81b90e !important;
  background-image: none !important;
  border-color: #81b90e !important;
  color: #fff !important;
  font-weight: 700 !important;
  border-radius: 16px !important;
  box-shadow: none !important;
  text-transform: none !important;
  transition: background-color .15s ease !important;
}
html a.btn-conversion:hover, html button.btn-conversion:hover, html .btn.btn-conversion:hover,
html .btn-cart:hover, html .add-to-cart-button:hover, html button.add-to-cart-button:hover,
html .ne-cart-sticky-cta__button:hover,
html .ne-sticky-buybar__btn:hover,
html .cart-widget-button .btn:hover,
html .up-product-add-to-cart a:hover {
  background: #469021 !important;
  border-color: #469021 !important;
  color: #fff !important;
}
/* === FIX END: NE-CTA-UNIFY-20260708 === */

/* === FIX START: NE-CART-CARD-2026-20260708 ===
   v2: kompaktni layout - nazev pres celou sirku (cena v radku se stepperem,
   kos absolutne v rohu), karta ~150px. Rychle klikani +/- = JS debounce
   v ne-route-cart.js (NE-CART-QTY-DEBOUNCE). */
@media only screen and (max-width: 767px) {
  body.in-kosik .cart-table tr[data-micro="cartItem"] {
    position: relative !important;
    border: 1px solid #ece7e0 !important;
    border-radius: 12px !important;
    background: #fff !important;
    padding: 10px 12px 10px !important;
    margin: 0 0 10px !important;
    row-gap: 10px;
    min-height: 0 !important;
  }
  body.in-kosik .cart-table tr[data-micro="cartItem"] .cart-p-image {
    width: 64px !important;
    min-width: 64px !important;
    min-height: 64px !important;
    height: 64px !important;
    background: #f7f7f7 !important;
    border-radius: 10px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 6px !important;
    box-sizing: border-box !important;
  }
  body.in-kosik .cart-table tr[data-micro="cartItem"] .cart-p-image a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  body.in-kosik .cart-table tr[data-micro="cartItem"] .cart-p-image img {
    max-width: 52px !important;
    max-height: 52px !important;
    mix-blend-mode: darken;
    border-radius: 0 !important;
  }
  body.in-kosik .cart-table tr[data-micro="cartItem"] .p-name {
    flex: 1 1 calc(100% - 74px) !important;
    width: calc(100% - 74px) !important;
    max-width: none !important;
    padding: 0 34px 0 10px !important;
    margin: 0 !important;
    text-align: left !important;
    align-self: center !important;
  }
  body.in-kosik .cart-table tr[data-micro="cartItem"] .p-name a {
    font-size: 13.5px !important;
    line-height: 1.35 !important;
    font-weight: 600 !important;
    color: #241d14 !important;
  }
  body.in-kosik .cart-table tr[data-micro="cartItem"] .inline,
  body.in-kosik .cart-table tr[data-micro="cartItem"] form[action*="deleteCartItem"] {
    position: absolute !important;
    top: 8px !important;
    right: 8px !important;
    margin: 0 !important;
    z-index: 3;
  }
  body.in-kosik .cart-table tr[data-micro="cartItem"] .remove-item {
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    min-height: 36px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    background-color: transparent !important;
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c80018' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 11v6'/%3E%3Cpath d='M14 11v6'/%3E%3Cpath d='M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6'/%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: 18px 18px !important;
  }
  body.in-kosik .cart-table tr[data-micro="cartItem"] .remove-item:hover { background-color: #faf3f3 !important; }
  body.in-kosik .cart-table tr[data-micro="cartItem"] .remove-item::before,
  body.in-kosik .cart-table tr[data-micro="cartItem"] .remove-item::after { display: none !important; content: none !important; }
  body.in-kosik .cart-table tr[data-micro="cartItem"] .p-quantity {
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    flex: 0 0 auto !important;
  }
  body.in-kosik .cart-table tr[data-micro="cartItem"] .p-total {
    order: 10 !important;
    margin-left: auto !important;
    min-width: 0 !important;
    align-self: center !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    color: #241d14 !important;
  }
  body.in-kosik .cart-table tr[data-micro="cartItem"] .p-total .price-final {
    font-size: 15px !important;
    font-weight: 800 !important;
    color: #241d14 !important;
  }
  body.in-kosik .cart-table tr[data-micro="cartItem"] .p-quantity .quantity {
    display: flex !important;
    align-items: center !important;
    gap: 0 !important;
    width: 128px !important;
    min-height: 44px !important;
    padding: 0 4px !important;
    background: #fff !important;
    border: 1px solid #e7e2da !important;
    border-radius: 16px !important;
    box-sizing: border-box !important;
    margin: 0 !important;
  }
  body.in-kosik .cart-table tr[data-micro="cartItem"] .p-quantity .quantity button.decrease { order: 1 !important; }
  body.in-kosik .cart-table tr[data-micro="cartItem"] .p-quantity .quantity label {
    order: 2 !important;
    flex: 1 1 32px !important;
    min-width: 20px !important;
    margin: 0 !important;
    display: flex !important;
  }
  body.in-kosik .cart-table tr[data-micro="cartItem"] .p-quantity .quantity button.increase { order: 3 !important; }
  body.in-kosik .cart-table tr[data-micro="cartItem"] .p-quantity .quantity input {
    flex: 1 1 auto !important;
    width: 100% !important;
    min-width: 20px !important;
    height: 40px !important;
    border: 0 !important;
    background: transparent !important;
    text-align: center !important;
    font-size: 16px !important; /* <16 spousti iOS zoom pri fokusu */
    font-weight: 700 !important;
    color: #2d241b !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  body.in-kosik .cart-table tr[data-micro="cartItem"] .p-quantity .quantity button.increase,
  body.in-kosik .cart-table tr[data-micro="cartItem"] .p-quantity .quantity button.decrease {
    position: static !important;
    transform: none !important;
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    min-height: 36px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: #f7f4ef !important;
    color: #3b3636 !important;
    font-size: 17px !important;
    line-height: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
  }
  body.in-kosik .cart-table tr[data-micro="cartItem"] .p-quantity .quantity button.increase:hover,
  body.in-kosik .cart-table tr[data-micro="cartItem"] .p-quantity .quantity button.decrease:hover { background: #ece8e2 !important; }
  body.in-kosik .cart-table tr[data-micro="cartItem"] .p-quantity .quantity button .increase__sign,
  body.in-kosik .cart-table tr[data-micro="cartItem"] .p-quantity .quantity button .decrease__sign {
    display: block !important;
    position: static !important;
    transform: none !important;
    margin: 0 !important;
    font-size: 17px !important;
    line-height: 1 !important;
    color: #3b3636 !important;
  }
  body.in-kosik .cart-table tr[data-micro="cartItem"] .p-quantity .quantity button.increase::before,
  body.in-kosik .cart-table tr[data-micro="cartItem"] .p-quantity .quantity button.increase::after,
  body.in-kosik .cart-table tr[data-micro="cartItem"] .p-quantity .quantity button.decrease::before,
  body.in-kosik .cart-table tr[data-micro="cartItem"] .p-quantity .quantity button.decrease::after { display: none !important; content: none !important; }
  body.in-kosik .cart-table tr[data-micro="cartItem"] .ne-cart-mobile-availability {
    font-size: 12px !important;
    font-weight: 600 !important;
  }
  /* rychle tukani: zadny double-tap zoom, zadny highlight/selekce */
  body.in-kosik .cart-table .quantity,
  body.in-kosik .cart-table .quantity button,
  body.in-kosik .cart-table .quantity input,
  body.in-kosik .cart-table .quantity button span {
    touch-action: manipulation !important;
    -webkit-tap-highlight-color: transparent !important;
    -webkit-user-select: none !important;
    user-select: none !important;
  }
  body.in-kosik .cart-table .quantity input {
    -webkit-user-select: text !important;
    user-select: text !important;
  }
}
/* === FIX END: NE-CART-CARD-2026-20260708 === */

/* === FIX START: NE-FOUC-SHIMMER-GLOBAL-20260708 ===
   Anti-FOUC sweep: prvky stavene JS az po paintu dostavaji rezervaci mista
   + shimmer (BM vzor). Vsechny jsou self-revealing pres :has (jakmile JS
   prvek vlozi, pseudo zmizi) + fade pojistka, kdyby JS nedobehl. */
@keyframes ne-skel-sh { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }
@keyframes ne-skel-hide { to { opacity: 0; visibility: hidden; height: 0; margin: 0; } }
/* 1) Homepage trust banner (stavi ne-home-banner-webp-head JS mezi hero
      bannery) - rezervace vysky, zadny skok obsahu */
body.type-index .main-banners:not(:has(.ne-scale-trust)) .main-banners__top::after {
  content: "";
  display: block;
  height: 106px;
  margin: 12px 0 0;
  border-radius: 10px;
  background: linear-gradient(90deg, #f2efe9 25%, #e7e2da 37%, #f2efe9 63%);
  background-size: 400% 100%;
  animation: ne-skel-sh 1.4s ease infinite, ne-skel-hide 0s 6s forwards;
}
@media (max-width: 767px) {
  body.type-index .main-banners:not(:has(.ne-scale-trust)) .main-banners__top::after {
    height: 163px;
  }
}
/* === FIX START: NE-CART-CLS-20261022 ===
   Body 2) a 3) (freeship placeholder nad hlavickou, 210px shimmer karuselu) presunuty
   do ne-route-cart.css (render-blocking na /kosik/) se spravnou pozici a vyskou. Rollback = vratit zalohu. */
/* === FIX END: NE-CART-CLS-20261022 === */
/* === FIX END: NE-FOUC-SHIMMER-GLOBAL-20260708 === */

/* === FIX START: NE-A11Y-2026-20260708 ===
   Design audit fixy: viditelny focus (WCAG 2.4.7), reduced-motion (2.3.3),
   header touch targety 44px, color-scheme. */
html body a:focus-visible, html body button:focus-visible, html body input:focus-visible,
html body select:focus-visible, html body textarea:focus-visible,
html body [tabindex]:focus-visible, html body [role="button"]:focus-visible {
  outline: 3px solid #241d14 !important;
  outline-offset: 2px !important;
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
:root { color-scheme: light; }
/* header 44px targety ODSTRANENY 2026-07-08 - rozbijely centrovani listy */
/* PDP dostupnost: zeleny text 4,5:1+ (drive #81b90e = 2,37) */
body.type-product #content .ne-avail-ok .availability-label,
body.type-detail #content .ne-avail-ok .availability-label {
  color: #3f7d0e !important;
}
/* === FIX END: NE-A11Y-2026-20260708 === */

/* === FIX START: NE-STICKY-SINGLE-BAR-20260708 ===
   PDP melo DVE spodni fixed listy (#ne-satc z ne-ux-fixes ery + nova
   .ne-sticky-buybar). Na mobilu <=767 zustava jen nova; #ne-satc dal slouzi
   tabletum 768-991. Mimo jine odstranuje interference pri iOS scroll. */
@media (max-width: 767px) {
  body.type-product #ne-satc,
  body.type-detail #ne-satc {
    display: none !important;
  }
}
/* === FIX END: NE-STICKY-SINGLE-BAR-20260708 === */

/* === FIX START: NE-STICKY-APRON-20260708 ===
   iOS: pri kolapsu Safari listy muze pod fixed bottom listou zustat pruh.
   Zastera prodlouzi bilou plochu listy 80px POD ni (mimo viewport pri
   spravnem chovani, prekryje mezeru pri chybnem). */
.ne-sticky-buybar::after,
#ne-satc::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  height: 80px;
  background: #ffffff;
}
/* === FIX END: NE-STICKY-APRON-20260708 === */

/* === FIX START: NE-CART-CTA-SATC-20260708 ===
   Checkout sticky lista (vsechny 3 kroky): satc display-toggle mechanika
   (viz PDP lista). Zde v GLOBALNIM souboru, aby prebila i nacachovane
   stare checkout css s opacity/transform togglem. */
html body.ordering-process #ne-cart-sticky-cta {
  opacity: 1 !important;
  pointer-events: auto !important;
  transform: none !important;
  transition: none !important;
  padding: 8px 12px !important;
  display: none;
}
html body.ordering-process.ne-cart-sticky-cta-visible #ne-cart-sticky-cta {
  display: block;
}
/* === FIX END: NE-CART-CTA-SATC-20260708 === */

/* === FIX START: NE-CART-SLIDER-GAP-20260709 === */
/* Kosik krok 1 (desktop): mezi karouselem "Nezapomneli jste na neco?"
   (dmartini #cart-slider) a sedou kartou kosiku byla ~60px mezera =
   padding-top OBOU sloupcu .cart-row (col-md-8 z cizi/CDN vrstvy,
   col-md-4 v base css s !important; base ted nejde cache-bustnout,
   admin session vyprsela -> override tady; pri pristi editaci base
   pravidel presunout tam). Sticky sidebar mel top:0 + pt:60 ->
   ekvivalent top:50 + pt:10 = stejny odstup po scrollnuti, ale
   zakaznik hned vidi kartu se svym zbozim. Mobil (<992) ma vlastni
   pt:20 v theme - nedotceno. */
@media (min-width: 992px) {
  html body.id--9 #cart-wrapper .cart-row .col-md-8 {
    padding-top: 10px !important;
  }
  html body.id--9 #cart-wrapper .cart-row .col-md-4 {
    padding-top: 10px !important;
    top: 50px !important;
  }
}
/* === FIX END: NE-CART-SLIDER-GAP-20260709 === */

/* === FIX START: NE-SHOP-RATING-HISTOGRAM-COUNTS-20260727 === */
/* /hodnoceni-obchodu/ - zluty souhrnny box, histogram 1-5 hvezdicek.
   PROBLEM: na DESKTOPU se pocet hodnoceni (22726x, 263x, ...) vykresloval
   UVNITR grafu - na konci oranzove vyplne, tedy pres pruh a necitelne.
   PRICINA: theme pravidlo .rate-wrapper.unveil-wrapper .rate-bar{position:
   relative} ma stejnou specificitu (0,3,0) jako nase .in-hodnoceni-obchodu
   .votes .rate-bar{position:static} v ne-route-shop-rating.css, ale
   ne-adamin-derived.css se v poradi stylesheetu nacita AZ ZA route chunkem
   -> theme vyhrava remizu a .rate-count se absolutne pozicuje vuci VYPLNI
   misto vuci cele draze. Navic .rate-wrapper.unveil-wrapper .rate-count
   .active{right:-40px} (0,4,0) prebijelo nase 'left', takze popisek mel
   vypocitanou sirku 30px a text pretekal.
   RESENI: stejny pattern, ktery uz je zivy na mobilu (blok NE-SHOP-RATING-
   MOBILE-HISTOGRAM-COUNTS-20260627 v ne-route-shop-rating.css), jen platny
   na vsech sirkach - kotva = .rate-block (cela draha), reset 'right',
   rezerva mista pres margin-right. Sirka oranzove vyplne zustava beze zmeny.
   UMISTENI: nasazeno tady, protoze ne-route-shop-rating.css jde cache-
   bustnout jen bumpem ne-route-loader.js v admin Zapati (admin session
   neni k dispozici), kdezto tento soubor se bustuje pres template-include
   API POST. Pri pristi editaci route chunku presunout tam a tenhle blok
   smazat. */
html body.id--51.in-hodnoceni-obchodu #ratingWrapper .votes .rate-block {
  position: relative !important;
  margin-right: 62px !important;
  overflow: visible !important;
}
/* v2 (0805): oranzova vypln byla o 4 px nizsi nez svetla draha a lepila se
   k jejimu hornimu okraji. Stejna pricina jako vyse - theme
   .rate-wrapper.unveil-wrapper .rate-bar{height:5px} (0,3,0) prebijelo nase
   .in-hodnoceni-obchodu .votes .rate-bar{height:100%} a protoze ma vypln
   explicitni vysku, flexovy stretch v .rate-block ji nedorovnal.
   min-inline-size = vyska drahy, aby nulove/male hodnoty byly cista kolecka
   a ne uzke svisle prouzky. */
html body.id--51.in-hodnoceni-obchodu #ratingWrapper .votes .rate-bar {
  position: static !important;
  block-size: 100% !important;
  align-self: stretch !important;
  min-inline-size: 9px !important;
}
html body.id--51.in-hodnoceni-obchodu #ratingWrapper .votes .rate-count,
html body.id--51.in-hodnoceni-obchodu #ratingWrapper .votes .rate-count.active {
  position: absolute !important;
  top: 50% !important;
  left: calc(100% + 10px) !important;
  right: auto !important;
  inline-size: max-content !important;
  transform: translateY(-50%) !important;
  white-space: nowrap !important;
  text-align: left !important;
  z-index: 2 !important;
  pointer-events: none !important;
}
@media (max-width: 767px) {
  html body.id--51.in-hodnoceni-obchodu #ratingWrapper .votes .rate-block {
    margin-right: 48px !important;
  }
  html body.id--51.in-hodnoceni-obchodu #ratingWrapper .votes .rate-bar {
    min-inline-size: 7px !important;
  }
  html body.id--51.in-hodnoceni-obchodu #ratingWrapper .votes .rate-count,
  html body.id--51.in-hodnoceni-obchodu #ratingWrapper .votes .rate-count.active {
    left: calc(100% + 8px) !important;
  }
}
/* === FIX END: NE-SHOP-RATING-HISTOGRAM-COUNTS-20260727 === */

/* === FIX START: NE-CARD-UNIT-PRICE-20260727 === */
/* Shoptet zacal 2026-07 povinne vypisovat merne ceny (`.price-measure`)
   i v produktovych KARTACH (kategorie, homepage carousely, souvisejici na
   detailu, kosikovy carousel). Merna cena se vykreslovala PRES nazev
   produktu.

   PRICINA: theme dava `.prices` v kartach `flex: 1 0 0` a `.p-bottom > div`
   je column flex - flex-basis 0 znamena, ze vyska `.prices` NEVYCHAZI
   z obsahu, jen z `min-height: 32px` (nase NE-BM-CARD). Dokud byla v
   `.prices` jen cena, nikdo si toho nevsiml; nova `.price-measure` uz se
   nevesla a pretekla ven na `.p-in-in` (nazev). Overeno v prohlizeci:
   `.prices` used height 32 px vs obsah 53,7 px.

   RESENI (UX): merna cena je vlastni radek TESNE POD cenou, vlevo,
   tlumene 12px/#6f6862 (kontrast 5,4:1 = WCAG AA), `fit-content` sirka,
   takze nikdy nezasahne do sloupce s hvezdickami a dostupnosti vpravo.
   `min-height: 49px` na `.prices` misto 32 px rezervuje radek i u produktu
   BEZ merne ceny -> vsechny nazvy v mrizce zustavaji zarovnane a karta ma
   vsude stejnou vysku (+15 px). Odstup 6 px nad mernou cenou je zmereny:
   na nejuzsich kartach (souvisejici na detailu, 142 px) sahá dvouradkovy
   sloupec hvezdicky+dostupnost az 240 px od horni hrany karty a pri 4 px
   se boxy dotykaly.

   Proc NE inline vpravo vedle ceny (puvodni napad): zmereno na zivych
   datech - volne misto pred sloupcem hodnoceni je 189 px (kategorie 1440),
   nejdelsi merna cena ~99 px, ale sirka ceny kolisa (69 px "44,90 Kč" az
   ~100 px "1 249,90 Kč"). Cast karet by se tedy vesla a cast ne -> merna
   cena by v jedne rade skakala mezi radky a rozhodila zarovnani nazvu.
   Pod 1280 px se inline nevejde vubec (1024: 76 px volneho mista,
   mobil 2 sloupce: 47 px, homepage carousel: mene).

   `.sr-only` popisek "Merna cena:" je globalne `display:none`, takze
   ctecky obrazovky cetly holé cislo bez kontextu - tady je vracen jako
   standardni visually-hidden.

   Detail produktu (`.p-final-price-wrapper`) uz merna cena stylovana ma
   a nekolidovala - needitujeme ji.

   UMISTENI: patri do NE-BM-CARD v `ne-adamin-derived.css`, ale ten jde
   cache-bustnout jen z admin Zahlavi (session neni k dispozici) -> zije
   tady (template-include POST). Pri pristi editaci NE-BM-CARD presunout. */
html body #products.products-block .product .p .p-bottom .prices,
html body .products-block.products .product .p .p-bottom .prices {
  flex: 0 0 auto !important;
  display: block !important;
  min-height: 49px !important;
  margin: 0 0 4px !important;
}
html body #products.products-block .product .p .p-bottom .prices .price-final,
html body .products-block.products .product .p .p-bottom .prices .price-final {
  margin-bottom: 0 !important;
}
html body #products.products-block .product .p .p-bottom .prices .price-measure,
html body .products-block.products .product .p .p-bottom .prices .price-measure {
  display: block !important;
  inline-size: fit-content !important;
  max-inline-size: 100% !important;
  margin: 6px 0 0 !important;
  padding: 0 !important;
  font-size: 12px !important;
  line-height: 15px !important;
  font-weight: 400 !important;
  color: #6f6862 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
html body #products.products-block .product .p .p-bottom .prices .price-measure .sr-only,
html body .products-block.products .product .p .p-bottom .prices .price-measure .sr-only {
  display: inline !important;
  position: absolute !important;
  inline-size: 1px !important;
  block-size: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
/* Ultra-uzke karty (souvisejici/alternativni carousel na detailu ma pri
   768-1280 px sirku karty jen 102-116 px): merna cena se pri 12 px uz
   nevesla (zmereno: "14,81 Kc / 100 ml" potrebuje 93 px, k dispozici 86 px)
   a ellipsis by orizl legalne povinny udaj. Container query (karty
   v karouselech uz jsou `container-type: inline-size` z bloku
   NE-CAROUSEL-FLAGS-COMPACT) sesadi pismo tak, aby se veslo cele -
   zmerena rezerva stoupne z 5 px na 14-19 px. Mrizkove karty (kategorie
   181 px, homepage carousel 132 px) kontejnery NEJSOU a zustavaji na 12 px. */
@container (max-width: 120px) {
  html body .products-block.products .product .p .p-bottom .prices .price-measure {
    font-size: 10.5px !important;
    letter-spacing: -.2px !important;
  }
}
/* === FIX END: NE-CARD-UNIT-PRICE-20260727 === */

/* === FIX START: NE-DOSE-PRICE-STYLE-20260728 === */
/* Cena za davku (dopocitava JS blok NE-CARD-DOSE-PRICE-20260728) je odvozeny
   udaj, ne zakonna merna cena - drzime ji o odstin svetlejsi, aby bylo poznat,
   co je co. Radek zustava jeden, takze se nemeni vyska karty. */
html body .price-measure .ne-dose-price {
  color: #8a837d;
}
/* === FIX END: NE-DOSE-PRICE-STYLE-20260728 === */

/* === FIX START: NE-HOME-BLOG-HEADING-LINK-20260729 === */
/* Nadpis blogove sekce na homepage je od 2026-07-29 odkaz na /blog-a-recepty/
   (JS blok NE-HOME-BLOG-H2-20260706 v ne-home-banner-webp-head). Odkaz jen
   dedi vzhled nadpisu; podtrzeni az na hover/focus, ::after cara nadpisu
   zustava na h2, takze se nic neposouva.
   POZN.: patri k NE-HOME-BLOG-H2 v ne-adamin-derived.css - presunout tam,
   az pujde bumpnout base CSS v admin Zahlavi. */
html body.in-index .recipes-section h2.ne-blog-h2 > a {
  color: inherit !important;
  text-decoration: none !important;
}

html body.in-index .recipes-section h2.ne-blog-h2 > a:hover,
html body.in-index .recipes-section h2.ne-blog-h2 > a:focus-visible {
  text-decoration: underline !important;
  text-underline-offset: 6px;
}
/* === FIX END: NE-HOME-BLOG-HEADING-LINK-20260729 === */
/* === FIX START: NE-CHECKOUT-COMPACT-PHONE-20260815 ===
   Krok Informace o vas: nativni Shoptet vyber statu zustava funkcni,
   ale zavreny stav ukazuje jen vlajku, kod a sipku vedle telefonniho pole. */
html body.ordering-process.in-krok-2 #checkoutContent .cart-content .form-control-wrapper > .phone-combined-input {
  display: grid !important;
  grid-template-columns: minmax(126px, 136px) minmax(0, 1fr) !important;
  gap: 8px !important;
  align-items: stretch !important;
  width: 100% !important;
}
html body.ordering-process.in-krok-2 #checkoutContent .cart-content .form-control-wrapper > .phone-combined-input > .country-flags {
  display: flex !important;
  position: relative !important;
  grid-column: 1 !important;
  grid-row: 1 !important;
  width: 100% !important;
  min-width: 0 !important;
  height: 50px !important;
  padding: 0 14px !important;
  align-items: center !important;
  border: 1px solid #c7c7c7 !important;
  border-radius: 8px !important;
  background: #fff !important;
  box-sizing: border-box !important;
  cursor: pointer !important;
  overflow: visible !important;
}
html body.ordering-process.in-krok-2 #checkoutContent .cart-content .form-control-wrapper > .phone-combined-input > select.js-phone-code {
  display: none !important;
}
html body.ordering-process.in-krok-2 #checkoutContent .cart-content .form-control-wrapper > .phone-combined-input > #phone {
  grid-column: 2 !important;
  grid-row: 1 !important;
  width: 100% !important;
  min-width: 0 !important;
  height: 50px !important;
  box-sizing: border-box !important;
}
html body.ordering-process.in-krok-2 #checkoutContent .cart-content .phone-combined-input > .country-flags:not(.active) .country-flags-inner {
  position: static !important;
  width: 100% !important;
  height: auto !important;
  overflow: visible !important;
}
html body.ordering-process.in-krok-2 #checkoutContent .cart-content .phone-combined-input > .country-flags:not(.active) .country-flag {
  display: none !important;
}
html body.ordering-process.in-krok-2 #checkoutContent .cart-content .phone-combined-input > .country-flags:not(.active) .country-flag.selected {
  display: flex !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  gap: 8px !important;
  width: 100% !important;
  min-width: 0 !important;
  height: 48px !important;
  padding: 0 !important;
  margin: 0 !important;
  position: relative !important;
}
html body.ordering-process.in-krok-2 #checkoutContent .cart-content .phone-combined-input > .country-flags:not(.active) .country-flag.selected::after {
  content: none !important;
}
html body.ordering-process.in-krok-2 #checkoutContent .cart-content .phone-combined-input > .country-flags:not(.active) .country-flag.selected .shp-flag {
  display: block !important;
  width: 24px !important;
  height: 24px !important;
  flex: 0 0 24px !important;
}
html body.ordering-process.in-krok-2 #checkoutContent .cart-content .phone-combined-input > .country-flags:not(.active) .country-flag.selected .shp-flag-label {
  width: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  flex: 0 0 auto !important;
  font-size: 16px !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}
/* Adamin adds its own select-arrow image to this label. The compact trigger
   already has one chevron on the right, so suppress only the duplicate icon
   in the closed state; the native Shoptet country picker remains untouched. */
html body.ordering-process.in-krok-2 #checkoutContent .cart-content .phone-combined-input > .country-flags:not(.active) .country-flag.selected .shp-flag-label::before {
  content: none !important;
  display: none !important;
  background-image: none !important;
}
html body.ordering-process.in-krok-2 #checkoutContent .cart-content .phone-combined-input > .country-flags:not(.active) .country-flag.selected .shp-flag-name {
  display: none !important;
}
html body.ordering-process.in-krok-2 #checkoutContent .cart-content .form-control-wrapper > .phone-combined-input > .country-flags:not(.active)::after {
  content: "";
  position: absolute;
  right: 14px;
  top: 50%;
  z-index: 1;
  width: 9px;
  height: 9px;
  border-right: 2px solid #6b6b6b;
  border-bottom: 2px solid #6b6b6b;
  transform: translateY(-70%) rotate(45deg);
  pointer-events: none;
}
/* Open picker: Shoptet reserves 36px for a search input that is not rendered.
   Remove that empty band and keep every option in one aligned, touch-friendly
   row. Flags stay in the compact closed trigger; the list uses name + code. */
html body.ordering-process.in-krok-2 #checkoutContent .cart-content .phone-combined-input > .country-flags.active .country-flags-inner {
  padding: 5px !important;
}
html body.ordering-process.in-krok-2 #checkoutContent .cart-content .phone-combined-input > .country-flags.active .country-flag {
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
  min-height: 44px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 8px 10px !important;
  border: 0 !important;
  box-sizing: border-box !important;
}
html body.ordering-process.in-krok-2 #checkoutContent .cart-content .phone-combined-input > .country-flags.active .country-flag .shp-flag {
  display: none !important;
}
html body.ordering-process.in-krok-2 #checkoutContent .cart-content .phone-combined-input > .country-flags.active .country-flag .shp-flag-label {
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
  min-width: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  font-size: 14px !important;
  line-height: 1.25 !important;
}
html body.ordering-process.in-krok-2 #checkoutContent .cart-content .phone-combined-input > .country-flags.active .country-flag .shp-flag-name {
  display: block !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
  padding: 0 12px 0 0 !important;
  white-space: normal !important;
}
html body.ordering-process.in-krok-2 #checkoutContent .cart-content .phone-combined-input > .country-flags.active .country-flag.selected {
  background: #f3f5f3 !important;
  font-weight: 700 !important;
}
html body.ordering-process.in-krok-2 #checkoutContent .cart-content .form-control-wrapper > .phone-combined-input > .country-flags:focus-visible {
  outline: 2px solid #469021 !important;
  outline-offset: 2px !important;
}
/* === FIX END: NE-CHECKOUT-COMPACT-PHONE-20260815 === */


/* === FIX START: NE-MENU-HELPER-RIGHT-ALIGN-20260828 (cache-bust bridge) ===
   Stejna zmena jako v ne-adamin-derived.css, tady jen kvuli cache-bustu:
   base CSS ma ?v= v admin poli "Zahlavi" (bez admin session nejde bumpnout) a
   servituje se s max-age=31536000, takze vracejici se navstevnici by fix jinak
   nedostali. custom-combined-1.css se busti pres template-include API POST.
   Nacita se ale PRED base CSS, proto o jednu uroven vyssi specificita (body ...).
   Az nekdo pri pristi admin session bumpne ?v u ne-adamin-derived.css, muze
   tenhle blok zmizet - v base uz je. Vysvetleni breakpointu je tam. */
@media (min-width: 801px) {
  body #header .menu-helper {
    right: 20px;
  }
}

@media (min-width: 993px) {
  body #header .menu-helper {
    right: 40px;
  }
}

@media (min-width: 1751px) {
  body #header .menu-helper {
    right: 0;
  }
}
/* === FIX END: NE-MENU-HELPER-RIGHT-ALIGN-20260828 === */
