1function getFocusableElements(container){return Array.from(container.querySelectorAll("summary, a[href], button:enabled, [tabindex]:not([tabindex^='-']), [draggable], area, input:not([type=hidden]):enabled, select:enabled, textarea:enabled, object, iframe"))}document.querySelectorAll('[id^="Details-"] summary').forEach(summary=>{summary.setAttribute("role","button"),summary.setAttribute("aria-expanded",summary.parentNode.hasAttribute("open")),summary.nextElementSibling.getAttribute("id")&&summary.setAttribute("aria-controls",summary.nextElementSibling.id),summary.addEventListener("click",event=>{event.currentTarget.setAttribute("aria-expanded",!event.currentTarget.closest("details").hasAttribute("open"))}),!summary.closest("header-drawer, menu-drawer")&&summary.parentElement.addEventListener("keyup",onKeyUpEscape)});const trapFocusHandlers={};function trapFocus(container,elementToFocus=container){var elements=getFocusableElements(container),first=elements[0],last=elements[elements.length-1];removeTrapFocus(),trapFocusHandlers.focusin=event=>{event.target!==container&&event.target!==last&&event.target!==first||document.addEventListener("keydown",trapFocusHandlers.keydown)},trapFocusHandlers.focusout=function(){document.removeEventListener("keydown",trapFocusHandlers.keydown)},trapFocusHandlers.keydown=function(event){event.code.toUpperCase()==="TAB"&&(event.target===last&&!event.shiftKey&&(event.preventDefault(),first.focus()),(event.target===container||event.target===first)&&event.shiftKey&&(event.preventDefault(),last.focus()))},document.addEventListener("focusout",trapFocusHandlers.focusout),document.addEventListener("focusin",trapFocusHandlers.focusin),elementToFocus&&elementToFocus.focus(),elementToFocus.tagName==="INPUT"&&["search","text","email","url"].includes(elementToFocus.type)&&elementToFocus.value&&elementToFocus.setSelectionRange(0,elementToFocus.value.length)}try{document.querySelector(":focus-visible")}catch{focusVisiblePolyfill()}function focusVisiblePolyfill(){const navKeys=["ARROWUP","ARROWDOWN","ARROWLEFT","ARROWRIGHT","TAB","ENTER","SPACE","ESCAPE","HOME","END","PAGEUP","PAGEDOWN"];let currentFocusedElement=null,mouseClick=null;window.addEventListener("keydown",event=>{navKeys.includes(event.code.toUpperCase())&&(mouseClick=!1)}),window.addEventListener("mousedown",event=>{mouseClick=!0}),window.addEventListener("focus",()=>{currentFocusedElement&¤tFocusedElement.classList.remove("focused"),!mouseClick&&(currentFocusedElement=document.activeElement,currentFocusedElement.classList.add("focused"))},!0)}function removeTrapFocus(elementToFocus=null){document.removeEventListener("focusin",trapFocusHandlers.focusin),document.removeEventListener("focusout",trapFocusHandlers.focusout),document.removeEventListener("keydown",trapFocusHandlers.keydown),elementToFocus&&elementToFocus.focus()}function onKeyUpEscape(event){if(event.code.toUpperCase()!=="ESCAPE")return;const openDetailsElement=event.target.closest("details[open]");if(!openDetailsElement)return;const summaryElement=openDetailsElement.querySelector("summary");openDetailsElement.removeAttribute("open"),summaryElement.setAttribute("aria-expanded",!1),summaryElement.focus()}class QuantityInput extends HTMLElement{constructor(){super(),this.input=this.querySelector("input"),this.changeEvent=ne
1w Event("change",{bubbles:!0}),this.input.addEventListener("change",this.onInputChange.bind(this)),this.querySelectorAll("button").forEach(button=>button.addEventListener("click",this.onButtonClick.bind(this)))}quantityUpdateUnsubscriber=void 0;connectedCallback(){this.validateQtyRules(),this.quantityUpdateUnsubscriber=subscribe(PUB_SUB_EVENTS.quantityUpdate,this.validateQtyRules.bind(this))}disconnectedCallback(){this.quantityUpdateUnsubscriber&&this.quantityUpdateUnsubscriber()}onInputChange(event){this.validateQtyRules()}onButtonClick(event){event.preventDefault();const previousValue=this.input.value;event.target.name==="plus"?parseInt(this.input.dataset.min)>parseInt(this.input.step)&&this.input.value==0?this.input.value=this.input.dataset.min:this.input.stepUp():this.input.stepDown(),previousValue!==this.input.value&&this.input.dispatchEvent(this.changeEvent),this.input.dataset.min===previousValue&&event.target.name==="minus"&&(this.input.value=parseInt(this.input.min))}validateQtyRules(){const value=parseInt(this.input.value);if(this.input.min&&this.querySelector(".quantity__button[name='minus']").classList.toggle("disabled",parseInt(value)<=parseInt(this.input.min)),this.input.max){const max=parseInt(this.input.max);this.querySelector(".quantity__button[name='plus']").classList.toggle("disabled",value>=max)}}}customElements.define("quantity-input",QuantityInput);function throttle(fn,delay){let lastCall=0;return function(...args){const now=new Date().getTime();if(!(now-lastCall<delay))return lastCall=now,fn(...args)}}function fetchConfig(type="json"){return{method:"POST",headers:{"Content-Type":"application/json",Accept:`application/${type}`}}}typeof window.Shopify>"u"&&(window.Shopify={}),Shopify.bind=function(fn,scope){return function(){return fn.apply(scope,arguments)}},Shopify.setSelectorByValue=function(selector,value){for(var i=0,count=selector.options.length;i<count;i++){var option=selector.options[i];if(value==option.value||value==option.innerHTML)return selector.selectedIndex=i,i}},Shopify.addListener=function(target,eventName,callback){target.addEventListener?target.addEventListener(eventName,callback,!1):target.attachEvent("on"+eventName,callback)},Shopify.postLink=function(path,options){options=options||{};var method=options.method||"post",params=options.parameters||{},form=document.createElement("form");form.setAttribute("method",method),form.setAttribute("action",path);for(var key in params){var hiddenField=document.createElement("input");hiddenField.setAttribute("type","hidden"),hiddenField.setAttribute("name",key),hiddenField.setAttribute("value",params[key]),form.appendChild(hiddenField)}document.body.appendChild(form),form.submit(),document.body.removeChild(form)},Shopify.CountryProvinceSelector=function(country_domid,province_domid,options){this.countryEl=document.getElementById(country_domid),this.provinceEl=document.getElementById(province_domid),this.provinceContainer=document.getElementById(options.hideElement||province_domid),Shopify.addListener(this.countryEl,"change",Shopify.bind(this.countryHandler,this)),this.initCountry(),this.initProvince()},Shopify.CountryProvinceSelector.prototype={initCountry:function(){var value=this.countryEl.getAttribute("data-default");Shopify.setSelectorByValue(this.countryEl,value),this.countryHandler()},initProvince:function(){var value=this.provinceEl.getAttribute("data-default");value&&this.provinceEl.options.length>0&&Shopify.setSelectorByValue(this.provinceEl,value)},countryHandler:function(e){var opt=this.countryEl.options[this.countryEl.selectedIndex],raw=opt.getAttribute("data-provinces"),provinces=JSON.parse(raw);if(this.clearOptions(this.provinceEl),provinces&&provinces.length==0)this.provinceContainer.style.display="none";else{for(var i=0;i<provinces.length;i++){var opt=document.createElement("option");opt.value=provinces[i][0],opt.innerHTML=provinces[i][1],this.provinceEl.appendChild(opt)}this.provinceContainer.style.display=""}},clearOptions:function(selector){for(;selector.firstChild;)selector.removeChild(selector.firstChild)},setOptions:function(selector,values){for(var i=0,count=values.length;i<values.length;i++){var opt=document.createElement("option");opt.value=values[i],opt.innerHTML=values[i],selector.appendChild(opt)}}};class MenuDrawer extends HTMLElement{constructor(){super(),this.mainDetailsToggle=this.querySelector("details"),this.addEventListener("keyup",this.onKeyUp.bind(this)),this.addEventListener("focusout",this.onFocusOut.bind(this)),this.bindEvents()}bindEvents(){this.querySelectorAll("summary").forEach(summary=>summary.addEventListener("click",this.onSummaryClick.bind(this))),this.querySelectorAll("button:not(.localization-selector):not(.country-selector__close-button):not(.country-filter__reset-button):not(.collapsible-trigger)").forEach(button=>button.addEventListener("click",this.onCloseButtonClick.bind(this))),this.trapLinkLevel1(),this.trapLink()}onKeyUp(event){if(event.code.toUpperCase()!=="ESCAPE")return;const openDetailsElement=event.target.closest("details[open]");openDetailsElement&&(openDetailsElement===this.mainDetailsToggle?this.closeMenuDrawer(event,this.mainDetailsToggle.querySelector("summary")):this.closeSubmenu(openDetailsElement))}onSummaryClick(event){const summaryElement=event.currentTarget,detailsElement=summaryElement.parentNode,parentMenuElement=detailsElement.closest(".has-submenu"),isOpen=detailsElement.hasAttribute("open"),reducedMotion=window.matchMedia("(prefers-reduced-motion: reduce)");function addTrapFocus(){trapFocus(summaryElement.nextElementSibling,detailsElement.querySelector("button")),summaryElement.nextElementSibling.removeEventListener("transitionend",addTrapFocus)}detailsElement===this.mainDetailsToggle?(isOpen&&event.preventDefault(),isOpen?this.closeMenuDrawer(event,summaryElement):this.openMenuDrawer(summaryElement),window.matchMedia("(max-width: 990px)")&&document.documentElement.style.setProperty("--viewport-height",`${window.innerHeight}px`)):setTimeout(()=>{detailsElement.classList.add("menu-opening"),summaryElement.setAttribute("aria-expanded",!0),parentMenuElement&&parentMenuElement.classList.add("submenu-open"),!reducedMotion||reducedMotion.matches?addTrapFocus():summaryElement.nextElementSibling.addEventListener("transitionend",addTrapFocus)},150)}openMenuDrawer(summaryElement){setTimeout(()=>{this.mainDetailsToggle.classList.add("menu-opening")}),summaryElement.setAttribute("aria-expanded",!0),trapFocus(this.mainDetailsToggle,summaryElement),document.body.classList.add(`overflow-hidden-${this.dataset.breakpoint}`)}closeMenuDrawer(event,elementToFocus=!1){event!==void 0&&(this.mainDetailsToggle.classList.remove("menu-opening"),this.mainDetailsToggle.querySelectorAll("details").forEach(detail
1s=>{details.removeAttribute("open"),details.classList.remove("menu-opening")}),this.mainDetailsToggle.querySelectorAll(".submenu-open").forEach(submenu=>{submenu.classList.remove("submenu-open")}),document.body.classList.remove(`overflow-hidden-${this.dataset.breakpoint}`),removeTrapFocus(elementToFocus),this.closeAnimation(this.mainDetailsToggle),event instanceof KeyboardEvent&&elementToFocus?.setAttribute("aria-expanded",!1))}onFocusOut(){setTimeout(()=>{this.mainDetailsToggle.hasAttribute("open")&&!this.mainDetailsToggle.contains(document.activeElement)&&this.closeMenuDrawer()})}onCloseButtonClick(event){const detailsElement=event.currentTarget.closest("details");this.closeSubmenu(detailsElement)}closeSubmenu(detailsElement){const parentMenuElement=detailsElement.closest(".submenu-open");parentMenuElement&&parentMenuElement.classList.remove("submenu-open"),detailsElement.classList.remove("menu-opening"),detailsElement.querySelector("summary").setAttribute("aria-expanded",!1),removeTrapFocus(detailsElement.querySelector("summary")),this.closeAnimation(detailsElement)}closeAnimation(detailsElement){detailsElement.classList.add("is-closing");let animationStart;const handleAnimation=time=>{animationStart===void 0&&(animationStart=time),time-animationStart<400?window.requestAnimationFrame(handleAnimation):(detailsElement.removeAttribute("open"),detailsElement.classList.remove("is-closing"),detailsElement.closest("details[open]")&&trapFocus(detail
1sElement.closest("details[open]"),detailsElement.querySelector("summary")))};window.requestAnimationFrame(handleAnimation)}setupTrapLinks(selector,getFocusTarget){const trapLinks=this.querySelectorAll(selector);trapLinks.length&&(trapLinks.forEach(link=>{link._handleTrapLinkFocus&&(link.removeEventListener("focus",link._handleTrapLinkFocus),link._handleTrapLinkFocus=null)}),trapLinks.forEach(trapLink=>{trapLink._handleTrapLinkFocus=event=>{event.preventDefault();const target=getFocusTarget(trapLink);target&&target.focus()},trapLink.addEventListener("focus",trapLink._handleTrapLinkFocus)}))}trapLink(){this.setupTrapLinks(".focus-trap-link",trapLink=>{const submenu=trapLink.closest(".menu-drawer__inner-submenu");return submenu?submenu.querySelector(".menu-drawer__close-button")||submenu:null})}trapLinkLevel1(){this.setupTrapLinks(".focus-trap-link-close",trapLink=>{const headerDrawer=trapLink.closest("header-drawer");return headerDrawer?headerDrawer.querySelector(".header__icon--menu"):null})}}customElements.define("menu-drawer",MenuDrawer);class CustomDrawer extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const content=document.createElement("div");for(;this.firstChild;)content.appendChild(this.firstChild);this.shadowRoot.appendChild(content),this.overlay=this.shadowRoot.querySelector(".overlay"),this.drawer=this.shadowRoot.querySelector(".drawer"),this.closeButton=this.shadowRoot.querySelector(".close-drawer-btn"),this.overlay.addEventListener("click",()=>this.close()),this.closeButton.addEventListener("click",()=>this.close())}open(){this.setAttribute("open","")}close(){this.removeAttribute("open")}static get observedAttributes(){return["open"]}attributeChangedCallback(name,oldValue,newValue){name==="open"&&newValue!==null?this.style.display="block":this.style.display="none"}}customElements.define("custom-drawer",CustomDrawer),document.addEventListener("DOMContentLoaded",()=>{document.querySelectorAll(".open-drawer-btn").forEach(button=>{button.addEventListener("click",()=>{const targetId=button.getAttribute("data-target"),targetDrawer=document.getElementById(targetId);targetDrawer&&targetDrawer.open()})})});class HeaderDrawer extends MenuDrawer{constructor(){super()}openMenuDrawer(summaryElement){this.header=this.header||document.querySelector(".section-header"),this.borderOffset=this.borderOffset||this.closest(".header-wrapper").classList.contains("header-wrapper--border-bottom")?1:0,document.documentElement.style.setProperty("--header-bottom-position",`${parseInt(this.header.getBoundingClientRect().bottom-this.borderOffset)}px`),this.header.classList.add("menu-open"),this.mainDetailsToggle.classList.add("is-opening"),requestAnimationFrame(()=>{this.mainDetailsToggle.setAttribute("open",""),this.mainDetailsToggle.classList.add("menu-opening"),setTimeout(()=>{this.mainDetailsToggle.classList.remove("is-opening")},300)}),summaryElement.setAttribute("aria-expanded",!0),window.addEventListener("resize",this.onResize),trapFocus(this.mainDetailsToggle,summaryElement),document.body.classList.add(`overflow-hidden-${this.dataset.breakpoint}`)}closeMenuDrawer(event,elementToFocus){elementToFocus&&(super.closeMenuDrawer(event,elementToFocus),this.header.classList.remove("menu-open"),window.removeEventListener("resize",this.onResize))}onResize=()=>{this.header&&document.documentElement.style.setProperty("--header-bottom-position",`${parseInt(this.header.getBoundingClientRect().bottom-this.borderOffset)}px`),document.documentElement.style.setProperty("--viewport-height",`${window.innerHeight}px`)}}customElements.define("header-drawer",HeaderDrawer);class ModalDialog extends HTMLElement{constructor(){super(),this.querySelector('[id^="ModalClose-"]').addEventListener("click",this.hide.bind(this,!1)),this.handleKeyDown=this.handleKeyDown.bind(this),this.classList.contains("media-modal")?this.addEventListener("pointerup",event=>{event.pointerType==="mouse"&&!event.target.closest("deferred-media, product-model")&&this.hide()}):this.addEventListener("click",event=>{event.target===this&&this.hide()})}connectedCallback(){this.moved||(this.moved=!0,document.addEventListener("keydown",this.handleKeyDown))}disconnectedCallback(){document.removeEventListener("keydown",this.handleKeyDown)}handleKeyDown(event){event.key==="Escape"&&this.hasAttribute("open")&&this.hide()}show(opener){this.openedBy=opener;const popup=this.querySelector(".template-popup");document.body.classList.add("overflow-hidden"),this.setAttribute("open",""),popup&&popup.loadContent(),setTimeout(()=>{const firstFocusableElement=this.querySelector('a, input, button, [tabindex]:not
1([tabindex="-1"])');trapFocus(this,firstFocusableElement)},300)}hide(){this.setAttribute("closing","true"),setTimeout(()=>{document.body.classList.remove("overflow-hidden"),document.body.dispatchEvent(new CustomEvent("modalClosed")),this.removeAttribute("open"),this.removeAttribute("closing"),removeTrapFocus(this.openedBy)},300)}}customElements.define("modal-dialog",ModalDialog);class ModalOpener extends HTMLElement{constructor(){super();const button=this.querySelector("button");button&&button.addEventListener("click",()=>{const modal=document.querySelector(this.getAttribute("data-modal"));modal&&modal.show(button)})}}customElements.define("modal-opener",ModalOpener);let onYouTubeApiReadyPromise=null;function loadYouTubeApi(){return onYouTubeApiReadyPromise||(onYouTubeApiReadyPromise=new Promise(resolve=>{if(window.YT&&window.YT.Player){resolve();return}const existingCallback=window.onYouTubeIframeAPIReady;if(window.onYouTubeIframeAPIReady=()=>{existingCallback&&existingCallback(),resolve()},!document.querySelector('script[src="https://www.youtube.com/iframe_api"]')){const tag=document.createElement("script");tag.src="https://www.youtube.com/iframe_api",document.head.appendChild(tag)}})),onYouTubeApiReadyPromise}let vimeoApiPromise=null;function loadVimeoApi(){return vimeoApiPromise||(vimeoApiPromise=new Promise(resolve=>{if(window.Vimeo&&window.Vimeo.Player){resolve();return}if(document.querySelector('script[src="https://player.vimeo.com/api/player.js"]')){const checkVimeo=setInterval(()=>{window.Vimeo&&window.Vimeo.Player&&(clearInterval(checkVimeo),resolve())},100)}else{const tag=document.createElement("script");tag.src="https://player.vimeo.com/api/player.js",tag.onload=resolve,document.head.appendChild(tag)}})),vimeoApiPromise}class DeferredMedia extends HTMLElement{static get observedAttributes(){return["playing"]}constructor(){super(),this.poster=this.querySelector('[id^="Deferred-Poster-"]'),this.template=this.querySelector("template"),this.mediaElement=null,this.playerController=null,this.mediaKind=null,this.boundActivate=this.activate.bind(this),this.visibilityObserver=null,this.playPauseButton=null,this.boundHandlePlayPauseClick=this._handlePlayPauseClick.bind(this),!(!this.poster||!this.template)&&this.poster.addEventListener("click",this.boundActivate)}connectedCallback(){this.hasAttribute("autoplay")&&this._initiateAutoplayObserver()}disconnectedCallback(){if(this.poster&&this.poster.removeEventListener("click",this.boundActivate),this.visibilityObserver&&(this.visibilityObserver.disconnect(),this.visibilityObserver=null),this.playPauseButton&&(this.playPauseButton.removeEventListener("click",this.boundHandlePlayPauseClick),this.playPauseButton=null),this.removeAttribute("has-play-pause-button"),this.playerController&&typeof this.playerController.destroy=="function")try{this.playerController.destroy()}catch{}else if(this.mediaKind==="video"&&this.mediaElement)this.mediaElement.pause();else if(this.mediaKind==="model"&&this.playerController&&typeof this.playerController.pause=="function")try{this.playerController.pause()}catch{}this._detachStateListeners(),this.playerController=null,this.mediaElement=null}activate(){this.hasAttribute("playing")||(this.getAttribute("loaded")?this._initiatePlayback():this._initializeMedia().then(loaded=>{loaded&&this._initiatePlayback()}).catch(error=>{console.error("DeferredMedia: Error initializing media:",error)}))}pause(){if(!(!this.hasAttribute("playing")||!this.mediaElement&&!this.playerController))if(this.playerController){if(this.mediaKind==="youtube"&&typeof this.playerController.pauseVideo=="function")this.playerController.pauseVideo();else if(this.mediaKind==="vimeo"&&typeof this.playerController.pause=="function")this.playerController.pause();else if(this.mediaKind==="model"&&typeof this.playerController.pause=="function")try{this.playerController.pause()}catch{}}else this.mediaKind==="video"&&this.mediaElement&&this.mediaElement.pause()}attributeChangedCallback(name,oldValue,newValue){if(name==="playing"&&this.hasAttribute("loaded"))if(this._updatePlayPauseButtonState(newValue!==null),newValue!==null){this.dispatchEvent(new CustomEvent("media:play",{bubbles:!0,detail:this}));const group=this.getAttribute("group");group&&document.querySelectorAll(`deferred-media[group="${group}"], product-model[group="${group}"]`).forEach(item=>{item!==this&&typeof item.pause=="function"&&item.pause()})}else this.dispatchEvent(new CustomEvent("media:pause",{bubbles:!0,detail:this}))}_initiatePlayback(){if(!(!this.mediaElement&&!this.playerController)){if(this.playerController){if(this.mediaKind==="youtube"&&typeof this.playerController.playVideo=="function")this.playerController.playVideo();else if(this.mediaKind==="vimeo"&&typeof this.playerController.play=="function")this.playerController.play().catch(error=>console.error("Vimeo play error:",error));else if(this.mediaKind==="model"&&typeof this.playerController.play=="function")try{this.playerController.play()}catch{}}else if(this.mediaKind==="video"&&this.mediaElement){const playProm
1ise=this.mediaElement.play();playPromise!==void 0&&playPromise.catch(error=>{error.name==="NotAllowedError"&&(this.mediaElement.controls=!0)})}}}async _initializeMedia(focus=!1){if(this.getAttribute("loaded"))return!0;if(!this.template||!this.template.content||!this.template.content.firstElementChild)return!1;const container=document.createElement("div"),elementContent=this.template.content.cloneNode(!0);container.appendChild(elementContent);const mediaNode=container.querySelector("video, iframe, model-viewer"),playPauseButtonNode=container.querySelector(".deferred-media-control__play-pause");if(!mediaNode)return!1;this.mediaElement=mediaNode,this.appendChild(this.mediaElement),this.setAttribute("loaded",!0),playPauseButtonNode&&(this.appendChild(playPauseButtonNode),this.playPauseButton=playPauseButtonNode,this.hasAttribute("autoplay")&&(this.playPauseButton.addEventListener("click",this.boundHandlePlayPauseClick),this.setAttribute("has-play-pause-button",""),this._updatePlayPauseButtonState(!0)));const nodeName=this.mediaElement.nodeName;if(nodeName==="VIDEO")this.mediaKind="video",this._attachStateListeners();else if(nodeName==="IFRAME"){const source=this.mediaElement.getAttribute("src")||"";if(source.includes("youtube.com")||source.includes("youtu.be")){this.mediaKind="youtube",this.mediaElement.id||(this.mediaElement.id=`deferred-yt-${Date.now()}-${Math.random().toString(36).substring(2,7)}`);try{await loadYouTubeApi(),this.playerController=new YT.Player(this.mediaElement.id,{events:{onStateChange:this._handleYouTubeStateChange.bind(this)}})}catch(error){return console.error("YouTube Player init error:",error),this.removeAttribute("loaded"),this.removeChild(this.mediaElement),!1}}else if(source.includes("vimeo.com")){this.mediaKind="vimeo";try{await loadVimeoApi(),this.playerController=new Vimeo.Player(this.mediaElement),this._attachVimeoListeners()}catch(error){return console.error("Vimeo Player init error:",error),this.removeAttribute("loaded"),this.removeChild(this.mediaElement),!1}}else this.mediaKind="iframe_unknown"}else if(nodeName==="MODEL-VIEWER")this.mediaKind="model";else return this.mediaKind="unknown",this.removeAttribute("loaded"),this.removeChild(this.mediaElement),!1;if(this.poster&&(this.poster.style.display="none",this.poster.removeEventListener("click",this.boundActivate)),focus&&this.mediaElement&&typeof this.mediaElement.focus=="function")try{this.mediaElement.focus()}catch{}return!0}_attachStateListeners(){!this.mediaElement||this.mediaKind!=="video"||(this._detachStateListeners(),this._stateListeners={play:()=>this.setAttribute("playing",""),pause:()=>this.removeAttribute("playing"),ended:()=>this.removeAttribute("playing")},this.mediaElement.addEventListener("play",this._stateListeners.play),this.mediaElement.addEventListener("pause",this._stateListeners.pause),this.mediaElement.addEventListener("ended",this._stateListeners.ended))}_handleYouTubeStateChange(event){event.data===YT.PlayerState.PLAYING?this.setAttribute("playing",""):(event.data===YT.PlayerState.PAUSED||event.data===YT.PlayerState.ENDED||event.data===YT.PlayerState.BUFFERING)&&this.removeAttribute("playing")}_attachVimeoListeners(){!this.playerController||this.mediaKind!=="vimeo"||(this._detachStateListeners(),this._stateListeners={play:()=>this.setAttribute("playing",""),pause:()=>this.removeAttribute("playing"),ended:()=>this.removeAttribute("playing")},this.playerController.on("play",this._stateListeners.play),this.playerController.on("pause",this._stateListeners.pause),this.playerController.on("ended",this._stateListeners.ended))}_detachStateListeners(){const listeners=this._stateListeners;if(this.mediaElement&&this.mediaKind==="video"&&listeners)this.mediaElement.removeEventListener("play",listeners.play),this.mediaElement.removeEventListener("pause",listeners.pause),this.mediaElement.removeEventListener("ended",listeners.ended);else if(this.playerController&&this.mediaKind==="vimeo"&&listeners)try{this.playerController.off("play",listeners.play),this.playerController.off("pause",listeners.pause),this.playerController.off("ended",listeners.ended)}catch{}else if(this.mediaElement&&this.mediaKind==="model"&&listeners)try{this.mediaElement.removeEventListener("shopify_model_viewer_ui_toggle_play",listeners.play),this.mediaElement.removeEventListener("shopify_model_viewer_ui_toggle_pause",listeners.pause)}catch{}this._stateListeners=null}_initiateAutoplayObserver(){if(this.visibilityObserver||!("IntersectionObserver"in window))return;const observerOptions={root:null,rootMargin:"0px",threshold:.1};this.visibilityObserver=new IntersectionObserver((entries,observer)=>
1{entries.forEach(entry=>{entry.isIntersecting&&!this.hasAttribute("playing")&&!this.getAttribute("loaded")&&(this.activate(),observer.disconnect(),this.visibilityObserver=null)})},observerOptions),this.visibilityObserver.observe(this)}_handlePlayPauseClick(){this.hasAttribute("playing")?this.pause():this.activate()}_updatePlayPauseButtonState(isPlaying){this.playPauseButton&&(isPlaying?(this.playPauseButton.classList.remove("is-paused"),this.playPauseButton.classList.add("is-playing"),this.playPauseButton.setAttribute("aria-label","Pause")):(this.playPauseButton.classList.remove("is-playing"),this.playPauseButton.classList.add("is-paused"),this.playPauseButton.setAttribute("aria-label","Play")))}}customElements.define("deferred-media",DeferredMedia);class VariantSelects extends HTMLElement{constructor(){super(),this.addEventListener("change",this.onVariantChange)}connectedCallback(){this.getVariantData()}onVariantChange(event){this.updateOptions(),this.updateMasterId(),this.updateSelectedSwatchValue(event),this.toggleAddButton(!0,"",!1),this.toggleStickyAddButton(!0,"",!1),this.updatePickupAvailability(),this.removeErrorMessage(),this.updateVariantStatuses(),this.updateVariantText(),this.updateSoldOutState(),this.updateButtonPrice(),this.currentVariant?(this.updateURL(),this.updateVariantInput(),this.renderProductInfo(),this.updateShareUrl(),this.updateCarousel()):(this.toggleAddButton(!0,"",!0),this.toggleStickyAddButton(!0,"",!0),this.setUnavailable())}updateCarousel(){const updateCarouselForElement=element=>{element&&this.currentVariant.featured_media&&element.updateCarouselImages(this.currentVariant.featured_media.id)},galleryCarousel=document.getElementById(`Gallery-carousel-${this.dataset.section}`);updateCarouselForElement(galleryCarousel);const quickViewContainer=document.querySelector(".product-modal-content");if(quickViewContainer){const galleryCarouselQuickView=quickViewContainer.querySelector(`#Gallery-carousel-${this.dataset.section}`);updateCarouselForElement(galleryCarouselQuickView)}}updateOptions(){this.options=Array.from(this.querySelectorAll("select, fieldset"),element=>{if(element.tagName==="SELECT")return element.value;if(element.tagName==="FIELDSET")return Array.from(element.querySelectorAll("input")).find(radio=>radio.checked)?.value})}updateVariantText(){this.querySelectorAll(".product-form__input").forEach((item,i)=>item.querySelector(".form__label-value").innerHTML=this.options[i])}updateMasterId(){this.currentVariant=this.getVariantData().find(variant=>!variant.options.map((option,index)=>this.options[index]===option).includes(!1))}updateSelectedSwatchValue({target}){const{name,value,tagName}=target;if(tagName==="SELECT"&&target.selectedOptions.length){const swatchValue=target.selectedOptions[0].dataset.optionSwatchValue,selectedDropdownSwatchValue=this.querySelector(`[data-selected-dropdown-swatch="${name}"] > .swatch`);if(!selectedDropdownSwatchValue)return;swatchValue?(selectedDropdownSwatchValue.style.setProperty("--swatch--background",swatchValue),selectedDropdownSwatchValue.classList.remove("swatch--unavailable")):(selectedDropdownSwatchValue.style.setProperty("--swatch--background","unset"),selectedDropdownSwatchValue.classList.add("swatch--unavailable")),selectedDropdownSwatchValue.style.setProperty("--swatch-focal-point",target.selectedOptions[0].dataset.optionSwatchFocalPoint||"unset")}else if(tagName==="INPUT"&&target.type==="radio"){const selectedSwatchValue=this.querySelector(`[data-selected-swatch-value="${name}"]`);selectedSwatchValue&&(selectedSwatchValue.innerHTML=value)}}updateURL(){!this.currentVariant||this.dataset.updateUrl==="false"||window.history.replaceState({},"",`${this.dataset.url}?variant=${this.currentVariant.id}`)}updateShareUrl(){const shareButton=document.getElementById(`Share-${this.dataset.section}`);shareButton&&shareButton.setAttribute("data-url",`${window.shopUrl}${this.dataset.url}?variant=${this.currentVariant.id}`)}updateVariantInput(){document.querySelectorAll(`#product-form-${this.dataset.section}, #product-form-installment-${this.dataset.section}`).forEach(productForm=>{const input=productForm.querySelector('input[name="id"]');input.value=this.currentVariant.id,input.dispatchEvent(new Event("change",{bubbles:!0}))})}updateVariantStatuses(){const selectedOptionOneVariants=this.variantData.filter(variant=>this.querySelector(":checked").value===variant.option1),inputWrappers=[...this.querySelectorAll(".product-form__input")];
1inputWrappers.forEach((option,index)=>{if(index===0)return;const optionInputs=[...option.querySelectorAll('input[type="radio"], option')],previousOptionSelected=inputWrappers[index-1].querySelector(":checked").value,availableOptionInputsValue=selectedOptionOneVariants.filter(variant=>variant.available&&variant[`option${index}`]===previousOptionSelected).map(variantOption=>variantOption[`option${index+1}`]);this.setInputAvailability(optionInputs,availableOptionInputsValue)})}setInputAvailability(elementList,availableValuesList){elementList.forEach(element=>{const value=element.getAttribute("value"),availableElement=availableValuesList.includes(value);element.tagName==="INPUT"?element.classList.toggle("disabled",!availableElement):element.tagName==="OPTION"&&(element.innerText=availableElement?value:window.variantStrings.unavailable_with_option.replace("[value]",value),element.classList.toggle("disabled",!availableElement))})}updatePickupAvailability(){const pickUpAvailability=document.querySelector("pickup-availability");pickUpAvailability&&(this.currentVariant&&this.currentVariant.available?pickUpAvailability.fetchAvailability(this.currentVariant.id):(pickUpAvailability.removeAttribute("available"),pickUpAvailability.innerHTML=""))}updateSoldOutState(){const soldOutMessageElement=document.getElementById(`sold-out-message-${this.dataset.section}`),soldOutVariantNameElement=document.querySelector(`#sold-out-variant-name-${this.dataset.section}`),soldOutSelectElement=document.getElementById(`ContactFormSoldout-select-${this.dataset.section}`);if(this.currentVariant&&!this.currentVariant.available){if(soldOutMessageElement&&soldOutMessageElement.classList.remove("hidden"),soldOutVariantNameElement&&(soldOutVariantNameElement.textContent=this.currentVariant.title),soldOutSelectElement){const selectedVariantId=this.currentVariant.id;soldOutSelectElement.querySelectorAll("option").forEach(option=>{option.getAttribute("option-id")==selectedVariantId&&(option.selected=!0)})}}else soldOutMessageElement&&soldOutMessageElement.classList.add("hidden"),soldOutVariantNameElement&&(soldOutVariantNameElement.textContent="")}removeErrorMessage(){const section=this.closest("section");if(!section)return;const productForm=section.querySelector("product-form");productForm&&productForm.handleErrorMessage()}renderProductInfo(){const requestedVariantId=this.currentVariant.id,sectionId=this.dataset.originalSection?this.dataset.originalSection:this.dataset.section;fetch(`${this.dataset.url}?variant=${requestedVariantId}§ion_id=${this.dataset.originalSection?this.dataset.originalSection:this.dataset.section}`).then(response=>response.text()).then(responseText=>{if(!this.currentVariant||this.currentVariant.id!==requestedVariantId)return;const html=new DOMParser().parseFromString(responseText,"text/html"),destination=document.getElementById(`price-${this.dataset.section}`),source=html.getElementById(`price-${this.dataset.originalSection?this.dataset.originalSection:this.dataset.section}`),skuSource=html.getElementById(`Sku-${this.dataset.originalSection?this.dataset.originalSection:this.dataset.section}`),skuDestination=document.getElementById(`Sku-${this.dataset.section}`),inventorySource=html.getElementById(`Inventory-${this.dataset.originalSection?this.dataset.originalSection:this.dataset.section}`),inventoryDestination=document.getElementById(`Inventory-${this.dataset.section}`),volumePricingSource=html.getElementById(`Volume-${this.dataset.originalSection?this.dataset.originalSection:this.dataset.section}`);this.updateStickyImage(sectionId,html),this.updateStickyPrice(sectionId,html);const pricePerItemDestination=document.getElementById(`Price-Per-Item-${this.dataset.section}`),pricePerItemSource=html.getElementById(`Price-Per-Item-${this.dataset.originalSection?this.dataset.originalSection:this.dataset.section}`),volumePricingDestination=document.getElementById(`Volume-${this.dataset.section}`),qtyRules=document.getElementById(`Quantity-Rules-${this.dataset.section}`),volumeNote=document.getElementById(`Volume-Note-${this.dataset.section}`);volumeNote&&volumeNote.classList.remove("hidden"),volumePricingDestination&&volumePricingDestination.classList.remove("hidden"),qtyRules&&qtyRules.classList.remove("hidden"),source&&destination&&(destination.innerHTML=source.innerHTML),inventorySource&&inventoryDestination&&(inventoryDestination.innerHTML=inventorySource.innerHTML),skuSource&&skuDestination&&(skuDestination.innerHTML=skuSource.innerHTML,skuDestination.classList.toggle("hidden",skuSource.classList.contains("hidden"))),volumePricingSource&&volumePricingDestination&&(volumePricingDestination.innerHTML=volumePricingSource.innerHTML),pricePerItemSource&&pricePerItemDestination&&(pricePerItemDestination.innerHTML=pricePerItemSource.innerHTML,pricePerItemDestination.classList.toggle("hidden",pricePerItemSource.classList.contains("hidden")));const price=document.getElementById(`price-${this.dataset.section}`);price&&price.classList.remove("hidden"),inventoryDestination&&inventoryDestination.classList.toggle("hidden",inventorySource.innerText==="");const addButtonUpdated=html.getElementById(`ProductSubmitButton-${sectionId}`);this.toggleAddButton(addButtonUpdated?addButtonUpdated.hasAttribute("disabled"):!0,window.variantStrings.soldOut);const stickyAddButtonUpdated=html.getElementById(`StickyProductSubmitButton-${sectionId}`);this.toggleStickyAddButton(stickyAddButtonUpdated?stickyAddButtonUpdated.hasAttribute("disabled"):!0,window.variantStrings.soldOut),publish(PUB_SUB_EVENTS.variantChange,{data:{sectionId,html,variant:this.currentVariant}})})}
1updateButtonPrice(){const productForm=document.getElementById(`product-form-${this.dataset.section}`);if(!productForm)return;const addButton=productForm.querySelector('[name="add"]');if(!addButton)return;const buttonPriceEl=addButton.querySelector(".buttonPrice");buttonPriceEl&&(this.currentVariant?buttonPriceEl.textContent=`\u2014 ${formatMoney(this.currentVariant.price,window.theme.settings.money_with_currency_format)}`:buttonPriceEl.textContent="")}toggleAddButton(disable=!0,text,modifyClass=!0){const productForm=document.getElementById(`product-form-${this.dataset.section}`);if(!productForm)return;const addButton=productForm.querySelector('[name="add"]'),addButtonText=productForm.querySelector('[name="add"] > span');addButton&&(disable?(addButton.setAttribute("disabled","disabled"),text&&(addButtonText.textContent=text)):(addButton.removeAttribute("disabled"),addButtonText.textContent=addButton.hasAttribute("data-preorder")?window.variantStrings.preOrder:window.variantStrings.addToCart))}toggleStickyAddButton(disable=!0,text,modifyClass=!0){const stickyProductForm=document.getElementById(`sticky-atc-${this.dataset.section}`);if(!stickyProductForm)return;const stickyAddButton=stickyProductForm.querySelector('[name="add"]'),stickyAddButtonText=stickyAddButton.querySelector('[name="add"] > span');stickyAddButton&&(disable?(stickyAddButton.setAttribute("disabled","disabled"),text&&(stickyAddButtonText.textContent=text)):(stickyAddButton.removeAttribute("disabled"),stickyAddButtonText.textContent=stickyAddButton.hasAttribute("data-preorder")?window.variantStrings.preOrder:window.variantStrings.addToCart))}updateStickyPrice(sectionId,html){const stickyPriceSourceId=`price-${sectionId}-sticky`,stickyPriceDestinationId=`price-${sectionId}-sticky`,source=html.getElementById(stickyPriceSourceId),destination=document.getElementById(stickyPriceDestinationId);source&&destination&&(destination.innerHTML=source.innerHTML,destination.classList.toggle("hidden",source.classList.contains("hidden")));const price=document.getElementById(`price-${sectionId}-sticky`);price&&price.classList.remove("hidden")}updateStickyImage(sectionId,html){const sourceImage=html.getElementById(`image-${sectionId}-sticky`),destinationImage=document.getElementById(`image-${sectionId}-sticky`);sourceImage&&destinationImage&&(destinationImage.src=sourceImage.src,destinationImage.srcset=sourceImage.srcset,destinationImage.sizes=sourceImage.sizes)}setUnavailable(){const button=document.getElementById(`product-form-${this.dataset.section}`),addButton=button.querySelector('[name="add"]'),addButtonText=button.querySelector('[name="add"] > span'),buttonSticky=document.getElementById(`sticky-atc-${this.dataset.section}`),addButtonSticky=buttonSticky?.querySelector('[name="add"]'),addButtonTextSticky=buttonSticky?.querySelector('[name="add"] > span'),price=document.getElementById(`price-${this.dataset.section}`),priceSticky=document.getElementById(`price-${this.dataset.section}-sticky`),inventory=document.getElementById(`Inventory-${this.dataset.section}`),sku=document.getElementById(`Sku-${this.dataset.section}`),pricePerItem=document.getElementById(`Price-Per-Item-${this.dataset.section}`),volumeNote=document.getElementById(`Volume-Note-${this.dataset.section}`),volumeTable=document.getElementById(`Volume-${this.dataset.section}`),qtyRules=document.getElementById(`Quantity-Rules-${this.dataset.section}`);addButton&&addButtonText&&(addButtonText.textContent=window.variantStrings.unavailable),addButtonSticky&&addButtonTextSticky&&(addButtonTextSticky.textContent=window.variantStrings.unavailable),price&&price.classList.add("hidden"),priceSticky&&priceSticky.classList.add("hidden"),inventory&&inventory.classList.add("hidden"),sku&&sku.classList.add("hidden"),pricePerItem&&pricePerItem.classList.add("hidden"),volumeNote&&volumeNote.classList.add("hidden"),volumeTable&&volumeTable.classList.add("hidden"),qtyRules&&qtyRules.classList.add("hidden")}getVariantData(){return this.variantData=this.variantData||JSON.parse(this.querySelector('[type="application/json"]').textContent),this.variantData}}customElements.define("variant-selects",VariantSelects);class AccountIcon extends HTMLElement{constructor(){super(),this.icon=this.querySelector(".icon")}connectedCallback(){document.addEventListener("storefront:signincompleted",this.handleStorefrontSignInCompleted.bind(this))}handleStorefrontSignInCompleted(event){event?.detail?.avatar&&this.icon?.replaceWith(event.detail.avatar.cloneNode())}}customElements.define("account-icon",AccountIcon);var dispatchCustomEvent=function(eventName){var data=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{}
1,detail={detail:data},event=new CustomEvent(eventName,data?detail:null);document.dispatchEvent(event)};const setScrollbarWidth=()=>{if(window.matchMedia("(min-width: 1024px)").matches){const scrollbarWidth=window.innerWidth-document.documentElement.clientWidth;document.documentElement.style.setProperty("--scrollbar-width",`${scrollbarWidth}px`)}else document.documentElement.style.setProperty("--scrollbar-width","0px")};setScrollbarWidth();class ResponsiveImage extends HTMLElement{constructor(){super(),this.handleIntersection=this.handleIntersection.bind(this),this.onImageLoad=this.onImageLoad.bind(this),this.onResize=this.onResize.bind(this),this.intersectionObserver=new IntersectionObserver(this.handleIntersection,{rootMargin:"10px",threshold:0}),this.resizeObserver=new ResizeObserver(this.onResize)}connectedCallback(){this.img=this.querySelector("img"),this.img&&this.img.setAttribute("loading","lazy")}disconnectedCallback(){this.img&&(this.img.removeEventListener("load",this.onImageLoad),this.intersectionObserver.unobserve(this.img),this.resizeObserver.unobserve(this.img),this.intersectionObserver.disconnect(),this.resizeObserver.disconnect())}onImageLoad(){this.img.classList.remove("img-loading")}handleIntersection(entries){entries.forEach(entry=>{if(entry.isIntersecting){const img=entry.target;this.hasAttribute("data-sizes")&&this.getAttribute("data-sizes")==="true"&&(this.updateSizes(img),this.resizeObserver.observe(img)),img.setAttribute("srcset",this.originalSrcset),this.intersectionObserver.unobserve(img)}})}onResize(entries){entries.forEach(entry=>{this.hasAttribute("data-sizes")&&this.getAttribute("data-sizes")==="true"&&this.updateSizes(entry.target)})}updateSizes(img){const width=Math.floor(img.getBoundingClientRect().width);img.setAttribute("sizes",`${width}px`)}}if(customElements.define("responsive-image",ResponsiveImage),!customElements.get("viewport-media")){class ViewportMedia extends HTMLElement{constructor(){super(),this.initObserver()}initObserver(){"IntersectionObserver"in window?(this.observer=new IntersectionObserver(entries=>{entries.forEach(entry=>{entry.isIntersecting&&(this.loadContent(),this.observer.unobserve(entry.target),this.observer.disconnect())})},{rootMargin:"200px 0px 200px 0px"}),this.observer.observe(this)):this.loadContent()}loadContent(){if(!this.getAttribute("loaded")){const template=this.querySelector("template");if(template&&template.content&&template.content.firstElementChild){const content=document.createElement("div");content.appendChild(template.content.firstElementChild.cloneNode(!0)),this.setAttribute("loaded",!0);const deferredElement=this.appendChild(content.querySelector("video, iframe"));if(deferredElement.nodeName==="IFRAME"){const src=deferredElement.getAttribute("data-src");src&&deferredElement.setAttribute("src",src),deferredElement.onload=()=>this.removePlaceholder()}if(deferredElement.nodeName==="VIDEO"){const isAutoplay=deferredElement.getAttribute("autoplay"),poster=deferredElement.getAttribute("poster");!isAutoplay&&poster&&deferredElement.setAttribute("poster",poster),deferredElement.onloadeddata=()=>{this.removePlaceholder(),isAutoplay&&(deferredElement.muted=!0,deferredElement.play().catch(error=>{console.warn("Autoplay failed:",error)})),this.initVideoControls(deferredElement)},deferredElement.load()}}}}initVideoControls(video){const playPauseButton=this.querySelector(".video-play-pause"),muteToggleButton=this.querySelector(".video-mute-toggle"),progressFilled=this.querySelector(".video-progress-filled");let updateProgress;if(playPauseButton&&(playPauseButton.addEventListener("click",()=>{video.paused?(video.play(),playPauseButton.classList.remove("is-play"),playPauseButton.classList.add("is-pause"),updateProgress=requestAnimationFrame(updateProgressBar)):(video.pause(),playPauseButton.classList.remove("is-pause"),playPauseButton.classList.add("is-play"),cancelAnimationFrame(updateProgress))}),video.addEventListener("ended",()=>{playPauseButton&&(playPauseButton.classList.remove("is-pause"),playPauseButton.classList.add("is-play"))})),muteToggleButton&&muteToggleButton.addEventListener("click",()=>{video.muted=!video.muted,video.muted?(muteToggleButton.classList.add("is-muted"),muteToggleButton.classList.remove("is-unmuted")):(muteToggleButton.classList.remove("is-muted"),muteToggleButton.classList.add("is-unmuted"))}),progressFilled){const updateProgressBar2=()=>{const percentage=video.currentTime/video.duration*100||0;progressFilled.style.width=`${percentage}%`,updateProgress=requestAnimationFrame(updateProgressBar2)};video.addEventListener("timeupdate",updateProgressBar2),video.addEventListener("ended",()=>{cancelAnimationFrame(updateProgress),progressFilled&&(progressFilled.style.width="0%")}),video.addEventListener("canplay",()=>{progressFilled&&(progressFilled.style.width="0%"),video.paused||(updateProgress=requestAnimationFrame(updateProgressBar2))})}}removePlaceholder(){const placeholder=this.querySelector(".video-placeholder");placeholder&&(placeholder.style.display="none")}}customElements.define("viewport-media",ViewportMedia)}class SplideCarousel extends HTMLElement{constructor(){super(),this.slideInstance=null,this.isUserInteracting=!1}connectedCallback(){if(!this.slideInstance){const splideElement=this.querySelector(".splide"),options=splideElement.getAttribute("data-splide");if(options)try{const parsedOptions=JSON.parse(options);this.slideInstance=new Splide(splideElement,parsedOptions),this.slideInstance.on("mounted",()=>{this.handleVideoPlayback()}),this.slideInstance.on("moved",()=>{this.handleVideoPlayback()}),setTimeout(()=>this.handleVideoPlayback(),100),setTimeout(()=>this.initializeProgressBar(),300),this.fixFadeRtlBug(),this.slideInstance.mount()}catch(e){console.error("Failed to initialize Splide carousel:",e)}this.initObserver(),Shopify.designMode&&this.addShopifyEventListeners()}}disconnectedCallback(){Shopify.designMode&&this.removeShopifyEventListeners()}initObserver(){"IntersectionObserver"in window?(this.observer=new IntersectionObserver(entries=>
1{entries.forEach(entry=>{entry.isIntersecting&&this.handleVideoPlayback()})},{rootMargin:"0px 0px -50% 0px"}),this.observer.observe(this)):this.handleVideoPlayback()}handleVideoPlayback(){if(!this.slideInstance||this.hasAttribute("data-play-videos")&&this.getAttribute("data-play-videos")==="true")return;this.slideInstance.Components.Elements.slides.forEach((slide,index)=>{const video=slide.querySelector(".shopable-video__video");video&&!slide.classList.contains("is-clone")?this.slideInstance.index===index?video.paused&&video.play().catch(e=>{console.error("Error playing video:",e)}):video.paused||video.pause():video&&video.pause()})}addShopifyEventListeners(){this.handleBlockSelect=this.handleBlockSelect.bind(this),this.handleBlockDeselect=this.handleBlockDeselect.bind(this),document.addEventListener("shopify:block:select",this.handleBlockSelect),document.addEventListener("shopify:block:deselect",this.handleBlockDeselect)}removeShopifyEventListeners(){document.removeEventListener("shopify:block:select",this.handleBlockSelect),document.removeEventListener("shopify:block:deselect",this.handleBlockDeselect)}handleBlockSelect(event){const blockElement=event.target;if(blockElement.closest("splide-carousel")===this&&this.slideInstance){const index=parseInt(blockElement.getAttribute("data-splide-index"));isNaN(index)||(this.slideInstance.go(index),this.isUserInteracting=!0,this.slideInstance.Components.Autoplay.pause())}}handleBlockDeselect(event){event.target.closest("splide-carousel")===this&&this.slideInstance&&(this.isUserInteracting=!1)}initializeProgressBar(){const bar=this.querySelector(".splide-carousel-progress-bar");if(bar&&this.slideInstance){const updateProgressBar2=()=>{requestAnimationFrame(()=>{const end=this.slideInstance.Components.Controller.getEnd()+1,rate=Math.min((this.slideInstance.index+1)/end,1);bar.style.width=`${100*rate}%`})};updateProgressBar2(),this.slideInstance.on("mounted move",updateProgressBar2),this.slideInstance.on("destroy",()=>{this.slideInstance.off("mounted move",updateProgressBar2)})}}fixFadeRtlBug(){this.getAttribute("data-fix-fade-rtl")==="true"&&(()=>{const html=document.querySelector("html");return(html&&html.getAttribute("dir"))==="rtl"})()&&this.slideInstance.on("ready",()=>
1{this.querySelectorAll(".splide__slide").forEach(slide=>{const transform=slide.style.transform;transform&&transform.includes("-")&&(slide.style.transform=transform.replace("-",""))})})}}if(customElements.define("splide-carousel",SplideCarousel),!customElements.get("slide-show")){class Slideshow extends HTMLElement{constructor(){super(),this.slideInstance=null,this.videoStates=new Map,this.isUserInteracting=!1,this.movingCursor=null,this.isMouseOverSlideshow=!1,this.cursorUpdateRAF=null,this.lastMouseEvent=null}connectedCallback(){this.init(),this.initializeMovingCursor(),Shopify&&Shopify.designMode&&(document.addEventListener("shopify:block:select",this.handleBlockSelect.bind(this)),document.addEventListener("shopify:block:deselect",this.handleBlockDeselect.bind(this)))}disconnectedCallback(){this.cursorUpdateRAF&&cancelAnimationFrame(this.cursorUpdateRAF)}init(){const options=this.getAttribute("data-splide");if(options){const parsedOptions=JSON.parse(options);this.slideInstance=new Splide(this,parsedOptions),this.getAttribute("data-pagination")==="numbers"&&this.slideInstance.on("pagination:mounted",this.customizePagination),this.fixFadeRtlBug(),this.slideInstance.mount(),this.slideInstance.on("moved",this.handleVideoPlayback.bind(this)),this.slideInstance.on("moved",this.updateSlideCounter.bind(this)),this.slideInstance.on("moved",this.handleFirstSlide.bind(this)),this.updateSlideCounter(this.slideInstance.index)}}handleFirstSlide(){this.slideInstance.Components.Elements.slides.forEach(sli
1de=>{slide.classList.remove("first-slide")})}fixFadeRtlBug(){document.documentElement.getAttribute("dir")==="rtl"&&this.slideInstance.on("ready",()=>{this.querySelectorAll(".splide__slide").forEach(slide=>{const transform=slide.style.transform;transform?.includes("-")&&(slide.style.transform=transform.replace("-",""))})})}handleVideoPlayback(){this.slideInstance.Components.Elements.slides.forEach(slide=>{const video=slide.querySelector("video");video&&(video.muted=!0,slide.classList.contains("is-active")?video.play():video.pause())})}updateSlideCounter(newIndex){const totalSlides=this.slideInstance.length,currentSlideElement=this.querySelector(".current-slide"),totalSlidesElement=this.querySelector(".total-slides"),slideCounter=this.querySelector(".slide-counter");currentSlideElement&&totalSlidesElement&&(slideCounter&&(slideCounter.classList.remove("slide-counter-progress"),slideCounter.offsetWidth),totalSlidesElement.textContent=totalSlides,currentSlideElement.textContent=newIndex+1,slideCounter&&slideCounter.classList.add("slide-counter-progress"))}customizePagination(data){data.list.classList.add("splide__pagination--custom"),data.items.forEach(item=>{item.button.textContent=String(item.page+1).padStart(2,"0")})}initializeMovingCursor(){this.movingCursor=this.querySelector(".slideshow__moving-cursor"),this.movingCursor&&(this.addEventListener("mouseenter",this.handleMouseEnterSlideshow.bind(this)),this.addEventListener("mouseleave",this.handleMouseLeaveSlideshow.bind(this)),this.addEventListener("mousemove",this.handleMouseMoveOnSlideshow.bind(this)),this.addEventListener("click",this.handleClickOnSlideshow.bind(this)))}isInteractiveElement(target){return!target||typeof target.closest!="function"?!1:target.closest(".slideshow-interactive-element, .splide__pagination, .splide__arrow")}handleMouseEnterSlideshow(event){!this.movingCursor||this.slideInstance&&this.slideInstance.length<=1||(this.isMouseOverSlideshow=!0,this.lastMouseEvent=event,this.isInteractiveElement(event.target)?(this.classList.remove("cursor-active"),this.movingCursor.classList.remove("visible")):(this.classList.add("cursor-active"),this.movingCursor.classList.add("visible"),this.updateMovingCursorState()))}handleMouseLeaveSlideshow(){this.isMouseOverSlideshow=!1,this.lastMouseEvent=null,this.movingCursor&&this.movingCursor.classList.remove("visible"),this.classList.remove("cursor-active"),this.cursorUpdateRAF&&cancelAnimationFrame(this.cursorUpdateRAF)}handleMouseMoveOnSlideshow(event){if(this.lastMouseEvent=event,!this.isMouseOverSlideshow||!this.movingCursor||!this.slideInstance||this.slideInstance.length<=1){this.movingCursor&&this.movingCursor.classList.remove("visible"),this.classList.remove("cursor-active");return}if(this.isInteractiveElement(event.target)){this.movingCursor.classList.remove("visible"),this.classList.remove("cursor-active"),this.cursorUpdateRAF&&(cancelAnimationFrame(this.cursorUpdateRAF),this.cursorUpdateRAF=null);return}this.movingCursor.classList.contains("visible")||this.movingCursor.classList.add("visible"),this.classList.contains("cursor-active")||this.classList.add("cursor-active"),this.cursorUpdateRAF&&cancelAnimationFrame(this.cursorUpdateRAF),this.cursorUpdateRAF=requestAnimationFrame(()=>{this.updateMovingCursorState()})}updateMovingCursorState(){if(!this.movingCursor||!this.isMouseOverSlideshow||!this.lastMouseEvent)return;const event=this.lastMouseEvent,slideshowRect=this.getBoundingClientRect(),xRelativeToSlideshow=event.clientX-slideshowRect.left,yRelativeToSlideshow=event.clientY-slideshowRect.top;this.movingCursor.style.left=`${xRelativeToSlideshow}px`,this.movingCursor.style.top=`${yRelativeToSlideshow}px`;const mouseXInSlideshow=xRelativeToSlideshow,slideshowWidth=slideshowRect.width;mouseXInSlideshow<slideshowWidth/2?(this.movingCursor.classList.add("prev-style"),this.movingCursor.classList.remove("next-style")):(this.movingCursor.classList.add("next-style"),this.movingCursor.classList.remove("prev-style"))}handleClickOnSlideshow(event){if(this.isInteractiveElement(event.target)||!this.slideInstance||this.slideInstance.length<=1||this.isUserInteracting)return;const rect=this.getBoundingClientRect(),mouseXInSlideshow=event.clientX-rect.left,slideshowWidth=rect.width;mouseXInSlideshow<slideshowWidth/2?this.slideInstance.go("<"):this.slideInstance.go(">")}handleBlockSelect(event){if(!this.contains(event.target))return;const slideElement=event.target.closest(".splide__slide");if(this.slideInstance&&slideElement&&this.contains(slideElement)){const index=
1parseInt(slideElement.getAttribute("data-splide-index"));isNaN(index)||(this.slideInstance.go(index),this.isUserInteracting=!0,this.slideInstance.Components.Autoplay&&this.slideInstance.options.autoplay&&this.slideInstance.Components.Autoplay.pause())}}handleBlockDeselect(event){this.slideInstance&&(this.isUserInteracting=!1)}}customElements.define("slide-show",Slideshow)}if(!customElements.get("async-carousel")){class AsyncCarousel extends HTMLElement{constructor(){super(),this.slideInstance=null,this.thumbnailInstance=null,this.isUserInteracting=!1,this.thumbnails=null,this.currentThumbnail=null}connectedCallback(){this.initCarousel()}initCarousel(){const mainSlider=this.querySelector('[data-slider="main"]'),thumbnailSlider=this.querySelector('[data-slider="thumbnail"]');if(mainSlider){const mainOptions=JSON.parse(mainSlider.getAttribute("data-splide")||"{}");if(this.slideInstance=new Splide(mainSlider,mainOptions),thumbnailSlider){const thumbnailOptions=JSON.parse(thumbnailSlider.getAttribute("data-splide")||"{}");this.thumbnailInstance=new Splide(thumbnailSlider,thumbnailOptions),this.slideInstance.sync(this.thumbnailInstance),this.updateThumbnailARIA(thumbnailSlider)}this.fixFadeRtlBug(),this.slideInstance.mount(),this.thumbnailInstance&&this.thumbnailInstance.mount(),setTimeout(()=>this.initializeProgressBar(),300),this.initThumbnails(),this.addShopifyEventListeners()}}disconnectedCallback(){Shopify.designMode&&this.removeShopifyEventListeners()}addShopifyEventListeners(){Shopify.designMode&&(document.addEventListener("shopify:block:select",this.handleBlockSelect.bind(this)),document.addEventListener("shopify:block:deselect",this.handleBlockDeselect.bind(this)))}removeShopifyEventListeners(){document.removeEventListener("shopify:block:select",this.handleBlockSelect.bind(this)),document.removeEventListener("shopify:block:deselect",this.handleBlockDeselect.bind(this))}handleBlockSelect(event){const blockElement=event.target,index=parseInt(blockElement.getAttribute("data-splide-index"));!isNaN(index)&&this.slideInstance&&(this.slideInstance.go(index),this.isUserInteracting=!0,this.slideInstance.Components.Autoplay.pause())}handleBlockDeselect(){this.isUserInteracting=!1}initThumbnails(){this.thumbnails=this.querySelectorAll(".thumbnail-item"),this.thumbnails.forEach((thumbnail,index)=>{thumbnail.addEventListener("click",()=>{this.slideInstance.go(index)})}),this.slideInstance.on("mounted move",()=>{const thumbnail=this.thumbnails[this.slideInstance.index];thumbnail&&(this.currentThumbnail&&this.currentThumbnail.classList.remove("is-active"),thumbnail.classList.add("is-active"),this.currentThumbnail=thumbnail)})}initializeProgressBar(){const bar=this.querySelector(".splide-carousel-progress-bar");if(bar&&this.slideInstance){const updateProgressBar2=()=>{const end=this.slideInstance.Components.Controller.getEnd()+1,rate=Math.min((this.slideInstance.index+1)/end,1);bar.style.width=`${100*rate}%`};updateProgressBar2(),this.slideInstance.on("mounted move",updateProgressBar2)}}fixFadeRtlBug(){this.getAttribute("data-fix-fade-rtl")==="true"&&(()=>{const html=document.querySelector("html");return(html&&html.getAttribute("dir"))==="rtl"})()&&this.slideInstance.on("ready",()=>{this.querySelector('[data-slider="main"]').querySelectorAll(".splide__slide").forEach(sli
1de=>{const transform=slide.style.transform;transform&&transform.includes("-")&&(slide.style.transform=transform.replace("-",""))})})}updateThumbnailARIA(thumbnailSlider){thumbnailSlider.querySelectorAll(".splide__slide").forEach(thumbnailItem=>{thumbnailItem.setAttribute("role","group")})}}customElements.define("async-carousel",AsyncCarousel)}if(!customElements.get("gallery-carousel")){class GalleryCarousel extends HTMLElement{constructor(){super(),this.main=null,this.thumbnails=null,this.shouldAutoplay=!1,this.originalSlides=[],this.originalThumbnails=[],this.activeMediaComponents=new Map}connectedCallback(){const mainCarousel=this.querySelector('[id^="Main-Carousel"]'),thumbnailCarousel=this.querySelector('[id^="Thumbnail-Carousel"]');if(!mainCarousel||!thumbnailCarousel){console.error("Main or thumbnail carousel element not found.");return}this.originalSlides=[...mainCarousel.querySelectorAll(".splide__slide")],this.originalThumbnails=[...thumbnailCarousel.querySelectorAll(".splide__slide")],this.shouldAutoplay=this.getAttribute("data-autoplay")==="true",mainCarousel.classList.add("is-initializing");const mainOptions=this.getCarouselOptions(mainCarousel),thumbnailOptions=this.getCarouselOptions(thumbnailCarousel),initialSlideIndex=this.getInitialSlideIndex(thumbnailCarousel);if(mainOptions.start=initialSlideIndex,thumbnailOptions.start=initialSlideIndex,this.initializeCarousels(mainCarousel,mainOptions,thumbnailCarousel,thumbnailOptions),this.dataset.mediaGrouping==="true"){const defaultFilter=this.dataset.filterSelected;this.selectedSlideIndex=initialSlideIndex,this.filterSlides(defaultFilter,!0),document.querySelectorAll(".variant-picker__color input[type='radio']").forEach(radio=>{radio.addEventListener("change",()=>this.filterSlides(radio.value,!1))})}}getCarouselOptions(carouselElement){return JSON.parse(carouselElement.getAttribute("data-splide")||"{}")}getInitialSlideIndex(thumbnailCarousel){if(!thumbnailCarousel)return 0;const selectedThumbnailSlide=thumbnailCarousel.querySelector('.splide__slide[data-selected="true"]');return selectedThumbnailSlide?[...thumbnailCarousel.querySelectorAll(".splide__slide")].indexOf(selectedThumbnailSlide):0}initializeCarousels(mainCarousel,mainOptions,thumbnailCarousel,thumbnailOptions){this.main=new Splide(mainCarousel,mainOptions),this.thumbnails=new Splide(thumbnailCarousel,thumbnailOptions),thumbnailCarousel.getAttribute("data-thumbnail")==="vertical"&&(this.thumbnails.on("mounted",()=>{const thumbnailList=thumbnailCarousel.querySelector(".splide__list");thumbnailList&&thumbnailList.setAttribute("role","tablist")}),this.thumbnails.on("mounted",this.updateThumbnailARIA.bind(this))),this.main.on("mounted",()=>{mainCarousel.classList.remove("is-initializing"),this.main.index!==void 0&&this.updateSlideCounter(this.main.index)}),this.main.on("active",this.handleMainActiveSlide.bind(this)),this.main.on("move",(newIndex,prevIndex)=>{if(typeof prevIndex<"u"&&prevIndex!==null){const prevSlide=this.main.Components.Elements.slides[prevIndex];prevSlide&&this.pauseMediaInSlide(prevSlide)}}),this.thumbnails.mount(),this.main.sync(this.thumbnails),this.main.mount(),this.main.on("moved",this.updateSlideCounter.bind(this)),this.updateSlideCounter(this.main.index)}pauseMediaInSlide(slideElement){if(!slideElement)return;slideElement.querySelectorAll("deferred-media, product-model, video, iframe").forEach(media=>{typeof media.pause=="function"||media.nodeName==="VIDEO"?media.pause():media.nodeName==="IFRAME"&&(media.classList.contains("js-youtube")?media.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*"):media.classList.contains("js-vimeo")&&media.contentWindow.postMessage('{"method":"pause"}',"*"))})}updateSlideCounter(newIndex){const totalSlides=this.main.length,currentSlideElement=this.querySelector(".current-slide"),totalSlidesElement=this.querySelector(".total-slides");currentSlideElement&&totalSlidesElement&&(totalSlidesElement.textContent=totalSlides,currentSlideElement.textContent=newIndex+1)}handleMainActiveSlide(newSlide){const activeSlideElement=newSlide.slide,hasProductModel=activeSlideElement.querySelector("product-model")!==null;this.main&&this.main.Components&&this.main.Components.Drag&&this.main.Components.Drag.disable(hasProductModel);const mediaComponent=activeSlideElement.querySelector("deferred-media, product-model");mediaComponent&&(this.shouldAutoplay?typeof mediaComponent.activate=="function"?mediaComponent.activate():typeof mediaComponent.play=="function"&&mediaComponent.play():typeof mediaComponent.pause=="function"&&mediaComponent.pause()),this.handleActiveSlide(activeSlideElement)}handleActiveSlide(slideElement){slideElement&&!slideElement.dataset.played&&this.shouldAutoplay&&(slideElement.dataset.played=!0)}updateCarouselImages(mediaId){if(!this.main)return;const mainSlides=this.main.Components.Elements.slides,targetSlide=mainSlides.find(slide=>slide.getAttribute("data-media-id")===mediaId.toString());
1if(targetSlide){const targetIndex=mainSlides.indexOf(targetSlide);targetIndex!==-1&&this.main.go(targetIndex,{transition:!1})}if(this.hasAttribute("desktop-grid")&&window.innerWidth>=768){const galleryListsContainer=this.querySelector(".splide__gallery");if(galleryListsContainer){const slides=galleryListsContainer.querySelectorAll(".splide__slide"),slideToMove=Array.from(slides).find(item=>item.getAttribute("data-media-id")===mediaId.toString());if(slideToMove&&(slides.forEach(slide=>{slide!==slideToMove&&slide.classList.remove("splide__slide--current-variant")}),slideToMove.classList.add("splide__slide--current-variant"),galleryListsContainer.firstElementChild!==slideToMove)){galleryListsContainer.insertBefore(slideToMove,galleryListsContainer.firstElementChild);const headerElem=document.querySelector(".header"),headerOffset=headerElem?headerElem.offsetHeight+16:16,offsetPosition=slideToMove.getBoundingClientRect().top+window.pageYOffset-headerOffset;window.scrollTo({top:offsetPosition,behavior:"smooth"})}}}}updateThumbnailARIA(){if(!this.thumbnails||!this.thumbnails.Components||!this.thumbnails.Components.Elements.list)return;this.thumbnails.Components.Elements.list.querySelectorAll(".splide__slide").forEach(thumbnailItem=>{thumbnailItem.setAttribute("role","tab")})}filterSlides(group,isInitialFilter=!1){if(this.hasAttribute("desktop-grid")&&window.innerWidth>=768){this.filterSlidesDesktopGrid(group);return}this.filterSlidesCarousel(group,isInitialFilter)}filterSlidesDesktopGrid(group){const galleryContainer=this.querySelector(".splide__gallery");if(!galleryContainer)return;const slides=galleryContainer.querySelectorAll(".splide__slide");let visibleCount=0;
1slides.forEach(slide=>{if(!group||group.trim()===""||slide.dataset.mediaGroup===group){slide.style.display="",slide.classList.remove("hidden-by-filter"),visibleCount++;const deferredMedia=slide.querySelector("deferred-media");deferredMedia&&(deferredMedia.hasAttribute("loaded")?this.ensureMediaFunctionality(deferredMedia):deferredMedia.hasAttribute("autoplay")&&(deferredMedia.visibilityObserver||deferredMedia._initiateAutoplayObserver()))}else{slide.style.display="none",slide.classList.add("hidden-by-filter");const deferredMedia=slide.querySelector("deferred-media");deferredMedia&&(deferredMedia.hasAttribute("playing")&&deferredMedia.pause(),deferredMedia.visibilityObserver&&(deferredMedia.visibilityObserver.disconnect(),deferredMedia.visibilityObserver=null))}});const currentSlideElement=this.querySelector(".current-slide"),totalSlidesElement=this.querySelector(".total-slides");currentSlideElement&&totalSlidesElement&&(currentSlideElement.textContent=visibleCount>0?"1":"0",totalSlidesElement.textContent=visibleCount)}filterSlidesCarousel(group,isInitialFilter=!1){if(!this.main||!this.thumbnails){console.error("Splide instances not initialized");return}let mainList=this.main.Components.Elements.list,thumbList=this.thumbnails.Components.Elements.list;if(!mainList||!thumbList){console.error("Splide list element not found for main or thumbnails.");return}this.saveMediaStates(),mainList.innerHTML="",thumbList.innerHTML="";let slidesToShow=this.originalSlides,thumbsToShow=this.originalThumbnails;if(group&&group.trim()!==""){let filteredSlides=this.originalSlides.filter(slide=>slide.dataset.mediaGroup===group),filteredThumbs=this.originalThumbnails.filter(slide=>slide.dataset.mediaGroup===group);filteredSlides.length>0&&filteredThumbs.length>0&&(slidesToShow=filteredSlides,thumbsToShow=filteredThumbs)}this.updateArrowVisibility(thumbsToShow.length),slidesToShow.forEach(sli
1de=>{const clonedSlide=slide.cloneNode(!0);mainList.appendChild(clonedSlide),this.initializeMediaInSlide(clonedSlide)}),thumbsToShow.forEach(slide=>{const clonedThumb=slide.cloneNode(!0);thumbList.appendChild(clonedThumb)});try{if(this.main.refresh(),this.thumbnails.refresh(),slidesToShow.length>0){let targetIndex=0;if(isInitialFilter){const selectedSlide=slidesToShow.find(slide=>slide.querySelector('[data-selected="true"]')||slide.hasAttribute("data-selected"));selectedSlide&&(targetIndex=slidesToShow.indexOf(selectedSlide))}this.main.go(targetIndex),this.thumbnails.go(targetIndex),this.updateSlideCounter(targetIndex),this.restoreMediaStates()}else this.updateSlideCounter(-1),console.warn("No slides to display in the carousel after filtering.")}catch(error){console.error("Error refreshing Splide instances:",error)}this.querySelectorAll("responsive-image").forEach(responsiveImg=>{responsiveImg.connectedCallback&&typeof responsiveImg.connectedCallback=="function"?responsiveImg.connectedCallback():responsiveImg.init&&typeof responsiveImg.init=="function"&&responsiveImg.init()}),this.updateThumbnailARIA()}initializeMediaInSlide(slide){if(!slide)return;const deferredMedia=slide.querySelector("deferred-media");if(deferredMedia)try{deferredMedia.removeAttribute("loaded"),deferredMedia.removeAttribute("playing"),deferredMedia.removeAttribute("has-play-pause-button"),deferredMedia.mediaElement=null,deferredMedia.playerController=null;const poster=deferredMedia.querySelector('[id^="Deferred-Poster-"]'),template=deferredMedia.querySelector("template");if(poster&&template){const boundActivate=deferredMedia.activate.bind(deferredMedia);deferredMedia.boundActivate&&poster.removeEventListener("click",deferredMedia.boundActivate),poster.addEventListener("click",boundActivate),poster.style.display="",deferredMedia.poster=poster,deferredMedia.template=template,deferredMedia.boundActivate=boundActivate,deferredMedia.hasAttribute("autoplay")&&deferredMedia._initiateAutoplayObserver&&deferredMedia._initiateAutoplayObserver()}}catch(error){console.error("Error initializing deferred-media:",error)}const productModel=slide.querySelector("product-model");if(productModel)try{productModel.connectedCallback&&productModel.connectedCallback()}catch(error){console.error("Error initializing product-model:",error)}}ensureMediaFunctionality(mediaElement){if(!mediaElement||mediaElement.nodeType!==1)return;if(mediaElement.hasAttribute("loaded")&&mediaElement.hasAttribute("autoplay")){const playPauseButton=mediaElement.querySelector(".deferred-media-control__play-pause");if(playPauseButton&&!mediaElement.hasAttribute("has-play-pause-button")){const boundHandleClick=mediaElement._handlePlayPauseClick?.bind(mediaElement);boundHandleClick&&(playPauseButton.addEventListener("click",boundHandleClick),mediaElement.setAttribute("has-play-pause-button",""),mediaElement.playPauseButton=playPauseButton)}}const poster=mediaElement.querySelector('[id^="Deferred-Poster-"]');if(poster&&!mediaElement.hasAttribute("loaded")){const boundActivate=mediaElement.activate?.bind(mediaElement);boundActivate&&(poster.removeEventListener("click",boundActivate),poster.addEventListener("click",boundActivate),mediaElement.boundActivate=boundActivate)}}saveMediaStates(){this.activeMediaComponents.clear(),this.querySelectorAll("deferred-media, product-model").forEach(media=>{const mediaId=media.closest("[data-media-id]")?.dataset.mediaId;mediaId&&this.activeMediaComponents.set(mediaId,{isLoaded:media.hasAttribute("loaded"),isPlaying:media.hasAttribute("playing"),hasAutoplay:media.hasAttribute("autoplay")})})}restoreMediaStates(){this.activeMediaComponents.forEach((state,mediaId)=>{const slide=this.querySelector(`[data-media-id="${mediaId}"]`);if(slide){const media=slide.querySelector("deferred-media, product-model");media&&(state.isLoaded&&!media.hasAttribute("loaded")?media._initializeMedia().then(loaded=>{loaded&&state.isPlaying&&setTimeout(()=>media.activate(),100)}):state.isPlaying&&media.hasAttribute("loaded")?setTimeout(()=>media.activate(),100):state.hasAutoplay&&!media.hasAttribute("loaded")&&media._initiateAutoplayObserver())}})}updateArrowVisibility(slideCount){const arrows=this.querySelectorAll(".splide__arrows-thumbnail"),shouldShow=slideCount>5;arrows.forEach(arrow=>{shouldShow?arrow.classList.remove("hidden"):arrow.classList.add("hidden")})}}
1customElements.define("gallery-carousel",GalleryCarousel)}if(!customElements.get("product-recommendations")){class ProductRecommendations extends HTMLElement{constructor(){super()}connectedCallback(){this.dataset.url?this.loadRecommendations():console.error("No data-url attribute found.")}async loadRecommendations(){try{const response=await fetch(this.dataset.url);if(!response.ok)throw new Error(`Failed to fetch: ${response.status}`);const text=await response.text(),recommendations=new DOMParser().parseFromString(text,"text/html").querySelector("product-recommendations");recommendations&&recommendations.innerHTML.trim()?this.renderRecommendations(recommendations.innerHTML):console.warn("No product recommendations found.")}catch(error){console.error("Error fetching product recommendations:",error)}}renderRecommendations(html){this.innerHTML=html,this.initCarousels(),this.classList.add("product-recommendations--loaded")}initCarousels(){this.querySelectorAll("splide-carousel").forEach(carousel=>carousel.connectedCallback?.())}}customElements.define("product-recommendations",ProductRecommendations)}class ComponentDrawer extends HTMLElement{constructor(){super(),this.overlay=this.querySelector(".drawer-overlay"),this.drawer=this.querySelector(".drawer-content"),this.closeButton=this.querySelector(".close-drawer-btn"),this.triggerButton=null,this.overlay.addEventListener("click",()=>this.close()),this.closeButton.addEventListener("click",()=>this.close()),this.handleKeyPress=this.handleKeyPress.bind(this),this.trapFocus=this.trapFocus.bind(this)}connectedCallback(){this.hasAttribute("role")||this.setAttribute("role","dialog"),document.addEventListener("keydown",this.handleKeyPress)}disconnectedCallback(){document.removeEventListener("keydown",this.handleKeyPress),document.removeEventListener("focus",this.trapFocus,!0)}open(triggerButton){this.triggerButton=triggerButton,this.setAttribute("open",""),document.body.classList.add("overflow-hidden"),this.drawer.setAttribute("aria-hidden","false"),this.closeButton.focus(),document.addEventListener("focus",this.trapFocus,!0)}close(){this.removeAttribute("open"),document.body.classList.remove("overflow-hidden"),this.drawer.setAttribute("aria-hidden","true"),document.removeEventListener("focus",this.trapFocus,!0),this.triggerButton&&(this.triggerButton.focus(),this.triggerButton=null)}handleKeyPress(event){event.key==="Escape"&&this.close()}trapFocus(event){this.contains(event.target)||(event.stopPropagation(),this.closeButton.focus())}static get observedAttributes(){return["open"]}}customElements.define("component-drawer",ComponentDrawer);class SearchDrawer extends ComponentDrawer{constructor(){super(),this.predictiveSearch=this.querySelector("predictive-search"),this.openTransitionEndHandler=this.openTransitionEndHandler.bind(this)}open(triggerButton){this.triggerButton=triggerButton,this.setAttribute("open",""),document.body.classList.add("overflow-hidden"),this.drawer.setAttribute("aria-hidden","false"),this.addEventListener("transitionend",this.openTransitionEndHandler),document.addEventListener("focus",this.trapFocus,!0)}openTransitionEndHandler(event){event.target===this.overlay&&(this.removeEventListener("transitionend",this.openTransitionEndHandler),this.predictiveSearch&&setTimeout(()=>{const focusElement=this.predictiveSearch.querySelector('input:not([type="hidden"])');focusElement&&typeof focusElement.focus=="function"&&focusElement.focus()},150))}close(){if(this.predictiveSearch){const inputElement=this.predictiveSearch.querySelector('input:not([type="hidden"])');inputElement&&(inputElement.value=""),this.predictiveSearch.hasAttribute("open")&&this.predictiveSearch.removeAttribute("open"),this.predictiveSearch.setAttribute("results","false")}super.close()}}customElements.define("search-drawer",SearchDrawer);class DrawerButton extends HTMLElement{constructor(){super(),this.handleClick=this.handleClick.bind(this),this.handleKeyPress=this.handleKeyPress.bind(this)}connectedCallback(){this.targetId=this.getAttribute("data-target"),this.targetDrawer=document.getElementById(this.targetId),this.setAttribute("tabindex","0"),this.setAttribute("role","button"),this.targetDrawer?(this.addEventListener("click",this.handleClick),this.addEventListener("keydown",this.handleKeyPress)):console.warn(`Drawer element with ID '${this.targetId}' does not exist.`)}disconnectedCallback(){this.removeEventListener("click",this.handleClick),this.removeEventListener("keydown",this.handleKeyPress)}handleKeyPress(event){(event.key==="Enter"||event.key===" ")&&(event.preventDefault(),this.handleClick())}handleClick(){this.targetDrawer&&typeof this.targetDrawer.open=="function"&&this.targetDrawer.open(this)}}if(customElements.define("drawer-button",DrawerButton),!customElements.get("quick-view")){class QuickView extends HTMLElement{constructor(){super(),this.initElements(),this.bindEvents()}initElements(){const modal=document.getElementById("product-quick-view");this.elements={overlay:document.querySelector(".product-quick-view__overlay"),modal,body:document.body,closeButton:modal?.querySelector(".product-quick-view__
1close"),modalContent:modal?.querySelector("#product-quick-view__product-content")}}bindEvents(){const{overlay,closeButton,modal}=this.elements;this.addEventListener("click",this.onQuickViewClick.bind(this)),this.addEventListener("keydown",this.onQuickViewKeydown.bind(this)),closeButton&&(overlay.addEventListener("click",this.closeQuickView.bind(this)),closeButton.addEventListener("click",this.closeQuickView.bind(this)),document.addEventListener("keydown",this.onKeyDown.bind(this))),modal?.addEventListener("transitionend",this.onTransitionEnd.bind(this))}onKeyDown(event){event.key==="Escape"&&this.elements.modal.classList.contains("quick-view-loaded")&&this.closeQuickView()}onQuickViewKeydown(event){(event.key==="Enter"||event.key===" ")&&(event.preventDefault(),this.onQuickViewClick(event))}trapFocus(event){if(event.key==="Tab"){const focusableContent=this.elements.modal.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'),firstFocusableElement=focusableContent[0],lastFocusableElement=focusableContent[focusableContent.length-1];event.shiftKey?document.activeElement===firstFocusableElement&&(event.preventDefault(),lastFocusableElement.focus()):document.activeElement===lastFocusableElement&&(event.preventDefault(),firstFocusableElement.focus())}}onTransitionEnd(){!this.elements.modal.classList.contains("quick-view-loaded")&&this.elements.modalContent.innerHTML!==""&&(this.elements.modalContent.innerHTML="")}async onQuickViewClick(event){event.preventDefault();const quickViewUrl=this.buildProductUrl();if(quickViewUrl){this.classList.add("loading"),this.elements.modalContent.classList.add("is-loading");try{if(this.cache=this.cache||{},!this.cache[quickViewUrl]||Date.now()-this.cache[quickViewUrl].timestamp>6e4){const content=await this.fetchProductContent(quickViewUrl);this.cache[quickViewUrl]={content,timestamp:Date.now()}}this.renderQuickView(this.cache[quickViewUrl].content,quickViewUrl)}finally{this.classList.remove("loading"),setTimeout(()=>{this.elements.modalContent.classList.remove("is-loading")},150)}}}buildProductUrl(){const url=this.dataset.productUrl;return url?`${url.split("?")[0]}?view=quick-view`:""}async fetchProductContent(url){const text=await(await fetch(url)).text();return new DOMParser().parseFromString(text,"text/html").querySelector("#product-quick-view__product-content").innerHTML}renderQuickView(content,url){content&&(this.elements.modalContent.innerHTML=content,requestAnimationFrame(()=>{this.loadJavaScriptFiles(),this.initializeShopifyComponents(),this.openQuickView(),this.dispatchQuickViewOpenEvent(url)}))}loadJavaScriptFiles(){this.loadedScripts||(this.loadedScripts=new Set),this.elements.modalContent.querySelectorAll("script[src]").forEach(script=>{if(!this.loadedScripts.has(script.src)&&!document.querySelector(`script[src="${script.src}"]`)){const newScript=document.createElement("script");newScript.src=script.src,newScript.async=!0,document.head.appendChild(newScript),this.loadedScripts.add(script.src)}})}initializeShopifyComponents(){setTimeout(()=>{Shopify?.PaymentButton&&Shopify.PaymentButton.init(),window.ProductModel&&window.ProductModel.loadShopifyXR()},200)}openQuickView(){const{body,modal,closeButton}=this.elements;body.classList.add("quickview-open"),modal.classList.add("quick-view-loaded"),closeButton?.focus(),this.isFocusTrapped||(this.isFocusTrapped=!0,document.addEventListener("keydown",this.trapFocus.bind(this)))}closeQuickView(){const{body,modal}=this.elements;body.classList.remove("quickview-open"),modal.classList.remove("quick-view-loaded"),this.isFocusTrapped&&(this.isFocusTrapped=!1,document.removeEventListener("keydown",this.trapFocus.bind(this)))}dispatchQuickViewOpenEvent(url){document.dispatchEvent(new CustomEvent("quick-view:loaded",{detail:{productUrl:url}}))}}customElements.define("quick-view",QuickView)}if(!customElements.get("collapsible-details")){class CollapsibleDetails extends HTMLElement{constructor(){super(),this.toggleContent=this.toggleContent.bind(this),this.onTransitionEnd=this.onTransitionEnd.bind(this),this.updateHeight=this.updateHeight.bind(this),this.setResponsiveState=this.setResponsiveState.bind(this),this.isAnimating=!1}connectedCallback(){this.detailsEl=this.querySelector("details"),this.summaryEl=this.querySelector("summary"),this.contentEl=this.querySelector(".collapsible__content"),this.contentInnerEl=this.querySelector(".collapsible__content-inner"),!(!this.detailsEl||!this.summaryEl||!this.contentEl)&&(this.wrapContent(),this.setupInitialState(),this.addEventListeners(),this.contentInnerEl&&(this.resizeObserver=new ResizeObserver(this.updateHeight),this.resizeObserver.observe(this.contentInnerEl)),this.detailsEl.dataset.responsive==="true"&&this.setResponsiveState(),this.mutationObserver=new MutationObserver(this.updateContentHeight.bind(this)),this.contentInnerEl&&this.mutationObserver.observe(this.contentInnerEl,{childList:!0,subtree:!0,characterData:!0}
1))}wrapContent(){if(!(!this.contentEl||!this.contentEl.parentElement)){if(this.contentEl.parentElement.classList.contains("collapsible__content-wrapper")){this.contentWrapper=this.contentEl.parentElement;return}this.contentWrapper=document.createElement("div"),this.contentWrapper.className="collapsible__content-wrapper",this.contentEl.parentNode.insertBefore(this.contentWrapper,this.contentEl),this.contentWrapper.appendChild(this.contentEl)}}setupInitialState(){this.detailsEl&&(this.detailsEl.hasAttribute("open")?(this.contentWrapper.style.height="auto",this.contentEl.style.transform="translateY(0)",this.detailsEl.classList.add("is-open")):(this.contentWrapper.style.height="0",this.contentEl.style.transform="translateY(16px)"))}addEventListeners(){!this.summaryEl||!this.contentWrapper||(this.summaryEl.addEventListener("click",this.toggleContent),this.contentWrapper.addEventListener("transitionend",this.onTransitionEnd))}toggleContent(event){if(event.preventDefault(),this.isAnimating){this.pendingState=!this.detailsEl.open;return}this[this.detailsEl.open?"closeContent":"openContent"]()}openContent(){this.isAnimating=!0,this.detailsEl.open=!0,requestAnimationFrame(()=>{const height=this.contentEl.scrollHeight;this.contentWrapper.style.height="0",this.contentEl.style.transform="translateY(16px)",requestAnimationFrame(()=>{this.detailsEl.classList.add("is-open"),this.contentWrapper.style.height=`${height}px`,this.contentEl.style.transform="translateY(0)"})})}closeContent(){this.isAnimating=!0,requestAnimationFrame(()=>{const height=this.contentWrapper.scrollHeight;this.contentWrapper.style.height=`${height}px`,requestAnimationFrame(()=>{this.detailsEl.classList.remove("is-open"),this.contentWrapper.style.height="0",this.contentEl.style.transform="translateY(16px)"})})}onTransitionEnd(event){event.propertyName!=="height"||event.target!==this.contentWrapper||(this.isAnimating=!1,this.detailsEl.classList.contains("is-open")?this.contentWrapper.style.height="auto":this.detailsEl.open=!1,this.pendingState!==void 0&&(this[this.pendingState?"openContent":"closeContent"](),this.pendingState=void 0))}updateHeight(){if(this.detailsEl.open&&!this.isAnimating){this.contentWrapper.style.height="auto";const height=this.contentWrapper.scrollHeight;this.contentWrapper.style.height=`${height}px`}}updateContentHeight(){if(this.detailsEl.open){const height=this.contentEl.scrollHeight;this.contentWrapper.style.height=`${height}px`}}disconnectedCallback(){this.summaryEl&&this.summaryEl.removeEventListener("click",this.toggleContent),this.contentWrapper&&this.contentWrapper.removeEventListener("transitionend",this.onTransitionEnd),this.resizeObserver&&this.resizeObserver.disconnect(),this.mutationObserver&&this.mutationObserver.disconnect()}setResponsiveState(){const isMobile=window.matchMedia("(max-width: 767px)").matches;isMobile&&this.detailsEl.open||(this.detailsEl.open=!isMobile,this.detailsEl.classList.toggle("is-open",!isMobile),isMobile?this.contentWrapper.style.height="0":(this.contentWrapper.style.height="auto",this.contentEl.style.transform="translateY(0)",setTimeout(()=>{const height=this.contentEl.scrollHeight;this.contentWrapper.style.height=`${height}px`},0)))}}customElements.define("collapsible-details",CollapsibleDetails)}function debounce(func,wait=100){let timeout;return function(...args){clearTimeout(timeout),timeout=setTimeout(()=>func.apply(this,args),wait)}}if(window.addEventListener("resize",debounce(()=>{document.querySelectorAll('collapsible-details details[data-responsive="true"]').forEach(details=>details.closest("collapsible-details").setResponsiveState())})),!customElements.get("tabs-component")){class TabsComponent extends HTMLElement{constructor(){super()}connectedCallback(){this.tabsHeader=this.querySelector(".tabs-header"),this.tabsContent=this.querySelector(".tabs-content"),this.tabActiveIndicator=this.querySelector(".indicator"),this.tabsHeader.addEventListener("click",e=>{e.target.classList.contains("tab-button")&&this.activateTab(e.target)}),this.tabsHeader.addEventListener("keydown",e=>{e.target.classList.contains("tab-button")&&this.handleKeyDown(e)}),this.activateTab(this.tabsHeader.querySelector(".tab-button")),Shopify&&Shopify.designMode&&document.addEventListener("shopify:block:select",this.handleBlockSelect.bind(this))}activateTab(tab){const tabIndex=tab.getAttribute("data-tab");this.tabsHeader.querySelectorAll(".tab-button").forEach(t=>{const isActive=t===tab;t.classList.toggle("active",isActive),t.setAttribute("aria-selected",isActive)}),this.tabsContent.querySelectorAll(".tab-content").forEach(content=>{content.classList.toggle("active",content.getAttribute("id")===tabIndex)});const tabRect=tab.getBoundingClientRect(),tabsHeaderRect=this.tabsHeader.getBoundingClientRect(),offset=getComputedStyle(this.tabsHeader).direction==="rtl"?tabsHeaderRect.right-tabRect.right:tabRect.left-tabsHeaderRect.left;this.tabsHeader.style.setProperty("--indicator-width",`${tabRect.width}px`),this.tabsHeader.style.setProperty("--indicator-offset",`${offset}px`)}handleKeyDown(e){const key=e.key,currentTab=e.target;let newTab;switch(key){case"ArrowRight":newTab=currentTab.nextElementSibling||this.tabsHeader.firstElementChild;break;case"ArrowLeft":newTab=currentTab.previousElementSibling||this.tabsHeader.lastElementChild;break;case"Enter":case"Space":this.activateTab(currentTab);return}newTab&&newTab.classList.contains("tab-button")&&(e.preventDefault(),newTab.focus())}handleBlockSelect(e){const blockId=e.detail.blockId,tabToActivate=this.tabsHeader.querySelector(`[data-tab="tab-${blockId}"]`);tabToActivate&&this.activateTab(tabToActivate)}}customElements.define("tabs-component",TabsComponent)}if(!customElements.get("card-product-swatch")){class CardProductSwatch extends HTMLElement{constructor(){super()}connectedCallback(){this.swatchButtons=this.querySelectorAll(".swatch-button"),this.image=this.closest(".card-product").querySelector(".product-first-image img"),this.link=this.closest(".card-product").querySelector(".product-link"),this.swatchButtons.forEach(button=>{button.addEventListener("click",e=>{this.handleSwatchInteraction(e.currentTarget,!0)}),button.addEventListener("mouseenter",e=>{this.handleSwatchInteraction(e.currentTarget,!1)}),button.addEventListener("mouseleave",()=>{const active=this.querySelector(".swatch-button.active");active&&(this.updateProductImage(active),this.updateProductLink(active))})})}handleSwatchInteraction(button,isClick){isClick&&this.updateActiveSwatch(button),this.updateProductImage(button),this.updateProductLink(button)}updateActiveSwatch(button){this.swatchButtons.forEach(b=>b.classList.remove("active")),button.classList.add("active")}updateProductImage(button){const newImageSrcset=button.getAttribute("data-srcset"),newImageSrc=button.getAttribute("data-src");newImageSrcset&&(this.image.srcset=newImageSrcset),newImageSrc&&(this.image.src=newImageSrc)}updateProductLink(button){const newLink=button.getAttribute("data-link");newLink&&(this.link.href=newLink)}}customElements.define("card-product-swatch",CardProductSwatch)}if(!customElements.get("count-down")){class CountdownTimer extends HTMLElement{constructor(){super(),this.endTime=this.parseEndTime(),this.timerId=null,this.elements=this.getElements()}parseEndTime(){const timeAttr=this.getAttribute("data-timer"),parsedTime=Date.parse(timeAttr);return isNaN(parsedTime)?Date.now():parsedTime}getElements(){return{days:this.querySelector('[data-value="days"] .countdown-day'),hours:this.querySelector('[data-value="hours"] .countdown-hour'),minutes:this.querySelector('[data-value="minutes"] .countdown-minute'),seconds:this.querySelector('[data-value="seconds"] .countdown-second')}}calculateTimeRemaining(){const now=Date.now(),total=Math.max(this.endTime-now,0);return{total,days:Math.floor(total/(1e3*60*60*24)),hours:Math.floor(total/(1e3*60*60)%24),minutes:Math.floor(total/(1e3*60)%60),seconds:Math.floor(total/1e3%60)}}initializeDisplay(){this.updateDisplay(this.calculateTimeRemaining())}startCountdown(){this.classList.add("active"),this.timerId=setInterval(()=>{const remainingTime=this.calculateTimeRemaining();if(remainingTime.total<=0){this.updateDisplay(remainingTime),this.stopCountdown(),this.dispatchEvent(new CustomEvent("countdown-finished"));return}this.updateDisplay(remainingTime)},1e3)}
1updateDisplay(remainingTime){Object.keys(this.elements).forEach(key=>{this.elements[key]&&(this.elements[key].textContent=remainingTime[key].toString().padStart(2,"0"))})}connectedCallback(){this.initializeDisplay(),setTimeout(()=>this.startCountdown(),50)}disconnectedCallback(){this.stopCountdown()}stopCountdown(){this.timerId&&(clearInterval(this.timerId),this.timerId=null)}}customElements.define("count-down",CountdownTimer)}if(!customElements.get("newsletter-form")){class NewsletterForm extends HTMLElement{constructor(){super()}connectedCallback(){const form=this.querySelector("form");if(!form)return;const input=form.querySelector('input[type="email"]'),button=form.querySelector('button[type="submit"]'),error=form.querySelector(".newsletter-form__message"),errorText=error.querySelector(".newsletter-form__message-error"),emailPattern=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,errorMessage=newsletterFormStrings.error;function validate(){if(!input.value){error.style.display="none",errorText.textContent="",button.disabled=!0;return}emailPattern.test(input.value)?(error.style.display="none",errorText.textContent="",button.disabled=!1):(errorText.textContent=errorMessage,error.style.display="flex",button.disabled=!0)}input.addEventListener("input",validate),form.addEventListener("submit",function(e){emailPattern.test(input.value)?(errorText.textContent="",error.style.display="none",button.disabled=!1):(errorText.textContent=errorMessage,error.style.display="flex",button.disabled=!0,e.preventDefault())}),validate()}}customElements.define("newsletter-form",NewsletterForm)}if(!customElements.get("moving-button")){class MovingButton extends HTMLElement{constructor(){super(),this.button=null,this.buttonRect=null,this.proximity=50,this.isEffectActive=!1,this.targetOffsetX=0,this.targetOffsetY=0,this.rafId=null,this.handleDocumentMouseMove=this.handleDocumentMouseMove.bind(this),this.cacheButtonPosition=this.cacheButtonPosition.bind(this),this.applyCurrentTransform=this.applyCurrentTransform.bind(this),this.handleScrollOrResize=this.handleScrollOrResize.bind(this)}static get observedAttributes(){return["data-proximity"]}connectedCallback(){this.button=this.querySelector(".moving-button"),this.button&&(this.updateProximityFromAttribute(),requestAnimationFrame(()=>{this.cacheButtonPosition()}),document.addEventListener("mousemove",this.handleDocumentMouseMove),window.addEventListener("scroll",this.handleScrollOrResize,{passive:!0}),window.addEventListener("resize",this.handleScrollOrResize))}disconnectedCallback(){document.removeEventListener("mousemove",this.handleDocumentMouseMove),window.removeEventListener("scroll",this.handleScrollOrResize),window.removeEventListener("resize",this.handleScrollOrResize),this.rafId&&(cancelAnimationFrame(this.rafId),this.rafId=null),this.button&&this.isEffectActive&&(this.button.style.willChange="auto",this.button.style.transform="translate3d(0px, 0px, 0px)")}attributeChangedCallback(name,oldValue,newValue){name==="data-proximity"&&this.updateProximityFromAttribute()}updateProximityFromAttribute(){const proximityAttr=this.getAttribute("data-proximity");if(proximityAttr!==null){const parsedProximity=parseInt(proximityAttr,10);!isNaN(parsedProximity)&&parsedProximity>=0&&(this.proximity=parsedProximity)}}cacheButtonPosition(){this.button&&(this.buttonRect=this.button.getBoundingClientRect())}handleScrollOrResize(){this.cacheButtonPosition()}applyCurrentTransform(){this.button&&(this.button.style.transform=`translate3d(${this.targetOffsetX}px, ${this.targetOffsetY}px, 0px)`,this.rafId=null)}handleDocumentMouseMove(e){if(!this.button||!this.buttonRect)return;const mouseX_viewport=e.clientX,mouseY_viewport=e.clientY,zoneLeft=this.buttonRect.left-this.proximity,zoneTop=this.buttonRect.top-this.proximity,zoneRight=this.buttonRect.right+this.proximity,zoneBottom=this.buttonRect.bottom+this.proximity;if(mouseX_viewport>=zoneLeft&&mouseX_viewport<=zoneRight&&mouseY_viewport>=zoneTop&&mouseY_viewport<=zoneBottom){this.isEffectActive||(this.isEffectActive=!0,this.button&&(this.button.style.willChange="transform"));const buttonCenterX_viewport=this.buttonRect.left+this.buttonRect.width/2,buttonCenterY_viewport=this.buttonRect.top+this.buttonRect.height/2;let offsetX=mouseX_viewport-buttonCenterX_viewport,offsetY=mouseY_viewport-buttonCenterY_viewport;const maxMove=20;this.targetOffsetX=Math.max(-maxMove,Math.min(maxMove,offsetX)),this.targetOffsetY=Math.max(-maxMove,Math.min(maxMove,offsetY)),this.rafId&&cancelAnimationFrame(this.rafId),this.rafId=requestAnimationFrame(this.applyCurrentTransform)}else this.isEffectActive&&(this.isEffectActive=!1,this.button&&(this.button.style.willChange="auto",this.button.style.transform="translate3d(0px, 0px, 0px)"),this.rafId&&(cancelAnimationFrame(this.rafId),this.rafId=null))}}customElements.define("moving-button",MovingButton)}(function(){function getAbsoluteTop(element){if(!element)return 0;const rect=element.getBoundingClientRect(),scrollTop=window.pageYOffset||document.documentElement.scrollTop;return rect.top+scrollTop}function initSmoothScroll(){document.addEventListener("click",function(event){if(event.target.matches("[data-anchor]")){event.preventDefault();const href=event.target.getAttribute("href");if(!href||href==="#")return;const targetId=href.replace("#",""),targetSection=document.getElementById(targetId);
1if(targetSection){const headerHeight=parseFloat(getComputedStyle(document.documentElement).getPropertyValue("--header-height"))||0,targetPosition=getAbsoluteTop(targetSection)-headerHeight;window.scrollTo({top:targetPosition,behavior:"smooth"})}}})}document.addEventListener("DOMContentLoaded",initSmoothScroll)})(),(function(){const copyURL=()=>{var button=document.querySelector(".share-button__copy");button&&button.addEventListener("click",function(){var url=button.getAttribute("data-url");navigator.clipboard.writeText(url).then(function(){button.classList.add("copied"),setTimeout(function(){button.classList.remove("copied")},2e3)}).catch(function(err){console.error(err)})})};document.addEventListener("DOMContentLoaded",function(){copyURL()})})(),customElements.get("card-variant-size")||customElements.define("card-variant-size",class extends HTMLElement{constructor(){super(),this.cart=document.querySelector("cart-notification")||document.querySelector("cart-drawer"),this.addEventListener("click",this.handleClick.bind(this))}handleClick(event){const button=event.target.closest(".variant-size-button");if(!button||button.disabled)return;const variantId=button.dataset.variantId;if(!variantId)return;const spinner=button.querySelector(".loading__spinner");this.loading=!0;const allButtons=this.querySelectorAll(".variant-size-button");allButtons.forEach(btn=>{btn.setAttribute("aria-disabled",!0),btn.classList.add("disabled")}),button.classList.add("loading"),button.setAttribute("aria-disabled",!0),spinner&&spinner.classList.remove("hidden");const formData=new FormData;if(formData.append("id",variantId),formData.append("quantity",1),this.cart?.getSectionsToRender){const sections=this.cart.getSectionsToRender().map(s=>s.id);formData.append("sections",sections.join(",")),formData.append("sections_url",window.location.pathname),this.cart.setActiveElement?.(document.activeElement)}fetch(`${routes.cart_add_url}.js`,{method:"POST",headers:{"X-Requested-With":"XMLHttpRequest"},body:formData}).then(res=>res.ok?res.json():res.text().then(text=>{throw new Error(text)})).then(data=>{if(data.status){console.warn(data.message||data.description);return}this.cart?.renderContents?this.cart.renderContents(data):window.location=window.routes.cart_url}).catch(err=>{console.error(err)}).finally(()=>{allButtons.forEach(btn=>{btn.removeAttribute("aria-disabled"),btn.classList.remove("disabled","loading"),btn.querySelector(".loading__spinner")?.classList.add("hidden")}),this.loading=!1,this.cart&&this.cart.classList.contains("is-empty")&&this.cart.classList.remove("is-empty")})}}),customElements.get("show-more-toggle")||customElements.define("show-more-toggle",class extends HTMLElement{constructor(){super(),this.content=this.querySelector("[data-show-more-content]"),this.button=this.querySelector("button"),this.showMoreText=this.querySelector(".label-show-more"),this.showLessText=this.querySelector(".label-show-less"),this.button.addEventListener("click",()=>this.toggle())}toggle(){this.content.classList.toggle("content-truncated"),this.showMoreText.classList.toggle("hidden"),this.showLessText.classList.toggle("hidden")}}); 2//# sourceMappingURL=/cdn/shop/t/65/assets/theme.js.map?v=123378533550197210821788214101
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.