1function 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()}theme.fetchCache={MAX_CACHE_SIZE:20,cache:new Map,pending:new Map,async fetchAndCache(url){const text=await(await fetch(url)).text();if(this.cache.size>=this.MAX_CACHE_SIZE){const oldestKey=[...this.cache.entries()].sort((a,b)=>a[1].timestamp-b[1].timestamp)[0][0];this.cache.delete(oldestKey)}return this.cache.set(url,{text,timestamp:Date.now()}),this.pending.delete(url),text},fetch(url){if(this.cache.has(url))return Promise.resolve(this.cache.get(url).text);if(this.pending.has(url))return this.pending.get(url);const promise=this.fetchAndCache(url);return this.pending.set(url,promise),promise},preload(url){this.fetch(url).catch(()=>{this.cache.delete(url),this.pending.delete(url)})},clear(){this.cache.clear()}},(()=>{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 getHeaderBannerHeight(){const headerGroup=document.querySelector(".shopify-section-group-header-group");if(headerGroup){let height=0;return headerGroup.querySelectorAll(".shopify-section").forEach(section=>{section.classList.contains("cc-header")||(height+=section.offsetHeight)}),height}const announcement=document.querySelector(".cc-announcement");return announcement?announcement.offsetHeight:0}function getHeaderStackBottom(){const header=document.querySelector(".js-header-height");if(!header)return 110;let bottom=header.getBoundingClientRect().bottom;return document.querySelectorAll("#qab_container, #qab_background, #qab_bar, #hextomDiv").forEach(el=>{const rect=el.getBoundingClientRect();rect.height>0&&(bottom=Math.max(bottom,rect.bottom))}),document.querySelectorAll('body > [class*="announcement"], body > [id*="announcement"], body > [class*="Announcement"]').forEach(el=>{if(el.id==="qab_container"||el.id==="qab_background")return;const rect=el.getBoundingClientRect();if(rect.height<4)return;const position=getComputedStyle(el).position;(position==="fixed"||position==="sticky")&&rect.top<=1&&(bottom=Math.max(bottom,rect.bottom))}),Math.ceil(bottom)}function updateMenuDrawerPadding(){const topOffset=getHeaderStackBottom(),padding=topOffset+12;document.documentElement.style.setProperty("--menu-drawer-top-offset",`${topOffset}px`),document.documentElement.style.setProperty("--menu-drawer-border-top",`${padding}px`);const menuDrawer=document.getElementById("main-menu");menuDrawer&&(menuDrawer.style.borderTopWidth=`${padding}px`)}function updateMegaMenuTop(){const topPx=`${getHeaderStackBottom()}px`;document.documentElement.style.setProperty("--mega-menu-top",topPx),document.querySelectorAll(".dev-mega-menu-tier.tier-2").forEach(el=>{el.style.top=topPx}),updateMenuDrawerPadding()}function initMegaMenuTopSync(){if(updateMegaMenuTop(),window.addEventListener("scroll",debounce(updateMegaMenuTop,16),{passive:!0}),!("MutationObserver"in window)){[300,800,2e3,4e3].forEach(ms=>setTimeout(updateMegaMenuTop,ms));return}const observer=new MutationObserver(debounce(()=>{setHeaderHeight(),updateMegaMenuTop()},100));observer.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["style","class","hidden"]}),setTimeout(()=>
1observer.disconnect(),15e3),[300,800,2e3,4e3].forEach(ms=>setTimeout(updateMegaMenuTop,ms))}function setHeaderHeight(){const header=document.querySelector(".js-header-height");if(!header)return;const headerBarHeight=header.offsetHeight,bannerHeight=getHeaderBannerHeight();document.documentElement.style.setProperty("--header-bar-height",`${headerBarHeight}px`),document.documentElement.style.setProperty("--announcement-height",`${bannerHeight}px`),document.documentElement.style.setProperty("--header-height",`${headerBarHeight+bannerHeight}px`),updateMegaMenuTop()}function initHeaderHeightObserver(){if(!("ResizeObserver"in window))return;const observer=new ResizeObserver(debounce(()=>{setHeaderHeight()},100)),headerGroup=document.querySelector(".shopify-section-group-header-group");if(headerGroup){headerGroup.querySelectorAll(".shopify-section").forEach(section=>observer.observe(section));return}const header=document.querySelector(".js-header-height"),announcement=document.querySelector(".cc-announcement");header&&observer.observe(header),announcement&&observer.observe(announcement)}function setScrollbarWidth(){document.documentElement.style.setProperty("--scrollbar-width",`${window.innerWidth-document.documentElement.clientWidth}px`)}function setDimensionVariables(){setViewportHeight(),setHeaderHeight(),setScrollbarWidth()}document.addEventListener("DOMContentLoaded",()=>{setDimensionVariables(),initHeaderHeightObserver(),initMegaMenuTopSync()}),window.addEventListener("resize",debounce(setDimensionVariables,400)),setTimeout(setViewportHeight,3e3);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,excludeVideo=null){el.querySelectorAll(".js-youtube, .js-vimeo, video").forEach(video=>{if(video===excludeVideo)return;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=>{try{model.modelViewerUI&&model.modelViewerUI.pause()}catch{}})}class DeferredMedia extends HTMLElement{constructor(){super();const loadBtn=this.querySelector(".js-load-media");loadBtn?loadBtn.addEventListener("click",this.loadContent.bind(this)):this.addObserver()}addObserver(){if(!("IntersectionObserver"in window))return;const observer=new IntersectionObserver(entries=>{entries.forEach(entry=>{entry.isIntersecting&&(this.loadContent(!1,!1,"observer"),observer.unobserve(this))})},{rootMargin:"0px 0px 1000px 0px"});observer.observe(this)}loadContent(focus=!0,pause=!0,loadTrigger="click"){if(pause&&pauseAllMedia(),this.getAttribute("loaded")!==null)return;this.loadTrigger=loadTrigger;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.transitionsEnabled=null,this.groupContainer=this.dataset.groupContainer?this.closest(this.dataset.groupContainer):null,this.toggle.addEventListener("click",this.handleToggle.bind(this)),this.disclosure.addEventListener("transitionend",this.handleTransitionEnd.bind(this))}handleToggle(evt){this.transitionsEnabled===null&&this.checkTransitionsEnabled(),this.transitionsEnabled&&(evt.preventDefault(),this.disclosure.open?this.close():this.open())}checkTransitionsEnabled(){this.transitionsEnabled=window.getComputedStyle(this.panel).transitionDuration!=="0s"}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"),this.groupContainer&&(this.groupContainer.style.minHeight=null))}addContentHeight(){this.panel.style.height=`${this.panel.scrollHeight}px`}open(){if(this.groupContainer){this.groupContainer.style.minHeight=`${this.groupContainer.getBoundingClientRect().height}px`;
1const openDisclosure=this.groupContainer.querySelector("details-disclosure:has(.disclosure[open])");openDisclosure&&openDisclosure.close()}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),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)},window.addEventListener("resize",debounce(()=>{window.dispatchEvent(new CustomEvent("on:debounced-resize"))}));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^="-"])'));let firstEl=null,lastEl=null;const isVisible=el=>el.offsetParent&&getComputedStyle(el).visibility!=="hidden",setFirstLastEls=()=>{for(let i=0;i<focusableEls.length;i+=1)if(isVisible(focusableEls[i])){firstEl=focusableEls[i];break}for(let i=focusableEls.length-1;i>=0;i-=1)if(isVisible(focusableEls[i])){lastEl=focusableEls[i];break}};removeTrapFocus(),trapFocusHandlers.focusin=evt=>{setFirstLastEls(),!(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"&&(setFirstLastEls(),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.setAttribute("open",""),this.openedBy=opener,trapFocus(this),window.pauseAllMedia(),this.keyupHandler=evt=>evt.key==="Escape"&&this.close(),this.addEventListener("keyup",this.keyupHandler),this.querySelectorAll(":not(.scrollable-table) > table").forEach(table=>{const wrapper=document.createElement("div");wrapper.className="scrollable-table",table.parentNode.insertBefore(wrapper,table),wrapper.appendChild(table)})}close(){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.carouselSlider=this.querySelector("product-card-image-slider"),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&&!this.carouselSlider){const variantMedia=this.querySelector(`[data-media-id="${evt.target.dataset.mediaId}"]`);
1variantMedia&&(this.images.forEach(image=>{image.hidden=!0}),variantMedia.hidden=!1)}const url=new URL(this.productUrl,window.location.origin);url.searchParams.set("variant",evt.target.dataset.variantId),this.links.forEach(link=>{link.href=url.toString()}),this.quickAddBtn&&(this.quickAddBtn.dataset.selectedColor=evt.target.value)}}customElements.define("product-card",ProductCard);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)}catch(error){console.log(error)}}}customElements.define("product-recommendations",ProductRecommendations);class QuantityInput extends HTMLElement{constructor(){super(),this.input=this.querySelector(".qty-input__input"),this.currentQty=this.input.value,this.changeEvent=ne
1w Event("change",{bubbles:!0}),this.addEventListener("click",this.handleClick.bind(this)),this.input.addEventListener("focus",QuantityInput.handleFocus),this.input.addEventListener("keydown",this.handleKeydown.bind(this))}handleClick(evt){evt.target.matches(".qty-input__btn")&&(evt.preventDefault(),this.currentQty=this.input.value,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))}static handleFocus(evt){window.matchMedia("(pointer: fine)").matches&&evt.target.select()}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.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),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);class CarouselSlider extends HTMLElement{constructor(){if(super(),this.slides=[...this.querySelector(".slider__item").parentElement.querySelectorAll(":scope > .slider__item:not([hidden])")],this.slides.length<2){this.setCarouselState(!1);return}window.initLazyScript(this,this.init.bind(this))}init(){this.slider=this.querySelector(".slider"),this.grid=this.querySelector(".slider__grid"),this.nav=this.querySelector(`.slider-nav__btn[aria-controls='${this.slider.id}']`)?.closest(".slider-nav"),this.rtl=document.dir==="rtl",this.nav&&(this.prevBtn=this.nav.querySelector('button[name="prev"]'),this.nextBtn=this.nav.querySelector('button[name="next"]')),this.initSlider(),window.addEventListener("on:debounced-resize",this.handleResize.bind(this)),this.setAttribute("loaded","")}initSlider(){if(this.gridWidth=this.grid.clientWidth,this.slideSpan=this.getWindowOffset(this.slides[1])-this.getWindowOffset(this.slides[0]),this.currentIndex=Math.round(this.slider.scrollLeft/this.slideSpan)||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.dataset.dynamicHeight==="true"&&this.updateDynamicHeight(),this.addListeners(),this.sliderStart=this.getWindowOffset(this.slider),this.sliderStart||(this.sliderStart=(this.slider.clientWidth-this.gridWidth)/2),this.sliderEnd=this.sliderStart+this.gridWidth,!(this.totalPages<2)){if(!this.dataset.keepAnimations&&this.grid.querySelector("[data-cc-animate]"))for(let i=this.slidesPerPage;i<this.slides.length;i+=1)this.slides[i].dataset.ccAnimate&&(this.slides[i].removeAttribute("data-cc-animate-delay"),this.slides[i].classList.add("cc-animate-in")),this.slides[i].querySelectorAll("[data-cc-animate]").forEach(el=>{el.removeAttribute("data-cc-animate-delay"),el.classList.add("cc-animate-in")});window.matchMedia("(pointer: fine)").matches&&this.slider.classList.add("is-grabbable"),this.nav&&this.setButtonStates()}}refresh(){if(this.hasAttribute("loaded")&&(this.removeListeners(),this.style.removeProperty("--current-slide-height")),this.slides=[...this.querySelector(".slider__item").parentElement.querySelectorAll(":scope > .slider__item:not([hidden])")],this.slides.length<2){this.setCarouselState(!1);return}this.init()}addListeners(){this.scrollHandler=debounce(this.handleScroll.bind(this),100),this.slider.addEventListener("scroll",this.scrollHandler),this.nav&&(this.navClickHandler=this.handleNavClick.bind(this),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),this.slider.addEventListener("dragstart",evt=>{evt.preventDefault()}))}removeListeners(){this.slider.removeEventListener("scroll",this.scrollHandler),this.nav&&this.nav.removeEventListener("click",this.navClickHandler),window.matchMedia("(pointer: fine)").matches&&(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.gridWidth!==this.grid.clientWidth&&this.handleResize();const previousIndex=this.currentIndex;this.currentIndex=Math.round(Math.abs(this.slider.scrollLeft)/this.slideSpan),this.nav&&this.setButtonStates(),this.dataset.dynamicHeight==="true"&&this.updateDynamicHeight(),this.dataset.dispatchEvents==="true"&&previousIndex!==this.currentIndex&&this.dispatchEvent(new CustomEvent("on:carousel-slider:select",{bubbles:!0,detail:{index:this.currentIndex,slide:this.slides[this.currentIndex]}}))}handleMousedown(evt){this.mousedown=!0,this.mousemoved=!1,this.startX=evt.pageX-this.sliderStart,this.scrollPos=this.slider.scrollLeft,this.slider.classList.add("is-grabbing")}handleMouseup(evt){this.mousedown=!1,this.slider.classList.remove("is-grabbing"),this.mousemoved&&(evt.preventDefault(),this.slider.classList.remove("is-dragging"))}handleMousemove(evt){if(!this.mousedown)return;evt.preventDefault();const x=evt.pageX-this.sliderStart;this.slider.scrollTo({left:this.scrollPos-(x-this.startX),behavior:"instant"}),Math.abs(x-this.startX)>10&&(this.mousemoved=!0,this.slider.classList.add("is-dragging"))}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"}))}handleResize(){this.nav&&this.removeListeners(),this.initSlider()}
1scrollToElement(el,transition){this.getSlideVisibility(el)||(this.scrollPos=el.offsetLeft,this.slider.scrollTo({left:this.scrollPos,behavior:transition||"smooth"}))}updateDynamicHeight(){this.style.setProperty("--current-slide-height",`${this.slides[this.currentIndex].firstElementChild.clientHeight}px`)}getWindowOffset(el){return this.rtl?window.innerWidth-el.getBoundingClientRect().right:el.getBoundingClientRect().left}getSlideVisibility(el){this.sliderStart=this.getWindowOffset(this.slider);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.handleResize()):this.setAttribute("inactive","")}setButtonStates(){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 PageHeader extends HTMLElement{connectedCallback(){this.announcement=document.querySelector(".announcement"),this.header=this.querySelector(".header"),this.inlineNavContainer=this.querySelector(".multi-level-nav"),this.inlineNavContainer&&(this.inlineNav=this.querySelector(".inline-header-nav .tier-1 > ul"),this.inlineNavMegaMenu=this.inlineNavContainer.querySelector("#mega-menu-tier-2")),this.touchStartTime=0,this.scrolledDown=!1,this.init()}init(){this.setAnnouncementHeight(),this.setScrolledState(),this.checkInlineNavWidth(),this.header.classList.contains("header--sticky")&&document.addEventListener("scroll",this.setScrolledState.bind(this)),this.inlineNavContainer&&(window.addEventListener("on:debounced-resize",()=>{this.checkInlineNavWidth(),this.announcement&&this.setAnnouncementHeight();const menuDrawer=document.querySelector("menu-drawer");menuDrawer.init&&menuDrawer.init()}),this.inlineNavMegaMenu.addEventListener("mouseenter",()=>clearTimeout(this.closeMenuTimeout)),this.inlineNavMegaMenu.addEventListener("mouseleave",this.closeChildMenu.bind(this)),this.querySelectorAll(".contains-children").forEach(el=>{const navToggle=el.querySelector(":scope > .has-children");navToggle&&(el.addEventListener("touchstart",this.selectNavParent.bind(this),{passive:!0}),el.addEventListener("touchend",this.selectNavParent.bind(this)),el.addEventListener("click",this.selectNavParent.bind(this)),navToggle.addEventListener("keydown",evt=>{(evt.key==="Enter"||evt.key===" ")&&this.selectNavParent(evt)}),el.addEventListener("mouseenter",evt=>{this.openChildMenu(evt.currentTarget)}),el.addEventListener("mouseleave",this.closeChildMenu.bind(this)))}))}selectNavParent(evt){if(!evt.target.closest(".has-children"))return;const toggleMenu=parent=>{const navToggle=parent.querySelector(":scope > .has-children");navToggle&&(navToggle.getAttribute("aria-expanded")==="true"?this.closeChildMenu():this.openChildMenu(parent))};switch(evt.type){case"touchstart":this.touchStartTime=evt.timeStamp;break;case"touchend":evt.timeStamp-this.touchStartTime<1e3&&(this.touchOpenTriggeredAt=evt.timeStamp,toggleMenu(evt.currentTarget),evt.preventDefault(),evt.stopPropagation());break;case"click":evt.target.closest('button.has-children, a.has-children[href="#"]')&&evt.preventDefault(),evt.timeStamp-this.touchOpenTriggeredAt<1e3&&(evt.preventDefault(),evt.stopPropagation());break;case"keydown":toggleMenu(evt.currentTarget.closest(".contains-children")),evt.preventDefault();break}}openChildMenu(parent){if(clearTimeout(this.closeMenuTimeout),this.inlineNavContainer.querySelectorAll('[aria-expanded="true"]').forEach(el=>{el.setAttribute("aria-expanded",!1),this.inlineNavMegaMenu.classList.remove("tier-appeared")}),!this.imagesLoaded){const revealImgs=container=>{container.querySelectorAll("img[hidden]").forEach(el=>{el.dataset.src&&el.setAttribute("src",el.dataset.src),el.dataset.srcset&&el.setAttribute("srcset",el.dataset.srcset),el.dataset.sizes&&el.setAttribute("sizes",el.dataset.sizes),el.removeAttribute("hidden")})};
1revealImgs(parent),setTimeout(()=>revealImgs(this),250),this.imagesLoaded=!0}const parentLink=parent.querySelector(":scope > .has-children");parentLink&&(parentLink.setAttribute("aria-expanded",!0),parent.classList.contains("contains-mega-menu")&&(updateMegaMenuTop(),requestAnimationFrame(()=>updateMegaMenuTop()),this.inlineNavMegaMenu.innerHTML="",parent.childNodes.forEach((el,index)=>{index>1&&this.inlineNavMegaMenu.append(el.cloneNode(!0))}),this.inlineNavMegaMenu.classList.add("tier-appeared")))}closeChildMenu(){this.closeMenuTimeout=setTimeout(()=>{this.inlineNavContainer.querySelectorAll('[aria-expanded="true"]').forEach(el=>{el.setAttribute("aria-expanded",!1),this.inlineNavMegaMenu.classList.remove("tier-appeared")})},750)}checkInlineNavWidth(){window.matchMedia("(min-width: 1200px)").matches&&this.header.dataset.navInline==="true"&&this.inlineNavContainer.offsetWidth>this.inlineNav.offsetWidth?this.header.classList.add("header--inline-visible"):this.header.classList.remove("header--inline-visible")}setAnnouncementHeight(){this.announcementHeight=getHeaderBannerHeight(),setHeaderHeight()}setScrolledState(){const scrollY=window.scrollY?window.scrollY:-document.body.getBoundingClientRect().top;this.scrolledDown?(clearTimeout(this.timeout),this.timeout=setTimeout(()=>{document.body.classList.toggle("scrolled-down",scrollY>this.announcementHeight),this.scrolledDown=document.body.classList.contains("scrolled-down")},window.scrollY<=0?0:200)):scrollY>this.announcementHeight&&(document.body.classList.add("scrolled-down"),this.scrolledDown=!0)}}if(customElements.define("page-header",PageHeader),customElements.whenDefined("side-drawer").then(()=>{class MenuDrawer extends customElements.get("side-drawer"){connectedCallback(){super.connectedCallback&&super.connectedCallback(),this.header=document.querySelector(".header"),this.menuToggle=document.querySelector(".menu-toggle"),this.mainMenuPanel=document.getElementById("main-menu-panel"),this.overlay=document.querySelector(".js-header-overlay"),this.menuPanelDelay=300,this.initialised=!1,this.imagesLoaded=!1,this.header.classList.contains("header--inline-visible")||this.init()}init(){this.initialised||this.header.classList.contains("header--inline-visible")||(document.getElementById("menu-disclosure").open=!0,this.menuToggle.addEventListener("click",this.handleToggleClick.bind(this)),this.addEventListener("click",this.handleNavClick.bind(this)),this.initialised=!0)}handleToggleClick(evt){if(evt.preventDefault(),this.hasAttribute("open")){if(this.menuToggle.classList.contains("menu-toggle--back")){const activePanel=this.getActivePanel();this.handleBackClick(activePanel),setTimeout(()=>{this.getActivePanel().setAttribute("aria-hidden","false"),activePanel.setAttribute("aria-hidden","true")},this.menuPanelDelay);return}this.close()}else this.open(this.menuToggle,this.querySelector(".main-menu-links a"))}handleNavClick(evt){const trigger=evt.target.closest(".main-menu-link[aria-controls]");if(!trigger||!trigger.closest(".has-children"))return;const panelId=trigger.getAttribute("aria-controls"),menuToShow=panelId?document.getElementById(panelId):null;if(!menuToShow)return;evt.preventDefault(),trigger.setAttribute("aria-expanded","true");const menuToHide=trigger.closest(".main-menu-panel");menuToHide&&(menuToHide.classList.add("main-menu-panel--inactive-left"),menuToHide.setAttribute("aria-hidden","true"),menuToShow.setAttribute("aria-hidden","false"),menuToShow.classList.remove("main-menu-panel--inactive-right"),this.menuToggle.classList.add("menu-toggle--back"))}handleBackClick(activeNav){activeNav.classList.add("main-menu-panel--inactive-right"),activeNav.dataset.backId==="main-menu-panel"&&this.menuToggle.classList.remove("menu-toggle--back"),setTimeout(()=>{document.getElementById(activeNav.dataset.backId).classList.remove("main-menu-panel--inactive-left")},this.menuPanelDelay)}open(){this.initialised||this.init(),this.checkMenuPadding(),requestAnimationFrame(()=>this.checkMenuPadding()),this.imagesLoaded||(this.querySelectorAll("img").forEach(img=>{img.hidden=!1}),this.imagesLoaded=!0),document.body.classList.add("menu-drawer-open"),super.open(this)}close(){document.body.classList.remove("menu-drawer-open"),this.resetMenu(),super.close()}checkMenuPadding(){updateMenuDrawerPadding()}getActivePanel(){return this.querySelector(".main-menu-panel:not(.main-menu-panel--inactive-left):not(.main-menu-panel--inactive-right)")}resetMenu(){this.menuToggle.classList.remove("menu-toggle--back"),setTimeout(()=>{this.querySelectorAll(".main-menu-panel").forEach(panel=>{panel.classList.remove("main-menu-panel--inactive-left"),panel!==this.mainMenuPanel&&panel.classList.add("main-menu-panel--inactive-right")})},this.menuPanelDelay)}}customElements.define("menu-drawer",MenuDrawer)}),!customElements.get("micro-carousel")){class MicroCarousel extends HTMLElement{connectedCallback(){this.ltr=!document.querySelector("html[dir=rtl]"),this.scrollContainer=this.querySelector(".micro-carousel__scroll-area"),this.itemsContainer=this.querySelector(".micro-carousel__items"),this.nextBtn=this.querySelector(".micro-carousel__next"),this.handleResize(),this.checkAtEnd(),this.resizeObserver=new ResizeObserver(debounce(this.handleResize.bind(this),300)),this.resizeObserver.observe(this)}handleResize(){const isActive=this.itemsContainer.clientWidth>this.scrollContainer.clientWidth;this.isActive!==isActive&&(this.isActive=isActive,this.isActive?(this.toggleAttribute("active",!0),this.nextClickHandler=this.handleClickNext.bind(this),this.nextBtn.addEventListener("click",this.nextClickHandler),this.scrollHandler=debounce(this.checkAtEnd.bind(this),100),this.scrollContainer.addEventListener("scroll",this.scrollHandler)):(this.toggleAttribute("active",!1),this.nextClickHandler&&(this.nextBtn.removeEventListener("click",this.nextClickHandler),this.nextClickHandler=null),this.scrollHandler&&(this.scrollContainer.removeEventListener("scroll",this.scrollHandler),this.scrollHandler=null))),this.isActive&&(this.itemVisibleBoundaryBeyond=parseFloat(this.style.getPropertyValue("--mc-item-visible-boundary-beyond")),Number.isNaN(this.itemVisibleBoundaryBeyond)&&(this.itemVisibleBoundaryBeyond=0),this.checkAtEnd())}checkAtEnd(){this.atEnd=this.isItemVisible(this.itemsContainer.lastElementChild),this.toggleAttribute("at-end",this.atEnd)}handleClickNext(evt){evt.preventDefault();let nextItem=null;if(this.atEnd&&(nextItem=this.itemsContainer.firstElementChild),!nextItem){let foundVisibleItem=!1;for(const item of this.itemsContainer.children)if(item.clientWidth>1){if(this.isItemVisible(item))foundVisibleItem=!0;else if(foundVisibleItem){nextItem=item;break}}}nextItem||(nextItem=this.itemsContainer.firstElementChild);const scrollToLeft=nextItem.offsetLeft-this.itemsContainer.firstElementChild.offsetLeft;this.scrollContainer.scrollTo({top:0,left:scrollToLeft,behavior:"smooth"})}isItemVisible(item){const scrollViewStart=Math.abs(this.scrollContainer.scrollLeft),scrollViewEnd=scrollViewStart+this.scrollContainer.clientWidth,itemStart=this.itemOffsetStart(item),itemEnd=itemStart+item.offsetWidth+this.itemVisibleBoundaryBeyond;return itemStart>=scrollViewStart&&itemEnd<=scrollViewEnd}itemOffsetStart(item){return this.ltr?item.offsetLeft:this.scrollContainer.clientWidth-item.offsetLeft-item.clientWidth}}window.customElements.define("micro-carousel",MicroCarousel)}customElements.whenDefined("side-drawer").then(()=>{class SearchDrawer extends customElements.get("side-drawer"){connectedCallback(){super.connectedCallback&&super.connectedCallback(),this.searchToggles=document.querySelectorAll(".header-search-toggle"),this.searchToggles.length&&this.init()}
1init(){this.overlay=document.querySelector(".js-header-overlay"),this.searchToggles.forEach(toggle=>{toggle.addEventListener("click",evt=>{evt.preventDefault(),toggle.setAttribute("aria-expanded","true"),this.open(toggle,document.getElementById("search-drawer-input"))})})}close(callback){this.opener&&this.opener.setAttribute("aria-expanded","false"),super.close(callback)}}customElements.define("search-drawer",SearchDrawer)}),window.initLazyScript=initLazyScript,document.addEventListener("DOMContentLoaded",()=>{document.querySelectorAll(".content-boundary--top, .content-boundary--top-flipped").forEach(el=>{const section=el.closest(".shopify-section");section.classList.add("has-content-boundary-top"),el.classList.contains("content-boundary--top-flipped")&§ion.classList.add("has-content-boundary-top--flipped")})}); 2//# sourceMappingURL=/cdn/shop/t/60/assets/main.js.map?v=17708641283214710771783375119
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.