function focusVisiblePolyfill(){const navKeys=["Tab","ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Enter","Space","Escape","Home","End","PageUp","PageDown"];let currentFocusedElement=null,mouseClick=null;window.addEventListener("keydown",evt=>{navKeys.includes(evt.code)&&(mouseClick=!1)}),window.addEventListener("mousedown",()=>{mouseClick=!0}),window.addEventListener("focus",()=>{currentFocusedElement&¤tFocusedElement.classList.remove("is-focused"),!mouseClick&&(currentFocusedElement=document.activeElement,currentFocusedElement.classList.add("is-focused"))},!0)}try{document.querySelector(":focus-visible")}catch{focusVisiblePolyfill()}(()=>{const{mediaQueries}=theme;if(!mediaQueries)return;const mqKeys=Object.keys(mediaQueries),mqLists={};theme.mediaMatches={};const handleMqChange=()=>{const newMatches=mqKeys.reduce((acc,media)=>(acc[media]=!!(mqLists[media]&&mqLists[media].matches),acc),{});Object.keys(newMatches).forEach(key=>{theme.mediaMatches[key]=newMatches[key]}),window.dispatchEvent(new CustomEvent("on:breakpoint-change"))};mqKeys.forEach(mq=>{mqLists[mq]=window.matchMedia(mediaQueries[mq]),theme.mediaMatches[mq]=mqLists[mq].matches;try{mqLists[mq].addEventListener("change",handleMqChange)}catch{mqLists[mq].addListener(handleMqChange)}})})();function debounce(fn,wait=300){let t;return(...args)=>{clearTimeout(t),t=setTimeout(()=>fn.apply(this,args),wait)}}function setViewportHeight(){document.documentElement.style.setProperty("--viewport-height",`${window.innerHeight}px`)}function setHeaderHeight(){const header=document.getElementById("shopify-section-header");if(!header)return;let height=header.offsetHeight;const announcement=document.getElementById("shopify-section-announcement");announcement&&(height+=announcement.offsetHeight),document.documentElement.style.setProperty("--header-height",`${height}px`)}function setScrollbarWidth(){document.documentElement.style.setProperty("--scrollbar-width",`${window.innerWidth-document.documentElement.clientWidth}px`)}function setDimensionVariables(){setViewportHeight(),setHeaderHeight(),setScrollbarWidth()}setDimensionVariables(),window.addEventListener("resize",debounce(setDimensionVariables,50));function setImageSources(img){const setImageAttr=el=>{el.dataset.src&&!el.src&&(el.src=el.dataset.src),el.dataset.srcset&&!el.srcset&&(el.srcset=el.dataset.srcset)};img.parentNode.tagName==="PICTURE"?Array.from(img.parentNode.children).forEach(el=>{setImageAttr(el)}):setImageAttr(img)}function initLazyImages(){if(!("loading"in HTMLImageElement.prototype)&&"IntersectionObserver"in window){const io=new IntersectionObserver((entries,observer)=>{entries.forEach(entry=>{if(entry.isIntersecting){const img=entry.target;setImageSources(img),observer.unobserve(img)}})},{rootMargin:"0px 0px 500px 0px"});document.querySelectorAll('[loading="lazy"]').forEach(img=>{io.observe(img)})}else document.querySelectorAll('[loading="lazy"]').forEach(img=>{setImageSources(img)})}function initLazyScript(element,callback,threshold=500){"IntersectionObserver"in window?new IntersectionObserver((entries,observer)=>{entries.forEach(entry=>{entry.isIntersecting&&typeof callback=="function"&&(callback(),observer.unobserve(entry.target))})},{rootMargin:`0px 0px ${threshold}px 0px`}).observe(element):callback()}function pauseAllMedia(el=document){el.querySelectorAll(".js-youtube, .js-vimeo, video").forEach(video=>{const component=video.closest("video-component");component&&component.dataset.background==="true"||(video.matches(".js-youtube")?video.contentWindow.postMessage('{ "event": "command", "func": "pauseVideo", "args": "" }',"*"):video.matches(".js-vimeo")?video.contentWindow.postMessage('{ "method": "pause" }',"*"):video.pause())}),el.querySelectorAll("product-model").forEach(model=>{model.modelViewerUI&&model.modelViewerUI.pause()})}class DeferredMedia extends HTMLElement{constructor(){super();const loadBtn=this.querySelector(".js-load-media");loadBtn&&loadBtn.addEventListener("click",this.loadContent.bind(this))}loadContent(focus=!0){if(pauseAllMedia(),this.getAttribute("loaded")!==null)return;const content=this.querySelector("template").content.firstElementChild.cloneNode(!0);this.appendChild(content),this.setAttribute("loaded","");const deferredEl=this.querySelector("video, model-viewer, iframe");deferredEl&&focus&&deferredEl.focus()}}customElements.define("deferred-media",DeferredMedia);class DetailsDisclosure extends HTMLElement{constructor(){super(),this.disclosure=this.querySelector("details"),this.toggle=this.querySelector("summary"),this.panel=this.toggle.nextElementSibling,this.init()}init(){const styles=window.getComputedStyle(this.panel);this.hasTransition=styles.transition!=="all 0s ease 0s",this.hasTransition&&(this.toggle.addEventListener("click",this.handleToggle.bind(this)),this.disclosure.addEventListener("transitionend",this.handleTransitionEnd.bind(this)))}handleToggle(evt){evt.preventDefault(),this.disclosure.open?this.close():this.open()}handleTransitionEnd(evt){evt.target===this.panel&&(this.disclosure.classList.contains("is-closing")&&(this.disclosure.classList.remove("is-closing"),this.disclosure.open=!1),this.panel.removeAttribute("style"))}addContentHeight(){this.panel.style.height=`${this.panel.scrollHeight}px`}open(){this.panel.style.height="0",this.disclosure.open=!0,this.addContentHeight()}close(){this.addContentHeight(),this.disclosure.classList.add("is-closing"),setTimeout(()=>{this.panel.style.height="0"})}}customElements.define("details-disclosure",DetailsDisclosure);const trapFocusHandlers={};function removeTrapFocus(elementToFocus=null){document.removeEventListener("focusin",trapFocusHandlers.focusin),document.removeEventListener("focusout",trapFocusHandlers.focusout),document.removeEventListener("keydown",trapFocusHandlers.keydown),elementToFocus&&elementToFocus.focus()}function trapFocus(container,elementToFocus=container){const focusableEls=Array.from(container.querySelectorAll('summary, a[href], area[href], button:not([disabled]), input:not([type=hidden]):not([disabled]), select:not([disabled]), textarea:not([disabled]), object, iframe, audio[controls], video[controls], [tabindex]:not([tabindex^="-"])')),firstEl=focusableEls[0],lastEl=focusableEls[focusableEls.length-1];removeTrapFocus(),trapFocusHandlers.focusin=evt=>{evt.target!==container&&evt.target!==lastEl&&evt.target!==firstEl||document.addEventListener("keydown",trapFocusHandlers.keydown)},trapFocusHandlers.focusout=()=>{document.removeEventListener("keydown",trapFocusHandlers.keydown)},trapFocusHandlers.keydown=evt=>{evt.code==="Tab"&&(evt.target===lastEl&&!evt.shiftKey&&(evt.preventDefault(),firstEl.focus()),(evt.target===container||evt.target===firstEl)&&evt.shiftKey&&(evt.preventDefault(),lastEl.focus()))},document.addEventListener("focusout",trapFocusHandlers.focusout),document.addEventListener("focusin",trapFocusHandlers.focusin),(elementToFocus||container).focus()}class Modal extends HTMLElement{constructor(){super(),this.addEventListener("click",this.handleClick.bind(this))}handleClick(evt){evt.target!==this&&!evt.target.matches(".js-close-modal")||this.close()}open(opener){this.scrollY=window.scrollY,document.body.classList.add("fixed"),document.body.style.top=`-${this.scrollY}px`,this.setAttribute("open",""),this.openedBy=opener,trapFocus(this),window.pauseAllMedia(),this.keyupHandler=evt=>evt.key==="Escape"&&this.close(),this.addEventListener("keyup",this.keyupHandler)}close(){document.body.style.top="",document.body.classList.remove("fixed"),window.scrollTo(0,this.scrollY),this.removeAttribute("open"),removeTrapFocus(this.openedBy),window.pauseAllMedia(),this.removeEventListener("keyup",this.keyupHandler)}}customElements.define("modal-dialog",Modal);class ModalOpener extends HTMLElement{constructor(){super();const button=this.querySelector("button");button&&button.addEventListener("click",()=>{const modal=document.getElementById(this.dataset.modal);modal&&modal.open(button)})}}customElements.define("modal-opener",ModalOpener);class ProductCard extends HTMLElement{constructor(){super(),window.initLazyScript(this,this.init.bind(this))}init(){this.images=this.querySelectorAll(".card__main-image"),this.links=this.querySelectorAll(".js-prod-link"),this.quickAddBtn=this.querySelector(".js-quick-add"),this.quickAddBtn?this.productUrl=this.quickAddBtn.dataset.productUrl:this.links.length&&(this.productUrl=this.links[0].href),this.addEventListener("change",this.handleSwatchChange.bind(this))}handleSwatchChange(evt){if(!evt.target.matches(".opt-btn"))return;if(evt.target.dataset.mediaId){const variantMedia=this.querySelector(`[data-media-id="${evt.target.dataset.mediaId}"]`);variantMedia&&(this.images.forEach(image=>{image.hidden=!0}),variantMedia.hidden=!1)}const separator=this.productUrl.split("?").length>1?"&":"?",url=`${this.productUrl+separator}variant=${evt.target.dataset.variantId}`;this.links.forEach(link=>{link.href=url}),this.quickAddBtn&&(this.quickAddBtn.dataset.selectedColor=evt.target.value)}}customElements.define("product-card",ProductCard);class QuantityInput extends HTMLElement{constructor(){super(),this.input=this.querySelector(".qty-input__input"),this.currentQty=this.input.value,this.changeEvent=new Event("change",{bubbles:!0}),this.addEventListener("click",this.handleClick.bind(this)),this.input.addEventListener("keydown",this.handleKeydown.bind(this))}handleClick(evt){evt.target.matches(".qty-input__btn")&&(evt.preventDefault(),evt.target.name==="plus"?this.input.stepUp():this.input.stepDown(),this.input.value!==this.currentQty&&(this.input.dispatchEvent(this.changeEvent),this.currentQty=this.input.value))}handleKeydown(evt){evt.key==="Enter"&&(evt.preventDefault(),this.input.value!==this.currentQty&&(this.input.blur(),this.input.focus(),this.currentQty=this.input.value))}}customElements.define("quantity-input",QuantityInput);class SideDrawer extends HTMLElement{constructor(){super(),this.overlay=document.querySelector(".js-overlay")}handleClick(evt){(evt.target.matches(".js-close-drawer")||evt.target===this.overlay)&&this.close()}open(opener,elementToFocus,callback){this.dispatchEvent(new CustomEvent(`on:${this.dataset.name}:before-open`,{bubbles:!0})),this.scrollY=window.scrollY,document.body.classList.add("fixed"),document.body.style.top=`-${this.scrollY}px`,document.documentElement.style.height="100vh",this.overlay.classList.add("is-visible"),this.setAttribute("open",""),this.setAttribute("aria-hidden","false"),this.opener=opener,trapFocus(this,elementToFocus),this.clickHandler=this.clickHandler||this.handleClick.bind(this),this.keyupHandler=evt=>{evt.key!=="Escape"||evt.target.closest(".cart-drawer-popup")||this.close()},this.addEventListener("click",this.clickHandler),this.addEventListener("keyup",this.keyupHandler),this.overlay.addEventListener("click",this.clickHandler);const transitionDuration=parseFloat(getComputedStyle(this).getPropertyValue("--longest-transition-in-ms"));setTimeout(()=>{callback&&callback(),this.dispatchEvent(new CustomEvent(`on:${this.dataset.name}:after-open`,{bubbles:!0}))},transitionDuration)}close(callback){this.dispatchEvent(new CustomEvent(`on:${this.dataset.name}:before-close`,{bubbles:!0})),this.removeAttribute("open"),this.setAttribute("aria-hidden","true"),this.overlay.classList.remove("is-visible"),removeTrapFocus(this.opener),document.documentElement.style.height="",document.body.style.top="",document.body.classList.remove("fixed"),window.scrollTo(0,this.scrollY),this.removeEventListener("click",this.clickHandler),this.removeEventListener("keyup",this.keyupHandler),this.overlay.removeEventListener("click",this.clickHandler);const transitionDuration=parseFloat(getComputedStyle(this).getPropertyValue("--longest-transition-in-ms"));setTimeout(()=>{callback&&callback(),this.dispatchEvent(new CustomEvent(`on:${this.dataset.name}:after-close`,{bubbles:!0}))},transitionDuration)}}customElements.define("side-drawer",SideDrawer),window.addEventListener("resize",debounce(()=>{window.dispatchEvent(new CustomEvent("on:debounced-resize"))})),document.addEventListener("DOMContentLoaded",()=>{const parentElems=document.querySelectorAll("[data-css-var-height]");if(parentElems){const updateHeight=elem=>{elem.closest("[data-css-var-height]").style.setProperty("--element-height",`${elem.clientHeight}px`)};let mutationObserver=null;"MutationObserver"in window&&(mutationObserver=new MutationObserver(debounce(mutationList=>{const elemToWatch=mutationList[0].target.closest("[data-css-var-height]");updateHeight(elemToWatch.querySelector(elemToWatch.dataset.cssVarHeight))}))),parentElems.forEach(parentElem=>{const elemToWatch=parentElem.querySelector(parentElem.dataset.cssVarHeight);elemToWatch?(mutationObserver&&mutationObserver.observe(elemToWatch,{childList:!0,attributes:!0,subtree:!0}),window.addEventListener("on:debounced-resize",()=>{updateHeight(elemToWatch)}),updateHeight(elemToWatch)):console.warn(`No child elements matching ${parentElem.dataset.cssVarHeight} could be found.`)})}}),theme.elementUtil={},theme.elementUtil.remove=elem=>{elem&&(typeof elem.remove=="function"?elem.remove():elem.forEach(thisElem=>{thisElem.remove()}))},theme.elementUtil.isInViewport=elem=>{const rect=elem.getBoundingClientRect();return Math.round(rect.top)>=0&&Math.round(rect.left)>=0&&Math.round(rect.bottom)<=(window.innerHeight||document.documentElement.clientHeight)&&Math.round(rect.right)<=(window.innerWidth||document.documentElement.clientWidth)},theme.storageUtil={},theme.storageUtil.set=(key,value,isSession)=>{isSession?sessionStorage.setItem(`cc-${key}`,typeof value=="object"?JSON.stringify(value):value):localStorage.setItem(`cc-${key}`,typeof value=="object"?JSON.stringify(value):value)},theme.storageUtil.get=(key,isJson,isSession)=>{let value=isSession?sessionStorage.getItem(`cc-${key}`):localStorage.getItem(`cc-${key}`);return isJson&&(value=JSON.parse(value)),value},theme.storageUtil.remove=(key,isSession)=>{isSession?sessionStorage.removeItem(key):localStorage.removeItem(key)};class StoreHeader extends HTMLElement{constructor(){super(),this.menu=this.querySelector(".main-menu__content"),this.searchToggle=this.querySelector(".js-show-search"),this.mobNavToggle=this.querySelector(".main-menu__toggle"),this.shakeyCartIcon=this.querySelector(".header__icon--cart-shake"),this.headerGroupSections=document.querySelectorAll(".shopify-section-group-header-group"),this.stickyInitialised=!1,this.stickyTransitioning=!1,this.lastScrollPos=0,this.headerTransitionSpeed=parseFloat(getComputedStyle(this).getPropertyValue("--header-transition-speed")),window.setHeaderHeight(),this.bindEvents(),this.init()}disconnectedCallback(){window.removeEventListener("on:debounced-resize",this.resizeHandler),this.breakpointChangeHandler&&window.removeEventListener("on:breakpoint-change",this.breakpointChangeHandler)}bindEvents(){this.resizeHandler=this.resizeHandler||this.updateHeaderHeights.bind(this),window.addEventListener("on:debounced-resize",this.resizeHandler),this.mobNavToggle.addEventListener("click",window.setHeaderHeight),this.mobNavToggle.addEventListener("click",this.setHeaderEnd.bind(this)),this.dataset.isSticky&&(this.breakpointChangeHandler=this.breakpointChangeHandler||this.init.bind(this),window.addEventListener("on:breakpoint-change",this.breakpointChangeHandler)),this.dataset.isSearchMinimised&&this.searchToggle.addEventListener("click",this.handleSearchToggleClick.bind(this))}init(){if(this.updateHeaderHeights(),this.dataset.isSticky&&(theme.mediaMatches.md&&!this.stickyInitialised&&(this.stickyInitialised=!0,window.addEventListener("scroll",this.handleScroll.bind(this))),setTimeout(()=>{document.querySelector(".cc-header").classList.add("cc-header--sticky")}),this.setMenuHeight(),this.setHeaderEnd()),this.shakeyCartIcon){let pageCount=theme.storageUtil.get("shake-page-count",!1,!0);pageCount=pageCount?parseInt(pageCount,10)+1:1;const shakeFrequency=parseInt(this.shakeyCartIcon.dataset.shakeFrequency,10);pageCount{this.classList.add("search-is-visible"),searchBar.querySelector(".js-search-input").focus(),window.setHeaderHeight()},this.headerTransitionSpeed)):(this.classList.remove("search-is-visible"),setTimeout(()=>{this.classList.add("search-is-collapsed")}),setTimeout(window.setHeaderHeight,this.headerTransitionSpeed))}updateHeaderHeights(){if(theme.mediaMatches.md?(this.setMenuHeight(),setTimeout(window.setHeaderHeight,this.headerTransitionSpeed)):window.setHeaderHeight(),this.headerGroupSections&&this.headerGroupSections.length>0){let headerGroupHeight=0;this.headerGroupSections.forEach(section=>{headerGroupHeight+=section.getBoundingClientRect().height}),headerGroupHeight>0&&document.documentElement.style.setProperty("--content-start",`${headerGroupHeight.toFixed(1)}px`)}}setMenuHeight(){this.menu&&this.menu.clientHeight&&(this.style.setProperty("--menu-height",`${this.menu.clientHeight+16}px`),document.documentElement.style.setProperty("--header-height",`${this.clientHeight}px`))}handleScroll(){!document.body.classList.contains("fixed")&&!this.stickyTransitioning&&(document.documentElement.scrollTop<200?this.show():this.lastScrollPosdocument.documentElement.scrollTop&&this.show(),this.lastScrollPos=document.documentElement.scrollTop)}setHeaderEnd(){const headerEnd=Number(this.getBoundingClientRect().top+this.clientHeight);document.documentElement.style.setProperty("--header-end",`${headerEnd.toFixed(1)}px`),document.documentElement.style.setProperty("--header-end-padded",`${(headerEnd+(theme.mediaMatches.md?56:20)).toFixed(1)}px`)}show(){this.classList.remove("is-out"),this.stickyTransitioning=!0,setTimeout(()=>{this.lastScrollPos=document.documentElement.scrollTop,this.stickyTransitioning=!1,this.handleScroll(),this.setHeaderEnd()},300)}hide(){this.stickyTransitioning||(this.classList.add("is-out"),this.stickyTransitioning=!0,setTimeout(()=>{this.lastScrollPos=document.documentElement.scrollTop,this.stickyTransitioning=!1,this.handleScroll(),this.setHeaderEnd()},300))}}customElements.define("store-header",StoreHeader);class MainMenu extends HTMLElement{constructor(){super(),this.mainDisclosure=this.querySelector(".main-menu__disclosure"),this.mainToggle=this.querySelector(".main-menu__toggle"),this.firstLevelMenuLinks=this.querySelectorAll(".js-nav-hover"),this.firstLevelSingleLinks=this.querySelectorAll(".main-nav__item--primary:not(.main-nav__item-content)"),this.nav=this.querySelector(".main-nav"),this.overlay=document.querySelector(".js-overlay"),this.searchIcon=document.querySelector(".header__icons .js-show-search"),this.sidebarLinks=this.querySelectorAll(".js-sidebar-hover"),this.elementsWhichCloseMenus=document.querySelectorAll(".js-closes-menu"),this.childNavOpen=!1,this.overlayOpen=!1,this.addListeners(),this.init()}disconnectedCallback(){window.removeEventListener("focusin",this.focusOutHandler),window.removeEventListener("on:breakpoint-change",this.breakpointChangeHandler),Shopify.designMode&&(document.removeEventListener("shopify:block:select",this.blockSelectHandler),document.removeEventListener("shopify:block:deselect",this.blockDeselectHandler))}addListeners(){this.focusOutHandler=this.focusOutHandler||this.handleFocusOut.bind(this),this.breakpointChangeHandler=this.breakpointChangeHandler||this.init.bind(this),this.mainDisclosure.addEventListener("transitionend",MainMenu.handleTransition.bind(this)),this.mainToggle.addEventListener("click",this.handleMainMenuToggle.bind(this)),this.nav.addEventListener("click",MainMenu.handleNavClick.bind(this)),window.addEventListener("focusin",this.focusOutHandler),window.addEventListener("on:breakpoint-change",this.breakpointChangeHandler),Shopify.designMode&&(this.blockSelectHandler=this.blockSelectHandler||this.handleBlockSelect.bind(this),this.blockDeselectHandler=this.blockDeselectHandler||this.handleBlockDeselect.bind(this),document.addEventListener("shopify:block:select",this.blockSelectHandler),document.addEventListener("shopify:block:deselect",this.blockDeselectHandler)),!theme.mediaMatches.md&&this.searchIcon&&this.searchIcon.addEventListener("click",this.closeMainDisclosure.bind(this))}init(evt){if(!evt)this.mainDisclosure.open=theme.mediaMatches.md;else if(!theme.mediaMatches.md&&!this.childNavOpen)this.close(this.mainDisclosure),this.overlayOpen&&this.toggleOverlay(!1);else{const activeDisclosure=this.nav.querySelector("details.is-open");activeDisclosure?this.close(activeDisclosure):MainMenu.open(this.mainDisclosure,!1),this.childNavOpen||this.overlayOpen&&this.toggleOverlay(!1)}this.querySelectorAll(".child-nav--dropdown details[open]").forEach(childToggle=>{childToggle.removeAttribute("open")}),theme.device.hasHover&&(this.mouseEnterMenuLinkHandler=this.mouseEnterMenuLinkHandler||this.handleMouseEnterMenuLink.bind(this),this.mouseLeaveMenuLinkHandler=this.mouseLeaveMenuLinkHandler||this.handleMouseLeaveMenuLink.bind(this),this.mouseEnterSingleLinkHandler=this.mouseEnterSingleLinkHandler||this.handleMouseEnterSingleLink.bind(this),this.mouseLeaveSingleLinkHandler=this.mouseLeaveSingleLinkHandler||this.handleMouseLeaveSingleLink.bind(this),this.mouseEnterMenuCloserHandler=this.mouseEnterMenuCloserHandler||this.handleClose.bind(this),!this.mouseOverListening&&theme.mediaMatches.md?(this.firstLevelMenuLinks.forEach(menuLink=>{menuLink.addEventListener("mouseenter",this.mouseEnterMenuLinkHandler),menuLink.addEventListener("mouseleave",this.mouseLeaveMenuLinkHandler)}),this.firstLevelSingleLinks.forEach(singleLink=>{singleLink.addEventListener("mouseenter",this.mouseEnterSingleLinkHandler),singleLink.addEventListener("mouseleave",this.mouseLeaveSingleLinkHandler)}),this.elementsWhichCloseMenus.forEach(elem=>{elem.addEventListener("mouseenter",this.mouseEnterMenuCloserHandler)}),this.mouseOverListening=!0):this.mouseOverListening&&!theme.mediaMatches.md&&(this.firstLevelMenuLinks.forEach(menuLink=>{menuLink.removeEventListener("mouseenter",this.mouseEnterMenuLinkHandler),menuLink.removeEventListener("mouseleave",this.mouseLeaveMenuLinkHandler)}),this.firstLevelSingleLinks.forEach(singleLink=>{singleLink.removeEventListener("mouseenter",this.mouseEnterSingleLinkHandler),singleLink.removeEventListener("mouseleave",this.mouseLeaveSingleLinkHandler)}),this.elementsWhichCloseMenus.forEach(elem=>{elem.removeEventListener("mouseenter",this.mouseEnterMenuCloserHandler)}),this.mouseOverListening=!1),this.sidebarLinks&&(!this.mouseOverSidebarListening&&theme.mediaMatches.md?(this.sidebarLinks.forEach(sidebarLink=>{sidebarLink.addEventListener("mouseenter",MainMenu.handleSidenavMenuToggle)}),this.mouseOverSidebarListening=!0):this.mouseOverSidebarListening&&!theme.mediaMatches.md&&(this.sidebarLinks.forEach(sidebarLink=>{sidebarLink.removeEventListener("mouseenter",MainMenu.handleSidenavMenuToggle)}),this.mouseOverSidebarListening=!1)))}handleFocusOut(evt){!this.contains(evt.target)&&this.overlayOpen&&this.handleClose()}static handleSidenavMenuToggle(evt,summaryElem=evt.target){const container=summaryElem.closest(".child-nav"),lastSidenavElem=container.querySelector(".is-visible");lastSidenavElem&&lastSidenavElem.classList.remove("is-visible"),summaryElem.classList.add("is-visible");const menu=summaryElem.closest("nav-menu");if(menu){const openDisclosure=menu.querySelector(".disclosure__panel");openDisclosure&&container.style.setProperty("--sidebar-height",`${Number.parseInt(openDisclosure.getBoundingClientRect().height,10)}px`)}}handleMainMenuToggle(evt){evt.preventDefault(),this.opener=this.mainToggle,this.mainDisclosure.open?this.close(this.mainDisclosure,!0):MainMenu.open(this.mainDisclosure)}handleMouseEnterMenuLink(evt){this.menuLinkTimeout=setTimeout(this.openMenuFromMouseEnter.bind(this,evt.target),Number.parseInt(this.dataset.menuSensitivity,10))}handleMouseLeaveMenuLink(){this.menuLinkTimeout&&clearTimeout(this.menuLinkTimeout)}handleMouseEnterSingleLink(){this.singleLinkTimeout=setTimeout(()=>{this.handleClose()},Number.parseInt(this.dataset.menuSensitivity,10))}handleMouseLeaveSingleLink(){this.singleLinkTimeout&&clearTimeout(this.singleLinkTimeout)}openMenuFromMouseEnter(menuElem){trapFocus(menuElem);const disclosure=menuElem.closest("details");if(!disclosure.classList.contains("is-open")){const activeDisclosure=this.nav.querySelector("details.is-open");activeDisclosure&&activeDisclosure!==disclosure?this.close(activeDisclosure):this.toggleOverlay(!this.overlayOpen),MainMenu.open(disclosure)}}static handleNavClick(evt){const mainMenuContent=evt.target.closest(".main-menu__content");let el=evt.target;if(theme.mediaMatches.md&&el.matches(".js-sidebar-hover")&&(evt.preventDefault(),MainMenu.handleSidenavMenuToggle(evt)),evt.target.href&&evt.target.href.endsWith("#")&&evt.preventDefault(),theme.mediaMatches.md&&!theme.device.hasHover&&(el=evt.target.closest(".js-toggle"),!el)||!el.matches(".js-toggle,.js-back"))return;const disclosure=el.closest("details");if(theme.mediaMatches.md&&theme.device.hasHover){disclosure.classList.toggle("is-open");return}if(this.opener=el,el.matches(".js-toggle"))if(evt.preventDefault(),theme.mediaMatches.md||mainMenuContent.classList.add("main-menu__content--no-focus"),disclosure.classList.contains("is-open"))this.close(disclosure,!0),this.childNavOpen=!1,this.toggleOverlay(!1);else{this.childNavOpen=!0;const activeDisclosure=this.nav.querySelector("details.is-open");activeDisclosure&&activeDisclosure!==disclosure?this.close(activeDisclosure):theme.mediaMatches.md&&this.toggleOverlay(!this.overlayOpen),MainMenu.open(disclosure)}else el.matches(".js-back")&&(evt.preventDefault(),this.close(disclosure,!0),this.childNavOpen=!1,theme.mediaMatches.md||mainMenuContent.classList.remove("main-menu__content--no-focus"))}static handleTransition(evt){const disclosure=evt.target.closest("details");disclosure.classList.contains("is-closing")&&(disclosure.classList.remove("is-closing"),disclosure.open=!1,removeTrapFocus(),this.opener=null)}handleClose(evt){if(evt&&evt.type==="keyup"&&evt.key!=="Escape")return;const disclosure=theme.mediaMatches.md?this.nav.querySelector("details.is-open"):this.mainDisclosure;disclosure&&(this.close(disclosure,!0),this.toggleOverlay(!1),this.childNavOpen=!1)}toggleOverlay(show){this.overlayOpen=show,this.overlay.classList.toggle("overlay--nav",show),this.overlay.classList.toggle("is-visible",show),show?(this.closeHandler=this.closeHandler||this.handleClose.bind(this),this.overlay.addEventListener("click",this.closeHandler),this.nav.addEventListener("keyup",this.closeHandler),theme.mediaMatches.md&&this.overlay.addEventListener("mouseenter",this.closeHandler)):(this.overlay.removeEventListener("click",this.closeHandler),this.nav.removeEventListener("keyup",this.closeHandler),theme.mediaMatches.md&&this.overlay.removeEventListener("mouseenter",this.closeHandler))}closeMainDisclosure(){this.mainDisclosure.classList.contains("is-open")&&(this.close(this.mainDisclosure,!0),this.toggleOverlay(!1),this.childNavOpen=!1)}static open(el,mainMenuOpen=!0){if(el.open=!0,theme.mediaMatches.md&&!el.classList.contains("js-mega-nav")){const dropdownContainer=el.querySelector(".main-nav__child");dropdownContainer.getBoundingClientRect().right>window.innerWidth&&dropdownContainer.classList.add("main-nav__child--offset-right");const dropdown=el.querySelector(".child-nav--dropdown");dropdown&&dropdown.querySelectorAll(".main-nav__grandchild").forEach(grandchildElem=>{grandchildElem.style.maxWidth=`${dropdown.clientWidth}px`})}else if(theme.mediaMatches.md&&el.querySelector(".mega-nav--sidebar")){const firstSummaryElem=el.querySelector(".mega-nav--sidebar details[open] summary");firstSummaryElem&&MainMenu.handleSidenavMenuToggle(null,firstSummaryElem)}setTimeout(()=>{el.classList.remove("is-closing"),el.classList.add("is-open")}),mainMenuOpen&&(removeTrapFocus(),trapFocus(el),(theme.mediaMatches.md||el.classList.contains("main-menu__disclosure"))&&document.body.classList.add("overflow-hidden"))}close(el,transition=!0){el.classList.remove("is-open"),transition?el.classList.add("is-closing"):(el.classList.remove("is-closing"),el.open=!1,removeTrapFocus(this.opener),this.opener=null),setTimeout(()=>{const offsetMenu=el.querySelector(".main-nav__child--offset-right");offsetMenu&&offsetMenu.classList.remove("main-nav__child--offset-right")},200),(theme.mediaMatches.md||el.classList.contains("main-menu__disclosure"))&&document.body.classList.remove("overflow-hidden")}handleBlockSelect(evt){const activeDisclosure=this.nav.querySelector("details.is-open");activeDisclosure&&this.close(activeDisclosure,!1),evt.target.matches(".js-mega-nav")&&(MainMenu.open(evt.target,!1),this.toggleOverlay(!0))}handleBlockDeselect(evt){evt.target.matches(".js-mega-nav")&&(this.close(evt.target,!1),this.toggleOverlay(!1))}}customElements.define("main-menu",MainMenu);class CarouselSlider extends HTMLElement{constructor(){super(),this.slides=this.querySelectorAll(".slider__item"),!(this.slides.length<2)&&window.initLazyScript(this,this.init.bind(this))}disconnectedCallback(){window.removeEventListener("on:breakpoint-change",this.breakpointChangeHandler)}init(){this.slider=this.querySelector(".slider"),this.grid=this.querySelector(".slider__grid"),this.nav=this.querySelector(".slider-nav"),this.rtl=document.dir==="rtl",this.breakpointChangeHandler=this.breakpointChangeHandler||this.handleBreakpointChange.bind(this),this.nav&&(this.prevBtn=this.querySelector('button[name="prev"]'),this.nextBtn=this.querySelector('button[name="next"]')),this.initSlider(),window.addEventListener("on:breakpoint-change",this.breakpointChangeHandler)}initSlider(){this.gridWidth=this.grid.clientWidth,this.slideSpan=this.getWindowOffset(this.slides[1])-this.getWindowOffset(this.slides[0]),this.slideGap=this.slideSpan-this.slides[0].clientWidth,this.slidesPerPage=Math.round((this.gridWidth+this.slideGap)/this.slideSpan),this.slidesToScroll=theme.settings.sliderItemsPerNav==="page"?this.slidesPerPage:1,this.totalPages=this.slides.length-this.slidesPerPage+1,this.setCarouselState(this.totalPages>1),!(this.totalPages<2)&&(this.sliderStart=this.getWindowOffset(this.slider),this.sliderStart||(this.sliderStart=(this.slider.clientWidth-this.gridWidth)/2),this.sliderEnd=this.sliderStart+this.gridWidth,window.matchMedia("(pointer: fine)").matches&&this.slider.classList.add("is-grabbable"),this.addListeners(),this.setButtonStates())}addListeners(){this.nav&&(this.scrollHandler=debounce(this.handleScroll.bind(this)),this.navClickHandler=this.handleNavClick.bind(this),this.slider.addEventListener("scroll",this.scrollHandler),this.nav.addEventListener("click",this.navClickHandler)),window.matchMedia("(pointer: fine)").matches&&(this.mousedownHandler=this.handleMousedown.bind(this),this.mouseupHandler=this.handleMouseup.bind(this),this.mousemoveHandler=this.handleMousemove.bind(this),this.slider.addEventListener("mousedown",this.mousedownHandler),this.slider.addEventListener("mouseup",this.mouseupHandler),this.slider.addEventListener("mouseleave",this.mouseupHandler),this.slider.addEventListener("mousemove",this.mousemoveHandler))}removeListeners(){this.nav&&(this.slider.removeEventListener("scroll",this.scrollHandler),this.nav.removeEventListener("click",this.navClickHandler)),this.slider.removeEventListener("mousedown",this.mousedownHandler),this.slider.removeEventListener("mouseup",this.mouseupHandler),this.slider.removeEventListener("mouseleave",this.mouseupHandler),this.slider.removeEventListener("mousemove",this.mousemoveHandler)}handleScroll(){this.currentIndex=Math.round(this.slider.scrollLeft/this.slideSpan),this.setButtonStates()}handleMousedown(evt){this.mousedown=!0,this.startX=evt.pageX-this.sliderStart,this.scrollPos=this.slider.scrollLeft,this.slider.classList.add("is-grabbing")}handleMouseup(){this.mousedown=!1,this.slider.classList.remove("is-grabbing")}handleMousemove(evt){if(!this.mousedown)return;evt.preventDefault();const x=evt.pageX-this.sliderStart;this.slider.scrollLeft=this.scrollPos-(x-this.startX)*2}handleNavClick(evt){evt.target.matches(".slider-nav__btn")&&(evt.target.name==="next"&&!this.rtl||evt.target.name==="prev"&&this.rtl?this.scrollPos=this.slider.scrollLeft+this.slidesToScroll*this.slideSpan:this.scrollPos=this.slider.scrollLeft-this.slidesToScroll*this.slideSpan,this.slider.scrollTo({left:this.scrollPos,behavior:"smooth"}))}handleBreakpointChange(){this.removeListeners(),this.initSlider()}getWindowOffset(el){return this.rtl?window.innerWidth-el.getBoundingClientRect().right:el.getBoundingClientRect().left}getSlideVisibility(el){const slideStart=this.getWindowOffset(el),slideEnd=Math.floor(slideStart+this.slides[0].clientWidth);return slideStart>=this.sliderStart&&slideEnd<=this.sliderEnd}setCarouselState(active){active?(this.removeAttribute("inactive"),this.gridWidth!==this.grid.clientWidth&&this.handleBreakpointChange()):this.setAttribute("inactive","")}setButtonStates(){!this.prevBtn&&!this.nextBtn||(this.prevBtn.disabled=this.getSlideVisibility(this.slides[0])&&this.slider.scrollLeft===0,this.nextBtn.disabled=this.getSlideVisibility(this.slides[this.slides.length-1]))}}customElements.define("carousel-slider",CarouselSlider);class ProductRecommendations extends HTMLElement{constructor(){super(),window.initLazyScript(this,this.init.bind(this),500)}async init(){const{productId}=this.dataset;if(productId)try{const response=await fetch(`${this.dataset.url}&product_id=${productId}`);if(!response.ok)throw new Error(response.status);const tmpl=document.createElement("template");tmpl.innerHTML=await response.text();const el=tmpl.content.querySelector("product-recommendations");el&&el.hasChildNodes()&&(this.innerHTML=el.innerHTML),window.initLazyImages()}catch(error){console.log(error)}}}customElements.define("product-recommendations",ProductRecommendations),setTimeout(()=>{requestAnimationFrame(initLazyImages)},0),window.initLazyScript=initLazyScript,document.addEventListener("keydown",evt=>{evt.code==="Tab"&&document.body.classList.add("tab-used")}),document.addEventListener("DOMContentLoaded",()=>{setTimeout(()=>{document.body.classList.add("dom-loaded")},0),setTimeout(()=>{document.body.classList.add("dom-loaded-plus-6")},6e3),theme.settings.externalLinksNewTab&&document.addEventListener("click",evt=>{const link=evt.target.tagName==="A"?evt.target:evt.target.closest("a");link&&link.tagName==="A"&&window.location.hostname!==new URL(link.href).hostname&&(link.target="_blank")}),document.addEventListener("click",evt=>{evt.target.tagName==="A"&&window.location.hostname===new URL(evt.target.href).hostname&&evt.target.href.includes("#")&&(document.getElementsByTagName("html")[0].style.scrollBehavior="smooth",setTimeout(()=>{document.getElementsByTagName("html")[0].style.scrollBehavior=""},1e3))})}); //# sourceMappingURL=/cdn/shop/t/23/assets/main.js.map?v=8223729344283369241737435250