{
  "version": 3,
  "sources": ["/cdn/shop/t/296/compiled_assets/scripts.js?K=260998680393585679718640789560"],
  "sourcesContent": ["(function() {\n  var __sections__ = {};\n  (function() {\n    for(var i = 0, s = document.getElementById('sections-script').getAttribute('data-sections').split(','); i < s.length; i++)\n      __sections__[s[i]] = true;\n    })();\n    (function() {\n  if (!__sections__[\"header\"]) return;\n  try {\n    \n\n\n  class StickyHeader extends HTMLElement {\n    constructor() {\n      super();\n    }\n\n    connectedCallback() {\n      this.header = document.getElementById('header-announcement-container');\n      this.headerBounds = {};\n      this.currentScrollTop = 0;\n      this.preventReveal = false;\n      this.predictiveSearch = this.querySelector('predictive-search');\n\n      this.onScrollHandler = this.onScroll.bind(this);\n      this.hideHeaderOnScrollUp = () => this.preventReveal = true;\n\n      this.addEventListener('preventHeaderReveal', this.hideHeaderOnScrollUp);\n      window.addEventListener('scroll', this.onScrollHandler, false);\n\n      this.createObserver();\n    }\n\n    disconnectedCallback() {\n      this.removeEventListener('preventHeaderReveal', this.hideHeaderOnScrollUp);\n      window.removeEventListener('scroll', this.onScrollHandler);\n    }\n\n    createObserver() {\n      let observer = new IntersectionObserver((entries, observer) => {\n        this.headerBounds = entries[0].intersectionRect;\n        observer.disconnect();\n      });\n\n      observer.observe(this.header);\n    }\n\n    onScroll() {\n      \n      const scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n      const headerheight = this.headerBounds.bottom;\n        if(scrollTop > headerheight){\n          this.reveal();\n        }\n\n      //\n      if (this.predictiveSearch && this.predictiveSearch.isOpen) return;\n\n      if (scrollTop > this.currentScrollTop && scrollTop > this.headerBounds.bottom) {\n        if (this.preventHide) return;\n        requestAnimationFrame(this.hide.bind(this));\n      } else if (scrollTop < this.currentScrollTop && scrollTop > this.headerBounds.bottom) {\n        if (!this.preventReveal) {\n          requestAnimationFrame(this.reveal.bind(this));\n        } else {\n          window.clearTimeout(this.isScrolling);\n\n          this.isScrolling = setTimeout(() => {\n            this.preventReveal = false;\n          }, 66);\n\n          requestAnimationFrame(this.hide.bind(this));\n        }\n      } else if (scrollTop <= this.headerBounds.top) {\n        requestAnimationFrame(this.reset.bind(this));\n      }\n\n      this.currentScrollTop = scrollTop;\n\n      if (window.innerWidth < 660) {\n        // Get references to the div elements\n        const sortBySelector = document.querySelector('.stickyheader--active .facets-container');\n        const filterSelector = document.querySelector('.select');\n\n        if (sortBySelector && filterSelector) {\n          // Get the computed height of filterSelector\n          const stickyFiltersHeight = window.getComputedStyle(filterSelector).getPropertyValue('height');\n          //alert(stickyFiltersHeight);\n\n          // Set the height of sortBySelector to match filterSelector\n            sortBySelector.style.height = stickyFiltersHeight;\n        }\n      }\n    }\n\n    hide() {\n      this.closeSearchModal();\n    }\n\n    reveal() {\n      document.body.classList.add('stickyheader--active');\n      this.header.classList.add('shopify-section-header-sticky', 'animate');\n      this.header.classList.remove('shopify-section-header-hidden');\n    }\n\n    reset() {\n      this.header.classList.remove('shopify-section-header-hidden', 'shopify-section-header-sticky', 'animate');\n      document.body.classList.remove('stickyheader--active');\n    }\n\n    closeSearchModal() {\n      this.searchModal = this.searchModal || this.header.querySelector('details-modal');\n      this.searchModal.close(false);\n    }\n  }\n\n  customElements.define('sticky-header', StickyHeader); \n\n  // FTC-60290 - Fixing Accessibility\n  document.addEventListener('DOMContentLoaded', function() {\n    // Handle desktop mega menus\n    const megaMenus = document.querySelectorAll('.mega-menu')\n    \n    megaMenus.forEach((menu) => {\n      const details = menu.querySelector('details')\n      const content = menu.querySelector('.mega-menu__content')\n      const overlay = menu.querySelector('.megamenu-overlay')\n      \n      if (!content) return\n\n      let isMenuOpen = false\n      let isUsingKeyboard = false\n\n      // Function to update tabindex and visibility for all focusable elements\n      function updateMegaMenuTabIndex(isOpen) {\n        const focusableElements = content.querySelectorAll('a, button, input, select, textarea')\n        \n        focusableElements.forEach((el) => {\n          if (isOpen) {\n            el.removeAttribute('tabindex')\n            el.removeAttribute('aria-hidden')\n          } else {\n            el.setAttribute('tabindex', '-1')\n            el.setAttribute('aria-hidden', 'true')\n          }\n        })\n        \n        // Update container aria-hidden and visual state\n        if (isOpen) {\n          content.removeAttribute('aria-hidden')\n          if (overlay) overlay.classList.add('active')\n          // Add class to show menu when opened via keyboard\n          if (isUsingKeyboard) {\n            menu.classList.add('keyboard-open')\n          }\n        } else {\n          content.setAttribute('aria-hidden', 'true')\n          if (overlay) overlay.classList.remove('active')\n          // Remove class when menu closes\n          menu.classList.remove('keyboard-open')\n        }\n      }\n\n      // Initialize - hide all links when closed\n      updateMegaMenuTabIndex(false)\n\n      // For DETAILS-based menus\n      if (details) {\n        details.addEventListener('toggle', function() {\n          isMenuOpen = this.open\n          updateMegaMenuTabIndex(this.open)\n        })\n      } \n      // For non-details mega menus (hover-based)\n      else {\n        const summary = menu.querySelector('summary, .header__menu-item')\n        const focusTarget = summary.querySelector('a') || summary\n        \n        if (summary) {\n          // Detect keyboard usage and prevent Space from scrolling\n          summary.addEventListener('keydown', (e) => {\n            isUsingKeyboard = true\n            // Prevent spacebar from scrolling the page\n            if (e.key === ' ' || e.key === 'Spacebar') {\n              e.preventDefault()\n            }\n          })\n\n          // Mouse hover support - only if NOT using keyboard\n          menu.addEventListener('mouseenter', () => {\n            if (!isUsingKeyboard) {\n              isMenuOpen = true\n              updateMegaMenuTabIndex(true)\n            }\n          })\n          \n          menu.addEventListener('mouseleave', () => {\n            if (!isUsingKeyboard) {\n              isMenuOpen = false\n              updateMegaMenuTabIndex(false)\n            }\n          })\n\n          // Reset keyboard flag on mouse move\n          menu.addEventListener('mousemove', () => {\n            if (isUsingKeyboard && !isMenuOpen) {\n              isUsingKeyboard = false\n            }\n          })\n\n          // Keyboard activation support (Space/Enter)\n          summary.addEventListener('keydown', (e) => {\n            // Space or Enter key\n            if (e.key === ' ' || e.key === 'Enter' || e.key === 'Spacebar') {\n              e.preventDefault()\n              isMenuOpen = !isMenuOpen\n              updateMegaMenuTabIndex(isMenuOpen)\n              \n              if (isMenuOpen) {\n                // Focus first link in mega menu\n                const firstLink = content.querySelector('a')\n                if (firstLink) {\n                  setTimeout(() => firstLink.focus(), 50)\n                }\n              }\n            }\n            // Escape key closes menu\n            else if (e.key === 'Escape' && isMenuOpen) {\n              e.preventDefault()\n              isMenuOpen = false\n              updateMegaMenuTabIndex(false)\n              // Focus the actual link element\n              setTimeout(() => {\n                focusTarget.focus()\n              }, 50)\n            }\n          })\n\n          // Escape key handler for when focus is inside the mega menu\n          content.addEventListener('keydown', (e) => {\n            if (e.key === 'Escape' && isMenuOpen) {\n              e.preventDefault()\n              isMenuOpen = false\n              updateMegaMenuTabIndex(false)\n              // Focus the actual link element\n              setTimeout(() => {\n                focusTarget.focus()\n              }, 50)\n            }\n          })\n\n          // Close menu when tabbing out\n          menu.addEventListener('focusout', (e) => {\n            // Wait a moment to see where focus goes\n            setTimeout(() => {\n              if (isMenuOpen && !menu.contains(document.activeElement)) {\n                isMenuOpen = false\n                updateMegaMenuTabIndex(false)\n                // Reset keyboard flag after closing\n                isUsingKeyboard = false\n              }\n            }, 100)\n          })\n        }\n      }\n    })\n  })\n\n\n  } catch(e) { console.error(e); }\n})();\n\n(function() {\n  if (!__sections__[\"main-cart-footer\"]) return;\n  try {\n    \n  class CartNote extends HTMLElement {\n    constructor() {\n      super();\n\n      this.addEventListener('change', debounce((event) => {\n        const body = JSON.stringify({note: event.target.value});\n        fetch(`${\n          routes.cart_update_url\n        }`, {\n          ...fetchConfig(),\n          ...{\n            body\n          }\n        });\n      }, 300))\n    }\n  }\n\n  customElements.define('cart-note', CartNote);\n\n  } catch(e) { console.error(e); }\n})();\n\n(function() {\n  if (!__sections__[\"product-recommendations\"]) return;\n  try {\n    \n  class ProductRecommendations extends HTMLElement {\n    constructor() {\n      super();\n\n      const handleIntersection = (entries, observer) => {\n        if (!entries[0].isIntersecting) return;\n        console.log('ProductRecommendations: IntersectionObserver triggered');\n        observer.unobserve(this);\n        console.log('AAA');\n\n        fetch(this.dataset.url)\n          .then(response => response.text())\n          .then(text => {\n            const html = document.createElement('div');\n            html.innerHTML = text;\n            const recommendations = html.querySelector('.product-recommendations-section');\n\n            if (recommendations && recommendations.innerHTML.trim().length) {\n              if (this.classList.contains('cart-recommendations')) return;\n              console.log(\"I am called\", recommendations);\n              this.innerHTML = recommendations.innerHTML;\n            }\n\n            if (html.querySelector('.grid__item')) {\n              this.classList.add('product-recommendations--loaded');\n            }\n          })\n          .catch(e => {\n            console.error(e);\n          });\n      }\n\n      new IntersectionObserver(handleIntersection.bind(this), {rootMargin: '0px 0px 200px 0px'}).observe(this);\n    }\n  }\n\n  customElements.define('product-recommendations', ProductRecommendations);\n\n  } catch(e) { console.error(e); }\n})();\n})();\n"],
  "mappings": "CAAC,UAAW,CACV,IAAI,aAAe,CAAC,GACnB,UAAW,CACV,QAAQ,EAAI,EAAG,EAAI,SAAS,eAAe,iBAAiB,EAAE,aAAa,eAAe,EAAE,MAAM,GAAG,EAAG,EAAI,EAAE,OAAQ,IACpH,aAAa,EAAE,CAAC,CAAC,EAAI,EACvB,GAAG,GACF,UAAW,CACd,GAAK,aAAa,OAClB,GAAI,CAIJ,MAAM,qBAAqB,WAAY,CACrC,aAAc,CACZ,MAAM,CACR,CAEA,mBAAoB,CAClB,KAAK,OAAS,SAAS,eAAe,+BAA+B,EACrE,KAAK,aAAe,CAAC,EACrB,KAAK,iBAAmB,EACxB,KAAK,cAAgB,GACrB,KAAK,iBAAmB,KAAK,cAAc,mBAAmB,EAE9D,KAAK,gBAAkB,KAAK,SAAS,KAAK,IAAI,EAC9C,KAAK,qBAAuB,IAAM,KAAK,cAAgB,GAEvD,KAAK,iBAAiB,sBAAuB,KAAK,oBAAoB,EACtE,OAAO,iBAAiB,SAAU,KAAK,gBAAiB,EAAK,EAE7D,KAAK,eAAe,CACtB,CAEA,sBAAuB,CACrB,KAAK,oBAAoB,sBAAuB,KAAK,oBAAoB,EACzE,OAAO,oBAAoB,SAAU,KAAK,eAAe,CAC3D,CAEA,gBAAiB,CACA,IAAI,qBAAqB,CAAC,QAASA,YAAa,CAC7D,KAAK,aAAe,QAAQ,CAAC,EAAE,iBAC/BA,UAAS,WAAW,CACtB,CAAC,EAEQ,QAAQ,KAAK,MAAM,CAC9B,CAEA,UAAW,CAET,MAAM,UAAY,OAAO,aAAe,SAAS,gBAAgB,UAC3D,aAAe,KAAK,aAAa,OAMvC,GALK,UAAY,cACb,KAAK,OAAO,EAIZ,OAAK,kBAAoB,KAAK,iBAAiB,QAEnD,IAAI,UAAY,KAAK,kBAAoB,UAAY,KAAK,aAAa,OAAQ,CAC7E,GAAI,KAAK,YAAa,OACtB,sBAAsB,KAAK,KAAK,KAAK,IAAI,CAAC,CAC5C,MAAW,UAAY,KAAK,kBAAoB,UAAY,KAAK,aAAa,OACvE,KAAK,eAGR,OAAO,aAAa,KAAK,WAAW,EAEpC,KAAK,YAAc,WAAW,IAAM,CAClC,KAAK,cAAgB,EACvB,EAAG,EAAE,EAEL,sBAAsB,KAAK,KAAK,KAAK,IAAI,CAAC,GAR1C,sBAAsB,KAAK,OAAO,KAAK,IAAI,CAAC,EAUrC,WAAa,KAAK,aAAa,KACxC,sBAAsB,KAAK,MAAM,KAAK,IAAI,CAAC,EAK7C,GAFA,KAAK,iBAAmB,UAEpB,OAAO,WAAa,IAAK,CAE3B,MAAM,eAAiB,SAAS,cAAc,yCAAyC,EACjF,eAAiB,SAAS,cAAc,SAAS,EAEvD,GAAI,gBAAkB,eAAgB,CAEpC,MAAM,oBAAsB,OAAO,iBAAiB,cAAc,EAAE,iBAAiB,QAAQ,EAI3F,eAAe,MAAM,OAAS,mBAClC,CACF,EACF,CAEA,MAAO,CACL,KAAK,iBAAiB,CACxB,CAEA,QAAS,CACP,SAAS,KAAK,UAAU,IAAI,sBAAsB,EAClD,KAAK,OAAO,UAAU,IAAI,gCAAiC,SAAS,EACpE,KAAK,OAAO,UAAU,OAAO,+BAA+B,CAC9D,CAEA,OAAQ,CACN,KAAK,OAAO,UAAU,OAAO,gCAAiC,gCAAiC,SAAS,EACxG,SAAS,KAAK,UAAU,OAAO,sBAAsB,CACvD,CAEA,kBAAmB,CACjB,KAAK,YAAc,KAAK,aAAe,KAAK,OAAO,cAAc,eAAe,EAChF,KAAK,YAAY,MAAM,EAAK,CAC9B,CACF,CAEA,eAAe,OAAO,gBAAiB,YAAY,EAGnD,SAAS,iBAAiB,mBAAoB,UAAW,CAErC,SAAS,iBAAiB,YAAY,EAE9C,QAAS,MAAS,CAC1B,MAAM,QAAU,KAAK,cAAc,SAAS,EACtC,QAAU,KAAK,cAAc,qBAAqB,EAClD,QAAU,KAAK,cAAc,mBAAmB,EAEtD,GAAI,CAAC,QAAS,OAEd,IAAI,WAAa,GACb,gBAAkB,GAGtB,SAAS,uBAAuB,OAAQ,CACZ,QAAQ,iBAAiB,oCAAoC,EAErE,QAAS,IAAO,CAC5B,QACF,GAAG,gBAAgB,UAAU,EAC7B,GAAG,gBAAgB,aAAa,IAEhC,GAAG,aAAa,WAAY,IAAI,EAChC,GAAG,aAAa,cAAe,MAAM,EAEzC,CAAC,EAGG,QACF,QAAQ,gBAAgB,aAAa,EACjC,SAAS,QAAQ,UAAU,IAAI,QAAQ,EAEvC,iBACF,KAAK,UAAU,IAAI,eAAe,IAGpC,QAAQ,aAAa,cAAe,MAAM,EACtC,SAAS,QAAQ,UAAU,OAAO,QAAQ,EAE9C,KAAK,UAAU,OAAO,eAAe,EAEzC,CAMA,GAHA,uBAAuB,EAAK,EAGxB,QACF,QAAQ,iBAAiB,SAAU,UAAW,CAC5C,WAAa,KAAK,KAClB,uBAAuB,KAAK,IAAI,CAClC,CAAC,MAGE,CACH,MAAM,QAAU,KAAK,cAAc,6BAA6B,EAC1D,YAAc,QAAQ,cAAc,GAAG,GAAK,QAE9C,UAEF,QAAQ,iBAAiB,UAAY,GAAM,CACzC,gBAAkB,IAEd,EAAE,MAAQ,KAAO,EAAE,MAAQ,aAC7B,EAAE,eAAe,CAErB,CAAC,EAGD,KAAK,iBAAiB,aAAc,IAAM,CACnC,kBACH,WAAa,GACb,uBAAuB,EAAI,EAE/B,CAAC,EAED,KAAK,iBAAiB,aAAc,IAAM,CACnC,kBACH,WAAa,GACb,uBAAuB,EAAK,EAEhC,CAAC,EAGD,KAAK,iBAAiB,YAAa,IAAM,CACnC,iBAAmB,CAAC,aACtB,gBAAkB,GAEtB,CAAC,EAGD,QAAQ,iBAAiB,UAAY,GAAM,CAEzC,GAAI,EAAE,MAAQ,KAAO,EAAE,MAAQ,SAAW,EAAE,MAAQ,YAKlD,GAJA,EAAE,eAAe,EACjB,WAAa,CAAC,WACd,uBAAuB,UAAU,EAE7B,WAAY,CAEd,MAAM,UAAY,QAAQ,cAAc,GAAG,EACvC,WACF,WAAW,IAAM,UAAU,MAAM,EAAG,EAAE,CAE1C,OAGO,EAAE,MAAQ,UAAY,aAC7B,EAAE,eAAe,EACjB,WAAa,GACb,uBAAuB,EAAK,EAE5B,WAAW,IAAM,CACf,YAAY,MAAM,CACpB,EAAG,EAAE,EAET,CAAC,EAGD,QAAQ,iBAAiB,UAAY,GAAM,CACrC,EAAE,MAAQ,UAAY,aACxB,EAAE,eAAe,EACjB,WAAa,GACb,uBAAuB,EAAK,EAE5B,WAAW,IAAM,CACf,YAAY,MAAM,CACpB,EAAG,EAAE,EAET,CAAC,EAGD,KAAK,iBAAiB,WAAa,GAAM,CAEvC,WAAW,IAAM,CACX,YAAc,CAAC,KAAK,SAAS,SAAS,aAAa,IACrD,WAAa,GACb,uBAAuB,EAAK,EAE5B,gBAAkB,GAEtB,EAAG,GAAG,CACR,CAAC,EAEL,CACF,CAAC,CACH,CAAC,CAGD,OAAQ,EAAG,CAAE,QAAQ,MAAM,CAAC,CAAG,CACjC,GAAG,GAEF,UAAW,CACV,GAAK,aAAa,kBAAkB,EACpC,GAAI,CAEJ,MAAM,iBAAiB,WAAY,CACjC,aAAc,CACZ,MAAM,EAEN,KAAK,iBAAiB,SAAU,SAAU,OAAU,CAClD,MAAM,KAAO,KAAK,UAAU,CAAC,KAAM,MAAM,OAAO,KAAK,CAAC,EACtD,MAAM,GACJ,OAAO,eACT,GAAI,CACF,GAAG,YAAY,EAEb,IAEJ,CAAC,CACH,EAAG,GAAG,CAAC,CACT,CACF,CAEA,eAAe,OAAO,YAAa,QAAQ,CAE3C,OAAQ,EAAG,CAAE,QAAQ,MAAM,CAAC,CAAG,CACjC,GAAG,GAEF,UAAW,CACV,GAAK,aAAa,yBAAyB,EAC3C,GAAI,CAEJ,MAAM,+BAA+B,WAAY,CAC/C,aAAc,CACZ,MAAM,EAEN,MAAM,mBAAqB,CAAC,QAAS,WAAa,CAC3C,QAAQ,CAAC,EAAE,iBAChB,QAAQ,IAAI,wDAAwD,EACpE,SAAS,UAAU,IAAI,EACvB,QAAQ,IAAI,KAAK,EAEjB,MAAM,KAAK,QAAQ,GAAG,EACnB,KAAK,UAAY,SAAS,KAAK,CAAC,EAChC,KAAK,MAAQ,CACZ,MAAM,KAAO,SAAS,cAAc,KAAK,EACzC,KAAK,UAAY,KACjB,MAAM,gBAAkB,KAAK,cAAc,kCAAkC,EAE7E,GAAI,iBAAmB,gBAAgB,UAAU,KAAK,EAAE,OAAQ,CAC9D,GAAI,KAAK,UAAU,SAAS,sBAAsB,EAAG,OACrD,QAAQ,IAAI,cAAe,eAAe,EAC1C,KAAK,UAAY,gBAAgB,SACnC,CAEI,KAAK,cAAc,aAAa,GAClC,KAAK,UAAU,IAAI,iCAAiC,CAExD,CAAC,EACA,MAAM,GAAK,CACV,QAAQ,MAAM,CAAC,CACjB,CAAC,EACL,EAEA,IAAI,qBAAqB,mBAAmB,KAAK,IAAI,EAAG,CAAC,WAAY,mBAAmB,CAAC,EAAE,QAAQ,IAAI,CACzG,CACF,CAEA,eAAe,OAAO,0BAA2B,sBAAsB,CAEvE,OAAQ,EAAG,CAAE,QAAQ,MAAM,CAAC,CAAG,CACjC,GAAG,CACH,GAAG",
  "names": ["observer"]
}
