/* Keep previous scroll-lock exceptions */
html.show-mobile-menu,
html.show-mobile-menu body {
  overflow: auto !important;
  height: auto !important;
}
html.chb-mnav-open,
html.chb-mnav-open body {
  overflow: hidden !important;
}
body.woocommerce-checkout,
body.woocommerce-cart,
html.woocommerce-checkout,
html.woocommerce-cart,
body.woocommerce-checkout.chb-popup-lock,
body.woocommerce-cart.chb-popup-lock {
  overflow: auto !important;
  overflow-x: clip !important;
  height: auto !important;
  max-height: none !important;
}
body.single-product .shop-content,
body.single-product .single-content {
  overflow: visible !important;
}

/*
 * overflow-x: hidden on html AND body computes overflow-y to auto on both.
 * That paints a second mobile scrollbar. clip does not force a Y scroller.
 * Beat chb-header-v22 `html, html body { overflow-x: hidden !important }`.
 */
html:root {
  overflow-x: clip !important;
}
html body.theme-bacola {
  overflow-x: clip !important;
  overflow-y: visible !important;
}
html body.theme-bacola .homepage-content,
html body.theme-bacola .site-content,
html body.theme-bacola .shop-content,
html body.theme-bacola .single-content {
  overflow-x: clip !important;
  overflow-y: visible !important;
}

html.cfw-side-cart-open,
html.cfw-side-cart-open body,
body.cfw-side-cart-open {
  overflow: hidden !important;
}

/* Closed drawer is 480px + scrollbar (~485) parked at right:-480px, so a strip
   of it (and its scrollbar) sits on the viewport edge. Park it fully off-screen. */
html body:not(.cfw-side-cart-open) #cfw-side-cart {
  right: -110vw !important;
  overflow: hidden !important;
  pointer-events: none !important;
}
html body.cfw-side-cart-open #cfw-side-cart {
  right: 0 !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  pointer-events: auto !important;
}

@media (max-width: 767px) {
  html body .header-cart .fl-mini-cart-content {
    max-height: none !important;
    overflow: visible !important;
  }
}
