/* ================================================================
   Ingotvision pro — E-SHOP ARCHIVE OVERLAY (FABRIKÁTOR)
   Purpose:
   - Page 824 (class .ast-woo-shop-archive, woocommerce-shop) renders
     WooCommerce NATIVE template (double "E-shop" H1, notices,
     result-count, ordering form, ul.products columns-4) in addition
     to the custom IVP hero + category pills + featured box +
     ivp-shop-body-grid (sidebar + grid).

     The custom grid is superior, fully styled, and has working
     /kosik/?add-to-cart=NNN links — so the native archive loop
     is HIDDEN entirely. Only the custom IVP content is displayed.

     This file is loaded AFTER sections.css to win the cascade.
   ================================================================ */

/* 1) Hide ALL WooCommerce native-archive output that would double
      the product listing or break the layout. Scope:
      body.woocommerce-shop or body.woocommerce (covers both).

      IMPORTANT: we only hide the specific sub-elements (title,
      description, notices, result-count, ordering, pagination, ul
      .products, astra thumbnails), NOT the <header> wrapper,
      because .ivp-shop-page is inside that same <header>.  */
body.woocommerce-shop ul.products,
body.woocommerce ul.products,
body.woocommerce-shop .ast-woo-shop-archive ul.products,
body.woocommerce .ast-woo-shop-archive ul.products,

body.woocommerce-shop .products-loop,
body.woocommerce .products-loop,

body.woocommerce-shop .woocommerce-notices-wrapper,
body.woocommerce .woocommerce-notices-wrapper,

body.woocommerce-shop .woocommerce-result-count,
body.woocommerce .woocommerce-result-count,

body.woocommerce-shop .woocommerce-ordering,
body.woocommerce .woocommerce-ordering,
body.woocommerce-shop form.woocommerce-ordering,
body.woocommerce form.woocommerce-ordering,

body.woocommerce-shop .woocommerce-pagination,
body.woocommerce .woocommerce-pagination,

/* Astra's own "shop thumbnail wrap" ghost image block */
body.woocommerce-shop .astra-shop-thumbnail-wrap,
body.woocommerce .astra-shop-thumbnail-wrap,

/* The duplicate H1 "E-shop" inside .woocommerce-products-header.
   HIDE ONLY THE <h1 class="page-title"> — do NOT touch .page-description,
   because the site puts the entire custom .ivp-shop-page INSIDE that
   <div class="page-description"> wrapper. Hiding it would blank the page. */
.woocommerce-products-header__title.page-title,
.woocommerce-products-header .page-title {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 0 !important;
  line-height: 0 !important;
  overflow: hidden !important;
}

/* Ensure the custom IVP content takes the full container width.
   (Astra may have set max-width on .entry-content or .ast-container,
   but main.css already forces max-width:none !important on them;
   this rule is a double-check for the shop page only.) */
body.ast-woo-shop-archive .ivp-shop-page,
body.ast-woo-shop-archive .ivp-container {
  max-width: none;
  width: 100%;
}

/* 2) Reveal fallback: .is-in and .is-visible are synonyms.
   CSS already defines:
     .ivp-reveal { opacity:0; transform:translateY(14px); }
     .ivp-reveal.is-visible { opacity:1; transform:none; }
   We alias .is-in to the same value so main.js can add either
   class name and the element is still shown. */
.ivp-reveal.is-in {
  opacity: 1 !important;
  transform: none !important;
}

/* 3) Safety: after main.js has had 1.2 s to reveal, force any
   still-hidden .ivp-reveal element to visible. This is belt-and-
   suspenders — if JS is blocked or the IntersectionObserver
   never fires, the page is still fully readable. */
@keyframes ivp-reveal-fallback {
  from { opacity: 0.0001; }
  to   { opacity: 1; }
}
body .ivp-reveal:not(.is-in):not(.is-visible) {
  animation: ivp-reveal-fallback 0.55s ease 1.15s forwards;
}
/* Respect reduced-motion preference for the fallback animation */
@media (prefers-reduced-motion: reduce) {
  body .ivp-reveal:not(.is-in):not(.is-visible) {
    animation: none;
    opacity: 1 !important;
    transform: none !important;
  }
}
.ivp-shop-filter .options br, .ivp-shop-cats__inner br { display: none !important; }
.ivp-shop-filter p { margin: 0; }
