document.addEventListener('DOMContentLoaded', () => {
  // Espera a que todo cargue (incluido Bricks)
  window.addEventListener('load', () => {
    setTimeout(() => {
      const headerEl = document.getElementById('brx-header');
      const targetEls = Array.from(document.querySelectorAll('.fb-hide-on-scroll'));

      if (!headerEl || !targetEls.length) return;

      let headerHeight = 0;
      let addThreshold = 0;
      let removeThreshold = 0;
      let hidden = false;
      let ticking = false;

      function updateHeights() {
        headerHeight = headerEl.getBoundingClientRect().height;
        addThreshold = Math.ceil(headerHeight) + 1;
        removeThreshold = Math.max(0, Math.floor(headerHeight) - 6);
      }

      function applyHiddenClass(shouldHide) {
        targetEls.forEach(el => {
          el.classList.toggle('fb-hide', shouldHide);
        });
      }

      function onScrollRaf() {
        const scrollY = window.scrollY || window.pageYOffset;

        if (!hidden && scrollY > addThreshold) {
          hidden = true;
          applyHiddenClass(true);
        } else if (hidden && scrollY < removeThreshold) {
          hidden = false;
          applyHiddenClass(false);
        }
        ticking = false;
      }

      function onScroll() {
        if (!ticking) {
          ticking = true;
          requestAnimationFrame(onScrollRaf);
        }
      }

      updateHeights();
      window.addEventListener('scroll', onScroll, { passive: true });

      window.addEventListener('resize', () => {
        updateHeights();
        onScrollRaf();
      });

      if (typeof ResizeObserver !== 'undefined') {
        const ro = new ResizeObserver(() => {
          updateHeights();
          onScrollRaf();
        });
        ro.observe(headerEl);
      }

      onScrollRaf();
    }, 400); // <-- inicia 1 segundo después de la carga completa
  });
});

Refund policy

If you are not satisfied with the product, you have 8 days to request a refund by contacting me through the form on your account in the support tab and telling me the reason for your dissatisfaction.

If there is an error in the templates, I will try to fix it as soon as possible. If the error persists and is on the part of Fancy Bricks, I will proceed with the refund of the money, cancelation of the membership, and the account at Fancy Bricks.

Note that Fancy Bricks works natively, compatibility with Frameworks is not considered a bug.

Please note that any fees charged by the payment gateway for the refund process will be the responsibility of the customer.

Refund reasons that are NOT accepted:

  • Subjective Reasons, e.g.: “I don’t like how it works”, “I don’t need the product anymore”, “I don’t have money” etc.
  • Request without contexts, for example, “I just wanna get refunded”
  • Fancy Bricks has some free templates so you can try the product before you buy it, for this reason I don’t do refunds without a good reason.