/* Boxxi PDP related products — narrow offline candidate.
 * Match the ID specificity inherited by :is(#products,.products-block).
 * Native active/inactive state and next/previous controls remain the owner.
 */
@media (min-width:801px) {
 html[lang|="cs"][data-boxxi-native="1"][data-bxcf-commerce="1"] body.template-11.type-product:not(.ordering-process) #content .p-detail > :is(#products,.products-block).products-related.p-switchable {
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:23px;
 }
}
/* The native "show all" control adds this class. Existing global !important
 * inactive/small-screen hides must not override that explicit native state.
 * Explicit hidden/js-hidden products remain excluded.
 */
html[lang|="cs"][data-boxxi-native="1"][data-bxcf-commerce="1"] body.template-11.type-product:not(.ordering-process) #content .p-detail > :is(#products,.products-block).products-related.p-switchable.show-all-related > .product:not([hidden]):not(.js-hidden) {
 display:flex!important;
}

/* WEB-027: tablet account forms have no spare gutter for the 36px fixed tab.
 * Mobile <=767px already has the same exact-widget exclusion in native CSS.
 * Keep reviews reachable through the existing first-party footer link. Fail open
 * if that link is absent; do not remove the widget, ratings, data, or SDK.
 */
@media (min-width:767px) and (max-width:1024px) {
 html[lang|="cs"][data-boxxi-native="1"] body.template-11:is(.in-login,.in-registrace,.customer-page):not(.ordering-process):has(#footer .footer-bottom > a.bxn-verified-reviews[href="https://obchody.heureka.cz/boxxi-cz/recenze/"]:not([hidden]):not([aria-hidden="true"])) #hw-87kwowifjjowiklsadh666left {
  display:none!important;
 }
}

/* WEB032: readable type in the native product-detail purchase form only.
   Preserve native form behavior, variants, availability colors, prices,
   quantity controls, product cards, gallery, and lower content. */
html[lang|="cs"][data-boxxi-native="1"][data-bxcf-commerce="1"]
body.template-11.type-product:not(.ordering-process)
#content .p-detail[data-bxpf-active="1"] #product-detail-form
.p-info-wrapper > .p-short-description {
  font-size: 16px;
  line-height: 1.65;
}

html[lang|="cs"][data-boxxi-native="1"][data-bxcf-commerce="1"]
body.template-11.type-product:not(.ordering-process)
#content .p-detail[data-bxpf-active="1"] #product-detail-form
.p-info-wrapper > .availability-value,
html[lang|="cs"][data-boxxi-native="1"][data-bxcf-commerce="1"]
body.template-11.type-product:not(.ordering-process)
#content .p-detail[data-bxpf-active="1"] #product-detail-form
.p-info-wrapper > .availability-value .availability-label {
  font-size: 15px;
  line-height: 1.5;
}

html[lang|="cs"][data-boxxi-native="1"][data-bxcf-commerce="1"]
body.template-11.type-product:not(.ordering-process)
#content .p-detail[data-bxpf-active="1"] #product-detail-form
.p-info-wrapper > .add-to-cart > .add-to-cart-button {
  font-size: 18px;
  line-height: 1.4;
}

@media (max-width:800px) {
  html[lang|="cs"][data-boxxi-native="1"][data-bxcf-commerce="1"]
  body.template-11.type-product:not(.ordering-process)
  #content .p-detail[data-bxpf-active="1"] #product-detail-form
  .p-info-wrapper > .add-to-cart > .add-to-cart-button {
    font-size: 16px;
  }
}

/* WEB031: two ready-food links are native tiles, not presenter-owned cards.
   Reset the native 51px/70px tile cap only after imagery v2 owns either route. */
html[lang|="cs"][data-boxxi-native="1"][data-bxl-layout="1"]
body.template-11.type-category:not(.ordering-process)
.category-top > .subcategories > li >
a[data-bxst-kind="listing"][data-bxst-owned="2"]:is([href$="/sous-vide-masa/"],[href$="/hotove-pokrmy-z-ryb-a-krevet/"]) {
  width: 100%;
  height: auto;
  min-height: 0;
  max-height: none;
  box-sizing: border-box;
  padding: 0;
  overflow: hidden;
}

html[lang|="cs"][data-boxxi-native="1"][data-bxl-layout="1"]
body.template-11.type-category:not(.ordering-process)
.category-top > .subcategories > li >
a[data-bxst-kind="listing"][data-bxst-owned="2"]:is([href$="/sous-vide-masa/"],[href$="/hotove-pokrmy-z-ryb-a-krevet/"]) > .text {
  display: block;
  flex: 0 0 auto;
  width: 100%;
  height: auto;
  min-height: 0;
  max-height: none;
  box-sizing: border-box;
  padding: 14px 36px 14px 16px;
  font-size: 18px;
  line-height: 1.4;
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  overflow-wrap: anywhere;
}

html[lang|="cs"][data-boxxi-native="1"][data-bxl-layout="1"]
body.template-11.type-category:not(.ordering-process)
.category-top > .subcategories > li >
a[data-bxst-kind="listing"][data-bxst-owned="2"]:is([href$="/sous-vide-masa/"],[href$="/hotove-pokrmy-z-ryb-a-krevet/"])::before {
  top: auto;
  right: 14px;
  bottom: 22px;
  margin-top: 0;
}

@media (max-width:800px) {
  html[lang|="cs"][data-boxxi-native="1"][data-bxl-layout="1"]
  body.template-11.type-category:not(.ordering-process)
  .category-top > .subcategories > li >
  a[data-bxst-kind="listing"][data-bxst-owned="2"]:is([href$="/sous-vide-masa/"],[href$="/hotove-pokrmy-z-ryb-a-krevet/"]) > .text {
    font-size: 16px;
    padding-left: 12px;
    padding-right: 28px;
  }
}

/* WEB033: POBO fallback image in the legacy review widget only.
   The failed relative placeholder has no provenance value. Keep all review
   text, genuine attribution images, recipes, and POBO lazy-loading untouched.
   A later real src automatically stops matching this rule. */
html[lang|="cs"][data-boxxi-native="1"]
body.template-11.type-product:not(.ordering-process)
#content .p-detail .evaluation-review-sites
.pb-evaluation-two__single > img.pb-evaluation-two__logo[src="placeholder.png"]:not([srcset]) {
  display: none !important;
}

/* Boxxi mobile menu layer repair v1 — offline candidate.
 * The legacy sticky-header addon raises the closed header's topbar to9999
 * while the native drawer is inside the header's56 stacking context.
 * Restore the addon's normal topbar layer only while the drawer is open.
 * Native menu controls, focus, close button, scroll and interactions stay owned by Shoptet.
 */
@media (max-width:767px){
 html[data-boxxi-native="1"][data-bxl-layout="1"] body.template-11.sticky-mobile.navigation-window-visible:not(.ordering-process) .top-navigation-bar{
  z-index:9!important;
 }
}

/* WEB033: derive visible related cards from the native active window.
   Static related-sm-screen-hide/show classes describe original positions only.
   Keep the native index and explicit show-all/hidden states unchanged. */
html[lang|="cs"][data-boxxi-native="1"][data-bxcf-commerce="1"]
body.template-11.type-product:not(.ordering-process)
#content .p-detail > :is(#products,.products-block).products-related.p-switchable:not(.show-all-related)
> .product.active:not(.inactive):not([hidden]):not(.js-hidden) {
  display: flex !important;
}

@media (max-width:800px) {
  /* The third and following eligible active siblings stay hidden on two columns.
     Unlike nth-child(n+3), inactive/explicitly hidden earlier cards do not count. */
  html[lang|="cs"][data-boxxi-native="1"][data-bxcf-commerce="1"]
  body.template-11.type-product:not(.ordering-process)
  #content .p-detail > :is(#products,.products-block).products-related.p-switchable:not(.show-all-related)
  > .product.active:not(.inactive):not([hidden]):not(.js-hidden)
  ~ .product.active:not(.inactive):not([hidden]):not(.js-hidden)
  ~ .product.active:not(.inactive):not([hidden]):not(.js-hidden) {
    display: none !important;
  }
}

/* WEB031 follow-up: equal mobile ready-food cards despite unequal title wrapping.
   Native UL keeps its own layout; only the two owned LI opt into row stretching.
   Load after boxxi-ready-tiles-v1.css. Desktop and menu are outside this scope. */
@media (max-width: 800px) {
  html[lang|="cs"][data-boxxi-native="1"][data-bxl-layout="1"]
  body.template-11.type-category:not(.ordering-process)
  .category-top > .subcategories > li:has(> a[data-bxst-kind="listing"][data-bxst-owned="2"]:is([href$="/sous-vide-masa/"],[href$="/hotove-pokrmy-z-ryb-a-krevet/"])) {
    align-self: stretch;
    display: flex;
    align-items: stretch;
  }

  html[lang|="cs"][data-boxxi-native="1"][data-bxl-layout="1"]
  body.template-11.type-category:not(.ordering-process)
  .category-top > .subcategories > li > a[data-bxst-kind="listing"][data-bxst-owned="2"]:is([href$="/sous-vide-masa/"],[href$="/hotove-pokrmy-z-ryb-a-krevet/"]) {
    align-self: stretch;
    flex: 1 1 auto;
  }
}

/* WEB031/v30: the prepared-food presenter inherits four generic columns.
   Only the exact two already-owned ready links form a full-width desktop pair.
   Existing v29 mobile geometry remains untouched. Load after ui-followup-v29. */
@media (min-width: 801px) {
  html[lang|="cs"][data-boxxi-native="1"][data-bxl-layout="1"] body.template-11.type-category:not(.ordering-process)
  .category-top[data-bxcat-top] > .subcategories:has(> li > a[data-bxst-kind="listing"][data-bxst-owned="2"][href="/sous-vide-masa/"]):has(> li > a[data-bxst-kind="listing"][data-bxst-owned="2"][href="/hotove-pokrmy-z-ryb-a-krevet/"]):not(:has(> li:nth-child(3))) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
  }

  html[lang|="cs"][data-boxxi-native="1"][data-bxl-layout="1"] body.template-11.type-category:not(.ordering-process)
  .category-top[data-bxcat-top] > .subcategories:has(> li > a[data-bxst-kind="listing"][data-bxst-owned="2"][href="/sous-vide-masa/"]):has(> li > a[data-bxst-kind="listing"][data-bxst-owned="2"][href="/hotove-pokrmy-z-ryb-a-krevet/"]):not(:has(> li:nth-child(3))) > li {
    display: flex;
    align-self: stretch;
    align-items: stretch;
  }

  html[lang|="cs"][data-boxxi-native="1"][data-bxl-layout="1"] body.template-11.type-category:not(.ordering-process)
  .category-top[data-bxcat-top] > .subcategories:has(> li > a[data-bxst-kind="listing"][data-bxst-owned="2"][href="/sous-vide-masa/"]):has(> li > a[data-bxst-kind="listing"][data-bxst-owned="2"][href="/hotove-pokrmy-z-ryb-a-krevet/"]):not(:has(> li:nth-child(3))) > li > a[data-bxst-kind="listing"][data-bxst-owned="2"] {
    align-self: stretch;
    flex: 1 1 auto;
  }
}

/* WEB-043 / WEB-046 service-page follow-up; same BoxxiNative owner. */
html[data-boxxi-native="1"] [data-bxn-safe-anchors="1"] [data-bxn-anchor="1"] {
  scroll-margin-top: var(--bxn-anchor-margin, 180px);
}
html[data-boxxi-native="1"] [data-bxn-safe-anchors="1"] [data-bxn-anchor="1"]:focus-visible {
  outline: 2px solid #3d6173;
  outline-offset: 6px;
}
html[data-boxxi-native="1"] #content [data-bxn-favourites-empty="1"] {
  max-width: 760px;
  margin: 24px auto 48px;
  padding: clamp(28px, 5vw, 52px) clamp(20px, 4vw, 48px);
  border: 1px solid #e1e5e2;
  border-radius: 16px;
  background: #f7f5ef;
  text-align: center;
}
html[data-boxxi-native="1"] #content [data-bxn-favourites-empty="1"] h3 {
  margin: 0 0 16px;
  font-size: clamp(22px, 3vw, 30px);
  line-height: 1.3;
  color: #243840;
}
html[data-boxxi-native="1"] #content .bxn-favourites-empty-copy {
  max-width: 540px;
  margin: 0 auto 24px;
  font-size: 16px;
  line-height: 1.65;
  color: #52616a;
}
html[data-boxxi-native="1"] #content .bxn-favourites-empty-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 48px;
  padding: 12px 22px;
  border: 1px solid #2c4655;
  border-radius: 9px;
  background: #2c4655;
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
  text-decoration: none;
}
html[data-boxxi-native="1"] #content .bxn-favourites-empty-link:hover {
  background: #203641;
  border-color: #203641;
}
html[data-boxxi-native="1"] #content .bxn-favourites-empty-link:focus-visible {
  outline: 3px solid #3d6173;
  outline-offset: 4px;
}

/* WEB038: Luigi's native mobile header is67px high (provider stylesheet).
   Focus must appear below that fixed input, not behind it. Existing close/tab
   sequence stays unchanged. Only show the extra strip during keyboard focus. */
@media (max-width: 1020px) {
  html[lang|="cs"][data-boxxi-native="1"][data-bxsa-search-followup="1"]
  body.template-11:not(.ordering-process)
  #lbx-ac-element.luigi-ac-heromobile.luigi-ac-autocomplete.luigi-ac-open .lbx-a11y-switcher:focus-visible {
    position: fixed;
    top: 75px;
    left: 12px;
    right: auto;
    bottom: auto;
    z-index: 4;
    margin: 0;
    width: auto;
    height: auto;
    min-height: 44px;
    max-width: calc(100vw - 24px);
    box-sizing: border-box;
    clip: auto;
    clip-path: none;
    overflow: visible;
    padding: 8px 12px;
    color: #20323c;
    background: #fff;
    border: 1px solid currentColor;
    border-radius: 6px;
    outline: 3px solid #2c4555;
    outline-offset: 2px;
  }

  html[lang|="cs"][data-boxxi-native="1"][data-bxsa-search-followup="1"]
  body.template-11:not(.ordering-process)
  #lbx-ac-element.luigi-ac-heromobile.luigi-ac-autocomplete.luigi-ac-open:has(.lbx-a11y-switcher:focus-visible) .luigi-ac-inner {
    padding-top: 126px;
  }

  /* WEB027: hide only this fixed review tab while the native overlay is open.
     Fail open without the existing footer review link; closed search restores it. */
  html[lang|="cs"][data-boxxi-native="1"][data-bxsa-search-followup="1"]
  body.template-11:not(.ordering-process):has(#lbx-ac-element.luigi-ac-heromobile.luigi-ac-autocomplete.luigi-ac-open):has(#footer .footer-bottom > a.bxn-verified-reviews[href="https://obchody.heureka.cz/boxxi-cz/recenze/"]:not([hidden]):not([aria-hidden="true"]))
  #hw-87kwowifjjowiklsadh666left {
    display: none !important;
  }
}

html[lang|="cs"][data-boxxi-native="1"][data-bxsa-search-followup="1"]
body.template-11:not(.ordering-process)
#lbx-ac-element.luigi-ac-autocomplete.luigi-ac-open [data-bxsa-show-all="1"]:focus-visible {
  outline: 3px solid #2c4555;
  outline-offset: 3px;
}

/* WEB047 — exact Ecomail page widget only. Never targets popup, consent or checkout. */
#content #ec_form_5-ed07fd6b07ff0199fabc8509f995f058[data-bxn-main="1"] {
  --bxn-ink: #233640;
  --bxn-muted: #607079;
  --bxn-cream: #f6f3ed;
  width: 100%; max-width: 720px; margin: 16px auto 56px; color: var(--bxn-ink);
}
#content [data-bxn-main="1"] .ec-v-form-holder,
#content [data-bxn-main="1"] .ec-v-form-holder * { font-family: inherit !important; }
#content [data-bxn-main="1"] .ec-v-form-holder-basic {
  background: var(--bxn-cream) !important; width: 100% !important; max-width: none !important;
  border: 1px solid #e6e0d6 !important; border-radius: 24px !important;
  padding: 36px clamp(20px, 5vw, 56px) !important; overflow: visible !important;
  box-sizing: border-box;
}
#content [data-bxn-main="1"] form { min-height: 0 !important; }
#content [data-bxn-main="1"] .ec-v-form-step { height: auto !important; min-height: 0 !important; }
#content [data-bxn-main="1"] .ec-v-form-column { width: 100% !important; }
#content [data-bxn-main="1"] .ec-v-form-spacer { height: 0 !important; }
#content [data-bxn-main="1"] .ec-v-form-text,
#content [data-bxn-main="1"] .ec-v-form-input,
#content [data-bxn-main="1"] .ec-v-form-submit,
#content [data-bxn-main="1"] .ec-v-form-regular { padding: 0 !important; }
#content [data-bxn-main="1"] .ec-v-form-text { margin: 0 0 24px; color: var(--bxn-muted) !important; }
#content [data-bxn-main="1"] .ec-v-form-text :is(h2,h4,h5,p,em,span,a) {
  font-family: inherit !important; background: transparent !important; color: inherit !important;
  letter-spacing: normal !important; line-height: 1.5 !important;
}
#content [data-bxn-main="1"] .ec-v-form-text :is(h2,h4,h5,p) { text-align: left !important; }
#content [data-bxn-main="1"] .ec-v-form-text h2,
#content [data-bxn-main="1"] .ec-v-form-text h2 span {
  font-size: clamp(26px, 4vw, 36px) !important; line-height: 1.2 !important;
  font-weight: 600 !important; color: var(--bxn-ink) !important;
}
#content [data-bxn-main="1"] .ec-v-form-text h2 { margin: 0 !important; }
#content [data-bxn-main="1"] .ec-v-form-text h4,
#content [data-bxn-main="1"] .ec-v-form-text h4 span,
#content [data-bxn-main="1"] .ec-v-form-text h5,
#content [data-bxn-main="1"] .ec-v-form-text h5 span { font-size: 16px !important; font-weight: 400 !important; margin: 0 !important; }
#content [data-bxn-main="1"] .ec-v-form-text h2 + h4 { margin-top: 16px !important; }
#content [data-bxn-main="1"] .ec-v-form-text p,
#content [data-bxn-main="1"] .ec-v-form-text p * { font-size: 13px !important; font-style: normal !important; }
#content [data-bxn-main="1"] .ec-v-form-text p.bxn-intro { font-size: 16px !important; font-weight: 400 !important; margin: 18px 0 0 !important; }
#content [data-bxn-main="1"] .ec-v-form-text a { text-decoration: underline !important; text-underline-offset: 3px; }
#content [data-bxn-main="1"] .ec-v-form-input { margin: 0 0 16px; }
#content [data-bxn-main="1"] .ec-v-forms-label {
  display: block; margin: 0 0 7px; color: var(--bxn-ink) !important;
  font-family: inherit !important; font-size: 14px !important; font-weight: 600;
}
#content [data-bxn-main="1"] input.ec-v-forms-form-control {
  width: 100%; min-height: 48px; box-sizing: border-box; padding: 12px 14px !important;
  background: #fff !important; color: var(--bxn-ink) !important;
  border: 1px solid #bdc7c7 !important; border-radius: 9px !important;
  font: inherit !important; line-height: 1.4 !important; box-shadow: none !important;
}
#content [data-bxn-main="1"] input.ec-v-forms-form-control::placeholder { color: #69767b; opacity: 1; }
#content [data-bxn-main="1"] input:focus-visible,
#content [data-bxn-main="1"] button:focus-visible,
#content [data-bxn-main="1"] a:focus-visible { outline: 2px solid #2f5669 !important; outline-offset: 3px !important; }
#content [data-bxn-main="1"] .bxn-preference-heading { color: var(--bxn-ink) !important; margin: 24px 0 12px; font: inherit; font-size: 14px; font-weight: 600; }
#content [data-bxn-main="1"] .bxn-preference {
  display: flex; align-items: center; gap: 11px; min-height: 40px; margin: 0;
  color: var(--bxn-ink); font: inherit; font-size: 16px; cursor: pointer;
}
#content [data-bxn-main="1"] .bxn-preference input {
  display: inline-block !important; appearance: auto; -webkit-appearance: checkbox; position: static; opacity: 1;
  width: 19px; height: 19px; min-width: 19px; margin: 0; accent-color: #304e5e;
}
#content [data-bxn-main="1"] [hidden] { display: none !important; }
#content [data-bxn-main="1"] .ec-v-form-submit,
#content [data-bxn-main="1"] .ec-v-form-regular { margin: 22px 0 18px; }
#content [data-bxn-main="1"] :is(.ec-v-form-submit,.ec-v-form-regular) button {
  display: inline-block; width: 100% !important; min-height: 50px; padding: 14px 20px !important;
  border: 1px solid #304e5e !important; border-radius: 10px !important;
  color: #fff !important; background: #304e5e !important; font: inherit !important; font-weight: 600 !important;
  line-height: 1.5 !important; text-align: center !important; cursor: pointer;
}
#content [data-bxn-main="1"] :is(.ec-v-form-submit,.ec-v-form-regular) button * { font: inherit !important; color: inherit !important; }
#content [data-bxn-main="1"] :is(.ec-v-form-submit,.ec-v-form-regular) button:hover { background: #203c4b !important; }
#content [data-bxn-main="1"] .ec-v-form-error { color: #a32722 !important; font: inherit !important; font-size: 13px !important; line-height: 1.5 !important; }
#f-9-54057be166928eb6fcc57504dc847797[data-bxn-page-duplicate="1"] { display: none !important; }
@media (max-width: 480px) {
  #content [data-bxn-main="1"] .ec-v-form-holder-basic { padding: 28px 20px !important; border-radius: 18px !important; }
  #content #ec_form_5-ed07fd6b07ff0199fabc8509f995f058[data-bxn-main="1"] { margin-bottom: 32px; }
}

/* WEB027: the third-party review tab must not sit above an open product-photo dialog.
   Colorbox v3 owns this Czech accessible label only while its photo session is open;
   closed dialogs remove the label and photo. Keep the existing footer review link.
   No gallery script, content, image, focus order or global review visibility change. */
html[lang|="cs"][data-boxxi-native="1"]
body.template-11.type-product:not(.ordering-process):has(#colorbox.productDetail[role="dialog"][aria-label^="Fotografie produktu: "] #cboxLoadedContent > img.cboxPhoto):has(#footer .footer-bottom > a.bxn-verified-reviews[data-bxn-owned="1"][href="https://obchody.heureka.cz/boxxi-cz/recenze/"]:not([hidden]):not([aria-hidden="true"]))
#hw-87kwowifjjowiklsadh666left {
  display: none !important;
}
